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= 变量的值。