Makefile常用函数整理
来源:互联网 发布:银行网络应急预案 编辑:程序博客网 时间:2024/05/16 07:56
http://blog.csdn.net/ustc_dylan/article/details/6963248
对上篇文章的函数进行了整理
函数名
函数
功能
例子
subst
$(subst <from>,<to>,<text> )
把字串<text>中的<from>字符串替换成<to>
$(subst ee,EE,feet on the street)
返回结果是“fEEtonthestrEEt”
patsubst
$(patsubst <pattern>,<replacement>,<text> )
查找<text>中的单词(以空格等分隔)是否
符合模式<pattern>,如果匹配的话,则以<replacement>替换。
$(patsubst %.c,%.o,x.c.c bar.c)
返回结果是“x.c.obar.o”
strip
$(strip <string> )
去掉<string>字串中开头和结尾的空字符
$(strip a b c )
结果是“abc”
findstring
$(findstring <find>,<in> )
在字串<in>中查找<find>字串。
$(findstring a,a b c)
第一个函数返回“a”字符串
filter
$(filter <pattern...>,<text> )
以<pattern>模式过滤<text>字符串中的单词,保留符合模式<pattern>的单词。可
以有多个模式。
sources := foo.c bar.c baz.s ugh.h
foo: $(sources)
cc $(filter %.c %.s,$(sources)) -o foo
$(filter %.c %.s,$(sources))返回的值是“foo.c ba bar.c baz.s
filter-out
$(filter-out <pattern...>,<text> )
以<pattern>模式过滤<text>字符串中的单词,去除符合模式<pattern>的单词。
objects=main1.o foo.o main2.o bar.o
mains=main1.o main2.o
$(filter-out $(mains),$(objects)) 返回值是“foo.o bar.o”。
sort
$(sort <list> )
给字符串<list>中的单词排序(升序)。
注:sort函数会去掉<list>中相同的单词。
word
$(word <n>,<text> )
取字符串<text>中第<n>个单词。
$(word 2,foobarbaz)返回值是“bar”。
wordlist
$(wordlist <s>,<e>,<text> )
从字符串<text>中取从<s>开始到<e>的单词串。<s>和<e>是一个数字。
$(wordlist 2,3,foobarbaz)返回值是“barbaz”。
words
$(words <text> )
统计<text>中字符串中的单词个数
注:如果我们要取<text>中最后的一个单词,我们可以这样:$(word $(words
<text> ),<text> )。
firstword
$(firstword <text> )
取字符串<text>中的第一个单词。
dir
$(dir <names...> )
从文件名序列<names>中取出目录部分。目录部分是指最后一个反斜杠(“/”)
之前的部分。如果没有反斜杠,那么返回“./”
$(dir src/foo.chacks)
返回值是“src/./”。
notdir
$(notdir <names...> )
从文件名序列<names>中取出非目录部分。非目录部分是指最后一个反斜杠(“/
”)之后的部分。
$(notdir src/foo.c hacks)
返回值是“foo.c hacks”。
suffix
$(suffix <names...> )
从文件名序列<names>中取出各个文件名的后缀。
$(suffix src/foo.c src-1.0/bar.c hacks)
返回值是“.c.c”。
basename
$(basename <names...> )
从文件名序列<names>中取出各个文件名的前缀部分。
$(basename src/foo.c src-1.0/bar.c hacks)
返回值是“src/foo src-1.0/bar hacks”。
addsuffix
$(addsuffix <suffix>,<names...> )
把后缀<suffix>加到<names>中的每个单词后面。
$(addsuffix .c,foo bar)返回值是“foo.cbar.c”。
addprefix
$(addprefix <prefix>,<names...> )
把前缀<prefix>加到<names>中的每个单词后面。
$(addprefix src/,foo bar)返回值是“src/foo src/bar”
join
$(join <list1>,<list2> )
把<list2>中的单词对应地加到<list1>的单词后面。如果<list1>的单词个数要比
<list2>的多,那么,<list1>中的多出来的单词将保持原样。如果<list2>的单词个数要比 <list1>多,那么,<list2>多出来的单词将被复制到<list2>中。
返回:返回连接过后的字符串。
$(join aaa bbb,111 222 333)返回值是“aaa111 bbb222 333”。
foreach
$(foreach <var>,<list>,<text> )
把参数<list>中的单词逐一取出放到参数<var>所指定的变量中,然后再执行<text>所包含的表达式
names := a b c d
files := $(foreach n,$(names),$(n).o)
$(name)中的单词会被挨个取出,并存到变量“n”中,“$(n).o”每次根 据“$(n)”计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以, $(files)的值是“a.o b.o c.o d.o”。
if
$(if <condition>,<then-part> )或或$(if <condition>,<then-part>,<else-part> )
如果<condition>为真(非空字符串),那个<then-part>会是整 个函数的返回值,否则,那么<else-part>会是整个函数的 返回值,此时如果<else-part>没有被定义,那么,整个函数返回空字串。
call
$(call <expression>,<parm1>,<parm2>,<parm3>...)
reverse = $(2) $(1)
foo = $(call reverse,a,b)
此时的foo的值就是“ba”
origin
$(origin <variable> )
告诉你这个变量是哪里 来的
返回值:
“undefined”:表示<variable>从来没有定义过
“default”:表示<variable>是一个默认的定义
“environment” :表示<variable>是一个环境变量
“file”:表示<variable>这个变量被定义在Makefile中。
command line”:表示<variable>这个变量是被命令行定义的
override”:表示<variable>是被override指示符重新定义的。
automatic” :表示<variable>是一个命令运行中的自动化变量。
shell
参数应该就是Shell的命令
把执行操作系统命令后的输出作为函数返回
- makefile 常用函数整理
- Makefile常用函数整理
- Makefile函数整理
- [makefile]makefile中常用函数
- Makefile 常用函数表
- Makefile 常用函数表
- Makefile 常用函数表
- Makefile 中的常用函数
- Makefile 常用函数表
- Makefile 常用函数表
- Makefile 常用函数表
- Makefile 常用函数表
- Makefile常用函数
- Makefile常用函数总结
- Makefile常用函数
- Makefile的常用函数
- Makefile常用函数表
- Makefile 常用函数表
- C语言:打印二元一次方程的根
- GridView插入头布局
- Dialog中弹出PopupWindow
- MySQL用户授权 和 bin-log日志 详解和实战
- C# windows服务
- Makefile常用函数整理
- Java中byte[]数组转十六进制String(利用Integer)
- SpringMVC源码总结(四)由StringHttpMessageConverter引出的客户端服务器端之间的乱码过程分析
- 在云服务器上使用FTP遇到的问题解决
- 命令行 TODO 工具中的王者
- MyEclipce免费方法
- 使用word发布csdn博客
- 可视化编程 Tips 之“图文混排 UIButton 的可视化编辑”
- windows7中Anaconda3-64位安装scrapy,以及pycharm导入工程