linux核心Makefile的簡單分析

2021-06-19 12:51:37 字數 602 閱讀 5937

makefile 總結

1)配置檔案.config中定義了一系列的變數,makefile將結合它們來決定哪些檔案被編譯進核心。哪些檔案被編譯成模組。涉及哪些子目錄。

2)頂層makefile和arch/$(arch)/makefile決定更目錄下哪些子目錄,arch/$(arch)目錄下哪些檔案和目錄被編譯進核心。

3)最後,各級子目錄下的makefile決定所在目錄下哪些檔案將被編譯進核心,哪些檔案將被編譯進核心,哪些檔案將編譯成模組(即驅動程式),進入哪些子目錄繼續呼叫它們的makefile。

4)頂層makefile和arch/$(arch)/makefile設定了可以影響所以檔案的編譯,連線選項:cflsgs,aflags,ldflags,arflags.

5)各級子目錄下的makefile中可以設定能夠影響當前目錄下所有檔案的編譯,連線選項:extra_cflags,extra_aflags,extra_ldflags,extra_arflags;還可以設定可以影響某個檔案的編譯選項:cflags_$@,aflags_&@。

6)頂層makefile按照一定的順序組織檔案。根據連線指令碼arch/$(arch)/kernel/vmlinux.lds 生成核心映像檔案vmlinux。

linux核心makefile分析

核心makefile.txt中將makefile分為 5部分,kernel makefile arch makefile kbuild makefile config檔案以及scripts makefile.kernel makefile kernel makefile 位於linux 核心源 的頂...

Linux核心配置 Makefile目標

在頂層linux原始碼目錄中輸入命令make help,它會顯示一長串從原始碼樹中生成的目標列表。最常見的使用make的方式是不指定目標,在這種情況下,它會生成核心elf檔案vmlinux和針對所選架構的預設二進位制映象 例如,x86架構的bzimage 使用make時,如果不指定目標,它也會編譯所...

linux核心模組編譯makefile

1 編譯進核心的模組 如果需要將乙個模組配置進核心,需要在makefile中進行配置 obj y foo.o 2 編譯可載入的模組 所有在配置檔案中標記為 m的模組將被編譯成可載入模組.ko檔案。如果需要將乙個模組配置為可載入模組,需要在makefile中進行配置 obj m foo.o 3 模組編...