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