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