参考http://blog.csdn.net/liang13664759/article/details/1771246/
一、函数的调用语法
函数调用,如变量的使用,也是以“$”来标识的,语法如下:
$(<function> <arguments>)
或者:
${<function> <arguments>}
这里,<function>是函数名,make支持的函数不多,<arguments>是函数的参数,参数间以逗号“,”分隔,而函数名和参数之间以“空格”分隔。函数调用以“$”开头,圆括号或者花括号把函数名和参数括在一起,感觉很像一个变量。函数中的参数可以使用变量,为了风格的统一,函数和变量的括号最好统一一样。
示例:
comma := ,
empty :=
spae := $(empty) $(empty)
foo := a b c
bar := $(subst $(space), $(comma), $(foo))
示例重,$(comma)的值是一个逗号。$(space)使用了$(empty)定义了一个空格,$(foo)的值是“a b c”,$(bar)的定义调用了“subst”替换函数,有三个参数,把$(foo)中的$(space)替换成$(comma),所以$(bar)的值是“a,b,c”
二、字符串处理函数
①、$(subst <from>,<to>,<text>)
名称:字符串替换函数==subst
功能:把字符串<text>中的<from>替换成<to>
返回:替换过后的字符串
示例:
$(subst ee,EE,feet on the street)=====》》》返回结果:fEEt on the srEEt
②、$(patsubst <pattern>,<replacement>,<text>)
名称:模式字符串替换函数---patsubst
功能:查找<text>中的单词是否符合模式<pattern>,如果匹配,则以<replacement>替换。<pattern>可以包含通配符“%”,表示任意长度的字串。如果<replacement>中也包含“%”,那么,<replacement>中的这个“%”是<pattern>中的“%”所代表的字串。
返回:替换后的字符串
示例:$(patsubst %.c,%.ox.c.c bar.c)===》》》把字串“x.c.c bar.c”符合模式[%.c]的单词替换成[%.o],返回结果是“x.c.o bar.o”