基本规则
1.若想生成目标,检查规则中的依赖条件是否存在,如不存在,则寻找是否有规则用来生成该依赖文件。
2.检查规则中的目标是否需要更新,必须先检查它的所有依赖,依赖中有人一个被更新,则目标必须更新
-
分析各个目标和依赖之间的关系
(目标的时间必须晚于依赖的时间)
-
根据依赖关系自底向上执行命令
(默认第一个目标就是终极目标,但是ALL:可以指定终极目标比如ALL:a.out)
- 根据又该时间比目标新,确定更新
- 如果目标不依赖任何条件,则执行对应命令,以示更新
目标:依赖条件
命令
makefile命名必须是makefile或Makefile
多个文件的时候,有时候只更改一个文件,其他文件没有动,还是要重新make
两个重要函数
注意第二个:是替换,这些都是字符串,而不是把.c编译成.o
小技巧:make的命令中加个-n可以显示命令但不执行
小技巧:rm前面加个-变成-rm,这样在不小心删除了一个.o文件之后,make clean全部删除也不会因为缺失了刚刚删除的.o文件而报错
三个变量
补充
防止产生歧义,使用静态模式规则
.PHONY防止clean重名
eg:
.PHONY:clean ALL