一直弄Android,Makefile中的函数用法忘的差不多了,写几个demo回顾下。
Makefile中的函数和c中函数多,有函数名,参数,返回值,返回值一般都为字符串。格式:value := $(fun arg,call),value 为需要复制的变量;fun为函数名;arg为参数,call为调用函数的地方。跟c语言类似 value = fun(x)。
1.wildcard
该函数书名为扩展通配符,其实就相当于ls *.* dir这个命令,会把dir目录下的*.*显示出来。
src := $(wildcard *.c *.h)
all:
@echo $(src)
显示当前目录下的 *.c和*.h,如果当面目录下有1.c和1.h。执行结果是1.c 1.h ,如果要显示test目录下,可以这样写 src := $(wildcard test/*.c)。
2.patsubst
该函数学名为替换通配符,其实就相当于mv *.x *.y,会把某个目录下面的*.x替换为*.y。
src := $(wildcard *.c)
pat := $(patsubst %.c,%.o,$(src))
all:
@echo $(pat)
会当前目录下所以的.c替换为.o输出出来。
3.stip
去空格函数,该函数会去掉字符串首尾的空格。
test := $(strip test )
all:
@echo $(test)
会去掉test首尾的空格。
4.dir
显示当前目录。