1.make中建立的其他语言的规则
SCCS , RCS , ar, lex 和yacc 命令
2.为了建立一个目标,make会遍历一连串的依赖关系;这个是为 决定何处开始创建;
如果没有找到目标文件;make按照有限顺序查找源文件
3.了了生成目标文件,它首先查找带有(*.c,*.f或*.s)后缀的文件,如果一个都没有找到,它会继续寻找带*.c的后缀文件并继续搜搜;
直到找到一个源文件。如果没有找到一个源文件;make就会报告一个异常。
一、默认模式规则GUN make
%是通用匹配符即通配符
1 %.o:%c: 2 $(CC) $(CFLAGS) -c $<
二、默认的后缀规则
SUFFIXES:.o.c.s
.c.o
$(CC) $(CFLAGS) -c $<
示例:Makefile 案例文件
1 ###############定义变量################## 2 CC:=gcc 3 CFLAGS:=-Iinclude 4 CFLAGS+= -c 5 TARGET:=bin/mymath_test 6 DEPEND:=obj/mymath.o 7 DEPEND+=obj/mymath_test.o 8 9 $(TARGET):$(DEPEND)#开始执行 10 $(CC) -o $@ $^ 11 12 #############采用模式规则编译########### 13 obj/%.o:src/%.c 14 $(CC) -o $@ $(CFLAGS) $^ 15 16 17 #############常规规则编译################# 18 #obj/mymath.o:src/mymath.c 19 # $(CC) -o $@ $(CFLAGS) $^ 20 #obj/mymath_test.o:src/mymath_test.c 21 # $(CC) -o $@ $(CFLAGS) $^ 22 ################################################################# 23 24 .PHONY:clean#指定clean是虚目标 25 ###################make clean 清除生成的文件###################### 26 clean: 27 rm -fr $(TARGET) $(DEPEND)