Magellan Linux

Annotation of /tags/mkinitrd-6_2_2/busybox/shell/Config.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1005 - (hide annotations) (download)
Sun May 30 12:33:03 2010 UTC (14 years, 1 month ago) by niro
File size: 10318 byte(s)
tagged 'mkinitrd-6_2_2'
1 niro 532 #
2     # For a description of the syntax of this configuration file,
3     # see scripts/kbuild/config-language.txt.
4     #
5    
6     menu "Shells"
7    
8     choice
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    
15     config FEATURE_SH_IS_ASH
16     select ASH
17     bool "ash"
18 niro 984 depends on !NOMMU
19 niro 532
20     config FEATURE_SH_IS_HUSH
21     select HUSH
22     bool "hush"
23    
24 niro 816 ####config FEATURE_SH_IS_LASH
25     #### select LASH
26     #### bool "lash"
27 niro 532
28 niro 984 ####config FEATURE_SH_IS_MSH
29     #### select MSH
30     #### bool "msh"
31 niro 532
32     config FEATURE_SH_IS_NONE
33     bool "none"
34    
35     endchoice
36    
37     config ASH
38     bool "ash"
39     default n
40 niro 984 depends on !NOMMU
41 niro 532 help
42     Tha 'ash' shell adds about 60k in the default configuration and is
43     the most complete and most pedantically correct shell included with
44 niro 816 busybox. This shell is actually a derivative of the Debian 'dash'
45 niro 532 shell (by Herbert Xu), which was created by porting the 'ash' shell
46     (written by Kenneth Almquist) from NetBSD.
47    
48 niro 816 config ASH_BASH_COMPAT
49     bool "bash-compatible extensions"
50     default y
51     depends on ASH
52     help
53     Enable bash-compatible extensions.
54    
55 niro 532 config ASH_JOB_CONTROL
56     bool "Job control"
57     default y
58     depends on ASH
59     help
60     Enable job control in the ash shell.
61    
62     config ASH_ALIAS
63     bool "alias support"
64     default y
65     depends on ASH
66     help
67     Enable alias support in the ash shell.
68    
69     config ASH_GETOPTS
70     bool "Builtin getopt to parse positional parameters"
71     default n
72     depends on ASH
73     help
74     Enable getopts builtin in the ash shell.
75    
76     config ASH_BUILTIN_ECHO
77     bool "Builtin version of 'echo'"
78     default y
79     depends on ASH
80     help
81 niro 816 Enable support for echo, builtin to ash.
82 niro 532
83 niro 816 config ASH_BUILTIN_PRINTF
84     bool "Builtin version of 'printf'"
85     default y
86     depends on ASH
87     help
88     Enable support for printf, builtin to ash.
89    
90 niro 532 config ASH_BUILTIN_TEST
91     bool "Builtin version of 'test'"
92     default y
93     depends on ASH
94     help
95 niro 816 Enable support for test, builtin to ash.
96 niro 532
97     config ASH_CMDCMD
98     bool "'command' command to override shell builtins"
99     default n
100     depends on ASH
101     help
102     Enable support for the ash 'command' builtin, which allows
103     you to run the specified command with the specified arguments,
104     even when there is an ash builtin command with the same name.
105    
106     config ASH_MAIL
107     bool "Check for new mail on interactive shells"
108     default y
109     depends on ASH
110     help
111     Enable "check for new mail" in the ash shell.
112    
113     config ASH_OPTIMIZE_FOR_SIZE
114     bool "Optimize for size instead of speed"
115     default y
116     depends on ASH
117     help
118     Compile ash for reduced size at the price of speed.
119    
120     config ASH_RANDOM_SUPPORT
121 niro 984 bool "Pseudorandom generator and $RANDOM variable"
122 niro 532 default n
123     depends on ASH
124     help
125     Enable pseudorandom generator and dynamic variable "$RANDOM".
126     Each read of "$RANDOM" will generate a new pseudorandom value.
127     You can reset the generator by using a specified start value.
128 niro 984 After "unset RANDOM" the generator will switch off and this
129 niro 532 variable will no longer have special treatment.
130    
131     config ASH_EXPAND_PRMT
132     bool "Expand prompt string"
133     default n
134     depends on ASH
135     help
136 niro 984 "PS#" may contain volatile content, such as backquote commands.
137 niro 532 This option recreates the prompt string from the environment
138     variable each time it is displayed.
139    
140     config HUSH
141     bool "hush"
142     default n
143     help
144 niro 984 hush is a small shell (22k). It handles the normal flow control
145     constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
146     case/esac. Redirections, here documents, $((arithmetic))
147     and functions are supported.
148 niro 532
149 niro 984 It will compile and work on no-mmu systems.
150 niro 816
151 niro 984 It does not handle select, aliases, brace expansion,
152     tilde expansion, &>file and >&file redirection of stdout+stderr.
153 niro 532
154 niro 984 config HUSH_BASH_COMPAT
155     bool "bash-compatible extensions"
156     default y
157     depends on HUSH
158     help
159     Enable bash-compatible extensions.
160    
161 niro 816 config HUSH_HELP
162     bool "help builtin"
163     default n
164     depends on HUSH
165     help
166     Enable help builtin in hush. Code size + ~1 kbyte.
167 niro 532
168 niro 816 config HUSH_INTERACTIVE
169     bool "Interactive mode"
170     default y
171     depends on HUSH
172     help
173     Enable interactive mode (prompt and command editing).
174     Without this, hush simply reads and executes commands
175 niro 984 from stdin just like a shell script from a file.
176 niro 816 No prompt, no PS1/PS2 magic shell variables.
177    
178     config HUSH_JOB
179     bool "Job control"
180     default n
181     depends on HUSH_INTERACTIVE
182     help
183     Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
184     command (not entire shell), fg/bg builtins work. Without this option,
185     "cmd &" still works by simply spawning a process and immediately
186     prompting for next command (or executing next command in a script),
187     but no separate process group is formed.
188    
189     config HUSH_TICK
190     bool "Process substitution"
191     default n
192     depends on HUSH
193     help
194     Enable process substitution `command` and $(command) in hush.
195    
196     config HUSH_IF
197     bool "Support if/then/elif/else/fi"
198     default n
199     depends on HUSH
200     help
201     Enable if/then/elif/else/fi in hush.
202    
203     config HUSH_LOOPS
204     bool "Support for, while and until loops"
205     default n
206     depends on HUSH
207     help
208     Enable for, while and until loops in hush.
209    
210     config HUSH_CASE
211     bool "Support case ... esac statement"
212     default n
213     depends on HUSH
214     help
215     Enable case ... esac statement in hush. +400 bytes.
216    
217 niro 984 config HUSH_FUNCTIONS
218     bool "Support funcname() { commands; } syntax"
219     default n
220     depends on HUSH
221     help
222     Enable support for shell functions in hush. +800 bytes.
223    
224     config HUSH_LOCAL
225     bool "Support local builtin"
226     default n
227     depends on HUSH_FUNCTIONS
228     help
229     Enable support for local variables in functions.
230    
231     config HUSH_EXPORT_N
232     bool "Support export '-n' option"
233     default n
234     depends on HUSH
235     help
236     Enable support for export '-n' option in hush. It is a bash extension.
237    
238     config HUSH_RANDOM_SUPPORT
239     bool "Pseudorandom generator and $RANDOM variable"
240     default n
241     depends on HUSH
242     help
243     Enable pseudorandom generator and dynamic variable "$RANDOM".
244     Each read of "$RANDOM" will generate a new pseudorandom value.
245    
246 niro 532 config LASH
247 niro 984 bool "lash (deprecated: aliased to hush)"
248 niro 532 default n
249 niro 816 select HUSH
250 niro 532 help
251 niro 816 lash is deprecated and will be removed, please migrate to hush.
252 niro 532
253     config MSH
254 niro 984 bool "msh (deprecated: please use hush)"
255 niro 532 default n
256 niro 984 select HUSH
257 niro 532 help
258 niro 984 msh is deprecated and will be removed, please migrate to hush.
259     If there is a feature msh has but hush does not, please let us know.
260 niro 532
261 niro 984 # The minix shell (adds just 30k) is quite complete and handles things
262     # like for/do/done, case/esac and all the things you expect a Bourne
263     # shell to do. It is not always pedantically correct about Bourne
264     # shell grammar (try running the shell testscript "tests/sh.testcases"
265     # on it and compare vs bash) but for most things it works quite well.
266     # It uses only vfork, so it can be used on uClinux systems.
267 niro 532
268 niro 984
269     config SH_MATH_SUPPORT
270     bool "POSIX math support"
271     default y
272     depends on ASH || HUSH
273     help
274     Enable math support in the shell via $((...)) syntax.
275    
276     config SH_MATH_SUPPORT_64
277     bool "Extend POSIX math support to 64 bit"
278     default n
279     depends on SH_MATH_SUPPORT
280     help
281     Enable 64-bit math support in the shell. This will make the shell
282     slightly larger, but will allow computation with very large numbers.
283     This is not in POSIX, so do not rely on this in portable code.
284    
285 niro 532 config FEATURE_SH_EXTRA_QUIET
286     bool "Hide message on interactive shell startup"
287     default n
288     depends on MSH || LASH || HUSH || ASH
289     help
290     Remove the busybox introduction when starting a shell.
291    
292 niro 816 config FEATURE_SH_STANDALONE
293 niro 532 bool "Standalone shell"
294     default n
295 niro 816 depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
296 niro 532 help
297 niro 816 This option causes busybox shells to use busybox applets
298     in preference to executables in the PATH whenever possible. For
299 niro 532 example, entering the command 'ifconfig' into the shell would cause
300 niro 816 busybox to use the ifconfig busybox applet. Specifying the fully
301 niro 532 qualified executable name, such as '/sbin/ifconfig' will still
302 niro 816 execute the /sbin/ifconfig executable on the filesystem. This option
303 niro 532 is generally used when creating a statically linked version of busybox
304     for use as a rescue shell, in the event that you screw up your system.
305    
306 niro 816 This is implemented by re-execing /proc/self/exe (typically)
307     with right parameters. Some selected applets ("NOFORK" applets)
308     can even be executed without creating new process.
309     Instead, busybox will call <applet>_main() internally.
310 niro 532
311 niro 816 However, this causes problems in chroot jails without mounted /proc
312     and with ps/top (command name can be shown as 'exe' for applets
313     started this way).
314     # untrue?
315     # Note that this will *also* cause applets to take precedence
316     # over shell builtins of the same name. So turning this on will
317     # eliminate any performance gained by turning on the builtin "echo"
318     # and "test" commands in ash.
319     # untrue?
320     # Note that when using this option, the shell will attempt to directly
321     # run '/bin/busybox'. If you do not have the busybox binary sitting in
322     # that exact location with that exact name, this option will not work at
323     # all.
324 niro 532
325 niro 816 config FEATURE_SH_NOFORK
326     bool "Run 'nofork' applets directly"
327 niro 532 default n
328 niro 816 depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
329 niro 532 help
330 niro 816 This option causes busybox shells [currently only ash]
331     to not execute typical fork/exec/wait sequence, but call <applet>_main
332     directly, if possible. (Sometimes it is not possible: for example,
333     this is not possible in pipes).
334 niro 532
335 niro 816 This will be done only for some applets (those which are marked
336     NOFORK in include/applets.h).
337 niro 532
338 niro 816 This may significantly speed up some shell scripts.
339 niro 532
340 niro 816 This feature is relatively new. Use with care.
341 niro 532
342 niro 816 config CTTYHACK
343     bool "cttyhack"
344 niro 532 default n
345     help
346 niro 816 One common problem reported on the mailing list is "can't access tty;
347     job control turned off" error message which typically appears when
348     one tries to use shell with stdin/stdout opened to /dev/console.
349     This device is special - it cannot be a controlling tty.
350 niro 532
351 niro 816 Proper solution is to use correct device instead of /dev/console.
352 niro 532
353 niro 816 cttyhack provides "quick and dirty" solution to this problem.
354     It analyzes stdin with various ioctls, trying to determine whether
355     it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
356     If it detects one, it closes stdin/out/err and reopens that device.
357     Then it executes given program. Usage example for /etc/inittab
358     (for busybox init):
359 niro 532
360 niro 816 ::respawn:/bin/cttyhack /bin/sh
361    
362 niro 532 endmenu