第一 一个规则
目标:依赖
(table)命令 :这是他的基本格式
例子
app :main.c
gcc main.c
第二 工作原理
基本原则:
1.若想生成目标,检查规则中的依赖条件是否存在,如不存在,则寻找是否有规则用来
生成该依赖文件
2.检查规则中的目标是否需要更新,必须先检查它的所有依赖,依赖中有任一个被更
新,则目标必须更新
* 分析各个目标和依赖之间的关系
* 根据依赖关系自底向上执行命令
* 根据修改时间比目标新,确定更新
* 如果目标不依赖任何条件,则执行对应命令,以示更新
1.若想生成目标,检查规则中的依赖条件是否存在,如不存在,则寻找是否有规则用来
生成该依赖文件
2.检查规则中的目标是否需要更新,必须先检查它的所有依赖,依赖中有任一个被更
新,则目标必须更新
* 分析各个目标和依赖之间的关系
* 根据依赖关系自底向上执行命令
* 根据修改时间比目标新,确定更新
* 如果目标不依赖任何条件,则执行对应命令,以示更新
第三 两个函数
src = $(wildcard *.c)找到当前目录下所有后缀为.c的文件,赋值给src
obj = $(patsubst %.c,%.o, $(src))
把src变量里所有后缀为.c的文件替换成.
第四 三个变量
$@:表示规则中的目标
$<:表示规则中的第一个条件
$^:表示规则中的所有条件,组成一个列表,以空格隔开,如果这个列表中有重复的项则消除重复项。
$<:表示规则中的第一个条件
$^:表示规则中的所有条件,组成一个列表,以空格隔开,如果这个列表中有重复的项则消除重复项。