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