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://ftpmirror.gnu.org"
245 GNU has multiple software mirrors scattered around the
246 world. The following allows you to select your preferred
247 mirror. By default, a generic address is used, which
248 automatically selects an up-to-date and local mirror.
250 Have a look on the gnu.org site for a list of mirrors, then enter
251 the URL to the base directory. Examples:
253 http://ftp.gnu.org/pub/gnu
254 http://mirror.aarnet.edu.au/pub/gnu
256 config BR2_LUAROCKS_MIRROR
257 string "LuaRocks mirror"
258 default "http://rocks.moonscript.org"
262 See http://luarocks.org
264 config BR2_CPAN_MIRROR
265 string "CPAN mirror (Perl packages)"
266 default "http://cpan.metacpan.org"
268 CPAN (Comprehensive Perl Archive Network) is a repository
269 of Perl packages. It has multiple software mirrors scattered
270 around the world. This option allows you to select a mirror.
272 The list of mirrors is available at:
273 http://search.cpan.org/mirror
280 int "Number of jobs to run simultaneously (0 for auto)"
283 Number of jobs to run simultaneously. If 0, determine
284 automatically according to number of CPUs on the host
288 bool "Enable compiler cache"
290 This option will enable the use of ccache, a compiler
291 cache. It will cache the result of previous builds to speed
292 up future 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
297 way. Therefore, if you make a change to the compiler version
298 and/or configuration, you are responsible for purging the
299 ccache cache by removing the $HOME/.buildroot-ccache
304 config BR2_CCACHE_DIR
305 string "Compiler cache location"
306 default "$(HOME)/.buildroot-ccache"
308 Where ccache should store cached files.
310 config BR2_CCACHE_INITIAL_SETUP
311 string "Compiler cache initial setup"
313 Initial ccache settings to apply, such as --max-files or --max-size.
315 For example, if your project is known to require more space than the
316 default max cache size, then you might want to increase the cache size
317 to a suitable amount using the -M (--max-size) option.
319 The string you specify here is passed verbatim to ccache. Refer to
320 ccache documentation for more details.
322 These initial settings are applied after ccache has been compiled.
324 config BR2_CCACHE_USE_BASEDIR
325 bool "Use relative paths"
328 Allow ccache to convert absolute paths within the output
329 directory into relative paths.
331 During the build, many -I include directives are given with
332 an absolute path. These absolute paths end up in the hashes
333 that are computed by ccache. Therefore, when you build from a
334 different directory, the hash will be different and the
335 cached object will not be used.
337 To improve cache performance, set this option to y. This
338 allows ccache to rewrite absolute paths within the output
339 directory into relative paths. Note that only paths within
340 the output directory will be rewritten; therefore, if you
341 change BR2_HOST_DIR to point outside the output directory and
342 subsequently move it to a different location, this will lead
345 This option has as a result that the debug information in the
346 object files also has only relative paths. Therefore, make
347 sure you cd to the build directory before starting gdb. See
348 the section "COMPILING IN DIFFERENT DIRECTORIES" in the
349 ccache manual for more information.
353 config BR2_DEPRECATED
354 bool "Show options and packages that are deprecated or obsolete"
356 This option shows outdated/obsolete versions of packages and
357 options that are otherwise hidden.
361 config BR2_DEPRECATED_SINCE_2015_05
365 config BR2_DEPRECATED_SINCE_2015_08
369 config BR2_DEPRECATED_SINCE_2015_11
373 config BR2_DEPRECATED_SINCE_2016_02
377 config BR2_DEPRECATED_SINCE_2016_05
383 config BR2_ENABLE_DEBUG
384 bool "build packages with debugging symbols"
386 Build packages with debugging symbols enabled. All libraries
387 and binaries in the 'staging' directory will have debugging
388 symbols, which allows remote debugging even if libraries and
389 binaries are stripped on the target. Whether libraries and
390 binaries are stripped on the target is controlled by the
391 BR2_STRIP_* options below.
395 prompt "gcc debug level"
398 Set the debug level for gcc
403 Debug level 1 produces minimal information, enough
404 for making backtraces in parts of the program that
405 you don't plan to debug. This includes descriptions
406 of functions and external variables, but no information
407 about local variables and no line numbers.
412 The default gcc debug level is 2
417 Level 3 includes extra information, such as all the
418 macro definitions present in the program. Some debuggers
419 support macro expansion when you use -g3.
424 prompt "strip command for binaries on target"
425 default BR2_STRIP_strip
427 config BR2_STRIP_strip
429 depends on !BR2_PACKAGE_HOST_ELF2FLT
431 Binaries and libraries in the target filesystem will be
432 stripped using the normal 'strip' command. This allows to
433 save space, mainly by removing debugging symbols. Debugging
434 symbols on the target are needed for native debugging, but
435 not when remote debugging is used.
437 config BR2_STRIP_none
440 Do not strip binaries and libraries in the target
444 config BR2_STRIP_EXCLUDE_FILES
445 string "executables that should not be stripped"
446 depends on !BR2_STRIP_none
449 You may specify a space-separated list of binaries and libraries
450 here that should not be stripped on the target.
452 config BR2_STRIP_EXCLUDE_DIRS
453 string "directories that should be skipped when stripping"
454 depends on !BR2_STRIP_none
457 You may specify a space-separated list of directories that should
458 be skipped when stripping. Binaries and libraries in these
459 directories will not be touched.
460 The directories should be specified relative to the target directory,
461 without leading slash.
464 prompt "gcc optimization level"
465 default BR2_OPTIMIZE_S
467 Set the optimization level for gcc
469 config BR2_OPTIMIZE_0
470 bool "optimization level 0"
472 Do not optimize. This is the default.
474 config BR2_OPTIMIZE_1
475 bool "optimization level 1"
477 Optimize. Optimizing compilation takes somewhat more time,
478 and a lot more memory for a large function. With -O, the
479 compiler tries to reduce code size and execution time,
480 without performing any optimizations that take a great deal
481 of compilation time. -O turns on the following optimization
482 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
483 -fcprop-registers -floop-optimize -fif-conversion
484 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
485 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
486 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
487 -O also turns on -fomit-frame-pointer on machines where doing
488 so does not interfere with debugging.
490 config BR2_OPTIMIZE_2
491 bool "optimization level 2"
493 Optimize even more. GCC performs nearly all supported optimizations
494 that do not involve a space-speed tradeoff. The compiler does not
495 perform loop unrolling or function inlining when you specify -O2.
496 As compared to -O, this option increases both compilation time and
497 the performance of the generated code. -O2 turns on all optimization
498 flags specified by -O. It also turns on the following optimization
499 flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
500 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
501 -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
502 -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
503 -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
504 -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
505 -freorder-functions -falign-functions -falign-jumps -falign-loops
506 -falign-labels -ftree-vrp -ftree-pre
507 Please note the warning under -fgcse about invoking -O2 on programs
508 that use computed gotos.
510 config BR2_OPTIMIZE_3
511 bool "optimization level 3"
513 Optimize yet more. -O3 turns on all optimizations specified by -O2
514 and also turns on the -finline-functions, -funswitch-loops and
515 -fgcse-after-reload options.
517 config BR2_OPTIMIZE_G
518 bool "optimize for debugging"
519 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
521 Optimize for debugging. This enables optimizations that do not
522 interfere with debugging. It should be the optimization level of
523 choice for the standard edit-compile-debug cycle, offering a
524 reasonable level of optimization while maintaining fast compilation
525 and a good debugging experience.
527 config BR2_OPTIMIZE_S
528 bool "optimize for size"
530 Optimize for size. -Os enables all -O2 optimizations that do not
531 typically increase code size. It also performs further optimizations
532 designed to reduce code size. -Os disables the following optimization
533 flags: -falign-functions -falign-jumps -falign-loops -falign-labels
534 -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
535 -ftree-vect-loop-version
539 config BR2_GOOGLE_BREAKPAD_ENABLE
540 bool "Enable google-breakpad support"
541 select BR2_PACKAGE_GOOGLE_BREAKPAD
542 depends on BR2_INSTALL_LIBSTDCPP
543 depends on BR2_TOOLCHAIN_USES_GLIBC
544 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
546 This option will enable the use of google breakpad, a
547 library and tool suite that allows you to distribute an
548 application to users with compiler-provided debugging
549 information removed, record crashes in compact "minidump"
550 files, send them back to your server and produce C and C++
551 stack traces from these minidumps. Breakpad can also write
552 minidumps on request for programs that have not crashed.
554 if BR2_GOOGLE_BREAKPAD_ENABLE
556 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
557 string "List of executables and libraries to extract symbols from"
560 You may specify a space-separated list of binaries and
561 libraries with full paths relative to $(TARGET_DIR) of which
562 debug symbols will be dumped for further use with google
565 A directory structure that can be used by minidump-stackwalk
568 $(STAGING_DIR)/usr/share/google-breakpad-symbols
573 bool "build code with Stack Smashing Protection"
574 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
575 depends on BR2_TOOLCHAIN_HAS_SSP
577 Enable stack smashing protection support using GCC's
578 -fstack-protector option family.
580 See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
583 Note that this requires the toolchain to have SSP
584 support. This is always the case for glibc and eglibc
585 toolchain, but is optional in uClibc toolchains.
590 Disable stack-smashing protection.
592 config BR2_SSP_REGULAR
593 bool "-fstack-protector"
595 Emit extra code to check for buffer overflows, such as stack
596 smashing attacks. This is done by adding a guard variable to
597 functions with vulnerable objects. This includes functions
598 that call alloca, and functions with buffers larger than 8
599 bytes. The guards are initialized when a function is entered
600 and then checked when the function exits. If a guard check
601 fails, an error message is printed and the program exits.
603 config BR2_SSP_STRONG
604 bool "-fstack-protector-strong"
605 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
607 Like -fstack-protector but includes additional functions to be
608 protected - those that have local array definitions, or have
609 references to local frame addresses.
611 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
612 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
615 bool "-fstack-protector-all"
617 Like -fstack-protector except that all functions are
618 protected. This option might have a significant performance
619 impact on the compiled binaries.
623 comment "Stack Smashing Protection needs a toolchain w/ SSP"
624 depends on !BR2_TOOLCHAIN_HAS_SSP
628 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
629 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
631 Select the type of libraries you want to use on the target.
633 The default is to build dynamic libraries and use those on
634 the target filesystem, except when the architecture and/or
635 the selected binary format does not support shared
638 config BR2_STATIC_LIBS
641 Build and use only static libraries. No shared libraries
642 will be instaled on the target. This potentially increases
643 your code size and should only be used if you know what you
644 are doing. Note that some packages may not be available when
645 this option is enabled, due to their need for dynamic
648 config BR2_SHARED_LIBS
650 depends on BR2_BINFMT_SUPPORTS_SHARED
652 Build and use only shared libraries. This is the recommended
653 solution as it saves space and build time.
655 config BR2_SHARED_STATIC_LIBS
656 bool "both static and shared"
657 depends on BR2_BINFMT_SUPPORTS_SHARED
659 Build both shared and static libraries, but link executables
660 dynamically. While building both shared and static libraries
661 take more time and more disk space, having static libraries
662 may be useful to link some of the applications statically.
667 config BR2_PACKAGE_OVERRIDE_FILE
668 string "location of a package override file"
669 default "$(CONFIG_DIR)/local.mk"
671 A package override file is a short makefile that contains
672 variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
673 which allows to tell Buildroot to use an existing directory
674 as the source directory for a particular package. See the
675 Buildroot documentation for more details on this feature.
677 config BR2_GLOBAL_PATCH_DIR
678 string "global patch directories"
680 You may specify a space separated list of one or more directories
681 containing global package patches. For a specific version
682 <packageversion> of a specific package <packagename>, patches are
685 First, the default Buildroot patch set for the package is applied
686 from the package's directory in Buildroot.
688 Then for every directory - <global-patch-dir> - that exists in
689 BR2_GLOBAL_PATCH_DIR, if the directory
690 <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
691 *.patch files in this directory will be applied.
693 Otherwise, if the directory <global-patch-dir>/<packagename> exists,
694 then all *.patch files in the directory will be applied.
698 config BR2_COMPILER_PARANOID_UNSAFE_PATH
699 bool "paranoid check of library/header paths"
702 By default, when this option is disabled, when the Buildroot
703 cross-compiler will encounter an unsafe library or header
704 path (such as /usr/include, or /usr/lib), the compiler will
707 By enabling this option, this warning is turned into an
708 error, which will completely abort the build when such
709 unsafe paths are encountered.
711 Note that this mechanism is available for both the internal
712 toolchain (through gcc and binutils patches) and external
713 toolchain backends (through the external toolchain wrapper).
719 source "toolchain/Config.in"
721 source "system/Config.in"
723 source "linux/Config.in"
725 source "package/Config.in"
727 source "fs/Config.in"
729 source "boot/Config.in"
731 source "package/Config.in.host"
733 source "Config.in.legacy"
735 menu "User-provided options"
736 depends on BR2_EXTERNAL != "support/dummy-external"
738 source "$BR2_EXTERNAL/Config.in"