cb43bcd84c89c08443e74d1608ed8999c8a5affe
[openwrt/staging/nbd.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 docs/Kconfig-language.txt.
5 #
6
7 menu "Shells"
8
9
10 choice
11 prompt "Choose which shell is aliased to 'sh' name"
12 default BUSYBOX_CONFIG_SH_IS_ASH
13 help
14 Choose which shell you want to be executed by 'sh' alias.
15 The ash shell is the most bash compatible and full featured one.
16
17 # note: cannot use "select ASH" here, it breaks "make allnoconfig"
18 config BUSYBOX_CONFIG_SH_IS_ASH
19 depends on !BUSYBOX_CONFIG_NOMMU
20 bool "ash"
21 select BUSYBOX_CONFIG_SHELL_ASH
22 help
23 Choose ash to be the shell executed by 'sh' name.
24 The ash code will be built into busybox. If you don't select
25 "ash" choice (CONFIG_ASH), this shell may only be invoked by
26 the name 'sh' (and not 'ash').
27
28 config BUSYBOX_CONFIG_SH_IS_HUSH
29 bool "hush"
30 select BUSYBOX_CONFIG_SHELL_HUSH
31 help
32 Choose hush to be the shell executed by 'sh' name.
33 The hush code will be built into busybox. If you don't select
34 "hush" choice (CONFIG_HUSH), this shell may only be invoked by
35 the name 'sh' (and not 'hush').
36
37 config BUSYBOX_CONFIG_SH_IS_NONE
38 bool "none"
39
40 endchoice
41
42 choice
43 prompt "Choose which shell is aliased to 'bash' name"
44 default BUSYBOX_CONFIG_BASH_IS_NONE
45 help
46 Choose which shell you want to be executed by 'bash' alias.
47 The ash shell is the most bash compatible and full featured one,
48 although compatibility is far from being complete.
49
50 Note that selecting this option does not switch on any bash
51 compatibility code. It merely makes it possible to install
52 /bin/bash (sym)link and run scripts which start with
53 #!/bin/bash line.
54
55 Many systems use it in scripts which use bash-specific features,
56 even simple ones like $RANDOM. Without this option, busybox
57 can't be used for running them because it won't recongnize
58 "bash" as a supported applet name.
59
60 config BUSYBOX_CONFIG_BASH_IS_ASH
61 depends on !BUSYBOX_CONFIG_NOMMU
62 bool "ash"
63 select BUSYBOX_CONFIG_SHELL_ASH
64 help
65 Choose ash to be the shell executed by 'bash' name.
66 The ash code will be built into busybox. If you don't select
67 "ash" choice (CONFIG_ASH), this shell may only be invoked by
68 the name 'bash' (and not 'ash').
69
70 config BUSYBOX_CONFIG_BASH_IS_HUSH
71 bool "hush"
72 select BUSYBOX_CONFIG_SHELL_HUSH
73 help
74 Choose hush to be the shell executed by 'bash' name.
75 The hush code will be built into busybox. If you don't select
76 "hush" choice (CONFIG_HUSH), this shell may only be invoked by
77 the name 'bash' (and not 'hush').
78
79 config BUSYBOX_CONFIG_BASH_IS_NONE
80 bool "none"
81
82 endchoice
83
84
85 config BUSYBOX_CONFIG_SHELL_ASH
86 bool #hidden option
87 depends on !BUSYBOX_CONFIG_NOMMU
88
89 config BUSYBOX_CONFIG_ASH
90 bool "ash (78 kb)"
91 default BUSYBOX_DEFAULT_ASH
92 depends on !BUSYBOX_CONFIG_NOMMU
93 select BUSYBOX_CONFIG_SHELL_ASH
94 help
95 The most complete and most pedantically correct shell included with
96 busybox. This shell is actually a derivative of the Debian 'dash'
97 shell (by Herbert Xu), which was created by porting the 'ash' shell
98 (written by Kenneth Almquist) from NetBSD.
99
100 # ash options
101 # note: Don't remove !NOMMU part in the next line; it would break
102 # menuconfig's indenting.
103 if !NOMMU && (BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH)
104
105 config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
106 bool "Optimize for size instead of speed"
107 default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
108 depends on BUSYBOX_CONFIG_SHELL_ASH
109
110 config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
111 bool "Use internal glob() implementation"
112 default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB # Y is bigger, but because of uclibc glob() bug, let Y be default for now
113 depends on BUSYBOX_CONFIG_SHELL_ASH
114 help
115 Do not use glob() function from libc, use internal implementation.
116 Use this if you are getting "glob.h: No such file or directory"
117 or similar build errors.
118 Note that as of now (2017-01), uclibc and musl glob() both have bugs
119 which would break ash if you select N here.
120
121 config BUSYBOX_CONFIG_ASH_BASH_COMPAT
122 bool "bash-compatible extensions"
123 default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
124 depends on BUSYBOX_CONFIG_SHELL_ASH
125
126 config BUSYBOX_CONFIG_ASH_BASH_SOURCE_CURDIR
127 bool "'source' and '.' builtins search current directory after $PATH"
128 default BUSYBOX_DEFAULT_ASH_BASH_SOURCE_CURDIR # do not encourage non-standard behavior
129 depends on BUSYBOX_CONFIG_ASH_BASH_COMPAT
130 help
131 This is not compliant with standards. Avoid if possible.
132
133 config BUSYBOX_CONFIG_ASH_BASH_NOT_FOUND_HOOK
134 bool "command_not_found_handle hook support"
135 default BUSYBOX_DEFAULT_ASH_BASH_NOT_FOUND_HOOK
136 depends on BUSYBOX_CONFIG_ASH_BASH_COMPAT
137 help
138 Enable support for the 'command_not_found_handle' hook function,
139 from GNU bash, which allows for alternative command not found
140 handling.
141
142 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
143 bool "Job control"
144 default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
145 depends on BUSYBOX_CONFIG_SHELL_ASH
146
147 config BUSYBOX_CONFIG_ASH_ALIAS
148 bool "Alias support"
149 default BUSYBOX_DEFAULT_ASH_ALIAS
150 depends on BUSYBOX_CONFIG_SHELL_ASH
151
152 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
153 bool "Pseudorandom generator and $RANDOM variable"
154 default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
155 depends on BUSYBOX_CONFIG_SHELL_ASH
156 help
157 Enable pseudorandom generator and dynamic variable "$RANDOM".
158 Each read of "$RANDOM" will generate a new pseudorandom value.
159 You can reset the generator by using a specified start value.
160 After "unset RANDOM" the generator will switch off and this
161 variable will no longer have special treatment.
162
163 config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
164 bool "Expand prompt string"
165 default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
166 depends on BUSYBOX_CONFIG_SHELL_ASH
167 help
168 $PS# may contain volatile content, such as backquote commands.
169 This option recreates the prompt string from the environment
170 variable each time it is displayed.
171
172 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
173 bool "Idle timeout variable $TMOUT"
174 default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
175 depends on BUSYBOX_CONFIG_SHELL_ASH
176 help
177 Enable bash-like auto-logout after $TMOUT seconds of idle time.
178
179 config BUSYBOX_CONFIG_ASH_MAIL
180 bool "Check for new mail in interactive shell"
181 default BUSYBOX_DEFAULT_ASH_MAIL
182 depends on BUSYBOX_CONFIG_SHELL_ASH
183 help
184 Enable "check for new mail" function:
185 if set, $MAIL file and $MAILPATH list of files
186 are checked for mtime changes, and "you have mail"
187 message is printed if change is detected.
188
189 config BUSYBOX_CONFIG_ASH_ECHO
190 bool "echo builtin"
191 default BUSYBOX_DEFAULT_ASH_ECHO
192 depends on BUSYBOX_CONFIG_SHELL_ASH
193
194 config BUSYBOX_CONFIG_ASH_PRINTF
195 bool "printf builtin"
196 default BUSYBOX_DEFAULT_ASH_PRINTF
197 depends on BUSYBOX_CONFIG_SHELL_ASH
198
199 config BUSYBOX_CONFIG_ASH_TEST
200 bool "test builtin"
201 default BUSYBOX_DEFAULT_ASH_TEST
202 depends on BUSYBOX_CONFIG_SHELL_ASH
203
204 config BUSYBOX_CONFIG_ASH_HELP
205 bool "help builtin"
206 default BUSYBOX_DEFAULT_ASH_HELP
207 depends on BUSYBOX_CONFIG_SHELL_ASH
208
209 config BUSYBOX_CONFIG_ASH_GETOPTS
210 bool "getopts builtin"
211 default BUSYBOX_DEFAULT_ASH_GETOPTS
212 depends on BUSYBOX_CONFIG_SHELL_ASH
213
214 config BUSYBOX_CONFIG_ASH_CMDCMD
215 bool "command builtin"
216 default BUSYBOX_DEFAULT_ASH_CMDCMD
217 depends on BUSYBOX_CONFIG_SHELL_ASH
218 help
219 Enable support for the 'command' builtin, which allows
220 you to run the specified command or builtin,
221 even when there is a function with the same name.
222
223 endif # ash options
224 config BUSYBOX_CONFIG_CTTYHACK
225 bool "cttyhack (2.4 kb)"
226 default BUSYBOX_DEFAULT_CTTYHACK
227 help
228 One common problem reported on the mailing list is the "can't
229 access tty; job control turned off" error message, which typically
230 appears when one tries to use a shell with stdin/stdout on
231 /dev/console.
232 This device is special - it cannot be a controlling tty.
233
234 The proper solution is to use the correct device instead of
235 /dev/console.
236
237 cttyhack provides a "quick and dirty" solution to this problem.
238 It analyzes stdin with various ioctls, trying to determine whether
239 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
240 On Linux it also checks sysfs for a pointer to the active console.
241 If cttyhack is able to find the real console device, it closes
242 stdin/out/err and reopens that device.
243 Then it executes the given program. Opening the device will make
244 that device a controlling tty. This may require cttyhack
245 to be a session leader.
246
247 Example for /etc/inittab (for busybox init):
248
249 ::respawn:/bin/cttyhack /bin/sh
250
251 Starting an interactive shell from boot shell script:
252
253 setsid cttyhack sh
254
255 Giving controlling tty to shell running with PID 1:
256
257 # exec cttyhack sh
258
259 Without cttyhack, you need to know exact tty name,
260 and do something like this:
261
262 # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
263
264 Starting getty on a controlling tty from a shell script:
265
266 # getty 115200 $(cttyhack)
267 config BUSYBOX_CONFIG_HUSH
268 bool "hush (68 kb)"
269 default BUSYBOX_DEFAULT_HUSH
270 select BUSYBOX_CONFIG_SHELL_HUSH
271 help
272 hush is a small shell. It handles the normal flow control
273 constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
274 case/esac. Redirections, here documents, $((arithmetic))
275 and functions are supported.
276
277 It will compile and work on no-mmu systems.
278
279 It does not handle select, aliases, tilde expansion,
280 &>file and >&file redirection of stdout+stderr.
281
282 config BUSYBOX_CONFIG_SHELL_HUSH
283 bool "Internal shell for embedded script support"
284 default BUSYBOX_DEFAULT_SHELL_HUSH
285
286 # hush options
287 # It's only needed to get "nice" menuconfig indenting.
288 if SHELL_HUSH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
289
290 config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
291 bool "bash-compatible extensions"
292 default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
293 depends on BUSYBOX_CONFIG_SHELL_HUSH
294
295 config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
296 bool "Brace expansion"
297 default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
298 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
299 help
300 Enable {abc,def} extension.
301
302 config BUSYBOX_CONFIG_HUSH_LINENO_VAR
303 bool "$LINENO variable"
304 default BUSYBOX_DEFAULT_HUSH_LINENO_VAR
305 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
306
307 config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
308 bool "'source' and '.' builtins search current directory after $PATH"
309 default BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR # do not encourage non-standard behavior
310 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
311 help
312 This is not compliant with standards. Avoid if possible.
313
314 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
315 bool "Interactive mode"
316 default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
317 depends on BUSYBOX_CONFIG_SHELL_HUSH
318 help
319 Enable interactive mode (prompt and command editing).
320 Without this, hush simply reads and executes commands
321 from stdin just like a shell script from a file.
322 No prompt, no PS1/PS2 magic shell variables.
323
324 config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
325 bool "Save command history to .hush_history"
326 default BUSYBOX_DEFAULT_HUSH_SAVEHISTORY
327 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
328
329 config BUSYBOX_CONFIG_HUSH_JOB
330 bool "Job control"
331 default BUSYBOX_DEFAULT_HUSH_JOB
332 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
333 help
334 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
335 command (not entire shell), fg/bg builtins work. Without this option,
336 "cmd &" still works by simply spawning a process and immediately
337 prompting for next command (or executing next command in a script),
338 but no separate process group is formed.
339
340 config BUSYBOX_CONFIG_HUSH_TICK
341 bool "Support command substitution"
342 default BUSYBOX_DEFAULT_HUSH_TICK
343 depends on BUSYBOX_CONFIG_SHELL_HUSH
344 help
345 Enable `command` and $(command).
346
347 config BUSYBOX_CONFIG_HUSH_IF
348 bool "Support if/then/elif/else/fi"
349 default BUSYBOX_DEFAULT_HUSH_IF
350 depends on BUSYBOX_CONFIG_SHELL_HUSH
351
352 config BUSYBOX_CONFIG_HUSH_LOOPS
353 bool "Support for, while and until loops"
354 default BUSYBOX_DEFAULT_HUSH_LOOPS
355 depends on BUSYBOX_CONFIG_SHELL_HUSH
356
357 config BUSYBOX_CONFIG_HUSH_CASE
358 bool "Support case ... esac statement"
359 default BUSYBOX_DEFAULT_HUSH_CASE
360 depends on BUSYBOX_CONFIG_SHELL_HUSH
361 help
362 Enable case ... esac statement. +400 bytes.
363
364 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
365 bool "Support funcname() { commands; } syntax"
366 default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
367 depends on BUSYBOX_CONFIG_SHELL_HUSH
368 help
369 Enable support for shell functions. +800 bytes.
370
371 config BUSYBOX_CONFIG_HUSH_LOCAL
372 bool "local builtin"
373 default BUSYBOX_DEFAULT_HUSH_LOCAL
374 depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
375 help
376 Enable support for local variables in functions.
377
378 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
379 bool "Pseudorandom generator and $RANDOM variable"
380 default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
381 depends on BUSYBOX_CONFIG_SHELL_HUSH
382 help
383 Enable pseudorandom generator and dynamic variable "$RANDOM".
384 Each read of "$RANDOM" will generate a new pseudorandom value.
385
386 config BUSYBOX_CONFIG_HUSH_MODE_X
387 bool "Support 'hush -x' option and 'set -x' command"
388 default BUSYBOX_DEFAULT_HUSH_MODE_X
389 depends on BUSYBOX_CONFIG_SHELL_HUSH
390 help
391 This instructs hush to print commands before execution.
392 Adds ~300 bytes.
393
394 config BUSYBOX_CONFIG_HUSH_ECHO
395 bool "echo builtin"
396 default BUSYBOX_DEFAULT_HUSH_ECHO
397 depends on BUSYBOX_CONFIG_SHELL_HUSH
398
399 config BUSYBOX_CONFIG_HUSH_PRINTF
400 bool "printf builtin"
401 default BUSYBOX_DEFAULT_HUSH_PRINTF
402 depends on BUSYBOX_CONFIG_SHELL_HUSH
403
404 config BUSYBOX_CONFIG_HUSH_TEST
405 bool "test builtin"
406 default BUSYBOX_DEFAULT_HUSH_TEST
407 depends on BUSYBOX_CONFIG_SHELL_HUSH
408
409 config BUSYBOX_CONFIG_HUSH_HELP
410 bool "help builtin"
411 default BUSYBOX_DEFAULT_HUSH_HELP
412 depends on BUSYBOX_CONFIG_SHELL_HUSH
413
414 config BUSYBOX_CONFIG_HUSH_EXPORT
415 bool "export builtin"
416 default BUSYBOX_DEFAULT_HUSH_EXPORT
417 depends on BUSYBOX_CONFIG_SHELL_HUSH
418
419 config BUSYBOX_CONFIG_HUSH_EXPORT_N
420 bool "Support 'export -n' option"
421 default BUSYBOX_DEFAULT_HUSH_EXPORT_N
422 depends on BUSYBOX_CONFIG_HUSH_EXPORT
423 help
424 export -n unexports variables. It is a bash extension.
425
426 config BUSYBOX_CONFIG_HUSH_READONLY
427 bool "readonly builtin"
428 default BUSYBOX_DEFAULT_HUSH_READONLY
429 depends on BUSYBOX_CONFIG_SHELL_HUSH
430 help
431 Enable support for read-only variables.
432
433 config BUSYBOX_CONFIG_HUSH_KILL
434 bool "kill builtin (supports kill %jobspec)"
435 default BUSYBOX_DEFAULT_HUSH_KILL
436 depends on BUSYBOX_CONFIG_SHELL_HUSH
437
438 config BUSYBOX_CONFIG_HUSH_WAIT
439 bool "wait builtin"
440 default BUSYBOX_DEFAULT_HUSH_WAIT
441 depends on BUSYBOX_CONFIG_SHELL_HUSH
442
443 config BUSYBOX_CONFIG_HUSH_COMMAND
444 bool "command builtin"
445 default BUSYBOX_DEFAULT_HUSH_COMMAND
446 depends on BUSYBOX_CONFIG_SHELL_HUSH
447
448 config BUSYBOX_CONFIG_HUSH_TRAP
449 bool "trap builtin"
450 default BUSYBOX_DEFAULT_HUSH_TRAP
451 depends on BUSYBOX_CONFIG_SHELL_HUSH
452
453 config BUSYBOX_CONFIG_HUSH_TYPE
454 bool "type builtin"
455 default BUSYBOX_DEFAULT_HUSH_TYPE
456 depends on BUSYBOX_CONFIG_SHELL_HUSH
457
458 config BUSYBOX_CONFIG_HUSH_TIMES
459 bool "times builtin"
460 default BUSYBOX_DEFAULT_HUSH_TIMES
461 depends on BUSYBOX_CONFIG_SHELL_HUSH
462
463 config BUSYBOX_CONFIG_HUSH_READ
464 bool "read builtin"
465 default BUSYBOX_DEFAULT_HUSH_READ
466 depends on BUSYBOX_CONFIG_SHELL_HUSH
467
468 config BUSYBOX_CONFIG_HUSH_SET
469 bool "set builtin"
470 default BUSYBOX_DEFAULT_HUSH_SET
471 depends on BUSYBOX_CONFIG_SHELL_HUSH
472
473 config BUSYBOX_CONFIG_HUSH_UNSET
474 bool "unset builtin"
475 default BUSYBOX_DEFAULT_HUSH_UNSET
476 depends on BUSYBOX_CONFIG_SHELL_HUSH
477
478 config BUSYBOX_CONFIG_HUSH_ULIMIT
479 bool "ulimit builtin"
480 default BUSYBOX_DEFAULT_HUSH_ULIMIT
481 depends on BUSYBOX_CONFIG_SHELL_HUSH
482
483 config BUSYBOX_CONFIG_HUSH_UMASK
484 bool "umask builtin"
485 default BUSYBOX_DEFAULT_HUSH_UMASK
486 depends on BUSYBOX_CONFIG_SHELL_HUSH
487
488 config BUSYBOX_CONFIG_HUSH_GETOPTS
489 bool "getopts builtin"
490 default BUSYBOX_DEFAULT_HUSH_GETOPTS
491 depends on BUSYBOX_CONFIG_SHELL_HUSH
492
493 config BUSYBOX_CONFIG_HUSH_MEMLEAK
494 bool "memleak builtin (debugging)"
495 default BUSYBOX_DEFAULT_HUSH_MEMLEAK
496 depends on BUSYBOX_CONFIG_SHELL_HUSH
497
498 endif # hush options
499
500
501 comment "Options common to all shells"
502 if BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
503
504 config BUSYBOX_CONFIG_FEATURE_SH_MATH
505 bool "POSIX math support"
506 default BUSYBOX_DEFAULT_FEATURE_SH_MATH
507 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
508 help
509 Enable math support in the shell via $((...)) syntax.
510
511 config BUSYBOX_CONFIG_FEATURE_SH_MATH_64
512 bool "Extend POSIX math support to 64 bit"
513 default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
514 depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
515 help
516 Enable 64-bit math support in the shell. This will make the shell
517 slightly larger, but will allow computation with very large numbers.
518 This is not in POSIX, so do not rely on this in portable code.
519
520 config BUSYBOX_CONFIG_FEATURE_SH_MATH_BASE
521 bool "Support BASE#nnnn literals"
522 default BUSYBOX_DEFAULT_FEATURE_SH_MATH_BASE
523 depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
524
525 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
526 bool "Hide message on interactive shell startup"
527 default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
528 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
529 help
530 Remove the busybox introduction when starting a shell.
531
532 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
533 bool "Standalone shell"
534 default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
535 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
536 help
537 This option causes busybox shells to use busybox applets
538 in preference to executables in the PATH whenever possible. For
539 example, entering the command 'ifconfig' into the shell would cause
540 busybox to use the ifconfig busybox applet. Specifying the fully
541 qualified executable name, such as '/sbin/ifconfig' will still
542 execute the /sbin/ifconfig executable on the filesystem. This option
543 is generally used when creating a statically linked version of busybox
544 for use as a rescue shell, in the event that you screw up your system.
545
546 This is implemented by re-execing /proc/self/exe (typically)
547 with right parameters.
548
549 However, there are drawbacks: it is problematic in chroot jails
550 without mounted /proc, and ps/top may show command name as 'exe'
551 for applets started this way.
552
553 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
554 bool "Run 'nofork' applets directly"
555 default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
556 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
557 help
558 This option causes busybox shells to not execute typical
559 fork/exec/wait sequence, but call <applet>_main directly,
560 if possible. (Sometimes it is not possible: for example,
561 this is not possible in pipes).
562
563 This will be done only for some applets (those which are marked
564 NOFORK in include/applets.h).
565
566 This may significantly speed up some shell scripts.
567
568 This feature is relatively new. Use with care. Report bugs
569 to project mailing list.
570
571 config BUSYBOX_CONFIG_FEATURE_SH_READ_FRAC
572 bool "read -t N.NNN support (+110 bytes)"
573 default BUSYBOX_DEFAULT_FEATURE_SH_READ_FRAC
574 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
575 help
576 Enable support for fractional second timeout in read builtin.
577
578 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
579 bool "Use $HISTFILESIZE"
580 default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
581 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
582 help
583 This option makes busybox shells to use $HISTFILESIZE variable
584 to set shell history size. Note that its max value is capped
585 by "History size" setting in library tuning section.
586
587 config BUSYBOX_CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS
588 bool "Embed scripts in the binary"
589 default BUSYBOX_DEFAULT_FEATURE_SH_EMBEDDED_SCRIPTS
590 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
591 help
592 Allow scripts to be compressed and embedded in the busybox
593 binary. The scripts should be placed in the 'embed' directory
594 at build time. Like applets, scripts can be run as
595 'busybox SCRIPT ...' or by linking their name to the binary.
596
597 This also allows applets to be implemented as scripts: place
598 the script in 'applets_sh' and a stub C file containing
599 configuration in the appropriate subsystem directory.
600
601 endif # Options common to all shells
602
603 endmenu