Makefile 實戰

最近在做新項目的預研,主要是用bcm96xx方案做二次開發。在構建最小文件系統的時候主要遇到了Makefile的調試難題。

調試的內容包括:

1、變量的值;

2、執行流程;

3、內嵌Makefile的調用。

 

首先,我們回顧一下Makefile執行機制:

我們要明白一點:makefile是一個腳本,所以會解析執行;

GNU的make工作時的執行步驟入下:(想來其它的make也是類似)

    1、讀入所有的Makefile。
    2、讀入被include的其它Makefile。
    3、初始化文件中的變量。
    4、推導隱晦規則,並分析所有規則。
    5、爲所有的目標文件創建依賴關係鏈。
    6、根據依賴關係,決定哪些目標要重新生成。
    7、執行生成命令。

1-5步爲第一個階段,6-7爲第二個階段。第一個階段中,如果定義的變量被使用了,那麼,make會把其展開在使用的位置。但make並不會完全馬上展開,make使用的是拖延戰術,如果變量出現在依賴關係的規則中,那麼僅當這條依賴被決定要使用了,變量纔會在其內部展開。

Makefile的基本調試:

1、在有依賴性的地方直接使用echo 輸出變量值和調試信息。

2、Makefile 命令前不要加@。

舉一個例子:

OBJ =test

all:

 

 

明天繼續……



 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章