1. 预定义变量
在 makefile 中存在一些预定义的变量:
-
自动变量:
$@
$^
$<
-
特殊变量:
$(MAKE)
$(MAKECMDGOALS)
$(MAKEFILE_LIST)
$(CURDIR)
$(.VARIABLES)
等
2.自动变量的意义
$@
当前规则中触发命令被执行的目标$^
当前规则中的所有依赖$<
当前规则中的第一个依赖
EG:
.PHONY : all first second third
all : first second third
@echo "\$$@ => $@"
@echo "$$^ => $^"
@echo "$$< => $<"
firtst:
second:
third:
#执行 make all 打印结果如下
$@ => all
$^ => first second third
$< => first
注意:
$
对于 makefile 有特殊含义,输出时需要加上一个$
进行转义