Makefile函数语法
$(function arguments)
译作: $(函数名 参数列表)
Makefile字符串函数
1. subst
说明:字符替换函数,将字符串text中的from字符,完全替换成to。
语法:$(subst from,to,text)
示例:$(subst from ee,EE,feet on the street)
结果:fEEt on the strEEt
2. patsubst
说明:字符替换函数,将字符串text以空格为分格符,切分成单词,将满足匹配规则pattern的词替换成replacement。匹配符为%,若pattern中包含的常量字符包含%,需要用到转义字符 \
语法:$(patsubst pattern,replacement,text)
示例:$(patsubst %.c,%.o,main.c test.c)
结果:main.o test.o
3. strip
说明:去掉字符串text中头部和尾部的所有空字符,当text中,相邻两个字符间包含两个及以上的空字符,将去掉多余的空字符,只保留一个。这个函数对于判断包含空字符的字符串是否是空串。
语法:$(strip text)
示例:$(strip a b c )
结果:a b c
4. findstring
说明:在in中查找是否存在字符串find,如果存在则返回find,否则返回空字符。
语法:$(findstring find,in)
示例:$(findstring a,a b c)
结果:a
5. filter
说明:返回字符串text以空格为分隔符的满足匹配规则pattern的字符串列表。这里面的pattern可以为多个。
语法:$(filter pattern…, text)
示例:
sources=main.c test.m func.cpp
$(filter %.c %.m, $(sources))
结果:main.c test.m
6. filter-out
说明:是filter的相反操作,去掉text中不满足匹配规则pattern的字符串。
语法:$(filter-out pattern…, text)
示例:$(filter-out pattern,text)
sources=main.c test.m func.s
$(filter-out %.m %s,$(sources))
结果:main.c
7. sort
说明:将list中的字符串进行排序,并去掉重复出现的字符串。
语法:$(sort list)
示例:$(sort foo bar bar lose)
结果:bar foo lose
8. word
说明:返回text中的第n个字符串。
语法:$(word n,text)
示例:$(word 2,foo bar lose)
结果:bar
9. wordlist
说明:返回text中从第s个字符串到第e个字符串之间的所有字符串。
语法:$(wordlist s,e,text)
示例:$(wordlist 2,4,foo bar lose key)
结果:bar lose key
10. words
说明:返回text中的字符串数量。
语法:$(words text)
示例:$(words foo bar lose)
结果:3
11. firstword
说明:返回names中的第一个字符串,names以空格进行分隔。
语法:$(firstword names…)
示例:$(firstword foo bar lose)
结果:foo
12. lastword
说明:返回names中的最后一个字符串,names以空格进行分隔。
语法:$(lastword names…)
示例:$(lastword foo bar lose)
结果:lose