从makefile覆盖变量

时间:2015-04-03 15:05:23

标签: makefile

在我的makefile中,我有一个变量FOO

FOO = /path/to/bar

是否可以在makefile调用期间覆盖此变量?类似于以下内容:

FOO=/path/to/foo make all

2 个答案:

答案 0 :(得分:4)

在指定目标之前将其指定为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

答案 1 :(得分:2)

变量获取赋值的方式在GNU make Manual的How Variables Get Their Values部分中指定。

  

变量可以通过几种不同的方式获取值:

     

因此,正如Thirty Thirty 2所示,您可以在命令行上覆盖makefile中设置的变量。

如果您希望这是一个要持久设置的变量,也可以使用?=赋值,然后使用该变量的环境值。