Makefile目标全局变量

时间:2016-01-09 12:56:56

标签: makefile

我想有类似的东西:

PrintTarget:
    @echo Building $(TARGET)

SetRelTarget:   TARGET = Release
SetRelTarget:
    @echo Target is set.

BuildRel: SetRelTarget PrintTarget

TARGET中设置的SetRelTargetAs变量不是全局变量。 我的问题是:

是否可以修改规则中的全局变量并在此规则之外使用此修改后的值?

谢谢。

2 个答案:

答案 0 :(得分:0)

由于代码中没有任何变量,您只需执行此操作:

TARGET = Release

PrintTarget:
    @echo Building $(TARGET)

BuildRel: PrintTarget

演示:

$ make BuildRel
Building Release
$ make TARGET=foo BuildRel
Building foo

如果您的用例更复杂,请提供更多详细信息。

答案 1 :(得分:0)

将TARGET设置为在BuildRel中发布,然后它应该适用于它的所有先决条件(尽管它不是全局的),

PrintTarget:
        @echo Building $(TARGET)

#SetRelTarget:   TARGET = Release
SetRelTarget:
        @echo Target is set to $(TARGET).

BuildRel: TARGET = Release
BuildRel: SetRelTarget PrintTarget