makefile中的函式

2021-10-01 02:45:19 字數 1369 閱讀 7336

語法:$(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。函式...