016af719af0f657f7c1e0de57f2eac93556744e5
[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_ALIAS
57         bool "  Enable alias support"
58         default y
59         depends on CONFIG_ASH
60         help
61           Enable alias support in the ash shell.
62
63 config CONFIG_ASH_MATH_SUPPORT
64         bool "  Enable Posix math support"
65         default y
66         depends on CONFIG_ASH
67         help
68           Enable math support in the ash shell.
69
70 config CONFIG_ASH_GETOPTS
71         bool "  Enable getopt builtin to parse positional parameters"
72         default n
73         depends on CONFIG_ASH
74         help
75           Enable builtin getopt in the ash shell.
76
77 config CONFIG_ASH_CMDCMD
78         bool "  Enable cmdcmd to override shell builtins"
79         default n
80         depends on CONFIG_ASH
81         help
82           Enable support for the ash 'command' builtin, which allows
83           you to run the specified command with the specified arguments,
84           even when there is an ash builtin command with the same name.
85
86 config CONFIG_ASH_MAIL
87         bool "  Check for new mail on interactive shells"
88         default y
89         depends on CONFIG_ASH
90         help
91           Enable "check for new mail" in the ash shell.
92
93 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
94         bool "  Optimize for size instead of speed"
95         default y
96         depends on CONFIG_ASH
97         help
98           Compile ash for reduced size at price of speed.
99
100 config CONFIG_HUSH
101         bool "hush"
102         default n
103         help
104           hush is a very small shell (just 18k) and it has fairly complete
105           Bourne shell grammar.  It even handles all the normal flow control
106           options such as if/then/elif/else/fi, for/in/do/done, while loops,
107           etc.
108
109           It does not handle case/esac, select, function, here documents ( <<
110           word ), arithmetic expansion, aliases, brace expansion, tilde
111           expansion, &> and >& redirection of stdout+stderr, etc.
112
113
114 config CONFIG_LASH
115         bool "lash"
116         default n
117         help
118           lash is the very smallest shell (adds just 10k) and it is quite
119           usable as a command prompt, but it is not suitable for any but the
120           most trivial scripting (such as an initrd that calls insmod a few
121           times) since it does not understand any Bourne shell grammar.  It
122           does handle pipes, redirects, and job control though.  Adding in
123           command editing makes it a very nice lightweight command prompt.
124
125
126 config CONFIG_MSH
127         bool "msh"
128         default n
129         help
130           The minix shell (adds just 30k) is quite complete and handles things
131           like for/do/done, case/esac and all the things you expect a Bourne
132           shell to do.  It is not always pedantically correct about Bourne
133           shell grammar (try running the shell testscript "tests/sh.testcases"
134           on it and compare vs bash) but for most things it works quite well.
135           It also uses only vfork, so it can be used on uClinux systems.
136
137 comment "Bourne Shell Options"
138         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
139
140 config CONFIG_FEATURE_COMMAND_EDITING
141         bool "command line editing"
142         default n
143         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
144         help
145           Enable command editing in shell.
146
147 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
148         bool "  history saving"
149         default n
150         depends on CONFIG_ASH
151         help
152           Enable history saving in ash shell.
153
154 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
155         bool "tab completion"
156         default n
157         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
158         help
159           Enable tab completion in shell.
160
161 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
162         bool "username completion"
163         default n
164         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
165         help
166           Enable username completion in shell.
167
168 config CONFIG_FEATURE_COMMAND_HISTORY
169         int "history size"
170         default 15
171         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
172         help
173           Specify command history size in shell.
174
175 config CONFIG_FEATURE_SH_STANDALONE_SHELL
176         bool "Standalone shell"
177         default n
178         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
179         help
180           Have all the busybox commands built into the shell, creating
181           a standalone shell.
182
183 config CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
184         bool "Standalone shell -- applets always win"
185         default n
186         depends on CONFIG_FEATURE_SH_STANDALONE_SHELL
187         help
188           Use a command builtin to the shell over one with the same name,
189           that may be on the system.
190
191 config CONFIG_FEATURE_SH_FANCY_PROMPT
192         bool "Fancy shell prompts"
193         default n
194         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
195         help
196           Setting this option allows for prompts to use things like \w and
197           \$ and also using escape codes.
198
199 config CONFIG_FEATURE_SH_EXTRA_QUIET
200         bool "Hide message on interactive shell startup"
201         default n
202         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
203         help
204           Remove the busybox introduction when starting a shell.
205
206 endmenu
207