813044e2c410f10169de35619abd515c78828724
[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 one.
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 derivative of the Debian 'dash'
43           shell (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_TIMEOUT
57         bool "  Enable read timeout support."
58         default n
59         depends on CONFIG_ASH_JOB_CONTROL
60         help
61           This option provides read -t <seconds> support.
62
63           read builtin which allows the function to pass control back 
64           if no character input is read from the terminal within a set
65           number of seconds.
66
67 config CONFIG_ASH_ALIAS
68         bool "  Enable alias support"
69         default y
70         depends on CONFIG_ASH
71         help
72           Enable alias support in the ash shell.
73
74 config CONFIG_ASH_MATH_SUPPORT
75         bool "  Enable Posix math support"
76         default y
77         depends on CONFIG_ASH
78         help
79           Enable math support in the ash shell.
80
81 config CONFIG_ASH_MATH_SUPPORT_64
82         bool "    Extend Posix math support to 64 bit"
83         default n
84         depends on CONFIG_ASH_MATH_SUPPORT
85         help
86           Enable 64-bit math support in the ash shell.  This will make
87           the shell slightly larger, but will allow computation with very
88           large numbers.
89
90 config CONFIG_ASH_GETOPTS
91         bool "  Enable getopts builtin to parse positional parameters"
92         default n
93         depends on CONFIG_ASH
94         help
95           Enable getopts builtin in the ash shell.
96
97 config CONFIG_ASH_CMDCMD
98         bool "  Enable cmdcmd to override shell builtins"
99         default n
100         depends on CONFIG_ASH
101         help
102           Enable support for the ash 'command' builtin, which allows
103           you to run the specified command with the specified arguments,
104           even when there is an ash builtin command with the same name.
105
106 config CONFIG_ASH_BUILTIN_ECHO
107         bool "  Enable builtin version of 'echo'"
108         default n
109         depends on CONFIG_ASH
110         help
111           Enable support for echo, built in to ash.
112
113 # this entry also appears in coreutils/Config.in, next to the echo applet
114 config CONFIG_FEATURE_FANCY_ECHO
115         bool "  Enable echo options (-n and -e)"
116         default y
117         depends on CONFIG_ASH_BUILTIN_ECHO
118         help
119           This adds options (-n and -e) to echo.
120
121 config CONFIG_ASH_MAIL
122         bool "  Check for new mail on interactive shells"
123         default y
124         depends on CONFIG_ASH
125         help
126           Enable "check for new mail" in the ash shell.
127
128 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
129         bool "  Optimize for size instead of speed"
130         default y
131         depends on CONFIG_ASH
132         help
133           Compile ash for reduced size at price of speed.
134
135 config CONFIG_ASH_RANDOM_SUPPORT
136         bool "  Enable pseudorandom generator and variable $RANDOM"
137         default n
138         depends on CONFIG_ASH
139         help
140           Enable pseudorandom generator and dynamic variable "$RANDOM".
141           Each read of "$RANDOM" will generate a new pseudorandom value.
142           You can reset the generator by using a specified start value.
143           After "unset RANDOM" then generator will switch off and this
144           variable will no longer have special treatment.
145
146 config CONFIG_HUSH
147         bool "hush"
148         default n
149         help
150           hush is a very small shell (just 18k) and it has fairly complete
151           Bourne shell grammar.  It even handles all the normal flow control
152           options such as if/then/elif/else/fi, for/in/do/done, while loops,
153           etc.
154
155           It does not handle case/esac, select, function, here documents ( <<
156           word ), arithmetic expansion, aliases, brace expansion, tilde
157           expansion, &> and >& redirection of stdout+stderr, etc.
158
159
160 config CONFIG_LASH
161         bool "lash"
162         default n
163         help
164           lash is the very smallest shell (adds just 10k) and it is quite
165           usable as a command prompt, but it is not suitable for any but the
166           most trivial scripting (such as an initrd that calls insmod a few
167           times) since it does not understand any Bourne shell grammar.  It
168           does handle pipes, redirects, and job control though.  Adding in
169           command editing makes it a very nice lightweight command prompt.
170
171
172 config CONFIG_MSH
173         bool "msh"
174         default n
175         help
176           The minix shell (adds just 30k) is quite complete and handles things
177           like for/do/done, case/esac and all the things you expect a Bourne
178           shell to do.  It is not always pedantically correct about Bourne
179           shell grammar (try running the shell testscript "tests/sh.testcases"
180           on it and compare vs bash) but for most things it works quite well.
181           It also uses only vfork, so it can be used on uClinux systems.
182
183 comment "Bourne Shell Options"
184         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
185
186 config CONFIG_FEATURE_SH_EXTRA_QUIET
187         bool "Hide message on interactive shell startup"
188         default n
189         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
190         help
191           Remove the busybox introduction when starting a shell.
192
193 config CONFIG_FEATURE_SH_STANDALONE_SHELL
194         bool "Standalone shell"
195         default n
196         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
197         help
198           This option causes the selected busybox shell to use busybox applets
199           in preference to executables in the PATH whenever possible.  For
200           example, entering the command 'ifconfig' into the shell would cause
201           busybox to use the ifconfig busybox applet.  Specifying the fully
202           qualified executable name, such as '/sbin/ifconfig' will still
203           execute the /sbin/ifconfig executable on the filesystem.  This option
204           is generally used when creating a staticly linked version of busybox
205           for use as a rescue shell, in the event that you screw up your system.
206
207           Note that when using this option, the shell will attempt to directly
208           run '/bin/busybox'.  If you do not have the busybox binary sitting in
209           that exact location with that exact name, this option will not work at
210           all.
211
212 config CONFIG_FEATURE_COMMAND_EDITING
213         bool "command line editing"
214         default n
215         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
216         help
217           Enable command editing in shell.
218
219 config CONFIG_FEATURE_COMMAND_EDITING_VI
220         bool "vi-style line editing commands"
221         default n
222         depends on CONFIG_FEATURE_COMMAND_EDITING
223         help
224           Enable vi-style line editing in the shell.  This mode can be
225           turned on and off with "set -o vi" and "set +o vi".
226
227 config CONFIG_FEATURE_COMMAND_HISTORY
228         int "history size"
229         default 15
230         depends on CONFIG_FEATURE_COMMAND_EDITING
231         help
232           Specify command history size in shell.
233
234 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
235         bool "history saving"
236         default n
237         depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
238         help
239           Enable history saving in ash shell.
240
241 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
242         bool "tab completion"
243         default n
244         depends on CONFIG_FEATURE_COMMAND_EDITING
245         help
246           Enable tab completion in shell.
247
248 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
249         bool "username completion"
250         default n
251         depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
252         help
253           Enable username completion in shell.
254
255 config CONFIG_FEATURE_SH_FANCY_PROMPT
256         bool "Fancy shell prompts"
257         default n
258         depends on CONFIG_FEATURE_COMMAND_EDITING
259         help
260           Setting this option allows for prompts to use things like \w and
261           \$ and also using escape codes.
262
263 endmenu