f9fb8488f6deb2716d3cd04bebff9a40fa453b30
[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_ASH_EXPAND_PRMT
147         bool "  Support expand PS#"
148         default n
149         depends on CONFIG_ASH
150         help
151           "PS#" may be have commands. It option enable expand string
152           from prompt before each show.
153
154
155 config CONFIG_HUSH
156         bool "hush"
157         default n
158         help
159           hush is a very small shell (just 18k) and it has fairly complete
160           Bourne shell grammar.  It even handles all the normal flow control
161           options such as if/then/elif/else/fi, for/in/do/done, while loops,
162           etc.
163
164           It does not handle case/esac, select, function, here documents ( <<
165           word ), arithmetic expansion, aliases, brace expansion, tilde
166           expansion, &> and >& redirection of stdout+stderr, etc.
167
168
169 config CONFIG_LASH
170         bool "lash"
171         default n
172         help
173           lash is the very smallest shell (adds just 10k) and it is quite
174           usable as a command prompt, but it is not suitable for any but the
175           most trivial scripting (such as an initrd that calls insmod a few
176           times) since it does not understand any Bourne shell grammar.  It
177           does handle pipes, redirects, and job control though.  Adding in
178           command editing makes it a very nice lightweight command prompt.
179
180
181 config CONFIG_MSH
182         bool "msh"
183         default n
184         help
185           The minix shell (adds just 30k) is quite complete and handles things
186           like for/do/done, case/esac and all the things you expect a Bourne
187           shell to do.  It is not always pedantically correct about Bourne
188           shell grammar (try running the shell testscript "tests/sh.testcases"
189           on it and compare vs bash) but for most things it works quite well.
190           It also uses only vfork, so it can be used on uClinux systems.
191
192 comment "Bourne Shell Options"
193         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
194
195 config CONFIG_FEATURE_SH_EXTRA_QUIET
196         bool "Hide message on interactive shell startup"
197         default n
198         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
199         help
200           Remove the busybox introduction when starting a shell.
201
202 config CONFIG_FEATURE_SH_STANDALONE_SHELL
203         bool "Standalone shell"
204         default n
205         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
206         help
207           This option causes the selected busybox shell to use busybox applets
208           in preference to executables in the PATH whenever possible.  For
209           example, entering the command 'ifconfig' into the shell would cause
210           busybox to use the ifconfig busybox applet.  Specifying the fully
211           qualified executable name, such as '/sbin/ifconfig' will still
212           execute the /sbin/ifconfig executable on the filesystem.  This option
213           is generally used when creating a staticly linked version of busybox
214           for use as a rescue shell, in the event that you screw up your system.
215
216           Note that when using this option, the shell will attempt to directly
217           run '/bin/busybox'.  If you do not have the busybox binary sitting in
218           that exact location with that exact name, this option will not work at
219           all.
220
221 config CONFIG_FEATURE_COMMAND_EDITING
222         bool "command line editing"
223         default n
224         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
225         help
226           Enable command editing in shell.
227
228 config CONFIG_FEATURE_COMMAND_EDITING_VI
229         bool "vi-style line editing commands"
230         default n
231         depends on CONFIG_FEATURE_COMMAND_EDITING
232         help
233           Enable vi-style line editing in the shell.  This mode can be
234           turned on and off with "set -o vi" and "set +o vi".
235
236 config CONFIG_FEATURE_COMMAND_HISTORY
237         int "history size"
238         default 15
239         depends on CONFIG_FEATURE_COMMAND_EDITING
240         help
241           Specify command history size in shell.
242
243 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
244         bool "history saving"
245         default n
246         depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
247         help
248           Enable history saving in ash shell.
249
250 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
251         bool "tab completion"
252         default n
253         depends on CONFIG_FEATURE_COMMAND_EDITING
254         help
255           Enable tab completion in shell.
256
257 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
258         bool "username completion"
259         default n
260         depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
261         help
262           Enable username completion in shell.
263
264 config CONFIG_FEATURE_SH_FANCY_PROMPT
265         bool "Fancy shell prompts"
266         default n
267         depends on CONFIG_FEATURE_COMMAND_EDITING
268         help
269           Setting this option allows for prompts to use things like \w and
270           \$ and also using escape codes.
271
272 endmenu