1. 程式人生 > >Makefile文件(七)_使用函數

Makefile文件(七)_使用函數

href 單詞 sdn 函數 arguments pat comm sub 函數調用

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