traceroute: fix help text to not show -6 when traceroute6 is off
[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 "Shells"
7
8 choice
9         prompt "Choose your default shell"
10         default 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 FEATURE_SH_IS_ASH
16         select ASH
17         bool "ash"
18
19 config FEATURE_SH_IS_HUSH
20         select HUSH
21         bool "hush"
22
23 ####config FEATURE_SH_IS_LASH
24 ####    select LASH
25 ####    bool "lash"
26
27 ####config FEATURE_SH_IS_MSH
28 ####    select MSH
29 ####    bool "msh"
30
31 config FEATURE_SH_IS_NONE
32         bool "none"
33
34 endchoice
35
36 config ASH
37         bool "ash"
38         default n
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 config ASH_BASH_COMPAT
47         bool "bash-compatible extensions"
48         default y
49         depends on ASH
50         help
51           Enable bash-compatible extensions.
52
53 config ASH_JOB_CONTROL
54         bool "Job control"
55         default y
56         depends on ASH
57         help
58           Enable job control in the ash shell.
59
60 config ASH_READ_NCHARS
61         bool "'read -n N' and 'read -s' support"
62         default n
63         depends on ASH
64         help
65           'read -n N' will return a value after N characters have been read.
66           'read -s' will read without echoing the user's input.
67
68 config ASH_READ_TIMEOUT
69         bool "'read -t S' support"
70         default n
71         depends on ASH
72         help
73           'read -t S' will return a value after S seconds have passed.
74           This implementation will allow fractional seconds, expressed
75           as a decimal fraction, e.g. 'read -t 2.5 foo'.
76
77 config ASH_ALIAS
78         bool "alias support"
79         default y
80         depends on ASH
81         help
82           Enable alias support in the ash shell.
83
84 config ASH_GETOPTS
85         bool "Builtin getopt to parse positional parameters"
86         default n
87         depends on ASH
88         help
89           Enable getopts builtin in the ash shell.
90
91 config ASH_BUILTIN_ECHO
92         bool "Builtin version of 'echo'"
93         default y
94         depends on ASH
95         help
96           Enable support for echo, builtin to ash.
97
98 config ASH_BUILTIN_PRINTF
99         bool "Builtin version of 'printf'"
100         default y
101         depends on ASH
102         help
103           Enable support for printf, builtin to ash.
104
105 config ASH_BUILTIN_TEST
106         bool "Builtin version of 'test'"
107         default y
108         depends on ASH
109         help
110           Enable support for test, builtin to ash.
111
112 config ASH_CMDCMD
113         bool "'command' command to override shell builtins"
114         default n
115         depends on ASH
116         help
117           Enable support for the ash 'command' builtin, which allows
118           you to run the specified command with the specified arguments,
119           even when there is an ash builtin command with the same name.
120
121 config ASH_MAIL
122         bool "Check for new mail on interactive shells"
123         default y
124         depends on ASH
125         help
126           Enable "check for new mail" in the ash shell.
127
128 config ASH_OPTIMIZE_FOR_SIZE
129         bool "Optimize for size instead of speed"
130         default y
131         depends on ASH
132         help
133           Compile ash for reduced size at the price of speed.
134
135 config ASH_RANDOM_SUPPORT
136         bool "Pseudorandom generator and $RANDOM variable"
137         default n
138         depends on 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" the generator will switch off and this
144           variable will no longer have special treatment.
145
146 config ASH_EXPAND_PRMT
147         bool "Expand prompt string"
148         default n
149         depends on ASH
150         help
151           "PS#" may contain volatile content, such as backquote commands.
152           This option recreates the prompt string from the environment
153           variable each time it is displayed.
154
155 config HUSH
156         bool "hush"
157         default n
158         help
159           hush is a small shell (22k). It handles the normal flow control
160           constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
161           case/esac. Redirections, here documents, $((arithmetic))
162           and functions are supported.
163
164           It will compile and work on no-mmu systems.
165
166           It does not handle select, aliases, brace expansion,
167           tilde expansion, &>file and >&file redirection of stdout+stderr.
168
169 config HUSH_BASH_COMPAT
170         bool "bash-compatible extensions"
171         default y
172         depends on HUSH
173         help
174           Enable bash-compatible extensions.
175
176 config HUSH_HELP
177         bool "help builtin"
178         default n
179         depends on HUSH
180         help
181           Enable help builtin in hush. Code size + ~1 kbyte.
182
183 config HUSH_INTERACTIVE
184         bool "Interactive mode"
185         default y
186         depends on HUSH
187         help
188           Enable interactive mode (prompt and command editing).
189           Without this, hush simply reads and executes commands
190           from stdin just like a shell script from a file.
191           No prompt, no PS1/PS2 magic shell variables.
192
193 config HUSH_JOB
194         bool "Job control"
195         default n
196         depends on HUSH_INTERACTIVE
197         help
198           Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
199           command (not entire shell), fg/bg builtins work. Without this option,
200           "cmd &" still works by simply spawning a process and immediately
201           prompting for next command (or executing next command in a script),
202           but no separate process group is formed.
203
204 config HUSH_TICK
205         bool "Process substitution"
206         default n
207         depends on HUSH
208         help
209           Enable process substitution `command` and $(command) in hush.
210
211 config HUSH_IF
212         bool "Support if/then/elif/else/fi"
213         default n
214         depends on HUSH
215         help
216           Enable if/then/elif/else/fi in hush.
217
218 config HUSH_LOOPS
219         bool "Support for, while and until loops"
220         default n
221         depends on HUSH
222         help
223           Enable for, while and until loops in hush.
224
225 config HUSH_CASE
226         bool "Support case ... esac statement"
227         default n
228         depends on HUSH
229         help
230           Enable case ... esac statement in hush. +400 bytes.
231
232 config HUSH_FUNCTIONS
233         bool "Support funcname() { commands; } syntax"
234         default n
235         depends on HUSH
236         help
237           Enable support for shell functions in hush. +800 bytes.
238
239 config HUSH_LOCAL
240         bool "Support local builtin"
241         default n
242         depends on HUSH_FUNCTIONS
243         help
244           Enable support for local variables in functions.
245
246 config HUSH_EXPORT_N
247         bool "Support export '-n' option"
248         default n
249         depends on HUSH
250         help
251           Enable support for export '-n' option in hush. It is a bash extension.
252
253 config HUSH_RANDOM_SUPPORT
254         bool "Pseudorandom generator and $RANDOM variable"
255         default n
256         depends on HUSH
257         help
258           Enable pseudorandom generator and dynamic variable "$RANDOM".
259           Each read of "$RANDOM" will generate a new pseudorandom value.
260
261 config LASH
262         bool "lash (deprecated: aliased to hush)"
263         default n
264         select HUSH
265         help
266           lash is deprecated and will be removed, please migrate to hush.
267
268 config MSH
269         bool "msh (deprecated: please use hush)"
270         default n
271         select HUSH
272         help
273           msh is deprecated and will be removed, please migrate to hush.
274           If there is a feature msh has but hush does not, please let us know.
275
276 #         The minix shell (adds just 30k) is quite complete and handles things
277 #         like for/do/done, case/esac and all the things you expect a Bourne
278 #         shell to do. It is not always pedantically correct about Bourne
279 #         shell grammar (try running the shell testscript "tests/sh.testcases"
280 #         on it and compare vs bash) but for most things it works quite well.
281 #         It uses only vfork, so it can be used on uClinux systems.
282
283
284 config SH_MATH_SUPPORT
285         bool "POSIX math support"
286         default y
287         depends on ASH || HUSH
288         help
289           Enable math support in the shell via $((...)) syntax.
290
291 config SH_MATH_SUPPORT_64
292         bool "Extend POSIX math support to 64 bit"
293         default n
294         depends on SH_MATH_SUPPORT
295         help
296           Enable 64-bit math support in the shell. This will make the shell
297           slightly larger, but will allow computation with very large numbers.
298           This is not in POSIX, so do not rely on this in portable code.
299
300 config FEATURE_SH_EXTRA_QUIET
301         bool "Hide message on interactive shell startup"
302         default n
303         depends on MSH || LASH || HUSH || ASH
304         help
305           Remove the busybox introduction when starting a shell.
306
307 config FEATURE_SH_STANDALONE
308         bool "Standalone shell"
309         default n
310         depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
311         help
312           This option causes busybox shells to use busybox applets
313           in preference to executables in the PATH whenever possible. For
314           example, entering the command 'ifconfig' into the shell would cause
315           busybox to use the ifconfig busybox applet. Specifying the fully
316           qualified executable name, such as '/sbin/ifconfig' will still
317           execute the /sbin/ifconfig executable on the filesystem. This option
318           is generally used when creating a statically linked version of busybox
319           for use as a rescue shell, in the event that you screw up your system.
320
321           This is implemented by re-execing /proc/self/exe (typically)
322           with right parameters. Some selected applets ("NOFORK" applets)
323           can even be executed without creating new process.
324           Instead, busybox will call <applet>_main() internally.
325
326           However, this causes problems in chroot jails without mounted /proc
327           and with ps/top (command name can be shown as 'exe' for applets
328           started this way).
329 # untrue?
330 #         Note that this will *also* cause applets to take precedence
331 #         over shell builtins of the same name. So turning this on will
332 #         eliminate any performance gained by turning on the builtin "echo"
333 #         and "test" commands in ash.
334 # untrue?
335 #         Note that when using this option, the shell will attempt to directly
336 #         run '/bin/busybox'. If you do not have the busybox binary sitting in
337 #         that exact location with that exact name, this option will not work at
338 #         all.
339
340 config FEATURE_SH_NOFORK
341         bool "Run 'nofork' applets directly"
342         default n
343         depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
344         help
345           This option causes busybox shells [currently only ash]
346           to not execute typical fork/exec/wait sequence, but call <applet>_main
347           directly, if possible. (Sometimes it is not possible: for example,
348           this is not possible in pipes).
349
350           This will be done only for some applets (those which are marked
351           NOFORK in include/applets.h).
352
353           This may significantly speed up some shell scripts.
354
355           This feature is relatively new. Use with care.
356
357 config CTTYHACK
358         bool "cttyhack"
359         default n
360         help
361           One common problem reported on the mailing list is "can't access tty;
362           job control turned off" error message which typically appears when
363           one tries to use shell with stdin/stdout opened to /dev/console.
364           This device is special - it cannot be a controlling tty.
365
366           Proper solution is to use correct device instead of /dev/console.
367
368           cttyhack provides "quick and dirty" solution to this problem.
369           It analyzes stdin with various ioctls, trying to determine whether
370           it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
371           If it detects one, it closes stdin/out/err and reopens that device.
372           Then it executes given program. Usage example for /etc/inittab
373           (for busybox init):
374
375           ::respawn:/bin/cttyhack /bin/sh
376
377 endmenu