€•ð=Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ*/translations/zh_CN/kbuild/bash-completion”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/zh_TW/kbuild/bash-completion”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/it_IT/kbuild/bash-completion”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ja_JP/kbuild/bash-completion”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ko_KR/kbuild/bash-completion”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/pt_BR/kbuild/bash-completion”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/sp_SP/kbuild/bash-completion”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ%SPDX-License-Identifier: GPL-2.0-only”h]”hŒ%SPDX-License-Identifier: GPL-2.0-only”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒD/var/lib/git/docbuild/linux/Documentation/kbuild/bash-completion.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒBash completion for Kbuild”h]”hŒBash completion for Kbuild”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒ“The kernel build system is written using Makefiles, and Bash completion for the `make` command is available through the `bash-completion`_ project.”h]”(hŒPThe kernel build system is written using Makefiles, and Bash completion for the ”…””}”(hhßh²hh³Nh´NubhŒtitle_reference”“”)”}”(hŒ`make`”h]”hŒmake”…””}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhßubhŒ" command is available through the ”…””}”(hhßh²hh³Nh´NubhŒ reference”“”)”}”(hŒ`bash-completion`_”h]”hŒbash-completion”…””}”(hhýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œbash-completion”Œrefuri”Œ(https://github.com/scop/bash-completion/”uh1hûhhߌresolved”KubhŒ project.”…””}”(hhßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)”}”(hŒäHowever, the Makefiles for the kernel build are complex. The generic completion rules for the `make` command do not provide meaningful suggestions for the kernel build system, except for the options of the `make` command itself.”h]”(hŒ^However, the Makefiles for the kernel build are complex. The generic completion rules for the ”…””}”(hjh²hh³Nh´Nubhè)”}”(hŒ`make`”h]”hŒmake”…””}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjubhŒj command do not provide meaningful suggestions for the kernel build system, except for the options of the ”…””}”(hjh²hh³Nh´Nubhè)”}”(hŒ`make`”h]”hŒmake”…””}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjubhŒ command itself.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhÞ)”}”(hŒTo enhance completion for various variables and targets, the kernel source includes its own completion script at `scripts/bash-completion/make`.”h]”(hŒqTo enhance completion for various variables and targets, the kernel source includes its own completion script at ”…””}”(hjLh²hh³Nh´Nubhè)”}”(hŒ`scripts/bash-completion/make`”h]”hŒscripts/bash-completion/make”…””}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjLubhŒ.”…””}”(hjLh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)”}”(hŒ­This script provides additional completions when working within the kernel tree. Outside the kernel tree, it defaults to the generic completion rules for the `make` command.”h]”(hŒžThis script provides additional completions when working within the kernel tree. Outside the kernel tree, it defaults to the generic completion rules for the ”…””}”(hjlh²hh³Nh´Nubhè)”}”(hŒ`make`”h]”hŒmake”…””}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjlubhŒ command.”…””}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Prerequisites”h]”hŒ Prerequisites”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjŒh²hh³hÇh´KubhÞ)”}”(hŒæThe script relies on helper functions provided by `bash-completion`_ project. Please ensure it is installed on your system. On most distributions, you can install the `bash-completion` package through the standard package manager.”h]”(hŒ2The script relies on helper functions provided by ”…””}”(hjh²hh³Nh´Nubhü)”}”(hŒ`bash-completion`_”h]”hŒbash-completion”…””}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œbash-completion”j juh1hûhjjKubhŒc project. Please ensure it is installed on your system. On most distributions, you can install the ”…””}”(hjh²hh³Nh´Nubhè)”}”(hŒ`bash-completion`”h]”hŒbash-completion”…””}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjubhŒ. package through the standard package manager.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjŒh²hubeh}”(h]”Œ prerequisites”ah ]”h"]”Œ prerequisites”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ How to use”h]”hŒ How to use”…””}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÙh²hh³hÇh´KubhÞ)”}”(hŒ$You can source the script directly::”h]”hŒ#You can source the script directly:”…””}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjÙh²hubhŒ literal_block”“”)”}”(hŒ%$ source scripts/bash-completion/make”h]”hŒ%$ source scripts/bash-completion/make”…””}”hjúsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jøh³hÇh´K!hjÙh²hubhÞ)”}”(hŒSOr, you can copy it into the search path for Bash completion scripts. For example::”h]”hŒROr, you can copy it into the search path for Bash completion scripts. For example:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K#hjÙh²hubjù)”}”(hŒƒ$ mkdir -p ~/.local/share/bash-completion/completions $ cp scripts/bash-completion/make ~/.local/share/bash-completion/completions/”h]”hŒƒ$ mkdir -p ~/.local/share/bash-completion/completions $ cp scripts/bash-completion/make ~/.local/share/bash-completion/completions/”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jøh³hÇh´K&hjÙh²hubeh}”(h]”Œ how-to-use”ah ]”h"]”Œ how to use”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒDetails”h]”hŒDetails”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj,h²hh³hÇh´K*ubhÞ)”}”(hŒGThe additional completion for Kbuild is enabled in the following cases:”h]”hŒGThe additional completion for Kbuild is enabled in the following cases:”…””}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K,hj,h²hubhŒ block_quote”“”)”}”(hXR- You are in the root directory of the kernel source. - You are in the top-level build directory created by the O= option (checked via the `source` symlink pointing to the kernel source). - The -C make option specifies the kernel source or build directory. - The -f make option specifies a file in the kernel source or build directory. ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ3You are in the root directory of the kernel source.”h]”hÞ)”}”(hjZh]”hŒ3You are in the root directory of the kernel source.”…””}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K.hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)”}”(hŒƒYou are in the top-level build directory created by the O= option (checked via the `source` symlink pointing to the kernel source).”h]”hÞ)”}”(hŒƒYou are in the top-level build directory created by the O= option (checked via the `source` symlink pointing to the kernel source).”h]”(hŒSYou are in the top-level build directory created by the O= option (checked via the ”…””}”(hjsh²hh³Nh´Nubhè)”}”(hŒ`source`”h]”hŒsource”…””}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjsubhŒ( symlink pointing to the kernel source).”…””}”(hjsh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K/hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)”}”(hŒBThe -C make option specifies the kernel source or build directory.”h]”hÞ)”}”(hj›h]”hŒBThe -C make option specifies the kernel source or build directory.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K1hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)”}”(hŒMThe -f make option specifies a file in the kernel source or build directory. ”h]”hÞ)”}”(hŒLThe -f make option specifies a file in the kernel source or build directory.”h]”hŒLThe -f make option specifies a file in the kernel source or build directory.”…””}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K2hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jQh³hÇh´K.hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jKh³hÇh´K.hj,h²hubhÞ)”}”(hŒLIf none of the above are met, it falls back to the generic completion rules.”h]”hŒLIf none of the above are met, it falls back to the generic completion rules.”…””}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K4hj,h²hubhÞ)”}”(hŒThe completion supports:”h]”hŒThe completion supports:”…””}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K6hj,h²hubjL)”}”(hŒá- Commonly used targets, such as `all`, `menuconfig`, `dtbs`, etc. - Make (or environment) variables, such as `ARCH`, `LLVM`, etc. - Single-target builds (`foo/bar/baz.o`) - Configuration files (`*_defconfig` and `*.config`) ”h]”jR)”}”(hhh]”(jW)”}”(hŒ@Commonly used targets, such as `all`, `menuconfig`, `dtbs`, etc.”h]”hÞ)”}”(hjûh]”(hŒCommonly used targets, such as ”…””}”(hjýh²hh³Nh´Nubhè)”}”(hŒ`all`”h]”hŒall”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjýubhŒ, ”…””}”(hjýh²hh³Nh´Nubhè)”}”(hŒ `menuconfig`”h]”hŒ menuconfig”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjýubhŒ, ”…””}”hjýsbhè)”}”(hŒ`dtbs`”h]”hŒdtbs”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjýubhŒ, etc.”…””}”(hjýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K8hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjöubjW)”}”(hŒ=Make (or environment) variables, such as `ARCH`, `LLVM`, etc.”h]”hÞ)”}”(hjHh]”(hŒ)Make (or environment) variables, such as ”…””}”(hjJh²hh³Nh´Nubhè)”}”(hŒ`ARCH`”h]”hŒARCH”…””}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjJubhŒ, ”…””}”(hjJh²hh³Nh´Nubhè)”}”(hŒ`LLVM`”h]”hŒLLVM”…””}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjJubhŒ, etc.”…””}”(hjJh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K9hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjöubjW)”}”(hŒ&Single-target builds (`foo/bar/baz.o`)”h]”hÞ)”}”(hjƒh]”(hŒSingle-target builds (”…””}”(hj…h²hh³Nh´Nubhè)”}”(hŒ`foo/bar/baz.o`”h]”hŒ foo/bar/baz.o”…””}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj…ubhŒ)”…””}”(hj…h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K:hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjöubjW)”}”(hŒ3Configuration files (`*_defconfig` and `*.config`) ”h]”hÞ)”}”(hŒ2Configuration files (`*_defconfig` and `*.config`)”h]”(hŒConfiguration files (”…””}”(hj®h²hh³Nh´Nubhè)”}”(hŒ `*_defconfig`”h]”hŒ *_defconfig”…””}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj®ubhŒ and ”…””}”(hj®h²hh³Nh´Nubhè)”}”(hŒ `*.config`”h]”hŒ*.config”…””}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj®ubhŒ)”…””}”(hj®h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K;hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjöubeh}”(h]”h ]”h"]”h$]”h&]”jÎjÏuh1jQh³hÇh´K8hjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jKh³hÇh´K8hj,h²hubhÞ)”}”(hŒÊSome variables offer intelligent behavior. For instance, `CROSS_COMPILE=` followed by a TAB displays installed toolchains. The list of defconfig files shown depends on the value of the `ARCH=` variable.”h]”(hŒ9Some variables offer intelligent behavior. For instance, ”…””}”(hjòh²hh³Nh´Nubhè)”}”(hŒ`CROSS_COMPILE=`”h]”hŒCROSS_COMPILE=”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjòubhŒp followed by a TAB displays installed toolchains. The list of defconfig files shown depends on the value of the ”…””}”(hjòh²hh³Nh´Nubhè)”}”(hŒ`ARCH=`”h]”hŒARCH=”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjòubhŒ variable.”…””}”(hjòh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K=hj,h²hubhŒtarget”“”)”}”(hŒ=.. _bash-completion: https://github.com/scop/bash-completion/”h]”h}”(h]”Œbash-completion”ah ]”h"]”Œbash-completion”ah$]”h&]”j juh1j$h´KAhj,h²hh³hÇŒ referenced”Kubeh}”(h]”Œdetails”ah ]”h"]”Œdetails”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K*ubeh}”(h]”Œbash-completion-for-kbuild”ah ]”h"]”Œbash completion for kbuild”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jfŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œbash-completion”]”(hýj¥esŒrefids”}”Œnameids”}”(j@j=jÖjÓj)j&j8j5j/j,uŒ nametypes”}”(j@‰jÖ‰j)‰j8‰j/ˆuh}”(j=hÊjÓjŒj&jÙj5j,j,j&uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.