Makefile:Match-Anything Pattern Rule

时间:2018-05-09 11:10:40

标签: makefile

我有一个主要的Makefile,它将Makefile放在子文件夹中。出于测试目的,我想在主Makefile的末尾添加Match-Anything规则。 这条规则是:

%:
     make -e -C subdir $@

此规则是否存在任何违规行为?

1 个答案:

答案 0 :(得分:1)

我认为你的意思是“con”,如“pro or con”,而不是“cont”。 “Con”是拉丁语“contra”的缩写。

对于您的问题,添加新的“匹配任何内容”规则的缺点是,任何不存在的文件都将尝试使用此规则创建。例如,假设您运行include foo.mkfoo.mk不存在... make将尝试通过运行您的规则来构建foo.mk。基本上它可能会令人困惑。可能会有一些性能影响;如果您运行make -d并检查它,您应该看看在正常构建期间是否正在使用match-anything规则。我不确定是否还有其他严重的缺点。

顺便说一下,在调用配方中的子品牌时,你应该始终只使用make变量$(MAKE);永远不要使用原始make命令。

相关问题