makefile的特性-部分语法记录
1.变量定义
1.1 = 来实现a1= $(a2)a2 = lib.o1.2 := 来实现, 这种不能通过后面的变量来定义a1 := $(a2) b.0a2 := lib.o1.3 += 来实现a1= b.0a2 += a11.4 ?= 来实现,这种方式前面如果定义了,后面定义则无效a1 := a.oa1 ?= lib.o //结果 a1 = a.o
2.文件查找
2.1 VPATH = 目录 : 目录VPATH = /usr : /proc 在当前路径查找不到后,这样会依次按顺序查找这些目录2.2 vpath %.c /usr : /proc 在当前路径查找不到后,这样会依次按顺序查找这些目录的C文件
3. 常用的基本函数
3.1 $(subst 参数1,参数2 , 参数3)把参数3中的参数1替换成参数2,然后返回被替换后的参数33.2 $(patsubst 模式格式,参数1,参数2)把参数2中符合模式的单词替换成参数1中ret = $(patsubst %c,%.o,a.c b.c) //ret 为a.o b.o3.3. $(wildcard 模式参数)列出当前目录下所有符合参数的文件名ret := $(wildcard *.c) //当前目录下所有C文件3.4 $(findstring 参数1, 参数2)在参数2中查找参数13.5 $(filter 模式参数,参数1)从参数1中筛选出符合模式参数的字符串obj = a.c b.c a.h b.hret := $(filter %.c,$(obj)) //ret = a.c b.c3.6 $(dir 参数) 从参数中取出目录部分ret := $(dir /home/usr/lib/a.o) //ret = /home/usr/lib/ 3.7 $(if 条件参数, 执行参数)如果条件参数为空,运行执行参数部分