2009-06-29 120 views
1

我是building a custom Ubuntu kernel並修改了其中一個源文件。當我發出build命令時:獲取Linux內核make過程重建修改後的文件

NOEXTRAS=1 skipabi=true skipmodule=true fakeroot debian/rules binary-insp8600 

它重建debs,但沒有修改過的源文件被重建。

這是怎麼回事?每次修改源文件時,我都必須進行徹底清理重建嗎?

這沒有任何意義。

修改後的文件是./init/main.c

作爲一個說明binary-insp8600是我爲我的Inspiron 8600筆記本電腦創建的自定義風格。

回答

2

debian/rules不是內核的Makefile。它無法知道你編輯的文件是最終內核的依賴關係,因爲這些依賴關係在真正的Makefile中。

實際上,我認爲debian/rulesbuild目標(實際編譯的目標)僅依賴於它在完成構建後創建的「標誌」文件。如果是這種情況,一個簡單的解決方法是刪除該「標誌」文件;那麼它會重新編譯一切(通過調用內核的Makefile,它會知道該怎麼做的部分重建。當然,這是假設的build目標不盡量整潔,做一個make clean或同等...)

(我沒有看你使用的軟件包的debian/rules,所以我可能是錯的,但至少它是一個開始。)

0

如果Makefile中的依賴關係正確,則不應該執行乾淨的構建。

是您更改頭文件的文件嗎?如果它然後運行makedepend自動添加頭文件依賴關係:)

如果它不是一個頭文件,然後他們真的應該是一個Makefile中的依賴項,如果它是編譯的一部分,有一個搜索和使確定你使用的目標取決於你想編譯的模塊

+0

不,我修改./init/main.c – 2009-06-29 10:22:28

+0

您是否搜索主要在你的Makefile中(不是main.c)?它在嗎?它必須是如果它被編譯過。 – hhafez 2009-06-29 23:14:02