Kbuild 的 Bash 補全¶
核心構建系統使用 Makefile 編寫,make 命令的 Bash 補全可以透過 bash-completion 專案獲得。
但是,核心構建的 Makefile 非常複雜。 除了 make 命令本身的選項之外,make 命令的通用補全規則沒有為核心構建系統提供有意義的建議。
為了增強對各種變數和目標的補全,核心原始碼在 scripts/bash-completion/make 處包含了自己的補全指令碼。
此指令碼在使用核心樹時提供額外的補全。 在核心樹之外,它預設為 make 命令的通用補全規則。
先決條件¶
該指令碼依賴於 bash-completion 專案提供的輔助函式。 請確保它已安裝在您的系統上。 在大多數發行版上,您可以透過標準軟體包管理器安裝 bash-completion 軟體包。
如何使用¶
您可以直接 source 該指令碼
$ source scripts/bash-completion/make
或者,您可以將其複製到 Bash 補全指令碼的搜尋路徑中。 例如
$ mkdir -p ~/.local/share/bash-completion/completions
$ cp scripts/bash-completion/make ~/.local/share/bash-completion/completions/
詳細資訊¶
在以下情況下,Kbuild 的額外補全功能將被啟用
您位於核心原始碼的根目錄中。
您位於 O= 選項建立的頂級構建目錄中(透過指向核心源的 source 符號連結進行檢查)。
-C make 選項指定核心原始碼或構建目錄。
-f make 選項指定核心原始碼或構建目錄中的檔案。
如果以上任何一項都不滿足,它將回退到通用補全規則。
補全支援
常用目標,例如 all, menuconfig, dtbs 等。
Make(或環境變數),例如 ARCH, LLVM 等。
單目標構建 (foo/bar/baz.o)
配置檔案 (*_defconfig 和 *.config)
某些變數提供智慧行為。 例如,CROSS_COMPILE= 後跟 TAB 鍵會顯示已安裝的工具鏈。 顯示的 defconfig 檔案列表取決於 ARCH= 變數的值。