■filter函数:
说明:从一个文字列中筛选单词(根据空格来区分单词),如果找到要找的单词就返回。”%”符号表示任意文字使用方法:$(filter pattern,text) => pattern:希望查找的单词, text:被查找的源文字列
例子:
text := abc def ghi jkl
test :
@echo $(filter a%c, $(text))
结果:abc
■filter-out函数:
说明:跟filter刚好相反,把没有找到的单词返回
使用方法:$(filter pattern,text) => pattern:不希望查找的单词, text:被查找的源文字列
例子:
text := abc def ghi jkl
test :
@echo $(filter-out a%c, $(text))
结果:def ghi jkl
■findstring函数:
说明:查找源字符串,返回要包含要查找字符的单词。注意不能使用模糊查找字符%
使用方法:$(findstring pattern,text) => pattern:希望查找的字符, text:被查找的源文字列
例子:
text := abc def ghi jkl
test :
@echo $(findstring ab, $(text))
结果:abc
■subst函数:
说明:包含了查找,以及置换功能。注意不能使用模糊查找字符%
使用方法:$(subst search-str, rep_str, target)
例子:
text := test1.c test2.c test3.c
test :
@echo $(subst .c,.o $(text))
结果:test1.o test2.o test3.o
■patsubst函数:
说明:功能跟函数subst一样,也是查找,替换的功能,但是可以模糊查找并替换找到的结果
使用方法:$(patsubst search-str, rep_str, target)
例子:
text := /home/usr/
test :
@echo $(patsubst %/,% $(text))
结果:/home/usr
■words函数:
说明:返回字符串中的单词数
使用方法:$(words text)
例子:
text := abc def ghi jkm
test :
@echo $(words,$(text))
结果:4
■word函数:
说明:返回字符串中的第N个单词,默认的第一个单词为1
使用方法:$(word, n, text)
例子:
text := abc def ghi jkm
test :
@echo $(word 2, $(text))
结果:def
■firstword函数:
说明:返回字符串头个单词,跟$(word 1, text)一样
使用方法: $(firstword, text)
例子:
text := abc def ghi jkm
test :
@echo $(firstword $(text))
结果:abc
■wordlist函数:
说明:指定范围的单词一栏返回
使用方法: $(wordlist start, end, text)
例子:
text := abc def ghi jkm
test :
@echo $(wordlist 2, 3, $(text))
结果:def ghi
■sort函数:
说明:排列文字列的单词
使用方法:$(sort text)
例子:
text := def ghi jkm abc
test :
@echo $(sort $(text))
结果:abc def ghi jkm
■call函数:
说明:调用makfile内定义的函数
使用方法:$(call macro-name, [param...])
例子:
define call-test
@echo "paramter test $1"
endif
default:
$(call call-test, dayo)
结果:paramter test dayo
■shell函数:
说明:把命令的跟参数一起,在子shell里使用
使用方法: $(shell cmd)
例子:
TEST := $(shell ls -al)
all:
@echo $(TEST)
结果:
■wildcard函数:
说明:取得对象物一栏,“*”可模糊查找
使用方法:
例子:
SRC_FILES := $(wildcard *.cpp *.h)
echo $SRC_FILES
结果:
■dir函数:
说明:返回药查找文件的目录
使用方法:$(dir list)
例子:
SRC_LIST := $(sort $(dir $(shell find . -name '*.cpp')))
结果:
■notdir函数:
说明:与dir命令相反返回要查找的文件
使用方法:$(notdir list)
例子:
SRC_LIST := $(sort $(notdir $(shell find . -name '*.cpp')))
结果:
■suffix函数:
说明:返回参数的后缀
使用方法:$(suffix list)
例子:
SRC_LIST := $(sort $(suffix $(shell find . -name 'aa*')))
结果:
■basename函数:
说明:返回要查找的目录跟文件名(不包括后缀)
使用方法:$(basename list)
例子:
SRC_LIST:=$(basename $(shell find . -name '*.cpp'))
结果: