busybox: tweak IPv6/largefile handling
[buildroot-gz.git] / Config.in
blobdfb57217eabc31edcbebd8c936103b31ee670fdb
3 mainmenu "Buildroot $BR2_VERSION Configuration"
5 config BR2_HAVE_DOT_CONFIG
6         bool
7         default y
9 config BR2_VERSION
10         string
11         option env="BR2_VERSION_FULL"
13 config BR2_HOSTARCH
14         string
15         option env="HOSTARCH"
17 config BR2_EXTERNAL
18         string
19         option env="BR2_EXTERNAL"
21 # Hidden config symbols for packages to check system gcc version
22 config BR2_HOST_GCC_VERSION
23         string
24         option env="HOST_GCC_VERSION"
26 config BR2_HOST_GCC_AT_LEAST_4_7
27         bool
28         default y if BR2_HOST_GCC_VERSION = "4 7"
30 config BR2_HOST_GCC_AT_LEAST_4_8
31         bool
32         default y if BR2_HOST_GCC_VERSION = "4 8"
33         select BR2_HOST_GCC_AT_LEAST_4_7
35 config BR2_HOST_GCC_AT_LEAST_4_9
36         bool
37         default y if BR2_HOST_GCC_VERSION = "4 9"
38         select BR2_HOST_GCC_AT_LEAST_4_8
40 config BR2_HOST_GCC_AT_LEAST_5
41         bool
42         default y if BR2_HOST_GCC_VERSION = "5"
43         select BR2_HOST_GCC_AT_LEAST_4_9
45 # Hidden boolean selected by packages in need of Java in order to build
46 # (example: xbmc)
47 config BR2_NEEDS_HOST_JAVA
48         bool
50 # Hidden boolean selected by packages in need of javac in order to build
51 # (example: classpath)
52 config BR2_NEEDS_HOST_JAVAC
53         bool
55 # Hidden boolean selected by packages in need of jar in order to build
56 # (example: classpath)
57 config BR2_NEEDS_HOST_JAR
58         bool
60 # Hidden boolean selected by pre-built packages for x86, when they
61 # need to run on x86-64 machines (example: pre-built external
62 # toolchains, binary tools like SAM-BA, etc.).
63 config BR2_HOSTARCH_NEEDS_IA32_LIBS
64         bool
66 # Hidden boolean selected by packages that need to build 32 bits
67 # binaries with the host compiler, even on 64 bits build machines (e.g
68 # bootloaders).
69 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
70         bool
72 source "arch/Config.in"
74 menu "Build options"
76 menu "Commands"
78 config BR2_WGET
79         string "Wget command"
80         default "wget --passive-ftp -nd -t 3"
82 config BR2_SVN
83         string "Subversion (svn) command"
84         default "svn"
86 config BR2_BZR
87         string "Bazaar (bzr) command"
88         default "bzr"
90 config BR2_GIT
91         string "Git command"
92         default "git"
94 config BR2_CVS
95         string "CVS command"
96         default "cvs"
98 config BR2_LOCALFILES
99         string "Local files retrieval command"
100         default "cp"
102 config BR2_SCP
103         string "Secure copy (scp) command"
104         default "scp"
106 config BR2_SSH
107         string "Secure shell (ssh) command"
108         default "ssh"
110 config BR2_HG
111         string "Mercurial (hg) command"
112         default "hg"
114 config BR2_ZCAT
115         string "zcat command"
116         default "gzip -d -c"
117         help
118           Command to be used to extract a gzip'ed file to stdout.
119           zcat is identical to gunzip -c except that the former may
120           not be available on your system.
121           Default is "gzip -d -c"
122           Other possible values include "gunzip -c" or "zcat".
124 config BR2_BZCAT
125         string "bzcat command"
126         default "bzcat"
127         help
128           Command to be used to extract a bzip2'ed file to stdout.
129           bzcat is identical to bunzip2 -c except that the former may
130           not be available on your system.
131           Default is "bzcat"
132           Other possible values include "bunzip2 -c" or "bzip2 -d -c".
134 config BR2_XZCAT
135         string "xzcat command"
136         default "xzcat"
137         help
138           Command to be used to extract a xz'ed file to stdout.
139           Default is "xzcat"
141 config BR2_TAR_OPTIONS
142         string "Tar options"
143         default ""
144         help
145           Options to pass to tar when extracting the sources.
146           E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
147           and to be verbose.
149 endmenu
151 config BR2_DEFCONFIG_FROM_ENV
152         string
153         option env="BR2_DEFCONFIG"
155 config BR2_DEFCONFIG
156         string "Location to save buildroot config"
157         default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
158         default "$(CONFIG_DIR)/defconfig"
159         help
160           When running 'make savedefconfig', the defconfig file will be saved
161           in this location.
163 config BR2_DL_DIR
164         string "Download dir"
165         default "$(TOPDIR)/dl"
166         help
167           Directory to store all the source files that we need to fetch.
168           If the Linux shell environment has defined the BR2_DL_DIR
169           environment variable, then this overrides this configuration item.
171           The default is $(TOPDIR)/dl
173 config BR2_HOST_DIR
174         string "Host dir"
175         default "$(BASE_DIR)/host"
176         help
177           Directory to store all the binary files that are built for the host.
178           This includes the cross compilation toolchain when building the
179           internal buildroot toolchain.
181           The default is $(BASE_DIR)/host
183 menu "Mirrors and Download locations"
185 config BR2_PRIMARY_SITE
186         string "Primary download site"
187         default ""
188         help
189           Primary site to download from. If this option is set then buildroot
190           will try to download package source first from this site and try the
191           default if the file is not found.
192           Valid URIs are:
193             - URIs recognized by $(WGET)
194             - local URIs of the form file://absolutepath
195             - scp URIs of the form scp://[user@]host:path.
197 config BR2_PRIMARY_SITE_ONLY
198         bool "Only allow downloads from primary download site"
199         depends on BR2_PRIMARY_SITE != ""
200         help
201           If this option is enabled, downloads will only be attempted
202           from the primary download site. Other locations, like the
203           package's official download location or the backup download
204           site, will not be considered. Therefore, if the package is
205           not present on the primary site, the download fails.
207           This is useful for project developers who want to ensure
208           that the project can be built even if the upstream tarball
209           locations disappear.
211 if !BR2_PRIMARY_SITE_ONLY
213 config BR2_BACKUP_SITE
214         string "Backup download site"
215         default "http://sources.buildroot.net"
216         help
217           Backup site to download from. If this option is set then buildroot
218           will fall back to download package sources from here if the
219           normal location fails.
221 config BR2_KERNEL_MIRROR
222         string "Kernel.org mirror"
223         default "https://www.kernel.org/pub"
224         help
225           kernel.org is mirrored on a number of servers around the world.
226           The following allows you to select your preferred mirror.
228           Have a look on the kernel.org site for a list of mirrors, then enter
229           the URL to the base directory.  Examples:
231              http://www.XX.kernel.org/pub (XX = country code)
232              http://mirror.aarnet.edu.au/pub/ftp.kernel.org
234 config BR2_GNU_MIRROR
235         string "GNU Software mirror"
236         default "http://ftp.gnu.org/pub/gnu"
237         help
238           GNU has multiple software mirrors scattered around the world.
239           The following allows you to select your preferred mirror.
241           Have a look on the gnu.org site for a list of mirrors, then enter
242           the URL to the base directory.  Examples:
244              http://ftp.gnu.org/pub/gnu
245              http://mirror.aarnet.edu.au/pub/gnu
247 config BR2_LUAROCKS_MIRROR
248         string "LuaRocks mirror"
249         default "http://rocks.moonscript.org"
250         help
251           LuaRocks repository.
253           See http://luarocks.org
255 config BR2_CPAN_MIRROR
256         string "CPAN mirror (Perl packages)"
257         default "http://cpan.metacpan.org"
258         help
259           CPAN (Comprehensive Perl Archive Network) is a repository
260           of Perl packages. It has multiple software mirrors scattered
261           around the world. This option allows you to select a mirror.
263           The list of mirrors is available at:
264           http://search.cpan.org/mirror
266 endif
268 endmenu
270 config BR2_JLEVEL
271         int "Number of jobs to run simultaneously (0 for auto)"
272         default "0"
273         help
274           Number of jobs to run simultaneously.  If 0, determine
275           automatically according to number of CPUs on the host
276           system.
278 config BR2_CCACHE
279         bool "Enable compiler cache"
280         help
281           This option will enable the use of ccache, a compiler
282           cache. It will cache the result of previous builds to speed
283           up future builds. By default, the cache is stored in
284           $HOME/.buildroot-ccache.
286           Note that Buildroot does not try to invalidate the cache
287           contents when the compiler changes in an incompatible
288           way. Therefore, if you make a change to the compiler version
289           and/or configuration, you are responsible for purging the
290           ccache cache by removing the $HOME/.buildroot-ccache
291           directory.
293 if BR2_CCACHE
295 config BR2_CCACHE_DIR
296         string "Compiler cache location"
297         default "$(HOME)/.buildroot-ccache"
298         help
299           Where ccache should store cached files.
301 config BR2_CCACHE_INITIAL_SETUP
302         string "Compiler cache initial setup"
303         help
304           Initial ccache settings to apply, such as --max-files or --max-size.
306           For example, if your project is known to require more space than the
307           default max cache size, then you might want to increase the cache size
308           to a suitable amount using the -M (--max-size) option.
310           The string you specify here is passed verbatim to ccache.  Refer to
311           ccache documentation for more details.
313           These initial settings are applied after ccache has been compiled.
315 config BR2_CCACHE_USE_BASEDIR
316         bool "Use relative paths"
317         default y
318         help
319           Allow ccache to convert absolute paths within the output
320           directory into relative paths.
322           During the build, many -I include directives are given with
323           an absolute path. These absolute paths end up in the hashes
324           that are computed by ccache. Therefore, when you build from a
325           different directory, the hash will be different and the
326           cached object will not be used.
328           To improve cache performance, set this option to y. This
329           allows ccache to rewrite absolute paths within the output
330           directory into relative paths. Note that only paths within
331           the output directory will be rewritten; therefore, if you
332           change BR2_HOST_DIR to point outside the output directory and
333           subsequently move it to a different location, this will lead
334           to cache misses.
336           This option has as a result that the debug information in the
337           object files also has only relative paths. Therefore, make
338           sure you cd to the build directory before starting gdb. See
339           the section "COMPILING IN DIFFERENT DIRECTORIES" in the
340           ccache manual for more information.
342 endif
344 config BR2_DEPRECATED
345         bool "Show options and packages that are deprecated or obsolete"
346         help
347           This option shows outdated/obsolete versions of packages and
348           options that are otherwise hidden.
350 if BR2_DEPRECATED
352 config BR2_DEPRECATED_SINCE_2015_05
353         bool
354         default y
356 config BR2_DEPRECATED_SINCE_2015_08
357         bool
358         default y
360 config BR2_DEPRECATED_SINCE_2015_11
361         bool
362         default y
364 config BR2_DEPRECATED_SINCE_2016_02
365         bool
366         default y
368 config BR2_DEPRECATED_SINCE_2016_05
369         bool
370         default y
372 endif
374 config BR2_ENABLE_DEBUG
375         bool "build packages with debugging symbols"
376         help
377           Build packages with debugging symbols enabled. All libraries
378           and binaries in the 'staging' directory will have debugging
379           symbols, which allows remote debugging even if libraries and
380           binaries are stripped on the target. Whether libraries and
381           binaries are stripped on the target is controlled by the
382           BR2_STRIP_* options below.
384 if BR2_ENABLE_DEBUG
385 choice
386         prompt "gcc debug level"
387         default BR2_DEBUG_2
388         help
389           Set the debug level for gcc
391 config BR2_DEBUG_1
392         bool "debug level 1"
393         help
394           Debug level 1 produces minimal information, enough
395           for making backtraces in parts of the program that
396           you don't plan to debug. This includes descriptions
397           of functions and external variables, but no information
398           about local variables and no line numbers.
400 config BR2_DEBUG_2
401         bool "debug level 2"
402         help
403           The default gcc debug level is 2
405 config BR2_DEBUG_3
406         bool "debug level 3"
407         help
408           Level 3 includes extra information, such as all the
409           macro definitions present in the program. Some debuggers
410           support macro expansion when you use -g3.
411 endchoice
412 endif
414 choice
415         prompt "strip command for binaries on target"
416         default BR2_STRIP_strip
418 config BR2_STRIP_strip
419         bool "strip"
420         depends on !BR2_PACKAGE_HOST_ELF2FLT
421         help
422           Binaries and libraries in the target filesystem will be
423           stripped using the normal 'strip' command. This allows to
424           save space, mainly by removing debugging symbols. Debugging
425           symbols on the target are needed for native debugging, but
426           not when remote debugging is used.
428 config BR2_STRIP_none
429         bool "none"
430         help
431           Do not strip binaries and libraries in the target
432           filesystem.
433 endchoice
435 config BR2_STRIP_EXCLUDE_FILES
436         string "executables that should not be stripped"
437         depends on !BR2_STRIP_none
438         default ""
439         help
440           You may specify a space-separated list of binaries and libraries
441           here that should not be stripped on the target.
443 config BR2_STRIP_EXCLUDE_DIRS
444         string "directories that should be skipped when stripping"
445         depends on !BR2_STRIP_none
446         default ""
447         help
448           You may specify a space-separated list of directories that should
449           be skipped when stripping. Binaries and libraries in these
450           directories will not be touched.
451           The directories should be specified relative to the target directory,
452           without leading slash.
454 choice
455         prompt "gcc optimization level"
456         default BR2_OPTIMIZE_S
457         help
458           Set the optimization level for gcc
460 config BR2_OPTIMIZE_0
461         bool "optimization level 0"
462         help
463           Do not optimize. This is the default.
465 config BR2_OPTIMIZE_1
466         bool "optimization level 1"
467         help
468           Optimize. Optimizing compilation takes somewhat more time,
469           and a lot more memory for a large function. With -O, the
470           compiler tries to reduce code size and execution time,
471           without performing any optimizations that take a great deal
472           of compilation time. -O turns on the following optimization
473           flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
474           -fcprop-registers -floop-optimize -fif-conversion
475           -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
476           -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
477           -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
478           -O also turns on -fomit-frame-pointer on machines where doing
479           so does not interfere with debugging.
481 config BR2_OPTIMIZE_2
482         bool "optimization level 2"
483         help
484           Optimize even more. GCC performs nearly all supported optimizations
485           that do not involve a space-speed tradeoff. The compiler does not
486           perform loop unrolling or function inlining when you specify -O2.
487           As compared to -O, this option increases both compilation time and
488           the performance of the generated code. -O2 turns on all optimization
489           flags specified by -O. It also turns on the following optimization
490           flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
491           -fcse-follow-jumps -fcse-skip-blocks -fgcse  -fgcse-lm
492           -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
493           -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
494           -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
495           -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
496           -freorder-functions -falign-functions -falign-jumps -falign-loops
497           -falign-labels -ftree-vrp -ftree-pre
498           Please note the warning under -fgcse about invoking -O2 on programs
499           that use computed gotos.
501 config BR2_OPTIMIZE_3
502         bool "optimization level 3"
503         help
504           Optimize yet more. -O3 turns on all optimizations specified by -O2
505           and also turns on the -finline-functions, -funswitch-loops and
506           -fgcse-after-reload options.
508 config BR2_OPTIMIZE_S
509         bool "optimize for size"
510         help
511           Optimize for size. -Os enables all -O2 optimizations that do not
512           typically increase code size. It also performs further optimizations
513           designed to reduce code size. -Os disables the following optimization
514           flags: -falign-functions -falign-jumps -falign-loops -falign-labels
515           -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
516           -ftree-vect-loop-version
518 endchoice
520 config BR2_GOOGLE_BREAKPAD_ENABLE
521         bool "Enable google-breakpad support"
522         select BR2_PACKAGE_GOOGLE_BREAKPAD
523         depends on BR2_INSTALL_LIBSTDCPP
524         depends on BR2_TOOLCHAIN_USES_GLIBC
525         depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
526         help
527           This option will enable the use of google breakpad, a
528           library and tool suite that allows you to distribute an
529           application to users with compiler-provided debugging
530           information removed, record crashes in compact "minidump"
531           files, send them back to your server and produce C and C++
532           stack traces from these minidumps.  Breakpad can also write
533           minidumps on request for programs that have not crashed.
535 if BR2_GOOGLE_BREAKPAD_ENABLE
537 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
538         string "List of executables and libraries to extract symbols from"
539         default ""
540         help
541           You may specify a space-separated list of binaries and
542           libraries with full paths relative to $(TARGET_DIR) of which
543           debug symbols will be dumped for further use with google
544           breakpad.
546           A directory structure that can be used by minidump-stackwalk
547           will be created at:
549           $(STAGING_DIR)/usr/share/google-breakpad-symbols
551 endif
553 choice
554         bool "build code with Stack Smashing Protection"
555         default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
556         depends on BR2_TOOLCHAIN_HAS_SSP
557         help
558           Enable stack smashing protection support using GCC's
559           -fstack-protector option family.
561           See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
562           for details.
564           Note that this requires the toolchain to have SSP
565           support. This is always the case for glibc and eglibc
566           toolchain, but is optional in uClibc toolchains.
568 config BR2_SSP_NONE
569         bool "None"
570         help
571           Disable stack-smashing protection.
573 config BR2_SSP_REGULAR
574         bool "-fstack-protector"
575         help
576           Emit extra code to check for buffer overflows, such as stack
577           smashing attacks. This is done by adding a guard variable to
578           functions with vulnerable objects. This includes functions
579           that call alloca, and functions with buffers larger than 8
580           bytes. The guards are initialized when a function is entered
581           and then checked when the function exits. If a guard check
582           fails, an error message is printed and the program exits.
584 config BR2_SSP_STRONG
585         bool "-fstack-protector-strong"
586         depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
587         help
588           Like -fstack-protector but includes additional functions to be
589           protected - those that have local array definitions, or have
590           references to local frame addresses.
592 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
593         depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
595 config BR2_SSP_ALL
596         bool "-fstack-protector-all"
597         help
598           Like -fstack-protector except that all functions are
599           protected. This option might have a significant performance
600           impact on the compiled binaries.
602 endchoice
604 comment "Stack Smashing Protection needs a toolchain w/ SSP"
605         depends on !BR2_TOOLCHAIN_HAS_SSP
607 choice
608         bool "libraries"
609         default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
610         default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
611         help
612           Select the type of libraries you want to use on the target.
614           The default is to build dynamic libraries and use those on
615           the target filesystem, except when the architecture and/or
616           the selected binary format does not support shared
617           libraries.
619 config BR2_STATIC_LIBS
620         bool "static only"
621         help
622           Build and use only static libraries. No shared libraries
623           will be instaled on the target. This potentially increases
624           your code size and should only be used if you know what you
625           are doing. Note that some packages may not be available when
626           this option is enabled, due to their need for dynamic
627           library support.
629 config BR2_SHARED_LIBS
630         bool "shared only"
631         depends on BR2_BINFMT_SUPPORTS_SHARED
632         help
633           Build and use only shared libraries. This is the recommended
634           solution as it saves space and build time.
636 config BR2_SHARED_STATIC_LIBS
637         bool "both static and shared"
638         depends on BR2_BINFMT_SUPPORTS_SHARED
639         help
640           Build both shared and static libraries, but link executables
641           dynamically. While building both shared and static libraries
642           take more time and more disk space, having static libraries
643           may be useful to link some of the applications statically.
645 endchoice
648 config BR2_PACKAGE_OVERRIDE_FILE
649         string "location of a package override file"
650         default "$(CONFIG_DIR)/local.mk"
651         help
652           A package override file is a short makefile that contains
653           variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
654           which allows to tell Buildroot to use an existing directory
655           as the source directory for a particular package. See the
656           Buildroot documentation for more details on this feature.
658 config BR2_GLOBAL_PATCH_DIR
659         string "global patch directories"
660         help
661           You may specify a space separated list of one or more directories
662           containing global package patches. For a specific version
663           <packageversion> of a specific package <packagename>, patches are
664           applied as follows:
666           First, the default Buildroot patch set for the package is applied
667           from the package's directory in Buildroot.
669           Then for every directory - <global-patch-dir> - that exists in
670           BR2_GLOBAL_PATCH_DIR, if the directory
671           <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
672           *.patch files in this directory will be applied.
674           Otherwise, if the directory <global-patch-dir>/<packagename> exists,
675           then all *.patch files in the directory will be applied.
677 menu "Advanced"
679 config BR2_COMPILER_PARANOID_UNSAFE_PATH
680         bool "paranoid check of library/header paths"
681         help
682           By default, when this option is disabled, when the Buildroot
683           cross-compiler will encounter an unsafe library or header
684           path (such as /usr/include, or /usr/lib), the compiler will
685           display a warning.
687           By enabling this option, this warning is turned into an
688           error, which will completely abort the build when such
689           unsafe paths are encountered.
691           Note that this mechanism is available for both the internal
692           toolchain (through gcc and binutils patches) and external
693           toolchain backends (through the external toolchain wrapper).
695 endmenu
697 endmenu
699 source "toolchain/Config.in"
701 source "system/Config.in"
703 source "linux/Config.in"
705 source "package/Config.in"
707 source "fs/Config.in"
709 source "boot/Config.in"
711 source "package/Config.in.host"
713 source "Config.in.legacy"
715 menu "User-provided options"
716         depends on BR2_EXTERNAL != "support/dummy-external"
718 source "$BR2_EXTERNAL/Config.in"
720 endmenu