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.
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".
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 saved
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 item.
176 The default is $(TOPDIR)/dl
180 default "$(BASE_DIR)/host"
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"
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.
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 != ""
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
216 if !BR2_PRIMARY_SITE_ONLY
218 config BR2_BACKUP_SITE
219 string "Backup download site"
220 default "http://sources.buildroot.net"
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://cdn.kernel.org/pub"
230 kernel.org is mirrored on a number of servers around the
231 world. The following allows you to select your preferred
232 mirror. By default, a CDN is used, which automatically
233 redirects to a mirror geographically close to you.
235 Have a look on the kernel.org site for a list of mirrors, then enter
236 the URL to the base directory. Examples:
238 http://www.XX.kernel.org/pub (XX = country code)
239 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
241 config BR2_GNU_MIRROR
242 string "GNU Software mirror"
243 default "http://ftp.gnu.org/pub/gnu"
245 GNU has multiple software mirrors scattered around the world.
246 The following allows you to select your preferred mirror.
248 Have a look on the gnu.org site for a list of mirrors, then enter
249 the URL to the base directory. Examples:
251 http://ftp.gnu.org/pub/gnu
252 http://mirror.aarnet.edu.au/pub/gnu
254 config BR2_LUAROCKS_MIRROR
255 string "LuaRocks mirror"
256 default "http://rocks.moonscript.org"
260 See http://luarocks.org
262 config BR2_CPAN_MIRROR
263 string "CPAN mirror (Perl packages)"
264 default "http://cpan.metacpan.org"
266 CPAN (Comprehensive Perl Archive Network) is a repository
267 of Perl packages. It has multiple software mirrors scattered
268 around the world. This option allows you to select a mirror.
270 The list of mirrors is available at:
271 http://search.cpan.org/mirror
278 int "Number of jobs to run simultaneously (0 for auto)"
281 Number of jobs to run simultaneously. If 0, determine
282 automatically according to number of CPUs on the host
286 bool "Enable compiler cache"
288 This option will enable the use of ccache, a compiler
289 cache. It will cache the result of previous builds to speed
290 up future builds. By default, the cache is stored in
291 $HOME/.buildroot-ccache.
293 Note that Buildroot does not try to invalidate the cache
294 contents when the compiler changes in an incompatible
295 way. Therefore, if you make a change to the compiler version
296 and/or configuration, you are responsible for purging the
297 ccache cache by removing the $HOME/.buildroot-ccache
302 config BR2_CCACHE_DIR
303 string "Compiler cache location"
304 default "$(HOME)/.buildroot-ccache"
306 Where ccache should store cached files.
308 config BR2_CCACHE_INITIAL_SETUP
309 string "Compiler cache initial setup"
311 Initial ccache settings to apply, such as --max-files or --max-size.
313 For example, if your project is known to require more space than the
314 default max cache size, then you might want to increase the cache size
315 to a suitable amount using the -M (--max-size) option.
317 The string you specify here is passed verbatim to ccache. Refer to
318 ccache documentation for more details.
320 These initial settings are applied after ccache has been compiled.
322 config BR2_CCACHE_USE_BASEDIR
323 bool "Use relative paths"
326 Allow ccache to convert absolute paths within the output
327 directory into relative paths.
329 During the build, many -I include directives are given with
330 an absolute path. These absolute paths end up in the hashes
331 that are computed by ccache. Therefore, when you build from a
332 different directory, the hash will be different and the
333 cached object will not be used.
335 To improve cache performance, set this option to y. This
336 allows ccache to rewrite absolute paths within the output
337 directory into relative paths. Note that only paths within
338 the output directory will be rewritten; therefore, if you
339 change BR2_HOST_DIR to point outside the output directory and
340 subsequently move it to a different location, this will lead
343 This option has as a result that the debug information in the
344 object files also has only relative paths. Therefore, make
345 sure you cd to the build directory before starting gdb. See
346 the section "COMPILING IN DIFFERENT DIRECTORIES" in the
347 ccache manual for more information.
351 config BR2_DEPRECATED
352 bool "Show options and packages that are deprecated or obsolete"
354 This option shows outdated/obsolete versions of packages and
355 options that are otherwise hidden.
359 config BR2_DEPRECATED_SINCE_2015_05
363 config BR2_DEPRECATED_SINCE_2015_08
367 config BR2_DEPRECATED_SINCE_2015_11
371 config BR2_DEPRECATED_SINCE_2016_02
375 config BR2_DEPRECATED_SINCE_2016_05
381 config BR2_ENABLE_DEBUG
382 bool "build packages with debugging symbols"
384 Build packages with debugging symbols enabled. All libraries
385 and binaries in the 'staging' directory will have debugging
386 symbols, which allows remote debugging even if libraries and
387 binaries are stripped on the target. Whether libraries and
388 binaries are stripped on the target is controlled by the
389 BR2_STRIP_* options below.
393 prompt "gcc debug level"
396 Set the debug level for gcc
401 Debug level 1 produces minimal information, enough
402 for making backtraces in parts of the program that
403 you don't plan to debug. This includes descriptions
404 of functions and external variables, but no information
405 about local variables and no line numbers.
410 The default gcc debug level is 2
415 Level 3 includes extra information, such as all the
416 macro definitions present in the program. Some debuggers
417 support macro expansion when you use -g3.
422 prompt "strip command for binaries on target"
423 default BR2_STRIP_strip
425 config BR2_STRIP_strip
427 depends on !BR2_PACKAGE_HOST_ELF2FLT
429 Binaries and libraries in the target filesystem will be
430 stripped using the normal 'strip' command. This allows to
431 save space, mainly by removing debugging symbols. Debugging
432 symbols on the target are needed for native debugging, but
433 not when remote debugging is used.
435 config BR2_STRIP_none
438 Do not strip binaries and libraries in the target
442 config BR2_STRIP_EXCLUDE_FILES
443 string "executables that should not be stripped"
444 depends on !BR2_STRIP_none
447 You may specify a space-separated list of binaries and libraries
448 here that should not be stripped on the target.
450 config BR2_STRIP_EXCLUDE_DIRS
451 string "directories that should be skipped when stripping"
452 depends on !BR2_STRIP_none
455 You may specify a space-separated list of directories that should
456 be skipped when stripping. Binaries and libraries in these
457 directories will not be touched.
458 The directories should be specified relative to the target directory,
459 without leading slash.
462 prompt "gcc optimization level"
463 default BR2_OPTIMIZE_S
465 Set the optimization level for gcc
467 config BR2_OPTIMIZE_0
468 bool "optimization level 0"
470 Do not optimize. This is the default.
472 config BR2_OPTIMIZE_1
473 bool "optimization level 1"
475 Optimize. Optimizing compilation takes somewhat more time,
476 and a lot more memory for a large function. With -O, the
477 compiler tries to reduce code size and execution time,
478 without performing any optimizations that take a great deal
479 of compilation time. -O turns on the following optimization
480 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
481 -fcprop-registers -floop-optimize -fif-conversion
482 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
483 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
484 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
485 -O also turns on -fomit-frame-pointer on machines where doing
486 so does not interfere with debugging.
488 config BR2_OPTIMIZE_2
489 bool "optimization level 2"
491 Optimize even more. GCC performs nearly all supported optimizations
492 that do not involve a space-speed tradeoff. The compiler does not
493 perform loop unrolling or function inlining when you specify -O2.
494 As compared to -O, this option increases both compilation time and
495 the performance of the generated code. -O2 turns on all optimization
496 flags specified by -O. It also turns on the following optimization
497 flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
498 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
499 -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
500 -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
501 -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
502 -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
503 -freorder-functions -falign-functions -falign-jumps -falign-loops
504 -falign-labels -ftree-vrp -ftree-pre
505 Please note the warning under -fgcse about invoking -O2 on programs
506 that use computed gotos.
508 config BR2_OPTIMIZE_3
509 bool "optimization level 3"
511 Optimize yet more. -O3 turns on all optimizations specified by -O2
512 and also turns on the -finline-functions, -funswitch-loops and
513 -fgcse-after-reload options.
515 config BR2_OPTIMIZE_S
516 bool "optimize for size"
518 Optimize for size. -Os enables all -O2 optimizations that do not
519 typically increase code size. It also performs further optimizations
520 designed to reduce code size. -Os disables the following optimization
521 flags: -falign-functions -falign-jumps -falign-loops -falign-labels
522 -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
523 -ftree-vect-loop-version
527 config BR2_GOOGLE_BREAKPAD_ENABLE
528 bool "Enable google-breakpad support"
529 select BR2_PACKAGE_GOOGLE_BREAKPAD
530 depends on BR2_INSTALL_LIBSTDCPP
531 depends on BR2_TOOLCHAIN_USES_GLIBC
532 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
534 This option will enable the use of google breakpad, a
535 library and tool suite that allows you to distribute an
536 application to users with compiler-provided debugging
537 information removed, record crashes in compact "minidump"
538 files, send them back to your server and produce C and C++
539 stack traces from these minidumps. Breakpad can also write
540 minidumps on request for programs that have not crashed.
542 if BR2_GOOGLE_BREAKPAD_ENABLE
544 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
545 string "List of executables and libraries to extract symbols from"
548 You may specify a space-separated list of binaries and
549 libraries with full paths relative to $(TARGET_DIR) of which
550 debug symbols will be dumped for further use with google
553 A directory structure that can be used by minidump-stackwalk
556 $(STAGING_DIR)/usr/share/google-breakpad-symbols
561 bool "build code with Stack Smashing Protection"
562 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
563 depends on BR2_TOOLCHAIN_HAS_SSP
565 Enable stack smashing protection support using GCC's
566 -fstack-protector option family.
568 See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
571 Note that this requires the toolchain to have SSP
572 support. This is always the case for glibc and eglibc
573 toolchain, but is optional in uClibc toolchains.
578 Disable stack-smashing protection.
580 config BR2_SSP_REGULAR
581 bool "-fstack-protector"
583 Emit extra code to check for buffer overflows, such as stack
584 smashing attacks. This is done by adding a guard variable to
585 functions with vulnerable objects. This includes functions
586 that call alloca, and functions with buffers larger than 8
587 bytes. The guards are initialized when a function is entered
588 and then checked when the function exits. If a guard check
589 fails, an error message is printed and the program exits.
591 config BR2_SSP_STRONG
592 bool "-fstack-protector-strong"
593 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
595 Like -fstack-protector but includes additional functions to be
596 protected - those that have local array definitions, or have
597 references to local frame addresses.
599 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
600 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
603 bool "-fstack-protector-all"
605 Like -fstack-protector except that all functions are
606 protected. This option might have a significant performance
607 impact on the compiled binaries.
611 comment "Stack Smashing Protection needs a toolchain w/ SSP"
612 depends on !BR2_TOOLCHAIN_HAS_SSP
616 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
617 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
619 Select the type of libraries you want to use on the target.
621 The default is to build dynamic libraries and use those on
622 the target filesystem, except when the architecture and/or
623 the selected binary format does not support shared
626 config BR2_STATIC_LIBS
629 Build and use only static libraries. No shared libraries
630 will be instaled on the target. This potentially increases
631 your code size and should only be used if you know what you
632 are doing. Note that some packages may not be available when
633 this option is enabled, due to their need for dynamic
636 config BR2_SHARED_LIBS
638 depends on BR2_BINFMT_SUPPORTS_SHARED
640 Build and use only shared libraries. This is the recommended
641 solution as it saves space and build time.
643 config BR2_SHARED_STATIC_LIBS
644 bool "both static and shared"
645 depends on BR2_BINFMT_SUPPORTS_SHARED
647 Build both shared and static libraries, but link executables
648 dynamically. While building both shared and static libraries
649 take more time and more disk space, having static libraries
650 may be useful to link some of the applications statically.
655 config BR2_PACKAGE_OVERRIDE_FILE
656 string "location of a package override file"
657 default "$(CONFIG_DIR)/local.mk"
659 A package override file is a short makefile that contains
660 variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
661 which allows to tell Buildroot to use an existing directory
662 as the source directory for a particular package. See the
663 Buildroot documentation for more details on this feature.
665 config BR2_GLOBAL_PATCH_DIR
666 string "global patch directories"
668 You may specify a space separated list of one or more directories
669 containing global package patches. For a specific version
670 <packageversion> of a specific package <packagename>, patches are
673 First, the default Buildroot patch set for the package is applied
674 from the package's directory in Buildroot.
676 Then for every directory - <global-patch-dir> - that exists in
677 BR2_GLOBAL_PATCH_DIR, if the directory
678 <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
679 *.patch files in this directory will be applied.
681 Otherwise, if the directory <global-patch-dir>/<packagename> exists,
682 then all *.patch files in the directory will be applied.
686 config BR2_COMPILER_PARANOID_UNSAFE_PATH
687 bool "paranoid check of library/header paths"
690 By default, when this option is disabled, when the Buildroot
691 cross-compiler will encounter an unsafe library or header
692 path (such as /usr/include, or /usr/lib), the compiler will
695 By enabling this option, this warning is turned into an
696 error, which will completely abort the build when such
697 unsafe paths are encountered.
699 Note that this mechanism is available for both the internal
700 toolchain (through gcc and binutils patches) and external
701 toolchain backends (through the external toolchain wrapper).
707 source "toolchain/Config.in"
709 source "system/Config.in"
711 source "linux/Config.in"
713 source "package/Config.in"
715 source "fs/Config.in"
717 source "boot/Config.in"
719 source "package/Config.in.host"
721 source "Config.in.legacy"
723 menu "User-provided options"
724 depends on BR2_EXTERNAL != "support/dummy-external"
726 source "$BR2_EXTERNAL/Config.in"