2013-12-22 125 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

相關問題