OpenWrt – Blame information for rev 3
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # |
2 | # For a description of the syntax of this configuration file, |
||
3 | office | 3 | # see scripts/kbuild/config-language.txt. |
1 | office | 4 | # |
5 | |||
6 | |||
7 | config BUSYBOX_CONFIG_HAVE_DOT_CONFIG |
||
8 | bool |
||
9 | default BUSYBOX_DEFAULT_HAVE_DOT_CONFIG |
||
10 | |||
3 | office | 11 | menu "Busybox Settings" |
1 | office | 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_INSTALLER |
||
181 | bool "Support --install [-s] to install applet links at runtime" |
||
182 | default BUSYBOX_DEFAULT_FEATURE_INSTALLER |
||
183 | depends on BUSYBOX_CONFIG_BUSYBOX |
||
184 | help |
||
185 | Enable 'busybox --install [-s]' support. This will allow you to use |
||
186 | busybox at runtime to create hard links or symlinks for all the |
||
187 | applets that are compiled into busybox. |
||
188 | |||
189 | config BUSYBOX_CONFIG_INSTALL_NO_USR |
||
190 | bool "Don't use /usr" |
||
191 | default BUSYBOX_DEFAULT_INSTALL_NO_USR |
||
192 | help |
||
193 | Disable use of /usr. "busybox --install" and "make install" |
||
194 | will install applets only to /bin and /sbin, |
||
195 | never to /usr/bin or /usr/sbin. |
||
196 | |||
197 | config BUSYBOX_CONFIG_FEATURE_SUID |
||
198 | bool "Drop SUID state for most applets" |
||
199 | default BUSYBOX_DEFAULT_FEATURE_SUID |
||
200 | help |
||
201 | With this option you can install the busybox binary belonging |
||
202 | to root with the suid bit set, enabling some applets to perform |
||
203 | root-level operations even when run by ordinary users |
||
204 | (for example, mounting of user mounts in fstab needs this). |
||
205 | |||
206 | With this option enabled, busybox drops privileges for applets |
||
207 | that don't need root access, before entering their main() function. |
||
208 | |||
209 | If you are really paranoid and don't want even initial busybox code |
||
210 | to run under root for every applet, build two busybox binaries with |
||
211 | different applets in them (and the appropriate symlinks pointing |
||
212 | to each binary), and only set the suid bit on the one that needs it. |
||
213 | |||
214 | Some applets which require root rights (need suid bit on the binary |
||
215 | or to be run by root) and will refuse to execute otherwise: |
||
216 | crontab, login, passwd, su, vlock, wall. |
||
217 | |||
218 | The applets which will use root rights if they have them |
||
219 | (via suid bit, or because run by root), but would try to work |
||
220 | without root right nevertheless: |
||
221 | findfs, ping[6], traceroute[6], mount. |
||
222 | |||
223 | Note that if you DO NOT select this option, but DO make busybox |
||
224 | suid root, ALL applets will run under root, which is a huge |
||
225 | security hole (think "cp /some/file /etc/passwd"). |
||
226 | |||
227 | config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG |
||
228 | bool "Enable SUID configuration via /etc/busybox.conf" |
||
229 | default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG |
||
230 | depends on BUSYBOX_CONFIG_FEATURE_SUID |
||
231 | help |
||
232 | Allow the SUID/SGID state of an applet to be determined at runtime |
||
233 | by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) |
||
234 | The format of this file is as follows: |
||
235 | |||
236 | APPLET = [Ssx-][Ssx-][x-] [USER.GROUP] |
||
237 | |||
238 | s: USER or GROUP is allowed to execute APPLET. |
||
239 | APPLET will run under USER or GROUP |
||
240 | (regardless of who's running it). |
||
241 | S: USER or GROUP is NOT allowed to execute APPLET. |
||
242 | APPLET will run under USER or GROUP. |
||
243 | This option is not very sensical. |
||
244 | x: USER/GROUP/others are allowed to execute APPLET. |
||
245 | No UID/GID change will be done when it is run. |
||
246 | -: USER/GROUP/others are not allowed to execute APPLET. |
||
247 | |||
248 | An example might help: |
||
249 | |||
250 | |[SUID] |
||
251 | |su = ssx root.0 # applet su can be run by anyone and runs with |
||
252 | | # euid=0,egid=0 |
||
253 | |su = ssx # exactly the same |
||
254 | | |
||
255 | |mount = sx- root.disk # applet mount can be run by root and members |
||
256 | | # of group disk (but not anyone else) |
||
257 | | # and runs with euid=0 (egid is not changed) |
||
258 | | |
||
259 | |cp = --- # disable applet cp for everyone |
||
260 | |||
261 | The file has to be owned by user root, group root and has to be |
||
262 | writeable only by root: |
||
263 | (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) |
||
264 | The busybox executable has to be owned by user root, group |
||
265 | root and has to be setuid root for this to work: |
||
266 | (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) |
||
267 | |||
268 | Robert 'sandman' Griebl has more information here: |
||
269 | <url: http://www.softforge.de/bb/suid.html >. |
||
270 | |||
271 | config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET |
||
272 | bool "Suppress warning message if /etc/busybox.conf is not readable" |
||
273 | default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG_QUIET |
||
274 | depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG |
||
275 | help |
||
276 | /etc/busybox.conf should be readable by the user needing the SUID, |
||
277 | check this option to avoid users to be notified about missing |
||
278 | permissions. |
||
279 | |||
280 | config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS |
||
281 | bool "exec prefers applets" |
||
282 | default BUSYBOX_DEFAULT_FEATURE_PREFER_APPLETS |
||
283 | help |
||
284 | This is an experimental option which directs applets about to |
||
285 | call 'exec' to try and find an applicable busybox applet before |
||
286 | searching the PATH. This is typically done by exec'ing |
||
287 | /proc/self/exe. |
||
288 | |||
289 | This may affect shell, find -exec, xargs and similar applets. |
||
290 | They will use applets even if /bin/APPLET -> busybox link |
||
291 | is missing (or is not a link to busybox). However, this causes |
||
292 | problems in chroot jails without mounted /proc and with ps/top |
||
293 | (command name can be shown as 'exe' for applets started this way). |
||
294 | |||
295 | config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH |
||
296 | string "Path to busybox executable" |
||
297 | default BUSYBOX_DEFAULT_BUSYBOX_EXEC_PATH |
||
298 | help |
||
299 | When applets need to run other applets, busybox |
||
300 | sometimes needs to exec() itself. When the /proc filesystem is |
||
301 | mounted, /proc/self/exe always points to the currently running |
||
302 | executable. If you haven't got /proc, set this to wherever you |
||
303 | want to run busybox from. |
||
304 | |||
305 | config BUSYBOX_CONFIG_SELINUX |
||
306 | bool "Support NSA Security Enhanced Linux" |
||
307 | default BUSYBOX_DEFAULT_SELINUX |
||
308 | select BUSYBOX_CONFIG_PLATFORM_LINUX |
||
309 | help |
||
310 | Enable support for SELinux in applets ls, ps, and id. Also provide |
||
311 | the option of compiling in SELinux applets. |
||
312 | |||
313 | If you do not have a complete SELinux userland installed, this stuff |
||
314 | will not compile. Specifially, libselinux 1.28 or better is |
||
315 | directly required by busybox. If the installation is located in a |
||
316 | non-standard directory, provide it by invoking make as follows: |
||
317 | |||
318 | CFLAGS=-I<libselinux-include-path> \ |
||
319 | LDFLAGS=-L<libselinux-lib-path> \ |
||
320 | make |
||
321 | |||
322 | Most people will leave this set to 'N'. |
||
323 | |||
324 | config BUSYBOX_CONFIG_FEATURE_CLEAN_UP |
||
325 | bool "Clean up all memory before exiting (usually not needed)" |
||
326 | default BUSYBOX_DEFAULT_FEATURE_CLEAN_UP |
||
327 | help |
||
328 | As a size optimization, busybox normally exits without explicitly |
||
329 | freeing dynamically allocated memory or closing files. This saves |
||
330 | space since the OS will clean up for us, but it can confuse debuggers |
||
331 | like valgrind, which report tons of memory and resource leaks. |
||
332 | |||
333 | Don't enable this unless you have a really good reason to clean |
||
334 | things up manually. |
||
335 | |||
336 | # These are auto-selected by other options |
||
337 | |||
338 | config BUSYBOX_CONFIG_FEATURE_SYSLOG |
||
339 | bool #No description makes it a hidden option |
||
340 | default BUSYBOX_DEFAULT_FEATURE_SYSLOG |
||
341 | #help |
||
342 | #This option is auto-selected when you select any applet which may |
||
343 | #send its output to syslog. You do not need to select it manually. |
||
344 | |||
345 | config BUSYBOX_CONFIG_PLATFORM_LINUX |
||
346 | bool #No description makes it a hidden option |
||
347 | default BUSYBOX_DEFAULT_PLATFORM_LINUX |
||
348 | #help |
||
349 | #For the most part, busybox requires only POSIX compatibility |
||
350 | #from the target system, but some applets and features use |
||
351 | #Linux-specific interfaces. |
||
352 | # |
||
353 | #This is automatically selected if any applet or feature requires |
||
354 | #Linux-specific interfaces. You do not need to select it manually. |
||
355 | |||
356 | comment 'Build Options' |
||
357 | |||
358 | config BUSYBOX_CONFIG_STATIC |
||
359 | bool "Build static binary (no shared libs)" |
||
360 | default BUSYBOX_DEFAULT_STATIC |
||
361 | help |
||
362 | If you want to build a static binary, which does not use |
||
363 | or require any shared libraries, enable this option. |
||
364 | Static binaries are larger, but do not require functioning |
||
365 | dynamic libraries to be present, which is important if used |
||
366 | as a system rescue tool. |
||
367 | |||
368 | config BUSYBOX_CONFIG_PIE |
||
369 | bool "Build position independent executable" |
||
370 | default BUSYBOX_DEFAULT_PIE |
||
371 | depends on !BUSYBOX_CONFIG_STATIC |
||
372 | help |
||
373 | Hardened code option. PIE binaries are loaded at a different |
||
374 | address at each invocation. This has some overhead, |
||
375 | particularly on x86-32 which is short on registers. |
||
376 | |||
377 | Most people will leave this set to 'N'. |
||
378 | |||
379 | config BUSYBOX_CONFIG_NOMMU |
||
380 | bool "Force NOMMU build" |
||
381 | default BUSYBOX_DEFAULT_NOMMU |
||
382 | help |
||
383 | Busybox tries to detect whether architecture it is being |
||
384 | built against supports MMU or not. If this detection fails, |
||
385 | or if you want to build NOMMU version of busybox for testing, |
||
386 | you may force NOMMU build here. |
||
387 | |||
388 | Most people will leave this set to 'N'. |
||
389 | |||
390 | # PIE can be made to work with BUILD_LIBBUSYBOX, but currently |
||
391 | # build system does not support that |
||
392 | config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX |
||
393 | bool "Build shared libbusybox" |
||
394 | default BUSYBOX_DEFAULT_BUILD_LIBBUSYBOX |
||
395 | depends on !BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS && !BUSYBOX_CONFIG_PIE && !BUSYBOX_CONFIG_STATIC |
||
396 | help |
||
397 | Build a shared library libbusybox.so.N.N.N which contains all |
||
398 | busybox code. |
||
399 | |||
400 | This feature allows every applet to be built as a really tiny |
||
401 | separate executable linked against the library: |
||
402 | |$ size 0_lib/l* |
||
403 | | text data bss dec hex filename |
||
404 | | 939 212 28 1179 49b 0_lib/last |
||
405 | | 939 212 28 1179 49b 0_lib/less |
||
406 | | 919138 8328 1556 929022 e2cfe 0_lib/libbusybox.so.1.N.M |
||
407 | |||
408 | This is useful on NOMMU systems which are not capable |
||
409 | of sharing executables, but are capable of sharing code |
||
410 | in dynamic libraries. |
||
411 | |||
412 | config BUSYBOX_CONFIG_FEATURE_LIBBUSYBOX_STATIC |
||
413 | bool "Pull in all external references into libbusybox" |
||
414 | default BUSYBOX_DEFAULT_FEATURE_LIBBUSYBOX_STATIC |
||
415 | depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX |
||
416 | help |
||
417 | Make libbusybox library independent, not using or requiring |
||
418 | any other shared libraries. |
||
419 | |||
420 | config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL |
||
421 | bool "Produce a binary for each applet, linked against libbusybox" |
||
422 | default BUSYBOX_DEFAULT_FEATURE_INDIVIDUAL |
||
423 | depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX |
||
424 | help |
||
425 | If your CPU architecture doesn't allow for sharing text/rodata |
||
426 | sections of running binaries, but allows for runtime dynamic |
||
427 | libraries, this option will allow you to reduce memory footprint |
||
428 | when you have many different applets running at once. |
||
429 | |||
430 | If your CPU architecture allows for sharing text/rodata, |
||
431 | having single binary is more optimal. |
||
432 | |||
433 | Each applet will be a tiny program, dynamically linked |
||
434 | against libbusybox.so.N.N.N. |
||
435 | |||
436 | You need to have a working dynamic linker. |
||
437 | |||
438 | config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX |
||
439 | bool "Produce additional busybox binary linked against libbusybox" |
||
440 | default BUSYBOX_DEFAULT_FEATURE_SHARED_BUSYBOX |
||
441 | depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX |
||
442 | help |
||
443 | Build busybox, dynamically linked against libbusybox.so.N.N.N. |
||
444 | |||
445 | You need to have a working dynamic linker. |
||
446 | |||
447 | ### config BUILD_AT_ONCE |
||
448 | ### bool "Compile all sources at once" |
||
449 | ### default n |
||
450 | ### help |
||
451 | ### Normally each source-file is compiled with one invocation of |
||
452 | ### the compiler. |
||
453 | ### If you set this option, all sources are compiled at once. |
||
454 | ### This gives the compiler more opportunities to optimize which can |
||
455 | ### result in smaller and/or faster binaries. |
||
456 | ### |
||
457 | ### Setting this option will consume alot of memory, e.g. if you |
||
458 | ### enable all applets with all features, gcc uses more than 300MB |
||
459 | ### RAM during compilation of busybox. |
||
460 | ### |
||
461 | ### This option is most likely only beneficial for newer compilers |
||
462 | ### such as gcc-4.1 and above. |
||
463 | ### |
||
464 | ### Say 'N' unless you know what you are doing. |
||
465 | |||
466 | config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX |
||
467 | string "Cross compiler prefix" |
||
468 | default BUSYBOX_DEFAULT_CROSS_COMPILER_PREFIX |
||
469 | help |
||
470 | If you want to build busybox with a cross compiler, then you |
||
471 | will need to set this to the cross-compiler prefix, for example, |
||
472 | "i386-uclibc-". |
||
473 | |||
474 | Note that CROSS_COMPILE environment variable or |
||
475 | "make CROSS_COMPILE=xxx ..." will override this selection. |
||
476 | |||
477 | Native builds leave this empty. |
||
478 | |||
479 | config BUSYBOX_CONFIG_SYSROOT |
||
480 | string "Path to sysroot" |
||
481 | default BUSYBOX_DEFAULT_SYSROOT |
||
482 | help |
||
483 | If you want to build busybox with a cross compiler, then you |
||
484 | might also need to specify where /usr/include and /usr/lib |
||
485 | will be found. |
||
486 | |||
487 | For example, busybox can be built against an installed |
||
488 | Android NDK, platform version 9, for ARM ABI with |
||
489 | |||
490 | CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm |
||
491 | |||
492 | Native builds leave this empty. |
||
493 | |||
494 | config BUSYBOX_CONFIG_EXTRA_CFLAGS |
||
495 | string "Additional CFLAGS" |
||
496 | default BUSYBOX_DEFAULT_EXTRA_CFLAGS |
||
497 | help |
||
498 | Additional CFLAGS to pass to the compiler verbatim. |
||
499 | |||
500 | config BUSYBOX_CONFIG_EXTRA_LDFLAGS |
||
501 | string "Additional LDFLAGS" |
||
502 | default BUSYBOX_DEFAULT_EXTRA_LDFLAGS |
||
503 | help |
||
504 | Additional LDFLAGS to pass to the linker verbatim. |
||
505 | |||
506 | config BUSYBOX_CONFIG_EXTRA_LDLIBS |
||
507 | string "Additional LDLIBS" |
||
508 | default BUSYBOX_DEFAULT_EXTRA_LDLIBS |
||
509 | help |
||
510 | Additional LDLIBS to pass to the linker with -l. |
||
511 | |||
512 | config BUSYBOX_CONFIG_USE_PORTABLE_CODE |
||
513 | bool "Avoid using GCC-specific code constructs" |
||
514 | default BUSYBOX_DEFAULT_USE_PORTABLE_CODE |
||
515 | help |
||
516 | Use this option if you are trying to compile busybox with |
||
517 | compiler other than gcc. |
||
518 | If you do use gcc, this option may needlessly increase code size. |
||
519 | |||
520 | comment 'Installation Options ("make install" behavior)' |
||
521 | |||
522 | choice |
||
523 | prompt "What kind of applet links to install" |
||
524 | default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS |
||
525 | help |
||
526 | Choose what kind of links to applets are created by "make install". |
||
527 | |||
528 | config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS |
||
529 | bool "as soft-links" |
||
530 | help |
||
531 | Install applets as soft-links to the busybox binary. This needs some |
||
532 | free inodes on the filesystem, but might help with filesystem |
||
533 | generators that can't cope with hard-links. |
||
534 | |||
535 | config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS |
||
536 | bool "as hard-links" |
||
537 | help |
||
538 | Install applets as hard-links to the busybox binary. This might |
||
539 | count on a filesystem with few inodes. |
||
540 | |||
541 | config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS |
||
542 | bool "as script wrappers" |
||
543 | help |
||
544 | Install applets as script wrappers that call the busybox binary. |
||
545 | |||
546 | config BUSYBOX_CONFIG_INSTALL_APPLET_DONT |
||
547 | bool "not installed" |
||
548 | help |
||
549 | Do not install applet links. Useful when you plan to use |
||
550 | busybox --install for installing links, or plan to use |
||
551 | a standalone shell and thus don't need applet links. |
||
552 | |||
553 | endchoice |
||
554 | |||
555 | choice |
||
556 | prompt "/bin/sh applet link" |
||
557 | default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK |
||
558 | depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS |
||
559 | help |
||
560 | Choose how you install /bin/sh applet link. |
||
561 | |||
562 | config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK |
||
563 | bool "as soft-link" |
||
564 | help |
||
565 | Install /bin/sh applet as soft-link to the busybox binary. |
||
566 | |||
567 | config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK |
||
568 | bool "as hard-link" |
||
569 | help |
||
570 | Install /bin/sh applet as hard-link to the busybox binary. |
||
571 | |||
572 | config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER |
||
573 | bool "as script wrapper" |
||
574 | help |
||
575 | Install /bin/sh applet as script wrapper that calls |
||
576 | the busybox binary. |
||
577 | |||
578 | endchoice |
||
579 | |||
580 | config BUSYBOX_CONFIG_PREFIX |
||
581 | string "Destination path for 'make install'" |
||
582 | default BUSYBOX_DEFAULT_PREFIX |
||
583 | help |
||
584 | Where "make install" should install busybox binary and links. |
||
585 | |||
586 | comment 'Debugging Options' |
||
587 | |||
588 | config BUSYBOX_CONFIG_DEBUG |
||
589 | bool "Build with debug information" |
||
590 | default BUSYBOX_DEFAULT_DEBUG |
||
591 | help |
||
592 | Say Y here to compile with debug information. |
||
593 | This increases the size of the binary considerably, and |
||
594 | should only be used when doing development. |
||
595 | |||
596 | This adds -g option to gcc command line. |
||
597 | |||
598 | Most people should answer N. |
||
599 | |||
600 | config BUSYBOX_CONFIG_DEBUG_PESSIMIZE |
||
601 | bool "Disable compiler optimizations" |
||
602 | default BUSYBOX_DEFAULT_DEBUG_PESSIMIZE |
||
603 | depends on BUSYBOX_CONFIG_DEBUG |
||
604 | help |
||
605 | The compiler's optimization of source code can eliminate and reorder |
||
606 | code, resulting in an executable that's hard to understand when |
||
607 | stepping through it with a debugger. This switches it off, resulting |
||
608 | in a much bigger executable that more closely matches the source |
||
609 | code. |
||
610 | |||
611 | This replaces -Os/-O2 with -O0 in gcc command line. |
||
612 | |||
613 | config BUSYBOX_CONFIG_DEBUG_SANITIZE |
||
614 | bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)" |
||
615 | default BUSYBOX_DEFAULT_DEBUG_SANITIZE |
||
616 | help |
||
617 | Say Y here if you want to enable runtime sanitizers. These help |
||
618 | catch bad memory accesses (e.g. buffer overflows), but will make |
||
619 | the executable larger and slow down runtime a bit. |
||
620 | |||
621 | This adds -fsanitize=foo options to gcc command line. |
||
622 | |||
623 | If you aren't developing/testing busybox, say N here. |
||
624 | |||
625 | config BUSYBOX_CONFIG_UNIT_TEST |
||
626 | bool "Build unit tests" |
||
627 | default BUSYBOX_DEFAULT_UNIT_TEST |
||
628 | help |
||
629 | Say Y here if you want to build unit tests (both the framework and |
||
630 | test cases) as an applet. This results in bigger code, so you |
||
631 | probably don't want this option in production builds. |
||
632 | |||
633 | config BUSYBOX_CONFIG_WERROR |
||
634 | bool "Abort compilation on any warning" |
||
635 | default BUSYBOX_DEFAULT_WERROR |
||
636 | help |
||
637 | This adds -Werror to gcc command line. |
||
638 | |||
639 | Most people should answer N. |
||
640 | |||
641 | choice |
||
642 | prompt "Additional debugging library" |
||
643 | default BUSYBOX_CONFIG_NO_DEBUG_LIB |
||
644 | help |
||
645 | Using an additional debugging library will make busybox become |
||
646 | considerably larger and will cause it to run more slowly. You |
||
647 | should always leave this option disabled for production use. |
||
648 | |||
649 | dmalloc support: |
||
650 | ---------------- |
||
651 | This enables compiling with dmalloc ( http://dmalloc.com/ ) |
||
652 | which is an excellent public domain mem leak and malloc problem |
||
653 | detector. To enable dmalloc, before running busybox you will |
||
654 | want to properly set your environment, for example: |
||
655 | export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile |
||
656 | The 'debug=' value is generated using the following command |
||
657 | dmalloc -p log-stats -p log-non-free -p log-bad-space \ |
||
658 | -p log-elapsed-time -p check-fence -p check-heap \ |
||
659 | -p check-lists -p check-blank -p check-funcs -p realloc-copy \ |
||
660 | -p allow-free-null |
||
661 | |||
662 | Electric-fence support: |
||
663 | ----------------------- |
||
664 | This enables compiling with Electric-fence support. Electric |
||
665 | fence is another very useful malloc debugging library which uses |
||
666 | your computer's virtual memory hardware to detect illegal memory |
||
667 | accesses. This support will make busybox be considerably larger |
||
668 | and run slower, so you should leave this option disabled unless |
||
669 | you are hunting a hard to find memory problem. |
||
670 | |||
671 | |||
672 | config BUSYBOX_CONFIG_NO_DEBUG_LIB |
||
673 | bool "None" |
||
674 | |||
675 | config BUSYBOX_CONFIG_DMALLOC |
||
676 | bool "Dmalloc" |
||
677 | |||
678 | config BUSYBOX_CONFIG_EFENCE |
||
679 | bool "Electric-fence" |
||
680 | |||
681 | endchoice |
||
682 | |||
3 | office | 683 | endmenu |
684 | |||
1 | office | 685 | source libbb/Config.in |
686 | |||
687 | comment "Applets" |
||
688 | |||
689 | source archival/Config.in |
||
690 | source coreutils/Config.in |
||
691 | source console-tools/Config.in |
||
692 | source debianutils/Config.in |
||
693 | source editors/Config.in |
||
694 | source findutils/Config.in |
||
695 | source init/Config.in |
||
696 | source loginutils/Config.in |
||
697 | source e2fsprogs/Config.in |
||
698 | source modutils/Config.in |
||
699 | source util-linux/Config.in |
||
700 | source miscutils/Config.in |
||
701 | source networking/Config.in |
||
702 | source printutils/Config.in |
||
703 | source mailutils/Config.in |
||
704 | source procps/Config.in |
||
705 | source runit/Config.in |
||
706 | source selinux/Config.in |
||
707 | source shell/Config.in |
||
708 | source sysklogd/Config.in |