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 config BR2_HOST_GCC_AT_LEAST_6
52 default y if BR2_HOST_GCC_VERSION = "6"
53 select BR2_HOST_GCC_AT_LEAST_5
55 # Hidden boolean selected by packages in need of Java in order to build
57 config BR2_NEEDS_HOST_JAVA
60 # Hidden boolean selected by packages in need of javac in order to build
61 # (example: classpath)
62 config BR2_NEEDS_HOST_JAVAC
65 # Hidden boolean selected by packages in need of jar in order to build
66 # (example: classpath)
67 config BR2_NEEDS_HOST_JAR
70 # Hidden boolean selected by pre-built packages for x86, when they
71 # need to run on x86-64 machines (example: pre-built external
72 # toolchains, binary tools like SAM-BA, etc.).
73 config BR2_HOSTARCH_NEEDS_IA32_LIBS
76 # Hidden boolean selected by packages that need to build 32 bits
77 # binaries with the host compiler, even on 64 bits build machines (e.g
79 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
82 source "arch/Config.in"
90 default "wget --passive-ftp -nd -t 3"
93 string "Subversion (svn) command"
97 string "Bazaar (bzr) command"
108 config BR2_LOCALFILES
109 string "Local files retrieval command"
113 string "Secure copy (scp) command"
117 string "Secure shell (ssh) command"
121 string "Mercurial (hg) command"
125 string "zcat command"
128 Command to be used to extract a gzip'ed file to stdout. zcat
129 is identical to gunzip -c except that the former may not be
130 available on your system.
131 Default is "gzip -d -c"
132 Other possible values include "gunzip -c" or "zcat".
135 string "bzcat command"
138 Command to be used to extract a bzip2'ed file to stdout.
139 bzcat is identical to bunzip2 -c except that the former may
140 not be available on your system.
142 Other possible values include "bunzip2 -c" or "bzip2 -d -c".
145 string "xzcat command"
148 Command to be used to extract a xz'ed file to stdout.
151 config BR2_TAR_OPTIONS
155 Options to pass to tar when extracting the sources.
156 E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
161 config BR2_DEFCONFIG_FROM_ENV
163 option env="BR2_DEFCONFIG"
166 string "Location to save buildroot config"
167 default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
168 default "$(CONFIG_DIR)/defconfig"
170 When running 'make savedefconfig', the defconfig file will be
171 saved in this location.
174 string "Download dir"
175 default "$(TOPDIR)/dl"
177 Directory to store all the source files that we need to fetch.
178 If the Linux shell environment has defined the BR2_DL_DIR
179 environment variable, then this overrides this configuration
182 The default is $(TOPDIR)/dl
186 default "$(BASE_DIR)/host"
188 Directory to store all the binary files that are built for the
189 host. This includes the cross compilation toolchain when
190 building the internal buildroot toolchain.
192 The default is $(BASE_DIR)/host
194 menu "Mirrors and Download locations"
196 config BR2_PRIMARY_SITE
197 string "Primary download site"
200 Primary site to download from. If this option is set then
201 buildroot will try to download package source first from this
202 site and try the default if the file is not found.
204 - URIs recognized by $(WGET)
205 - local URIs of the form file://absolutepath
206 - scp URIs of the form scp://[user@]host:path.
208 config BR2_PRIMARY_SITE_ONLY
209 bool "Only allow downloads from primary download site"
210 depends on BR2_PRIMARY_SITE != ""
212 If this option is enabled, downloads will only be attempted
213 from the primary download site. Other locations, like the
214 package's official download location or the backup download
215 site, will not be considered. Therefore, if the package is not
216 present on the primary site, the download fails.
218 This is useful for project developers who want to ensure that
219 the project can be built even if the upstream tarball
222 if !BR2_PRIMARY_SITE_ONLY
224 config BR2_BACKUP_SITE
225 string "Backup download site"
226 default "http://sources.buildroot.net"
228 Backup site to download from. If this option is set then
229 buildroot will fall back to download package sources from here
230 if the normal location fails.
232 config BR2_KERNEL_MIRROR
233 string "Kernel.org mirror"
234 default "https://cdn.kernel.org/pub"
236 kernel.org is mirrored on a number of servers around the
237 world. The following allows you to select your preferred
238 mirror. By default, a CDN is used, which automatically
239 redirects to a mirror geographically close to you.
241 Have a look on the kernel.org site for a list of mirrors, then
242 enter the URL to the base directory. Examples:
244 http://www.XX.kernel.org/pub (XX = country code)
245 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
247 config BR2_GNU_MIRROR
248 string "GNU Software mirror"
249 default "http://ftpmirror.gnu.org"
251 GNU has multiple software mirrors scattered around the
252 world. The following allows you to select your preferred
253 mirror. By default, a generic address is used, which
254 automatically selects an up-to-date and local mirror.
256 Have a look on the gnu.org site for a list of mirrors, then
257 enter the URL to the base directory. Examples:
259 http://ftp.gnu.org/pub/gnu
260 http://mirror.aarnet.edu.au/pub/gnu
262 config BR2_LUAROCKS_MIRROR
263 string "LuaRocks mirror"
264 default "http://rocks.moonscript.org"
268 See http://luarocks.org
270 config BR2_CPAN_MIRROR
271 string "CPAN mirror (Perl packages)"
272 default "http://cpan.metacpan.org"
274 CPAN (Comprehensive Perl Archive Network) is a repository of
275 Perl packages. It has multiple software mirrors scattered
276 around the world. This option allows you to select a mirror.
278 The list of mirrors is available at:
279 http://search.cpan.org/mirror
286 int "Number of jobs to run simultaneously (0 for auto)"
289 Number of jobs to run simultaneously. If 0, determine
290 automatically according to number of CPUs on the host system.
293 bool "Enable compiler cache"
295 This option will enable the use of ccache, a compiler cache.
296 It will cache the result of previous builds to speed up future
297 builds. By default, the cache is stored in
298 $HOME/.buildroot-ccache.
300 Note that Buildroot does not try to invalidate the cache
301 contents when the compiler changes in an incompatible way.
302 Therefore, if you make a change to the compiler version and/or
303 configuration, you are responsible for purging the ccache
304 cache by removing the $HOME/.buildroot-ccache directory.
308 config BR2_CCACHE_DIR
309 string "Compiler cache location"
310 default "$(HOME)/.buildroot-ccache"
312 Where ccache should store cached files.
314 config BR2_CCACHE_INITIAL_SETUP
315 string "Compiler cache initial setup"
317 Initial ccache settings to apply, such as --max-files or
320 For example, if your project is known to require more space
321 than the default max cache size, then you might want to
322 increase the cache size to a suitable amount using the -M
325 The string you specify here is passed verbatim to ccache.
326 Refer to ccache documentation for more details.
328 These initial settings are applied after ccache has been
331 config BR2_CCACHE_USE_BASEDIR
332 bool "Use relative paths"
335 Allow ccache to convert absolute paths within the output
336 directory into relative paths.
338 During the build, many -I include directives are given with an
339 absolute path. These absolute paths end up in the hashes that
340 are computed by ccache. Therefore, when you build from a
341 different directory, the hash will be different and the cached
342 object will not be used.
344 To improve cache performance, set this option to y. This
345 allows ccache to rewrite absolute paths within the output
346 directory into relative paths. Note that only paths within the
347 output directory will be rewritten; therefore, if you change
348 BR2_HOST_DIR to point outside the output directory and
349 subsequently move it to a different location, this will lead
352 This option has as a result that the debug information in the
353 object files also has only relative paths. Therefore, make
354 sure you cd to the build directory before starting gdb. See
355 the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache
356 manual for more information.
360 config BR2_DEPRECATED
361 bool "Show options and packages that are deprecated or obsolete"
363 This option shows outdated/obsolete versions of packages and
364 options that are otherwise hidden.
368 config BR2_DEPRECATED_SINCE_2015_05
372 config BR2_DEPRECATED_SINCE_2015_08
376 config BR2_DEPRECATED_SINCE_2015_11
380 config BR2_DEPRECATED_SINCE_2016_02
384 config BR2_DEPRECATED_SINCE_2016_05
390 config BR2_ENABLE_DEBUG
391 bool "build packages with debugging symbols"
393 Build packages with debugging symbols enabled. All libraries
394 and binaries in the 'staging' directory will have debugging
395 symbols, which allows remote debugging even if libraries and
396 binaries are stripped on the target. Whether libraries and
397 binaries are stripped on the target is controlled by the
398 BR2_STRIP_* options below.
402 prompt "gcc debug level"
405 Set the debug level for gcc
410 Debug level 1 produces minimal information, enough for making
411 backtraces in parts of the program that you don't plan to
412 debug. This includes descriptions of functions and external
413 variables, but no information about local variables and no
419 The default gcc debug level is 2
424 Level 3 includes extra information, such as all the macro
425 definitions present in the program. Some debuggers support
426 macro expansion when you use -g3.
431 prompt "strip command for binaries on target"
432 default BR2_STRIP_strip
434 config BR2_STRIP_strip
436 depends on !BR2_PACKAGE_HOST_ELF2FLT
438 Binaries and libraries in the target filesystem will be
439 stripped using the normal 'strip' command. This allows to save
440 space, mainly by removing debugging symbols. Debugging symbols
441 on the target are needed for native debugging, but not when
442 remote debugging is used.
444 config BR2_STRIP_none
447 Do not strip binaries and libraries in the target filesystem.
450 config BR2_STRIP_EXCLUDE_FILES
451 string "executables that should not be stripped"
452 depends on !BR2_STRIP_none
455 You may specify a space-separated list of binaries and
456 libraries here that should not be stripped on the target.
458 config BR2_STRIP_EXCLUDE_DIRS
459 string "directories that should be skipped when stripping"
460 depends on !BR2_STRIP_none
463 You may specify a space-separated list of directories that
464 should be skipped when stripping. Binaries and libraries in
465 these directories will not be touched. The directories should
466 be specified relative to the target directory, without leading
470 prompt "gcc optimization level"
471 default BR2_OPTIMIZE_S
473 Set the optimization level for gcc
475 config BR2_OPTIMIZE_0
476 bool "optimization level 0"
478 Do not optimize. This is the default.
480 config BR2_OPTIMIZE_1
481 bool "optimization level 1"
483 Optimize. Optimizing compilation takes somewhat more time, and
484 a lot more memory for a large function. With -O, the compiler
485 tries to reduce code size and execution time, without
486 performing any optimizations that take a great deal of
487 compilation time. -O turns on the following optimization
488 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
489 -fcprop-registers -floop-optimize -fif-conversion
490 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
491 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
492 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O
493 also turns on -fomit-frame-pointer on machines where doing so
494 does not interfere with debugging.
496 config BR2_OPTIMIZE_2
497 bool "optimization level 2"
499 Optimize even more. GCC performs nearly all supported
500 optimizations that do not involve a space-speed tradeoff. The
501 compiler does not perform loop unrolling or function inlining
502 when you specify -O2. As compared to -O, this option increases
503 both compilation time and the performance of the generated
504 code. -O2 turns on all optimization flags specified by -O. It
505 also turns on the following optimization flags:
506 -fthread-jumps -fcrossjumping -foptimize-sibling-calls
507 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
508 -fexpensive-optimizations -fstrength-reduce
509 -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves
510 -fpeephole2 -fschedule-insns -fschedule-insns2
511 -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
512 -fdelete-null-pointer-checks -freorder-blocks
513 -freorder-functions -falign-functions -falign-jumps
514 -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
515 note the warning under -fgcse about invoking -O2 on programs
516 that use computed gotos.
518 config BR2_OPTIMIZE_3
519 bool "optimization level 3"
521 Optimize yet more. -O3 turns on all optimizations specified by
522 -O2 and also turns on the -finline-functions, -funswitch-loops
523 and -fgcse-after-reload options.
525 config BR2_OPTIMIZE_G
526 bool "optimize for debugging"
527 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
529 Optimize for debugging. This enables optimizations that do not
530 interfere with debugging. It should be the optimization level
531 of choice for the standard edit-compile-debug cycle, offering
532 a reasonable level of optimization while maintaining fast
533 compilation and a good debugging experience.
535 config BR2_OPTIMIZE_S
536 bool "optimize for size"
538 Optimize for size. -Os enables all -O2 optimizations that do
539 not typically increase code size. It also performs further
540 optimizations designed to reduce code size. -Os disables the
541 following optimization flags: -falign-functions -falign-jumps
542 -falign-loops -falign-labels -freorder-blocks
543 -freorder-blocks-and-partition -fprefetch-loop-arrays
544 -ftree-vect-loop-version
548 config BR2_GOOGLE_BREAKPAD_ENABLE
549 bool "Enable google-breakpad support"
550 select BR2_PACKAGE_GOOGLE_BREAKPAD
551 depends on BR2_INSTALL_LIBSTDCPP
552 depends on BR2_TOOLCHAIN_USES_GLIBC
553 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
555 This option will enable the use of google breakpad, a library
556 and tool suite that allows you to distribute an application to
557 users with compiler-provided debugging information removed,
558 record crashes in compact "minidump" files, send them back to
559 your server and produce C and C++ stack traces from these
560 minidumps. Breakpad can also write minidumps on request for
561 programs that have not crashed.
563 if BR2_GOOGLE_BREAKPAD_ENABLE
565 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
566 string "List of executables and libraries to extract symbols from"
569 You may specify a space-separated list of binaries and
570 libraries with full paths relative to $(TARGET_DIR) of which
571 debug symbols will be dumped for further use with google
574 A directory structure that can be used by minidump-stackwalk
577 $(STAGING_DIR)/usr/share/google-breakpad-symbols
582 bool "build code with Stack Smashing Protection"
583 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
584 depends on BR2_TOOLCHAIN_HAS_SSP
586 Enable stack smashing protection support using GCC's
587 -fstack-protector option family.
590 http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
593 Note that this requires the toolchain to have SSP support.
594 This is always the case for glibc and eglibc toolchain, but is
595 optional in uClibc toolchains.
600 Disable stack-smashing protection.
602 config BR2_SSP_REGULAR
603 bool "-fstack-protector"
605 Emit extra code to check for buffer overflows, such as stack
606 smashing attacks. This is done by adding a guard variable to
607 functions with vulnerable objects. This includes functions
608 that call alloca, and functions with buffers larger than 8
609 bytes. The guards are initialized when a function is entered
610 and then checked when the function exits. If a guard check
611 fails, an error message is printed and the program exits.
613 config BR2_SSP_STRONG
614 bool "-fstack-protector-strong"
615 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
617 Like -fstack-protector but includes additional functions to be
618 protected - those that have local array definitions, or have
619 references to local frame addresses.
621 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
622 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
625 bool "-fstack-protector-all"
627 Like -fstack-protector except that all functions are
628 protected. This option might have a significant performance
629 impact on the compiled binaries.
633 comment "Stack Smashing Protection needs a toolchain w/ SSP"
634 depends on !BR2_TOOLCHAIN_HAS_SSP
638 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
639 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
641 Select the type of libraries you want to use on the target.
643 The default is to build dynamic libraries and use those on the
644 target filesystem, except when the architecture and/or the
645 selected binary format does not support shared libraries.
647 config BR2_STATIC_LIBS
650 Build and use only static libraries. No shared libraries will
651 be instaled on the target. This potentially increases your
652 code size and should only be used if you know what you are
653 doing. Note that some packages may not be available when this
654 option is enabled, due to their need for dynamic library
657 config BR2_SHARED_LIBS
659 depends on BR2_BINFMT_SUPPORTS_SHARED
661 Build and use only shared libraries. This is the recommended
662 solution as it saves space and build time.
664 config BR2_SHARED_STATIC_LIBS
665 bool "both static and shared"
666 depends on BR2_BINFMT_SUPPORTS_SHARED
668 Build both shared and static libraries, but link executables
669 dynamically. While building both shared and static libraries
670 take more time and more disk space, having static libraries
671 may be useful to link some of the applications statically.
676 config BR2_PACKAGE_OVERRIDE_FILE
677 string "location of a package override file"
678 default "$(CONFIG_DIR)/local.mk"
680 A package override file is a short makefile that contains
681 variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
682 allows to tell Buildroot to use an existing directory as the
683 source directory for a particular package. See the Buildroot
684 documentation for more details on this feature.
686 config BR2_GLOBAL_PATCH_DIR
687 string "global patch directories"
689 You may specify a space separated list of one or more
690 directories containing global package patches. For a specific
691 version <packageversion> of a specific package <packagename>,
692 patches are applied as follows:
694 First, the default Buildroot patch set for the package is
695 applied from the package's directory in Buildroot.
697 Then for every directory - <global-patch-dir> - that exists in
698 BR2_GLOBAL_PATCH_DIR, if the directory
699 <global-patch-dir>/<packagename>/<packageversion>/ exists,
700 then all *.patch files in this directory will be applied.
702 Otherwise, if the directory <global-patch-dir>/<packagename>
703 exists, then all *.patch files in the directory will be
708 config BR2_COMPILER_PARANOID_UNSAFE_PATH
709 bool "paranoid check of library/header paths"
712 By default, when this option is disabled, when the Buildroot
713 cross-compiler will encounter an unsafe library or header path
714 (such as /usr/include, or /usr/lib), the compiler will display
717 By enabling this option, this warning is turned into an error,
718 which will completely abort the build when such unsafe paths
721 Note that this mechanism is available for both the internal
722 toolchain (through the toolchain wrapper and binutils patches)
723 and external toolchain backends (through the toolchain wrapper).
729 source "toolchain/Config.in"
731 source "system/Config.in"
733 source "linux/Config.in"
735 source "package/Config.in"
737 source "fs/Config.in"
739 source "boot/Config.in"
741 source "package/Config.in.host"
743 source "Config.in.legacy"
745 menu "User-provided options"
746 depends on BR2_EXTERNAL != "support/dummy-external"
748 source "$BR2_EXTERNAL/Config.in"