2008/11/29

[軟體] 用 Linux Kernel 的 Kbuild 來建立一個選單

在 Linux 上面要 make kernel 並不是一件很簡單的事情,常常我們都要調查一堆的選項才能很順利的「開始」 config 核心,然而這只是麻煩的開頭而已,接著下來,我們就要對數以千計的選項勾選,打上 yes or no , include or module 的選擇。這些個選擇題如果是在 console 底下用一個一個問的話,大概可以問上一兩個小時沒有問題,還好 Linux Kernel 的開發小組搞了一個 KBuild 的小玩意兒來玩,讓我們可以很快又很簡單的像下面的圖片裡面一樣,快速達成 config 的目標。



不過,這麼好玩的東西,怎麼會只能在 Kernel 底下使用呢?當然也就有人開始想要把這個小玩意兒套用在別的工作上面,像是一堆模組在 console 底下可以套用選擇的時候,如果有這樣的東西可以拿出來玩,該有多好?

筆者接著要介紹的,就是 Kbuild 的一個簡單的範例:
KBuild 需要的部份主要有三個部份:
* script/ # 主要軟體
* Config.in # 設定檔
* Makefile # make 文件檔

Makefile 的部份:
KCONFIG := script/kconfig
CONFIG_IN := Config.in

all: .config

.config:
$(MAKE) menuconfig

$(KCONFIG)/mconf:
$(MAKE) -C $(KCONFIG)

menuconfig: $(KCONFIG)/mconf
@$(KCONFIG)/mconf $(CONFIG_IN)


Config.in:
# General Options
menu "General Options"

config DL_DIR
string "Packages Directory"
default "$(PWD)/dl"
endmenu


再來就是把 kernel 裡面的 script 目錄打包過來就都到齊了。

config 模組再來要使用,就可以很簡單的用 make 來解決。

1 則留言:

哈皮博客 提到...

范例有没有下载啊?

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...