我的makefile有这样的行
CFLAGS = -c -g -D OPT1 -D OPT2
我想通过这样的命令行传递这个参数
make ARG1= OPT1 ARG2 =OPT2
如果我不通过命令行传递这些参数,我希望makefile使用makefile中定义的默认值。我该怎么做?
答案 0 :(得分:19)
在makefile中执行以下操作:
OPT1 = MY_OPT_1 # defaults
OPT2 = MY_OPT_2
CFLAGS = -c -g -D $(OPT1) -D $(OPT2)
然后在命令行上:
$ make -e OPT1=SOME_OTHER_OPT1 OPT2=SOME_OTHER_OPT2
在命令行中为OPT1
和/或OPT2
指定falues时,这些将覆盖makefile中的默认值。
请注意,在大多数情况下,您可能希望-e
选项与make
一起强制使用新的OPT1
,OPT2
值重建所有内容。