當我給了它如何找到命令ADW,AEG ..並且一個接一個地建立?
嗯,好吧,但不完全是這樣.....我完全同意@madscientist和@twalberg觀察。
看看例子生成文件:
Kaizen ~/make_prac $ cat mk.name
## make to accept name and display hello name
arg1="" ;
.PHONY : name \
hello
hello : name
echo "hello $(arg1)" ;
name :
echo "name given is : $(arg1)" ;
這裏一旦make讀入生成文件(描述符文件),它是那麼能夠形成依賴關係樹....喜歡什麼依賴/需要什麼。所以在內部它使一個具有這樣的事情...
hello <-- name <-- no dep
name <-- no dep
這是基於生成文件的內容 - 規則/目標(你好和名稱在此規則)和它們的依賴關係列表(文件/目標後:)
所以從線
hello : name
echo "hello $(arg1)" ;
它可能意味着建立你好,目標名稱必須是可用的目標/打造第一。同樣,它會遍歷所提及的每個目標及其依賴列表,如上所述,在此過程中創建一個「整體構建」鏈(您也可以將其稱爲依賴樹)。
執行它總是涉及到構建鏈,建設目標本身
例子的輸出之前建立的依賴關係的目標(如果他們是過時了):
Kaizen ~/make_prac $ make -f mk.name arg1="kaizen" ;
echo "name given is : kaizen" ;
name given is : kaizen
echo "hello kaizen" ;
hello kaizen
現在回到你的問題:
模塊= ADW AEG DLG FDUfinance ODD PRI SPPA ADFGcommon PYMT LUR LBD \ FAA PPTP COLLINT COR ADFG COA COLLINTtestRecord COLLINTtestScenario \ LFPL LF P include $(CORE)/BUILD/package.mk
這裏模塊不是目標,而是一個變量,我想在你的makefile下面的某個地方被替換成一個規則..... chk發生$( MODULE)
但是沒有準確的方法可以說ADW會在AEG之前生成....就像在makefile中一樣,如果規則可能會將AEG聲明爲目標ADW的依賴項,那麼構建ADW make將不得不首先構建AEG,從而增加其構建鏈ADW < - AEG。
因此扭轉了你的假設......這是否有助於你理解鏈接過程?
如果你仍然有點糊塗......訪問鏈接http://www.jfranken.de/homepages/johannes/vortraege/make_inhalt.en.html
這應該說明你在大約5-7分鐘,大部分概念...
希望這有助於!
來源
2013-06-08 23:06:02
nsd
無法回答這個問題。據推測,'package.mk'文件將包含一些制定規則,描述將如何構建'MODULES'的內容並定義順序。 – MadScientist
部分答案 - 它「找到ADW,AEG ..」的順序,因爲這是明確指定的 - 它與「MODULES」變量中指定的順序一致。它如何構建它們中的每一個,但@MadScientist是對的 - 沒有'package.mk'的內容和其他可能的東西,沒有辦法告訴...... – twalberg