]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - Config.in
Config.in: Use CDN kernel.org mirror
[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://ftp.gnu.org/pub/gnu"
244         help
245           GNU has multiple software mirrors scattered around the world.
246           The following allows you to select your preferred mirror.
247
248           Have a look on the gnu.org site for a list of mirrors, then enter
249           the URL to the base directory.  Examples:
250
251              http://ftp.gnu.org/pub/gnu
252              http://mirror.aarnet.edu.au/pub/gnu
253
254 config BR2_LUAROCKS_MIRROR
255         string "LuaRocks mirror"
256         default "http://rocks.moonscript.org"
257         help
258           LuaRocks repository.
259
260           See http://luarocks.org
261
262 config BR2_CPAN_MIRROR
263         string "CPAN mirror (Perl packages)"
264         default "http://cpan.metacpan.org"
265         help
266           CPAN (Comprehensive Perl Archive Network) is a repository
267           of Perl packages. It has multiple software mirrors scattered
268           around the world. This option allows you to select a mirror.
269
270           The list of mirrors is available at:
271           http://search.cpan.org/mirror
272
273 endif
274
275 endmenu
276
277 config BR2_JLEVEL
278         int "Number of jobs to run simultaneously (0 for auto)"
279         default "0"
280         help
281           Number of jobs to run simultaneously.  If 0, determine
282           automatically according to number of CPUs on the host
283           system.
284
285 config BR2_CCACHE
286         bool "Enable compiler cache"
287         help
288           This option will enable the use of ccache, a compiler
289           cache. It will cache the result of previous builds to speed
290           up future builds. By default, the cache is stored in
291           $HOME/.buildroot-ccache.
292
293           Note that Buildroot does not try to invalidate the cache
294           contents when the compiler changes in an incompatible
295           way. Therefore, if you make a change to the compiler version
296           and/or configuration, you are responsible for purging the
297           ccache cache by removing the $HOME/.buildroot-ccache
298           directory.
299
300 if BR2_CCACHE
301
302 config BR2_CCACHE_DIR
303         string "Compiler cache location"
304         default "$(HOME)/.buildroot-ccache"
305         help
306           Where ccache should store cached files.
307
308 config BR2_CCACHE_INITIAL_SETUP
309         string "Compiler cache initial setup"
310         help
311           Initial ccache settings to apply, such as --max-files or --max-size.
312
313           For example, if your project is known to require more space than the
314           default max cache size, then you might want to increase the cache size
315           to a suitable amount using the -M (--max-size) option.
316
317           The string you specify here is passed verbatim to ccache.  Refer to
318           ccache documentation for more details.
319
320           These initial settings are applied after ccache has been compiled.
321
322 config BR2_CCACHE_USE_BASEDIR
323         bool "Use relative paths"
324         default y
325         help
326           Allow ccache to convert absolute paths within the output
327           directory into relative paths.
328
329           During the build, many -I include directives are given with
330           an absolute path. These absolute paths end up in the hashes
331           that are computed by ccache. Therefore, when you build from a
332           different directory, the hash will be different and the
333           cached object will not be used.
334
335           To improve cache performance, set this option to y. This
336           allows ccache to rewrite absolute paths within the output
337           directory into relative paths. Note that only paths within
338           the output directory will be rewritten; therefore, if you
339           change BR2_HOST_DIR to point outside the output directory and
340           subsequently move it to a different location, this will lead
341           to cache misses.
342
343           This option has as a result that the debug information in the
344           object files also has only relative paths. Therefore, make
345           sure you cd to the build directory before starting gdb. See
346           the section "COMPILING IN DIFFERENT DIRECTORIES" in the
347           ccache manual for more information.
348
349 endif
350
351 config BR2_DEPRECATED
352         bool "Show options and packages that are deprecated or obsolete"
353         help
354           This option shows outdated/obsolete versions of packages and
355           options that are otherwise hidden.
356
357 if BR2_DEPRECATED
358
359 config BR2_DEPRECATED_SINCE_2015_05
360         bool
361         default y
362
363 config BR2_DEPRECATED_SINCE_2015_08
364         bool
365         default y
366
367 config BR2_DEPRECATED_SINCE_2015_11
368         bool
369         default y
370
371 config BR2_DEPRECATED_SINCE_2016_02
372         bool
373         default y
374
375 config BR2_DEPRECATED_SINCE_2016_05
376         bool
377         default y
378
379 endif
380
381 config BR2_ENABLE_DEBUG
382         bool "build packages with debugging symbols"
383         help
384           Build packages with debugging symbols enabled. All libraries
385           and binaries in the 'staging' directory will have debugging
386           symbols, which allows remote debugging even if libraries and
387           binaries are stripped on the target. Whether libraries and
388           binaries are stripped on the target is controlled by the
389           BR2_STRIP_* options below.
390
391 if BR2_ENABLE_DEBUG
392 choice
393         prompt "gcc debug level"
394         default BR2_DEBUG_2
395         help
396           Set the debug level for gcc
397
398 config BR2_DEBUG_1
399         bool "debug level 1"
400         help
401           Debug level 1 produces minimal information, enough
402           for making backtraces in parts of the program that
403           you don't plan to debug. This includes descriptions
404           of functions and external variables, but no information
405           about local variables and no line numbers.
406
407 config BR2_DEBUG_2
408         bool "debug level 2"
409         help
410           The default gcc debug level is 2
411
412 config BR2_DEBUG_3
413         bool "debug level 3"
414         help
415           Level 3 includes extra information, such as all the
416           macro definitions present in the program. Some debuggers
417           support macro expansion when you use -g3.
418 endchoice
419 endif
420
421 choice
422         prompt "strip command for binaries on target"
423         default BR2_STRIP_strip
424
425 config BR2_STRIP_strip
426         bool "strip"
427         depends on !BR2_PACKAGE_HOST_ELF2FLT
428         help
429           Binaries and libraries in the target filesystem will be
430           stripped using the normal 'strip' command. This allows to
431           save space, mainly by removing debugging symbols. Debugging
432           symbols on the target are needed for native debugging, but
433           not when remote debugging is used.
434
435 config BR2_STRIP_none
436         bool "none"
437         help
438           Do not strip binaries and libraries in the target
439           filesystem.
440 endchoice
441
442 config BR2_STRIP_EXCLUDE_FILES
443         string "executables that should not be stripped"
444         depends on !BR2_STRIP_none
445         default ""
446         help
447           You may specify a space-separated list of binaries and libraries
448           here that should not be stripped on the target.
449
450 config BR2_STRIP_EXCLUDE_DIRS
451         string "directories that should be skipped when stripping"
452         depends on !BR2_STRIP_none
453         default ""
454         help
455           You may specify a space-separated list of directories that should
456           be skipped when stripping. Binaries and libraries in these
457           directories will not be touched.
458           The directories should be specified relative to the target directory,
459           without leading slash.
460
461 choice
462         prompt "gcc optimization level"
463         default BR2_OPTIMIZE_S
464         help
465           Set the optimization level for gcc
466
467 config BR2_OPTIMIZE_0
468         bool "optimization level 0"
469         help
470           Do not optimize. This is the default.
471
472 config BR2_OPTIMIZE_1
473         bool "optimization level 1"
474         help
475           Optimize. Optimizing compilation takes somewhat more time,
476           and a lot more memory for a large function. With -O, the
477           compiler tries to reduce code size and execution time,
478           without performing any optimizations that take a great deal
479           of compilation time. -O turns on the following optimization
480           flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
481           -fcprop-registers -floop-optimize -fif-conversion
482           -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
483           -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
484           -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
485           -O also turns on -fomit-frame-pointer on machines where doing
486           so does not interfere with debugging.
487
488 config BR2_OPTIMIZE_2
489         bool "optimization level 2"
490         help
491           Optimize even more. GCC performs nearly all supported optimizations
492           that do not involve a space-speed tradeoff. The compiler does not
493           perform loop unrolling or function inlining when you specify -O2.
494           As compared to -O, this option increases both compilation time and
495           the performance of the generated code. -O2 turns on all optimization
496           flags specified by -O. It also turns on the following optimization
497           flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
498           -fcse-follow-jumps -fcse-skip-blocks -fgcse  -fgcse-lm
499           -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
500           -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
501           -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
502           -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
503           -freorder-functions -falign-functions -falign-jumps -falign-loops
504           -falign-labels -ftree-vrp -ftree-pre
505           Please note the warning under -fgcse about invoking -O2 on programs
506           that use computed gotos.
507
508 config BR2_OPTIMIZE_3
509         bool "optimization level 3"
510         help
511           Optimize yet more. -O3 turns on all optimizations specified by -O2
512           and also turns on the -finline-functions, -funswitch-loops and
513           -fgcse-after-reload options.
514
515 config BR2_OPTIMIZE_S
516         bool "optimize for size"
517         help
518           Optimize for size. -Os enables all -O2 optimizations that do not
519           typically increase code size. It also performs further optimizations
520           designed to reduce code size. -Os disables the following optimization
521           flags: -falign-functions -falign-jumps -falign-loops -falign-labels
522           -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
523           -ftree-vect-loop-version
524
525 endchoice
526
527 config BR2_GOOGLE_BREAKPAD_ENABLE
528         bool "Enable google-breakpad support"
529         select BR2_PACKAGE_GOOGLE_BREAKPAD
530         depends on BR2_INSTALL_LIBSTDCPP
531         depends on BR2_TOOLCHAIN_USES_GLIBC
532         depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
533         help
534           This option will enable the use of google breakpad, a
535           library and tool suite that allows you to distribute an
536           application to users with compiler-provided debugging
537           information removed, record crashes in compact "minidump"
538           files, send them back to your server and produce C and C++
539           stack traces from these minidumps.  Breakpad can also write
540           minidumps on request for programs that have not crashed.
541
542 if BR2_GOOGLE_BREAKPAD_ENABLE
543
544 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
545         string "List of executables and libraries to extract symbols from"
546         default ""
547         help
548           You may specify a space-separated list of binaries and
549           libraries with full paths relative to $(TARGET_DIR) of which
550           debug symbols will be dumped for further use with google
551           breakpad.
552
553           A directory structure that can be used by minidump-stackwalk
554           will be created at:
555
556           $(STAGING_DIR)/usr/share/google-breakpad-symbols
557
558 endif
559
560 choice
561         bool "build code with Stack Smashing Protection"
562         default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
563         depends on BR2_TOOLCHAIN_HAS_SSP
564         help
565           Enable stack smashing protection support using GCC's
566           -fstack-protector option family.
567
568           See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
569           for details.
570
571           Note that this requires the toolchain to have SSP
572           support. This is always the case for glibc and eglibc
573           toolchain, but is optional in uClibc toolchains.
574
575 config BR2_SSP_NONE
576         bool "None"
577         help
578           Disable stack-smashing protection.
579
580 config BR2_SSP_REGULAR
581         bool "-fstack-protector"
582         help
583           Emit extra code to check for buffer overflows, such as stack
584           smashing attacks. This is done by adding a guard variable to
585           functions with vulnerable objects. This includes functions
586           that call alloca, and functions with buffers larger than 8
587           bytes. The guards are initialized when a function is entered
588           and then checked when the function exits. If a guard check
589           fails, an error message is printed and the program exits.
590
591 config BR2_SSP_STRONG
592         bool "-fstack-protector-strong"
593         depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
594         help
595           Like -fstack-protector but includes additional functions to be
596           protected - those that have local array definitions, or have
597           references to local frame addresses.
598
599 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
600         depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
601
602 config BR2_SSP_ALL
603         bool "-fstack-protector-all"
604         help
605           Like -fstack-protector except that all functions are
606           protected. This option might have a significant performance
607           impact on the compiled binaries.
608
609 endchoice
610
611 comment "Stack Smashing Protection needs a toolchain w/ SSP"
612         depends on !BR2_TOOLCHAIN_HAS_SSP
613
614 choice
615         bool "libraries"
616         default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
617         default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
618         help
619           Select the type of libraries you want to use on the target.
620
621           The default is to build dynamic libraries and use those on
622           the target filesystem, except when the architecture and/or
623           the selected binary format does not support shared
624           libraries.
625
626 config BR2_STATIC_LIBS
627         bool "static only"
628         help
629           Build and use only static libraries. No shared libraries
630           will be instaled on the target. This potentially increases
631           your code size and should only be used if you know what you
632           are doing. Note that some packages may not be available when
633           this option is enabled, due to their need for dynamic
634           library support.
635
636 config BR2_SHARED_LIBS
637         bool "shared only"
638         depends on BR2_BINFMT_SUPPORTS_SHARED
639         help
640           Build and use only shared libraries. This is the recommended
641           solution as it saves space and build time.
642
643 config BR2_SHARED_STATIC_LIBS
644         bool "both static and shared"
645         depends on BR2_BINFMT_SUPPORTS_SHARED
646         help
647           Build both shared and static libraries, but link executables
648           dynamically. While building both shared and static libraries
649           take more time and more disk space, having static libraries
650           may be useful to link some of the applications statically.
651
652 endchoice
653
654
655 config BR2_PACKAGE_OVERRIDE_FILE
656         string "location of a package override file"
657         default "$(CONFIG_DIR)/local.mk"
658         help
659           A package override file is a short makefile that contains
660           variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
661           which allows to tell Buildroot to use an existing directory
662           as the source directory for a particular package. See the
663           Buildroot documentation for more details on this feature.
664
665 config BR2_GLOBAL_PATCH_DIR
666         string "global patch directories"
667         help
668           You may specify a space separated list of one or more directories
669           containing global package patches. For a specific version
670           <packageversion> of a specific package <packagename>, patches are
671           applied as follows:
672
673           First, the default Buildroot patch set for the package is applied
674           from the package's directory in Buildroot.
675
676           Then for every directory - <global-patch-dir> - that exists in
677           BR2_GLOBAL_PATCH_DIR, if the directory
678           <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
679           *.patch files in this directory will be applied.
680
681           Otherwise, if the directory <global-patch-dir>/<packagename> exists,
682           then all *.patch files in the directory will be applied.
683
684 menu "Advanced"
685
686 config BR2_COMPILER_PARANOID_UNSAFE_PATH
687         bool "paranoid check of library/header paths"
688         default y
689         help
690           By default, when this option is disabled, when the Buildroot
691           cross-compiler will encounter an unsafe library or header
692           path (such as /usr/include, or /usr/lib), the compiler will
693           display a warning.
694
695           By enabling this option, this warning is turned into an
696           error, which will completely abort the build when such
697           unsafe paths are encountered.
698
699           Note that this mechanism is available for both the internal
700           toolchain (through gcc and binutils patches) and external
701           toolchain backends (through the external toolchain wrapper).
702
703 endmenu
704
705 endmenu
706
707 source "toolchain/Config.in"
708
709 source "system/Config.in"
710
711 source "linux/Config.in"
712
713 source "package/Config.in"
714
715 source "fs/Config.in"
716
717 source "boot/Config.in"
718
719 source "package/Config.in.host"
720
721 source "Config.in.legacy"
722
723 menu "User-provided options"
724         depends on BR2_EXTERNAL != "support/dummy-external"
725
726 source "$BR2_EXTERNAL/Config.in"
727
728 endmenu