Makefile 在没有参数的情况下调用make时执行哪些配方?

Makefile 在没有参数的情况下调用make时执行哪些配方?,makefile,gnu-make,Makefile,Gnu Make,当在没有任何参数的情况下调用make时,make如何决定执行哪些(如果有的话)配方?正如@Ruslan在一篇评论中所写,答案是的组合。默认\u GOAL变量和Makefile中定义的第一个目标。标题有点混淆,因为make如果没有不同的指定(例如,通过使用.DEFAULT\u GOAL或通过将目标名称作为make的参数传递),则会采用第一个目标。然而,这并不一定意味着也会执行第一个配方。如果make认为目标是最新的,则根本不会执行任何配方。都在文档中::“默认情况下,目标是makefile中的第一

当在没有任何参数的情况下调用
make
时,make如何决定执行哪些(如果有的话)配方?

正如@Ruslan在一篇评论中所写,答案是
的组合。默认\u GOAL
变量和Makefile中定义的第一个目标。

标题有点混淆,因为
make
如果没有不同的指定(例如,通过使用
.DEFAULT\u GOAL
或通过将目标名称作为
make
的参数传递),则会采用第一个
目标。然而,这并不一定意味着也会执行第一个
配方。如果
make
认为目标是最新的,则根本不会执行任何配方。

都在文档中::“默认情况下,目标是makefile中的第一个目标(不计算以句点开头的目标)。”好的,我也在寻找类似.default\u目标变量的东西,我被我期望的这个事实弄糊涂了。默认情况下会有那个用途。感谢这里有一个小小的警告,
make
将首先在技术上执行导致更新的include makefile的所有规则: