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