- add ash read -t timeout support. initial code provided by Tim Yamin on Oct/21/2004...
[oweals/busybox.git] / shell / Config.in
1 #
2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
4 #
5
6 menu "Another Bourne-like Shell"
7
8 choice
9         prompt "Choose your default shell"
10         default CONFIG_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 CONFIG_FEATURE_SH_IS_ASH
16         select CONFIG_ASH
17         bool "ash"
18
19 config CONFIG_FEATURE_SH_IS_HUSH
20         select CONFIG_HUSH
21         bool "hush"
22
23 config CONFIG_FEATURE_SH_IS_LASH
24         select CONFIG_LASH
25         bool "lash"
26
27 config CONFIG_FEATURE_SH_IS_MSH
28         select CONFIG_MSH
29         bool "msh"
30
31 config CONFIG_FEATURE_SH_IS_NONE
32         bool "none"
33
34 endchoice
35
36 config CONFIG_ASH
37         bool "ash"
38         default y
39         help
40           Tha 'ash' shell adds about 60k in the default configuration and is
41           the most complete and most pedantically correct shell included with
42           busybox.  This shell is actually a derivative of the Debian 'dash'
43           shell (by Herbert Xu), which was created by porting the 'ash' shell
44           (written by Kenneth Almquist) from NetBSD.
45
46 comment "Ash Shell Options"
47         depends on CONFIG_ASH
48
49 config CONFIG_ASH_JOB_CONTROL
50         bool "  Enable Job control"
51         default y
52         depends on CONFIG_ASH
53         help
54           Enable job control in the ash shell.
55
56 config CONFIG_ASH_TIMEOUT
57         bool "  Enable read timeout support."
58         default n
59         depends on CONFIG_ASH_JOB_CONTROL
60         help
61           This option provides read -t <seconds> support.
62
63           read builtin which allows the function to pass control back 
64           if no character input is read from the terminal within a set
65           number of seconds.
66
67 config CONFIG_ASH_ALIAS
68         bool "  Enable alias support"
69         default y
70         depends on CONFIG_ASH
71         help
72           Enable alias support in the ash shell.
73
74 config CONFIG_ASH_MATH_SUPPORT
75         bool "  Enable Posix math support"
76         default y
77         depends on CONFIG_ASH
78         help
79           Enable math support in the ash shell.
80
81 config CONFIG_ASH_MATH_SUPPORT_64
82         bool "    Extend Posix math support to 64 bit"
83         default n
84         depends on CONFIG_ASH_MATH_SUPPORT
85         help
86           Enable 64-bit math support in the ash shell.  This will make
87           the shell slightly larger, but will allow computation with very
88           large numbers.
89
90 config CONFIG_ASH_GETOPTS
91         bool "  Enable getopts builtin to parse positional parameters"
92         default n
93         depends on CONFIG_ASH
94         help
95           Enable getopts builtin in the ash shell.
96
97 config CONFIG_ASH_CMDCMD
98         bool "  Enable cmdcmd to override shell builtins"
99         default n
100         depends on 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
106 config CONFIG_ASH_MAIL
107         bool "  Check for new mail on interactive shells"
108         default y
109         depends on CONFIG_ASH
110         help
111           Enable "check for new mail" in the ash shell.
112
113 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
114         bool "  Optimize for size instead of speed"
115         default y
116         depends on CONFIG_ASH
117         help
118           Compile ash for reduced size at price of speed.
119
120 config CONFIG_ASH_RANDOM_SUPPORT
121         bool "  Enable pseudorandom generator and variable $RANDOM"
122         default n
123         depends on 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" then generator will switch off and this
129           variable will no longer have special treatment.
130
131 config CONFIG_HUSH
132         bool "hush"
133         default n
134         help
135           hush is a very small shell (just 18k) and it has fairly complete
136           Bourne shell grammar.  It even handles all the normal flow control
137           options such as if/then/elif/else/fi, for/in/do/done, while loops,
138           etc.
139
140           It does not handle case/esac, select, function, here documents ( <<
141           word ), arithmetic expansion, aliases, brace expansion, tilde
142           expansion, &> and >& redirection of stdout+stderr, etc.
143
144
145 config CONFIG_LASH
146         bool "lash"
147         default n
148         help
149           lash is the very smallest shell (adds just 10k) and it is quite
150           usable as a command prompt, but it is not suitable for any but the
151           most trivial scripting (such as an initrd that calls insmod a few
152           times) since it does not understand any Bourne shell grammar.  It
153           does handle pipes, redirects, and job control though.  Adding in
154           command editing makes it a very nice lightweight command prompt.
155
156
157 config CONFIG_MSH
158         bool "msh"
159         default n
160         help
161           The minix shell (adds just 30k) is quite complete and handles things
162           like for/do/done, case/esac and all the things you expect a Bourne
163           shell to do.  It is not always pedantically correct about Bourne
164           shell grammar (try running the shell testscript "tests/sh.testcases"
165           on it and compare vs bash) but for most things it works quite well.
166           It also uses only vfork, so it can be used on uClinux systems.
167
168 comment "Bourne Shell Options"
169         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
170
171 config CONFIG_FEATURE_SH_EXTRA_QUIET
172         bool "Hide message on interactive shell startup"
173         default n
174         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
175         help
176           Remove the busybox introduction when starting a shell.
177
178 config CONFIG_FEATURE_SH_STANDALONE_SHELL
179         bool "Standalone shell"
180         default n
181         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
182         help
183           This option causes the selected busybox shell to use busybox applets
184           in preference to executables in the PATH whenever possible.  For
185           example, entering the command 'ifconfig' into the shell would cause
186           busybox to use the ifconfig busybox applet.  Specifying the fully
187           qualified executable name, such as '/sbin/ifconfig' will still
188           execute the /sbin/ifconfig executable on the filesystem.  This option
189           is generally used when creating a staticly linked version of busybox
190           for use as a rescue shell, in the event that you screw up your system.
191
192           Note that when using this option, the shell will attempt to directly
193           run '/bin/busybox'.  If you do not have the busybox binary sitting in
194           that exact location with that exact name, this option will not work at
195           all.
196
197 config CONFIG_FEATURE_COMMAND_EDITING
198         bool "command line editing"
199         default n
200         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
201         help
202           Enable command editing in shell.
203
204 config CONFIG_FEATURE_COMMAND_HISTORY
205         int "history size"
206         default 15
207         depends on CONFIG_FEATURE_COMMAND_EDITING
208         help
209           Specify command history size in shell.
210
211 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
212         bool "history saving"
213         default n
214         depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
215         help
216           Enable history saving in ash shell.
217
218 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
219         bool "tab completion"
220         default n
221         depends on CONFIG_FEATURE_COMMAND_EDITING
222         help
223           Enable tab completion in shell.
224
225 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
226         bool "username completion"
227         default n
228         depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
229         help
230           Enable username completion in shell.
231
232 config CONFIG_FEATURE_SH_FANCY_PROMPT
233         bool "Fancy shell prompts"
234         default n
235         depends on CONFIG_FEATURE_COMMAND_EDITING
236         help
237           Setting this option allows for prompts to use things like \w and
238           \$ and also using escape codes.
239
240 endmenu