makefile 文件名处理函数
1. $(dir NAMES...)
函数名称:取目录函数--dir
函数功能: 从文件名序列"NAMES..."中取出各个文件名中的目录部分.
文件名的目录部分就是包含在文件名中的最后一个斜线("/")(包括斜线)之前的部分.
返回值: 空格分隔的文件名序列"NAMES..."中每个文件的目录部分.
函数说明: 如果文件名没有斜线,则认为此文件为当前目录("./")下的文件.
2. $(notdir NAMES...)
函数名称:取文件名函数--notdir
函数功能: 从文件名序列"NAMES..."中取出各个文件名中的非目录部分.
文件名的目录部分就是包含在文件名中的最后一个斜线("/")(包括斜线)之前的部分.
返回值: 空格分隔的文件名序列"NAMES..."中每个文件的非目录部分.
函数说明: 如果"NAMES..."中存在不包含斜线的文件名, 则不改变此文件名. 以反斜线结尾的
文件名, 使用空串代替, 因此当“NAMES...”中存在多个这样的文件名时, 返回结果中分隔
各个文件名的空格数不确定!(这是此函数的一个缺陷, 可以将结果调用strip函数格式化一下)
3. $(suffix NAMES...)
函数名称:取后缀函数--suffix
函数功能: 从文件名序列"NAMES..."中取出各个文件名的后缀.
后缀就是以文件名中的最后一个"."(包括".")开始的部分. 如果文件名中不包含".", 则为空.
返回值: 空格分隔的文件名序列"NAMES..."中每个文件的后缀序列.
函数说明: 如果"NAMES..."是多个文件名时, 返回值是多个以空格分隔的单词序列. 如果文件名没有后缀
部分, 则返回空.
4. $(basename NAMES...)
函数名称:取前缀函数--basename
函数功能: 从文件名序列"NAMES..."中取出各个文件名的前缀.
前缀就是以文件名中的最后一个"."(不包括".")之前的部分. 如果文件名中不包含".", 则为其自身.
返回值: 空格分隔的文件名序列"NAMES..."中每个文件的前缀序列.
函数说明: 如果"NAMES..."是多个文件名时, 返回值是多个以空格分隔的单词序列. 如果文件名没有前缀
部分, 则返回空.
5. $(addsuffix SUFFIX, NAMES...)
函数名称:加后缀函数--addsuffix
函数功能: 为文件名序列"NAMES..."中的各个文件名添加后缀"SUFFIX"字串.
返回值: 单空格分隔的添加了后缀的文件名序列"NAMES...".
6. $(addprefix PREFIX, NAMES...)
函数名称:加前缀函数--addprefix
函数功能: 为文件名序列"NAMES..."中的各个文件名添加前缀"PREFIX"字串.
返回值: 单空格分隔的添加了前缀的文件名序列"NAMES...".
7. $(join LIST1, LIST2)
函数名称:单词连接函数--join.
函数功能:将字串"LIST1"和字串"LIST2"各单词进行对应连接.
就是将"LIST2"中的第一个单词追加"LIST1"第一个单词字后合并为一个单词;
将"LIST2"中的第二个单词追加到"LIST1"的第一个单词之后并合并为一个单词, ...依次列推.
返回值:单空格分割的合并后的字(文件名)序列.
函数说明:如果"LIST1"和"LIST2"中的字数目不一致时, 两者中多余部分将被作为返回序列的一部分.
8. $(wildcard PATTERN)
函数名称:获取匹配模式文件名函数--wildcard
函数功能:列出当前目录下所有符合模式"PATTERN"格式的文件名.
返回值:空格分割的, 存在当前目录下的所有符合模式"PATTERN"的文件名.
函数说明:"PATTERN"使用shell可识别的通配符, 包括"?"(单字符),"*"(多字符)等.
posted on 2012-04-24 08:49
Lshain 阅读(276)
评论(0) 编辑 收藏 引用 所属分类:
嵌入式