1、wildcard : 扩展通配符
2、notdir : 去除路径
3、patsubst :替换通配符 格式:$(patsubst <pattern>,<replacement>,<text> )
1、
src=$(wildcard *.c ./sub/*.c)
会把./ 和/sub 下的 .c全部展开;
2、
dir=$(notdir $(src))
去掉路径信息
3、
obj=$(patsubst %.c,%.o,$(dir) )
在$(patsubst %.c,%.o,$(dir) )中,patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o
可以简写为:
$(dir,.c=.o)
makefile 中 $@ $^ %< 使用:
l $@--目标文件
l $^--所有的依赖文件
l $<--第一个依赖文件
原文:http://www.cnblogs.com/RedArcher/p/5227418.html