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 。

浙公网安备 33010602011771号