GNU Make不执行第一个目标

时间:2015-11-05 14:21:03

标签: makefile gnu-make

我正在处理由其他开发人员编写的复杂make文件,此makefile还包含其他makefile。

我在makefile的开头放了一个哑的规则,然后调用了makefile而没有指定一个目标,期望第一个规则只执行(这会回应一些东西),但我发现其他规则被调用了。

我想知道是否有其他规则可能会在第一条规则之前得到评估(可能是因为包含或二次扩展或其他规则)?

1 个答案:

答案 0 :(得分:0)

make see的第一个(非模式非前导点)规则是默认目标(默认情况下)。无论是来自Makefile还是某些包含的makefile都无关紧要。

此外,makefile可以通过设置.DEFAULT_GOAL special variable来覆盖它。

这在GNU make手册的How make Processes a Makefile部分进行了讨论。

  

默认情况下,make以第一个目标开头(而不是名称以“。”开头的目标)。这称为默认目标。 (目标是最终要更新的目标。您可以使用命令行(请参阅Arguments to Specify the Goals)或使用.DEFAULT_GOAL特殊变量覆盖此行为(请参阅{{ 3}}