source: trunk/package/busybox/config/shell/Config.in @ 20661

Last change on this file since 20661 was 20661, checked in by nico, 6 years ago

[package] busybox: update to v1.16.1 (based on v1.16.0 update patch from Peter Wagner)

  • Property svn:eol-style set to native
File size: 11.3 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 BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
11        help
12          Choose a shell. The ash shell is the most bash compatible
13          and full featured one.
14
15config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
16        select BUSYBOX_CONFIG_ASH
17        bool "ash"
18        depends on !BUSYBOX_CONFIG_NOMMU
19
20config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
21        select BUSYBOX_CONFIG_HUSH
22        bool "hush"
23
24####config FEATURE_SH_IS_LASH
25####    select LASH
26####    bool "lash"
27
28####config FEATURE_SH_IS_MSH
29####    select MSH
30####    bool "msh"
31
32config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
33        bool "none"
34
35endchoice
36
37config BUSYBOX_CONFIG_ASH
38        bool "ash"
39        default y
40        depends on !BUSYBOX_CONFIG_NOMMU
41        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          busybox. This shell is actually a derivative of the Debian 'dash'
45          shell (by Herbert Xu), which was created by porting the 'ash' shell
46          (written by Kenneth Almquist) from NetBSD.
47
48config BUSYBOX_CONFIG_ASH_BASH_COMPAT
49        bool "bash-compatible extensions"
50        default y
51        depends on BUSYBOX_CONFIG_ASH
52        help
53          Enable bash-compatible extensions.
54
55config BUSYBOX_CONFIG_ASH_JOB_CONTROL
56        bool "Job control"
57        default y
58        depends on BUSYBOX_CONFIG_ASH
59        help
60          Enable job control in the ash shell.
61
62config BUSYBOX_CONFIG_ASH_ALIAS
63        bool "alias support"
64        default y
65        depends on BUSYBOX_CONFIG_ASH
66        help
67          Enable alias support in the ash shell.
68
69config BUSYBOX_CONFIG_ASH_GETOPTS
70        bool "Builtin getopt to parse positional parameters"
71        default y
72        depends on BUSYBOX_CONFIG_ASH
73        help
74          Enable getopts builtin in the ash shell.
75
76config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
77        bool "Builtin version of 'echo'"
78        default y
79        depends on BUSYBOX_CONFIG_ASH
80        help
81          Enable support for echo, builtin to ash.
82
83config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
84        bool "Builtin version of 'printf'"
85        default y
86        depends on BUSYBOX_CONFIG_ASH
87        help
88          Enable support for printf, builtin to ash.
89
90config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
91        bool "Builtin version of 'test'"
92        default y
93        depends on BUSYBOX_CONFIG_ASH
94        help
95          Enable support for test, builtin to ash.
96
97config BUSYBOX_CONFIG_ASH_CMDCMD
98        bool "'command' command to override shell builtins"
99        default y
100        depends on BUSYBOX_CONFIG_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
106config BUSYBOX_CONFIG_ASH_MAIL
107        bool "Check for new mail on interactive shells"
108        default n
109        depends on BUSYBOX_CONFIG_ASH
110        help
111          Enable "check for new mail" in the ash shell.
112
113config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
114        bool "Optimize for size instead of speed"
115        default n
116        depends on BUSYBOX_CONFIG_ASH
117        help
118          Compile ash for reduced size at the price of speed.
119
120config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
121        bool "Pseudorandom generator and $RANDOM variable"
122        default n
123        depends on BUSYBOX_CONFIG_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          After "unset RANDOM" the generator will switch off and this
129          variable will no longer have special treatment.
130
131config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
132        bool "Expand prompt string"
133        default y
134        depends on BUSYBOX_CONFIG_ASH
135        help
136          "PS#" may contain volatile content, such as backquote commands.
137          This option recreates the prompt string from the environment
138          variable each time it is displayed.
139
140config BUSYBOX_CONFIG_HUSH
141        bool "hush"
142        default n
143        help
144          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
149          It will compile and work on no-mmu systems.
150
151          It does not handle select, aliases, brace expansion,
152          tilde expansion, &>file and >&file redirection of stdout+stderr.
153
154config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
155        bool "bash-compatible extensions"
156        default y
157        depends on BUSYBOX_CONFIG_HUSH
158        help
159          Enable bash-compatible extensions.
160
161config BUSYBOX_CONFIG_HUSH_HELP
162        bool "help builtin"
163        default y
164        depends on BUSYBOX_CONFIG_HUSH
165        help
166          Enable help builtin in hush. Code size + ~1 kbyte.
167
168config BUSYBOX_CONFIG_HUSH_INTERACTIVE
169        bool "Interactive mode"
170        default y
171        depends on BUSYBOX_CONFIG_HUSH
172        help
173          Enable interactive mode (prompt and command editing).
174          Without this, hush simply reads and executes commands
175          from stdin just like a shell script from a file.
176          No prompt, no PS1/PS2 magic shell variables.
177
178config BUSYBOX_CONFIG_HUSH_JOB
179        bool "Job control"
180        default y
181        depends on BUSYBOX_CONFIG_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
189config BUSYBOX_CONFIG_HUSH_TICK
190        bool "Process substitution"
191        default y
192        depends on BUSYBOX_CONFIG_HUSH
193        help
194          Enable process substitution `command` and $(command) in hush.
195
196config BUSYBOX_CONFIG_HUSH_IF
197        bool "Support if/then/elif/else/fi"
198        default y
199        depends on BUSYBOX_CONFIG_HUSH
200        help
201          Enable if/then/elif/else/fi in hush.
202
203config BUSYBOX_CONFIG_HUSH_LOOPS
204        bool "Support for, while and until loops"
205        default y
206        depends on BUSYBOX_CONFIG_HUSH
207        help
208          Enable for, while and until loops in hush.
209
210config BUSYBOX_CONFIG_HUSH_CASE
211        bool "Support case ... esac statement"
212        default y
213        depends on BUSYBOX_CONFIG_HUSH
214        help
215          Enable case ... esac statement in hush. +400 bytes.
216
217config BUSYBOX_CONFIG_HUSH_FUNCTIONS
218        bool "Support funcname() { commands; } syntax"
219        default y
220        depends on BUSYBOX_CONFIG_HUSH
221        help
222          Enable support for shell functions in hush. +800 bytes.
223
224config BUSYBOX_CONFIG_HUSH_LOCAL
225        bool "Support local builtin"
226        default y
227        depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
228        help
229          Enable support for local variables in functions.
230
231config BUSYBOX_CONFIG_HUSH_EXPORT_N
232        bool "Support export '-n' option"
233        default y
234        depends on BUSYBOX_CONFIG_HUSH
235        help
236          Enable support for export '-n' option in hush. It is a bash extension.
237
238config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
239        bool "Pseudorandom generator and $RANDOM variable"
240        default n
241        depends on BUSYBOX_CONFIG_HUSH
242        help
243          Enable pseudorandom generator and dynamic variable "$RANDOM".
244          Each read of "$RANDOM" will generate a new pseudorandom value.
245
246config BUSYBOX_CONFIG_LASH
247        bool "lash (deprecated: aliased to hush)"
248        default n
249        select BUSYBOX_CONFIG_HUSH
250        help
251          lash is deprecated and will be removed, please migrate to hush.
252
253config BUSYBOX_CONFIG_MSH
254        bool "msh (deprecated: please use hush)"
255        default n
256        select BUSYBOX_CONFIG_HUSH
257        help
258          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
261#         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
268
269config BUSYBOX_CONFIG_SH_MATH_SUPPORT
270        bool "POSIX math support"
271        default y
272        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH
273        help
274          Enable math support in the shell via $((...)) syntax.
275
276config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
277        bool "Extend POSIX math support to 64 bit"
278        default y
279        depends on BUSYBOX_CONFIG_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
285config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
286        bool "Hide message on interactive shell startup"
287        default n
288        depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
289        help
290          Remove the busybox introduction when starting a shell.
291
292config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
293        bool "Standalone shell"
294        default n
295        depends on (BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
296        help
297          This option causes busybox shells to use busybox applets
298          in preference to executables in the PATH whenever possible. For
299          example, entering the command 'ifconfig' into the shell would cause
300          busybox to use the ifconfig busybox applet. Specifying the fully
301          qualified executable name, such as '/sbin/ifconfig' will still
302          execute the /sbin/ifconfig executable on the filesystem. This option
303          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          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
311          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
325config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
326        bool "Run 'nofork' applets directly"
327        default n
328        depends on (BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
329        help
330          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
335          This will be done only for some applets (those which are marked
336          NOFORK in include/applets.h).
337
338          This may significantly speed up some shell scripts.
339
340          This feature is relatively new. Use with care.
341
342config BUSYBOX_CONFIG_CTTYHACK
343        bool "cttyhack"
344        default n
345        help
346          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
351          Proper solution is to use correct device instead of /dev/console.
352
353          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
360          ::respawn:/bin/cttyhack /bin/sh
361
362endmenu
Note: See TracBrowser for help on using the repository browser.