if UNDEFINED endif config NO_TYPE config BASIC_NO_PROMPT bool help blah blah blah blah blah blah config BASIC_PROMPT bool "basic" config ADVANCED tristate "prompt" if DEP default DEFAULT_1 default DEFAULT_2 if DEP select SELECTED_1 select SELECTED_2 if DEP imply IMPLIED_1 imply IMPLIED_2 if DEP help first help text config ADVANCED prompt "prompt 2" menuconfig ADVANCED prompt "prompt 3" if DEP3 menu "foo" depends on DEP4 visible if VIS config ADVANCED help second help text depends on A || !B || (C && D) || !(E && F) || G = H || \ (I && !J && (K || L) && !(M || N) && O = P) config ADVANCED # Used to verify that the direct dependencies appear to the right of VIS prompt "prompt 4" endmenu endif config ONLY_DIRECT_DEPS int depends on DEP1 depends on DEP2 config STRING def_string "foo" default "bar" if DEP default STRING2 default STRING3 if DEP config INT def_int 7 if DEP range 1 2 range FOO BAR range BAZ QAZ if DEP config HEX def_hex 0x123 range 0x100 0x200 range FOO BAR range BAZ QAZ if DEP config MODULES bool "MODULES" option modules config OPTIONS option allnoconfig_y option defconfig_list option env="ENV" if LOC_1 config CORRECT_PROP_LOCS_BOOL prompt "prompt 1" default DEFAULT_1 default DEFAULT_2 select SELECT_1 select SELECT_2 imply IMPLY_1 imply IMPLY_2 help help 1 endif if LOC_2 menuconfig CORRECT_PROP_LOCS_BOOL bool "prompt 2" default DEFAULT_3 default DEFAULT_4 select SELECT_3 select SELECT_4 imply IMPLY_3 imply IMPLY_4 help help 2 endif if LOC_3 config CORRECT_PROP_LOCS_BOOL prompt "prompt 3" default DEFAULT_5 default DEFAULT_6 select SELECT_5 select SELECT_6 imply IMPLY_5 imply IMPLY_6 help help 2 endif if LOC_1 config CORRECT_PROP_LOCS_INT int range 1 2 range 3 4 endif if LOC_2 config CORRECT_PROP_LOCS_INT range 5 6 range 7 8 endif choice CHOICE tristate "foo" default CHOICE_1 default CHOICE_2 if dep config CHOICE_1 tristate "choice 1" config CHOICE_2 tristate "choice 2" endchoice choice tristate "no name" optional endchoice if LOC_1 choice CORRECT_PROP_LOCS_CHOICE bool default CHOICE_3 config CHOICE_3 bool "choice 3" config CHOICE_4 bool "choice 3" config CHOICE_5 bool "choice 3" endchoice endif if LOC_2 choice CORRECT_PROP_LOCS_CHOICE default CHOICE_4 endchoice endif if LOC_3 choice CORRECT_PROP_LOCS_CHOICE default CHOICE_5 endchoice endif config SIMPLE_MENU_HOOK menu "simple menu" endmenu config ADVANCED_MENU_HOOK menu "advanced menu" depends on A visible if B visible if C || D endmenu config SIMPLE_COMMENT_HOOK comment "simple comment" config ADVANCED_COMMENT_HOOK comment "advanced comment" depends on A depends on B # Corner cases when removing direct dependencies config DEP_REM_CORNER_CASES bool default A depends on n config DEP_REM_CORNER_CASES default B if n config DEP_REM_CORNER_CASES default C depends on m config DEP_REM_CORNER_CASES default D if A && y depends on y config DEP_REM_CORNER_CASES default E if !E1 default F if F1 = F2 default G if G1 || H1 depends on !H config DEP_REM_CORNER_CASES default H depends on "foo" = "bar" menu "menu" visible if FOO || BAR config DEP_REM_CORNER_CASES prompt "prompt" depends on BAZ && QAZ endmenu # Only prompt, no type config PROMPT_ONLY prompt "prompt only" # {Symbol,Choice}.orig_* if BASE_DEP config BOOL_SYM_ORIG bool default D1 if DEP default D2 select S1 select S2 if DEP imply I1 imply I1 config BOOL_SYM_ORIG default D3 select S3 imply I3 if DEP config INT_SYM_ORIG int range 1 2 if DEP range 3 4 config INT_SYM_ORIG range 5 6 if DEP choice CHOICE_ORIG bool "choice orig" default A default B if DEP config A bool config B bool endchoice choice CHOICE_ORIG default C if DEP config C bool endchoice endif