語法:$(foreach var,list,text)
簡單地說,就是 for each var in list, change it to text。
對list中的每乙個元素,取出來賦給var,然後把var改為text所描述的形式。
例子:
objs := a.o b.o
dep_files :=
$(foreach f, $(objs)
, .
$(f)
.d) // 最終 dep_files := .a.o.d .b.o.d
語法:$(wildcard pattern)
pattern所列出的檔案是否存在,把存在的檔案都列出來。
例子:
src_files :=
$( wildcard *.c)
// 最終 src_files中列出了當前目錄下的所有.c檔案
語法:$(patsubst pattern,replacement,text)
尋找text中符合格式pattern的字,用replacement替換它們。pattern和replacement中可以使用萬用字元。
舉例:
subdir-y := c/ d/
subdir-y :=
$(patsubst %/, %, $(subdir-y)
) // 結果為:c d
語法:$(filter pattern…,text)
把text中符合pattern格式的內容,filter(過濾)出來、留下來。
舉例:
obj-y := a.o b.o c/ d/
dir :=
$(filter %/, $(obj-y)
) //結果為:c/ d/
語法:$(filter-out pattern…,text)
把text中符合pattern格式的內容,filter-out(過濾)出來、扔掉。
舉例:
obj-y := a.o b.o c/ d/
dir :=
$(filter-out %/, $(obj-y)
) //結果為:a.o b.o
參考資料 Makefile中的基本函式
makefile中常用的基本函式 1 subst subset 引數1,引數2,引數3 把引數3中的1替換成引數2 返回被替換的引數3 2 patsubst patsubset 模式引數,引數1,引數2 把引數2中復合模式引數的單詞替換成引數1 返回被替換後的引數2 3 wildcard wildc...
Makefile中的wilcard函式
在makefile規則中,會對萬用字元進行展開,但是在變數的定義和函式的引用的時候萬用字元就會失效,這種情況下若是想讓萬用字元有效,就需要使用函式 wildcard 使用方法是 wildcard pattern 在makefile中,它被展開為已經存在的 使用空格分開的 匹配此模式的所有檔案列表。如...
makefile常用函式
一 字串處理函式 1.subst from,to,text 函式名稱 字串替換函式 subst。函式功能 把字串 text 中的 from 字元替換為 to 返回值 替換後的新字串。2.patsubst pattern,replacement,text 函式名稱 模式替換函式 patsubst。函式...