预定义变量
自动变量
$@ 当前规则中促发命令被执行的目标 $^ 当前规则中的所有依赖 $< 当前规则中的第一个依赖 all : first second third @echo "\$$@ => $@" @echo "$$^ => $^" @echo "$$< => $<"
注意:
“$”对于makefile有特殊含义输出时需要加上一个"$" 进行转义
“$@”对于Bash Shell有特殊含义
输出时需要加上"\"进行转义
特殊变量
$(MAKE) 当前make解释器的文件名 $(MAKECMDGOALS) 命令行中指定的目标名(make的命令行参数) $(MAKEFILE_LIST) make所需要处理的makefile文件列表; 当前makefile的文件名总是位于列表的最后 文件名之间以空格进行分隔 $(MAKE_VERSION) 当前make解释器的版本 $(CURDIR) 当前make解释器的工作目录 $(.VARIABLES) 所有已经定义的变量名列表(预定义变量和自定义变量)