Contents of /tags/mkinitrd-6_1_6/busybox/Config.in
Parent Directory | Revision Log
Revision 840 -
(show annotations)
(download)
Mon May 4 16:31:17 2009 UTC (15 years, 4 months ago) by niro
Original Path: trunk/mkinitrd-magellan/busybox/Config.in
File size: 19554 byte(s)
Mon May 4 16:31:17 2009 UTC (15 years, 4 months ago) by niro
Original Path: trunk/mkinitrd-magellan/busybox/Config.in
File size: 19554 byte(s)
-changed config to build a static busybox binary as default
1 | # |
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 | default n |
19 | 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 | 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 | config FEATURE_ASSUME_UNICODE |
34 | bool "Assume that 1:1 char/glyph correspondence is not true" |
35 | default n |
36 | help |
37 | This makes various applets aware that one byte is not |
38 | one character on screen. |
39 | |
40 | Busybox aims to eventually work correctly with Unicode displays. |
41 | Any older encodings are not guaranteed to work. |
42 | Probably by the time when busybox will be fully Unicode-clean, |
43 | other encodings will be mainly of historic interest. |
44 | |
45 | choice |
46 | prompt "Buffer allocation policy" |
47 | default FEATURE_BUFFERS_USE_MALLOC |
48 | help |
49 | There are 3 ways BusyBox can handle buffer allocations: |
50 | - Use malloc. This costs code size for the call to xmalloc. |
51 | - Put them on stack. For some very small machines with limited stack |
52 | space, this can be deadly. For most folks, this works just fine. |
53 | - Put them in BSS. This works beautifully for computers with a real |
54 | MMU (and OS support), but wastes runtime RAM for uCLinux. This |
55 | behavior was the only one available for BusyBox versions 0.48 and |
56 | earlier. |
57 | |
58 | config FEATURE_BUFFERS_USE_MALLOC |
59 | bool "Allocate with Malloc" |
60 | |
61 | config FEATURE_BUFFERS_GO_ON_STACK |
62 | bool "Allocate on the Stack" |
63 | |
64 | config FEATURE_BUFFERS_GO_IN_BSS |
65 | bool "Allocate in the .bss section" |
66 | |
67 | endchoice |
68 | |
69 | config SHOW_USAGE |
70 | bool "Show terse applet usage messages" |
71 | default y |
72 | help |
73 | All BusyBox applets will show help messages when invoked with |
74 | wrong arguments. You can turn off printing these terse usage |
75 | messages if you say no here. |
76 | This will save you up to 7k. |
77 | |
78 | config FEATURE_VERBOSE_USAGE |
79 | bool "Show verbose applet usage messages" |
80 | default n |
81 | select SHOW_USAGE |
82 | help |
83 | All BusyBox applets will show more verbose help messages when |
84 | busybox is invoked with --help. This will add a lot of text to the |
85 | busybox binary. In the default configuration, this will add about |
86 | 13k, but it can add much more depending on your configuration. |
87 | |
88 | config FEATURE_COMPRESS_USAGE |
89 | bool "Store applet usage messages in compressed form" |
90 | default y |
91 | depends on SHOW_USAGE |
92 | help |
93 | Store usage messages in compressed form, uncompress them on-the-fly |
94 | when <applet> --help is called. |
95 | |
96 | If you have a really tiny busybox with few applets enabled (and |
97 | bunzip2 isn't one of them), the overhead of the decompressor might |
98 | be noticeable. Also, if you run executables directly from ROM |
99 | and have very little memory, this might not be a win. Otherwise, |
100 | you probably want this. |
101 | |
102 | config FEATURE_INSTALLER |
103 | bool "Support --install [-s] to install applet links at runtime" |
104 | default n |
105 | help |
106 | Enable 'busybox --install [-s]' support. This will allow you to use |
107 | busybox at runtime to create hard links or symlinks for all the |
108 | applets that are compiled into busybox. |
109 | |
110 | config LOCALE_SUPPORT |
111 | bool "Enable locale support (system needs locale for this to work)" |
112 | default n |
113 | help |
114 | Enable this if your system has locale support and you would like |
115 | busybox to support locale settings. |
116 | |
117 | config GETOPT_LONG |
118 | bool "Support for --long-options" |
119 | default y |
120 | help |
121 | Enable this if you want busybox applets to use the gnu --long-option |
122 | style, in addition to single character -a -b -c style options. |
123 | |
124 | config FEATURE_DEVPTS |
125 | bool "Use the devpts filesystem for Unix98 PTYs" |
126 | default y |
127 | help |
128 | Enable if you want BusyBox to use Unix98 PTY support. If enabled, |
129 | busybox will use /dev/ptmx for the master side of the pseudoterminal |
130 | and /dev/pts/<number> for the slave side. Otherwise, BSD style |
131 | /dev/ttyp<number> will be used. To use this option, you should have |
132 | devpts mounted. |
133 | |
134 | config FEATURE_CLEAN_UP |
135 | bool "Clean up all memory before exiting (usually not needed)" |
136 | default n |
137 | help |
138 | As a size optimization, busybox normally exits without explicitly |
139 | freeing dynamically allocated memory or closing files. This saves |
140 | space since the OS will clean up for us, but it can confuse debuggers |
141 | like valgrind, which report tons of memory and resource leaks. |
142 | |
143 | Don't enable this unless you have a really good reason to clean |
144 | things up manually. |
145 | |
146 | config FEATURE_PIDFILE |
147 | bool "Support writing pidfiles" |
148 | default n |
149 | help |
150 | This option makes some applets (e.g. crond, syslogd, inetd) write |
151 | a pidfile in /var/run. Some applications rely on them. |
152 | |
153 | config FEATURE_SUID |
154 | bool "Support for SUID/SGID handling" |
155 | default n |
156 | help |
157 | With this option you can install the busybox binary belonging |
158 | to root with the suid bit set, and it will automatically drop |
159 | priviledges for applets that don't need root access. |
160 | |
161 | If you are really paranoid and don't want to do this, build two |
162 | busybox binaries with different applets in them (and the appropriate |
163 | symlinks pointing to each binary), and only set the suid bit on the |
164 | one that needs it. The applets currently marked to need the suid bit |
165 | are: |
166 | |
167 | crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su, |
168 | traceroute, vlock. |
169 | |
170 | config FEATURE_SUID_CONFIG |
171 | bool "Runtime SUID/SGID configuration via /etc/busybox.conf" |
172 | default n if FEATURE_SUID |
173 | depends on FEATURE_SUID |
174 | help |
175 | Allow the SUID / SGID state of an applet to be determined at runtime |
176 | by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) |
177 | The format of this file is as follows: |
178 | |
179 | <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>) |
180 | |
181 | An example might help: |
182 | |
183 | [SUID] |
184 | su = ssx root.0 # applet su can be run by anyone and runs with |
185 | # euid=0/egid=0 |
186 | su = ssx # exactly the same |
187 | |
188 | mount = sx- root.disk # applet mount can be run by root and members |
189 | # of group disk and runs with euid=0 |
190 | |
191 | cp = --- # disable applet cp for everyone |
192 | |
193 | The file has to be owned by user root, group root and has to be |
194 | writeable only by root: |
195 | (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) |
196 | The busybox executable has to be owned by user root, group |
197 | root and has to be setuid root for this to work: |
198 | (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) |
199 | |
200 | Robert 'sandman' Griebl has more information here: |
201 | <url: http://www.softforge.de/bb/suid.html >. |
202 | |
203 | config FEATURE_SUID_CONFIG_QUIET |
204 | bool "Suppress warning message if /etc/busybox.conf is not readable" |
205 | default y |
206 | depends on FEATURE_SUID_CONFIG |
207 | help |
208 | /etc/busybox.conf should be readable by the user needing the SUID, |
209 | check this option to avoid users to be notified about missing |
210 | permissions. |
211 | |
212 | config SELINUX |
213 | bool "Support NSA Security Enhanced Linux" |
214 | default n |
215 | help |
216 | Enable support for SELinux in applets ls, ps, and id. Also provide |
217 | the option of compiling in SELinux applets. |
218 | |
219 | If you do not have a complete SELinux userland installed, this stuff |
220 | will not compile. Go visit |
221 | http://www.nsa.gov/selinux/index.html |
222 | to download the necessary stuff to allow busybox to compile with |
223 | this option enabled. Specifially, libselinux 1.28 or better is |
224 | directly required by busybox. If the installation is located in a |
225 | non-standard directory, provide it by invoking make as follows: |
226 | CFLAGS=-I<libselinux-include-path> \ |
227 | LDFLAGS=-L<libselinux-lib-path> \ |
228 | make |
229 | |
230 | Most people will leave this set to 'N'. |
231 | |
232 | config FEATURE_PREFER_APPLETS |
233 | bool "exec prefers applets" |
234 | default n |
235 | help |
236 | This is an experimental option which directs applets about to |
237 | call 'exec' to try and find an applicable busybox applet before |
238 | searching the PATH. This is typically done by exec'ing |
239 | /proc/self/exe. |
240 | This may affect shell, find -exec, xargs and similar applets. |
241 | They will use applets even if /bin/<applet> -> busybox link |
242 | is missing (or is not a link to busybox). However, this causes |
243 | problems in chroot jails without mounted /proc and with ps/top |
244 | (command name can be shown as 'exe' for applets started this way). |
245 | |
246 | config BUSYBOX_EXEC_PATH |
247 | string "Path to BusyBox executable" |
248 | default "/proc/self/exe" |
249 | help |
250 | When Busybox applets need to run other busybox applets, BusyBox |
251 | sometimes needs to exec() itself. When the /proc filesystem is |
252 | mounted, /proc/self/exe always points to the currently running |
253 | executable. If you haven't got /proc, set this to wherever you |
254 | want to run BusyBox from. |
255 | |
256 | # These are auto-selected by other options |
257 | |
258 | config FEATURE_SYSLOG |
259 | bool #No description makes it a hidden option |
260 | default n |
261 | #help |
262 | # This option is auto-selected when you select any applet which may |
263 | # send its output to syslog. You do not need to select it manually. |
264 | |
265 | config FEATURE_HAVE_RPC |
266 | bool #No description makes it a hidden option |
267 | default n |
268 | #help |
269 | # This is automatically selected if any of enabled applets need it. |
270 | # You do not need to select it manually. |
271 | |
272 | endmenu |
273 | |
274 | menu 'Build Options' |
275 | |
276 | config STATIC |
277 | bool "Build BusyBox as a static binary (no shared libs)" |
278 | default y |
279 | help |
280 | If you want to build a static BusyBox binary, which does not |
281 | use or require any shared libraries, then enable this option. |
282 | This can cause BusyBox to be considerably larger, so you should |
283 | leave this option false unless you have a good reason (i.e. |
284 | your target platform does not support shared libraries, or |
285 | you are building an initrd which doesn't need anything but |
286 | BusyBox, etc). |
287 | |
288 | Most people will leave this set to 'N'. |
289 | |
290 | config PIE |
291 | bool "Build BusyBox as a position independent executable" |
292 | default n |
293 | depends on !STATIC |
294 | help |
295 | (TODO: what is it and why/when is it useful?) |
296 | Most people will leave this set to 'N'. |
297 | |
298 | config NOMMU |
299 | bool "Force NOMMU build" |
300 | default n |
301 | help |
302 | Busybox tries to detect whether architecture it is being |
303 | built against supports MMU or not. If this detection fails, |
304 | or if you want to build NOMMU version of busybox for testing, |
305 | you may force NOMMU build here. |
306 | |
307 | Most people will leave this set to 'N'. |
308 | |
309 | # PIE can be made to work with BUILD_LIBBUSYBOX, but currently |
310 | # build system does not support that |
311 | config BUILD_LIBBUSYBOX |
312 | bool "Build shared libbusybox" |
313 | default n |
314 | depends on !FEATURE_PREFER_APPLETS && !PIE && !STATIC |
315 | help |
316 | Build a shared library libbusybox.so.N.N.N which contains all |
317 | busybox code. |
318 | |
319 | This feature allows every applet to be built as a tiny |
320 | separate executable. Enabling it for "one big busybox binary" |
321 | approach serves no purpose and increases code size. |
322 | You should almost certainly say "no" to this. |
323 | |
324 | ### config FEATURE_FULL_LIBBUSYBOX |
325 | ### bool "Feature-complete libbusybox" |
326 | ### default n if !FEATURE_SHARED_BUSYBOX |
327 | ### depends on BUILD_LIBBUSYBOX |
328 | ### help |
329 | ### Build a libbusybox with the complete feature-set, disregarding |
330 | ### the actually selected config. |
331 | ### |
332 | ### Normally, libbusybox will only contain the features which are |
333 | ### used by busybox itself. If you plan to write a separate |
334 | ### standalone application which uses libbusybox say 'Y'. |
335 | ### |
336 | ### Note: libbusybox is GPL, not LGPL, and exports no stable API that |
337 | ### might act as a copyright barrier. We can and will modify the |
338 | ### exported function set between releases (even minor version number |
339 | ### changes), and happily break out-of-tree features. |
340 | ### |
341 | ### Say 'N' if in doubt. |
342 | |
343 | config FEATURE_INDIVIDUAL |
344 | bool "Produce a binary for each applet, linked against libbusybox" |
345 | default y |
346 | depends on BUILD_LIBBUSYBOX |
347 | help |
348 | If your CPU architecture doesn't allow for sharing text/rodata |
349 | sections of running binaries, but allows for runtime dynamic |
350 | libraries, this option will allow you to reduce memory footprint |
351 | when you have many different applets running at once. |
352 | |
353 | If your CPU architecture allows for sharing text/rodata, |
354 | having single binary is more optimal. |
355 | |
356 | Each applet will be a tiny program, dynamically linked |
357 | against libbusybox.so.N.N.N. |
358 | |
359 | You need to have a working dynamic linker. |
360 | |
361 | config FEATURE_SHARED_BUSYBOX |
362 | bool "Produce additional busybox binary linked against libbusybox" |
363 | default y |
364 | depends on BUILD_LIBBUSYBOX |
365 | help |
366 | Build busybox, dynamically linked against libbusybox.so.N.N.N. |
367 | |
368 | You need to have a working dynamic linker. |
369 | |
370 | ### config BUILD_AT_ONCE |
371 | ### bool "Compile all sources at once" |
372 | ### default n |
373 | ### help |
374 | ### Normally each source-file is compiled with one invocation of |
375 | ### the compiler. |
376 | ### If you set this option, all sources are compiled at once. |
377 | ### This gives the compiler more opportunities to optimize which can |
378 | ### result in smaller and/or faster binaries. |
379 | ### |
380 | ### Setting this option will consume alot of memory, e.g. if you |
381 | ### enable all applets with all features, gcc uses more than 300MB |
382 | ### RAM during compilation of busybox. |
383 | ### |
384 | ### This option is most likely only beneficial for newer compilers |
385 | ### such as gcc-4.1 and above. |
386 | ### |
387 | ### Say 'N' unless you know what you are doing. |
388 | |
389 | config LFS |
390 | bool "Build with Large File Support (for accessing files > 2 GB)" |
391 | default n |
392 | select FDISK_SUPPORT_LARGE_DISKS |
393 | help |
394 | If you want to build BusyBox with large file support, then enable |
395 | this option. This will have no effect if your kernel or your C |
396 | library lacks large file support for large files. Some of the |
397 | programs that can benefit from large file support include dd, gzip, |
398 | cp, mount, tar, and many others. If you want to access files larger |
399 | than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'. |
400 | |
401 | config CROSS_COMPILER_PREFIX |
402 | string "Cross Compiler prefix" |
403 | default "" |
404 | help |
405 | If you want to build BusyBox with a cross compiler, then you |
406 | will need to set this to the cross-compiler prefix, for example, |
407 | "i386-uclibc-". |
408 | |
409 | Note that CROSS_COMPILE environment variable or |
410 | "make CROSS_COMPILE=xxx ..." will override this selection. |
411 | |
412 | Native builds leave this empty. |
413 | |
414 | endmenu |
415 | |
416 | menu 'Debugging Options' |
417 | |
418 | config DEBUG |
419 | bool "Build BusyBox with extra Debugging symbols" |
420 | default n |
421 | help |
422 | Say Y here if you wish to examine BusyBox internals while applets are |
423 | running. This increases the size of the binary considerably, and |
424 | should only be used when doing development. If you are doing |
425 | development and want to debug BusyBox, answer Y. |
426 | |
427 | Most people should answer N. |
428 | |
429 | config DEBUG_PESSIMIZE |
430 | bool "Disable compiler optimizations" |
431 | default n |
432 | depends on DEBUG |
433 | help |
434 | The compiler's optimization of source code can eliminate and reorder |
435 | code, resulting in an executable that's hard to understand when |
436 | stepping through it with a debugger. This switches it off, resulting |
437 | in a much bigger executable that more closely matches the source |
438 | code. |
439 | |
440 | config WERROR |
441 | bool "Abort compilation on any warning" |
442 | default n |
443 | help |
444 | Selecting this will add -Werror to gcc command line. |
445 | |
446 | Most people should answer N. |
447 | |
448 | choice |
449 | prompt "Additional debugging library" |
450 | default NO_DEBUG_LIB |
451 | help |
452 | Using an additional debugging library will make BusyBox become |
453 | considerable larger and will cause it to run more slowly. You |
454 | should always leave this option disabled for production use. |
455 | |
456 | dmalloc support: |
457 | ---------------- |
458 | This enables compiling with dmalloc ( http://dmalloc.com/ ) |
459 | which is an excellent public domain mem leak and malloc problem |
460 | detector. To enable dmalloc, before running busybox you will |
461 | want to properly set your environment, for example: |
462 | export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile |
463 | The 'debug=' value is generated using the following command |
464 | dmalloc -p log-stats -p log-non-free -p log-bad-space \ |
465 | -p log-elapsed-time -p check-fence -p check-heap \ |
466 | -p check-lists -p check-blank -p check-funcs -p realloc-copy \ |
467 | -p allow-free-null |
468 | |
469 | Electric-fence support: |
470 | ----------------------- |
471 | This enables compiling with Electric-fence support. Electric |
472 | fence is another very useful malloc debugging library which uses |
473 | your computer's virtual memory hardware to detect illegal memory |
474 | accesses. This support will make BusyBox be considerable larger |
475 | and run slower, so you should leave this option disabled unless |
476 | you are hunting a hard to find memory problem. |
477 | |
478 | |
479 | config NO_DEBUG_LIB |
480 | bool "None" |
481 | |
482 | config DMALLOC |
483 | bool "Dmalloc" |
484 | |
485 | config EFENCE |
486 | bool "Electric-fence" |
487 | |
488 | endchoice |
489 | |
490 | config INCLUDE_SUSv2 |
491 | bool "Enable obsolete features removed before SUSv3?" |
492 | default y |
493 | help |
494 | This option will enable backwards compatibility with SuSv2, |
495 | specifically, old-style numeric options ('command -1 <file>') |
496 | will be supported in head, tail, and fold. (Note: should |
497 | affect renice too.) |
498 | |
499 | ### config PARSE |
500 | ### bool "Uniform config file parser debugging applet: parse" |
501 | |
502 | endmenu |
503 | |
504 | menu 'Installation Options' |
505 | |
506 | config INSTALL_NO_USR |
507 | bool "Don't use /usr" |
508 | default n |
509 | help |
510 | Disable use of /usr. Don't activate this option if you don't know |
511 | that you really want this behaviour. |
512 | |
513 | choice |
514 | prompt "Applets links" |
515 | default INSTALL_APPLET_SYMLINKS |
516 | help |
517 | Choose how you install applets links. |
518 | |
519 | config INSTALL_APPLET_SYMLINKS |
520 | bool "as soft-links" |
521 | help |
522 | Install applets as soft-links to the busybox binary. This needs some |
523 | free inodes on the filesystem, but might help with filesystem |
524 | generators that can't cope with hard-links. |
525 | |
526 | config INSTALL_APPLET_HARDLINKS |
527 | bool "as hard-links" |
528 | help |
529 | Install applets as hard-links to the busybox binary. This might |
530 | count on a filesystem with few inodes. |
531 | |
532 | config INSTALL_APPLET_SCRIPT_WRAPPERS |
533 | bool "as script wrappers" |
534 | help |
535 | Install applets as script wrappers that call the busybox binary. |
536 | |
537 | config INSTALL_APPLET_DONT |
538 | bool "not installed" |
539 | depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE || FEATURE_PREFER_APPLETS |
540 | help |
541 | Do not install applet links. Useful when using the -install feature |
542 | or a standalone shell for rescue purposes. |
543 | |
544 | endchoice |
545 | |
546 | choice |
547 | prompt "/bin/sh applet link" |
548 | default INSTALL_SH_APPLET_SYMLINK |
549 | depends on INSTALL_APPLET_SCRIPT_WRAPPERS |
550 | help |
551 | Choose how you install /bin/sh applet link. |
552 | |
553 | config INSTALL_SH_APPLET_SYMLINK |
554 | bool "as soft-link" |
555 | help |
556 | Install /bin/sh applet as soft-link to the busybox binary. |
557 | |
558 | config INSTALL_SH_APPLET_HARDLINK |
559 | bool "as hard-link" |
560 | help |
561 | Install /bin/sh applet as hard-link to the busybox binary. |
562 | |
563 | config INSTALL_SH_APPLET_SCRIPT_WRAPPER |
564 | bool "as script wrapper" |
565 | help |
566 | Install /bin/sh applet as script wrapper that call the busybox |
567 | binary. |
568 | |
569 | endchoice |
570 | |
571 | config PREFIX |
572 | string "BusyBox installation prefix" |
573 | default "./_install" |
574 | help |
575 | Define your directory to install BusyBox files/subdirs in. |
576 | |
577 | endmenu |
578 | |
579 | source libbb/Config.in |
580 | |
581 | endmenu |
582 | |
583 | comment "Applets" |
584 | |
585 | source archival/Config.in |
586 | source coreutils/Config.in |
587 | source console-tools/Config.in |
588 | source debianutils/Config.in |
589 | source editors/Config.in |
590 | source findutils/Config.in |
591 | source init/Config.in |
592 | source loginutils/Config.in |
593 | source e2fsprogs/Config.in |
594 | source modutils/Config.in |
595 | source util-linux/Config.in |
596 | source miscutils/Config.in |
597 | source networking/Config.in |
598 | source printutils/Config.in |
599 | source mailutils/Config.in |
600 | source procps/Config.in |
601 | source runit/Config.in |
602 | source selinux/Config.in |
603 | source shell/Config.in |
604 | source sysklogd/Config.in |