OpenWrt – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # |
2 | # For a description of the syntax of this configuration file, |
||
3 | # see docs/Kconfig-language.txt. |
||
4 | # |
||
5 | |||
6 | |||
7 | config BUSYBOX_CONFIG_HAVE_DOT_CONFIG |
||
8 | bool |
||
9 | default BUSYBOX_DEFAULT_HAVE_DOT_CONFIG |
||
10 | |||
11 | menu "Settings" |
||
12 | |||
13 | config BUSYBOX_CONFIG_DESKTOP |
||
14 | bool "Enable compatibility for full-blown desktop systems" |
||
15 | default BUSYBOX_DEFAULT_DESKTOP |
||
16 | help |
||
17 | Enable applet options and features which are not essential. |
||
18 | Many applet options have dedicated config options to (de)select them |
||
19 | under that applet; this options enables those options which have no |
||
20 | individual config item for them. |
||
21 | |||
22 | Select this if you plan to use busybox on full-blown desktop machine |
||
23 | with common Linux distro, which needs higher level of command-line |
||
24 | compatibility. |
||
25 | |||
26 | If you are preparing your build to be used on an embedded box |
||
27 | where you have tighter control over the entire set of userspace |
||
28 | tools, you can unselect this option for smaller code size. |
||
29 | |||
30 | config BUSYBOX_CONFIG_EXTRA_COMPAT |
||
31 | bool "Provide compatible behavior for rare corner cases (bigger code)" |
||
32 | default BUSYBOX_DEFAULT_EXTRA_COMPAT |
||
33 | help |
||
34 | This option makes grep, sed etc handle rare corner cases |
||
35 | (embedded NUL bytes and such). This makes code bigger and uses |
||
36 | some GNU extensions in libc. You probably only need this option |
||
37 | if you plan to run busybox on desktop. |
||
38 | |||
39 | config BUSYBOX_CONFIG_FEDORA_COMPAT |
||
40 | bool "Building for Fedora distribution" |
||
41 | default BUSYBOX_DEFAULT_FEDORA_COMPAT |
||
42 | help |
||
43 | This option makes some tools behave like they do on Fedora. |
||
44 | |||
45 | At the time of this writing (2017-08) this only affects uname: |
||
46 | normally, uname -p (processor) and uname -i (platform) |
||
47 | are shown as "unknown", but with this option uname -p |
||
48 | shows the same string as uname -m (machine type), |
||
49 | and so does uname -i unless machine type is i486/i586/i686 - |
||
50 | then uname -i shows "i386". |
||
51 | |||
52 | config BUSYBOX_CONFIG_INCLUDE_SUSv2 |
||
53 | bool "Enable obsolete features removed before SUSv3" |
||
54 | default BUSYBOX_DEFAULT_INCLUDE_SUSv2 |
||
55 | help |
||
56 | This option will enable backwards compatibility with SuSv2, |
||
57 | specifically, old-style numeric options ('command -1 <file>') |
||
58 | will be supported in head, tail, and fold. (Note: should |
||
59 | affect renice too.) |
||
60 | |||
61 | config BUSYBOX_CONFIG_LONG_OPTS |
||
62 | bool "Support --long-options" |
||
63 | default BUSYBOX_DEFAULT_LONG_OPTS |
||
64 | help |
||
65 | Enable this if you want busybox applets to use the gnu --long-option |
||
66 | style, in addition to single character -a -b -c style options. |
||
67 | |||
68 | config BUSYBOX_CONFIG_SHOW_USAGE |
||
69 | bool "Show applet usage messages" |
||
70 | default BUSYBOX_DEFAULT_SHOW_USAGE |
||
71 | help |
||
72 | Enabling this option, applets will show terse help messages |
||
73 | when invoked with wrong arguments. |
||
74 | If you do not want to show any (helpful) usage message when |
||
75 | issuing wrong command syntax, you can say 'N' here, |
||
76 | saving approximately 7k. |
||
77 | |||
78 | config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE |
||
79 | bool "Show verbose applet usage messages" |
||
80 | default BUSYBOX_DEFAULT_FEATURE_VERBOSE_USAGE |
||
81 | depends on BUSYBOX_CONFIG_SHOW_USAGE |
||
82 | help |
||
83 | All applets will show verbose help messages when invoked with --help. |
||
84 | This will add a lot of text to the binary. |
||
85 | |||
86 | config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE |
||
87 | bool "Store applet usage messages in compressed form" |
||
88 | default BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE |
||
89 | depends on BUSYBOX_CONFIG_SHOW_USAGE |
||
90 | help |
||
91 | Store usage messages in .bz2 compressed form, uncompress them |
||
92 | on-the-fly when "APPLET --help" is run. |
||
93 | |||
94 | If you have a really tiny busybox with few applets enabled (and |
||
95 | bunzip2 isn't one of them), the overhead of the decompressor might |
||
96 | be noticeable. Also, if you run executables directly from ROM |
||
97 | and have very little memory, this might not be a win. Otherwise, |
||
98 | you probably want this. |
||
99 | |||
100 | config BUSYBOX_CONFIG_LFS |
||
101 | bool |
||
102 | default BUSYBOX_DEFAULT_LFS |
||
103 | help |
||
104 | If you need to work with large files, enable this option. |
||
105 | This will have no effect if your kernel or your C |
||
106 | library lacks large file support for large files. Some of the |
||
107 | programs that can benefit from large file support include dd, gzip, |
||
108 | cp, mount, tar. |
||
109 | |||
110 | config BUSYBOX_CONFIG_PAM |
||
111 | bool "Support PAM (Pluggable Authentication Modules)" |
||
112 | default BUSYBOX_DEFAULT_PAM |
||
113 | help |
||
114 | Use PAM in some applets (currently login and httpd) instead |
||
115 | of direct access to password database. |
||
116 | |||
117 | config BUSYBOX_CONFIG_FEATURE_DEVPTS |
||
118 | bool "Use the devpts filesystem for Unix98 PTYs" |
||
119 | default BUSYBOX_DEFAULT_FEATURE_DEVPTS |
||
120 | help |
||
121 | Enable if you want to use Unix98 PTY support. If enabled, |
||
122 | busybox will use /dev/ptmx for the master side of the pseudoterminal |
||
123 | and /dev/pts/<number> for the slave side. Otherwise, BSD style |
||
124 | /dev/ttyp<number> will be used. To use this option, you should have |
||
125 | devpts mounted. |
||
126 | |||
127 | config BUSYBOX_CONFIG_FEATURE_UTMP |
||
128 | bool "Support utmp file" |
||
129 | default BUSYBOX_DEFAULT_FEATURE_UTMP |
||
130 | help |
||
131 | The file /var/run/utmp is used to track who is currently logged in. |
||
132 | With this option on, certain applets (getty, login, telnetd etc) |
||
133 | will create and delete entries there. |
||
134 | "who" applet requires this option. |
||
135 | |||
136 | config BUSYBOX_CONFIG_FEATURE_WTMP |
||
137 | bool "Support wtmp file" |
||
138 | default BUSYBOX_DEFAULT_FEATURE_WTMP |
||
139 | depends on BUSYBOX_CONFIG_FEATURE_UTMP |
||
140 | help |
||
141 | The file /var/run/wtmp is used to track when users have logged into |
||
142 | and logged out of the system. |
||
143 | With this option on, certain applets (getty, login, telnetd etc) |
||
144 | will append new entries there. |
||
145 | "last" applet requires this option. |
||
146 | |||
147 | config BUSYBOX_CONFIG_FEATURE_PIDFILE |
||
148 | bool "Support writing pidfiles" |
||
149 | default BUSYBOX_DEFAULT_FEATURE_PIDFILE |
||
150 | help |
||
151 | This option makes some applets (e.g. crond, syslogd, inetd) write |
||
152 | a pidfile at the configured PID_FILE_PATH. It has no effect |
||
153 | on applets which require pidfiles to run. |
||
154 | |||
155 | config BUSYBOX_CONFIG_PID_FILE_PATH |
||
156 | string "Directory for pidfiles" |
||
157 | default BUSYBOX_DEFAULT_PID_FILE_PATH |
||
158 | depends on BUSYBOX_CONFIG_FEATURE_PIDFILE |
||
159 | help |
||
160 | This is the default path where pidfiles are created. Applets which |
||
161 | allow you to set the pidfile path on the command line will override |
||
162 | this value. The option has no effect on applets that require you to |
||
163 | specify a pidfile path. |
||
164 | |||
165 | config BUSYBOX_CONFIG_BUSYBOX |
||
166 | bool "Include busybox applet" |
||
167 | default BUSYBOX_DEFAULT_BUSYBOX |
||
168 | help |
||
169 | The busybox applet provides general help message and allows |
||
170 | the included applets to be listed. It also provides |
||
171 | optional --install command to create applet links. If you unselect |
||
172 | this option, running busybox without any arguments will give |
||
173 | just a cryptic error message: |
||
174 | |||
175 | $ busybox |
||
176 | busybox: applet not found |
||
177 | |||
178 | Running "busybox APPLET [ARGS...]" will still work, of course. |
||
179 | |||
180 | config BUSYBOX_CONFIG_FEATURE_SHOW_SCRIPT |
||
181 | bool "Support --show SCRIPT" |
||
182 | default BUSYBOX_DEFAULT_FEATURE_SHOW_SCRIPT |
||
183 | depends on BUSYBOX_CONFIG_BUSYBOX |
||
184 | |||
185 | config BUSYBOX_CONFIG_FEATURE_INSTALLER |
||
186 | bool "Support --install [-s] to install applet links at runtime" |
||
187 | default BUSYBOX_DEFAULT_FEATURE_INSTALLER |
||
188 | depends on BUSYBOX_CONFIG_BUSYBOX |
||
189 | help |
||
190 | Enable 'busybox --install [-s]' support. This will allow you to use |
||
191 | busybox at runtime to create hard links or symlinks for all the |
||
192 | applets that are compiled into busybox. |
||
193 | |||
194 | config BUSYBOX_CONFIG_INSTALL_NO_USR |
||
195 | bool "Don't use /usr" |
||
196 | default BUSYBOX_DEFAULT_INSTALL_NO_USR |
||
197 | help |
||
198 | Disable use of /usr. "busybox --install" and "make install" |
||
199 | will install applets only to /bin and /sbin, |
||
200 | never to /usr/bin or /usr/sbin. |
||
201 | |||
202 | config BUSYBOX_CONFIG_FEATURE_SUID |
||
203 | bool "Drop SUID state for most applets" |
||
204 | default BUSYBOX_DEFAULT_FEATURE_SUID |
||
205 | help |
||
206 | With this option you can install the busybox binary belonging |
||
207 | to root with the suid bit set, enabling some applets to perform |
||
208 | root-level operations even when run by ordinary users |
||
209 | (for example, mounting of user mounts in fstab needs this). |
||
210 | |||
211 | With this option enabled, busybox drops privileges for applets |
||
212 | that don't need root access, before entering their main() function. |
||
213 | |||
214 | If you are really paranoid and don't want even initial busybox code |
||
215 | to run under root for every applet, build two busybox binaries with |
||
216 | different applets in them (and the appropriate symlinks pointing |
||
217 | to each binary), and only set the suid bit on the one that needs it. |
||
218 | |||
219 | Some applets which require root rights (need suid bit on the binary |
||
220 | or to be run by root) and will refuse to execute otherwise: |
||
221 | crontab, login, passwd, su, vlock, wall. |
||
222 | |||
223 | The applets which will use root rights if they have them |
||
224 | (via suid bit, or because run by root), but would try to work |
||
225 | without root right nevertheless: |
||
226 | findfs, ping[6], traceroute[6], mount. |
||
227 | |||
228 | Note that if you DO NOT select this option, but DO make busybox |
||
229 | suid root, ALL applets will run under root, which is a huge |
||
230 | security hole (think "cp /some/file /etc/passwd"). |
||
231 | |||
232 | config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG |
||
233 | bool "Enable SUID configuration via /etc/busybox.conf" |
||
234 | default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG |
||
235 | depends on BUSYBOX_CONFIG_FEATURE_SUID |
||
236 | help |
||
237 | Allow the SUID/SGID state of an applet to be determined at runtime |
||
238 | by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) |
||
239 | The format of this file is as follows: |
||
240 | |||
241 | APPLET = [Ssx-][Ssx-][x-] [USER.GROUP] |
||
242 | |||
243 | s: USER or GROUP is allowed to execute APPLET. |
||
244 | APPLET will run under USER or GROUP |
||
245 | (regardless of who's running it). |
||
246 | S: USER or GROUP is NOT allowed to execute APPLET. |
||
247 | APPLET will run under USER or GROUP. |
||
248 | This option is not very sensical. |
||
249 | x: USER/GROUP/others are allowed to execute APPLET. |
||
250 | No UID/GID change will be done when it is run. |
||
251 | -: USER/GROUP/others are not allowed to execute APPLET. |
||
252 | |||
253 | An example might help: |
||
254 | |||
255 | |[SUID] |
||
256 | |su = ssx root.0 # applet su can be run by anyone and runs with |
||
257 | | # euid=0,egid=0 |
||
258 | |su = ssx # exactly the same |
||
259 | | |
||
260 | |mount = sx- root.disk # applet mount can be run by root and members |
||
261 | | # of group disk (but not anyone else) |
||
262 | | # and runs with euid=0 (egid is not changed) |
||
263 | | |
||
264 | |cp = --- # disable applet cp for everyone |
||
265 | |||
266 | The file has to be owned by user root, group root and has to be |
||
267 | writeable only by root: |
||
268 | (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) |
||
269 | The busybox executable has to be owned by user root, group |
||
270 | root and has to be setuid root for this to work: |
||
271 | (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) |
||
272 | |||
273 | Robert 'sandman' Griebl has more information here: |
||
274 | <url: http://www.softforge.de/bb/suid.html >. |
||
275 | |||
276 | config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET |
||
277 | bool "Suppress warning message if /etc/busybox.conf is not readable" |
||
278 | default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG_QUIET |
||
279 | depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG |
||
280 | help |
||
281 | /etc/busybox.conf should be readable by the user needing the SUID, |
||
282 | check this option to avoid users to be notified about missing |
||
283 | permissions. |
||
284 | |||
285 | config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS |
||
286 | bool "exec prefers applets" |
||
287 | default BUSYBOX_DEFAULT_FEATURE_PREFER_APPLETS |
||
288 | help |
||
289 | This is an experimental option which directs applets about to |
||
290 | call 'exec' to try and find an applicable busybox applet before |
||
291 | searching the PATH. This is typically done by exec'ing |
||
292 | /proc/self/exe. |
||
293 | |||
294 | This may affect shell, find -exec, xargs and similar applets. |
||
295 | They will use applets even if /bin/APPLET -> busybox link |
||
296 | is missing (or is not a link to busybox). However, this causes |
||
297 | problems in chroot jails without mounted /proc and with ps/top |
||
298 | (command name can be shown as 'exe' for applets started this way). |
||
299 | |||
300 | config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH |
||
301 | string "Path to busybox executable" |
||
302 | default BUSYBOX_DEFAULT_BUSYBOX_EXEC_PATH |
||
303 | help |
||
304 | When applets need to run other applets, busybox |
||
305 | sometimes needs to exec() itself. When the /proc filesystem is |
||
306 | mounted, /proc/self/exe always points to the currently running |
||
307 | executable. If you haven't got /proc, set this to wherever you |
||
308 | want to run busybox from. |
||
309 | |||
310 | config BUSYBOX_CONFIG_SELINUX |
||
311 | bool "Support NSA Security Enhanced Linux" |
||
312 | default BUSYBOX_DEFAULT_SELINUX |
||
313 | select BUSYBOX_CONFIG_PLATFORM_LINUX |
||
314 | help |
||
315 | Enable support for SELinux in applets ls, ps, and id. Also provide |
||
316 | the option of compiling in SELinux applets. |
||
317 | |||
318 | If you do not have a complete SELinux userland installed, this stuff |
||
319 | will not compile. Specifially, libselinux 1.28 or better is |
||
320 | directly required by busybox. If the installation is located in a |
||
321 | non-standard directory, provide it by invoking make as follows: |
||
322 | |||
323 | CFLAGS=-I<libselinux-include-path> \ |
||
324 | LDFLAGS=-L<libselinux-lib-path> \ |
||
325 | make |
||
326 | |||
327 | Most people will leave this set to 'N'. |
||
328 | |||
329 | config BUSYBOX_CONFIG_FEATURE_CLEAN_UP |
||
330 | bool "Clean up all memory before exiting (usually not needed)" |
||
331 | default BUSYBOX_DEFAULT_FEATURE_CLEAN_UP |
||
332 | help |
||
333 | As a size optimization, busybox normally exits without explicitly |
||
334 | freeing dynamically allocated memory or closing files. This saves |
||
335 | space since the OS will clean up for us, but it can confuse debuggers |
||
336 | like valgrind, which report tons of memory and resource leaks. |
||
337 | |||
338 | Don't enable this unless you have a really good reason to clean |
||
339 | things up manually. |
||
340 | |||
341 | # These are auto-selected by other options |
||
342 | |||
343 | config BUSYBOX_CONFIG_FEATURE_SYSLOG |
||
344 | bool #No description makes it a hidden option |
||
345 | default BUSYBOX_DEFAULT_FEATURE_SYSLOG |
||
346 | #help |
||
347 | #This option is auto-selected when you select any applet which may |
||
348 | #send its output to syslog. You do not need to select it manually. |
||
349 | |||
350 | config BUSYBOX_CONFIG_PLATFORM_LINUX |
||
351 | bool #No description makes it a hidden option |
||
352 | default BUSYBOX_DEFAULT_PLATFORM_LINUX |
||
353 | #help |
||
354 | #For the most part, busybox requires only POSIX compatibility |
||
355 | #from the target system, but some applets and features use |
||
356 | #Linux-specific interfaces. |
||
357 | # |
||
358 | #This is automatically selected if any applet or feature requires |
||
359 | #Linux-specific interfaces. You do not need to select it manually. |
||
360 | |||
361 | comment 'Build Options' |
||
362 | |||
363 | config BUSYBOX_CONFIG_STATIC |
||
364 | bool "Build static binary (no shared libs)" |
||
365 | default BUSYBOX_DEFAULT_STATIC |
||
366 | help |
||
367 | If you want to build a static binary, which does not use |
||
368 | or require any shared libraries, enable this option. |
||
369 | Static binaries are larger, but do not require functioning |
||
370 | dynamic libraries to be present, which is important if used |
||
371 | as a system rescue tool. |
||
372 | |||
373 | config BUSYBOX_CONFIG_PIE |
||
374 | bool "Build position independent executable" |
||
375 | default BUSYBOX_DEFAULT_PIE |
||
376 | depends on !BUSYBOX_CONFIG_STATIC |
||
377 | help |
||
378 | Hardened code option. PIE binaries are loaded at a different |
||
379 | address at each invocation. This has some overhead, |
||
380 | particularly on x86-32 which is short on registers. |
||
381 | |||
382 | Most people will leave this set to 'N'. |
||
383 | |||
384 | config BUSYBOX_CONFIG_NOMMU |
||
385 | bool "Force NOMMU build" |
||
386 | default BUSYBOX_DEFAULT_NOMMU |
||
387 | help |
||
388 | Busybox tries to detect whether architecture it is being |
||
389 | built against supports MMU or not. If this detection fails, |
||
390 | or if you want to build NOMMU version of busybox for testing, |
||
391 | you may force NOMMU build here. |
||
392 | |||
393 | Most people will leave this set to 'N'. |
||
394 | |||
395 | # PIE can be made to work with BUILD_LIBBUSYBOX, but currently |
||
396 | # build system does not support that |
||
397 | config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX |
||
398 | bool "Build shared libbusybox" |
||
399 | default BUSYBOX_DEFAULT_BUILD_LIBBUSYBOX |
||
400 | depends on !BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS && !BUSYBOX_CONFIG_PIE && !BUSYBOX_CONFIG_STATIC |
||
401 | help |
||
402 | Build a shared library libbusybox.so.N.N.N which contains all |
||
403 | busybox code. |
||
404 | |||
405 | This feature allows every applet to be built as a really tiny |
||
406 | separate executable linked against the library: |
||
407 | |$ size 0_lib/l* |
||
408 | | text data bss dec hex filename |
||
409 | | 939 212 28 1179 49b 0_lib/last |
||
410 | | 939 212 28 1179 49b 0_lib/less |
||
411 | | 919138 8328 1556 929022 e2cfe 0_lib/libbusybox.so.1.N.M |
||
412 | |||
413 | This is useful on NOMMU systems which are not capable |
||
414 | of sharing executables, but are capable of sharing code |
||
415 | in dynamic libraries. |
||
416 | |||
417 | config BUSYBOX_CONFIG_FEATURE_LIBBUSYBOX_STATIC |
||
418 | bool "Pull in all external references into libbusybox" |
||
419 | default BUSYBOX_DEFAULT_FEATURE_LIBBUSYBOX_STATIC |
||
420 | depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX |
||
421 | help |
||
422 | Make libbusybox library independent, not using or requiring |
||
423 | any other shared libraries. |
||
424 | |||
425 | config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL |
||
426 | bool "Produce a binary for each applet, linked against libbusybox" |
||
427 | default BUSYBOX_DEFAULT_FEATURE_INDIVIDUAL |
||
428 | depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX |
||
429 | help |
||
430 | If your CPU architecture doesn't allow for sharing text/rodata |
||
431 | sections of running binaries, but allows for runtime dynamic |
||
432 | libraries, this option will allow you to reduce memory footprint |
||
433 | when you have many different applets running at once. |
||
434 | |||
435 | If your CPU architecture allows for sharing text/rodata, |
||
436 | having single binary is more optimal. |
||
437 | |||
438 | Each applet will be a tiny program, dynamically linked |
||
439 | against libbusybox.so.N.N.N. |
||
440 | |||
441 | You need to have a working dynamic linker. |
||
442 | |||
443 | config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX |
||
444 | bool "Produce additional busybox binary linked against libbusybox" |
||
445 | default BUSYBOX_DEFAULT_FEATURE_SHARED_BUSYBOX |
||
446 | depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX |
||
447 | help |
||
448 | Build busybox, dynamically linked against libbusybox.so.N.N.N. |
||
449 | |||
450 | You need to have a working dynamic linker. |
||
451 | |||
452 | ### config BUILD_AT_ONCE |
||
453 | ### bool "Compile all sources at once" |
||
454 | ### default n |
||
455 | ### help |
||
456 | ### Normally each source-file is compiled with one invocation of |
||
457 | ### the compiler. |
||
458 | ### If you set this option, all sources are compiled at once. |
||
459 | ### This gives the compiler more opportunities to optimize which can |
||
460 | ### result in smaller and/or faster binaries. |
||
461 | ### |
||
462 | ### Setting this option will consume alot of memory, e.g. if you |
||
463 | ### enable all applets with all features, gcc uses more than 300MB |
||
464 | ### RAM during compilation of busybox. |
||
465 | ### |
||
466 | ### This option is most likely only beneficial for newer compilers |
||
467 | ### such as gcc-4.1 and above. |
||
468 | ### |
||
469 | ### Say 'N' unless you know what you are doing. |
||
470 | |||
471 | config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX |
||
472 | string "Cross compiler prefix" |
||
473 | default BUSYBOX_DEFAULT_CROSS_COMPILER_PREFIX |
||
474 | help |
||
475 | If you want to build busybox with a cross compiler, then you |
||
476 | will need to set this to the cross-compiler prefix, for example, |
||
477 | "i386-uclibc-". |
||
478 | |||
479 | Note that CROSS_COMPILE environment variable or |
||
480 | "make CROSS_COMPILE=xxx ..." will override this selection. |
||
481 | |||
482 | Native builds leave this empty. |
||
483 | |||
484 | config BUSYBOX_CONFIG_SYSROOT |
||
485 | string "Path to sysroot" |
||
486 | default BUSYBOX_DEFAULT_SYSROOT |
||
487 | help |
||
488 | If you want to build busybox with a cross compiler, then you |
||
489 | might also need to specify where /usr/include and /usr/lib |
||
490 | will be found. |
||
491 | |||
492 | For example, busybox can be built against an installed |
||
493 | Android NDK, platform version 9, for ARM ABI with |
||
494 | |||
495 | CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm |
||
496 | |||
497 | Native builds leave this empty. |
||
498 | |||
499 | config BUSYBOX_CONFIG_EXTRA_CFLAGS |
||
500 | string "Additional CFLAGS" |
||
501 | default BUSYBOX_DEFAULT_EXTRA_CFLAGS |
||
502 | help |
||
503 | Additional CFLAGS to pass to the compiler verbatim. |
||
504 | |||
505 | config BUSYBOX_CONFIG_EXTRA_LDFLAGS |
||
506 | string "Additional LDFLAGS" |
||
507 | default BUSYBOX_DEFAULT_EXTRA_LDFLAGS |
||
508 | help |
||
509 | Additional LDFLAGS to pass to the linker verbatim. |
||
510 | |||
511 | config BUSYBOX_CONFIG_EXTRA_LDLIBS |
||
512 | string "Additional LDLIBS" |
||
513 | default BUSYBOX_DEFAULT_EXTRA_LDLIBS |
||
514 | help |
||
515 | Additional LDLIBS to pass to the linker with -l. |
||
516 | |||
517 | config BUSYBOX_CONFIG_USE_PORTABLE_CODE |
||
518 | bool "Avoid using GCC-specific code constructs" |
||
519 | default BUSYBOX_DEFAULT_USE_PORTABLE_CODE |
||
520 | help |
||
521 | Use this option if you are trying to compile busybox with |
||
522 | compiler other than gcc. |
||
523 | If you do use gcc, this option may needlessly increase code size. |
||
524 | |||
525 | config BUSYBOX_CONFIG_STACK_OPTIMIZATION_386 |
||
526 | bool "Use -mpreferred-stack-boundary=2 on i386 arch" |
||
527 | default BUSYBOX_DEFAULT_STACK_OPTIMIZATION_386 |
||
528 | help |
||
529 | This option makes for smaller code, but some libc versions |
||
530 | do not work with it (they use SSE instructions without |
||
531 | ensuring stack alignment). |
||
532 | |||
533 | comment 'Installation Options ("make install" behavior)' |
||
534 | |||
535 | choice |
||
536 | prompt "What kind of applet links to install" |
||
537 | default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS |
||
538 | help |
||
539 | Choose what kind of links to applets are created by "make install". |
||
540 | |||
541 | config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS |
||
542 | bool "as soft-links" |
||
543 | help |
||
544 | Install applets as soft-links to the busybox binary. This needs some |
||
545 | free inodes on the filesystem, but might help with filesystem |
||
546 | generators that can't cope with hard-links. |
||
547 | |||
548 | config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS |
||
549 | bool "as hard-links" |
||
550 | help |
||
551 | Install applets as hard-links to the busybox binary. This might |
||
552 | count on a filesystem with few inodes. |
||
553 | |||
554 | config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS |
||
555 | bool "as script wrappers" |
||
556 | help |
||
557 | Install applets as script wrappers that call the busybox binary. |
||
558 | |||
559 | config BUSYBOX_CONFIG_INSTALL_APPLET_DONT |
||
560 | bool "not installed" |
||
561 | help |
||
562 | Do not install applet links. Useful when you plan to use |
||
563 | busybox --install for installing links, or plan to use |
||
564 | a standalone shell and thus don't need applet links. |
||
565 | |||
566 | endchoice |
||
567 | |||
568 | choice |
||
569 | prompt "/bin/sh applet link" |
||
570 | default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK |
||
571 | depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS |
||
572 | help |
||
573 | Choose how you install /bin/sh applet link. |
||
574 | |||
575 | config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK |
||
576 | bool "as soft-link" |
||
577 | help |
||
578 | Install /bin/sh applet as soft-link to the busybox binary. |
||
579 | |||
580 | config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK |
||
581 | bool "as hard-link" |
||
582 | help |
||
583 | Install /bin/sh applet as hard-link to the busybox binary. |
||
584 | |||
585 | config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER |
||
586 | bool "as script wrapper" |
||
587 | help |
||
588 | Install /bin/sh applet as script wrapper that calls |
||
589 | the busybox binary. |
||
590 | |||
591 | endchoice |
||
592 | |||
593 | config BUSYBOX_CONFIG_PREFIX |
||
594 | string "Destination path for 'make install'" |
||
595 | default BUSYBOX_DEFAULT_PREFIX |
||
596 | help |
||
597 | Where "make install" should install busybox binary and links. |
||
598 | |||
599 | comment 'Debugging Options' |
||
600 | |||
601 | config BUSYBOX_CONFIG_DEBUG |
||
602 | bool "Build with debug information" |
||
603 | default BUSYBOX_DEFAULT_DEBUG |
||
604 | help |
||
605 | Say Y here to compile with debug information. |
||
606 | This increases the size of the binary considerably, and |
||
607 | should only be used when doing development. |
||
608 | |||
609 | This adds -g option to gcc command line. |
||
610 | |||
611 | Most people should answer N. |
||
612 | |||
613 | config BUSYBOX_CONFIG_DEBUG_PESSIMIZE |
||
614 | bool "Disable compiler optimizations" |
||
615 | default BUSYBOX_DEFAULT_DEBUG_PESSIMIZE |
||
616 | depends on BUSYBOX_CONFIG_DEBUG |
||
617 | help |
||
618 | The compiler's optimization of source code can eliminate and reorder |
||
619 | code, resulting in an executable that's hard to understand when |
||
620 | stepping through it with a debugger. This switches it off, resulting |
||
621 | in a much bigger executable that more closely matches the source |
||
622 | code. |
||
623 | |||
624 | This replaces -Os/-O2 with -O0 in gcc command line. |
||
625 | |||
626 | config BUSYBOX_CONFIG_DEBUG_SANITIZE |
||
627 | bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)" |
||
628 | default BUSYBOX_DEFAULT_DEBUG_SANITIZE |
||
629 | help |
||
630 | Say Y here if you want to enable runtime sanitizers. These help |
||
631 | catch bad memory accesses (e.g. buffer overflows), but will make |
||
632 | the executable larger and slow down runtime a bit. |
||
633 | |||
634 | This adds -fsanitize=foo options to gcc command line. |
||
635 | |||
636 | If you aren't developing/testing busybox, say N here. |
||
637 | |||
638 | config BUSYBOX_CONFIG_UNIT_TEST |
||
639 | bool "Build unit tests" |
||
640 | default BUSYBOX_DEFAULT_UNIT_TEST |
||
641 | help |
||
642 | Say Y here if you want to build unit tests (both the framework and |
||
643 | test cases) as an applet. This results in bigger code, so you |
||
644 | probably don't want this option in production builds. |
||
645 | |||
646 | config BUSYBOX_CONFIG_WERROR |
||
647 | bool "Abort compilation on any warning" |
||
648 | default BUSYBOX_DEFAULT_WERROR |
||
649 | help |
||
650 | This adds -Werror to gcc command line. |
||
651 | |||
652 | Most people should answer N. |
||
653 | |||
654 | choice |
||
655 | prompt "Additional debugging library" |
||
656 | default BUSYBOX_CONFIG_NO_DEBUG_LIB |
||
657 | help |
||
658 | Using an additional debugging library will make busybox become |
||
659 | considerably larger and will cause it to run more slowly. You |
||
660 | should always leave this option disabled for production use. |
||
661 | |||
662 | dmalloc support: |
||
663 | ---------------- |
||
664 | This enables compiling with dmalloc ( http://dmalloc.com/ ) |
||
665 | which is an excellent public domain mem leak and malloc problem |
||
666 | detector. To enable dmalloc, before running busybox you will |
||
667 | want to properly set your environment, for example: |
||
668 | export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile |
||
669 | The 'debug=' value is generated using the following command |
||
670 | dmalloc -p log-stats -p log-non-free -p log-bad-space \ |
||
671 | -p log-elapsed-time -p check-fence -p check-heap \ |
||
672 | -p check-lists -p check-blank -p check-funcs -p realloc-copy \ |
||
673 | -p allow-free-null |
||
674 | |||
675 | Electric-fence support: |
||
676 | ----------------------- |
||
677 | This enables compiling with Electric-fence support. Electric |
||
678 | fence is another very useful malloc debugging library which uses |
||
679 | your computer's virtual memory hardware to detect illegal memory |
||
680 | accesses. This support will make busybox be considerably larger |
||
681 | and run slower, so you should leave this option disabled unless |
||
682 | you are hunting a hard to find memory problem. |
||
683 | |||
684 | |||
685 | config BUSYBOX_CONFIG_NO_DEBUG_LIB |
||
686 | bool "None" |
||
687 | |||
688 | config BUSYBOX_CONFIG_DMALLOC |
||
689 | bool "Dmalloc" |
||
690 | |||
691 | config BUSYBOX_CONFIG_EFENCE |
||
692 | bool "Electric-fence" |
||
693 | |||
694 | endchoice |
||
695 | |||
696 | source libbb/Config.in |
||
697 | |||
698 | endmenu |
||
699 | |||
700 | comment "Applets" |
||
701 | |||
702 | source archival/Config.in |
||
703 | source coreutils/Config.in |
||
704 | source console-tools/Config.in |
||
705 | source debianutils/Config.in |
||
706 | source klibc-utils/Config.in |
||
707 | source editors/Config.in |
||
708 | source findutils/Config.in |
||
709 | source init/Config.in |
||
710 | source loginutils/Config.in |
||
711 | source e2fsprogs/Config.in |
||
712 | source modutils/Config.in |
||
713 | source util-linux/Config.in |
||
714 | source miscutils/Config.in |
||
715 | source networking/Config.in |
||
716 | source printutils/Config.in |
||
717 | source mailutils/Config.in |
||
718 | source procps/Config.in |
||
719 | source runit/Config.in |
||
720 | source selinux/Config.in |
||
721 | source shell/Config.in |
||
722 | source sysklogd/Config.in |