3 mainmenu "Buildroot $BR2_VERSION Configuration"
5 config BR2_HAVE_DOT_CONFIG
11 option env="BR2_VERSION_FULL"
19 option env="BR2_EXTERNAL"
21 # Hidden config symbols for packages to check system gcc version
22 config BR2_HOST_GCC_VERSION
24 option env="HOST_GCC_VERSION"
26 config BR2_HOST_GCC_AT_LEAST_4_6
28 default y if BR2_HOST_GCC_VERSION = "4 6"
30 config BR2_HOST_GCC_AT_LEAST_4_7
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
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
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
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
52 config BR2_NEEDS_HOST_JAVA
55 # Hidden boolean selected by packages in need of javac in order to build
56 # (example: classpath)
57 config BR2_NEEDS_HOST_JAVAC
60 # Hidden boolean selected by packages in need of jar in order to build
61 # (example: classpath)
62 config BR2_NEEDS_HOST_JAR
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
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
74 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
77 source "arch/Config.in"
85 default "wget --passive-ftp -nd -t 3"
88 string "Subversion (svn) command"
92 string "Bazaar (bzr) command"
103 config BR2_LOCALFILES
104 string "Local files retrieval command"
108 string "Secure copy (scp) command"
112 string "Secure shell (ssh) command"
116 string "Mercurial (hg) command"
120 string "zcat command"
123 Command to be used to extract a gzip'ed file to stdout. zcat
124 is identical to gunzip -c except that the former may not be
125 available on your system.
126 Default is "gzip -d -c"
127 Other possible values include "gunzip -c" or "zcat".
130 string "bzcat command"
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.
137 Other possible values include "bunzip2 -c" or "bzip2 -d -c".
140 string "xzcat command"
143 Command to be used to extract a xz'ed file to stdout.
146 config BR2_TAR_OPTIONS
150 Options to pass to tar when extracting the sources.
151 E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
156 config BR2_DEFCONFIG_FROM_ENV
158 option env="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"
165 When running 'make savedefconfig', the defconfig file will be
166 saved in this location.
169 string "Download dir"
170 default "$(TOPDIR)/dl"
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
177 The default is $(TOPDIR)/dl
181 default "$(BASE_DIR)/host"
183 Directory to store all the binary files that are built for the
184 host. This includes the cross compilation toolchain when
185 building the internal buildroot toolchain.
187 The default is $(BASE_DIR)/host
189 menu "Mirrors and Download locations"
191 config BR2_PRIMARY_SITE
192 string "Primary download site"
195 Primary site to download from. If this option is set then
196 buildroot will try to download package source first from this
197 site and try the default if the file is not found.
199 - URIs recognized by $(WGET)
200 - local URIs of the form file://absolutepath
201 - scp URIs of the form scp://[user@]host:path.
203 config BR2_PRIMARY_SITE_ONLY
204 bool "Only allow downloads from primary download site"
205 depends on BR2_PRIMARY_SITE != ""
207 If this option is enabled, downloads will only be attempted
208 from the primary download site. Other locations, like the
209 package's official download location or the backup download
210 site, will not be considered. Therefore, if the package is not
211 present on the primary site, the download fails.
213 This is useful for project developers who want to ensure that
214 the project can be built even if the upstream tarball
217 if !BR2_PRIMARY_SITE_ONLY
219 config BR2_BACKUP_SITE
220 string "Backup download site"
221 default "http://sources.buildroot.net"
223 Backup site to download from. If this option is set then
224 buildroot will fall back to download package sources from here
225 if the normal location fails.
227 config BR2_KERNEL_MIRROR
228 string "Kernel.org mirror"
229 default "https://cdn.kernel.org/pub"
231 kernel.org is mirrored on a number of servers around the
232 world. The following allows you to select your preferred
233 mirror. By default, a CDN is used, which automatically
234 redirects to a mirror geographically close to you.
236 Have a look on the kernel.org site for a list of mirrors, then
237 enter the URL to the base directory. Examples:
239 http://www.XX.kernel.org/pub (XX = country code)
240 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
242 config BR2_GNU_MIRROR
243 string "GNU Software mirror"
244 default "http://ftpmirror.gnu.org"
246 GNU has multiple software mirrors scattered around the
247 world. The following allows you to select your preferred
248 mirror. By default, a generic address is used, which
249 automatically selects an up-to-date and local mirror.
251 Have a look on the gnu.org site for a list of mirrors, then
252 enter the URL to the base directory. Examples:
254 http://ftp.gnu.org/pub/gnu
255 http://mirror.aarnet.edu.au/pub/gnu
257 config BR2_LUAROCKS_MIRROR
258 string "LuaRocks mirror"
259 default "http://rocks.moonscript.org"
263 See http://luarocks.org
265 config BR2_CPAN_MIRROR
266 string "CPAN mirror (Perl packages)"
267 default "http://cpan.metacpan.org"
269 CPAN (Comprehensive Perl Archive Network) is a repository of
270 Perl packages. It has multiple software mirrors scattered
271 around the world. This option allows you to select a mirror.
273 The list of mirrors is available at:
274 http://search.cpan.org/mirror
281 int "Number of jobs to run simultaneously (0 for auto)"
284 Number of jobs to run simultaneously. If 0, determine
285 automatically according to number of CPUs on the host system.
288 bool "Enable compiler cache"
290 This option will enable the use of ccache, a compiler cache.
291 It will cache the result of previous builds to speed up future
292 builds. By default, the cache is stored in
293 $HOME/.buildroot-ccache.
295 Note that Buildroot does not try to invalidate the cache
296 contents when the compiler changes in an incompatible way.
297 Therefore, if you make a change to the compiler version and/or
298 configuration, you are responsible for purging the ccache
299 cache by removing the $HOME/.buildroot-ccache directory.
303 config BR2_CCACHE_DIR
304 string "Compiler cache location"
305 default "$(HOME)/.buildroot-ccache"
307 Where ccache should store cached files.
309 config BR2_CCACHE_INITIAL_SETUP
310 string "Compiler cache initial setup"
312 Initial ccache settings to apply, such as --max-files or
315 For example, if your project is known to require more space
316 than the default max cache size, then you might want to
317 increase the cache size to a suitable amount using the -M
320 The string you specify here is passed verbatim to ccache.
321 Refer to ccache documentation for more details.
323 These initial settings are applied after ccache has been
326 config BR2_CCACHE_USE_BASEDIR
327 bool "Use relative paths"
330 Allow ccache to convert absolute paths within the output
331 directory into relative paths.
333 During the build, many -I include directives are given with an
334 absolute path. These absolute paths end up in the hashes that
335 are computed by ccache. Therefore, when you build from a
336 different directory, the hash will be different and the cached
337 object will not be used.
339 To improve cache performance, set this option to y. This
340 allows ccache to rewrite absolute paths within the output
341 directory into relative paths. Note that only paths within the
342 output directory will be rewritten; therefore, if you change
343 BR2_HOST_DIR to point outside the output directory and
344 subsequently move it to a different location, this will lead
347 This option has as a result that the debug information in the
348 object files also has only relative paths. Therefore, make
349 sure you cd to the build directory before starting gdb. See
350 the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache
351 manual for more information.
355 config BR2_DEPRECATED
356 bool "Show options and packages that are deprecated or obsolete"
358 This option shows outdated/obsolete versions of packages and
359 options that are otherwise hidden.
363 config BR2_DEPRECATED_SINCE_2015_05
367 config BR2_DEPRECATED_SINCE_2015_08
371 config BR2_DEPRECATED_SINCE_2015_11
375 config BR2_DEPRECATED_SINCE_2016_02
379 config BR2_DEPRECATED_SINCE_2016_05
385 config BR2_ENABLE_DEBUG
386 bool "build packages with debugging symbols"
388 Build packages with debugging symbols enabled. All libraries
389 and binaries in the 'staging' directory will have debugging
390 symbols, which allows remote debugging even if libraries and
391 binaries are stripped on the target. Whether libraries and
392 binaries are stripped on the target is controlled by the
393 BR2_STRIP_* options below.
397 prompt "gcc debug level"
400 Set the debug level for gcc
405 Debug level 1 produces minimal information, enough for making
406 backtraces in parts of the program that you don't plan to
407 debug. This includes descriptions of functions and external
408 variables, but no information about local variables and no
414 The default gcc debug level is 2
419 Level 3 includes extra information, such as all the macro
420 definitions present in the program. Some debuggers support
421 macro expansion when you use -g3.
426 prompt "strip command for binaries on target"
427 default BR2_STRIP_strip
429 config BR2_STRIP_strip
431 depends on !BR2_PACKAGE_HOST_ELF2FLT
433 Binaries and libraries in the target filesystem will be
434 stripped using the normal 'strip' command. This allows to save
435 space, mainly by removing debugging symbols. Debugging symbols
436 on the target are needed for native debugging, but not when
437 remote debugging is used.
439 config BR2_STRIP_none
442 Do not strip binaries and libraries in the target filesystem.
445 config BR2_STRIP_EXCLUDE_FILES
446 string "executables that should not be stripped"
447 depends on !BR2_STRIP_none
450 You may specify a space-separated list of binaries and
451 libraries here that should not be stripped on the target.
453 config BR2_STRIP_EXCLUDE_DIRS
454 string "directories that should be skipped when stripping"
455 depends on !BR2_STRIP_none
458 You may specify a space-separated list of directories that
459 should be skipped when stripping. Binaries and libraries in
460 these directories will not be touched. The directories should
461 be specified relative to the target directory, without leading
465 prompt "gcc optimization level"
466 default BR2_OPTIMIZE_S
468 Set the optimization level for gcc
470 config BR2_OPTIMIZE_0
471 bool "optimization level 0"
473 Do not optimize. This is the default.
475 config BR2_OPTIMIZE_1
476 bool "optimization level 1"
478 Optimize. Optimizing compilation takes somewhat more time, and
479 a lot more memory for a large function. With -O, the compiler
480 tries to reduce code size and execution time, without
481 performing any optimizations that take a great deal of
482 compilation time. -O turns on the following optimization
483 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
484 -fcprop-registers -floop-optimize -fif-conversion
485 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
486 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
487 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O
488 also turns on -fomit-frame-pointer on machines where doing so
489 does not interfere with debugging.
491 config BR2_OPTIMIZE_2
492 bool "optimization level 2"
494 Optimize even more. GCC performs nearly all supported
495 optimizations that do not involve a space-speed tradeoff. The
496 compiler does not perform loop unrolling or function inlining
497 when you specify -O2. As compared to -O, this option increases
498 both compilation time and the performance of the generated
499 code. -O2 turns on all optimization flags specified by -O. It
500 also turns on the following optimization flags:
501 -fthread-jumps -fcrossjumping -foptimize-sibling-calls
502 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
503 -fexpensive-optimizations -fstrength-reduce
504 -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves
505 -fpeephole2 -fschedule-insns -fschedule-insns2
506 -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
507 -fdelete-null-pointer-checks -freorder-blocks
508 -freorder-functions -falign-functions -falign-jumps
509 -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
510 note the warning under -fgcse about invoking -O2 on programs
511 that use computed gotos.
513 config BR2_OPTIMIZE_3
514 bool "optimization level 3"
516 Optimize yet more. -O3 turns on all optimizations specified by
517 -O2 and also turns on the -finline-functions, -funswitch-loops
518 and -fgcse-after-reload options.
520 config BR2_OPTIMIZE_G
521 bool "optimize for debugging"
522 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
524 Optimize for debugging. This enables optimizations that do not
525 interfere with debugging. It should be the optimization level
526 of choice for the standard edit-compile-debug cycle, offering
527 a reasonable level of optimization while maintaining fast
528 compilation and a good debugging experience.
530 config BR2_OPTIMIZE_S
531 bool "optimize for size"
533 Optimize for size. -Os enables all -O2 optimizations that do
534 not typically increase code size. It also performs further
535 optimizations designed to reduce code size. -Os disables the
536 following optimization flags: -falign-functions -falign-jumps
537 -falign-loops -falign-labels -freorder-blocks
538 -freorder-blocks-and-partition -fprefetch-loop-arrays
539 -ftree-vect-loop-version
543 config BR2_GOOGLE_BREAKPAD_ENABLE
544 bool "Enable google-breakpad support"
545 select BR2_PACKAGE_GOOGLE_BREAKPAD
546 depends on BR2_INSTALL_LIBSTDCPP
547 depends on BR2_TOOLCHAIN_USES_GLIBC
548 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
550 This option will enable the use of google breakpad, a library
551 and tool suite that allows you to distribute an application to
552 users with compiler-provided debugging information removed,
553 record crashes in compact "minidump" files, send them back to
554 your server and produce C and C++ stack traces from these
555 minidumps. Breakpad can also write minidumps on request for
556 programs that have not crashed.
558 if BR2_GOOGLE_BREAKPAD_ENABLE
560 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
561 string "List of executables and libraries to extract symbols from"
564 You may specify a space-separated list of binaries and
565 libraries with full paths relative to $(TARGET_DIR) of which
566 debug symbols will be dumped for further use with google
569 A directory structure that can be used by minidump-stackwalk
572 $(STAGING_DIR)/usr/share/google-breakpad-symbols
577 bool "build code with Stack Smashing Protection"
578 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
579 depends on BR2_TOOLCHAIN_HAS_SSP
581 Enable stack smashing protection support using GCC's
582 -fstack-protector option family.
585 http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
588 Note that this requires the toolchain to have SSP support.
589 This is always the case for glibc and eglibc toolchain, but is
590 optional in uClibc toolchains.
595 Disable stack-smashing protection.
597 config BR2_SSP_REGULAR
598 bool "-fstack-protector"
600 Emit extra code to check for buffer overflows, such as stack
601 smashing attacks. This is done by adding a guard variable to
602 functions with vulnerable objects. This includes functions
603 that call alloca, and functions with buffers larger than 8
604 bytes. The guards are initialized when a function is entered
605 and then checked when the function exits. If a guard check
606 fails, an error message is printed and the program exits.
608 config BR2_SSP_STRONG
609 bool "-fstack-protector-strong"
610 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
612 Like -fstack-protector but includes additional functions to be
613 protected - those that have local array definitions, or have
614 references to local frame addresses.
616 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
617 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
620 bool "-fstack-protector-all"
622 Like -fstack-protector except that all functions are
623 protected. This option might have a significant performance
624 impact on the compiled binaries.
628 comment "Stack Smashing Protection needs a toolchain w/ SSP"
629 depends on !BR2_TOOLCHAIN_HAS_SSP
633 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
634 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
636 Select the type of libraries you want to use on the target.
638 The default is to build dynamic libraries and use those on the
639 target filesystem, except when the architecture and/or the
640 selected binary format does not support shared libraries.
642 config BR2_STATIC_LIBS
645 Build and use only static libraries. No shared libraries will
646 be instaled on the target. This potentially increases your
647 code size and should only be used if you know what you are
648 doing. Note that some packages may not be available when this
649 option is enabled, due to their need for dynamic library
652 config BR2_SHARED_LIBS
654 depends on BR2_BINFMT_SUPPORTS_SHARED
656 Build and use only shared libraries. This is the recommended
657 solution as it saves space and build time.
659 config BR2_SHARED_STATIC_LIBS
660 bool "both static and shared"
661 depends on BR2_BINFMT_SUPPORTS_SHARED
663 Build both shared and static libraries, but link executables
664 dynamically. While building both shared and static libraries
665 take more time and more disk space, having static libraries
666 may be useful to link some of the applications statically.
671 config BR2_PACKAGE_OVERRIDE_FILE
672 string "location of a package override file"
673 default "$(CONFIG_DIR)/local.mk"
675 A package override file is a short makefile that contains
676 variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
677 allows to tell Buildroot to use an existing directory as the
678 source directory for a particular package. See the Buildroot
679 documentation for more details on this feature.
681 config BR2_GLOBAL_PATCH_DIR
682 string "global patch directories"
684 You may specify a space separated list of one or more
685 directories containing global package patches. For a specific
686 version <packageversion> of a specific package <packagename>,
687 patches are applied as follows:
689 First, the default Buildroot patch set for the package is
690 applied from the package's directory in Buildroot.
692 Then for every directory - <global-patch-dir> - that exists in
693 BR2_GLOBAL_PATCH_DIR, if the directory
694 <global-patch-dir>/<packagename>/<packageversion>/ exists,
695 then all *.patch files in this directory will be applied.
697 Otherwise, if the directory <global-patch-dir>/<packagename>
698 exists, then all *.patch files in the directory will be
703 config BR2_COMPILER_PARANOID_UNSAFE_PATH
704 bool "paranoid check of library/header paths"
707 By default, when this option is disabled, when the Buildroot
708 cross-compiler will encounter an unsafe library or header path
709 (such as /usr/include, or /usr/lib), the compiler will display
712 By enabling this option, this warning is turned into an error,
713 which will completely abort the build when such unsafe paths
716 Note that this mechanism is available for both the internal
717 toolchain (through the toolchain wrapper and binutils patches)
718 and external toolchain backends (through the toolchain wrapper).
724 source "toolchain/Config.in"
726 source "system/Config.in"
728 source "linux/Config.in"
730 source "package/Config.in"
732 source "fs/Config.in"
734 source "boot/Config.in"
736 source "package/Config.in.host"
738 source "Config.in.legacy"
740 menu "User-provided options"
741 depends on BR2_EXTERNAL != "support/dummy-external"
743 source "$BR2_EXTERNAL/Config.in"