Declare dependencies of command line editing in the build system
[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_SH_EXTRA_QUIET
141         bool "Hide message on interactive shell startup"
142         default n
143         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
144         help
145           Remove the busybox introduction when starting a shell.
146
147 config CONFIG_FEATURE_SH_STANDALONE_SHELL
148         bool "Standalone shell"
149         default n
150         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
151         help
152           Have all the busybox commands built into the shell, creating
153           a standalone shell.
154
155 config CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
156         bool "Standalone shell -- applets always win"
157         default n
158         depends on CONFIG_FEATURE_SH_STANDALONE_SHELL
159         help
160           Use a command builtin to the shell over one with the same name,
161           that may be on the system.
162
163 config CONFIG_FEATURE_COMMAND_EDITING
164         bool "command line editing"
165         default n
166         depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
167         help
168           Enable command editing in shell.
169
170 config CONFIG_FEATURE_COMMAND_HISTORY
171         int "history size"
172         default 15
173         depends on CONFIG_FEATURE_COMMAND_EDITING
174         help
175           Specify command history size in shell.
176
177 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
178         bool "history saving"
179         default n
180         depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
181         help
182           Enable history saving in ash shell.
183
184 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
185         bool "tab completion"
186         default n
187         depends on CONFIG_FEATURE_COMMAND_EDITING
188         help
189           Enable tab completion in shell.
190
191 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
192         bool "username completion"
193         default n
194         depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
195         help
196           Enable username completion in shell.
197
198 config CONFIG_FEATURE_SH_FANCY_PROMPT
199         bool "Fancy shell prompts"
200         default n
201         depends on CONFIG_FEATURE_COMMAND_EDITING
202         help
203           Setting this option allows for prompts to use things like \w and
204           \$ and also using escape codes.
205
206 endmenu