在规则体中使用的包含%
匹配项的特殊Makefile变量的名称是什么?
作为一个例子,我想像这样使用它:
%.o: %.c
@echo Matched $MATCH
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
我把$MATCH
放在那里因为我不记得那个特殊模式匹配变量的实际名称。
换句话说,如果用户说make foo.c
我想输出Matched foo
。
我没有找到here,但我存在是因为我之前使用过它...
答案 0 :(得分:2)
从GNU Make software manual开始,您引用的特殊变量是$*
,隐式词干匹配:
隐式规则匹配的词干(请参阅模式匹配)。 如果目标为
dir/a.foo.b
且目标模式为a.%.b
,则词干为dir/foo
。 词干对于构造相关文件的名称非常有用。
答案 1 :(得分:0)
我没有看到特定的变量,但这里有一个解决方案:
%.o: %.c
@echo Matched `basename $@ .o`
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@