- patsubst
patsubst
- $(patsubst <pattern>,<replacement>,<text>)
名称:模式字符串替换函数。
功能:查找
<text>中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式<pattern>,如果匹配的话,则以<replacement>替换。这里,<pattern>可以包括通配符%,表示任意长度的字串。如果<replacement>中也包含%,那么,<replacement>中的这个%将是<pattern>中的那个%所代表的字串。(可以用\来转义,以\%来表示真实含义的%字符)返回:函数返回被替换过后的字符串。
示例:
- $(patsubst %.c,%.o,x.c.c bar.c)
把字串 x.c.c bar.c 符合模式 %.c 的单词替换成 %.o ,返回结果是x.c.o bar.o
- 备注:这和我们前面“变量章节”说过的相关知识有点相似。如
$(var:<pattern>=<replacement>;)相当于$(patsubst <pattern>,<replacement>,$(var)),而$(var: <suffix>=<replacement>)则相当于$(patsubst %<suffix>,%<replacement>,$(var))。
例如有:
- objects = foo.o bar.o baz.o,
那么, $(objects:.o=.c) 和 $(patsubst %.o,%.c,$(objects)) 是一样的。
