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