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://www.kernel.org/pub"
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"
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"
258 See http://luarocks.org
260 config BR2_CPAN_MIRROR
261 string "CPAN mirror (Perl packages)"
262 default "http://cpan.metacpan.org"
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
276 int "Number of jobs to run simultaneously (0 for auto)"
279 Number of jobs to run simultaneously. If 0, determine
280 automatically according to number of CPUs on the host
284 bool "Enable compiler cache"
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
300 config BR2_CCACHE_DIR
301 string "Compiler cache location"
302 default "$(HOME)/.buildroot-ccache"
304 Where ccache should store cached files.
306 config BR2_CCACHE_INITIAL_SETUP
307 string "Compiler cache initial setup"
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"
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
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.
349 config BR2_DEPRECATED
350 bool "Show options and packages that are deprecated or obsolete"
352 This option shows outdated/obsolete versions of packages and
353 options that are otherwise hidden.
357 config BR2_DEPRECATED_SINCE_2015_05
361 config BR2_DEPRECATED_SINCE_2015_08
365 config BR2_DEPRECATED_SINCE_2015_11
369 config BR2_DEPRECATED_SINCE_2016_02
373 config BR2_DEPRECATED_SINCE_2016_05
379 config BR2_ENABLE_DEBUG
380 bool "build packages with debugging symbols"
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.
391 prompt "gcc debug level"
394 Set the debug level for gcc
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.
408 The default gcc debug level is 2
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.
420 prompt "strip command for binaries on target"
421 default BR2_STRIP_strip
423 config BR2_STRIP_strip
425 depends on !BR2_PACKAGE_HOST_ELF2FLT
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
436 Do not strip binaries and libraries in the target
440 config BR2_STRIP_EXCLUDE_FILES
441 string "executables that should not be stripped"
442 depends on !BR2_STRIP_none
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
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.
460 prompt "gcc optimization level"
461 default BR2_OPTIMIZE_S
463 Set the optimization level for gcc
465 config BR2_OPTIMIZE_0
466 bool "optimization level 0"
468 Do not optimize. This is the default.
470 config BR2_OPTIMIZE_1
471 bool "optimization level 1"
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"
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"
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"
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
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
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"
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
551 A directory structure that can be used by minidump-stackwalk
554 $(STAGING_DIR)/usr/share/google-breakpad-symbols
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
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
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.
576 Disable stack-smashing protection.
578 config BR2_SSP_REGULAR
579 bool "-fstack-protector"
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
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
601 bool "-fstack-protector-all"
603 Like -fstack-protector except that all functions are
604 protected. This option might have a significant performance
605 impact on the compiled binaries.
609 comment "Stack Smashing Protection needs a toolchain w/ SSP"
610 depends on !BR2_TOOLCHAIN_HAS_SSP
614 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
615 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
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
624 config BR2_STATIC_LIBS
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
634 config BR2_SHARED_LIBS
636 depends on BR2_BINFMT_SUPPORTS_SHARED
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
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.
653 config BR2_PACKAGE_OVERRIDE_FILE
654 string "location of a package override file"
655 default "$(CONFIG_DIR)/local.mk"
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"
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
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.
684 config BR2_COMPILER_PARANOID_UNSAFE_PATH
685 bool "paranoid check of library/header paths"
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
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).
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"