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= 變數的值。