Maekfile中表示文件名时可使用通配符,Makefile中的通配符用法和含义和Linux的shell完全相同,可使用的通配符有:“*”, “?”, “[…]",Makefile中通配符可以出现在以下两种场合:
- 规则的目标和依赖中,make在读取Makefile时会自动对其匹配处理
- 规则的命令中,通配符的通配处理是在shell执行此命令时完成的。其它情况下,则需要使用函数来实现,如wildcard函数
通配符的使用:
-
通配符用在规则的命令中,表示当前目录下的所有以.o结尾的文件
clean: rm -f *.o
-
通配符用在规则的依赖文件中
print: *.c lpr -p $? touch print
print是一个空目标文件,$?表示依赖文件中所有修改过的文件
-
通配符用在make内嵌函数中
objects := $(patsubst %.c, %.o, $(wildcard *.c)) target : $(objects) $(CC) -o target $(objects)