Remove some out of date bits.
[oweals/busybox.git] / Config.in
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 choice
17         prompt "Buffer allocation policy"
18         default CONFIG_FEATURE_BUFFERS_USE_MALLOC
19         help
20           There are 3 ways BusyBox can handle buffer allocations:
21           - Use malloc. This costs code size for the call to xmalloc.
22           - Put them on stack. For some very small machines with limited stack
23             space, this can be deadly.  For most folks, this works just fine.
24           - Put them in BSS. This works beautifully for computers with a real
25             MMU (and OS support), but wastes runtime RAM for uCLinux. This
26             behavior was the only one available for BusyBox versions 0.48 and
27             earlier.
28
29 config CONFIG_FEATURE_BUFFERS_USE_MALLOC
30         bool "Allocate with Malloc"
31
32 config CONFIG_FEATURE_BUFFERS_GO_ON_STACK
33         bool "Allocate on the Stack"
34
35 config CONFIG_FEATURE_BUFFERS_GO_IN_BSS
36         bool "Allocate in the .bss section"
37
38 endchoice
39
40 config CONFIG_SHOW_USAGE
41         bool "Show terse applet usage messages"
42         default y
43         help
44           All BusyBox applets will show help messages when invoked with
45           wrong arguments. You can turn off printing these terse usage
46           messages if you say no here.
47           This will save you up to 7k.
48
49 config CONFIG_FEATURE_VERBOSE_USAGE
50         bool "Show verbose applet usage messages"
51         default n
52         select CONFIG_SHOW_USAGE
53         help
54           All BusyBox applets will show more verbose help messages when
55           busybox is invoked with --help.  This will add a lot of text to the
56           busybox binary.  In the default configuration, this will add about
57           13k, but it can add much more depending on your configuration.
58
59 config CONFIG_FEATURE_COMPRESS_USAGE
60         bool "Store applet usage messages in compressed form"
61         default y
62         depends on CONFIG_SHOW_USAGE
63         help
64           Store usage messages in compressed form, uncompress them on-the-fly
65           when <applet> --help is called.
66
67 config CONFIG_FEATURE_INSTALLER
68         bool "Support --install [-s] to install applet links at runtime"
69         default n
70         help
71           Enable 'busybox --install [-s]' support.  This will allow you to use
72           busybox at runtime to create hard links or symlinks for all the
73           applets that are compiled into busybox.  This feature requires the
74           /proc filesystem.
75
76 config CONFIG_LOCALE_SUPPORT
77         bool "Enable locale support (system needs locale for this to work)"
78         default n
79         help
80           Enable this if your system has locale support and you would like
81           busybox to support locale settings.
82
83 config CONFIG_FEATURE_DEVFS
84         bool "Use devfs names for devices"
85         default n
86         help
87           This tells busybox to look for names like /dev/loop/0 instead of
88           /dev/loop0.  If your /dev directory has normal names instead of
89           devfs names, you don't want this.
90
91 config CONFIG_FEATURE_DEVPTS
92         bool "Use the devpts filesystem for Unix98 PTYs"
93         default y if CONFIG_FEATURE_DEVFS
94         help
95           Enable if you want BusyBox to use Unix98 PTY support. If enabled,
96           busybox will use /dev/ptmx for the master side of the pseudoterminal
97           and /dev/pts/<number> for the slave side.  Otherwise, BSD style
98           /dev/ttyp<number> will be used. To use this option, you should have
99           devpts or devfs mounted.
100
101 config CONFIG_FEATURE_CLEAN_UP
102         bool "Clean up all memory before exiting (usually not needed)"
103         default n
104         help
105           As a size optimization, busybox normally exits without explicitly
106           freeing dynamically allocated memory or closing files.  This saves
107           space since the OS will clean up for us, but it can confuse debuggers
108           like valgrind, which report tons of memory and resource leaks.
109
110           Don't enable this unless you have a really good reason to clean
111           things up manually.
112
113 config CONFIG_FEATURE_SUID
114         bool "Support for SUID/SGID handling"
115         default n
116         help
117           Support SUID and SGID binaries.
118
119 config CONFIG_FEATURE_SUID_CONFIG
120         bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
121         default n if CONFIG_FEATURE_SUID
122         depends on CONFIG_FEATURE_SUID
123         help
124           Allow the SUID / SGID state of an applet to be determined runtime by
125           checking /etc/busybox.conf.  The format of this file is as follows:
126
127           <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
128
129           An example might help:
130
131           [SUID]
132           su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0
133           su = ssx        # exactly the same
134
135           mount = sx- root.disk # applet mount can be run by root and members of group disk
136                                 # and runs with euid=0
137
138           cp = --- # disable applet cp for everyone
139
140           The file has to be owned by user root, group root and has to be
141           writeable only by root:
142                 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
143           The busybox executable has to be owned by user root, group
144           root and has to be setuid root for this to work:
145                 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
146
147           Robert 'sandman' Griebl has more information here:
148           <url: http://www.softforge.de/bb/suid.html >.
149
150 config CONFIG_FEATURE_SUID_CONFIG_QUIET
151         bool "Suppress warning message if /etc/busybox.conf is not readable"
152         default n
153         depends on CONFIG_FEATURE_SUID_CONFIG
154         help
155           /etc/busybox.conf should be readable by the user needing the SUID, check
156           this option to avoid users to be notified about missing permissions.
157
158 config CONFIG_SELINUX
159         bool "Support NSA Security Enhanced Linux"
160         default n
161         help
162           Enable support for SELinux in applets ls, ps, and id.  Also provide
163           the option of compiling in SELinux applets.
164
165           If you do not have a complete SELinux userland installed, this stuff
166           will not compile. Go visit
167                 http://www.nsa.gov/selinux/index.html
168           to download the necessary stuff to allow busybox to compile with
169           this option enabled. Specifially, libselinux 1.28 or better is
170           directly required by busybox. If the installation is located in a
171           non-standard directory, provide it by invoking make as follows:
172                 CFLAGS=-I<libselinux-include-path> \
173                 LDFLAGS=-L<libselinux-lib-path> \
174                 make
175
176           Most people will leave this set to 'N'.
177
178 endmenu
179
180 menu 'Build Options'
181
182 config CONFIG_STATIC
183         bool "Build BusyBox as a static binary (no shared libs)"
184         default n
185         help
186           If you want to build a static BusyBox binary, which does not
187           use or require any shared libraries, then enable this option.
188           This can cause BusyBox to be considerably larger, so you should
189           leave this option false unless you have a good reason (i.e.
190           your target platform does not support shared libraries, or
191           you are building an initrd which doesn't need anything but
192           BusyBox, etc).
193
194           Most people will leave this set to 'N'.
195
196 config CONFIG_BUILD_LIBBUSYBOX
197         bool "Build shared libbusybox"
198         default y
199         help
200           Build a shared library libbusybox.so which contains all
201           libraries used inside busybox.
202
203 config CONFIG_FEATURE_FULL_LIBBUSYBOX
204         bool "Feature-complete libbusybox"
205         default n if !CONFIG_FEATURE_SHARED_BUSYBOX
206         depends on CONFIG_BUILD_LIBBUSYBOX
207         help
208           Build a libbusybox with the complete feature-set, disregarding
209           the actually selected config.
210
211           Normally, libbusybox will only contain the features which are
212           used by busybox itself. If you plan to write a separate
213           standalone application which uses libbusybox say 'Y'.
214
215           Note: libbusybox is GPL, not LGPL, and exports no stable API that
216           might act as a copyright barrier.  We can and will modify the
217           exported function set between releases (even minor version number
218           changes), and happily break out-of-tree features.
219
220           Say 'N' if in doubt.
221
222 config CONFIG_FEATURE_SHARED_BUSYBOX
223         bool "Use shared libbusybox for busybox"
224         default y if CONFIG_BUILD_LIBBUSYBOX
225         depends on !CONFIG_STATIC && CONFIG_BUILD_LIBBUSYBOX
226         help
227           Use libbusybox.so also for busybox itself.
228           You need to have a working dynamic linker to use this variant.
229
230 config CONFIG_LFS
231         bool "Build with Large File Support (for accessing files > 2 GB)"
232         default n
233         select FDISK_SUPPORT_LARGE_DISKS
234         help
235           If you want to build BusyBox with large file support, then enable
236           this option.  This will have no effect if your kernel or your C
237           library lacks large file support for large files.  Some of the
238           programs that can benefit from large file support include dd, gzip,
239           cp, mount, tar, and many others.  If you want to access files larger
240           than 2 Gigabytes, enable this option.  Otherwise, leave it set to 'N'.
241
242 config USING_CROSS_COMPILER
243         bool "Do you want to build BusyBox with a Cross Compiler?"
244         default n
245         help
246           Do you want to build BusyBox with a Cross Compiler?  If so,
247           then enable this option.  Otherwise leave it set to 'N'.
248
249 config CROSS_COMPILER_PREFIX
250         string "Cross Compiler prefix"
251         default "/usr/i386-linux-uclibc/bin/i386-uclibc-"
252         depends on USING_CROSS_COMPILER
253         help
254           If you want to build BusyBox with a cross compiler, then you
255           will need to set this to the cross-compiler prefix.  For example,
256           if my cross-compiler is /usr/i386-linux-uclibc/bin/i386-uclibc-gcc
257           then I would enter '/usr/i386-linux-uclibc/bin/i386-uclibc-' here,
258           which will ensure the correct compiler is used.
259
260 config EXTRA_CFLAGS_OPTIONS
261         string "Any extra CFLAGS options for the compiler?"
262         default ""
263         help
264           Do you want to pass any extra CFLAGS options to the compiler as
265           you build BusyBox? If so, this is the option for you...  For example,
266           if you want to add some simple compiler switches (like -march=i686),
267           or check for warnings using -Werror, just those options here.
268
269 config CONFIG_BUILD_AT_ONCE
270         bool "Compile all sources at once"
271         default n
272         help
273           Normally each source-file is compiled with one invocation of
274           the compiler.
275           If you set this option, all sources are compiled at once.
276           This gives the compiler more opportunities to optimize which can
277           result in smaller and/or faster binaries.
278
279           Setting this option will consume alot of memory, e.g. if you
280           enable all applets with all features, gcc uses more than 300MB
281           RAM during compilation of busybox.
282
283           This option is most likely only beneficial for newer compilers
284           such as gcc-4.1 and above.
285
286           Say 'N' unless you know what you are doing.
287
288 endmenu
289
290 menu 'Debugging Options'
291
292 config CONFIG_DEBUG
293         bool "Build BusyBox with extra Debugging symbols"
294         default n
295         help
296           Say Y here if you wish to examine BusyBox internals while applets are
297           running.  This increases the size of the binary considerably, and
298           should only be used when doing development.  If you are doing
299           development and want to debug BusyBox, answer Y.
300
301           Most people should answer N.
302
303 config CONFIG_DEBUG_PESSIMIZE
304         bool "Disable compiler optimizations."
305         default n
306         depends on CONFIG_DEBUG
307         help
308           The compiler's optimization of source code can eliminate and reorder
309           code, resulting in an executable that's hard to understand when
310           stepping through it with a debugger.  This switches it off, resulting
311           in a much bigger executable that more closely matches the source
312           code.
313
314 choice
315         prompt "Additional debugging library"
316         default CONFIG_NO_DEBUG_LIB
317         depends on CONFIG_DEBUG
318         help
319           Using an additional debugging library will make BusyBox become
320           considerable larger and will cause it to run more slowly.  You
321           should always leave this option disabled for production use.
322
323           dmalloc support:
324           ----------------
325           This enables compiling with dmalloc ( http://dmalloc.com/ )
326           which is an excellent public domain mem leak and malloc problem
327           detector.  To enable dmalloc, before running busybox you will
328           want to properly set your environment, for example:
329             export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
330           The 'debug=' value is generated using the following command
331             dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
332                -p check-fence -p check-heap -p check-lists -p check-blank \
333                -p check-funcs -p realloc-copy -p allow-free-null
334
335           Electric-fence support:
336           -----------------------
337           This enables compiling with Electric-fence support.  Electric
338           fence is another very useful malloc debugging library which uses
339           your computer's virtual memory hardware to detect illegal memory
340           accesses.  This support will make BusyBox be considerable larger
341           and run slower, so you should leave this option disabled unless
342           you are hunting a hard to find memory problem.
343
344
345 config CONFIG_NO_DEBUG_LIB
346         bool "None"
347
348 config CONFIG_DMALLOC
349         bool "Dmalloc"
350
351 config CONFIG_EFENCE
352         bool "Electric-fence"
353
354 endchoice
355
356 config CONFIG_DEBUG_YANK_SUSv2
357         bool "Disable obsolete features removed before SUSv3?"
358         default y
359         help
360           This option will disable backwards compatibility with SuSv2,
361           specifically, old-style numeric options ('command -1 <file>')
362           will not be supported in head, tail, and fold.  (Note: should
363           yank from renice too.)
364
365 endmenu
366
367 menu 'Installation Options'
368
369 config CONFIG_INSTALL_NO_USR
370         bool "Don't use /usr"
371         default n
372         help
373           Disable use of /usr. Don't activate this option if you don't know
374           that you really want this behaviour.
375
376 choice
377        prompt "Applets links"
378        default CONFIG_INSTALL_APPLET_SYMLINKS
379        help
380          Choose how you install applets links.
381
382 config CONFIG_INSTALL_APPLET_SYMLINKS
383        bool "as soft-links"
384        help
385          Install applets as soft-links to the busybox binary. This needs some
386          free inodes on the filesystem, but might help with filesystem
387          generators that can't cope with hard-links.
388
389 config CONFIG_INSTALL_APPLET_HARDLINKS
390        bool "as hard-links"
391        help
392          Install applets as hard-links to the busybox binary. This might count
393          on a filesystem with few inodes.
394
395 config CONFIG_INSTALL_APPLET_DONT
396        bool
397        prompt "not installed"
398        depends on CONFIG_FEATURE_INSTALLER || CONFIG_FEATURE_SH_STANDALONE_SHELL
399        help
400          Do not install applets links. Usefull when using the -install feature
401          or a standalone shell for rescue pruposes.
402
403 endchoice
404
405 config PREFIX
406         string "BusyBox installation prefix"
407         default "./_install"
408         help
409           Define your directory to install BusyBox files/subdirs in.
410
411 endmenu
412
413 source libbb/Config.in
414
415 endmenu
416
417 comment "Applets"
418
419 source archival/Config.in
420 source coreutils/Config.in
421 source console-tools/Config.in
422 source debianutils/Config.in
423 source editors/Config.in
424 source findutils/Config.in
425 source init/Config.in
426 source loginutils/Config.in
427 source e2fsprogs/Config.in
428 source modutils/Config.in
429 source util-linux/Config.in
430 source miscutils/Config.in
431 source networking/Config.in
432 source procps/Config.in
433 source shell/Config.in
434 source sysklogd/Config.in