zedboard: uboot: load env earlier
[buildroot-gz.git] / Config.in
blobd7953611487944dd2c5ffec11a473a5387ccab30
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 boolean selected by packages in need of Java in order to build
22 # (example: xbmc)
23 config BR2_NEEDS_HOST_JAVA
24         bool
26 # Hidden boolean selected by packages in need of javac in order to build
27 # (example: classpath)
28 config BR2_NEEDS_HOST_JAVAC
29         bool
31 # Hidden boolean selected by packages in need of jar in order to build
32 # (example: classpath)
33 config BR2_NEEDS_HOST_JAR
34         bool
36 # Hidden boolean selected by pre-built packages for x86, when they
37 # need to run on x86-64 machines (example: pre-built external
38 # toolchains, binary tools like SAM-BA, etc.).
39 config BR2_HOSTARCH_NEEDS_IA32_LIBS
40         bool
42 # Hidden boolean selected by packages that need to build 32 bits
43 # binaries with the host compiler, even on 64 bits build machines (e.g
44 # bootloaders).
45 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
46         bool
48 source "arch/Config.in"
50 menu "Build options"
52 menu "Commands"
54 config BR2_WGET
55         string "Wget command"
56         default "wget --passive-ftp -nd -t 3"
58 config BR2_SVN
59         string "Subversion (svn) command"
60         default "svn"
62 config BR2_BZR
63         string "Bazaar (bzr) command"
64         default "bzr"
66 config BR2_GIT
67         string "Git command"
68         default "git"
70 config BR2_CVS
71         string "CVS command"
72         default "cvs"
74 config BR2_LOCALFILES
75         string "Local files retrieval command"
76         default "cp"
78 config BR2_SCP
79         string "Secure copy (scp) command"
80         default "scp"
82 config BR2_SSH
83         string "Secure shell (ssh) command"
84         default "ssh"
86 config BR2_HG
87         string "Mercurial (hg) command"
88         default "hg"
90 config BR2_ZCAT
91         string "zcat command"
92         default "gzip -d -c"
93         help
94           Command to be used to extract a gzip'ed file to stdout.
95           zcat is identical to gunzip -c except that the former may
96           not be available on your system.
97           Default is "gzip -d -c"
98           Other possible values include "gunzip -c" or "zcat".
100 config BR2_BZCAT
101         string "bzcat command"
102         default "bzcat"
103         help
104           Command to be used to extract a bzip2'ed file to stdout.
105           bzcat is identical to bunzip2 -c except that the former may
106           not be available on your system.
107           Default is "bzcat"
108           Other possible values include "bunzip2 -c" or "bzip2 -d -c".
110 config BR2_XZCAT
111         string "xzcat command"
112         default "xzcat"
113         help
114           Command to be used to extract a xz'ed file to stdout.
115           Default is "xzcat"
117 config BR2_TAR_OPTIONS
118         string "Tar options"
119         default ""
120         help
121           Options to pass to tar when extracting the sources.
122           E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
123           and to be verbose.
125 endmenu
127 config BR2_DEFCONFIG_FROM_ENV
128         string
129         option env="BR2_DEFCONFIG"
131 config BR2_DEFCONFIG
132         string "Location to save buildroot config"
133         default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
134         default "$(CONFIG_DIR)/defconfig"
135         help
136           When running 'make savedefconfig', the defconfig file will be saved
137           in this location.
139 config BR2_DL_DIR
140         string "Download dir"
141         default "$(TOPDIR)/dl"
142         help
143           Directory to store all the source files that we need to fetch.
144           If the Linux shell environment has defined the BR2_DL_DIR
145           environment variable, then this overrides this configuration item.
147           The default is $(TOPDIR)/dl
149 config BR2_HOST_DIR
150         string "Host dir"
151         default "$(BASE_DIR)/host"
152         help
153           Directory to store all the binary files that are built for the host.
154           This includes the cross compilation toolchain when building the
155           internal buildroot toolchain.
157           The default is $(BASE_DIR)/host
159 menu "Mirrors and Download locations"
161 config BR2_PRIMARY_SITE
162         string "Primary download site"
163         default ""
164         help
165           Primary site to download from. If this option is set then buildroot
166           will try to download package source first from this site and try the
167           default if the file is not found.
168           Valid URIs are URIs recognized by $(WGET) and scp URIs of the form
169           scp://[user@]host:path.
171 config BR2_PRIMARY_SITE_ONLY
172         bool "Only allow downloads from primary download site"
173         depends on BR2_PRIMARY_SITE != ""
174         help
175           If this option is enabled, downloads will only be attempted
176           from the primary download site. Other locations, like the
177           package's official download location or the backup download
178           site, will not be considered. Therefore, if the package is
179           not present on the primary site, the download fails.
181           This is useful for project developers who want to ensure
182           that the project can be built even if the upstream tarball
183           locations disappear.
185 if !BR2_PRIMARY_SITE_ONLY
187 config BR2_BACKUP_SITE
188         string "Backup download site"
189         default "http://sources.buildroot.net"
190         help
191           Backup site to download from. If this option is set then buildroot
192           will fall back to download package sources from here if the
193           normal location fails.
195 config BR2_KERNEL_MIRROR
196         string "Kernel.org mirror"
197         default "https://www.kernel.org/pub"
198         help
199           kernel.org is mirrored on a number of servers around the world.
200           The following allows you to select your preferred mirror.
202           Have a look on the kernel.org site for a list of mirrors, then enter
203           the URL to the base directory.  Examples:
205              http://www.XX.kernel.org/pub (XX = country code)
206              http://mirror.aarnet.edu.au/pub/ftp.kernel.org
208 config BR2_GNU_MIRROR
209         string "GNU Software mirror"
210         default "http://ftp.gnu.org/pub/gnu"
211         help
212           GNU has multiple software mirrors scattered around the world.
213           The following allows you to select your preferred mirror.
215           Have a look on the gnu.org site for a list of mirrors, then enter
216           the URL to the base directory.  Examples:
218              http://ftp.gnu.org/pub/gnu
219              http://mirror.aarnet.edu.au/pub/gnu
221 config BR2_LUAROCKS_MIRROR
222         string "LuaRocks mirror"
223         default "http://rocks.moonscript.org"
224         help
225           LuaRocks repository.
227           See http://luarocks.org
229 config BR2_CPAN_MIRROR
230         string "CPAN mirror (Perl packages)"
231         default "http://cpan.metacpan.org"
232         help
233           CPAN (Comprehensive Perl Archive Network) is a repository
234           of Perl packages. It has multiple software mirrors scattered
235           around the world. This option allows you to select a mirror.
237           The list of mirrors is available at:
238           http://search.cpan.org/mirror
240 endif
242 endmenu
244 config BR2_JLEVEL
245         int "Number of jobs to run simultaneously (0 for auto)"
246         default "0"
247         help
248           Number of jobs to run simultaneously.  If 0, determine
249           automatically according to number of CPUs on the host
250           system.
252 config BR2_CCACHE
253         bool "Enable compiler cache"
254         help
255           This option will enable the use of ccache, a compiler
256           cache. It will cache the result of previous builds to speed
257           up future builds. By default, the cache is stored in
258           $HOME/.buildroot-ccache.
260           Note that Buildroot does not try to invalidate the cache
261           contents when the compiler changes in an incompatible
262           way. Therefore, if you make a change to the compiler version
263           and/or configuration, you are responsible for purging the
264           ccache cache by removing the $HOME/.buildroot-ccache
265           directory.
267 if BR2_CCACHE
269 config BR2_CCACHE_DIR
270         string "Compiler cache location"
271         default "$(HOME)/.buildroot-ccache"
272         help
273           Where ccache should store cached files.
275 config BR2_CCACHE_INITIAL_SETUP
276         string "Compiler cache initial setup"
277         help
278           Initial ccache settings to apply, such as --max-files or --max-size.
280           For example, if your project is known to require more space than the
281           default max cache size, then you might want to increase the cache size
282           to a suitable amount using the -M (--max-size) option.
284           The string you specify here is passed verbatim to ccache.  Refer to
285           ccache documentation for more details.
287           These initial settings are applied after ccache has been compiled.
289 config BR2_CCACHE_USE_BASEDIR
290         bool "Use relative paths"
291         default y
292         help
293           Allow ccache to convert absolute paths within the output
294           directory into relative paths.
296           During the build, many -I include directives are given with
297           an absolute path. These absolute paths end up in the hashes
298           that are computed by ccache. Therefore, when you build from a
299           different directory, the hash will be different and the
300           cached object will not be used.
302           To improve cache performance, set this option to y. This
303           allows ccache to rewrite absolute paths within the output
304           directory into relative paths. Note that only paths within
305           the output directory will be rewritten; therefore, if you
306           change BR2_HOST_DIR to point outside the output directory and
307           subsequently move it to a different location, this will lead
308           to cache misses.
310           This option has as a result that the debug information in the
311           object files also has only relative paths. Therefore, make
312           sure you cd to the build directory before starting gdb. See
313           the section "COMPILING IN DIFFERENT DIRECTORIES" in the
314           ccache manual for more information.
316 endif
318 config BR2_DEPRECATED
319         bool "Show options and packages that are deprecated or obsolete"
320         help
321           This option shows outdated/obsolete versions of packages and
322           options that are otherwise hidden.
324 if BR2_DEPRECATED
326 config BR2_DEPRECATED_SINCE_2015_02
327         bool
328         default y
330 config BR2_DEPRECATED_SINCE_2015_05
331         bool
332         default y
334 config BR2_DEPRECATED_SINCE_2015_08
335         bool
336         default y
338 endif
340 config BR2_ENABLE_DEBUG
341         bool "build packages with debugging symbols"
342         help
343           Build packages with debugging symbols enabled. All libraries
344           and binaries in the 'staging' directory will have debugging
345           symbols, which allows remote debugging even if libraries and
346           binaries are stripped on the target. Whether libraries and
347           binaries are stripped on the target is controlled by the
348           BR2_STRIP_* options below.
350 if BR2_ENABLE_DEBUG
351 choice
352         prompt "gcc debug level"
353         default BR2_DEBUG_2
354         help
355           Set the debug level for gcc
357 config BR2_DEBUG_1
358         bool "debug level 1"
359         help
360           Debug level 1 produces minimal information, enough
361           for making backtraces in parts of the program that
362           you don't plan to debug. This includes descriptions
363           of functions and external variables, but no information
364           about local variables and no line numbers.
366 config BR2_DEBUG_2
367         bool "debug level 2"
368         help
369           The default gcc debug level is 2
371 config BR2_DEBUG_3
372         bool "debug level 3"
373         help
374           Level 3 includes extra information, such as all the
375           macro definitions present in the program. Some debuggers
376           support macro expansion when you use -g3.
377 endchoice
378 endif
380 choice
381         prompt "strip command for binaries on target"
382         default BR2_STRIP_strip
384 config BR2_STRIP_strip
385         bool "strip"
386         depends on !BR2_PACKAGE_HOST_ELF2FLT
387         help
388           Binaries and libraries in the target filesystem will be
389           stripped using the normal 'strip' command. This allows to
390           save space, mainly by removing debugging symbols. Debugging
391           symbols on the target are needed for native debugging, but
392           not when remote debugging is used.
394 config BR2_STRIP_none
395         bool "none"
396         help
397           Do not strip binaries and libraries in the target
398           filesystem.
399 endchoice
401 config BR2_STRIP_EXCLUDE_FILES
402         string "executables that should not be stripped"
403         depends on !BR2_STRIP_none
404         default ""
405         help
406           You may specify a space-separated list of binaries and libraries
407           here that should not be stripped on the target.
409 config BR2_STRIP_EXCLUDE_DIRS
410         string "directories that should be skipped when stripping"
411         depends on !BR2_STRIP_none
412         default ""
413         help
414           You may specify a space-separated list of directories that should
415           be skipped when stripping. Binaries and libraries in these
416           directories will not be touched.
417           The directories should be specified relative to the target directory,
418           without leading slash.
420 choice
421         prompt "gcc optimization level"
422         default BR2_OPTIMIZE_S
423         help
424           Set the optimization level for gcc
426 config BR2_OPTIMIZE_0
427         bool "optimization level 0"
428         help
429           Do not optimize. This is the default.
431 config BR2_OPTIMIZE_1
432         bool "optimization level 1"
433         help
434           Optimize. Optimizing compilation takes somewhat more time,
435           and a lot more memory for a large function. With -O, the
436           compiler tries to reduce code size and execution time,
437           without performing any optimizations that take a great deal
438           of compilation time. -O turns on the following optimization
439           flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
440           -fcprop-registers -floop-optimize -fif-conversion
441           -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
442           -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
443           -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
444           -O also turns on -fomit-frame-pointer on machines where doing
445           so does not interfere with debugging.
447 config BR2_OPTIMIZE_2
448         bool "optimization level 2"
449         help
450           Optimize even more. GCC performs nearly all supported optimizations
451           that do not involve a space-speed tradeoff. The compiler does not
452           perform loop unrolling or function inlining when you specify -O2.
453           As compared to -O, this option increases both compilation time and
454           the performance of the generated code. -O2 turns on all optimization
455           flags specified by -O. It also turns on the following optimization
456           flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
457           -fcse-follow-jumps -fcse-skip-blocks -fgcse  -fgcse-lm
458           -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
459           -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
460           -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
461           -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
462           -freorder-functions -falign-functions -falign-jumps -falign-loops
463           -falign-labels -ftree-vrp -ftree-pre
464           Please note the warning under -fgcse about invoking -O2 on programs
465           that use computed gotos.
467 config BR2_OPTIMIZE_3
468         bool "optimization level 3"
469         help
470           Optimize yet more. -O3 turns on all optimizations specified by -O2
471           and also turns on the -finline-functions, -funswitch-loops and
472           -fgcse-after-reload options.
474 config BR2_OPTIMIZE_S
475         bool "optimize for size"
476         help
477           Optimize for size. -Os enables all -O2 optimizations that do not
478           typically increase code size. It also performs further optimizations
479           designed to reduce code size. -Os disables the following optimization
480           flags: -falign-functions -falign-jumps -falign-loops -falign-labels
481           -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
482           -ftree-vect-loop-version
484 endchoice
486 config BR2_GOOGLE_BREAKPAD_ENABLE
487         bool "Enable google-breakpad support"
488         select BR2_PACKAGE_GOOGLE_BREAKPAD
489         depends on BR2_INSTALL_LIBSTDCPP
490         depends on BR2_TOOLCHAIN_USES_GLIBC
491         depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
492         help
493           This option will enable the use of google breakpad, a
494           library and tool suite that allows you to distribute an
495           application to users with compiler-provided debugging
496           information removed, record crashes in compact "minidump"
497           files, send them back to your server and produce C and C++
498           stack traces from these minidumps.  Breakpad can also write
499           minidumps on request for programs that have not crashed.
501 if BR2_GOOGLE_BREAKPAD_ENABLE
503 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
504         string "List of executables and libraries to extract symbols from"
505         default ""
506         help
507           You may specify a space-separated list of binaries and
508           libraries with full paths relative to $(TARGET_DIR) of which
509           debug symbols will be dumped for further use with google
510           breakpad.
512           A directory structure that can be used by minidump-stackwalk
513           will be created at:
515           $(STAGING_DIR)/usr/share/google-breakpad-symbols
517 endif
519 config BR2_ENABLE_SSP
520         bool "build code with Stack Smashing Protection"
521         depends on BR2_TOOLCHAIN_HAS_SSP
522         help
523           Enable stack smashing protection support using GCCs
524           -fstack-protector-all option.
526           See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
527           for details.
529           Note that this requires the toolchain to have SSP
530           support. This is always the case for glibc and eglibc
531           toolchain, but is optional in uClibc toolchains.
533 comment "enabling Stack Smashing Protection requires support in the toolchain"
534         depends on !BR2_TOOLCHAIN_HAS_SSP
536 choice
537         bool "libraries"
538         default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
539         default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
540         help
541           Select the type of libraries you want to use on the target.
543           The default is to build dynamic libraries and use those on
544           the target filesystem, except when the architecture and/or
545           the selected binary format does not support shared
546           libraries.
548 config BR2_STATIC_LIBS
549         bool "static only"
550         help
551           Build and use only static libraries. No shared libraries
552           will be instaled on the target. This potentially increases
553           your code size and should only be used if you know what you
554           are doing. Note that some packages may not be available when
555           this option is enabled, due to their need for dynamic
556           library support.
558 config BR2_SHARED_LIBS
559         bool "shared only"
560         depends on BR2_BINFMT_SUPPORTS_SHARED
561         help
562           Build and use only shared libraries. This is the recommended
563           solution as it saves space and build time.
565 config BR2_SHARED_STATIC_LIBS
566         bool "both static and shared"
567         depends on BR2_BINFMT_SUPPORTS_SHARED
568         help
569           Build both shared and static libraries, but link executables
570           dynamically. While building both shared and static libraries
571           take more time and more disk space, having static libraries
572           may be useful to link some of the applications statically.
574 endchoice
577 config BR2_PACKAGE_OVERRIDE_FILE
578         string "location of a package override file"
579         default "$(CONFIG_DIR)/local.mk"
580         help
581           A package override file is a short makefile that contains
582           variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
583           which allows to tell Buildroot to use an existing directory
584           as the source directory for a particular package. See the
585           Buildroot documentation for more details on this feature.
587 config BR2_GLOBAL_PATCH_DIR
588         string "global patch directories"
589         help
590           You may specify a space separated list of one or more directories
591           containing global package patches. For a specific version
592           <packageversion> of a specific package <packagename>, patches are
593           applied as follows:
595           First, the default Buildroot patch set for the package is applied
596           from the package's directory in Buildroot.
598           Then for every directory - <global-patch-dir> - that exists in
599           BR2_GLOBAL_PATCH_DIR, if the directory
600           <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
601           *.patch files in this directory will be applied.
603           Otherwise, if the directory <global-patch-dir>/<packagename> exists,
604           then all *.patch files in the directory will be applied.
606 menu "Advanced"
608 config BR2_COMPILER_PARANOID_UNSAFE_PATH
609         bool "paranoid check of library/header paths"
610         help
611           By default, when this option is disabled, when the Buildroot
612           cross-compiler will encounter an unsafe library or header
613           path (such as /usr/include, or /usr/lib), the compiler will
614           display a warning.
616           By enabling this option, this warning is turned into an
617           error, which will completely abort the build when such
618           unsafe paths are encountered.
620           Note that this mechanism is available for both the internal
621           toolchain (through gcc and binutils patches) and external
622           toolchain backends (through the external toolchain wrapper).
624 endmenu
626 endmenu
628 source "toolchain/Config.in"
630 source "system/Config.in"
632 source "linux/Config.in"
634 source "package/Config.in"
636 source "fs/Config.in"
638 source "boot/Config.in"
640 source "package/Config.in.host"
642 source "Config.in.legacy"
644 menu "User-provided options"
645         depends on BR2_EXTERNAL != "support/dummy-external"
647 source "$BR2_EXTERNAL/Config.in"
649 endmenu