Makefile模式规则引用依赖关系中的词干

时间:2011-07-09 19:46:01

标签: makefile gnu-make

我想要一个带有依赖关系的模式规则,这些依赖关系是从词干和使用通配符构建的,例如

$(FILES): %.o: %.c $(wildcard %*.c)

这似乎不起作用:词干%未在通配符函数中展开(请参阅http://www.gnu.org/software/make/manual/html_node/Pattern-Rules.html),而列出依赖项时似乎无法识别自动变量$ *。

是否有(不太太愚蠢)的方式做这样的事情?

1 个答案:

答案 0 :(得分:21)

正如GNU make手册第10.5.3节所述,自动变量($*是)在先决条件中不可用,但它也指的是一种解决方法,即二次扩展。

如果我理解它(和你),这样的事情应该做你想做的事情:

.SECONDEXPANSION:
$(FILES): %.o: %.c $$(wildcard $$**.c)