规则
目标:依赖
[tab]命今
makefile有且仅有一个终极目标,生成一个终极文件。
make总是认为目标是文件,如果文件存在且没有依赖则立即返回,不会执行命令。
所以需要定义伪目标,因为伪目标不与文件绑定,不管同名文件存不存在都执行除非指定目标,
否则会寻找makefile第一个目标,即文件最前面的目标优先寻找明确的目标规则,找不到才使用通配符目标规则,无论通配符规则目标在文件位置。
依赖也是目标,从左到右进行检查。
如果依赖的文件时间戳晚于目标的文件时间戳,表示依赖文件有更新,触发规则。
深度优先遍历依赖树,同一个目标,多个规则,任意规则依赖变更会且仅会触发最后一个规则。
include,找makefile里面有没有目标规则,如果有且目标需要更新,则展开更新然后再展开如果没有目标规则,直接展开。如果没有此文件,报错。