我有一个 Makefile 规则,如下所示:
%.b : %.a
[run some commands...]
我想重写我的 Makefile 以便从 %.a 到 %.b 的所有转换都由命令的一次执行处理,而不是每个文件一次。
我尝试了以下方法:
%.b : someDummyFile
someDummyFile :
[run some commands]
问题是即使第一个规则没有请求创建 someDummyFile 的规则也会执行,从而导致不良行为。我猜没有依赖关系的规则会一直执行,即使它们的目标没有被其他规则使用?
我在这里想念什么?
在尝试调试此问题时,我删除了对第二条规则的所有引用。例如,我将以下规则插入到现有的 Makefile 中,为什么即使没有其他规则引用它,它也会被执行?
HELLOWORLD :
echo "# HELLO WORLD! THE NEXT LINE WILL TRIGGER AN ERROR"
DFASDA