Linux源码Kconfig文件语法分析
Kconfig是我們進行內核配置的關鍵文件,用于生成menuconfig的界面并生成最終確定編譯選項的.config文件。關于Kconfig文件的編寫規則,在Documentation/kbuild/kconfig-language.txt有詳盡的敘述。這里主要用實例進行語法分析。
config
確定了條目前面是否有選項,menuconfig界面中的條目中一共有3種主動選項,分別是[ ],< >和( ),分別表示"被編譯進內核or舍棄","編譯進內核or編譯成模塊or舍棄", "按照提示輸入一個數字",分別對應Kconfig文件中的bool,tristate和int。{ }和- -屬于被動選項,是配置系統根據依賴關系自動生成的選項,不能被手動修改。
menu/endmenu
即圖形界面中有--->的條目,回車后可以展開。條目前面沒有選項
!
menuconfig
是menu和config的結合體,既在前面有選項,回車后也可以展開。
choice/endchoice
展開之后會有多選一的界面,每種選項都有獨立的config管理
comment
if/endif
如果if之后的值被選定了,里面的內容才能展開
source
表示調用指定路徑的Kconfig,相當于C中的include,上例已經給出說明
depends on
實現配置的相當關鍵的關鍵字,表示當前選項依賴于另外一個選項,如果另外一個不選,這個都不會出現。
select
另一個相當關鍵的關鍵字,表示當前選項需要另外選項的支持,如果選了當前選項,那么其后的選項會被強制選擇,{ }或- -就是這個實現的。下例中,只要這些Kconfig中進行了"select HAVE_ARM_ARCH_TIMER",都會導致"HAVE_ARM_ARCH_TIMER"被強制選擇,表現在menuconfig上就是"Architected timer support"被強制選定
.config文件分析
經過適當的配置之后保存就會在頂層目錄下生成.config文件
=y表示該配置將會被編譯進內核,=m表示該配置需要單獨編譯成模塊
轉載于:https://www.cnblogs.com/xiaojiang1025/p/6131131.html
總結
以上是生活随笔為你收集整理的Linux源码Kconfig文件语法分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用sax解析xml
- 下一篇: Linux每日命令