source: drbl_ui/backup/test_busybox/busybox-1.7.2/shell/Config.in @ 175

Last change on this file since 175 was 20, checked in by chris, 17 years ago
File size: 9.0 KB
Line 
1#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
6menu "Shells"
7
8choice
9  prompt "Choose your default shell"
10  default FEATURE_SH_IS_NONE
11  help
12    Choose a shell. The ash shell is the most bash compatible
13    and full featured one.
14
15config FEATURE_SH_IS_ASH
16  select ASH
17  bool "ash"
18
19config FEATURE_SH_IS_HUSH
20  select HUSH
21  bool "hush"
22
23config FEATURE_SH_IS_LASH
24  select LASH
25  bool "lash"
26
27config FEATURE_SH_IS_MSH
28  select MSH
29  bool "msh"
30
31config FEATURE_SH_IS_NONE
32  bool "none"
33
34endchoice
35
36config ASH
37  bool "ash"
38  default n
39  select TEST
40  help
41    Tha 'ash' shell adds about 60k in the default configuration and is
42    the most complete and most pedantically correct shell included with
43    busybox.  This shell is actually a derivative of the Debian 'dash'
44    shell (by Herbert Xu), which was created by porting the 'ash' shell
45    (written by Kenneth Almquist) from NetBSD.
46
47comment "Ash Shell Options"
48  depends on ASH
49
50config ASH_JOB_CONTROL
51  bool "Job control"
52  default y
53  depends on ASH
54  help
55    Enable job control in the ash shell.
56
57config ASH_READ_NCHARS
58  bool "'read -n N' and 'read -s' support"
59  default n
60  depends on ASH
61  help
62    'read -n N' will return a value after N characters have been read.
63    'read -s' will read without echoing the user's input.
64
65config ASH_READ_TIMEOUT
66  bool "'read -t S' support."
67  default n
68  depends on ASH
69  help
70    'read -t S' will return a value after S seconds have passed.
71    This implementation will allow fractional seconds, expressed
72    as a decimal fraction, e.g. 'read -t 2.5 foo'.
73
74config ASH_ALIAS
75  bool "alias support"
76  default y
77  depends on ASH
78  help
79    Enable alias support in the ash shell.
80
81config ASH_MATH_SUPPORT
82  bool "Posix math support"
83  default y
84  depends on ASH
85  help
86    Enable math support in the ash shell.
87
88config ASH_MATH_SUPPORT_64
89  bool "Extend Posix math support to 64 bit"
90  default n
91  depends on ASH_MATH_SUPPORT
92  help
93    Enable 64-bit math support in the ash shell.  This will make
94    the shell slightly larger, but will allow computation with very
95    large numbers.
96
97config ASH_GETOPTS
98  bool "Builtin getopt to parse positional parameters"
99  default n
100  depends on ASH
101  help
102    Enable getopts builtin in the ash shell.
103
104config ASH_BUILTIN_ECHO
105  bool "Builtin version of 'echo'"
106  default y
107  select ECHO
108  depends on ASH
109  help
110    Enable support for echo, builtin to ash.
111
112config ASH_BUILTIN_TEST
113  bool "Builtin version of 'test'"
114  default y
115  select TEST
116  depends on ASH
117  help
118    Enable support for test, builtin to ash.
119
120config ASH_CMDCMD
121  bool "'command' command to override shell builtins"
122  default n
123  depends on ASH
124  help
125    Enable support for the ash 'command' builtin, which allows
126    you to run the specified command with the specified arguments,
127    even when there is an ash builtin command with the same name.
128
129config ASH_MAIL
130  bool "Check for new mail on interactive shells"
131  default y
132  depends on ASH
133  help
134    Enable "check for new mail" in the ash shell.
135
136config ASH_OPTIMIZE_FOR_SIZE
137  bool "Optimize for size instead of speed"
138  default y
139  depends on ASH
140  help
141    Compile ash for reduced size at the price of speed.
142
143config ASH_RANDOM_SUPPORT
144  bool "Pseudorandom generator and variable $RANDOM"
145  default n
146  depends on ASH
147  help
148    Enable pseudorandom generator and dynamic variable "$RANDOM".
149    Each read of "$RANDOM" will generate a new pseudorandom value.
150    You can reset the generator by using a specified start value.
151    After "unset RANDOM" then generator will switch off and this
152    variable will no longer have special treatment.
153
154config ASH_EXPAND_PRMT
155  bool "Expand prompt string"
156  default n
157  depends on ASH
158  help
159    "PS#" may be contain volatile content, such as backquote commands.
160    This option recreates the prompt string from the environment
161    variable each time it is displayed.
162
163config HUSH
164  bool "hush"
165  default n
166  select TRUE
167  select FALSE
168  select TEST
169  help
170    hush is a very small shell (just 18k) and it has fairly complete
171    Bourne shell grammar.  It even handles all the normal flow control
172    options such as if/then/elif/else/fi, for/in/do/done, while loops,
173    etc.
174
175    It does not handle case/esac, select, function, here documents ( <<
176    word ), arithmetic expansion, aliases, brace expansion, tilde
177    expansion, &> and >& redirection of stdout+stderr, etc.
178
179config HUSH_HELP
180  bool "help builtin"
181  default n
182  depends on HUSH
183  help
184    Enable help builtin in hush. Code size + ~1 kbyte.
185
186config HUSH_INTERACTIVE
187  bool "Interactive mode"
188  default y
189  depends on HUSH
190  help
191    Enable interactive mode (prompt and command editing).
192    Without this, hush simply reads and executes commands
193    from stdin just like a shell script from the file.
194    No prompt, no PS1/PS2 magic shell variables.
195
196config HUSH_JOB
197  bool "Job control"
198  default n
199  depends on HUSH_INTERACTIVE
200  help
201    Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
202    command (not entire shell), fg/bg builtins work. Without this option,
203    "cmd &" still works by simply spawning a process and immediately
204    prompting for next command (or executing next command in a script),
205    but no separate process group is formed.
206
207config HUSH_TICK
208  bool "Process substitution"
209  default n
210  depends on HUSH
211  help
212    Enable process substitution `command` and $(command) in hush.
213
214config HUSH_IF
215  bool "Support if/then/elif/else/fi"
216  default n
217  depends on HUSH
218  help
219    Enable if/then/elif/else/fi in hush.
220
221config HUSH_LOOPS
222  bool "Support for, while and until loops"
223  default n
224  depends on HUSH
225  help
226    Enable for, while and until loops in hush.
227
228config LASH
229  bool "lash"
230  default n
231  select TRUE
232  select FALSE
233  select TEST
234  help
235    lash is the very smallest shell (adds just 10k) and it is quite
236    usable as a command prompt, but it is not suitable for any but the
237    most trivial scripting (such as an initrd that calls insmod a few
238    times) since it does not understand any Bourne shell grammar.  It
239    does handle pipes, redirects, and job control though.  Adding in
240    command editing makes it a very nice lightweight command prompt.
241
242
243config MSH
244  bool "msh"
245  default n
246  select TRUE
247  select FALSE
248  select TEST
249  help
250    The minix shell (adds just 30k) is quite complete and handles things
251    like for/do/done, case/esac and all the things you expect a Bourne
252    shell to do.  It is not always pedantically correct about Bourne
253    shell grammar (try running the shell testscript "tests/sh.testcases"
254    on it and compare vs bash) but for most things it works quite well.
255    It also uses only vfork, so it can be used on uClinux systems.
256
257comment "Bourne Shell Options"
258  depends on MSH || LASH || HUSH || ASH
259
260config FEATURE_SH_EXTRA_QUIET
261  bool "Hide message on interactive shell startup"
262  default n
263  depends on MSH || LASH || HUSH || ASH
264  help
265    Remove the busybox introduction when starting a shell.
266
267config FEATURE_SH_STANDALONE
268  bool "Standalone shell"
269  default n
270  depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
271  help
272    This option causes busybox shells to use busybox applets
273    in preference to executables in the PATH whenever possible.  For
274    example, entering the command 'ifconfig' into the shell would cause
275    busybox to use the ifconfig busybox applet.  Specifying the fully
276    qualified executable name, such as '/sbin/ifconfig' will still
277    execute the /sbin/ifconfig executable on the filesystem.  This option
278    is generally used when creating a statically linked version of busybox
279    for use as a rescue shell, in the event that you screw up your system.
280
281    This is implemented by re-execing /proc/self/exe (typically)
282    with right parameters. Some selected applets ("NOFORK" applets)
283    can even be executed without creating new process.
284    Instead, busybox will call <applet>_main() internally.
285
286    However, this causes problems in chroot jails without mounted /proc
287    and with ps/top (command name can be shown as 'exe' for applets
288    started this way).
289# untrue?
290#   Note that this will *also* cause applets to take precedence
291#   over shell builtins of the same name.  So turning this on will
292#   eliminate any performance gained by turning on the builtin "echo"
293#   and "test" commands in ash.
294# untrue?
295#   Note that when using this option, the shell will attempt to directly
296#   run '/bin/busybox'.  If you do not have the busybox binary sitting in
297#   that exact location with that exact name, this option will not work at
298#   all.
299
300config CTTYHACK
301  bool "cttyhack"
302  default n
303  help
304    One common problem reported on the mailing list is "can't access tty;
305    job control turned off" error message which typically appears when
306    one tries to use shell with stdin/stdout opened to /dev/console.
307    This device is special - it cannot be a controlling tty.
308
309    Proper solution is to use correct device instead of /dev/console.
310
311    cttyhack provides "quick and dirty" solution to this problem.
312    It analyzes stdin with various ioctls, trying to determine whether
313    it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
314    If it detects one, it closes stdin/out/err and reopens that device.
315    Then it executes given program. Usage example for /etc/inittab
316    (for busybox init):
317
318    ::respawn:/bin/cttyhack /bin/sh
319
320endmenu
Note: See TracBrowser for help on using the repository browser.