将任何模式规则与依赖项匹配



文件名: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: ;目标添加到生成文件中,它将覆盖匹配任何内容的目标并防止这种情况发生。

相关内容

最新更新