在makefile中定义默认值

use*_*944 14 command-line makefile

我的makefile有这样的行

   CFLAGS = -c -g -D OPT1 -D OPT2
Run Code Online (Sandbox Code Playgroud)

我想通过这样的命令行传递这个参数

 make ARG1= OPT1 ARG2 =OPT2    
Run Code Online (Sandbox Code Playgroud)

如果我不通过命令行传递这些参数,我希望makefile使用makefile中定义的默认值.我怎么做 ?

Pau*_*l R 26

只需在makefile中执行以下操作:

OPT1 = MY_OPT_1 # defaults
OPT2 = MY_OPT_2

CFLAGS = -c -g -D $(OPT1) -D $(OPT2)
Run Code Online (Sandbox Code Playgroud)

然后在命令行上:

$ make -e OPT1=SOME_OTHER_OPT1 OPT2=SOME_OTHER_OPT2
Run Code Online (Sandbox Code Playgroud)

在命令行中指定OPT1和/或指定falues时,OPT2这些将覆盖makefile中的默认值.

请注意,你可能想-e用选项make在多数情况下,以强制所有内容被新的重新修建OPT1,OPT2价值观.