{{Short description|Tool for compiling Linux source code}} {{Multiple issues|{{primary sources |date= October 2009}} {{no footnotes|date=March 2014}}}} {{Lowercase title}} {{Infobox software | name = menuconfig | title = | logo = | logo caption = | screenshot = Linux 4.4.2 ncurses configuration.png | caption = menuconfig for Linux version 4.4.2 | collapsible = | author = | developer = | released = <!-- {{Start date|YYYY|MM|DD|df=yes/no}} --> | discontinued = | latest release version = | latest release date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | frequently updated = <!-- DO NOT include this parameter unless you know what it does --> | programming language = C | operating system = Linux | platform = | size = | language = | status = | genre = Build automation tool | license = GNU General Public License | alexa = | website = {{URL|www.kernel.org}} }} <code>'''make menuconfig'''</code> is one of five similar tools that can assist a user in configuring the Linux kernel before building, a necessary step needed to compile the source code. <code>make menuconfig</code>, with a menu-driven user interface, allows the user to choose which features and modules to compile. It is normally invoked using the command <code>make menuconfig</code>; menuconfig is a target in the Linux Makefile.
==Overview== <code>make menuconfig</code> was not in the first version of Linux. Prior to 2.5.45, the predecessor tool used Configuration Menu Language (CML) and was a question-and-answer-based utility (<code>make config</code>, <code>make oldconfig</code>).
Variations of the tool for Linux configuration include:
* <code>make xconfig</code>, which requires Qt * <code>make gconfig</code>, which uses GTK+ * <code>make nconfig</code>, which is similar to <code>make menuconfig</code>.
All these tools use the '''Kconfig''' language internally. Kconfig is also used in other projects, such as Das U-Boot, a bootloader for embedded devices, Buildroot, a tool for generating embedded Linux systems, and BusyBox, a single-executable shell utility toolbox for embedded systems.
<code>make menuconfig</code> is generally more user-friendly compared to the question-and-answer-based configuration tool <code>make config</code>, and has a basic search system.
If the user is satisfied with a previous <code>.config</code> file, using <code>make oldconfig</code> uses this previous file to answer all questions that it can, only interactively presenting the new features.
{{anchor|Requisites/Dependencies}} ==Dependencies== To use <code>make menuconfig</code>, Linux source is a requirement, a make tool, a C compiler, and the ncurses library.
==See also== * GNU Compiler Collection * TUI
==References== {{Reflist|2}} {{Refbegin|2}} * The <code>make menuconfig</code> tool itself. * [https://www.linuxfromscratch.org/lfs/view/stable/chapter10/kernel.html Linux From Scratch] * [http://axiom.anu.edu.au/~okeefe/p2b/buildMin/buildMin-4.html How to Build a Minimal Linux System] {{Webarchive|url=https://web.archive.org/web/20091023234431/http://axiom.anu.edu.au/~okeefe/p2b/buildMin/buildMin-4.html |date=2009-10-23 }} * [https://newbiedoc.sourceforge.net/tutorials/kernel-pkg/config-kernel-pkg.html.en Creating custom kernels with Debian's kernel-package system] * [http://www.ibm.com/developerworks/linux/linux390/howto.html#how_to_3 Cross compiling Linux on IBM System z] * [http://www.freeos.com/articles/4258/ How to roll your own Linux] * [https://web.archive.org/web/20081011021914/http://www.howtoforge.org/kernel_compilation_fedora_p2 Building A Kernel The Traditional Way] * [http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO-4.html The Linux Kernel HOWTO] * [https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt Kconfig language] {{Refend}}
==External links== {{Wikibooks|Linux kernel}} {{Commons}} * [http://www.kernel.org The Linux Kernel Archives]
{{Linux kernel}}
Category:Linux kernel Category:Linux configuration utilities Category:Configuration management Category:Build automation Category:Free software that uses ncurses