从命令行传递的Makefile分配变量

时间:2019-05-01 07:57:12

标签: makefile gnu-make

是否可以分配从命令行传递过来的变量?

我尝试了以下Makefile:

testvar := newassign

.PHONY: all
all:
    @echo $(testvar)

如果我执行make,则输出为预期的newassign。但是,如果我执行make testvar=asd,则输出为asd,而我希望它也为newassign

我使用GNU Make 4.1。

1 个答案:

答案 0 :(得分:1)

这显然是故意的。命令行选项始终优先于Makefile内部的分配。如果要强制分配,则可以使用override

override testvar := newassign

.PHONY: all
all:
    @echo $(testvar)