€•ð=Œ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”…”�”}”(hj�h²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 ”…”�”}”(hj�h²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ûhj�jKubhŒc project. Please ensure it is installed on your system. On most distributions, you can install the ”…”�”}”(hj�h²hh³Nh´Nubhè)�”}”(hŒ`bash-completion`”h]”hŒbash-completion”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj�ubhŒ. package through the standard package manager.”…”�”}”(hj�h²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.”…”�”}”(hj�h²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:hj�ubah}”(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.