在我的makefile中我有一个变量
FOO
:
FOO = /path/to/bar
是否可以在 makefile 调用期间覆盖此变量?像下面这样的东西:
FOO=/path/to/foo make all
在指定目标之前将它们指定为
Var=Value
,例如make FOO=/path/to/foo all
.
$ cat Makefile
Foo = asdf
all:
echo $(Foo)
$ make all
echo asdf
asdf
$ make Foo=bar all
echo bar
bar
变量获取赋值的方式在 GNU make 手册的变量如何获取它们的值部分指定。
变量可以通过几种不同的方式获取值:
所以,正如三十二上校所指出的,您可以在命令行上覆盖 makefile 中设置的变量。
您也可以,如果您希望这是一个您想要永久设置的变量,请使用
?=
赋值,然后将使用该变量的环境值。
您也可以简单地使用
?=
运算符:
$ cat Makefile
Foo ?= asdf
all:
echo $(Foo)
$ make all
echo asdf
asdf
$ Foo=bar make all
echo bar
bar