1. 程式人生 > 實用技巧 >Makefile中的檔名操作函式

Makefile中的檔名操作函式

Makefile中的檔名操作函式

參考:https://seisman.github.io/how-to-write-makefile/functions.html#patsubst

dir

功能:獲取檔案 <names> 的目錄。目錄是指最後一個反斜槓( / )之前的部分。如果沒有反斜槓,那麼返回 ./

$(dir <names...>)

返回:返回檔名 <names> 的目錄部分。

示例: $(dir src/foo.c hacks) 返回值是 src/ ./

notdir

功能:從檔名序列 <names> 中取出非目錄部分。非目錄部分是指最後一個反斜槓( /

)之後的部分。

$(notdir <names...>)

返回:返回檔名序列 <names> 的非目錄部分。

示例: $(notdir src/foo.c hacks) 返回值是 foo.c hacks

suffix

功能:從檔名序列 <names> 中取出各個檔名的字尾。

$(suffix <names...>)

返回:返回檔名序列 <names> 的字尾序列,如果檔案沒有後綴,則返回空字串。

basename

功能:從檔名序列 <names> 中取出各個檔名的字首部分。

$(basename <names...>)

返回:返回檔名序列 <names> 的字首序列,如果檔案沒有字首,則返回空字串。

addsuffix

功能:把字尾 <suffix> 加到 <names> 中的每個單詞後面。

$(addsuffix <suffix>,<names...>)

返回:返回加過後綴的檔名序列。

addprefix

功能:把字首 <prefix> 加到 <names> 中的每個單詞後面。

$(addprefix <prefix>,<names...>)

返回:返回加過字首的檔名序列。

join

功能:把 <list2>

中的單詞對應地加到 <list1> 的單詞後面。如果 <list1> 的單詞個數要比 <list2> 的多,那麼, <list1> 中的多出來的單詞將保持原樣。如果 <list2> 的單詞個數要比 <list1> 多,那麼, <list2> 多出來的單詞將被複制到 <list1> 中。

$(join <list1>,<list2>)

返回:返回連線過後的字串。

示例: $(join aaa bbb , 111 222 333) 返回值是 aaa111 bbb222 333