让我们考虑以下Makefile:
.PHONY : all
OPTS += -DBLA
OPTS += -DBLUBB
STUFF = default
all :
./do_something $(OPTS) $(STUFF)
可以在命令行上传递变量。所以通过以下电话
confus@confusion:/tmp/$ make STUFF=foo
make将运行./do_something -DBLA -DBLUBB foo
。
与我认为不能附加到变量的内容相反:
confus@confusion:/tmp/$ make STUFF+=foo OPTS+=-DMOREOPT
只会运行./do_something -DMOREOPT foo
(好像我遗漏了加号),当我期望它./do_something -DBLA -DBLUBB -DMOREOPT default foo
时。
有没有办法使用命令行选项附加到make变量?
答案 0 :(得分:1)
如果这是GNU make,则必须在makefile中使用override
指令指定您希望makefile中设置的值优先于命令行值:
override OPTS += -DBLA
override OPTS += -DBLUBB
override STUFF += default
如果重要,请注意这将首先在命令行中提供设置,并且makefile中的设置最后。