Makefile:这是什么语法:$(@:foobar _%=%)?

时间:2014-06-11 19:19:29

标签: makefile

我有以下Makefile片段,我不太明白。特别是$(@:foobar_%=%)的含义是什么?感谢。

foobar_test:
        @echo $(@:foobar_%=%) # will print test

1 个答案:

答案 0 :(得分:2)

这是Substitution Reference

另一种类型的替换参考允许您使用patsubst函数的全部功能。它具有与上述'$(var:a = b)'相同的形式,但现在必须包含单个'%'字符。这种情况相当于'$(patsubst a,b,$(var))'。有关patsubst函数的说明,请参阅字符串替换和分析的函数。

For example:

     foo := a.o b.o c.o
     bar := $(foo:%.o=%.c)

sets ‘bar’ to ‘a.c b.c c.c’.