busybox: update to 1.22.1
[librecmc/librecmc.git] / package / utils / busybox / config / shell / Config.in
1 # DO NOT EDIT. This file is generated from Config.src
2 #
3 # For a description of the syntax of this configuration file,
4 # see scripts/kbuild/config-language.txt.
5 #
6
7 menu "Shells"
8
9 config BUSYBOX_CONFIG_ASH
10         bool "ash"
11         default BUSYBOX_DEFAULT_ASH
12         depends on !BUSYBOX_CONFIG_NOMMU
13         help
14           Tha 'ash' shell adds about 60k in the default configuration and is
15           the most complete and most pedantically correct shell included with
16           busybox. This shell is actually a derivative of the Debian 'dash'
17           shell (by Herbert Xu), which was created by porting the 'ash' shell
18           (written by Kenneth Almquist) from NetBSD.
19
20 config BUSYBOX_CONFIG_ASH_BASH_COMPAT
21         bool "bash-compatible extensions"
22         default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
23         depends on BUSYBOX_CONFIG_ASH
24         help
25           Enable bash-compatible extensions.
26
27 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
28         bool "Idle timeout variable"
29         default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
30         depends on BUSYBOX_CONFIG_ASH
31         help
32           Enables bash-like auto-logout after $TMOUT seconds of idle time.
33
34 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
35         bool "Job control"
36         default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
37         depends on BUSYBOX_CONFIG_ASH
38         help
39           Enable job control in the ash shell.
40
41 config BUSYBOX_CONFIG_ASH_ALIAS
42         bool "Alias support"
43         default BUSYBOX_DEFAULT_ASH_ALIAS
44         depends on BUSYBOX_CONFIG_ASH
45         help
46           Enable alias support in the ash shell.
47
48 config BUSYBOX_CONFIG_ASH_GETOPTS
49         bool "Builtin getopt to parse positional parameters"
50         default BUSYBOX_DEFAULT_ASH_GETOPTS
51         depends on BUSYBOX_CONFIG_ASH
52         help
53           Enable support for getopts builtin in ash.
54
55 config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
56         bool "Builtin version of 'echo'"
57         default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO
58         depends on BUSYBOX_CONFIG_ASH
59         help
60           Enable support for echo builtin in ash.
61
62 config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
63         bool "Builtin version of 'printf'"
64         default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
65         depends on BUSYBOX_CONFIG_ASH
66         help
67           Enable support for printf builtin in ash.
68
69 config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
70         bool "Builtin version of 'test'"
71         default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
72         depends on BUSYBOX_CONFIG_ASH
73         help
74           Enable support for test builtin in ash.
75
76 config BUSYBOX_CONFIG_ASH_CMDCMD
77         bool "'command' command to override shell builtins"
78         default BUSYBOX_DEFAULT_ASH_CMDCMD
79         depends on BUSYBOX_CONFIG_ASH
80         help
81           Enable support for the ash 'command' builtin, which allows
82           you to run the specified command with the specified arguments,
83           even when there is an ash builtin command with the same name.
84
85 config BUSYBOX_CONFIG_ASH_MAIL
86         bool "Check for new mail on interactive shells"
87         default BUSYBOX_DEFAULT_ASH_MAIL
88         depends on BUSYBOX_CONFIG_ASH
89         help
90           Enable "check for new mail" function in the ash shell.
91
92 config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
93         bool "Optimize for size instead of speed"
94         default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
95         depends on BUSYBOX_CONFIG_ASH
96         help
97           Compile ash for reduced size at the price of speed.
98
99 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
100         bool "Pseudorandom generator and $RANDOM variable"
101         default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
102         depends on BUSYBOX_CONFIG_ASH
103         help
104           Enable pseudorandom generator and dynamic variable "$RANDOM".
105           Each read of "$RANDOM" will generate a new pseudorandom value.
106           You can reset the generator by using a specified start value.
107           After "unset RANDOM" the generator will switch off and this
108           variable will no longer have special treatment.
109
110 config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
111         bool "Expand prompt string"
112         default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
113         depends on BUSYBOX_CONFIG_ASH
114         help
115           "PS#" may contain volatile content, such as backquote commands.
116           This option recreates the prompt string from the environment
117           variable each time it is displayed.
118
119 config BUSYBOX_CONFIG_CTTYHACK
120         bool "cttyhack"
121         default BUSYBOX_DEFAULT_CTTYHACK
122         help
123           One common problem reported on the mailing list is the "can't
124           access tty; job control turned off" error message, which typically
125           appears when one tries to use a shell with stdin/stdout on
126           /dev/console.
127           This device is special - it cannot be a controlling tty.
128
129           The proper solution is to use the correct device instead of
130           /dev/console.
131
132           cttyhack provides a "quick and dirty" solution to this problem.
133           It analyzes stdin with various ioctls, trying to determine whether
134           it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
135           On Linux it also checks sysfs for a pointer to the active console.
136           If cttyhack is able to find the real console device, it closes
137           stdin/out/err and reopens that device.
138           Then it executes the given program. Opening the device will make
139           that device a controlling tty. This may require cttyhack
140           to be a session leader.
141
142           Example for /etc/inittab (for busybox init):
143
144           ::respawn:/bin/cttyhack /bin/sh
145
146           Starting an interactive shell from boot shell script:
147
148           setsid cttyhack sh
149
150           Giving controlling tty to shell running with PID 1:
151
152           # exec cttyhack sh
153
154           Without cttyhack, you need to know exact tty name,
155           and do something like this:
156
157           # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
158
159           Starting getty on a controlling tty from a shell script:
160
161           # getty 115200 $(cttyhack)
162 config BUSYBOX_CONFIG_HUSH
163         bool "hush"
164         default BUSYBOX_DEFAULT_HUSH
165         help
166           hush is a small shell (25k). It handles the normal flow control
167           constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
168           case/esac. Redirections, here documents, $((arithmetic))
169           and functions are supported.
170
171           It will compile and work on no-mmu systems.
172
173           It does not handle select, aliases, tilde expansion,
174           &>file and >&file redirection of stdout+stderr.
175
176 config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
177         bool "bash-compatible extensions"
178         default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
179         depends on BUSYBOX_CONFIG_HUSH
180         help
181           Enable bash-compatible extensions.
182
183 config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
184         bool "Brace expansion"
185         default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
186         depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
187         help
188           Enable {abc,def} extension.
189
190 config BUSYBOX_CONFIG_HUSH_HELP
191         bool "help builtin"
192         default BUSYBOX_DEFAULT_HUSH_HELP
193         depends on BUSYBOX_CONFIG_HUSH
194         help
195           Enable help builtin in hush. Code size + ~1 kbyte.
196
197 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
198         bool "Interactive mode"
199         default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
200         depends on BUSYBOX_CONFIG_HUSH
201         help
202           Enable interactive mode (prompt and command editing).
203           Without this, hush simply reads and executes commands
204           from stdin just like a shell script from a file.
205           No prompt, no PS1/PS2 magic shell variables.
206
207 config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
208         bool "Save command history to .hush_history"
209         default BUSYBOX_DEFAULT_HUSH_SAVEHISTORY
210         depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
211         help
212           Enable history saving in hush.
213
214 config BUSYBOX_CONFIG_HUSH_JOB
215         bool "Job control"
216         default BUSYBOX_DEFAULT_HUSH_JOB
217         depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
218         help
219           Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
220           command (not entire shell), fg/bg builtins work. Without this option,
221           "cmd &" still works by simply spawning a process and immediately
222           prompting for next command (or executing next command in a script),
223           but no separate process group is formed.
224
225 config BUSYBOX_CONFIG_HUSH_TICK
226         bool "Process substitution"
227         default BUSYBOX_DEFAULT_HUSH_TICK
228         depends on BUSYBOX_CONFIG_HUSH
229         help
230           Enable process substitution `command` and $(command) in hush.
231
232 config BUSYBOX_CONFIG_HUSH_IF
233         bool "Support if/then/elif/else/fi"
234         default BUSYBOX_DEFAULT_HUSH_IF
235         depends on BUSYBOX_CONFIG_HUSH
236         help
237           Enable if/then/elif/else/fi in hush.
238
239 config BUSYBOX_CONFIG_HUSH_LOOPS
240         bool "Support for, while and until loops"
241         default BUSYBOX_DEFAULT_HUSH_LOOPS
242         depends on BUSYBOX_CONFIG_HUSH
243         help
244           Enable for, while and until loops in hush.
245
246 config BUSYBOX_CONFIG_HUSH_CASE
247         bool "Support case ... esac statement"
248         default BUSYBOX_DEFAULT_HUSH_CASE
249         depends on BUSYBOX_CONFIG_HUSH
250         help
251           Enable case ... esac statement in hush. +400 bytes.
252
253 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
254         bool "Support funcname() { commands; } syntax"
255         default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
256         depends on BUSYBOX_CONFIG_HUSH
257         help
258           Enable support for shell functions in hush. +800 bytes.
259
260 config BUSYBOX_CONFIG_HUSH_LOCAL
261         bool "Support local builtin"
262         default BUSYBOX_DEFAULT_HUSH_LOCAL
263         depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
264         help
265           Enable support for local variables in functions.
266
267 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
268         bool "Pseudorandom generator and $RANDOM variable"
269         default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
270         depends on BUSYBOX_CONFIG_HUSH
271         help
272           Enable pseudorandom generator and dynamic variable "$RANDOM".
273           Each read of "$RANDOM" will generate a new pseudorandom value.
274
275 config BUSYBOX_CONFIG_HUSH_EXPORT_N
276         bool "Support 'export -n' option"
277         default BUSYBOX_DEFAULT_HUSH_EXPORT_N
278         depends on BUSYBOX_CONFIG_HUSH
279         help
280           export -n unexports variables. It is a bash extension.
281
282 config BUSYBOX_CONFIG_HUSH_MODE_X
283         bool "Support 'hush -x' option and 'set -x' command"
284         default BUSYBOX_DEFAULT_HUSH_MODE_X
285         depends on BUSYBOX_CONFIG_HUSH
286         help
287           This instructs hush to print commands before execution.
288           Adds ~300 bytes.
289
290 config BUSYBOX_CONFIG_MSH
291         bool "msh (deprecated: aliased to hush)"
292         default BUSYBOX_DEFAULT_MSH
293         select BUSYBOX_CONFIG_HUSH
294         help
295           msh is deprecated and will be removed, please migrate to hush.
296
297
298
299 choice
300         prompt "Choose which shell is aliased to 'sh' name"
301         default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
302         help
303           Choose which shell you want to be executed by 'sh' alias.
304           The ash shell is the most bash compatible and full featured one.
305
306 # note: cannot use "select ASH" here, it breaks "make allnoconfig"
307 config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
308         depends on BUSYBOX_CONFIG_ASH
309         bool "ash"
310         depends on !BUSYBOX_CONFIG_NOMMU
311
312 config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
313         depends on BUSYBOX_CONFIG_HUSH
314         bool "hush"
315
316 config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
317         bool "none"
318
319 endchoice
320
321 choice
322         prompt "Choose which shell is aliased to 'bash' name"
323         default BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
324         help
325           Choose which shell you want to be executed by 'bash' alias.
326           The ash shell is the most bash compatible and full featured one.
327
328           Note that selecting this option does not switch on any bash
329           compatibility code. It merely makes it possible to install
330           /bin/bash (sym)link and run scripts which start with
331           #!/bin/bash line.
332
333           Many systems use it in scripts which use bash-specific features,
334           even simple ones like $RANDOM. Without this option, busybox
335           can't be used for running them because it won't recongnize
336           "bash" as a supported applet name.
337
338 config BUSYBOX_CONFIG_FEATURE_BASH_IS_ASH
339         depends on BUSYBOX_CONFIG_ASH
340         bool "ash"
341         depends on !BUSYBOX_CONFIG_NOMMU
342
343 config BUSYBOX_CONFIG_FEATURE_BASH_IS_HUSH
344         depends on BUSYBOX_CONFIG_HUSH
345         bool "hush"
346
347 config BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
348         bool "none"
349
350 endchoice
351
352
353 config BUSYBOX_CONFIG_SH_MATH_SUPPORT
354         bool "POSIX math support"
355         default BUSYBOX_DEFAULT_SH_MATH_SUPPORT
356         depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH
357         help
358           Enable math support in the shell via $((...)) syntax.
359
360 config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
361         bool "Extend POSIX math support to 64 bit"
362         default BUSYBOX_DEFAULT_SH_MATH_SUPPORT_64
363         depends on BUSYBOX_CONFIG_SH_MATH_SUPPORT
364         help
365           Enable 64-bit math support in the shell. This will make the shell
366           slightly larger, but will allow computation with very large numbers.
367           This is not in POSIX, so do not rely on this in portable code.
368
369 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
370         bool "Hide message on interactive shell startup"
371         default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
372         depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
373         help
374           Remove the busybox introduction when starting a shell.
375
376 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
377         bool "Standalone shell"
378         default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
379         depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
380         help
381           This option causes busybox shells to use busybox applets
382           in preference to executables in the PATH whenever possible. For
383           example, entering the command 'ifconfig' into the shell would cause
384           busybox to use the ifconfig busybox applet. Specifying the fully
385           qualified executable name, such as '/sbin/ifconfig' will still
386           execute the /sbin/ifconfig executable on the filesystem. This option
387           is generally used when creating a statically linked version of busybox
388           for use as a rescue shell, in the event that you screw up your system.
389
390           This is implemented by re-execing /proc/self/exe (typically)
391           with right parameters. Some selected applets ("NOFORK" applets)
392           can even be executed without creating new process.
393           Instead, busybox will call <applet>_main() internally.
394
395           However, this causes problems in chroot jails without mounted /proc
396           and with ps/top (command name can be shown as 'exe' for applets
397           started this way).
398 # untrue?
399 #         Note that this will *also* cause applets to take precedence
400 #         over shell builtins of the same name. So turning this on will
401 #         eliminate any performance gained by turning on the builtin "echo"
402 #         and "test" commands in ash.
403 # untrue?
404 #         Note that when using this option, the shell will attempt to directly
405 #         run '/bin/busybox'. If you do not have the busybox binary sitting in
406 #         that exact location with that exact name, this option will not work at
407 #         all.
408
409 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
410         bool "Run 'nofork' applets directly"
411         default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
412         depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
413         help
414           This option causes busybox shells to not execute typical
415           fork/exec/wait sequence, but call <applet>_main directly,
416           if possible. (Sometimes it is not possible: for example,
417           this is not possible in pipes).
418
419           This will be done only for some applets (those which are marked
420           NOFORK in include/applets.h).
421
422           This may significantly speed up some shell scripts.
423
424           This feature is relatively new. Use with care. Report bugs
425           to project mailing list.
426
427 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
428         bool "Use $HISTFILESIZE"
429         default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
430         depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
431         help
432           This option makes busybox shells to use $HISTFILESIZE variable
433           to set shell history size. Note that its max value is capped
434           by "History size" setting in library tuning section.
435
436
437 endmenu