busybox: update to 1.33
[openwrt/openwrt.git] / package / utils / busybox / config / shell / Config.in
index 1ae6eb042e5d6233b2b2134a5deddf41666f8281..cb43bcd84c89c08443e74d1608ed8999c8a5affe 100644 (file)
@@ -18,6 +18,7 @@ choice
 config BUSYBOX_CONFIG_SH_IS_ASH
        depends on !BUSYBOX_CONFIG_NOMMU
        bool "ash"
+       select BUSYBOX_CONFIG_SHELL_ASH
        help
        Choose ash to be the shell executed by 'sh' name.
        The ash code will be built into busybox. If you don't select
@@ -26,6 +27,7 @@ config BUSYBOX_CONFIG_SH_IS_ASH
 
 config BUSYBOX_CONFIG_SH_IS_HUSH
        bool "hush"
+       select BUSYBOX_CONFIG_SHELL_HUSH
        help
        Choose hush to be the shell executed by 'sh' name.
        The hush code will be built into busybox. If you don't select
@@ -58,6 +60,7 @@ choice
 config BUSYBOX_CONFIG_BASH_IS_ASH
        depends on !BUSYBOX_CONFIG_NOMMU
        bool "ash"
+       select BUSYBOX_CONFIG_SHELL_ASH
        help
        Choose ash to be the shell executed by 'bash' name.
        The ash code will be built into busybox. If you don't select
@@ -66,6 +69,7 @@ config BUSYBOX_CONFIG_BASH_IS_ASH
 
 config BUSYBOX_CONFIG_BASH_IS_HUSH
        bool "hush"
+       select BUSYBOX_CONFIG_SHELL_HUSH
        help
        Choose hush to be the shell executed by 'bash' name.
        The hush code will be built into busybox. If you don't select
@@ -78,10 +82,15 @@ config BUSYBOX_CONFIG_BASH_IS_NONE
 endchoice
 
 
+config BUSYBOX_CONFIG_SHELL_ASH
+       bool #hidden option
+       depends on !BUSYBOX_CONFIG_NOMMU
+
 config BUSYBOX_CONFIG_ASH
        bool "ash (78 kb)"
        default BUSYBOX_DEFAULT_ASH
        depends on !BUSYBOX_CONFIG_NOMMU
+       select BUSYBOX_CONFIG_SHELL_ASH
        help
        The most complete and most pedantically correct shell included with
        busybox. This shell is actually a derivative of the Debian 'dash'
@@ -91,17 +100,17 @@ config BUSYBOX_CONFIG_ASH
 # ash options
 # note: Don't remove !NOMMU part in the next line; it would break
 # menuconfig's indenting.
-if !NOMMU && (BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH)
+if !NOMMU && (BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH)
 
 config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
        bool "Optimize for size instead of speed"
        default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
        bool "Use internal glob() implementation"
        default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB       # Y is bigger, but because of uclibc glob() bug, let Y be default for now
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
        help
        Do not use glob() function from libc, use internal implementation.
        Use this if you are getting "glob.h: No such file or directory"
@@ -112,7 +121,7 @@ config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
 config BUSYBOX_CONFIG_ASH_BASH_COMPAT
        bool "bash-compatible extensions"
        default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_BASH_SOURCE_CURDIR
        bool "'source' and '.' builtins search current directory after $PATH"
@@ -133,17 +142,17 @@ config BUSYBOX_CONFIG_ASH_BASH_NOT_FOUND_HOOK
 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
        bool "Job control"
        default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_ALIAS
        bool "Alias support"
        default BUSYBOX_DEFAULT_ASH_ALIAS
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
        bool "Pseudorandom generator and $RANDOM variable"
        default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
        help
        Enable pseudorandom generator and dynamic variable "$RANDOM".
        Each read of "$RANDOM" will generate a new pseudorandom value.
@@ -154,7 +163,7 @@ config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
 config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
        bool "Expand prompt string"
        default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
        help
        $PS# may contain volatile content, such as backquote commands.
        This option recreates the prompt string from the environment
@@ -163,14 +172,14 @@ config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
        bool "Idle timeout variable $TMOUT"
        default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
        help
        Enable bash-like auto-logout after $TMOUT seconds of idle time.
 
 config BUSYBOX_CONFIG_ASH_MAIL
        bool "Check for new mail in interactive shell"
        default BUSYBOX_DEFAULT_ASH_MAIL
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
        help
        Enable "check for new mail" function:
        if set, $MAIL file and $MAILPATH list of files
@@ -180,32 +189,32 @@ config BUSYBOX_CONFIG_ASH_MAIL
 config BUSYBOX_CONFIG_ASH_ECHO
        bool "echo builtin"
        default BUSYBOX_DEFAULT_ASH_ECHO
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_PRINTF
        bool "printf builtin"
        default BUSYBOX_DEFAULT_ASH_PRINTF
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_TEST
        bool "test builtin"
        default BUSYBOX_DEFAULT_ASH_TEST
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_HELP
        bool "help builtin"
        default BUSYBOX_DEFAULT_ASH_HELP
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_GETOPTS
        bool "getopts builtin"
        default BUSYBOX_DEFAULT_ASH_GETOPTS
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
 
 config BUSYBOX_CONFIG_ASH_CMDCMD
        bool "command builtin"
        default BUSYBOX_DEFAULT_ASH_CMDCMD
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_SHELL_ASH
        help
        Enable support for the 'command' builtin, which allows
        you to run the specified command or builtin,
@@ -258,6 +267,7 @@ config BUSYBOX_CONFIG_CTTYHACK
 config BUSYBOX_CONFIG_HUSH
        bool "hush (68 kb)"
        default BUSYBOX_DEFAULT_HUSH
+       select BUSYBOX_CONFIG_SHELL_HUSH
        help
        hush is a small shell. It handles the normal flow control
        constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
@@ -269,10 +279,18 @@ config BUSYBOX_CONFIG_HUSH
        It does not handle select, aliases, tilde expansion,
        &>file and >&file redirection of stdout+stderr.
 
+config BUSYBOX_CONFIG_SHELL_HUSH
+       bool "Internal shell for embedded script support"
+       default BUSYBOX_DEFAULT_SHELL_HUSH
+
+# hush options
+# It's only needed to get "nice" menuconfig indenting.
+if SHELL_HUSH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+
 config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
        bool "bash-compatible extensions"
        default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
        bool "Brace expansion"
@@ -296,7 +314,7 @@ config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
        bool "Interactive mode"
        default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
        help
        Enable interactive mode (prompt and command editing).
        Without this, hush simply reads and executes commands
@@ -322,31 +340,31 @@ config BUSYBOX_CONFIG_HUSH_JOB
 config BUSYBOX_CONFIG_HUSH_TICK
        bool "Support command substitution"
        default BUSYBOX_DEFAULT_HUSH_TICK
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
        help
        Enable `command` and $(command).
 
 config BUSYBOX_CONFIG_HUSH_IF
        bool "Support if/then/elif/else/fi"
        default BUSYBOX_DEFAULT_HUSH_IF
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_LOOPS
        bool "Support for, while and until loops"
        default BUSYBOX_DEFAULT_HUSH_LOOPS
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_CASE
        bool "Support case ... esac statement"
        default BUSYBOX_DEFAULT_HUSH_CASE
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
        help
        Enable case ... esac statement. +400 bytes.
 
 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
        bool "Support funcname() { commands; } syntax"
        default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
        help
        Enable support for shell functions. +800 bytes.
 
@@ -360,7 +378,7 @@ config BUSYBOX_CONFIG_HUSH_LOCAL
 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
        bool "Pseudorandom generator and $RANDOM variable"
        default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
        help
        Enable pseudorandom generator and dynamic variable "$RANDOM".
        Each read of "$RANDOM" will generate a new pseudorandom value.
@@ -368,7 +386,7 @@ config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
 config BUSYBOX_CONFIG_HUSH_MODE_X
        bool "Support 'hush -x' option and 'set -x' command"
        default BUSYBOX_DEFAULT_HUSH_MODE_X
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
        help
        This instructs hush to print commands before execution.
        Adds ~300 bytes.
@@ -376,27 +394,27 @@ config BUSYBOX_CONFIG_HUSH_MODE_X
 config BUSYBOX_CONFIG_HUSH_ECHO
        bool "echo builtin"
        default BUSYBOX_DEFAULT_HUSH_ECHO
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_PRINTF
        bool "printf builtin"
        default BUSYBOX_DEFAULT_HUSH_PRINTF
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_TEST
        bool "test builtin"
        default BUSYBOX_DEFAULT_HUSH_TEST
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_HELP
        bool "help builtin"
        default BUSYBOX_DEFAULT_HUSH_HELP
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_EXPORT
        bool "export builtin"
        default BUSYBOX_DEFAULT_HUSH_EXPORT
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_EXPORT_N
        bool "Support 'export -n' option"
@@ -408,83 +426,85 @@ config BUSYBOX_CONFIG_HUSH_EXPORT_N
 config BUSYBOX_CONFIG_HUSH_READONLY
        bool "readonly builtin"
        default BUSYBOX_DEFAULT_HUSH_READONLY
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
        help
        Enable support for read-only variables.
 
 config BUSYBOX_CONFIG_HUSH_KILL
        bool "kill builtin (supports kill %jobspec)"
        default BUSYBOX_DEFAULT_HUSH_KILL
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_WAIT
        bool "wait builtin"
        default BUSYBOX_DEFAULT_HUSH_WAIT
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_COMMAND
        bool "command builtin"
        default BUSYBOX_DEFAULT_HUSH_COMMAND
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_TRAP
        bool "trap builtin"
        default BUSYBOX_DEFAULT_HUSH_TRAP
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_TYPE
        bool "type builtin"
        default BUSYBOX_DEFAULT_HUSH_TYPE
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_TIMES
        bool "times builtin"
        default BUSYBOX_DEFAULT_HUSH_TIMES
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_READ
        bool "read builtin"
        default BUSYBOX_DEFAULT_HUSH_READ
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_SET
        bool "set builtin"
        default BUSYBOX_DEFAULT_HUSH_SET
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_UNSET
        bool "unset builtin"
        default BUSYBOX_DEFAULT_HUSH_UNSET
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_ULIMIT
        bool "ulimit builtin"
        default BUSYBOX_DEFAULT_HUSH_ULIMIT
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_UMASK
        bool "umask builtin"
        default BUSYBOX_DEFAULT_HUSH_UMASK
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_GETOPTS
        bool "getopts builtin"
        default BUSYBOX_DEFAULT_HUSH_GETOPTS
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_HUSH_MEMLEAK
        bool "memleak builtin (debugging)"
        default BUSYBOX_DEFAULT_HUSH_MEMLEAK
-       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
+
+endif # hush options
 
 
 comment "Options common to all shells"
-if ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+if BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
 
 config BUSYBOX_CONFIG_FEATURE_SH_MATH
        bool "POSIX math support"
        default BUSYBOX_DEFAULT_FEATURE_SH_MATH
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
        help
        Enable math support in the shell via $((...)) syntax.
 
@@ -505,14 +525,14 @@ config BUSYBOX_CONFIG_FEATURE_SH_MATH_BASE
 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
        bool "Hide message on interactive shell startup"
        default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
        help
        Remove the busybox introduction when starting a shell.
 
 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
        bool "Standalone shell"
        default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
        help
        This option causes busybox shells to use busybox applets
        in preference to executables in the PATH whenever possible. For
@@ -533,7 +553,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
        bool "Run 'nofork' applets directly"
        default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
        help
        This option causes busybox shells to not execute typical
        fork/exec/wait sequence, but call <applet>_main directly,
@@ -551,14 +571,14 @@ config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
 config BUSYBOX_CONFIG_FEATURE_SH_READ_FRAC
        bool "read -t N.NNN support (+110 bytes)"
        default BUSYBOX_DEFAULT_FEATURE_SH_READ_FRAC
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
        help
        Enable support for fractional second timeout in read builtin.
 
 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
        bool "Use $HISTFILESIZE"
        default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
        help
        This option makes busybox shells to use $HISTFILESIZE variable
        to set shell history size. Note that its max value is capped
@@ -567,7 +587,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
 config BUSYBOX_CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS
        bool "Embed scripts in the binary"
        default BUSYBOX_DEFAULT_FEATURE_SH_EMBEDDED_SCRIPTS
-       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
        help
        Allow scripts to be compressed and embedded in the busybox
        binary. The scripts should be placed in the 'embed' directory