[makefile] 命令行给make解释器传参数

时间:2023-01-23 19:29:28

例如:


build:
[tab] mvn clean package

原本是这样既可以跑 UT又可以打不jar 包来,但后来UT总是不过。怎么避免对文件的修改呢? 本着这样目的,修改如下:

1 maven.test.skip = false

2 build:
3 [tab] mvn clean package -Dmaven.test.skip=$(maven.test.skip)

注意line 1的赋值,几makefile的赋值语法与shell不同,key value不必紧紧地贴在=号两侧。

这样是mvn 就有个默认值了。 还可以写成:

1 build:
2 [tab] mvn clean package -Dmaven.test.skip=$(maven.test.skip)
即删除默认值。 但调用的规则都是一样的, 即:

make -f MakefileName maven.test.skip=true
这里的,在命令行的赋值,key value,就必须像shell中给变量赋值一样,不能有空格,否者shell就不认识他们了。


2 case:

    ifdef CONFIG_DEBUG_INFO  
KBUILD_CFLAGS += -g
KBUILD_AFLAGS += -gdwarf-2
endif

要想enable这部分功能, 需要

> make CONFIG_DEBUG_INFO=1

在命令行定义它。

可参见: http://blog.csdn.net/kangear/article/details/8583979