Thisis wrong but should not crash ] ) } ! # comment configBR2_PACKAGE_GAMMARAY bool"gammaray" dependsonBR2_PACKAGE_QT5 help GammaRay Qt introspection probe. second line of help, with correct indentation GammaRay Qt introspection probe. second line of help, with correct indentation third line underindented and thus wrong default'true' configW1_MASTER_GPIO_CUSTOM tristate"Custom GPIO-based W1 driver" dependsonGENERIC_GPIO selectW1_GPIOconfigAG71XX tristate"Atheros AR7XXX/AR9XXX built-in ethernet mac support" dependsonATH79 implyHAS_TXX9_SERIAL def_boolLD_VERSION>=225000000||LD_IS_LLD selectPHYLIB ---help--- If you wish to compile a kernel for AR7XXX/91XXX and enable ethernet support, then you should always answer Y to this. comment"module support disabled" dependson!MODULES menumyMenu dependsonNET configNETDEVICES bool"Atheros AR71xx built-in ethernet driver debugging" def_boolds defaultn help Atheros AR71xx built-in ethernet driver debugging messages. endmenu ifTARGET_OX820 configSYS_CPU default"arm1136" endif ifAG71XX configAG71XX_DEBUG bool"Atheros AR71xx built-in ethernet driver debugging" defaultn help Atheros AR71xx built-in ethernet driver debugging messages. endif # comment menu"System setup" choice prompt"Alpha system type" defaultALPHA_GENERIC string"bad" ---help--- This is the system type of your hardware. configHZ_32 bool"32 Hz" configHZ_64 bool"64 Hz" configALPHA_GENERIC bool"Generic" dependsonTTY selectHAVE_EISA selectGENERIC_BUG_RELATIVE_POINTERSifX86_64 bool"64-bit kernel"if"$(SUBARCH)"="x86" bool"Support the legacy \"mmu-masters\" devicetree bindings" dependsonARM_SMMU=y&&OF help A generic kernel will run on all supported Alpha hardware. endchoice configVGA_HOSE bool def_booly dependsonVGA_CONSOLE&&(ALPHA_GENERIC||ALPHA_TITAN||ALPHA_MARVEL||ALPHA_TSUNAMI) defaulty defaultn default3 bool"Use WTINT"ifALPHA_SRM||ALPHA_GENERIC defaultyifALPHA_QEMU defaultnifALPHA_EV5||ALPHA_EV56||(ALPHA_EV4&&!ALPHA_LCA) defaultnif!ALPHA_SRM&&!ALPHA_GENERIC defaultyifSMP default"y"ifPPC_POWERNV range232 dependsonSMP default"32"ifALPHA_GENERIC||ALPHA_MARVEL default'4'if!ALPHA_GENERIC&&!ALPHA_MARVEL help Support VGA on an arbitrary hose; needed for several platforms which always have multiple hoses, and whose consoles support it. endmenu menu"ARC Architecture Configuration" menu"ARC Platform/SoC/Board" #New platform adds here "arch/arc/plat-eznps/Kconfig" 'arch/arc/plat-hsdk/Kconfig' endmenu menu"ARC CPU Configuration" choice prompt"ARC Core" defaultARC_CPU_HSifISA_ARCV2 help bla bla ifISA_ARCOMPACT configARC_CPU_750D bool"ARC750D" selectARC_CANT_LLSC help Support for ARC750 core endif#ISA_ARCOMPACT endchoice ifSMP configNR_CPUS int"Maximum number of CPUs (2-4096)" range24096 default"4" endif#SMP configARC_MMU_V4 bool"MMU v4" dependsonISA_ARCV2 endmenu# "ARC CPU Configuration" menuconfigARC_PLAT_EZNPS bool"\"EZchip\" ARC dev platform" dependsonISA_ARCOMPACT selectCPU_BIG_ENDIAN selectCLKSRC_NPSif!PHYS_ADDR_T_64BIT help Support for EZchip development platforms, based on ARC700 cores. We handle few flavors: - Hardware Emulator AKA HE which is FPGA based chassis - Simulator based on MetaWare nSIM - NPS400 chip based on ASIC # SPDX-License-Identifier:GPL-2.0-only configARM64 def_booly selectHAVE_DYNAMIC_FTRACE_WITH_REGS \ if$(cc-option,-fpatchable-function-entry=2) selectHAVE_EFFICIENT_UNALIGNED_ACCESS help ARM 64-bit (AArch64) Linux support. configPHYS_OFFSET hex"Physical address of main memory"ifMMU dependson!ARM_PATCH_PHYS_VIRT defaultDRAM_BASEif!MMU default0x00000000ifARCH_EBSA110|| \ ARCH_FOOTBRIDGE|| \ ARCH_INTEGRATOR|| \ ARCH_REALVIEW default0x10000000ifARCH_OMAP1||ARCH_RPC default0x20000000ifARCH_S5PV210 default0xc0000000ifARCH_SA1100 help Please provide the physical address corresponding to the location of main memory in your system. comment"S3C2416 Boards" configKERNEL_RAM_BASE_ADDRESS hex"Virtual address of memory base" default0xe0000000ifSOC_TMS320C6455 default0xe0000000ifSOC_TMS320C6457 configCC_IS_GCC def_bool$(success,echo "$(CC_VERSION_TEXT)" | grep -q gcc) endif # error # next line caused hang, see https://phabricator.kde.org/D18509 menu # the next lines should all be fine plain:=plain_value with_whitespace:=plain value whitespace value_with_expansion:=$(ARCH) plain_expansion_mix:=Linux/$(ARCH)$(KERNELVERSION) Kernel Configuration # function definition cc-option-bit=$(if-success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null,$(1)) # function call $(cc-option-bit,-m64) # function call and storing the result m32-flag:=$(cc-option-bit,-m32) # call to known function name:=$(filename) # call to known function with arguments $(warning-if,y,hello world 1) # ... with nested expansions $(error-if,$(success,$(LD) -v | grep -q gold), gold linker '$(LD)' not supported) # expansion in different contexts configFOO_$(BAR$(BAZ)) int"$(filename)" default$(lineno)if$(lineno)>=5 menu"A MENU" visibleif01>00 configA_BOOL def_booly&&m|| !!(!(!!n))||"$(foo)" endmenu # Advanced real world example taken from init/Kconfig in Linux 5.10: # Invoke the system shell /bin/sh with a command to pipe a C program with an # asm goto statement to the C compiler that is set by the environment. If the # exit code is 0 then set the default value of CC_HAS_ASM_GOTO_OUTPUT to y, # otherwise to n. configCC_HAS_ASM_GOTO_OUTPUT dependsonCC_HAS_ASM_GOTO def_bool$(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null) # Real world example with irregular indentation configW1_MASTER_DS2490 tristate"DS2490 USB <-> W1 transport layer for 1-wire" dependsonUSB help Say Y here if you want to have a driver for DS2490 based USB <-> W1 bridges, for example DS9490*. This support is also available as a module. If so, the module will be called ds2490. # synthetic example to_upper=$(shell,echo $(1) | tr [:lower:] [:upper:]) configARGS_$(to_upper,$(CC)) string"Arguments for the current compiler \"$(CC)\"" help This is a bad idea. See <file:Documentation/completely/made-up.rst> # binary operator in expression of an if statement ifCPU_SUPPORTS_CPUFREQ&&MIPS_EXTERNAL_TIMER "drivers/cpufreq/Kconfig" endif # alert on characters (here a colon) that are ignored (taken from axTLS 2.1.5) configCONFIG_LUA_CORE string"Location of Lua CORE" default"/usr/local" help: If the Lua exists on another directory then this needs to be changed comment"Comment texts know expansions, too: $(CC), and the depends property:" dependsonA_BOOL # "boolean" is now a free variable name ... boolean=foo # ... but it looks like a bad idea. This may be disputed. menuconfigMODULES bool"Enable loadable module support" modules # the three modern options configOPTIONS optionallnoconfig_y option optiondefconfig_list # old option "env" and obsolete custom options configOPTIONS optionenv=ARCH optioncustom-without-argument optioncustom-with-argument=ABC # old syntax menuOLD_STYLE_PROMPT visibleifCPU_SUPPORTS_CPUFREQ # busybox 1.31.1 libbb/Config.in # uClibc-ng-1.0.37 configDESIRED_TARGET_ARCH string optionenv="ARCH" configOLD_HELP hex ---help--- old help property default0x1CEC0FEE endmenu # a few errors allnoconfig_y bool def_bool def_tristate default defconfig_list depends endchoice endif help hex imply int mainmenu modules on option optional prompt range select string tristate visible configOK bool"still OK" help still OK now=fail andNow=OK