2013-12-22 85 views
3

当我使用一个makefile我经常在输出中看到让[1] ...使[2] ... 例如:make [n]中的[n]是什么意思?

make all-recursive       
make[1]: Entering directory `./splint-3.1.2' 
Making all in src                 
make[2]: Entering directory `./src' 
grep "FLG_" flags.def > Headers/flag_codes.gen          
make                     
make[3]: Entering directory `.splint-3.1.2/src' 

什么[N]在make [N]手段?

+5

如果仔细查看输出,您可能能够回答自己的问题。 (提示:正在输入...) – devnull

+1

提示no2 - 递归? – luk32

回答

1

评论无误 - [n]指的是递归级别。在这一点上,我想指出相关的文档,但我通过GNU make documentation扫描没有发现这方面 - 也许我错过了一些东西。

如果不这样做,我们可以转向source code[n]main.c中的int makelevel变量。这对应于MAKELEVEL automatic make variable

作为一项特殊功能,变量MAKELEVEL在从级别传递到级别时发生更改。这个变量的值是一个字符串,它是作为十进制数字级别的深度。顶级品牌的价值为'0'; '1'表示一个子制作,'2'表示一个子制作,等等。增量发生在为配方设置环境时

+0

所以,如果我理解正确 - 这与递归无关 - 当一个make调用另一个make时(同一个make或不同的),这个[n]增量......我说得对吗? – yehudahs

+0

@yehudahs:递归就是这样:自我调用。 – reinierpost

+0

我知道递归是什么。我问是否[n]只会在递归时递增(仅在调用本身时)或者在每个调用另一个make的时候递增... – yehudahs

相关问题