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)能够获取所有的特殊变量