Root/package/busybox/config/Config.in

1#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
6
7config BUSYBOX_CONFIG_HAVE_DOT_CONFIG
8    bool
9    default y
10
11menu "Busybox Settings"
12
13menu "General Configuration"
14
15config BUSYBOX_CONFIG_DESKTOP
16    bool "Enable options for full-blown desktop systems"
17    default n
18    help
19      Enable options and features which are not essential.
20      Select this only if you plan to use busybox on full-blown
21      desktop machine with common Linux distro, not on an embedded box.
22
23config BUSYBOX_CONFIG_EXTRA_COMPAT
24    bool "Provide compatible behavior for rare corner cases (bigger code)"
25    default n
26    help
27      This option makes grep, sed etc handle rare corner cases
28      (embedded NUL bytes and such). This makes code bigger and uses
29      some GNU extensions in libc. You probably only need this option
30      if you plan to run busybox on desktop.
31
32choice
33    prompt "Buffer allocation policy"
34    default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
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
45config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
46    bool "Allocate with Malloc"
47
48config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
49    bool "Allocate on the Stack"
50
51config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
52    bool "Allocate in the .bss section"
53
54endchoice
55
56config BUSYBOX_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
65config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
66    bool "Show verbose applet usage messages"
67    default y
68    select BUSYBOX_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
75config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
76    bool "Store applet usage messages in compressed form"
77    default y
78    depends on BUSYBOX_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      If you have a really tiny busybox with few applets enabled (and
84      bunzip2 isn't one of them), the overhead of the decompressor might
85      be noticeable. Also, if you run executables directly from ROM
86      and have very little memory, this might not be a win. Otherwise,
87      you probably want this.
88
89config BUSYBOX_CONFIG_FEATURE_INSTALLER
90    bool "Support --install [-s] to install applet links at runtime"
91    default n
92    help
93      Enable 'busybox --install [-s]' support. This will allow you to use
94      busybox at runtime to create hard links or symlinks for all the
95      applets that are compiled into busybox.
96
97config BUSYBOX_CONFIG_LOCALE_SUPPORT
98    bool "Enable locale support (system needs locale for this to work)"
99    default n
100    help
101      Enable this if your system has locale support and you would like
102      busybox to support locale settings.
103
104config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE
105    bool "Support Unicode"
106    default n
107    help
108      This makes various applets aware that one byte is not
109      one character on screen.
110
111      Busybox aims to eventually work correctly with Unicode displays.
112      Any older encodings are not guaranteed to work.
113      Probably by the time when busybox will be fully Unicode-clean,
114      other encodings will be mainly of historic interest.
115
116config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
117    bool "Check $LANG environment variable"
118    default n
119    depends on BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE && !BUSYBOX_CONFIG_LOCALE_SUPPORT
120    help
121      With this option on, Unicode support is activated
122      only if LANG variable has the value of the form "xxxx.utf8"
123
124      Otherwise, Unicode support will be always enabled and active.
125
126config BUSYBOX_CONFIG_LONG_OPTS
127    bool "Support for --long-options"
128    default y
129    help
130      Enable this if you want busybox applets to use the gnu --long-option
131      style, in addition to single character -a -b -c style options.
132
133config BUSYBOX_CONFIG_FEATURE_DEVPTS
134    bool "Use the devpts filesystem for Unix98 PTYs"
135    default y
136    help
137      Enable if you want BusyBox to use Unix98 PTY support. If enabled,
138      busybox will use /dev/ptmx for the master side of the pseudoterminal
139      and /dev/pts/<number> for the slave side. Otherwise, BSD style
140      /dev/ttyp<number> will be used. To use this option, you should have
141      devpts mounted.
142
143config BUSYBOX_CONFIG_FEATURE_CLEAN_UP
144    bool "Clean up all memory before exiting (usually not needed)"
145    default n
146    help
147      As a size optimization, busybox normally exits without explicitly
148      freeing dynamically allocated memory or closing files. This saves
149      space since the OS will clean up for us, but it can confuse debuggers
150      like valgrind, which report tons of memory and resource leaks.
151
152      Don't enable this unless you have a really good reason to clean
153      things up manually.
154
155config BUSYBOX_CONFIG_FEATURE_PIDFILE
156    bool "Support writing pidfiles"
157    default y
158    help
159      This option makes some applets (e.g. crond, syslogd, inetd) write
160      a pidfile in /var/run. Some applications rely on them.
161
162config BUSYBOX_CONFIG_FEATURE_SUID
163    bool "Support for SUID/SGID handling"
164    default y
165    help
166      With this option you can install the busybox binary belonging
167      to root with the suid bit set, and it will automatically drop
168      priviledges for applets that don't need root access.
169
170      If you are really paranoid and don't want to do this, build two
171      busybox binaries with different applets in them (and the appropriate
172      symlinks pointing to each binary), and only set the suid bit on the
173      one that needs it. The applets currently marked to need the suid bit
174      are:
175
176      crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
177      traceroute, vlock.
178
179config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
180    bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
181    default n if BUSYBOX_CONFIG_FEATURE_SUID
182    depends on BUSYBOX_CONFIG_FEATURE_SUID
183    help
184      Allow the SUID / SGID state of an applet to be determined at runtime
185      by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
186      The format of this file is as follows:
187
188      <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
189
190      An example might help:
191
192      [SUID]
193      su = ssx root.0 # applet su can be run by anyone and runs with
194                      # euid=0/egid=0
195      su = ssx # exactly the same
196
197      mount = sx- root.disk # applet mount can be run by root and members
198                            # of group disk and runs with euid=0
199
200      cp = --- # disable applet cp for everyone
201
202      The file has to be owned by user root, group root and has to be
203      writeable only by root:
204            (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
205      The busybox executable has to be owned by user root, group
206      root and has to be setuid root for this to work:
207            (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
208
209      Robert 'sandman' Griebl has more information here:
210      <url: http://www.softforge.de/bb/suid.html >.
211
212config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET
213    bool "Suppress warning message if /etc/busybox.conf is not readable"
214    default n
215    depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
216    help
217      /etc/busybox.conf should be readable by the user needing the SUID,
218      check this option to avoid users to be notified about missing
219      permissions.
220
221config BUSYBOX_CONFIG_SELINUX
222    bool "Support NSA Security Enhanced Linux"
223    default n
224    help
225      Enable support for SELinux in applets ls, ps, and id. Also provide
226      the option of compiling in SELinux applets.
227
228      If you do not have a complete SELinux userland installed, this stuff
229      will not compile. Go visit
230        http://www.nsa.gov/selinux/index.html
231      to download the necessary stuff to allow busybox to compile with
232      this option enabled. Specifially, libselinux 1.28 or better is
233      directly required by busybox. If the installation is located in a
234      non-standard directory, provide it by invoking make as follows:
235        CFLAGS=-I<libselinux-include-path> \
236        LDFLAGS=-L<libselinux-lib-path> \
237        make
238
239      Most people will leave this set to 'N'.
240
241config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
242    bool "exec prefers applets"
243    default y
244    help
245      This is an experimental option which directs applets about to
246      call 'exec' to try and find an applicable busybox applet before
247      searching the PATH. This is typically done by exec'ing
248      /proc/self/exe.
249      This may affect shell, find -exec, xargs and similar applets.
250      They will use applets even if /bin/<applet> -> busybox link
251      is missing (or is not a link to busybox). However, this causes
252      problems in chroot jails without mounted /proc and with ps/top
253      (command name can be shown as 'exe' for applets started this way).
254
255config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH
256    string "Path to BusyBox executable"
257    default "/proc/self/exe"
258    help
259      When Busybox applets need to run other busybox applets, BusyBox
260      sometimes needs to exec() itself. When the /proc filesystem is
261      mounted, /proc/self/exe always points to the currently running
262      executable. If you haven't got /proc, set this to wherever you
263      want to run BusyBox from.
264
265# These are auto-selected by other options
266
267config BUSYBOX_CONFIG_FEATURE_SYSLOG
268    bool #No description makes it a hidden option
269    default y
270    #help
271    # This option is auto-selected when you select any applet which may
272    # send its output to syslog. You do not need to select it manually.
273
274config BUSYBOX_CONFIG_FEATURE_HAVE_RPC
275    bool #No description makes it a hidden option
276    default y
277    #help
278    # This is automatically selected if any of enabled applets need it.
279    # You do not need to select it manually.
280
281endmenu
282
283menu 'Build Options'
284
285config BUSYBOX_CONFIG_STATIC
286    bool "Build BusyBox as a static binary (no shared libs)"
287    default n
288    help
289      If you want to build a static BusyBox binary, which does not
290      use or require any shared libraries, then enable this option.
291      This can cause BusyBox to be considerably larger, so you should
292      leave this option false unless you have a good reason (i.e.
293      your target platform does not support shared libraries, or
294      you are building an initrd which doesn't need anything but
295      BusyBox, etc).
296
297      Most people will leave this set to 'N'.
298
299config BUSYBOX_CONFIG_PIE
300    bool "Build BusyBox as a position independent executable"
301    default n
302    depends on !BUSYBOX_CONFIG_STATIC
303    help
304      (TODO: what is it and why/when is it useful?)
305      Most people will leave this set to 'N'.
306
307config BUSYBOX_CONFIG_NOMMU
308    bool "Force NOMMU build"
309    default n
310    help
311      Busybox tries to detect whether architecture it is being
312      built against supports MMU or not. If this detection fails,
313      or if you want to build NOMMU version of busybox for testing,
314      you may force NOMMU build here.
315
316      Most people will leave this set to 'N'.
317
318# PIE can be made to work with BUILD_LIBBUSYBOX, but currently
319# build system does not support that
320config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
321    bool "Build shared libbusybox"
322    default n
323    depends on !BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS && !BUSYBOX_CONFIG_PIE && !BUSYBOX_CONFIG_STATIC
324    help
325      Build a shared library libbusybox.so.N.N.N which contains all
326      busybox code.
327
328      This feature allows every applet to be built as a tiny
329      separate executable. Enabling it for "one big busybox binary"
330      approach serves no purpose and increases code size.
331      You should almost certainly say "no" to this.
332
333### config FEATURE_FULL_LIBBUSYBOX
334### bool "Feature-complete libbusybox"
335### default n if !FEATURE_SHARED_BUSYBOX
336### depends on BUILD_LIBBUSYBOX
337### help
338### Build a libbusybox with the complete feature-set, disregarding
339### the actually selected config.
340###
341### Normally, libbusybox will only contain the features which are
342### used by busybox itself. If you plan to write a separate
343### standalone application which uses libbusybox say 'Y'.
344###
345### Note: libbusybox is GPL, not LGPL, and exports no stable API that
346### might act as a copyright barrier. We can and will modify the
347### exported function set between releases (even minor version number
348### changes), and happily break out-of-tree features.
349###
350### Say 'N' if in doubt.
351
352config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL
353    bool "Produce a binary for each applet, linked against libbusybox"
354    default n
355    depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
356    help
357      If your CPU architecture doesn't allow for sharing text/rodata
358      sections of running binaries, but allows for runtime dynamic
359      libraries, this option will allow you to reduce memory footprint
360      when you have many different applets running at once.
361
362      If your CPU architecture allows for sharing text/rodata,
363      having single binary is more optimal.
364
365      Each applet will be a tiny program, dynamically linked
366      against libbusybox.so.N.N.N.
367
368      You need to have a working dynamic linker.
369
370config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
371    bool "Produce additional busybox binary linked against libbusybox"
372    default n
373    depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
374    help
375      Build busybox, dynamically linked against libbusybox.so.N.N.N.
376
377      You need to have a working dynamic linker.
378
379### config BUILD_AT_ONCE
380### bool "Compile all sources at once"
381### default n
382### help
383### Normally each source-file is compiled with one invocation of
384### the compiler.
385### If you set this option, all sources are compiled at once.
386### This gives the compiler more opportunities to optimize which can
387### result in smaller and/or faster binaries.
388###
389### Setting this option will consume alot of memory, e.g. if you
390### enable all applets with all features, gcc uses more than 300MB
391### RAM during compilation of busybox.
392###
393### This option is most likely only beneficial for newer compilers
394### such as gcc-4.1 and above.
395###
396### Say 'N' unless you know what you are doing.
397
398config BUSYBOX_CONFIG_LFS
399    bool
400    default y
401    select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
402    help
403      If you want to build BusyBox with large file support, then enable
404      this option. This will have no effect if your kernel or your C
405      library lacks large file support for large files. Some of the
406      programs that can benefit from large file support include dd, gzip,
407      cp, mount, tar, and many others. If you want to access files larger
408      than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
409
410config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX
411    string "Cross Compiler prefix"
412    default ""
413    help
414      If you want to build BusyBox with a cross compiler, then you
415      will need to set this to the cross-compiler prefix, for example,
416      "i386-uclibc-".
417
418      Note that CROSS_COMPILE environment variable or
419      "make CROSS_COMPILE=xxx ..." will override this selection.
420
421      Native builds leave this empty.
422
423config BUSYBOX_CONFIG_EXTRA_CFLAGS
424    string "Additional CFLAGS"
425    default ""
426    help
427      Additional CFLAGS to pass to the compiler verbatim.
428
429endmenu
430
431menu 'Debugging Options'
432
433config BUSYBOX_CONFIG_DEBUG
434    bool "Build BusyBox with extra Debugging symbols"
435    default n
436    help
437      Say Y here if you wish to examine BusyBox internals while applets are
438      running. This increases the size of the binary considerably, and
439      should only be used when doing development. If you are doing
440      development and want to debug BusyBox, answer Y.
441
442      Most people should answer N.
443
444config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
445    bool "Disable compiler optimizations"
446    default n
447    depends on BUSYBOX_CONFIG_DEBUG
448    help
449      The compiler's optimization of source code can eliminate and reorder
450      code, resulting in an executable that's hard to understand when
451      stepping through it with a debugger. This switches it off, resulting
452      in a much bigger executable that more closely matches the source
453      code.
454
455config BUSYBOX_CONFIG_WERROR
456    bool "Abort compilation on any warning"
457    default n
458    help
459      Selecting this will add -Werror to gcc command line.
460
461      Most people should answer N.
462
463choice
464    prompt "Additional debugging library"
465    default BUSYBOX_CONFIG_NO_DEBUG_LIB
466    help
467      Using an additional debugging library will make BusyBox become
468      considerable larger and will cause it to run more slowly. You
469      should always leave this option disabled for production use.
470
471      dmalloc support:
472      ----------------
473      This enables compiling with dmalloc ( http://dmalloc.com/ )
474      which is an excellent public domain mem leak and malloc problem
475      detector. To enable dmalloc, before running busybox you will
476      want to properly set your environment, for example:
477        export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
478      The 'debug=' value is generated using the following command
479        dmalloc -p log-stats -p log-non-free -p log-bad-space \
480           -p log-elapsed-time -p check-fence -p check-heap \
481           -p check-lists -p check-blank -p check-funcs -p realloc-copy \
482           -p allow-free-null
483
484      Electric-fence support:
485      -----------------------
486      This enables compiling with Electric-fence support. Electric
487      fence is another very useful malloc debugging library which uses
488      your computer's virtual memory hardware to detect illegal memory
489      accesses. This support will make BusyBox be considerable larger
490      and run slower, so you should leave this option disabled unless
491      you are hunting a hard to find memory problem.
492
493
494config BUSYBOX_CONFIG_NO_DEBUG_LIB
495    bool "None"
496
497config BUSYBOX_CONFIG_DMALLOC
498    bool "Dmalloc"
499
500config BUSYBOX_CONFIG_EFENCE
501    bool "Electric-fence"
502
503endchoice
504
505config BUSYBOX_CONFIG_INCLUDE_SUSv2
506    bool "Enable obsolete features removed before SUSv3?"
507    default y
508    help
509      This option will enable backwards compatibility with SuSv2,
510      specifically, old-style numeric options ('command -1 <file>')
511      will be supported in head, tail, and fold. (Note: should
512      affect renice too.)
513
514### config PARSE
515### bool "Uniform config file parser debugging applet: parse"
516
517endmenu
518
519menu 'Installation Options'
520
521config BUSYBOX_CONFIG_INSTALL_NO_USR
522    bool "Don't use /usr"
523    default n
524    help
525      Disable use of /usr. Don't activate this option if you don't know
526      that you really want this behaviour.
527
528choice
529    prompt "Applets links"
530    default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
531    help
532      Choose how you install applets links.
533
534config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
535    bool "as soft-links"
536    help
537      Install applets as soft-links to the busybox binary. This needs some
538      free inodes on the filesystem, but might help with filesystem
539      generators that can't cope with hard-links.
540
541config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
542    bool "as hard-links"
543    help
544      Install applets as hard-links to the busybox binary. This might
545      count on a filesystem with few inodes.
546
547config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
548    bool "as script wrappers"
549    help
550      Install applets as script wrappers that call the busybox binary.
551
552config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
553    bool "not installed"
554    depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE || BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
555    help
556      Do not install applet links. Useful when using the -install feature
557      or a standalone shell for rescue purposes.
558
559endchoice
560
561choice
562    prompt "/bin/sh applet link"
563    default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
564    depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
565    help
566      Choose how you install /bin/sh applet link.
567
568config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
569    bool "as soft-link"
570    help
571      Install /bin/sh applet as soft-link to the busybox binary.
572
573config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
574    bool "as hard-link"
575    help
576      Install /bin/sh applet as hard-link to the busybox binary.
577
578config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
579    bool "as script wrapper"
580    help
581      Install /bin/sh applet as script wrapper that call the busybox
582      binary.
583
584endchoice
585
586config BUSYBOX_CONFIG_PREFIX
587    string "BusyBox installation prefix"
588    default "./_install"
589    help
590      Define your directory to install BusyBox files/subdirs in.
591
592endmenu
593
594source package/busybox/config/libbb/Config.in
595
596endmenu
597
598comment "Applets"
599
600source package/busybox/config/archival/Config.in
601source package/busybox/config/coreutils/Config.in
602source package/busybox/config/console-tools/Config.in
603source package/busybox/config/debianutils/Config.in
604source package/busybox/config/editors/Config.in
605source package/busybox/config/findutils/Config.in
606source package/busybox/config/init/Config.in
607source package/busybox/config/loginutils/Config.in
608source package/busybox/config/e2fsprogs/Config.in
609source package/busybox/config/modutils/Config.in
610source package/busybox/config/util-linux/Config.in
611source package/busybox/config/miscutils/Config.in
612source package/busybox/config/networking/Config.in
613source package/busybox/config/printutils/Config.in
614source package/busybox/config/mailutils/Config.in
615source package/busybox/config/procps/Config.in
616source package/busybox/config/runit/Config.in
617source package/busybox/config/selinux/Config.in
618source package/busybox/config/shell/Config.in
619source package/busybox/config/sysklogd/Config.in
620

Archive Download this file



interactive