參考http://blog.csdn.net/liang13664759/article/details/1771246/函數
1、函數的調用語法spa
函數調用,如變量的使用,也是以「$」來標識的,語法以下:.net
$(<function> <arguments>)blog
或者:字符串
${<function> <arguments>}get
這裏,<function>是函數名,make支持的函數很少,<arguments>是函數的參數,參數間以逗號「,」分隔,而函數名和參數之間以「空格」分隔。函數調用以「$」開頭,圓括號或者花括號把函數名和參數括在一塊兒,感受很像一個變量。函數中的參數能夠使用變量,爲了風格的統一,函數和變量的括號最好統一同樣。字符串處理
示例:io
comma := ,function
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」
2、字符串處理函數
①、$(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」