检查makefile中多个条件的最佳方法是什么?
问题描述:
我有可以有三个值的化妆说法,说A,B和C检查makefile中多个条件的最佳方法是什么?
我写的makefile中如下:
ifeq ("$(PLATFORM)", "A")
echo "PLATFORM A"
else ifeq("$(PLATFORM)", "B")
echo "PLATFORM B"
else
echo "PLATFORM C"
这个我不能执行所有的三种情况。
我用:
make PLATFORM="A"
make PLATFORM="B"
make PLATFORM="C"
make
我发现堆栈溢出类似的解决方案,但没有工作对我来说
我使用GNU使3.81
答
Makefile中的错误是缺少space
之后ifeq
。
但是我寻找更好的解决方案,更portable
答
您需要提供更多的情况下,你要实现的目标是什么。我可能会使用这样的:
include platform/$(PLATFORM).mk
和独立的makefile在platform
子目录每个平台。
+0
这里的平台是我作为例子的一个说法。平台不是文字平台。你可以用任何其他变量替换它 –
+0
但是,这不是'include'指令本身不起作用的原因。 –
您应该首先为您自己定义PLATFORM实际携带的值的类型。显然,你希望它是一个平台名称的集合,而不是一个平台名称,但是你的编程案例不符合这个定义。 – Vroomfondel