我在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)
答案 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`