nbd's makefile/menuconfig rewrite
[openwrt.git] / openwrt / package / busybox / config / 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 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
15 config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
16         select BUSYBOX_CONFIG_ASH
17         bool "ash"
18
19 config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
20         select BUSYBOX_CONFIG_HUSH
21         bool "hush"
22
23 config BUSYBOX_CONFIG_FEATURE_SH_IS_LASH
24         select BUSYBOX_CONFIG_LASH
25         bool "lash"
26
27 config BUSYBOX_CONFIG_FEATURE_SH_IS_MSH
28         select BUSYBOX_CONFIG_MSH
29         bool "msh"
30
31 config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
32         bool "none"
33
34 endchoice
35
36 config BUSYBOX_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 BUSYBOX_CONFIG_ASH
48
49 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
50         bool "  Enable Job control"
51         default y
52         depends on BUSYBOX_CONFIG_ASH
53         help
54           Enable job control in the ash shell.
55
56 config BUSYBOX_CONFIG_ASH_ALIAS
57         bool "  Enable alias support"
58         default y
59         depends on BUSYBOX_CONFIG_ASH
60         help
61           Enable alias support in the ash shell.
62
63 config BUSYBOX_CONFIG_ASH_MATH_SUPPORT
64         bool "  Enable Posix math support"
65         default y
66         depends on BUSYBOX_CONFIG_ASH
67         help
68           Enable math support in the ash shell.
69
70 config BUSYBOX_CONFIG_ASH_MATH_SUPPORT_64
71         bool "    Extend Posix math support to 64 bit"
72         default n
73         depends on BUSYBOX_CONFIG_ASH_MATH_SUPPORT
74         help
75           Enable 64-bit math support in the ash shell.  This will make
76           the shell slightly larger, but will allow computation with very
77           large numbers.
78
79 config BUSYBOX_CONFIG_ASH_GETOPTS
80         bool "  Enable getopts builtin to parse positional parameters"
81         default y
82         depends on BUSYBOX_CONFIG_ASH
83         help
84           Enable getopts builtin in the ash shell.
85
86 config BUSYBOX_CONFIG_ASH_CMDCMD
87         bool "  Enable cmdcmd to override shell builtins"
88         default y
89         depends on BUSYBOX_CONFIG_ASH
90         help
91           Enable support for the ash 'command' builtin, which allows
92           you to run the specified command with the specified arguments,
93           even when there is an ash builtin command with the same name.
94
95 config BUSYBOX_CONFIG_ASH_MAIL
96         bool "  Check for new mail on interactive shells"
97         default n
98         depends on BUSYBOX_CONFIG_ASH
99         help
100           Enable "check for new mail" in the ash shell.
101
102 config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
103         bool "  Optimize for size instead of speed"
104         default y
105         depends on BUSYBOX_CONFIG_ASH
106         help
107           Compile ash for reduced size at price of speed.
108
109 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
110         bool "  Enable pseudorandom generator and variable $RANDOM"
111         default n
112         depends on BUSYBOX_CONFIG_ASH
113         help
114           Enable pseudorandom generator and dynamic variable "$RANDOM".
115           Each read of "$RANDOM" will generate a new pseudorandom value.
116           You can reset the generator by using a specified start value.
117           After "unset RANDOM" then generator will switch off and this
118           variable will no longer have special treatment.
119
120 config BUSYBOX_CONFIG_HUSH
121         bool "hush"
122         default n
123         help
124           hush is a very small shell (just 18k) and it has fairly complete
125           Bourne shell grammar.  It even handles all the normal flow control
126           options such as if/then/elif/else/fi, for/in/do/done, while loops,
127           etc.
128
129           It does not handle case/esac, select, function, here documents ( <<
130           word ), arithmetic expansion, aliases, brace expansion, tilde
131           expansion, &> and >& redirection of stdout+stderr, etc.
132
133
134 config BUSYBOX_CONFIG_LASH
135         bool "lash"
136         default n
137         help
138           lash is the very smallest shell (adds just 10k) and it is quite
139           usable as a command prompt, but it is not suitable for any but the
140           most trivial scripting (such as an initrd that calls insmod a few
141           times) since it does not understand any Bourne shell grammar.  It
142           does handle pipes, redirects, and job control though.  Adding in
143           command editing makes it a very nice lightweight command prompt.
144
145
146 config BUSYBOX_CONFIG_MSH
147         bool "msh"
148         default n
149         help
150           The minix shell (adds just 30k) is quite complete and handles things
151           like for/do/done, case/esac and all the things you expect a Bourne
152           shell to do.  It is not always pedantically correct about Bourne
153           shell grammar (try running the shell testscript "tests/sh.testcases"
154           on it and compare vs bash) but for most things it works quite well.
155           It also uses only vfork, so it can be used on uClinux systems.
156
157 comment "Bourne Shell Options"
158         depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
159
160 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
161         bool "Hide message on interactive shell startup"
162         default n
163         depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
164         help
165           Remove the busybox introduction when starting a shell.
166
167 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL
168         bool "Standalone shell"
169         default n
170         depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
171         help
172           This option causes the selected busybox shell to use busybox applets
173           in preference to executables in the PATH whenever possible.  For
174           example, entering the command 'ifconfig' into the shell would cause
175           busybox to use the ifconfig busybox applet.  Specifying the fully
176           qualified executable name, such as '/sbin/ifconfig' will still
177           execute the /sbin/ifconfig executable on the filesystem.  This option
178           is generally used when creating a staticly linked version of busybox
179           for use as a rescue shell, in the event that you screw up your system.
180
181           Note that when using this option, the shell will attempt to directly
182           run '/bin/busybox'.  If you do not have the busybox binary sitting in
183           that exact location with that exact name, this option will not work at
184           all.
185
186 config BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
187         bool "command line editing"
188         default y
189         depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
190         help
191           Enable command editing in shell.
192
193 config BUSYBOX_CONFIG_FEATURE_COMMAND_HISTORY
194         int "history size"
195         default 15
196         depends on BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
197         help
198           Specify command history size in shell.
199
200 config BUSYBOX_CONFIG_FEATURE_COMMAND_SAVEHISTORY
201         bool "history saving"
202         default n
203         depends on BUSYBOX_CONFIG_ASH && BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
204         help
205           Enable history saving in ash shell.
206
207 config BUSYBOX_CONFIG_FEATURE_COMMAND_TAB_COMPLETION
208         bool "tab completion"
209         default y
210         depends on BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
211         help
212           Enable tab completion in shell.
213
214 config BUSYBOX_CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
215         bool "username completion"
216         default n
217         depends on BUSYBOX_CONFIG_FEATURE_COMMAND_TAB_COMPLETION
218         help
219           Enable username completion in shell.
220
221 config BUSYBOX_CONFIG_FEATURE_SH_FANCY_PROMPT
222         bool "Fancy shell prompts"
223         default y
224         depends on BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
225         help
226           Setting this option allows for prompts to use things like \w and
227           \$ and also using escape codes.
228
229 endmenu