Linuxカーネルのコンパイルが行われているものを作りますか?

  次のようにデフォルトのターゲット依存チェーンの実装を行います。

  

  一致する/設定/ auto.confを含んで行われるコマンド$(Q)$(MAKE)-f $(srctree)/ Makefileのsilentoldconfigすなわちする-f ./Makefile silentoldconfig文を作るの実行/設定/%。CONFを含みます同様の一致へx210ii_qt_defconfig silentoldconfig%設定、行っ%の設定に戻すfixdepのdocprocハッシュを生成し、scripts_basic依存する$(Q)$(MAKE)$(ビルド)=スクリプト/ kconfigを$ @すなわち、スクリプトを作る/ Makefile.build OBJ =スクリプト/ kconfigをsilentoldconfig、プロセスはMakefile.buildで、スクリプト/ kconfigを/ Makefileを含んsilentoldconfig目標を含む、silentoldconfigターンバック、Makefile.hostベースのスクリプト/ confに再びで生成kconfigを材料、スクリプト/ kconfigを/ confに依存しますコマンドジェネレータ特定silentoldconfig $ <-s $(kconfigを)すなわち、スクリプト/ kconfigを/ confに-sアーチ/アーム/ kconfigを下で実行挙げ/設定/、.configをアーチ/アーム/ kconfigをauto.conf.cmdを含みます/config/auto.conf、含まれるように/設定/ kernel.release、目標指令$(Q)エコーバック/生成/をautoconf.hが含まれる「$(KERNELVERSION)$$($(CONFIG_SHELL)$(srctree)/スクリプト/ setlocalv ERSIONの$(srctree))「>。 つまり、カレントディレクトリをスクリプトに渡される/ Makefile.buildは、/ bounds.h生成され、ファイルに応じて生成/ / ASM-offsets.hルールを含める/含め生成し、メイクファイルkbuildルートディレクトリが含まれています。プレスprepare0の下に$(Q)$(MAKE)を実行するために $(ビルド)を=。行方不明のsyscalls 、バック準備し、kbuild下の規則に従ってスクリプト/ checksyscalls.shスクリプトを実行(スクリプト$を起動するコマンドを実行する文をQ)$(MAKE)$(ビルド)= $(@) 、以下のように、すなわち-fスクリプトは/ Makefile.host作るOBJ =ケース依存チェーンデフォルトのスクリプトMakefileの実行対象__buildを格納するためのスクリプトは、以下のとおりです。

__build:

$(サブディレクトリ-YM)$(常に)

サブディレクトリ-YM =スクリプト/ modが常にスクリプト/ kallsymsスクリプト/ pnmtologoスクリプト/ conmakehashを=

開始$(サブディレクトリ-YM)(Q)$(MAKE)は$(ビルド)= $ @すなわち、最初のコマンドスクリプトを-fスクリプト/ Makefile.build OBJ =スクリプト/ MODを作る/ MOD / mk_elfconfig.cが生成されたコマンド$その後、mk_elfconfig mk_elfconfig、最終的には(常に)バック$にスクリプト/ MOD / modpost、終了し得る、mk_elfconfig.hを生成し、実行を完了するスクリプト/ kallsymsスクリプト/ pnmtologoスクリプト/ conmakehash終了スクリプトの目標を取得

  そして、バックターゲット$(のvmlinux-dirsに)への重要なワード$(Q)を実行するために$(MAKE) $(ビルド)= $ @ それは$(INIT-Yが含まれているまず、我々は$(のvmlinux-dirsに)を分析します)$(INIT-M)$(コア-Y)$(コア-M)$(ドライバ-Y)$(ドライバ-M)    $(NET-Y)$(NET-M)$(LIBS-Y)$ (LIBS-m)は、実質的に全体のカーネルは、それが印刷されます。

vmlinux-DIRS = INIT USRアーチ/アーム/カーネルアーチ/アーム/ mmのアーチ/アーム/共通アーチ/アーム/マッハs5pv210アーチ/アーム/ PLAT-S5Pアーチ/アーム/ PLAT-サムスンアーチ/アーム/ VFPカーネルミリFS IPCセキュリティ暗号音ファームウェアネットブロックドライバーアーチ/腕/ libにlibに、$(Q)$(MAKE)$(ビルド)= $ @ 11行なわに
  $ @ = INIT:$(Q )$(MAKE)$ (ビルド)= $ @変数と従属ルールの数を定義する、-fスクリプト/ Makefile.build OBJ = INITあっINIT / Makefileをしなければならないカーネルモードに__buildを引き起こし、それは/組み込みターゲット= INITですビルトインin.o最後の世代のinitは/ビルトインin.oスクリプト/ Makefile.build、とinit / Makefileは、ルールの実行が完了し終了です。

  最后生成$(vmlinux-lds)  vmlinux.o  $(kallsyms.o)  vmlinux,zimage

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

おすすめ

転載: www.cnblogs.com/genshu123/p/11198790.html