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