makefile里的函数
makefile里的函数使用,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样
return = $(functionname arg1,arg2,arg3…)。
可能这里的’$’更像是从某个地址取值类似的操作。
1、 wildcard
使用:SRC = $(wildcard *.c ./foo/*.c)
搜索当前目录及./foo/下所有以.c结尾的文件,生成一个以空格间隔的文件名列表,并赋值给SRC.当前目录文件只有文件名,子目录下的文件名包含路径信息,比如./foor/bar.c。
高级用法:
patsubs 函数的作用是使用目标字符(格式)替换源字符(格式),函数返回替换以后的结果,常常搭配通配符 % 使用,% 表示任意长度的字串,如果 <src_pattern> 和 <dst_pattern> 都包含 % ,那么此时 % 表示的字符内容是一样的。
# 将 <text> 中的 源格式 <src_pattern> 替换成目标格式 <dst_pattern>
ret = $(patsubst <src_pattern>,<dst_pattern>,<text>)
例如:将所有满足后缀为 .cpp 格式的字符串替换为 后缀为 .o 格式
$(patsubst %.cpp,%.o,add.cpp bar.cpp)
结果: