packages: clean up the package folder
[openwrt.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 y
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 y
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 n
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 y
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 y
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 y
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 y
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 y
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 y
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 y
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 n
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 n
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 n
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 y
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 n
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 config BUSYBOX_CONFIG_HUSH
160         bool "hush"
161         default n
162         help
163           hush is a small shell (25k). It handles the normal flow control
164           constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
165           case/esac. Redirections, here documents, $((arithmetic))
166           and functions are supported.
167
168           It will compile and work on no-mmu systems.
169
170           It does not handle select, aliases, tilde expansion,
171           &>file and >&file redirection of stdout+stderr.
172
173 config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
174         bool "bash-compatible extensions"
175         default y
176         depends on BUSYBOX_CONFIG_HUSH
177         help
178           Enable bash-compatible extensions.
179
180 config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
181         bool "Brace expansion"
182         default n
183         depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
184         help
185           Enable {abc,def} extension.
186
187 config BUSYBOX_CONFIG_HUSH_HELP
188         bool "help builtin"
189         default y
190         depends on BUSYBOX_CONFIG_HUSH
191         help
192           Enable help builtin in hush. Code size + ~1 kbyte.
193
194 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
195         bool "Interactive mode"
196         default y
197         depends on BUSYBOX_CONFIG_HUSH
198         help
199           Enable interactive mode (prompt and command editing).
200           Without this, hush simply reads and executes commands
201           from stdin just like a shell script from a file.
202           No prompt, no PS1/PS2 magic shell variables.
203
204 config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
205         bool "Save command history to .hush_history"
206         default n
207         depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
208         help
209           Enable history saving in hush.
210
211 config BUSYBOX_CONFIG_HUSH_JOB
212         bool "Job control"
213         default y
214         depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
215         help
216           Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
217           command (not entire shell), fg/bg builtins work. Without this option,
218           "cmd &" still works by simply spawning a process and immediately
219           prompting for next command (or executing next command in a script),
220           but no separate process group is formed.
221
222 config BUSYBOX_CONFIG_HUSH_TICK
223         bool "Process substitution"
224         default y
225         depends on BUSYBOX_CONFIG_HUSH
226         help
227           Enable process substitution `command` and $(command) in hush.
228
229 config BUSYBOX_CONFIG_HUSH_IF
230         bool "Support if/then/elif/else/fi"
231         default y
232         depends on BUSYBOX_CONFIG_HUSH
233         help
234           Enable if/then/elif/else/fi in hush.
235
236 config BUSYBOX_CONFIG_HUSH_LOOPS
237         bool "Support for, while and until loops"
238         default y
239         depends on BUSYBOX_CONFIG_HUSH
240         help
241           Enable for, while and until loops in hush.
242
243 config BUSYBOX_CONFIG_HUSH_CASE
244         bool "Support case ... esac statement"
245         default y
246         depends on BUSYBOX_CONFIG_HUSH
247         help
248           Enable case ... esac statement in hush. +400 bytes.
249
250 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
251         bool "Support funcname() { commands; } syntax"
252         default y
253         depends on BUSYBOX_CONFIG_HUSH
254         help
255           Enable support for shell functions in hush. +800 bytes.
256
257 config BUSYBOX_CONFIG_HUSH_LOCAL
258         bool "Support local builtin"
259         default y
260         depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
261         help
262           Enable support for local variables in functions.
263
264 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
265         bool "Pseudorandom generator and $RANDOM variable"
266         default n
267         depends on BUSYBOX_CONFIG_HUSH
268         help
269           Enable pseudorandom generator and dynamic variable "$RANDOM".
270           Each read of "$RANDOM" will generate a new pseudorandom value.
271
272 config BUSYBOX_CONFIG_HUSH_EXPORT_N
273         bool "Support 'export -n' option"
274         default y
275         depends on BUSYBOX_CONFIG_HUSH
276         help
277           export -n unexports variables. It is a bash extension.
278
279 config BUSYBOX_CONFIG_HUSH_MODE_X
280         bool "Support 'hush -x' option and 'set -x' command"
281         default n
282         depends on BUSYBOX_CONFIG_HUSH
283         help
284           This instructs hush to print commands before execution.
285           Adds ~300 bytes.
286
287 config BUSYBOX_CONFIG_MSH
288         bool "msh (deprecated: aliased to hush)"
289         default n
290         select BUSYBOX_CONFIG_HUSH
291         help
292           msh is deprecated and will be removed, please migrate to hush.
293
294
295 choice
296         prompt "Choose which shell is aliased to 'sh' name"
297         default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
298         help
299           Choose which shell you want to be executed by 'sh' alias.
300           The ash shell is the most bash compatible and full featured one.
301
302 # note: cannot use "select ASH" here, it breaks "make allnoconfig"
303 config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
304         depends on BUSYBOX_CONFIG_ASH
305         bool "ash"
306         depends on !BUSYBOX_CONFIG_NOMMU
307
308 config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
309         depends on BUSYBOX_CONFIG_HUSH
310         bool "hush"
311
312 config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
313         bool "none"
314
315 endchoice
316
317 choice
318         prompt "Choose which shell is aliased to 'bash' name"
319         default BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
320         help
321           Choose which shell you want to be executed by 'bash' alias.
322           The ash shell is the most bash compatible and full featured one.
323
324           Note that selecting this option does not switch on any bash
325           compatibility code. It merely makes it possible to install
326           /bin/bash (sym)link and run scripts which start with
327           #!/bin/bash line.
328
329           Many systems use it in scripts which use bash-specific features,
330           even simple ones like $RANDOM. Without this option, busybox
331           can't be used for running them because it won't recongnize
332           "bash" as a supported applet name.
333
334 config BUSYBOX_CONFIG_FEATURE_BASH_IS_ASH
335         depends on BUSYBOX_CONFIG_ASH
336         bool "ash"
337         depends on !BUSYBOX_CONFIG_NOMMU
338
339 config BUSYBOX_CONFIG_FEATURE_BASH_IS_HUSH
340         depends on BUSYBOX_CONFIG_HUSH
341         bool "hush"
342
343 config BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
344         bool "none"
345
346 endchoice
347
348
349 config BUSYBOX_CONFIG_SH_MATH_SUPPORT
350         bool "POSIX math support"
351         default y
352         depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH
353         help
354           Enable math support in the shell via $((...)) syntax.
355
356 config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
357         bool "Extend POSIX math support to 64 bit"
358         default y
359         depends on BUSYBOX_CONFIG_SH_MATH_SUPPORT
360         help
361           Enable 64-bit math support in the shell. This will make the shell
362           slightly larger, but will allow computation with very large numbers.
363           This is not in POSIX, so do not rely on this in portable code.
364
365 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
366         bool "Hide message on interactive shell startup"
367         default n
368         depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
369         help
370           Remove the busybox introduction when starting a shell.
371
372 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
373         bool "Standalone shell"
374         default n
375         depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
376         help
377           This option causes busybox shells to use busybox applets
378           in preference to executables in the PATH whenever possible. For
379           example, entering the command 'ifconfig' into the shell would cause
380           busybox to use the ifconfig busybox applet. Specifying the fully
381           qualified executable name, such as '/sbin/ifconfig' will still
382           execute the /sbin/ifconfig executable on the filesystem. This option
383           is generally used when creating a statically linked version of busybox
384           for use as a rescue shell, in the event that you screw up your system.
385
386           This is implemented by re-execing /proc/self/exe (typically)
387           with right parameters. Some selected applets ("NOFORK" applets)
388           can even be executed without creating new process.
389           Instead, busybox will call <applet>_main() internally.
390
391           However, this causes problems in chroot jails without mounted /proc
392           and with ps/top (command name can be shown as 'exe' for applets
393           started this way).
394 # untrue?
395 #         Note that this will *also* cause applets to take precedence
396 #         over shell builtins of the same name. So turning this on will
397 #         eliminate any performance gained by turning on the builtin "echo"
398 #         and "test" commands in ash.
399 # untrue?
400 #         Note that when using this option, the shell will attempt to directly
401 #         run '/bin/busybox'. If you do not have the busybox binary sitting in
402 #         that exact location with that exact name, this option will not work at
403 #         all.
404
405 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
406         bool "Run 'nofork' applets directly"
407         default n
408         depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
409         help
410           This option causes busybox shells to not execute typical
411           fork/exec/wait sequence, but call <applet>_main directly,
412           if possible. (Sometimes it is not possible: for example,
413           this is not possible in pipes).
414
415           This will be done only for some applets (those which are marked
416           NOFORK in include/applets.h).
417
418           This may significantly speed up some shell scripts.
419
420           This feature is relatively new. Use with care. Report bugs
421           to project mailing list.
422
423 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
424         bool "Use $HISTFILESIZE"
425         default n
426         depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
427         help
428           This option makes busybox shells to use $HISTFILESIZE variable
429           to set shell history size. Note that its max value is capped
430           by "History size" setting in library tuning section.
431
432
433 endmenu