Makefile文件(七)_使用函數
參考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”
Makefile文件(七)_使用函數