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

posted @ 2020-07-13 14:07  wangha  阅读(864)  评论(0编辑  收藏  举报