1、foreach 函数
这个函数是用来做循环用的,Makefile中 的foreach函数几乎是仿照于Unix标准Shell (/bin/sh)中的for语句,
或是C- Shell (/bin/csh)中的foreach语句而构建的。它的语法是:
$(foreach <var>,<list>,<text>)
这个函数的意思是,把参数<list>中的单词逐一取出放到参数<var>所指定的变量中,然
后再执行<text>所包含的表达式。每一次<text>会返回一个字符串,循环过程中,
<text>所返回的每个字符串会以空格分隔,最后当整个循环结束时,<text>所返回的每
个字符串所组成的整个字符串 (以空格分隔)将会是foreach函数的返回值。
所以,<var>最好是一个变量名,<list>可以是一个表达式,而<text>中一般会使用
<var>这个参数来依次枚举<list>中的单词。举个例子:
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”。
注意,foreach中的<var>参数是一个临时的局部变量,foreach函数执行完后,参数
<var>的变量将不在作用,其作用域只在foreach函数当中。
2、 wildcard: 扩展通配符 例如将* 进行匹配
3、notdir: 去除目录 类似于basename的用法
4、字符串处理函数
$(subst <from>,<to>,<text>)
名称:字符串替换函数——subst。
功能:把字串<text>中的<from>字符串替换成<to>。
返回:函数返回被替换过后的字符串。
示例:
$(subst ee,EE,feet on the street)