makefile:预定义变量的使用
1. makefile中预定义的变量
-
自动变量:
[email protected], $^, $< ...... -
特殊变量:
$(MAKE), $(MAKECMDGOALS), $(MAKEFILE_LIST) ......
2. 自动变量的含义
-
[email protected]
: 当前规则中触发命令被执行的目标 - $^:当前规则中的所有依赖
-
$<
:当前规则中的第一个依赖
3. 自动变量的使用示例
注意:
1)$
对于makefile有特殊的含义,输出时需要加上一个$
进行转义
2) [email protected]
对Bash Shell有特殊含义,输出时需要加上\
进行转义
输出:
可以看到,这里对[email protected]的输出有问题,需要改为:
因此,我们可以将上一个章节中的文件修改为:
注意:注释#前不要加空格,否则在make时会显示注释
4. 特殊变量的含义
-
$(MAKE)
:当前make解释器的文件名 -
$(MAKECMDGOALS)
:命令行中指定的目标名(make的命令行参数) -
$(MAKEFILE_LIST)
:make所需要处理的makefile文件列表,当前makefile的文件名总是位于列表的最后,文件名之间以空格进行分隔 -
$(MAKE_VERSION)
:当前make解释器的版本 -
$(CURDIR)
:当前make解释器的工作目录 -
$(.VARIABLES)
:所有已经定义的变量名列表(预定义变量和自定义变量)
在上面的Makefile文件中加入:
注意:使用
$(.VARIABLES)
能够获取所有的特殊变量