我想要一个带有依赖关系的模式规则,这些依赖关系是从词干和使用通配符构建的,例如
$(FILES): %.o: %.c $(wildcard %*.c)
这似乎不起作用:词干%未在通配符函数中展开(请参阅http://www.gnu.org/software/make/manual/html_node/Pattern-Rules.html),而列出依赖项时似乎无法识别自动变量$ *。
是否有(不太太愚蠢)的方式做这样的事情?
答案 0 :(得分:21)
正如GNU make手册第10.5.3节所述,自动变量($*
是)在先决条件中不可用,但它也指的是一种解决方法,即二次扩展。
如果我理解它(和你),这样的事情应该做你想做的事情:
.SECONDEXPANSION: $(FILES): %.o: %.c $$(wildcard $$**.c)