6cd3e04e418fc6f96d7fada9a5afc2aa5551e7df
[oweals/busybox.git] / shell / Config.in
1 #
2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
4 #
5
6 menu "Another Bourne-like Shell"
7
8 choice
9         prompt "Choose your default shell"
10         default CONFIG_FEATURE_SH_IS_NONE
11         help
12           Choose a shell. The ash shell is the most bash compatible
13           and full featured.
14
15 config CONFIG_FEATURE_SH_IS_ASH
16         select CONFIG_ASH
17         bool "ash"
18
19 config CONFIG_FEATURE_SH_IS_HUSH
20         select CONFIG_HUSH
21         bool "hush"
22
23 config CONFIG_FEATURE_SH_IS_LASH
24         select CONFIG_LASH
25         bool "lash"
26
27 config CONFIG_FEATURE_SH_IS_MSH
28         select CONFIG_MSH
29         bool "msh"
30
31 config CONFIG_FEATURE_SH_IS_NONE
32         bool "none"
33
34 endchoice
35
36 config CONFIG_ASH
37         bool "ash"
38         default y
39         help
40           Tha 'ash' shell adds about 60k in the default configuration and is
41           the most complete and most pedantically correct shell included with
42           busybox.  This shell is actually a derivitive the Debian 'dash' shell
43           (by Herbert Xu), which was created by porting the 'ash' shell
44           (written by Kenneth Almquist) from NetBSD.  
45
46 comment "Ash Shell Options"
47         depends on CONFIG_ASH
48
49 config CONFIG_ASH_JOB_CONTROL
50         bool "  Enable Job control"
51         default y
52         depends on CONFIG_ASH
53         help
54           Enable job control in the ash shell.
55
56 config CONFIG_ASH_ALIAS
57         bool "  Enable alias support"
58         default y
59         depends on CONFIG_ASH
60         help
61           Enable alias support in the ash shell.
62
63 config CONFIG_ASH_MATH_SUPPORT
64         bool "  Enable Posix math support"
65         default y
66         depends on CONFIG_ASH
67         help
68           Enable math support in the ash shell.
69
70 config CONFIG_ASH_GETOPTS
71         bool "  Enable getopt builtin to parse positional parameters"
72         default n
73         depends on CONFIG_ASH
74         help
75           Enable builtin getopt in the ash shell.
76
77 config CONFIG_ASH_CMDCMD
78         bool "  Enable cmdcmd to override shell builtins"
79         default n
80         depends on CONFIG_ASH
81         help
82           Enable support for the ash 'command' builtin, which allows
83           you to run the specified command with the specified arguments,
84           even when there is an ash builtin command with the same name.
85
86 config CONFIG_ASH_MAIL
87         bool "  Check for new mail on interactive shells"
88         default y
89         depends on CONFIG_ASH
90         help
91           Enable "check for new mail" in the ash shell.
92
93 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
94         bool "  Optimize for size instead of speed"
95         default y
96         depends on CONFIG_ASH
97         help
98           Compile ash for reduced size at price of speed.
99
100 config CONFIG_HUSH
101         bool "hush"
102         default n
103         help
104           hush is very small shell (just 18k) and it has fairly complete Bourne
105           shell grammer.  It even handles all the normal flow control options
106           such as if/then/elif/else/fi, for/in/do/done, while loops, etc.
107
108           It does not handle case/esac, select, function, here documents ( <<
109           word ), arithmetic expansion, aliases, brace expansion, tilde
110           expansion, &> and >& redirection of stdout+stderr, etc.
111
112
113 config CONFIG_LASH
114         bool "lash"
115         default n
116         help
117           lash is the very smallest shell (adds just 10k) and it is quite
118           usable as a command prompt, but it is not suitable for any but the
119           most trivial scripting (such as an initrd that calls insmod a few
120           times) since it does not understand any Bourne shell grammer.  It
121           does handle pipes, redirects, and job control though.  Adding in
122           command editing makes it a very nice lightweight command prompt.
123
124
125 config CONFIG_MSH
126         bool "msh"
127         default n
128         help
129           The minix shell (adds just 30k) is quite complete and handles things
130           like for/do/done, case/esac and all the things you expect a Bourne
131           shell to do.  It is not always pedantically correct about Bourne
132           shell grammer (try running the shell testscript "tests/sh.testcases"
133           on it and compare vs bash) but for most things it works quite well.
134           It also uses only vfork, so it can be used on uClinux systems.
135
136 comment "Bourne Shell Options"
137         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
138
139 config CONFIG_FEATURE_COMMAND_EDITING
140         bool "command line editing"
141         default n
142         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
143         help
144           Enable command editing in shell.
145
146 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
147         bool "  history saving"
148         default n
149         depends on CONFIG_ASH
150         help
151           Enable history saving in ash shell.
152
153 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
154         bool "tab completion"
155         default n
156         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
157         help
158           Enable tab completion in shell.
159
160 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
161         bool "username completion"
162         default n
163         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
164         help
165           Enable username completion in shell.
166
167 config CONFIG_FEATURE_COMMAND_HISTORY
168         int "history size"
169         default 15
170         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
171         help
172           Specify command history size in shell.
173
174 config CONFIG_FEATURE_SH_STANDALONE_SHELL
175         bool "Standalone shell"
176         default n
177         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
178         help
179           Have all the busybox commands built into the shell, creating
180           a standalone shell.
181
182 config CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
183         bool "Standalone shell -- applets always win"
184         default n
185         depends on CONFIG_FEATURE_SH_STANDALONE_SHELL
186         help
187           Use a command builtin to the shell over one with the same name,
188           that may be on the system.
189
190 config CONFIG_FEATURE_SH_FANCY_PROMPT
191         bool "Fancy shell prompts"
192         default n
193         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
194         help
195           Setting this option allows for prompts to use things like \w and
196           \$ and also using escape codes.
197
198 config CONFIG_FEATURE_SH_EXTRA_QUIET
199         bool "Hide message on interactive shell startup"
200         default n
201         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
202         help
203           Remove the busybox introduction when starting a shell.
204
205 endmenu
206