检查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

+0

您应该首先为您自己定义PLATFORM实际携带的值的类型。显然,你希望它是一个平台名称的集合,而不是一个平台名称,但是你的编程案例不符合这个定义。 – Vroomfondel

Makefile中的错误是缺少space之后ifeq

但是我寻找更好的解决方案,更portable

您需要提供更多的情况下,你要实现的目标是什么。我可能会使用这样的:

include platform/$(PLATFORM).mk 

和独立的makefile在platform子目录每个平台。

+0

这里的平台是我作为例子的一个说法。平台不是文字平台。你可以用任何其他变量替换它 –

+0

但是,这不是'include'指令本身不起作用的原因。 –