Makefile模式规则引用依赖项中的干

Makefile模式规则引用依赖项中的干,makefile,gnu-make,Makefile,Gnu Make,我想要一个模式规则,其中包含从stem和使用通配符构建的依赖项,例如 $(FILES): %.o: %.c $(wildcard %*.c) 这似乎不起作用:在通配符函数中没有扩展stem%(请参阅),而在列出依赖项时,似乎无法识别自动变量$* 有没有一种(不太笨拙的)方法来做这样的事情?正如GNU make manual的第10.5.3节所述,自动变量(即$*是什么)在先决条件中不可用,但它也指的是一种变通方法,即二次扩展 如果我(和你)理解正确,像这样的事情应该可以满足你的要求: .SEC

我想要一个模式规则,其中包含从stem和使用通配符构建的依赖项,例如

$(FILES): %.o: %.c $(wildcard %*.c)
这似乎不起作用:在通配符函数中没有扩展stem%(请参阅),而在列出依赖项时,似乎无法识别自动变量$*


有没有一种(不太笨拙的)方法来做这样的事情?

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

如果我(和你)理解正确,像这样的事情应该可以满足你的要求:

.SECONDEXPANSION: $(FILES): %.o: %.c $$(wildcard $$**.c) .第二次扩展: $(文件):%.o:%.c$$(通配符$$**.c)
谢谢这正是我所需要的。应该指出的是,二次扩展只能从GNU Make 3.81获得。