通用规则和模式匹配
模式规则可以减少我们重复相同命令的工作量。
- %.o: %.c
- $(CC) $(CFLAGS) -c $<
$< 是自动变量之一,代表依赖列表中的第一项。
自动化变量
Makefile提供了一系列自动化变量,它们在规则的命令中非常有用:
$@ 表示规则中的目标文件名;
$^ 表示所有的依赖文件列表;
$< 表示第一个依赖文件;
$? 表示所有比目标新的依赖文件列表。
函数的使用
Makefile中内置了许多函数,用以执行字符串操作、文件操作等。
例如,获取源文件列表:
- SRC=$(wildcard *.c)
- OBJ=$(patsubst %.c,%.o,$(SRC))
控制Make的行为
make -B 强制重新编译所有目标;
make -n 显示将要执行的命令而不实际执行;
make -f <file> 指定使用其他名称的Makefile文件;
make -j 允许并行执行(多核编译)。
|