通用 Makefile(及makefile中的notdir,wildcard和patsubst)
notdir,wildcard和patsubst是makefile中幾個有用的函數,以前沒留意過makefile中函數的用法,今天稍微看看~
1、makefile裏的函數
makefile裏的函數使用,和取變量的值類似,是以一個‘$’開始,然後是一個括號裏面是函數名和需要的參數列表,多個變量用逗號隔開,像這樣
return = $(functionname arg1,arg2,arg3...)。
可能這裏的‘$‘更像是從某個地址取值類似的操作。
2、 wildcard
使用:SRC = $(wildcard *.c ./foo/*.c)
搜索當前目錄及./foo/下所有以.c結尾的文件,生成一個以空格間隔的文件名列表,並賦值給SRC.當前目錄文件只有文件名,子目錄下的文件名包含路徑信息,比如./foor/bar.c。
3、notdir
使用:SRC = $(notdir wildcard)
去除所有的目錄信息,SRC裏的文件名列表將只有文件名。
4、patsubst
使用:OBJ = $(patsubst %.c %.o $(SRC))
patsubst是patten substitude的縮寫,匹配替代的意思。這句是在SRC中找到所有.c 結尾的文件,然後把所有的.c換成.o。
########################################################### # Generic makefile # # by George Foot # email:[email protected]
通用 Makefile(及makefile中的notdir,wildcard和patsubst)