名稱:模式字符串替換函數——patsubst。
功能:查找<text>中的單詞(單詞以「空格」、「Tab」或「回車」「換行」分隔)是否符合模式<pattern>,若是匹配的話,則以<replacement>替換。函數
這裏,<pattern>能夠包括通配符「%」,表示任意長度的字串。若是<replacement>中也包含「%」,那麼,<replacement>中的這個「%」將是<pattern>中的那個「%」所表明的字串。測試
(能夠用「\」來轉義,以「\%」來表示真實含義的「%」字符)
返回:函數返回被替換事後的字符串。spa
示例:字符串
$(patsubst %.c,%.o, a.c b.c)it
把字串「a.c b.c」符合模式[%.c]的單詞替換成[%.o],返回結果是「a.o b.o」class
make中有個變量替換引用變量
對於一個已經定義的變量,可使用「替換引用」將其值中的後綴字符(串)使用指定的字符(字符串)替換。格式爲「$(VAR:A=B)」(或者「${VAR:A=B}」),擴展
意思是,替換變量「VAR」中全部「A」字符結尾的字爲「B」結尾的字。「結尾」的含義是空格以前(變量值多個字之間使用空格分開)。而對於變量其它部分的「A」字符不進行替換。file
例如: 引用
foo := a.o b.o c.o
bar := $(foo:.o=.c)
在這個定義中,變量「bar」的值就爲「a.c b.c c.c」。使用變量的替換引用將變量「foo」以空格分開的值中的全部的字的尾字符「o」替換爲「c」,其餘部分不變。
若是在變量「foo」中若是存在「o.o」時,那麼變量「bar」的值爲「a.c b.c c.c o.c」而不是「a.c b.c c.c c.c」。