Annotation of /tags/mkinitrd-6_3_0/busybox/Config.in
Parent Directory | Revision Log
Revision 1139 -
(hide annotations)
(download)
Thu Aug 19 10:14:02 2010 UTC (14 years, 1 month ago) by niro
File size: 24156 byte(s)
Thu Aug 19 10:14:02 2010 UTC (14 years, 1 month ago) by niro
File size: 24156 byte(s)
tagged 'mkinitrd-6_3_0'
1 | niro | 532 | # |
2 | # For a description of the syntax of this configuration file, | ||
3 | # see scripts/kbuild/config-language.txt. | ||
4 | # | ||
5 | |||
6 | mainmenu "BusyBox Configuration" | ||
7 | |||
8 | config HAVE_DOT_CONFIG | ||
9 | bool | ||
10 | default y | ||
11 | |||
12 | menu "Busybox Settings" | ||
13 | |||
14 | menu "General Configuration" | ||
15 | |||
16 | config DESKTOP | ||
17 | bool "Enable options for full-blown desktop systems" | ||
18 | niro | 1123 | default y |
19 | niro | 532 | help |
20 | Enable options and features which are not essential. | ||
21 | Select this only if you plan to use busybox on full-blown | ||
22 | desktop machine with common Linux distro, not on an embedded box. | ||
23 | |||
24 | niro | 816 | config EXTRA_COMPAT |
25 | bool "Provide compatible behavior for rare corner cases (bigger code)" | ||
26 | default n | ||
27 | help | ||
28 | This option makes grep, sed etc handle rare corner cases | ||
29 | (embedded NUL bytes and such). This makes code bigger and uses | ||
30 | some GNU extensions in libc. You probably only need this option | ||
31 | if you plan to run busybox on desktop. | ||
32 | |||
33 | niro | 984 | config INCLUDE_SUSv2 |
34 | bool "Enable obsolete features removed before SUSv3" | ||
35 | default y | ||
36 | help | ||
37 | This option will enable backwards compatibility with SuSv2, | ||
38 | specifically, old-style numeric options ('command -1 <file>') | ||
39 | will be supported in head, tail, and fold. (Note: should | ||
40 | affect renice too.) | ||
41 | |||
42 | config USE_PORTABLE_CODE | ||
43 | bool "Avoid using GCC-specific code constructs" | ||
44 | niro | 816 | default n |
45 | help | ||
46 | niro | 984 | Use this option if you are trying to compile busybox with |
47 | compiler other than gcc. | ||
48 | If you do use gcc, this option may needlessly increase code size. | ||
49 | niro | 816 | |
50 | niro | 532 | choice |
51 | prompt "Buffer allocation policy" | ||
52 | default FEATURE_BUFFERS_USE_MALLOC | ||
53 | help | ||
54 | There are 3 ways BusyBox can handle buffer allocations: | ||
55 | - Use malloc. This costs code size for the call to xmalloc. | ||
56 | - Put them on stack. For some very small machines with limited stack | ||
57 | niro | 816 | space, this can be deadly. For most folks, this works just fine. |
58 | niro | 532 | - Put them in BSS. This works beautifully for computers with a real |
59 | MMU (and OS support), but wastes runtime RAM for uCLinux. This | ||
60 | behavior was the only one available for BusyBox versions 0.48 and | ||
61 | earlier. | ||
62 | |||
63 | config FEATURE_BUFFERS_USE_MALLOC | ||
64 | bool "Allocate with Malloc" | ||
65 | |||
66 | config FEATURE_BUFFERS_GO_ON_STACK | ||
67 | bool "Allocate on the Stack" | ||
68 | |||
69 | config FEATURE_BUFFERS_GO_IN_BSS | ||
70 | bool "Allocate in the .bss section" | ||
71 | |||
72 | endchoice | ||
73 | |||
74 | config SHOW_USAGE | ||
75 | bool "Show terse applet usage messages" | ||
76 | default y | ||
77 | help | ||
78 | All BusyBox applets will show help messages when invoked with | ||
79 | wrong arguments. You can turn off printing these terse usage | ||
80 | messages if you say no here. | ||
81 | This will save you up to 7k. | ||
82 | |||
83 | config FEATURE_VERBOSE_USAGE | ||
84 | bool "Show verbose applet usage messages" | ||
85 | niro | 1123 | default y |
86 | depends on SHOW_USAGE | ||
87 | niro | 532 | help |
88 | All BusyBox applets will show more verbose help messages when | ||
89 | niro | 816 | busybox is invoked with --help. This will add a lot of text to the |
90 | busybox binary. In the default configuration, this will add about | ||
91 | niro | 532 | 13k, but it can add much more depending on your configuration. |
92 | |||
93 | config FEATURE_COMPRESS_USAGE | ||
94 | bool "Store applet usage messages in compressed form" | ||
95 | default y | ||
96 | depends on SHOW_USAGE | ||
97 | help | ||
98 | Store usage messages in compressed form, uncompress them on-the-fly | ||
99 | when <applet> --help is called. | ||
100 | |||
101 | If you have a really tiny busybox with few applets enabled (and | ||
102 | bunzip2 isn't one of them), the overhead of the decompressor might | ||
103 | niro | 816 | be noticeable. Also, if you run executables directly from ROM |
104 | and have very little memory, this might not be a win. Otherwise, | ||
105 | niro | 532 | you probably want this. |
106 | |||
107 | config FEATURE_INSTALLER | ||
108 | bool "Support --install [-s] to install applet links at runtime" | ||
109 | niro | 1123 | default y |
110 | niro | 532 | help |
111 | niro | 816 | Enable 'busybox --install [-s]' support. This will allow you to use |
112 | niro | 532 | busybox at runtime to create hard links or symlinks for all the |
113 | niro | 816 | applets that are compiled into busybox. |
114 | niro | 532 | |
115 | config LOCALE_SUPPORT | ||
116 | bool "Enable locale support (system needs locale for this to work)" | ||
117 | default n | ||
118 | help | ||
119 | Enable this if your system has locale support and you would like | ||
120 | busybox to support locale settings. | ||
121 | |||
122 | niro | 1123 | config UNICODE_SUPPORT |
123 | niro | 984 | bool "Support Unicode" |
124 | niro | 1123 | default y |
125 | niro | 984 | help |
126 | This makes various applets aware that one byte is not | ||
127 | one character on screen. | ||
128 | |||
129 | Busybox aims to eventually work correctly with Unicode displays. | ||
130 | Any older encodings are not guaranteed to work. | ||
131 | Probably by the time when busybox will be fully Unicode-clean, | ||
132 | other encodings will be mainly of historic interest. | ||
133 | |||
134 | niro | 1123 | config UNICODE_USING_LOCALE |
135 | bool "Use libc routines for Unicode (else uses internal ones)" | ||
136 | default n | ||
137 | depends on UNICODE_SUPPORT && LOCALE_SUPPORT | ||
138 | help | ||
139 | With this option on, Unicode support is implemented using libc | ||
140 | routines. Otherwise, internal implementation is used. | ||
141 | Internal implementation is smaller. | ||
142 | |||
143 | niro | 984 | config FEATURE_CHECK_UNICODE_IN_ENV |
144 | bool "Check $LANG environment variable" | ||
145 | niro | 1123 | default n |
146 | depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE | ||
147 | niro | 984 | help |
148 | With this option on, Unicode support is activated | ||
149 | only if LANG variable has the value of the form "xxxx.utf8" | ||
150 | |||
151 | Otherwise, Unicode support will be always enabled and active. | ||
152 | |||
153 | niro | 1123 | config SUBST_WCHAR |
154 | int "Character code to substitute unprintable characters with" | ||
155 | depends on UNICODE_SUPPORT | ||
156 | default 63 | ||
157 | help | ||
158 | Typical values are 63 for '?' (works with any output device), | ||
159 | 30 for ASCII substitute control code, | ||
160 | 65533 (0xfffd) for Unicode replacement character. | ||
161 | |||
162 | config LAST_SUPPORTED_WCHAR | ||
163 | int "Range of supported Unicode characters" | ||
164 | depends on UNICODE_SUPPORT | ||
165 | default 767 | ||
166 | help | ||
167 | Any character with Unicode value bigger than this is assumed | ||
168 | to be non-printable on output device. Many applets replace | ||
169 | such chars with substitution character. | ||
170 | |||
171 | The idea is that many valid printable Unicode chars are | ||
172 | nevertheless are not displayed correctly. Think about | ||
173 | combining charachers, double-wide hieroglyphs, obscure | ||
174 | characters in dozens of ancient scripts... | ||
175 | Many terminals, terminal emulators, xterms etc will fail | ||
176 | to handle them correctly. Choose the smallest value | ||
177 | which suits your needs. | ||
178 | |||
179 | Typical values are: | ||
180 | 126 - ASCII only | ||
181 | 767 (0x2ff) - there are no combining chars in [0..767] range | ||
182 | (the range includes Latin 1, Latin Ext. A and B), | ||
183 | code is ~700 bytes smaller for this case. | ||
184 | 4351 (0x10ff) - there are no double-wide chars in [0..4351] range, | ||
185 | code is ~300 bytes smaller for this case. | ||
186 | 12799 (0x31ff) - nearly all non-ideographic characters are | ||
187 | available in [0..12799] range, including | ||
188 | East Asian scripts like katakana, hiragana, hangul, | ||
189 | bopomofo... | ||
190 | 0 - off, any valid printable Unicode character will be printed. | ||
191 | |||
192 | config UNICODE_COMBINING_WCHARS | ||
193 | bool "Allow zero-width Unicode characters on output" | ||
194 | default n | ||
195 | depends on UNICODE_SUPPORT | ||
196 | help | ||
197 | With this option off, any Unicode char with width of 0 | ||
198 | is substituted on output. | ||
199 | |||
200 | config UNICODE_WIDE_WCHARS | ||
201 | bool "Allow wide Unicode characters on output" | ||
202 | default n | ||
203 | depends on UNICODE_SUPPORT | ||
204 | help | ||
205 | With this option off, any Unicode char with width > 1 | ||
206 | is substituted on output. | ||
207 | |||
208 | config UNICODE_BIDI_SUPPORT | ||
209 | bool "Bidirectional character-aware line input" | ||
210 | default n | ||
211 | depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE | ||
212 | help | ||
213 | With this option on, right-to-left Unicode characters | ||
214 | are treated differently on input (e.g. cursor movement). | ||
215 | |||
216 | config UNICODE_NEUTRAL_TABLE | ||
217 | bool "In bidi input, support non-ASCII neutral chars too" | ||
218 | default n | ||
219 | depends on UNICODE_BIDI_SUPPORT | ||
220 | help | ||
221 | In most cases it's enough to treat only ASCII non-letters | ||
222 | (i.e. punctuation, numbers and space) as characters | ||
223 | with neutral directionality. | ||
224 | With this option on, more extensive (and bigger) table | ||
225 | of neutral chars will be used. | ||
226 | |||
227 | config UNICODE_PRESERVE_BROKEN | ||
228 | bool "Make it possible to enter sequences of chars which are not Unicode" | ||
229 | default n | ||
230 | depends on UNICODE_SUPPORT | ||
231 | help | ||
232 | With this option on, invalid UTF-8 bytes are not substituted | ||
233 | with the selected substitution character. | ||
234 | For example, this means that entering 'l', 's', ' ', 0xff, [Enter] | ||
235 | at shell prompt will list file named 0xff (single char name | ||
236 | with char value 255), not file named '?'. | ||
237 | |||
238 | niro | 984 | config LONG_OPTS |
239 | niro | 816 | bool "Support for --long-options" |
240 | niro | 532 | default y |
241 | help | ||
242 | Enable this if you want busybox applets to use the gnu --long-option | ||
243 | style, in addition to single character -a -b -c style options. | ||
244 | |||
245 | config FEATURE_DEVPTS | ||
246 | bool "Use the devpts filesystem for Unix98 PTYs" | ||
247 | default y | ||
248 | help | ||
249 | Enable if you want BusyBox to use Unix98 PTY support. If enabled, | ||
250 | busybox will use /dev/ptmx for the master side of the pseudoterminal | ||
251 | niro | 816 | and /dev/pts/<number> for the slave side. Otherwise, BSD style |
252 | niro | 532 | /dev/ttyp<number> will be used. To use this option, you should have |
253 | devpts mounted. | ||
254 | |||
255 | config FEATURE_CLEAN_UP | ||
256 | bool "Clean up all memory before exiting (usually not needed)" | ||
257 | default n | ||
258 | help | ||
259 | As a size optimization, busybox normally exits without explicitly | ||
260 | niro | 816 | freeing dynamically allocated memory or closing files. This saves |
261 | niro | 532 | space since the OS will clean up for us, but it can confuse debuggers |
262 | like valgrind, which report tons of memory and resource leaks. | ||
263 | |||
264 | Don't enable this unless you have a really good reason to clean | ||
265 | things up manually. | ||
266 | |||
267 | niro | 1123 | config FEATURE_UTMP |
268 | bool "Support utmp file" | ||
269 | default y | ||
270 | help | ||
271 | The file /var/run/utmp is used to track who is currently logged in. | ||
272 | With this option on, certain applets (getty, login, telnetd etc) | ||
273 | will create and delete entries there. | ||
274 | "who" applet requires this option. | ||
275 | |||
276 | config FEATURE_WTMP | ||
277 | bool "Support wtmp file" | ||
278 | default y | ||
279 | select FEATURE_UTMP | ||
280 | help | ||
281 | The file /var/run/wtmp is used to track when users have logged into | ||
282 | and logged out of the system. | ||
283 | With this option on, certain applets (getty, login, telnetd etc) | ||
284 | will append new entries there. | ||
285 | "last" applet requires this option. | ||
286 | |||
287 | niro | 816 | config FEATURE_PIDFILE |
288 | bool "Support writing pidfiles" | ||
289 | niro | 1123 | default y |
290 | niro | 816 | help |
291 | This option makes some applets (e.g. crond, syslogd, inetd) write | ||
292 | a pidfile in /var/run. Some applications rely on them. | ||
293 | |||
294 | niro | 532 | config FEATURE_SUID |
295 | bool "Support for SUID/SGID handling" | ||
296 | niro | 1123 | default y |
297 | niro | 532 | help |
298 | With this option you can install the busybox binary belonging | ||
299 | niro | 816 | to root with the suid bit set, and it will automatically drop |
300 | niro | 532 | priviledges for applets that don't need root access. |
301 | |||
302 | niro | 816 | If you are really paranoid and don't want to do this, build two |
303 | niro | 532 | busybox binaries with different applets in them (and the appropriate |
304 | symlinks pointing to each binary), and only set the suid bit on the | ||
305 | niro | 816 | one that needs it. The applets currently marked to need the suid bit |
306 | are: | ||
307 | niro | 532 | |
308 | niro | 816 | crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su, |
309 | traceroute, vlock. | ||
310 | niro | 532 | |
311 | config FEATURE_SUID_CONFIG | ||
312 | bool "Runtime SUID/SGID configuration via /etc/busybox.conf" | ||
313 | niro | 1123 | default y if FEATURE_SUID |
314 | niro | 532 | depends on FEATURE_SUID |
315 | help | ||
316 | Allow the SUID / SGID state of an applet to be determined at runtime | ||
317 | niro | 816 | by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) |
318 | niro | 532 | The format of this file is as follows: |
319 | |||
320 | <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>) | ||
321 | |||
322 | An example might help: | ||
323 | |||
324 | [SUID] | ||
325 | niro | 816 | su = ssx root.0 # applet su can be run by anyone and runs with |
326 | # euid=0/egid=0 | ||
327 | niro | 532 | su = ssx # exactly the same |
328 | |||
329 | niro | 816 | mount = sx- root.disk # applet mount can be run by root and members |
330 | # of group disk and runs with euid=0 | ||
331 | niro | 532 | |
332 | cp = --- # disable applet cp for everyone | ||
333 | |||
334 | The file has to be owned by user root, group root and has to be | ||
335 | writeable only by root: | ||
336 | niro | 816 | (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) |
337 | niro | 532 | The busybox executable has to be owned by user root, group |
338 | root and has to be setuid root for this to work: | ||
339 | niro | 816 | (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) |
340 | niro | 532 | |
341 | Robert 'sandman' Griebl has more information here: | ||
342 | <url: http://www.softforge.de/bb/suid.html >. | ||
343 | |||
344 | config FEATURE_SUID_CONFIG_QUIET | ||
345 | bool "Suppress warning message if /etc/busybox.conf is not readable" | ||
346 | default y | ||
347 | depends on FEATURE_SUID_CONFIG | ||
348 | help | ||
349 | niro | 816 | /etc/busybox.conf should be readable by the user needing the SUID, |
350 | check this option to avoid users to be notified about missing | ||
351 | permissions. | ||
352 | niro | 532 | |
353 | config SELINUX | ||
354 | bool "Support NSA Security Enhanced Linux" | ||
355 | default n | ||
356 | help | ||
357 | niro | 816 | Enable support for SELinux in applets ls, ps, and id. Also provide |
358 | niro | 532 | the option of compiling in SELinux applets. |
359 | |||
360 | If you do not have a complete SELinux userland installed, this stuff | ||
361 | will not compile. Go visit | ||
362 | http://www.nsa.gov/selinux/index.html | ||
363 | to download the necessary stuff to allow busybox to compile with | ||
364 | this option enabled. Specifially, libselinux 1.28 or better is | ||
365 | directly required by busybox. If the installation is located in a | ||
366 | non-standard directory, provide it by invoking make as follows: | ||
367 | CFLAGS=-I<libselinux-include-path> \ | ||
368 | LDFLAGS=-L<libselinux-lib-path> \ | ||
369 | make | ||
370 | |||
371 | Most people will leave this set to 'N'. | ||
372 | |||
373 | niro | 816 | config FEATURE_PREFER_APPLETS |
374 | bool "exec prefers applets" | ||
375 | default n | ||
376 | help | ||
377 | This is an experimental option which directs applets about to | ||
378 | call 'exec' to try and find an applicable busybox applet before | ||
379 | searching the PATH. This is typically done by exec'ing | ||
380 | /proc/self/exe. | ||
381 | This may affect shell, find -exec, xargs and similar applets. | ||
382 | They will use applets even if /bin/<applet> -> busybox link | ||
383 | is missing (or is not a link to busybox). However, this causes | ||
384 | problems in chroot jails without mounted /proc and with ps/top | ||
385 | (command name can be shown as 'exe' for applets started this way). | ||
386 | |||
387 | niro | 532 | config BUSYBOX_EXEC_PATH |
388 | string "Path to BusyBox executable" | ||
389 | default "/proc/self/exe" | ||
390 | help | ||
391 | When Busybox applets need to run other busybox applets, BusyBox | ||
392 | niro | 816 | sometimes needs to exec() itself. When the /proc filesystem is |
393 | niro | 532 | mounted, /proc/self/exe always points to the currently running |
394 | niro | 816 | executable. If you haven't got /proc, set this to wherever you |
395 | niro | 532 | want to run BusyBox from. |
396 | |||
397 | niro | 816 | # These are auto-selected by other options |
398 | |||
399 | config FEATURE_SYSLOG | ||
400 | bool #No description makes it a hidden option | ||
401 | default n | ||
402 | #help | ||
403 | # This option is auto-selected when you select any applet which may | ||
404 | # send its output to syslog. You do not need to select it manually. | ||
405 | |||
406 | config FEATURE_HAVE_RPC | ||
407 | bool #No description makes it a hidden option | ||
408 | default n | ||
409 | #help | ||
410 | # This is automatically selected if any of enabled applets need it. | ||
411 | # You do not need to select it manually. | ||
412 | |||
413 | niro | 532 | endmenu |
414 | |||
415 | menu 'Build Options' | ||
416 | |||
417 | config STATIC | ||
418 | bool "Build BusyBox as a static binary (no shared libs)" | ||
419 | niro | 984 | default y |
420 | niro | 532 | help |
421 | If you want to build a static BusyBox binary, which does not | ||
422 | use or require any shared libraries, then enable this option. | ||
423 | This can cause BusyBox to be considerably larger, so you should | ||
424 | leave this option false unless you have a good reason (i.e. | ||
425 | your target platform does not support shared libraries, or | ||
426 | you are building an initrd which doesn't need anything but | ||
427 | BusyBox, etc). | ||
428 | |||
429 | Most people will leave this set to 'N'. | ||
430 | |||
431 | niro | 816 | config PIE |
432 | bool "Build BusyBox as a position independent executable" | ||
433 | default n | ||
434 | depends on !STATIC | ||
435 | help | ||
436 | (TODO: what is it and why/when is it useful?) | ||
437 | Most people will leave this set to 'N'. | ||
438 | |||
439 | config NOMMU | ||
440 | bool "Force NOMMU build" | ||
441 | default n | ||
442 | help | ||
443 | Busybox tries to detect whether architecture it is being | ||
444 | built against supports MMU or not. If this detection fails, | ||
445 | or if you want to build NOMMU version of busybox for testing, | ||
446 | you may force NOMMU build here. | ||
447 | |||
448 | Most people will leave this set to 'N'. | ||
449 | |||
450 | # PIE can be made to work with BUILD_LIBBUSYBOX, but currently | ||
451 | # build system does not support that | ||
452 | niro | 532 | config BUILD_LIBBUSYBOX |
453 | bool "Build shared libbusybox" | ||
454 | default n | ||
455 | niro | 816 | depends on !FEATURE_PREFER_APPLETS && !PIE && !STATIC |
456 | niro | 532 | help |
457 | niro | 816 | Build a shared library libbusybox.so.N.N.N which contains all |
458 | busybox code. | ||
459 | niro | 532 | |
460 | niro | 816 | This feature allows every applet to be built as a tiny |
461 | separate executable. Enabling it for "one big busybox binary" | ||
462 | approach serves no purpose and increases code size. | ||
463 | You should almost certainly say "no" to this. | ||
464 | niro | 532 | |
465 | niro | 816 | ### config FEATURE_FULL_LIBBUSYBOX |
466 | ### bool "Feature-complete libbusybox" | ||
467 | ### default n if !FEATURE_SHARED_BUSYBOX | ||
468 | ### depends on BUILD_LIBBUSYBOX | ||
469 | ### help | ||
470 | ### Build a libbusybox with the complete feature-set, disregarding | ||
471 | ### the actually selected config. | ||
472 | ### | ||
473 | ### Normally, libbusybox will only contain the features which are | ||
474 | ### used by busybox itself. If you plan to write a separate | ||
475 | ### standalone application which uses libbusybox say 'Y'. | ||
476 | ### | ||
477 | ### Note: libbusybox is GPL, not LGPL, and exports no stable API that | ||
478 | ### might act as a copyright barrier. We can and will modify the | ||
479 | ### exported function set between releases (even minor version number | ||
480 | ### changes), and happily break out-of-tree features. | ||
481 | ### | ||
482 | ### Say 'N' if in doubt. | ||
483 | |||
484 | config FEATURE_INDIVIDUAL | ||
485 | bool "Produce a binary for each applet, linked against libbusybox" | ||
486 | default y | ||
487 | niro | 532 | depends on BUILD_LIBBUSYBOX |
488 | help | ||
489 | niro | 816 | If your CPU architecture doesn't allow for sharing text/rodata |
490 | sections of running binaries, but allows for runtime dynamic | ||
491 | libraries, this option will allow you to reduce memory footprint | ||
492 | when you have many different applets running at once. | ||
493 | niro | 532 | |
494 | niro | 816 | If your CPU architecture allows for sharing text/rodata, |
495 | having single binary is more optimal. | ||
496 | niro | 532 | |
497 | niro | 816 | Each applet will be a tiny program, dynamically linked |
498 | against libbusybox.so.N.N.N. | ||
499 | niro | 532 | |
500 | niro | 816 | You need to have a working dynamic linker. |
501 | niro | 532 | |
502 | config FEATURE_SHARED_BUSYBOX | ||
503 | niro | 816 | bool "Produce additional busybox binary linked against libbusybox" |
504 | default y | ||
505 | depends on BUILD_LIBBUSYBOX | ||
506 | niro | 532 | help |
507 | niro | 816 | Build busybox, dynamically linked against libbusybox.so.N.N.N. |
508 | niro | 532 | |
509 | niro | 816 | You need to have a working dynamic linker. |
510 | |||
511 | ### config BUILD_AT_ONCE | ||
512 | ### bool "Compile all sources at once" | ||
513 | ### default n | ||
514 | ### help | ||
515 | ### Normally each source-file is compiled with one invocation of | ||
516 | ### the compiler. | ||
517 | ### If you set this option, all sources are compiled at once. | ||
518 | ### This gives the compiler more opportunities to optimize which can | ||
519 | ### result in smaller and/or faster binaries. | ||
520 | ### | ||
521 | ### Setting this option will consume alot of memory, e.g. if you | ||
522 | ### enable all applets with all features, gcc uses more than 300MB | ||
523 | ### RAM during compilation of busybox. | ||
524 | ### | ||
525 | ### This option is most likely only beneficial for newer compilers | ||
526 | ### such as gcc-4.1 and above. | ||
527 | ### | ||
528 | ### Say 'N' unless you know what you are doing. | ||
529 | |||
530 | niro | 532 | config LFS |
531 | bool "Build with Large File Support (for accessing files > 2 GB)" | ||
532 | niro | 1123 | default y |
533 | niro | 532 | select FDISK_SUPPORT_LARGE_DISKS |
534 | help | ||
535 | If you want to build BusyBox with large file support, then enable | ||
536 | niro | 816 | this option. This will have no effect if your kernel or your C |
537 | library lacks large file support for large files. Some of the | ||
538 | niro | 532 | programs that can benefit from large file support include dd, gzip, |
539 | niro | 816 | cp, mount, tar, and many others. If you want to access files larger |
540 | than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'. | ||
541 | niro | 532 | |
542 | niro | 816 | config CROSS_COMPILER_PREFIX |
543 | string "Cross Compiler prefix" | ||
544 | default "" | ||
545 | niro | 532 | help |
546 | niro | 816 | If you want to build BusyBox with a cross compiler, then you |
547 | will need to set this to the cross-compiler prefix, for example, | ||
548 | "i386-uclibc-". | ||
549 | niro | 532 | |
550 | niro | 816 | Note that CROSS_COMPILE environment variable or |
551 | "make CROSS_COMPILE=xxx ..." will override this selection. | ||
552 | niro | 532 | |
553 | niro | 816 | Native builds leave this empty. |
554 | niro | 532 | |
555 | niro | 984 | config EXTRA_CFLAGS |
556 | string "Additional CFLAGS" | ||
557 | default "" | ||
558 | help | ||
559 | Additional CFLAGS to pass to the compiler verbatim. | ||
560 | |||
561 | niro | 532 | endmenu |
562 | |||
563 | menu 'Debugging Options' | ||
564 | |||
565 | config DEBUG | ||
566 | bool "Build BusyBox with extra Debugging symbols" | ||
567 | default n | ||
568 | help | ||
569 | Say Y here if you wish to examine BusyBox internals while applets are | ||
570 | niro | 816 | running. This increases the size of the binary considerably, and |
571 | should only be used when doing development. If you are doing | ||
572 | niro | 532 | development and want to debug BusyBox, answer Y. |
573 | |||
574 | Most people should answer N. | ||
575 | |||
576 | config DEBUG_PESSIMIZE | ||
577 | niro | 816 | bool "Disable compiler optimizations" |
578 | niro | 532 | default n |
579 | depends on DEBUG | ||
580 | help | ||
581 | The compiler's optimization of source code can eliminate and reorder | ||
582 | code, resulting in an executable that's hard to understand when | ||
583 | niro | 816 | stepping through it with a debugger. This switches it off, resulting |
584 | niro | 532 | in a much bigger executable that more closely matches the source |
585 | code. | ||
586 | |||
587 | niro | 816 | config WERROR |
588 | bool "Abort compilation on any warning" | ||
589 | default n | ||
590 | help | ||
591 | Selecting this will add -Werror to gcc command line. | ||
592 | |||
593 | Most people should answer N. | ||
594 | |||
595 | niro | 532 | choice |
596 | prompt "Additional debugging library" | ||
597 | default NO_DEBUG_LIB | ||
598 | help | ||
599 | Using an additional debugging library will make BusyBox become | ||
600 | niro | 816 | considerable larger and will cause it to run more slowly. You |
601 | niro | 532 | should always leave this option disabled for production use. |
602 | |||
603 | dmalloc support: | ||
604 | ---------------- | ||
605 | This enables compiling with dmalloc ( http://dmalloc.com/ ) | ||
606 | which is an excellent public domain mem leak and malloc problem | ||
607 | niro | 816 | detector. To enable dmalloc, before running busybox you will |
608 | niro | 532 | want to properly set your environment, for example: |
609 | export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile | ||
610 | The 'debug=' value is generated using the following command | ||
611 | niro | 816 | dmalloc -p log-stats -p log-non-free -p log-bad-space \ |
612 | -p log-elapsed-time -p check-fence -p check-heap \ | ||
613 | -p check-lists -p check-blank -p check-funcs -p realloc-copy \ | ||
614 | -p allow-free-null | ||
615 | niro | 532 | |
616 | Electric-fence support: | ||
617 | ----------------------- | ||
618 | niro | 816 | This enables compiling with Electric-fence support. Electric |
619 | niro | 532 | fence is another very useful malloc debugging library which uses |
620 | your computer's virtual memory hardware to detect illegal memory | ||
621 | niro | 816 | accesses. This support will make BusyBox be considerable larger |
622 | niro | 532 | and run slower, so you should leave this option disabled unless |
623 | you are hunting a hard to find memory problem. | ||
624 | |||
625 | |||
626 | config NO_DEBUG_LIB | ||
627 | bool "None" | ||
628 | |||
629 | config DMALLOC | ||
630 | bool "Dmalloc" | ||
631 | |||
632 | config EFENCE | ||
633 | bool "Electric-fence" | ||
634 | |||
635 | endchoice | ||
636 | |||
637 | niro | 816 | ### config PARSE |
638 | niro | 984 | ### bool "Uniform config file parser debugging applet: parse" |
639 | niro | 816 | |
640 | niro | 532 | endmenu |
641 | |||
642 | menu 'Installation Options' | ||
643 | |||
644 | config INSTALL_NO_USR | ||
645 | bool "Don't use /usr" | ||
646 | default n | ||
647 | help | ||
648 | Disable use of /usr. Don't activate this option if you don't know | ||
649 | that you really want this behaviour. | ||
650 | |||
651 | choice | ||
652 | niro | 816 | prompt "Applets links" |
653 | default INSTALL_APPLET_SYMLINKS | ||
654 | help | ||
655 | Choose how you install applets links. | ||
656 | niro | 532 | |
657 | config INSTALL_APPLET_SYMLINKS | ||
658 | niro | 816 | bool "as soft-links" |
659 | help | ||
660 | Install applets as soft-links to the busybox binary. This needs some | ||
661 | free inodes on the filesystem, but might help with filesystem | ||
662 | generators that can't cope with hard-links. | ||
663 | niro | 532 | |
664 | config INSTALL_APPLET_HARDLINKS | ||
665 | niro | 816 | bool "as hard-links" |
666 | help | ||
667 | Install applets as hard-links to the busybox binary. This might | ||
668 | count on a filesystem with few inodes. | ||
669 | niro | 532 | |
670 | niro | 816 | config INSTALL_APPLET_SCRIPT_WRAPPERS |
671 | bool "as script wrappers" | ||
672 | help | ||
673 | Install applets as script wrappers that call the busybox binary. | ||
674 | |||
675 | niro | 532 | config INSTALL_APPLET_DONT |
676 | niro | 816 | bool "not installed" |
677 | depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE || FEATURE_PREFER_APPLETS | ||
678 | help | ||
679 | Do not install applet links. Useful when using the -install feature | ||
680 | or a standalone shell for rescue purposes. | ||
681 | niro | 532 | |
682 | endchoice | ||
683 | |||
684 | niro | 816 | choice |
685 | prompt "/bin/sh applet link" | ||
686 | default INSTALL_SH_APPLET_SYMLINK | ||
687 | depends on INSTALL_APPLET_SCRIPT_WRAPPERS | ||
688 | help | ||
689 | Choose how you install /bin/sh applet link. | ||
690 | |||
691 | config INSTALL_SH_APPLET_SYMLINK | ||
692 | bool "as soft-link" | ||
693 | help | ||
694 | Install /bin/sh applet as soft-link to the busybox binary. | ||
695 | |||
696 | config INSTALL_SH_APPLET_HARDLINK | ||
697 | bool "as hard-link" | ||
698 | help | ||
699 | Install /bin/sh applet as hard-link to the busybox binary. | ||
700 | |||
701 | config INSTALL_SH_APPLET_SCRIPT_WRAPPER | ||
702 | bool "as script wrapper" | ||
703 | help | ||
704 | Install /bin/sh applet as script wrapper that call the busybox | ||
705 | binary. | ||
706 | |||
707 | endchoice | ||
708 | |||
709 | niro | 532 | config PREFIX |
710 | string "BusyBox installation prefix" | ||
711 | default "./_install" | ||
712 | help | ||
713 | Define your directory to install BusyBox files/subdirs in. | ||
714 | |||
715 | endmenu | ||
716 | |||
717 | source libbb/Config.in | ||
718 | |||
719 | endmenu | ||
720 | |||
721 | comment "Applets" | ||
722 | |||
723 | source archival/Config.in | ||
724 | source coreutils/Config.in | ||
725 | source console-tools/Config.in | ||
726 | source debianutils/Config.in | ||
727 | source editors/Config.in | ||
728 | source findutils/Config.in | ||
729 | source init/Config.in | ||
730 | source loginutils/Config.in | ||
731 | source e2fsprogs/Config.in | ||
732 | source modutils/Config.in | ||
733 | source util-linux/Config.in | ||
734 | source miscutils/Config.in | ||
735 | source networking/Config.in | ||
736 | niro | 816 | source printutils/Config.in |
737 | source mailutils/Config.in | ||
738 | niro | 532 | source procps/Config.in |
739 | niro | 816 | source runit/Config.in |
740 | source selinux/Config.in | ||
741 | niro | 532 | source shell/Config.in |
742 | source sysklogd/Config.in |