Makefile中的檔名操作函式
阿新 • • 發佈:2020-07-13
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
。