makefile學習筆記-7
阿新 • • 發佈:2020-08-04
3、檔名操作函式
(1)dir
$(dir <names...>)
- 名稱:取目錄函式——dir。
- 功能:從檔名序列
<names>
中取出目錄部分。目錄部分是指最後一個反斜槓(/
)之前的部分。如果沒有反斜槓,那麼返回./
。 - 返回:返回檔名序列
<names>
的目錄部分。 - 示例:
$(dirsrc/foo.chacks)
返回值是src/./
。
$(notdir <names...>)
- 名稱:取檔案函式——notdir。
- 功能:從檔名序列
<names>
中取出非目錄部分。非目錄部分是指最後一個反斜槓(/
- 返回:返回檔名序列
<names>
的非目錄部分。 - 示例:
$(notdirsrc/foo.chacks)
返回值是foo.chacks
。
$(suffix <names...>)
- 名稱:取字尾函式——suffix。
- 功能:從檔名序列
<names>
中取出各個檔名的字尾。 - 返回:返回檔名序列
<names>
的字尾序列,如果檔案沒有後綴,則返回空字串。 - 示例:
$(suffixsrc/foo.csrc-1.0/bar.chacks)
返回值是.c.c
。
$(basename <names...>)
- 名稱:取字首函式——basename。
- 功能:從檔名序列
<names>
中取出各個檔名的字首部分。 - 返回:返回檔名序列
<names>
的字首序列,如果檔案沒有字首,則返回空字串。 - 示例:
$(basenamesrc/foo.csrc-1.0/bar.chacks)
返回值是src/foosrc-1.0/barhacks
。
$(addsuffix <suffix>,<names...>)
- 名稱:加字尾函式——addsuffix。
- 功能:把字尾
<suffix>
加到<names>
中的每個單詞後面。 - 返回:返回加過後綴的檔名序列。
- 示例:
$(addsuffix.c,foobar)
返回值是foo.cbar.c
。
$(addprefix <prefix>,<names...>)
- 名稱:加字首函式——addprefix。
- 功能:把字首
<prefix>
加到<names>
中的每個單詞前面。 - 返回:返回加過字首的檔名序列。
- 示例:
$(addprefixsrc/,foobar)
返回值是src/foosrc/bar
。
$(join <list1>,<list2>)
- 名稱:連線函式——join。
- 功能:把
<list2>
中的單詞對應地加到<list1>
的單詞後面。如果<list1>
的單詞個數要比<list2>
的多,那麼,<list1>
中的多出來的單詞將保持原樣。如果<list2>
的單詞個數要比<list1>
多,那麼,<list2>
多出來的單詞將被複制到<list1>
中。 - 返回:返回連線過後的字串。
- 示例:
$(joinaaabbb,111222333)
返回值是aaa111bbb222333
。