我想根据指定的目标设置变量。 例如:
if target == filename_a then
VAR1 = YES
if target == filename_b then
VAR2 = YES
显然,这是伪代码,而不是正确的make语法。
我真正想要做的是包含依赖于目标的不同制作文件和包含目录。某些目标共享相同的设置,因此在一个makefile中维护更容易。
稍后将使用的示例:
ifeq ($(VAR1), YES)
include foo.mk
endif
ifeq ($(VAR2), YES)
include baz.mk
endif
不幸的是,不能使用以下语法:
target : VAR1 = YES
由于这个变量赋值仅在实际构建目标的过程中有效,正如我所理解的那样。
目标环境是Solaris下的ClearMake 7,因此请避免使用任何GNU Make特定解决方案。
由于
编辑: 据我所知,make在处理步骤中目标可用的方式不起作用。因此,要求的功能很可能存在。
答案 0 :(得分:0)
如果这可行,我会感到惊讶,因为根据我的理解,Make进程包含语句之前它知道它需要做什么目标。但我对ClearMake一无所知,我不是真正的专家,所以希望有人证明我错了......