2010-09-01 73 views
1

我想根据分配的目标设置一个变量。 例如:Make:根据目标设置变量

if target == filename_a then 
    VAR1 = YES 
if target == filename_b then 
    VAR2 = YES 

显然,这是伪代码,而不是正确的化妆语法。

我真正想要做的是包括不同的生成文件和依赖目标的包含目录。有些目标共享相同的设置,因此在一个makefile中更容易维护。

的是什么将用于后一个例子:

ifeq ($(VAR1), YES) 
    include foo.mk 
endif 
ifeq ($(VAR2), YES) 
    include baz.mk 
endif 

Unfortunantly不能使用的语法如下:

target : VAR1 = YES 

由于这个变量赋值是唯一有效的通过实际构建过程目标,据我了解。

目标环境是Solaris下的ClearMake 7,所以请避免使用任何GNU Make的特定解决方案。

感谢


编辑: 据我所知,做的方式,其中在加工过程中的目标可用不起作用。因此,要求提供的功能很可能存在。

+0

告诉我们更多关于包含文件设置和命名的知识。为什么你需要在多个包含文件中进行选择,它们最终定义了哪些变量? – smci 2011-10-18 20:15:51

回答

0

如果这可以工作,我会感到很惊讶,因为据我所知,Make程序包括之前它知道它需要做什么目标。但我对ClearMake一无所知,而且我并不是真正的专家,所以希望有人证明我错了......

+0

是的,不幸的是,你似乎是对的。谢谢你的回应。 – Zen 2010-10-24 16:01:07