1. 多目标的等效写法
一个规则中有多个目标,可以将其等效为多个目标不同,但依赖和命令相同的规则。make会找到Makefile中的第一个目标作为最终目标,如下两种写法等效,target1是最终目标
- 写法1
target1 target2 : prerequisites1
command1
command2
- 写法2
target1 : prerequisites1
command1
command2
target2 : prerequisites1
command1
command2
2. 多依赖的等效写法
一个规则中有多个依赖,可以将其等效为多个依赖不同,但目标和命令相同的规则。make会首先解释target1 : prerequisites1 完成后在解释 target1 : prerequisites1。
- 写法1
target1 : prerequisites1 prerequisites2
command1
command2
- 写法2
target1 : prerequisites1
command1
command2
target1 : prerequisites2
command1
command2
3.多目标且多依赖的等效写法
举一反三。。。。
- 写法1
target1 target2 : prerequisites1 prerequisites2
command1
command2
- 写法2
target1 : prerequisites1
command1
command2
target1 : prerequisites2
command1
command2
target2 : prerequisites1
command1
command2
target2 : prerequisites2
command1
command2
4. 同名目标的等效写法
在Makefile中同名的目标即可看做是同一个目标。与多依赖的的写法正好相反。
- 写法1
target1 : prerequisites1
command1
command2
target1 : prerequisites2
command1
command2
- 写法2
target1 : prerequisites1 prerequisites2
command1
command2
5. 理解和总结
在make的设计中,目标和依赖对应的都是文件,通过比对目标文件和依赖文件的 时间戳/是否存在 决定是否执行命令,所以无论是多目标还是多依赖的写法,都可以写成单目标对单依赖,反之也成立。