我有以下示例代码来说明我要做的事情:
rulea:
$(info $$var1 [rulea] is [${var1}])
$(eval export var1 = true)
$(info $$var1 [rulea] is [${var1}])
ruleb: rulea
$(info $$var1 ruleb is [$(var1)])
ifeq ($(value var1),true)
$(info TEST9 $$var1 [ruleb] is [${var1}])
endif
var1
可以打印在ruleb
中,但不能在ifeq
语句中使用。我认为它们在不同的壳中运行,因此无法看到它们。有没有办法实现这一目标?
答案 0 :(得分:0)
思考文件。 制作喜欢的文件。 保持您的makefile平行安全(使用 make 的整点)。
rulea:
Some other stuff...
echo ${var1} >$@
ruleb: rulea
# Here the file ruleb (or more conveniently, $<) has what you want
command-that-needs-var1 -i $< -o $@