source: branches/2.2.9/mindi-busybox/shell/Config.in @ 2725

Last change on this file since 2725 was 2725, checked in by bruno, 8 years ago
  • Update mindi-busybox to 1.18.3 to avoid problems with the tar command which is now failing on recent versions with busybox 1.7.3
File size: 11.2 KB
Line 
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
7menu "Shells"
8
9config ASH
10    bool "ash"
11    default y
12    depends on !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
20config ASH_BASH_COMPAT
21    bool "bash-compatible extensions"
22    default y
23    depends on ASH
24    help
25      Enable bash-compatible extensions.
26
27config ASH_JOB_CONTROL
28    bool "Job control"
29    default y
30    depends on ASH
31    help
32      Enable job control in the ash shell.
33
34config ASH_ALIAS
35    bool "alias support"
36    default y
37    depends on ASH
38    help
39      Enable alias support in the ash shell.
40
41config ASH_GETOPTS
42    bool "Builtin getopt to parse positional parameters"
43    default y
44    depends on ASH
45    help
46      Enable getopts builtin in the ash shell.
47
48config ASH_BUILTIN_ECHO
49    bool "Builtin version of 'echo'"
50    default y
51    depends on ASH
52    help
53      Enable support for echo, builtin to ash.
54
55config ASH_BUILTIN_PRINTF
56    bool "Builtin version of 'printf'"
57    default y
58    depends on ASH
59    help
60      Enable support for printf, builtin to ash.
61
62config ASH_BUILTIN_TEST
63    bool "Builtin version of 'test'"
64    default y
65    depends on ASH
66    help
67      Enable support for test, builtin to ash.
68
69config ASH_CMDCMD
70    bool "'command' command to override shell builtins"
71    default y
72    depends on ASH
73    help
74      Enable support for the ash 'command' builtin, which allows
75      you to run the specified command with the specified arguments,
76      even when there is an ash builtin command with the same name.
77
78config ASH_MAIL
79    bool "Check for new mail on interactive shells"
80    default n
81    depends on ASH
82    help
83      Enable "check for new mail" in the ash shell.
84
85config ASH_OPTIMIZE_FOR_SIZE
86    bool "Optimize for size instead of speed"
87    default y
88    depends on ASH
89    help
90      Compile ash for reduced size at the price of speed.
91
92config ASH_RANDOM_SUPPORT
93    bool "Pseudorandom generator and $RANDOM variable"
94    default y
95    depends on ASH
96    help
97      Enable pseudorandom generator and dynamic variable "$RANDOM".
98      Each read of "$RANDOM" will generate a new pseudorandom value.
99      You can reset the generator by using a specified start value.
100      After "unset RANDOM" the generator will switch off and this
101      variable will no longer have special treatment.
102
103config ASH_EXPAND_PRMT
104    bool "Expand prompt string"
105    default y
106    depends on ASH
107    help
108      "PS#" may contain volatile content, such as backquote commands.
109      This option recreates the prompt string from the environment
110      variable each time it is displayed.
111
112config CTTYHACK
113    bool "cttyhack"
114    default y
115    help
116      One common problem reported on the mailing list is "can't access tty;
117      job control turned off" error message which typically appears when
118      one tries to use shell with stdin/stdout opened to /dev/console.
119      This device is special - it cannot be a controlling tty.
120
121      Proper solution is to use correct device instead of /dev/console.
122
123      cttyhack provides "quick and dirty" solution to this problem.
124      It analyzes stdin with various ioctls, trying to determine whether
125      it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
126      If it detects one, it closes stdin/out/err and reopens that device.
127      Then it executes given program. Opening the device will make
128      that device a controlling tty. This may require cttyhack
129      to be a session leader.
130
131      Example for /etc/inittab (for busybox init):
132
133      ::respawn:/bin/cttyhack /bin/sh
134
135      Starting an interactive shell from boot shell script:
136
137      setsid cttyhack sh
138
139      Giving controlling tty to shell running with PID 1:
140
141      # exec cttyhack sh
142
143      Without cttyhack, you need to know exact tty name,
144      and do something like this:
145
146      # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
147
148config HUSH
149    bool "hush"
150    default y
151    help
152      hush is a small shell (25k). It handles the normal flow control
153      constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
154      case/esac. Redirections, here documents, $((arithmetic))
155      and functions are supported.
156
157      It will compile and work on no-mmu systems.
158
159      It does not handle select, aliases, tilde expansion,
160      &>file and >&file redirection of stdout+stderr.
161
162config HUSH_BASH_COMPAT
163    bool "bash-compatible extensions"
164    default y
165    depends on HUSH
166    help
167      Enable bash-compatible extensions.
168
169config HUSH_BRACE_EXPANSION
170    bool "Brace expansion"
171    default y
172    depends on HUSH_BASH_COMPAT
173    help
174      Enable {abc,def} extension.
175
176config HUSH_HELP
177    bool "help builtin"
178    default y
179    depends on HUSH
180    help
181      Enable help builtin in hush. Code size + ~1 kbyte.
182
183config 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
193config HUSH_SAVEHISTORY
194    bool "Save command history to .hush_history"
195    default y
196    depends on HUSH_INTERACTIVE && FEATURE_EDITING_SAVEHISTORY
197    help
198      Enable history saving in hush.
199
200config HUSH_JOB
201    bool "Job control"
202    default y
203    depends on HUSH_INTERACTIVE
204    help
205      Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
206      command (not entire shell), fg/bg builtins work. Without this option,
207      "cmd &" still works by simply spawning a process and immediately
208      prompting for next command (or executing next command in a script),
209      but no separate process group is formed.
210
211config HUSH_TICK
212    bool "Process substitution"
213    default y
214    depends on HUSH
215    help
216      Enable process substitution `command` and $(command) in hush.
217
218config HUSH_IF
219    bool "Support if/then/elif/else/fi"
220    default y
221    depends on HUSH
222    help
223      Enable if/then/elif/else/fi in hush.
224
225config HUSH_LOOPS
226    bool "Support for, while and until loops"
227    default y
228    depends on HUSH
229    help
230      Enable for, while and until loops in hush.
231
232config HUSH_CASE
233    bool "Support case ... esac statement"
234    default y
235    depends on HUSH
236    help
237      Enable case ... esac statement in hush. +400 bytes.
238
239config HUSH_FUNCTIONS
240    bool "Support funcname() { commands; } syntax"
241    default y
242    depends on HUSH
243    help
244      Enable support for shell functions in hush. +800 bytes.
245
246config HUSH_LOCAL
247    bool "Support local builtin"
248    default y
249    depends on HUSH_FUNCTIONS
250    help
251      Enable support for local variables in functions.
252
253config HUSH_RANDOM_SUPPORT
254    bool "Pseudorandom generator and $RANDOM variable"
255    default y
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
261config HUSH_EXPORT_N
262    bool "Support 'export -n' option"
263    default y
264    depends on HUSH
265    help
266      export -n unexports variables. It is a bash extension.
267
268config HUSH_MODE_X
269    bool "Support 'hush -x' option and 'set -x' command"
270    default y
271    depends on HUSH
272    help
273      This instructs hush to print commands before execution.
274      Adds ~300 bytes.
275
276config MSH
277    bool "msh (deprecated: aliased to hush)"
278    default n
279    select HUSH
280    help
281      msh is deprecated and will be removed, please migrate to hush.
282
283
284choice
285    prompt "Choose which shell is aliased to 'sh' name"
286    default FEATURE_SH_IS_ASH
287    help
288      Choose which shell you want to be executed by 'sh' alias.
289      The ash shell is the most bash compatible and full featured one.
290
291# note: cannot use "select ASH" here, it breaks "make allnoconfig"
292config FEATURE_SH_IS_ASH
293    depends on ASH
294    bool "ash"
295    depends on !NOMMU
296
297config FEATURE_SH_IS_HUSH
298    depends on HUSH
299    bool "hush"
300
301config FEATURE_SH_IS_NONE
302    bool "none"
303
304endchoice
305
306choice
307    prompt "Choose which shell is aliased to 'bash' name"
308    default FEATURE_BASH_IS_NONE
309    help
310      Choose which shell you want to be executed by 'bash' alias.
311      The ash shell is the most bash compatible and full featured one.
312
313      Note that selecting this option does not switch on any bash
314      compatibility code. It merely makes it possible to install
315      /bin/bash (sym)link and run scripts which start with
316      #!/bin/bash line.
317
318      Many systems use it in scripts which use bash-specific features,
319      even simple ones like $RANDOM. Without this option, busybox
320      can't be used for running them because it won't recongnize
321      "bash" as a supported applet name.
322
323config FEATURE_BASH_IS_ASH
324    depends on ASH
325    bool "ash"
326    depends on !NOMMU
327
328config FEATURE_BASH_IS_HUSH
329    depends on HUSH
330    bool "hush"
331
332config FEATURE_BASH_IS_NONE
333    bool "none"
334
335endchoice
336
337
338config SH_MATH_SUPPORT
339    bool "POSIX math support"
340    default y
341    depends on ASH || HUSH
342    help
343      Enable math support in the shell via $((...)) syntax.
344
345config SH_MATH_SUPPORT_64
346    bool "Extend POSIX math support to 64 bit"
347    default y
348    depends on SH_MATH_SUPPORT
349    help
350      Enable 64-bit math support in the shell. This will make the shell
351      slightly larger, but will allow computation with very large numbers.
352      This is not in POSIX, so do not rely on this in portable code.
353
354config FEATURE_SH_EXTRA_QUIET
355    bool "Hide message on interactive shell startup"
356    default y
357    depends on HUSH || ASH
358    help
359      Remove the busybox introduction when starting a shell.
360
361config FEATURE_SH_STANDALONE
362    bool "Standalone shell"
363    default n
364    depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
365    help
366      This option causes busybox shells to use busybox applets
367      in preference to executables in the PATH whenever possible. For
368      example, entering the command 'ifconfig' into the shell would cause
369      busybox to use the ifconfig busybox applet. Specifying the fully
370      qualified executable name, such as '/sbin/ifconfig' will still
371      execute the /sbin/ifconfig executable on the filesystem. This option
372      is generally used when creating a statically linked version of busybox
373      for use as a rescue shell, in the event that you screw up your system.
374
375      This is implemented by re-execing /proc/self/exe (typically)
376      with right parameters. Some selected applets ("NOFORK" applets)
377      can even be executed without creating new process.
378      Instead, busybox will call <applet>_main() internally.
379
380      However, this causes problems in chroot jails without mounted /proc
381      and with ps/top (command name can be shown as 'exe' for applets
382      started this way).
383# untrue?
384#     Note that this will *also* cause applets to take precedence
385#     over shell builtins of the same name. So turning this on will
386#     eliminate any performance gained by turning on the builtin "echo"
387#     and "test" commands in ash.
388# untrue?
389#     Note that when using this option, the shell will attempt to directly
390#     run '/bin/busybox'. If you do not have the busybox binary sitting in
391#     that exact location with that exact name, this option will not work at
392#     all.
393
394config FEATURE_SH_NOFORK
395    bool "Run 'nofork' applets directly"
396    default n
397    depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
398    help
399      This option causes busybox shells [currently only ash]
400      to not execute typical fork/exec/wait sequence, but call <applet>_main
401      directly, if possible. (Sometimes it is not possible: for example,
402      this is not possible in pipes).
403
404      This will be done only for some applets (those which are marked
405      NOFORK in include/applets.h).
406
407      This may significantly speed up some shell scripts.
408
409      This feature is relatively new. Use with care.
410
411endmenu
Note: See TracBrowser for help on using the repository browser.