制作:根据目标设置变量

时间:2010-09-01 14:46:49

标签: makefile

我想根据指定的目标设置变量。 例如:

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在处理步骤中目标可用的方式不起作用。因此,要求的功能很可能存在。

1 个答案:

答案 0 :(得分:0)

如果这可行,我会感到惊讶,因为根据我的理解,Make进程包含语句之前它知道它需要做什么目标。但我对ClearMake一无所知,我不是真正的专家,所以希望有人证明我错了......