blob: 6cc11ce809a949725efba602b3edeb3f06d71087 [file] [log] [blame]
Eric Andersenc9f20d92002-12-05 08:41:41 +00001#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
Mike Frysinger9ac178a2005-09-24 05:49:36 +00006menu "Shells"
Eric Andersenc9f20d92002-12-05 08:41:41 +00007
8choice
9 prompt "Choose your default shell"
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000010 default FEATURE_SH_IS_NONE
Eric Andersenc9f20d92002-12-05 08:41:41 +000011 help
Eric Andersene5642112003-07-14 19:37:08 +000012 Choose a shell. The ash shell is the most bash compatible
Eric Andersen88c916b2003-10-22 09:58:56 +000013 and full featured one.
Eric Andersenc9f20d92002-12-05 08:41:41 +000014
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000015config FEATURE_SH_IS_ASH
16 select ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000017 bool "ash"
18
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000019config FEATURE_SH_IS_HUSH
20 select HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +000021 bool "hush"
22
Denis Vlasenko96702ca2007-11-23 23:28:55 +000023####config FEATURE_SH_IS_LASH
24#### select LASH
25#### bool "lash"
Eric Andersenc9f20d92002-12-05 08:41:41 +000026
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000027config FEATURE_SH_IS_MSH
28 select MSH
Eric Andersenc9f20d92002-12-05 08:41:41 +000029 bool "msh"
30
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000031config FEATURE_SH_IS_NONE
Eric Andersena6b90512002-12-06 21:49:59 +000032 bool "none"
33
Eric Andersenc9f20d92002-12-05 08:41:41 +000034endchoice
35
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000036config ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000037 bool "ash"
Rob Landley49576c02006-01-30 06:11:42 +000038 default n
Eric Andersenc9f20d92002-12-05 08:41:41 +000039 help
Eric Andersenb287e2e2003-08-08 23:40:12 +000040 Tha 'ash' shell adds about 60k in the default configuration and is
41 the most complete and most pedantically correct shell included with
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +000042 busybox. This shell is actually a derivative of the Debian 'dash'
Eric Andersen88c916b2003-10-22 09:58:56 +000043 shell (by Herbert Xu), which was created by porting the 'ash' shell
Eric Andersenc7bda1c2004-03-15 08:29:22 +000044 (written by Kenneth Almquist) from NetBSD.
Eric Andersenc9f20d92002-12-05 08:41:41 +000045
46comment "Ash Shell Options"
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000047 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000048
Denis Vlasenko92e13c22008-03-25 01:17:40 +000049config ASH_BASH_COMPAT
50 bool "bash-compatible extensions"
51 default y
52 depends on ASH
53 help
Bernhard Reutner-Fischer1dbc6432008-08-06 17:39:30 +000054 Enable bash-compatible extensions.
Denis Vlasenko92e13c22008-03-25 01:17:40 +000055
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000056config ASH_JOB_CONTROL
Paul Fox7ba12c62006-06-08 21:48:47 +000057 bool "Job control"
Eric Andersenc9f20d92002-12-05 08:41:41 +000058 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000059 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000060 help
Eric Andersene5642112003-07-14 19:37:08 +000061 Enable job control in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000062
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000063config ASH_READ_NCHARS
Paul Fox7ba12c62006-06-08 21:48:47 +000064 bool "'read -n N' and 'read -s' support"
Mike Frysinger9ac178a2005-09-24 05:49:36 +000065 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000066 depends on ASH
Mike Frysinger9ac178a2005-09-24 05:49:36 +000067 help
Paul Fox02eb9342005-09-07 16:56:02 +000068 'read -n N' will return a value after N characters have been read.
69 'read -s' will read without echoing the user's input.
Ned Ludd2123b7c2005-02-09 21:07:23 +000070
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000071config ASH_READ_TIMEOUT
Denis Vlasenkoc185e292008-07-16 23:45:11 +000072 bool "'read -t S' support"
Mike Frysinger9ac178a2005-09-24 05:49:36 +000073 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000074 depends on ASH
Mike Frysinger9ac178a2005-09-24 05:49:36 +000075 help
Paul Fox02eb9342005-09-07 16:56:02 +000076 'read -t S' will return a value after S seconds have passed.
77 This implementation will allow fractional seconds, expressed
78 as a decimal fraction, e.g. 'read -t 2.5 foo'.
Ned Ludd2123b7c2005-02-09 21:07:23 +000079
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000080config ASH_ALIAS
Paul Fox7ba12c62006-06-08 21:48:47 +000081 bool "alias support"
Eric Andersenc9f20d92002-12-05 08:41:41 +000082 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000083 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000084 help
Eric Andersene5642112003-07-14 19:37:08 +000085 Enable alias support in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000086
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000087config ASH_GETOPTS
Paul Fox6ab03782006-06-08 21:37:26 +000088 bool "Builtin getopt to parse positional parameters"
Eric Andersenc9f20d92002-12-05 08:41:41 +000089 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000090 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000091 help
Glenn L McGrath53090cd2004-09-24 09:09:44 +000092 Enable getopts builtin in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000093
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000094config ASH_BUILTIN_ECHO
Paul Fox6ab03782006-06-08 21:37:26 +000095 bool "Builtin version of 'echo'"
96 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000097 depends on ASH
Paul Fox6ab03782006-06-08 21:37:26 +000098 help
Bernhard Reutner-Fischereb10e172007-01-29 23:56:13 +000099 Enable support for echo, builtin to ash.
Paul Fox6ab03782006-06-08 21:37:26 +0000100
Denis Vlasenkocd2663f2008-06-01 22:36:39 +0000101config ASH_BUILTIN_PRINTF
102 bool "Builtin version of 'printf'"
103 default y
104 depends on ASH
105 help
106 Enable support for printf, builtin to ash.
107
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000108config ASH_BUILTIN_TEST
Paul Fox6ab03782006-06-08 21:37:26 +0000109 bool "Builtin version of 'test'"
110 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000111 depends on ASH
Paul Fox6ab03782006-06-08 21:37:26 +0000112 help
Bernhard Reutner-Fischereb10e172007-01-29 23:56:13 +0000113 Enable support for test, builtin to ash.
Paul Fox6ab03782006-06-08 21:37:26 +0000114
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000115config ASH_CMDCMD
Paul Fox7ba12c62006-06-08 21:48:47 +0000116 bool "'command' command to override shell builtins"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000117 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000118 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000119 help
Eric Andersen3857a182003-07-22 10:14:32 +0000120 Enable support for the ash 'command' builtin, which allows
121 you to run the specified command with the specified arguments,
122 even when there is an ash builtin command with the same name.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000123
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000124config ASH_MAIL
Rob Landley2ec922e2006-04-13 23:22:16 +0000125 bool "Check for new mail on interactive shells"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000126 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000127 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000128 help
Eric Andersene5642112003-07-14 19:37:08 +0000129 Enable "check for new mail" in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000130
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000131config ASH_OPTIMIZE_FOR_SIZE
Rob Landley2ec922e2006-04-13 23:22:16 +0000132 bool "Optimize for size instead of speed"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000133 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000134 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000135 help
Rob Landley32251b42006-02-08 18:34:21 +0000136 Compile ash for reduced size at the price of speed.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000137
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000138config ASH_RANDOM_SUPPORT
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000139 bool "Pseudorandom generator and $RANDOM variable"
Eric Andersen16767e22004-03-16 05:14:10 +0000140 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000141 depends on ASH
Eric Andersen16767e22004-03-16 05:14:10 +0000142 help
143 Enable pseudorandom generator and dynamic variable "$RANDOM".
144 Each read of "$RANDOM" will generate a new pseudorandom value.
145 You can reset the generator by using a specified start value.
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000146 After "unset RANDOM" the generator will switch off and this
Eric Andersen16767e22004-03-16 05:14:10 +0000147 variable will no longer have special treatment.
148
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000149config ASH_EXPAND_PRMT
Rob Landley2ec922e2006-04-13 23:22:16 +0000150 bool "Expand prompt string"
"Vladimir N. Oleynik"bef14d72005-09-05 13:25:11 +0000151 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000152 depends on ASH
"Vladimir N. Oleynik"bef14d72005-09-05 13:25:11 +0000153 help
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000154 "PS#" may contain volatile content, such as backquote commands.
Rob Landley32251b42006-02-08 18:34:21 +0000155 This option recreates the prompt string from the environment
156 variable each time it is displayed.
"Vladimir N. Oleynik"bef14d72005-09-05 13:25:11 +0000157
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000158config HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000159 bool "hush"
160 default n
161 help
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000162 hush is a small shell (22k). It handles the normal flow control
163 constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
164 case/esac. Redirections, here documents, $((arithmetic))
165 and functions are supported.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000166
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000167 It will compile and work on no-mmu systems.
Denis Vlasenkobe709c22008-07-28 00:01:16 +0000168
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000169 It does not handle select, aliases, brace expansion,
170 tilde expansion, &>file and >&file redirection of stdout+stderr.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000171
Denis Vlasenko06810332007-05-21 23:30:54 +0000172config HUSH_HELP
173 bool "help builtin"
174 default n
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000175 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000176 help
177 Enable help builtin in hush. Code size + ~1 kbyte.
178
Denis Vlasenkob81b3df2007-04-28 16:48:04 +0000179config HUSH_INTERACTIVE
180 bool "Interactive mode"
181 default y
182 depends on HUSH
183 help
Denis Vlasenkoe3f2f892007-04-28 16:48:27 +0000184 Enable interactive mode (prompt and command editing).
185 Without this, hush simply reads and executes commands
186 from stdin just like a shell script from the file.
187 No prompt, no PS1/PS2 magic shell variables.
188
189config HUSH_JOB
190 bool "Job control"
191 default n
192 depends on HUSH_INTERACTIVE
193 help
194 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
195 command (not entire shell), fg/bg builtins work. Without this option,
196 "cmd &" still works by simply spawning a process and immediately
197 prompting for next command (or executing next command in a script),
198 but no separate process group is formed.
Denis Vlasenkob81b3df2007-04-28 16:48:04 +0000199
Denis Vlasenko14b5dd92007-05-20 21:51:38 +0000200config HUSH_TICK
201 bool "Process substitution"
202 default n
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000203 depends on HUSH
Denis Vlasenko14b5dd92007-05-20 21:51:38 +0000204 help
205 Enable process substitution `command` and $(command) in hush.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000206
Denis Vlasenko06810332007-05-21 23:30:54 +0000207config HUSH_IF
208 bool "Support if/then/elif/else/fi"
209 default n
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000210 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000211 help
212 Enable if/then/elif/else/fi in hush.
213
214config HUSH_LOOPS
215 bool "Support for, while and until loops"
216 default n
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000217 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000218 help
219 Enable for, while and until loops in hush.
Denis Vlasenkobe709c22008-07-28 00:01:16 +0000220
221config HUSH_CASE
222 bool "Support case ... esac statement"
223 default n
224 depends on HUSH
225 help
226 Enable case ... esac statement in hush. +400 bytes.
Denis Vlasenko06810332007-05-21 23:30:54 +0000227
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000228config HUSH_FUNCTIONS
229 bool "Support funcname() { commands; } syntax"
230 default n
231 depends on HUSH
232 help
233 Enable support for shell functions in hush. +800 bytes.
234
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000235config LASH
Mike Frysinger70a2c8d2009-03-28 12:12:58 +0000236 bool "lash (deprecated: aliased to hush)"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000237 default n
Denis Vlasenko96702ca2007-11-23 23:28:55 +0000238 select HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000239 help
Denis Vlasenko96702ca2007-11-23 23:28:55 +0000240 lash is deprecated and will be removed, please migrate to hush.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000241
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000242config MSH
Mike Frysingerb975feb2009-03-29 00:52:41 +0000243 bool "msh (deprecated: please use hush)"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000244 default n
245 help
Mike Frysingerb975feb2009-03-29 00:52:41 +0000246 msh is deprecated and will be removed, please migrate to hush.
247 If there is a feature msh has but hush does not, please let us know.
248
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000249# The minix shell (adds just 30k) is quite complete and handles things
250# like for/do/done, case/esac and all the things you expect a Bourne
251# shell to do. It is not always pedantically correct about Bourne
252# shell grammar (try running the shell testscript "tests/sh.testcases"
253# on it and compare vs bash) but for most things it works quite well.
254# It uses only vfork, so it can be used on uClinux systems.
255
256
Eric Andersenc9f20d92002-12-05 08:41:41 +0000257comment "Bourne Shell Options"
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000258 depends on MSH || LASH || HUSH || ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000259
Mike Frysinger98c52642009-04-02 10:02:37 +0000260config SH_MATH_SUPPORT
261 bool "POSIX math support"
262 default y
263 depends on ASH || HUSH
264 help
265 Enable math support in the shell via $((...)) syntax.
266
267config SH_MATH_SUPPORT_64
268 bool "Extend POSIX math support to 64 bit"
269 default n
270 depends on SH_MATH_SUPPORT
271 help
272 Enable 64-bit math support in the shell. This will make the shell
273 slightly larger, but will allow computation with very large numbers.
274 This is not in POSIX, so do not rely on this in portable code.
275
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000276config FEATURE_SH_EXTRA_QUIET
Glenn L McGrath3b251852004-01-03 12:07:32 +0000277 bool "Hide message on interactive shell startup"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000278 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000279 depends on MSH || LASH || HUSH || ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000280 help
Glenn L McGrath3b251852004-01-03 12:07:32 +0000281 Remove the busybox introduction when starting a shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000282
Denis Vlasenko80d14be2007-04-10 23:03:30 +0000283config FEATURE_SH_STANDALONE
Eric Andersenc9f20d92002-12-05 08:41:41 +0000284 bool "Standalone shell"
285 default n
Denis Vlasenko80d14be2007-04-10 23:03:30 +0000286 depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
Eric Andersenc9f20d92002-12-05 08:41:41 +0000287 help
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000288 This option causes busybox shells to use busybox applets
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000289 in preference to executables in the PATH whenever possible. For
Eric Andersen075dd812004-04-07 09:34:27 +0000290 example, entering the command 'ifconfig' into the shell would cause
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000291 busybox to use the ifconfig busybox applet. Specifying the fully
Eric Andersen075dd812004-04-07 09:34:27 +0000292 qualified executable name, such as '/sbin/ifconfig' will still
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000293 execute the /sbin/ifconfig executable on the filesystem. This option
Rob Landley06ec8cf2006-03-03 19:02:50 +0000294 is generally used when creating a statically linked version of busybox
Eric Andersen075dd812004-04-07 09:34:27 +0000295 for use as a rescue shell, in the event that you screw up your system.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000296
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000297 This is implemented by re-execing /proc/self/exe (typically)
298 with right parameters. Some selected applets ("NOFORK" applets)
299 can even be executed without creating new process.
300 Instead, busybox will call <applet>_main() internally.
Paul Fox6ab03782006-06-08 21:37:26 +0000301
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000302 However, this causes problems in chroot jails without mounted /proc
303 and with ps/top (command name can be shown as 'exe' for applets
304 started this way).
305# untrue?
306# Note that this will *also* cause applets to take precedence
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000307# over shell builtins of the same name. So turning this on will
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000308# eliminate any performance gained by turning on the builtin "echo"
309# and "test" commands in ash.
310# untrue?
311# Note that when using this option, the shell will attempt to directly
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000312# run '/bin/busybox'. If you do not have the busybox binary sitting in
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000313# that exact location with that exact name, this option will not work at
314# all.
Eric Andersen6f8542b2004-09-24 01:25:39 +0000315
Denis Vlasenko9bc80d72008-04-12 20:07:53 +0000316config FEATURE_SH_NOFORK
317 bool "Run 'nofork' applets directly"
318 default n
319 depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
320 help
321 This option causes busybox shells [currently only ash]
322 to not execute typical fork/exec/wait sequence, but call <applet>_main
323 directly, if possible. (Sometimes it is not possible: for example,
324 this is not possible in pipes).
325
326 This will be done only for some applets (those which are marked
327 NOFORK in include/applets.h).
328
329 This may significantly speed up some shell scripts.
330
331 This feature is relatively new. Use with care.
332
Denis Vlasenko6d709972007-05-18 09:45:36 +0000333config CTTYHACK
334 bool "cttyhack"
335 default n
336 help
337 One common problem reported on the mailing list is "can't access tty;
338 job control turned off" error message which typically appears when
339 one tries to use shell with stdin/stdout opened to /dev/console.
340 This device is special - it cannot be a controlling tty.
341
342 Proper solution is to use correct device instead of /dev/console.
343
344 cttyhack provides "quick and dirty" solution to this problem.
345 It analyzes stdin with various ioctls, trying to determine whether
346 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
347 If it detects one, it closes stdin/out/err and reopens that device.
348 Then it executes given program. Usage example for /etc/inittab
349 (for busybox init):
350
351 ::respawn:/bin/cttyhack /bin/sh
352
Eric Andersenc9f20d92002-12-05 08:41:41 +0000353endmenu