1. 程式人生 > 實用技巧 >makefile學習筆記-7

makefile學習筆記-7

3、檔名操作函式

(1)dir

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