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