Use the new 'select' option to make the shell config

much less evil and far more obvious.
 -Erik
This commit is contained in:
Eric Andersen 2003-08-08 23:40:12 +00:00
parent c601ff149a
commit b287e2e27a

View File

@ -13,15 +13,19 @@ choice
and full featured. and full featured.
config CONFIG_FEATURE_SH_IS_ASH config CONFIG_FEATURE_SH_IS_ASH
select CONFIG_ASH
bool "ash" bool "ash"
config CONFIG_FEATURE_SH_IS_HUSH config CONFIG_FEATURE_SH_IS_HUSH
select CONFIG_HUSH
bool "hush" bool "hush"
config CONFIG_FEATURE_SH_IS_LASH config CONFIG_FEATURE_SH_IS_LASH
select CONFIG_LASH
bool "lash" bool "lash"
config CONFIG_FEATURE_SH_IS_MSH config CONFIG_FEATURE_SH_IS_MSH
select CONFIG_MSH
bool "msh" bool "msh"
config CONFIG_FEATURE_SH_IS_NONE config CONFIG_FEATURE_SH_IS_NONE
@ -29,20 +33,15 @@ config CONFIG_FEATURE_SH_IS_NONE
endchoice endchoice
if CONFIG_FEATURE_SH_IS_ASH
config CONFIG_ASH
default y
comment "ash (forced enabled as default shell)"
endif
if !CONFIG_FEATURE_SH_IS_ASH
config CONFIG_ASH config CONFIG_ASH
bool "ash" bool "ash"
default y default y
help help
Make sh a link to ash. Tha 'ash' shell adds about 60k in the default configuration and is
endif the most complete and most pedantically correct shell included with
busybox. This shell is actually a derivitive the Debian 'dash' shell
(by Herbert Xu), which was created by porting the 'ash' shell
(written by Kenneth Almquist) from NetBSD.
comment "Ash Shell Options" comment "Ash Shell Options"
depends on CONFIG_ASH depends on CONFIG_ASH
@ -98,51 +97,41 @@ config CONFIG_ASH_OPTIMIZE_FOR_SIZE
help help
Compile ash for reduced size at price of speed. Compile ash for reduced size at price of speed.
if CONFIG_FEATURE_SH_IS_HUSH
config CONFIG_HUSH
default y
comment "hush (forced enabled as default shell)"
endif
if !CONFIG_FEATURE_SH_IS_HUSH
config CONFIG_HUSH config CONFIG_HUSH
bool "hush" bool "hush"
default n default n
help help
Make sh a link to hush. hush is very small shell (just 18k) and it has fairly complete Bourne
endif shell grammer. It even handles all the normal flow control options
such as if/then/elif/else/fi, for/in/do/done, while loops, etc.
if CONFIG_FEATURE_SH_IS_LASH It does not handle case/esac, select, function, here documents ( <<
config CONFIG_LASH word ), arithmetic expansion, aliases, brace expansion, tilde
default y expansion, &> and >& redirection of stdout+stderr, etc.
comment "lash (forced enabled as default shell)"
endif
if !CONFIG_FEATURE_SH_IS_LASH
config CONFIG_LASH config CONFIG_LASH
bool "lash" bool "lash"
default n default n
help help
Make sh a link to lash. lash is the very smallest shell (adds just 10k) and it is quite
endif usable as a command prompt, but it is not suitable for any but the
most trivial scripting (such as an initrd that calls insmod a few
times) since it does not understand any Bourne shell grammer. It
does handle pipes, redirects, and job control though. Adding in
command editing makes it a very nice lightweight command prompt.
if CONFIG_FEATURE_SH_IS_MSH
config CONFIG_MSH
default y
comment "msh (forced enabled as default shell)"
endif
if !CONFIG_FEATURE_SH_IS_MSH
config CONFIG_MSH config CONFIG_MSH
bool "msh" bool "msh"
default n default n
help help
Make sh a link to msh. The minix shell (adds just 30k) is quite complete and handles things
endif like for/do/done, case/esac and all the things you expect a Bourne
shell to do. It is not always pedantically correct about Bourne
shell grammer (try running the shell testscript "tests/sh.testcases"
on it and compare vs bash) but for most things it works quite well.
It also uses only vfork, so it can be used on uClinux systems.
comment "Bourne Shell Options" comment "Bourne Shell Options"
depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH