594675a09eafd505e01538b11418f543e5e0364f
[openwrt/svn-archive/archive.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 config BUSYBOX_CONFIG_HUSH
160 bool "hush"
161 default BUSYBOX_DEFAULT_HUSH
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 BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
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 BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
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 BUSYBOX_DEFAULT_HUSH_HELP
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 BUSYBOX_DEFAULT_HUSH_INTERACTIVE
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 BUSYBOX_DEFAULT_HUSH_SAVEHISTORY
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 BUSYBOX_DEFAULT_HUSH_JOB
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 BUSYBOX_DEFAULT_HUSH_TICK
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 BUSYBOX_DEFAULT_HUSH_IF
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 BUSYBOX_DEFAULT_HUSH_LOOPS
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 BUSYBOX_DEFAULT_HUSH_CASE
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 BUSYBOX_DEFAULT_HUSH_FUNCTIONS
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 BUSYBOX_DEFAULT_HUSH_LOCAL
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 BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
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 BUSYBOX_DEFAULT_HUSH_EXPORT_N
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 BUSYBOX_DEFAULT_HUSH_MODE_X
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 BUSYBOX_DEFAULT_MSH
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 BUSYBOX_DEFAULT_SH_MATH_SUPPORT
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 BUSYBOX_DEFAULT_SH_MATH_SUPPORT_64
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 BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
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 BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
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 BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
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 BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
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