Makfile笔记——patsubst函数、foreacch函数、wildcard函数

patsubst函数:

功能:查找text中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式pattern,如果匹配的话,则以replacement替换。
这里,pattern可以包括通配符“%”,表示任意长度的字串。如果replacement中也包含“%”,那么,replacement中的这个“%”将是pattern中的那个“%”所代表的字串。(可以用“\”来转义,以“%”来表示真实含义的“%”字符)。

例如:INCDIRS := imx6ul bsp/clk bsp/led bsp/delay
INCLUDE := $(patsubst %, -I %, $(INCDIRS))
效果:INCDIRS :=-I imx6ul -I bsp/clk -I bsp/led -I bsp/delay


wildcard函数:

功能:$(wildcard PATTERN),获取匹配 PATTERN 的所有对象,返回值为当前目录下匹配PATTERN条件的使用空格作为间隔的列表。

例如:SRC = $(wildcard *.c),获取当前目录下的.c文件并以空格为间隔。


foreach函数:

功能:Makefile常用循环函数,函数常用格式: $(foreach var, list, text),该函数从list参数中逐一取出var参数中,然后执行text表达式,每次返回一个字符串,最后返回值为以空格为间隔的之前单次循环的所有字符串集合。

例如:SRCDIRS := project bsp/clk bsp/led bsp/delay
SFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S))

效果:将SRCDIRS中的元素逐一读出到dir,然后执行$(wildcard $(dir)/*.S)),最终效果就是将SRCDIRS中的所有.S文件读出并以空格间隔


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值