Kconfig

    This is wrong but should not crash ] ) } !

    # comment

    config BR2_PACKAGE_GAMMARAY
            bool "gammaray"
            depends on BR2_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'
    config W1_MASTER_GPIO_CUSTOM
    	tristate "Custom GPIO-based W1 driver"
    	depends on GENERIC_GPIO
    	select W1_GPIOconfig AG71XX
    	tristate "Atheros AR7XXX/AR9XXX built-in ethernet mac support"
    	depends on ATH79
    	imply HAS_TXX9_SERIAL
    	def_bool LD_VERSION >= 225000000 || LD_IS_LLD
    	select PHYLIB
    	---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"
        depends on !MODULES

    menu myMenu
          depends on NET
    config NETDEVICES
    	bool "Atheros AR71xx built-in ethernet driver debugging"
    	def_bool ds
    	default n
    	help
    	  Atheros AR71xx built-in ethernet driver debugging messages.
    endmenu
    if TARGET_OX820

    config SYS_CPU
    	default "arm1136"

    endif

    if AG71XX
    config AG71XX_DEBUG
    	bool "Atheros AR71xx built-in ethernet driver debugging"
    	default n
    	help
    	  Atheros AR71xx built-in ethernet driver debugging messages.
    endif

    # comment

    menu "System setup"

    choice
    	prompt "Alpha system type"
    	default ALPHA_GENERIC
    	string "bad"
    	---help---
    	  This is the system type of your hardware.

    	config HZ_32
    		bool "32 Hz"
    	config HZ_64
    		bool "64 Hz"

    config ALPHA_GENERIC
    	bool "Generic"
    	depends on TTY
    	select HAVE_EISA
    	select GENERIC_BUG_RELATIVE_POINTERS if X86_64
    	bool "64-bit kernel" if "$(SUBARCH)" = "x86"
    	bool "Support the legacy \"mmu-masters\" devicetree bindings"
    	depends on ARM_SMMU=y && OF
    	help
    	  A generic kernel will run on all supported Alpha hardware.

    endchoice

    config VGA_HOSE
    	bool
    	def_bool y
    	depends on VGA_CONSOLE && (ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL || ALPHA_TSUNAMI)
    	default y
    	default n
    	default 3
    	bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC
    	default y if ALPHA_QEMU
    	default n if ALPHA_EV5 || ALPHA_EV56 || (ALPHA_EV4 && !ALPHA_LCA)
    	default n if !ALPHA_SRM && !ALPHA_GENERIC
    	default y if SMP
    	default "y" if PPC_POWERNV
    	range 2 32
    	depends on SMP
    	default "32" if ALPHA_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
    source "arch/arc/plat-eznps/Kconfig"
    source 'arch/arc/plat-hsdk/Kconfig'

    endmenu

    menu "ARC CPU Configuration"

    choice
    	prompt "ARC Core"
    	default ARC_CPU_HS if ISA_ARCV2
    	help
    	  bla bla

    if ISA_ARCOMPACT

    config ARC_CPU_750D
    	bool "ARC750D"
    	select ARC_CANT_LLSC
    	help
    	  Support for ARC750 core

    endif #ISA_ARCOMPACT

    endchoice

    if SMP

    config NR_CPUS
    	int "Maximum number of CPUs (2-4096)"
    	range 2 4096
    	default "4"

    endif #SMP

    config ARC_MMU_V4
    	bool "MMU v4"
    	depends on ISA_ARCV2

    endmenu   # "ARC CPU Configuration"

    menuconfig ARC_PLAT_EZNPS
    	bool "\"EZchip\" ARC dev platform"
    	depends on ISA_ARCOMPACT
    	select CPU_BIG_ENDIAN
    	select CLKSRC_NPS if !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
    config ARM64
    	def_bool y
    	select HAVE_DYNAMIC_FTRACE_WITH_REGS \
    		if $(cc-option,-fpatchable-function-entry=2)
    	select HAVE_EFFICIENT_UNALIGNED_ACCESS
    	help
    	  ARM 64-bit (AArch64) Linux support.

    config PHYS_OFFSET
    	hex "Physical address of main memory" if MMU
    	depends on !ARM_PATCH_PHYS_VIRT
    	default DRAM_BASE if !MMU
    	default 0x00000000 if ARCH_EBSA110 || \
    			ARCH_FOOTBRIDGE || \
    			ARCH_INTEGRATOR || \
    			ARCH_REALVIEW
    	default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
    	default 0x20000000 if ARCH_S5PV210
    	default 0xc0000000 if ARCH_SA1100
    	help
    	  Please provide the physical address corresponding to the
    	  location of main memory in your system.

    comment "S3C2416 Boards"

    config KERNEL_RAM_BASE_ADDRESS
    	hex "Virtual address of memory base"
    	default 0xe0000000 if SOC_TMS320C6455
    	default 0xe0000000 if SOC_TMS320C6457

    config CC_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
    config FOO_$(BAR$(BAZ))
    	int "$(filename)"
    	default $(lineno) if $(lineno) >= 5

    menu "A MENU"
    visible if 01 > 00

    config A_BOOL
    	def_bool y && 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.
    config CC_HAS_ASM_GOTO_OUTPUT
    	depends on CC_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
    config W1_MASTER_DS2490
    	tristate "DS2490 USB <-> W1 transport layer for 1-wire"
      	depends on USB
      	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:])

    config ARGS_$(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
    if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
    source "drivers/cpufreq/Kconfig"
    endif

    # alert on characters (here a colon) that are ignored (taken from axTLS 2.1.5)
    config CONFIG_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:"
    	depends on A_BOOL

    # "boolean" is now a free variable name ...
    boolean=foo
    # ... but it looks like a bad idea. This may be disputed.

    menuconfig MODULES
    	bool "Enable loadable module support"
    	modules

    # the three modern options
    config OPTIONS
    	option allnoconfig_y
    	option modules
    	option defconfig_list

    # old option "env" and obsolete custom options
    config OPTIONS
    	option env=ARCH
    	option custom-without-argument
    	option custom-with-argument=ABC

    # old syntax
    menu OLD_STYLE_PROMPT
    visible if CPU_SUPPORTS_CPUFREQ

    # busybox 1.31.1
    source libbb/Config.in

    # uClibc-ng-1.0.37
    config DESIRED_TARGET_ARCH
    	string
    	option env="ARCH"

    config OLD_HELP
    	hex
    	---help---
    		old help property
    	default 0x1CEC0FEE
    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

    config OK
        bool "still OK"
        help
            still OK
    now=fail
    andNow=OK