blob: cb41f46aebd077ebda1513dc6d27d4cde550ab5e [file] [log] [blame]
Eric Andersenc9f20d92002-12-05 08:41:41 +00001#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
6mainmenu "BusyBox Configuration"
7
Eric Andersen068b6b02002-12-13 22:53:28 +00008config HAVE_DOT_CONFIG
9 bool
10 default y
11
Rob Landley9dc69132006-03-13 02:52:23 +000012menu "Busybox Settings"
Mike Frysinger72d59db2006-03-10 23:17:17 +000013
Eric Andersen23b51462002-12-05 21:25:20 +000014menu "General Configuration"
15
Rob Landleyd5b9b602006-05-31 23:23:42 +000016config CONFIG_NITPICK
17 bool "See lots more (probably unnecessary) configuration options."
18 default n
19 help
20 Some BusyBox applets have more configuration options than anyone
21 will ever care about. To avoid drowining people in complexity, most
22 of the applet features that can be set to a sane default value are
23 hidden, unless you hit the above switch.
24
25 This is better than to telling people to edit the busybox source
26 code, but not by much.
27
28 See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet
29
30 You have been warned.
31
Denis Vlasenko97a8dd32006-10-01 15:55:11 +000032config CONFIG_DESKTOP
33 bool "Enable options for full-blown desktop systems."
34 default n
35 help
36 Enable options and features which are not essential.
37 Select this only if you plan to use busybox on full-blown
38 desktop machine with common Linux distro, not on an ebmbedded box.
39
Eric Andersenc9f20d92002-12-05 08:41:41 +000040choice
41 prompt "Buffer allocation policy"
Eric Andersen72d8e442003-08-05 02:18:25 +000042 default CONFIG_FEATURE_BUFFERS_USE_MALLOC
Rob Landleyc7ddefc2006-06-14 01:24:33 +000043 depends on CONFIG_NITPICK
Eric Andersenc9f20d92002-12-05 08:41:41 +000044 help
Eric Andersen53601822002-12-05 21:12:42 +000045 There are 3 ways BusyBox can handle buffer allocations:
46 - Use malloc. This costs code size for the call to xmalloc.
47 - Put them on stack. For some very small machines with limited stack
48 space, this can be deadly. For most folks, this works just fine.
49 - Put them in BSS. This works beautifully for computers with a real
50 MMU (and OS support), but wastes runtime RAM for uCLinux. This
51 behavior was the only one available for BusyBox versions 0.48 and
52 earlier.
Eric Andersenc9f20d92002-12-05 08:41:41 +000053
54config CONFIG_FEATURE_BUFFERS_USE_MALLOC
55 bool "Allocate with Malloc"
56
57config CONFIG_FEATURE_BUFFERS_GO_ON_STACK
58 bool "Allocate on the Stack"
59
60config CONFIG_FEATURE_BUFFERS_GO_IN_BSS
61 bool "Allocate in the .bss section"
62
63endchoice
64
Bernhard Reutner-Fischer81901a02006-03-31 18:43:55 +000065config CONFIG_SHOW_USAGE
66 bool "Show terse applet usage messages"
67 default y
68 help
69 All BusyBox applets will show help messages when invoked with
70 wrong arguments. You can turn off printing these terse usage
71 messages if you say no here.
72 This will save you up to 7k.
73
Eric Andersenc9f20d92002-12-05 08:41:41 +000074config CONFIG_FEATURE_VERBOSE_USAGE
75 bool "Show verbose applet usage messages"
76 default n
Bernhard Reutner-Fischer81901a02006-03-31 18:43:55 +000077 select CONFIG_SHOW_USAGE
Eric Andersenc9f20d92002-12-05 08:41:41 +000078 help
Eric Andersen53601822002-12-05 21:12:42 +000079 All BusyBox applets will show more verbose help messages when
Eric Andersen88c916b2003-10-22 09:58:56 +000080 busybox is invoked with --help. This will add a lot of text to the
Eric Andersen53601822002-12-05 21:12:42 +000081 busybox binary. In the default configuration, this will add about
82 13k, but it can add much more depending on your configuration.
Eric Andersenc9f20d92002-12-05 08:41:41 +000083
Rob Landley7e21d5f2006-04-27 23:34:46 +000084config CONFIG_FEATURE_COMPRESS_USAGE
85 bool "Store applet usage messages in compressed form"
86 default y
Denis Vlasenkob7d8dd92006-09-07 05:43:38 +000087 depends on CONFIG_SHOW_USAGE
Rob Landley7e21d5f2006-04-27 23:34:46 +000088 help
89 Store usage messages in compressed form, uncompress them on-the-fly
90 when <applet> --help is called.
91
Rob Landleyc7ddefc2006-06-14 01:24:33 +000092 If you have a really tiny busybox with few applets enabled (and
93 bunzip2 isn't one of them), the overhead of the decompressor might
94 be noticeable. Also, if you run executables directly from ROM
95 and have very little memory, this might not be a win. Otherwise,
96 you probably want this.
97
Eric Andersenc9f20d92002-12-05 08:41:41 +000098config CONFIG_FEATURE_INSTALLER
99 bool "Support --install [-s] to install applet links at runtime"
100 default n
101 help
Eric Andersen53601822002-12-05 21:12:42 +0000102 Enable 'busybox --install [-s]' support. This will allow you to use
103 busybox at runtime to create hard links or symlinks for all the
104 applets that are compiled into busybox. This feature requires the
105 /proc filesystem.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000106
107config CONFIG_LOCALE_SUPPORT
108 bool "Enable locale support (system needs locale for this to work)"
109 default n
110 help
Eric Andersen88c916b2003-10-22 09:58:56 +0000111 Enable this if your system has locale support and you would like
Eric Andersen53601822002-12-05 21:12:42 +0000112 busybox to support locale settings.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000113
Bernhard Reutner-Fischer01d23ad2006-05-26 20:19:22 +0000114config CONFIG_GETOPT_LONG
Bernhard Reutner-Fischer74704192006-06-16 14:03:23 +0000115 bool
116 default y
117# bool "Enable support for --long-options"
118# default n
119# help
120# Enable this if you want busybox applets to use the gnu --long-option
121# style, in addition to single character -a -b -c style options.
Bernhard Reutner-Fischer01d23ad2006-05-26 20:19:22 +0000122
Eric Andersenc9f20d92002-12-05 08:41:41 +0000123config CONFIG_FEATURE_DEVPTS
124 bool "Use the devpts filesystem for Unix98 PTYs"
Rob Landleyc7ddefc2006-06-14 01:24:33 +0000125 default y
Eric Andersenc9f20d92002-12-05 08:41:41 +0000126 help
Eric Andersen53601822002-12-05 21:12:42 +0000127 Enable if you want BusyBox to use Unix98 PTY support. If enabled,
128 busybox will use /dev/ptmx for the master side of the pseudoterminal
129 and /dev/pts/<number> for the slave side. Otherwise, BSD style
130 /dev/ttyp<number> will be used. To use this option, you should have
Rob Landleyd5b9b602006-05-31 23:23:42 +0000131 devpts mounted.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000132
133config CONFIG_FEATURE_CLEAN_UP
134 bool "Clean up all memory before exiting (usually not needed)"
135 default n
Rob Landleyc7ddefc2006-06-14 01:24:33 +0000136 depends on CONFIG_NITPICK
Eric Andersenc9f20d92002-12-05 08:41:41 +0000137 help
Rob Landley1ab4c3d2006-02-08 18:50:17 +0000138 As a size optimization, busybox normally exits without explicitly
139 freeing dynamically allocated memory or closing files. This saves
140 space since the OS will clean up for us, but it can confuse debuggers
141 like valgrind, which report tons of memory and resource leaks.
142
143 Don't enable this unless you have a really good reason to clean
Eric Andersene5642112003-07-14 19:37:08 +0000144 things up manually.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000145
146config CONFIG_FEATURE_SUID
147 bool "Support for SUID/SGID handling"
148 default n
149 help
Rob Landleyd5b9b602006-05-31 23:23:42 +0000150 With this option you can install the busybox binary belonging
151 to root with the suid bit set, and it'll and it'll automatically drop
152 priviledges for applets that don't need root access.
153
154 If you're really paranoid and don't want to do this, build two
155 busybox binaries with different applets in them (and the appropriate
156 symlinks pointing to each binary), and only set the suid bit on the
157 one that needs it. The applets currently marked to need the suid bit
158 are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
159 and vlock.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000160
Denis Vlasenko049d6b82006-09-07 06:02:39 +0000161config CONFIG_FEATURE_SYSLOG
162 bool "Support for syslog"
163 default n
164 help
165 This option is auto-selected when you select any applet which may
166 send its output to syslog. You do not need to select it manually.
167
Eric Andersenc9f20d92002-12-05 08:41:41 +0000168config CONFIG_FEATURE_SUID_CONFIG
169 bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
Eric Andersen5043ea12005-06-23 19:15:40 +0000170 default n if CONFIG_FEATURE_SUID
Eric Andersenc9f20d92002-12-05 08:41:41 +0000171 depends on CONFIG_FEATURE_SUID
172 help
Rob Landleyd5b9b602006-05-31 23:23:42 +0000173 Allow the SUID / SGID state of an applet to be determined at runtime
174 by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
175 The format of this file is as follows:
Eric Andersene5272072003-07-22 22:15:21 +0000176
177 <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
Eric Andersen5043ea12005-06-23 19:15:40 +0000178
Eric Andersene5272072003-07-22 22:15:21 +0000179 An example might help:
180
181 [SUID]
182 su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0
183 su = ssx # exactly the same
184
185 mount = sx- root.disk # applet mount can be run by root and members of group disk
186 # and runs with euid=0
187
188 cp = --- # disable applet cp for everyone
189
Rob Landleyfdc4c202005-04-29 19:48:29 +0000190 The file has to be owned by user root, group root and has to be
191 writeable only by root:
192 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
193 The busybox executable has to be owned by user root, group
194 root and has to be setuid root for this to work:
195 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
196
Eric Andersene5272072003-07-22 22:15:21 +0000197 Robert 'sandman' Griebl has more information here:
198 <url: http://www.softforge.de/bb/suid.html >.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000199
200config CONFIG_FEATURE_SUID_CONFIG_QUIET
201 bool "Suppress warning message if /etc/busybox.conf is not readable"
Rob Landleyd5b9b602006-05-31 23:23:42 +0000202 default y
Eric Andersenc9f20d92002-12-05 08:41:41 +0000203 depends on CONFIG_FEATURE_SUID_CONFIG
204 help
Eric Andersene5272072003-07-22 22:15:21 +0000205 /etc/busybox.conf should be readable by the user needing the SUID, check
206 this option to avoid users to be notified about missing permissions.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000207
Eric Andersen9e480452003-07-03 10:07:04 +0000208config CONFIG_SELINUX
209 bool "Support NSA Security Enhanced Linux"
210 default n
211 help
Rob Landley24b0a952006-03-29 15:35:23 +0000212 Enable support for SELinux in applets ls, ps, and id. Also provide
213 the option of compiling in SELinux applets.
Eric Andersen9e480452003-07-03 10:07:04 +0000214
Rob Landley24b0a952006-03-29 15:35:23 +0000215 If you do not have a complete SELinux userland installed, this stuff
216 will not compile. Go visit
Eric Andersen31d898f2004-02-05 00:18:26 +0000217 http://www.nsa.gov/selinux/index.html
Rob Landley24b0a952006-03-29 15:35:23 +0000218 to download the necessary stuff to allow busybox to compile with
219 this option enabled. Specifially, libselinux 1.28 or better is
220 directly required by busybox. If the installation is located in a
221 non-standard directory, provide it by invoking make as follows:
222 CFLAGS=-I<libselinux-include-path> \
223 LDFLAGS=-L<libselinux-lib-path> \
224 make
Eric Andersen31d898f2004-02-05 00:18:26 +0000225
226 Most people will leave this set to 'N'.
227
Rob Landleyc7ddefc2006-06-14 01:24:33 +0000228config CONFIG_BUSYBOX_EXEC_PATH
229 string "Path to BusyBox executable"
230 default "/proc/self/exe"
231 help
232 When Busybox applets need to run other busybox applets, BusyBox
233 sometimes needs to exec() itself. When the /proc filesystem is
234 mounted, /proc/self/exe always points to the currently running
235 executable. If you haven't got /proc, set this to wherever you
236 want to run BusyBox from.
237
Eric Andersenc9f20d92002-12-05 08:41:41 +0000238endmenu
239
240menu 'Build Options'
241
Eric Andersene5272072003-07-22 22:15:21 +0000242config CONFIG_STATIC
Eric Andersenc9f20d92002-12-05 08:41:41 +0000243 bool "Build BusyBox as a static binary (no shared libs)"
244 default n
245 help
Eric Andersenc7bda1c2004-03-15 08:29:22 +0000246 If you want to build a static BusyBox binary, which does not
247 use or require any shared libraries, then enable this option.
Eric Andersen88c916b2003-10-22 09:58:56 +0000248 This can cause BusyBox to be considerably larger, so you should
Eric Andersene5272072003-07-22 22:15:21 +0000249 leave this option false unless you have a good reason (i.e.
250 your target platform does not support shared libraries, or
251 you are building an initrd which doesn't need anything but
252 BusyBox, etc).
Eric Andersenc9f20d92002-12-05 08:41:41 +0000253
Eric Andersene5272072003-07-22 22:15:21 +0000254 Most people will leave this set to 'N'.
255
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000256config CONFIG_BUILD_LIBBUSYBOX
257 bool "Build shared libbusybox"
Rob Landleyc7ddefc2006-06-14 01:24:33 +0000258 default n
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000259 help
260 Build a shared library libbusybox.so which contains all
261 libraries used inside busybox.
262
Rob Landleyd6e50832006-06-15 15:04:53 +0000263 This is an experimental feature intended to support the upcoming
264 "make standalone" mode. Enabling it against the one big busybox
265 binary serves no purpose (and increases the size). You should
266 almost certainly say "no" to this right now.
267
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000268config CONFIG_FEATURE_FULL_LIBBUSYBOX
269 bool "Feature-complete libbusybox"
270 default n if !CONFIG_FEATURE_SHARED_BUSYBOX
271 depends on CONFIG_BUILD_LIBBUSYBOX
272 help
273 Build a libbusybox with the complete feature-set, disregarding
274 the actually selected config.
275
276 Normally, libbusybox will only contain the features which are
277 used by busybox itself. If you plan to write a separate
278 standalone application which uses libbusybox say 'Y'.
279
Rob Landley9e275e32006-01-31 03:45:26 +0000280 Note: libbusybox is GPL, not LGPL, and exports no stable API that
281 might act as a copyright barrier. We can and will modify the
282 exported function set between releases (even minor version number
283 changes), and happily break out-of-tree features.
284
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000285 Say 'N' if in doubt.
286
287config CONFIG_FEATURE_SHARED_BUSYBOX
288 bool "Use shared libbusybox for busybox"
289 default y if CONFIG_BUILD_LIBBUSYBOX
290 depends on !CONFIG_STATIC && CONFIG_BUILD_LIBBUSYBOX
291 help
292 Use libbusybox.so also for busybox itself.
293 You need to have a working dynamic linker to use this variant.
294
Eric Andersene5272072003-07-22 22:15:21 +0000295config CONFIG_LFS
Eric Andersenc7bda1c2004-03-15 08:29:22 +0000296 bool "Build with Large File Support (for accessing files > 2 GB)"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000297 default n
Eric Andersenf086ed82004-05-25 11:30:22 +0000298 select FDISK_SUPPORT_LARGE_DISKS
Eric Andersenc9f20d92002-12-05 08:41:41 +0000299 help
300 If you want to build BusyBox with large file support, then enable
301 this option. This will have no effect if your kernel or your C
302 library lacks large file support for large files. Some of the
303 programs that can benefit from large file support include dd, gzip,
304 cp, mount, tar, and many others. If you want to access files larger
305 than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
306
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000307config CONFIG_BUILD_AT_ONCE
308 bool "Compile all sources at once"
309 default n
310 help
311 Normally each source-file is compiled with one invocation of
312 the compiler.
313 If you set this option, all sources are compiled at once.
314 This gives the compiler more opportunities to optimize which can
315 result in smaller and/or faster binaries.
316
317 Setting this option will consume alot of memory, e.g. if you
318 enable all applets with all features, gcc uses more than 300MB
319 RAM during compilation of busybox.
320
321 This option is most likely only beneficial for newer compilers
322 such as gcc-4.1 and above.
323
324 Say 'N' unless you know what you are doing.
325
Eric Andersenc9f20d92002-12-05 08:41:41 +0000326endmenu
327
Eric Andersenc9f20d92002-12-05 08:41:41 +0000328menu 'Debugging Options'
329
Eric Andersene5272072003-07-22 22:15:21 +0000330config CONFIG_DEBUG
Rob Landleyc503df52006-05-09 22:08:56 +0000331 bool "Build BusyBox with extra Debugging symbols"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000332 default n
333 help
Rob Landleyc503df52006-05-09 22:08:56 +0000334 Say Y here if you wish to examine BusyBox internals while applets are
335 running. This increases the size of the binary considerably, and
336 should only be used when doing development. If you are doing
337 development and want to debug BusyBox, answer Y.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000338
Eric Andersenf086ed82004-05-25 11:30:22 +0000339 Most people should answer N.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000340
Rob Landleyc503df52006-05-09 22:08:56 +0000341config CONFIG_DEBUG_PESSIMIZE
342 bool "Disable compiler optimizations."
343 default n
344 depends on CONFIG_DEBUG
345 help
346 The compiler's optimization of source code can eliminate and reorder
347 code, resulting in an executable that's hard to understand when
348 stepping through it with a debugger. This switches it off, resulting
349 in a much bigger executable that more closely matches the source
350 code.
351
Eric Andersenf086ed82004-05-25 11:30:22 +0000352choice
353 prompt "Additional debugging library"
354 default CONFIG_NO_DEBUG_LIB
355 depends on CONFIG_DEBUG
Eric Andersenc9f20d92002-12-05 08:41:41 +0000356 help
Eric Andersenf086ed82004-05-25 11:30:22 +0000357 Using an additional debugging library will make BusyBox become
358 considerable larger and will cause it to run more slowly. You
359 should always leave this option disabled for production use.
360
361 dmalloc support:
362 ----------------
Eric Andersenc9f20d92002-12-05 08:41:41 +0000363 This enables compiling with dmalloc ( http://dmalloc.com/ )
364 which is an excellent public domain mem leak and malloc problem
365 detector. To enable dmalloc, before running busybox you will
366 want to properly set your environment, for example:
367 export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
368 The 'debug=' value is generated using the following command
369 dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
370 -p check-fence -p check-heap -p check-lists -p check-blank \
371 -p check-funcs -p realloc-copy -p allow-free-null
372
Eric Andersenf086ed82004-05-25 11:30:22 +0000373 Electric-fence support:
374 -----------------------
Eric Andersenc9f20d92002-12-05 08:41:41 +0000375 This enables compiling with Electric-fence support. Electric
Eric Andersen88c916b2003-10-22 09:58:56 +0000376 fence is another very useful malloc debugging library which uses
Eric Andersenc7bda1c2004-03-15 08:29:22 +0000377 your computer's virtual memory hardware to detect illegal memory
378 accesses. This support will make BusyBox be considerable larger
379 and run slower, so you should leave this option disabled unless
Eric Andersenc9f20d92002-12-05 08:41:41 +0000380 you are hunting a hard to find memory problem.
381
Eric Andersenf086ed82004-05-25 11:30:22 +0000382
383config CONFIG_NO_DEBUG_LIB
384 bool "None"
385
386config CONFIG_DMALLOC
387 bool "Dmalloc"
388
389config CONFIG_EFENCE
390 bool "Electric-fence"
391
392endchoice
393
Rob Landleyf8fd4db2006-01-30 01:30:39 +0000394config CONFIG_DEBUG_YANK_SUSv2
395 bool "Disable obsolete features removed before SUSv3?"
396 default y
397 help
Bernhard Reutner-Fischera1bccc02006-04-02 20:17:55 +0000398 This option will disable backwards compatibility with SuSv2,
Rob Landleyf8fd4db2006-01-30 01:30:39 +0000399 specifically, old-style numeric options ('command -1 <file>')
400 will not be supported in head, tail, and fold. (Note: should
401 yank from renice too.)
Eric Andersenf086ed82004-05-25 11:30:22 +0000402
Eric Andersenc9f20d92002-12-05 08:41:41 +0000403endmenu
Mike Frysinger72d59db2006-03-10 23:17:17 +0000404
405menu 'Installation Options'
406
407config CONFIG_INSTALL_NO_USR
408 bool "Don't use /usr"
409 default n
410 help
411 Disable use of /usr. Don't activate this option if you don't know
412 that you really want this behaviour.
413
414choice
415 prompt "Applets links"
416 default CONFIG_INSTALL_APPLET_SYMLINKS
417 help
418 Choose how you install applets links.
419
420config CONFIG_INSTALL_APPLET_SYMLINKS
421 bool "as soft-links"
422 help
423 Install applets as soft-links to the busybox binary. This needs some
424 free inodes on the filesystem, but might help with filesystem
425 generators that can't cope with hard-links.
426
427config CONFIG_INSTALL_APPLET_HARDLINKS
428 bool "as hard-links"
429 help
430 Install applets as hard-links to the busybox binary. This might count
431 on a filesystem with few inodes.
432
433config CONFIG_INSTALL_APPLET_DONT
434 bool
435 prompt "not installed"
436 depends on CONFIG_FEATURE_INSTALLER || CONFIG_FEATURE_SH_STANDALONE_SHELL
437 help
438 Do not install applets links. Usefull when using the -install feature
439 or a standalone shell for rescue pruposes.
440
441endchoice
442
443config PREFIX
444 string "BusyBox installation prefix"
445 default "./_install"
446 help
447 Define your directory to install BusyBox files/subdirs in.
448
449endmenu
450
451source libbb/Config.in
452
Rob Landley9dc69132006-03-13 02:52:23 +0000453endmenu
454
Mike Frysinger72d59db2006-03-10 23:17:17 +0000455comment "Applets"
456
457source archival/Config.in
458source coreutils/Config.in
459source console-tools/Config.in
460source debianutils/Config.in
461source editors/Config.in
462source findutils/Config.in
463source init/Config.in
464source loginutils/Config.in
465source e2fsprogs/Config.in
466source modutils/Config.in
467source util-linux/Config.in
468source miscutils/Config.in
469source networking/Config.in
470source procps/Config.in
471source shell/Config.in
472source sysklogd/Config.in