文件名:Makefile.mk
%: foo
@echo %: $@ with foo
foo:
@echo foo
运行
$ make -f Makefile.mk test
输出:
foo
%: Makefile.mk with foo
%: test with foo
我在GNUMake3.81版本中运行这个。我不明白,为什么还打印文件名(%:Makefile.mk with foo)。有人能给我解释一下吗?
这是因为如何重新生成makefile。也就是说
有时makefile可以从的其他文件重新生成
和
如果一个makefile可以从其他文件中重新生成,那么您可能希望make获得在中读取的makefile的最新版本
所以
在读取所有makefile后,make会将每个文件视为目标,并尝试更新它。
然后与你的匹配规则相匹配,并触发你的观看方式。
如果将显式Makefile.mk: ;
目标添加到生成文件中,它将覆盖匹配任何内容的目标并防止这种情况发生。