我有一个主要的Makefile,它将Makefile放在子文件夹中。出于测试目的,我想在主Makefile的末尾添加Match-Anything规则。 这条规则是:
%:
make -e -C subdir $@
此规则是否存在任何违规行为?
答案 0 :(得分:1)
我认为你的意思是“con”,如“pro or con”,而不是“cont”。 “Con”是拉丁语“contra”的缩写。
对于您的问题,添加新的“匹配任何内容”规则的缺点是,任何不存在的文件都将尝试使用此规则创建。例如,假设您运行include foo.mk
且foo.mk
不存在... make将尝试通过运行您的规则来构建foo.mk
。基本上它可能会令人困惑。可能会有一些性能影响;如果您运行make -d
并检查它,您应该看看在正常构建期间是否正在使用match-anything规则。我不确定是否还有其他严重的缺点。
顺便说一下,在调用配方中的子品牌时,你应该始终只使用make变量$(MAKE)
;永远不要使用原始make
命令。