在目标内设置环境变量

时间:2013-03-05 17:06:42

标签: makefile

我在makefile中有一个目标:

all: $(TARGETS)

我想要一个与all不同的变体,只是因为它设置了一个环境变量。类似的东西:

all-abc: $(TARGETS)
    ABC=123

但这不起作用,因为在设置变量之前处理依赖项。我已经考虑过在设置环境变量的实际依赖之前有另一个依赖,但我不认为环境会在目标之间持续存在。那就是说

abc:
    ABC=123
all-abc: abc $(TARGETS)

不起作用。我最终希望能够做的是

$ make all-abc

而不是

$ ABC=123 make

是否可以设置这样的环境变量?

(GNU Make 3.82)

1 个答案:

答案 0 :(得分:23)

试试这个:

all:
    @#usual rule, if you call `make all-abc`, this will print "123"
    @echo $(ABC)

all-abc: ABC=123
all-abc: all
    @#what you put here it's going to be executed after the rule `all`