1. 特殊字符
*
:表示目标文件的名称,不包含目标文件的扩展名。<
:表示依赖项中第一个依赖文件的名称。?
: 依赖项中,所有目标文件时间戳晚的文件(表示修改过),依赖文件间以空格分开。@
:目标项中目标文件的名称。^
:依赖项中,所有不重复的依赖文件,以空格分开。
2. 关键字
2.1 .Phony
.Phony
是一个特殊的工作目标,它后面的并不是一个实际文件名:只是在显式请求时执行命令的名字;而且肯定要视为未更新。使用 .Phony
的原因在于:
- 避免和同名文件冲突(防止存在和
PHONY
执行目标的名称相同的文件) - 改善性能(已知
.Phony
目标并非是由其它文件生成的实际文件,make
会跳过隐含规则搜索)