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_7
28 default y if BR2_HOST_GCC_VERSION = "4 7"
30 config BR2_HOST_GCC_AT_LEAST_4_8
32 default y if BR2_HOST_GCC_VERSION = "4 8"
33 select BR2_HOST_GCC_AT_LEAST_4_7
35 config BR2_HOST_GCC_AT_LEAST_4_9
37 default y if BR2_HOST_GCC_VERSION = "4 9"
38 select BR2_HOST_GCC_AT_LEAST_4_8
40 config BR2_HOST_GCC_AT_LEAST_5
42 default y if BR2_HOST_GCC_VERSION = "5"
43 select BR2_HOST_GCC_AT_LEAST_4_9
45 # Hidden boolean selected by packages in need of Java in order to build
47 config BR2_NEEDS_HOST_JAVA
50 # Hidden boolean selected by packages in need of javac in order to build
51 # (example: classpath)
52 config BR2_NEEDS_HOST_JAVAC
55 # Hidden boolean selected by packages in need of jar in order to build
56 # (example: classpath)
57 config BR2_NEEDS_HOST_JAR
60 # Hidden boolean selected by pre-built packages for x86, when they
61 # need to run on x86-64 machines (example: pre-built external
62 # toolchains, binary tools like SAM-BA, etc.).
63 config BR2_HOSTARCH_NEEDS_IA32_LIBS
66 # Hidden boolean selected by packages that need to build 32 bits
67 # binaries with the host compiler, even on 64 bits build machines (e.g
69 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
72 source "arch/Config.in"
80 default "wget --passive-ftp -nd -t 3"
83 string "Subversion (svn) command"
87 string "Bazaar (bzr) command"
99 string "Local files retrieval command"
103 string "Secure copy (scp) command"
107 string "Secure shell (ssh) command"
111 string "Mercurial (hg) command"
115 string "zcat command"
118 Command to be used to extract a gzip'ed file to stdout.
119 zcat is identical to gunzip -c except that the former may
120 not be available on your system.
121 Default is "gzip -d -c"
122 Other possible values include "gunzip -c" or "zcat".
125 string "bzcat command"
128 Command to be used to extract a bzip2'ed file to stdout.
129 bzcat is identical to bunzip2 -c except that the former may
130 not be available on your system.
132 Other possible values include "bunzip2 -c" or "bzip2 -d -c".
135 string "xzcat command"
138 Command to be used to extract a xz'ed file to stdout.
141 config BR2_TAR_OPTIONS
145 Options to pass to tar when extracting the sources.
146 E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
151 config BR2_DEFCONFIG_FROM_ENV
153 option env="BR2_DEFCONFIG"
156 string "Location to save buildroot config"
157 default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
158 default "$(CONFIG_DIR)/defconfig"
160 When running 'make savedefconfig', the defconfig file will be saved
164 string "Download dir"
165 default "$(TOPDIR)/dl"
167 Directory to store all the source files that we need to fetch.
168 If the Linux shell environment has defined the BR2_DL_DIR
169 environment variable, then this overrides this configuration item.
171 The default is $(TOPDIR)/dl
175 default "$(BASE_DIR)/host"
177 Directory to store all the binary files that are built for the host.
178 This includes the cross compilation toolchain when building the
179 internal buildroot toolchain.
181 The default is $(BASE_DIR)/host
183 menu "Mirrors and Download locations"
185 config BR2_PRIMARY_SITE
186 string "Primary download site"
189 Primary site to download from. If this option is set then buildroot
190 will try to download package source first from this site and try the
191 default if the file is not found.
193 - URIs recognized by $(WGET)
194 - local URIs of the form file://absolutepath
195 - scp URIs of the form scp://[user@]host:path.
197 config BR2_PRIMARY_SITE_ONLY
198 bool "Only allow downloads from primary download site"
199 depends on BR2_PRIMARY_SITE != ""
201 If this option is enabled, downloads will only be attempted
202 from the primary download site. Other locations, like the
203 package's official download location or the backup download
204 site, will not be considered. Therefore, if the package is
205 not present on the primary site, the download fails.
207 This is useful for project developers who want to ensure
208 that the project can be built even if the upstream tarball
211 if !BR2_PRIMARY_SITE_ONLY
213 config BR2_BACKUP_SITE
214 string "Backup download site"
215 default "http://sources.buildroot.net"
217 Backup site to download from. If this option is set then buildroot
218 will fall back to download package sources from here if the
219 normal location fails.
221 config BR2_KERNEL_MIRROR
222 string "Kernel.org mirror"
223 default "https://www.kernel.org/pub"
225 kernel.org is mirrored on a number of servers around the world.
226 The following allows you to select your preferred mirror.
228 Have a look on the kernel.org site for a list of mirrors, then enter
229 the URL to the base directory. Examples:
231 http://www.XX.kernel.org/pub (XX = country code)
232 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
234 config BR2_GNU_MIRROR
235 string "GNU Software mirror"
236 default "http://ftp.gnu.org/pub/gnu"
238 GNU has multiple software mirrors scattered around the world.
239 The following allows you to select your preferred mirror.
241 Have a look on the gnu.org site for a list of mirrors, then enter
242 the URL to the base directory. Examples:
244 http://ftp.gnu.org/pub/gnu
245 http://mirror.aarnet.edu.au/pub/gnu
247 config BR2_LUAROCKS_MIRROR
248 string "LuaRocks mirror"
249 default "http://rocks.moonscript.org"
253 See http://luarocks.org
255 config BR2_CPAN_MIRROR
256 string "CPAN mirror (Perl packages)"
257 default "http://cpan.metacpan.org"
259 CPAN (Comprehensive Perl Archive Network) is a repository
260 of Perl packages. It has multiple software mirrors scattered
261 around the world. This option allows you to select a mirror.
263 The list of mirrors is available at:
264 http://search.cpan.org/mirror
271 int "Number of jobs to run simultaneously (0 for auto)"
274 Number of jobs to run simultaneously. If 0, determine
275 automatically according to number of CPUs on the host
279 bool "Enable compiler cache"
281 This option will enable the use of ccache, a compiler
282 cache. It will cache the result of previous builds to speed
283 up future builds. By default, the cache is stored in
284 $HOME/.buildroot-ccache.
286 Note that Buildroot does not try to invalidate the cache
287 contents when the compiler changes in an incompatible
288 way. Therefore, if you make a change to the compiler version
289 and/or configuration, you are responsible for purging the
290 ccache cache by removing the $HOME/.buildroot-ccache
295 config BR2_CCACHE_DIR
296 string "Compiler cache location"
297 default "$(HOME)/.buildroot-ccache"
299 Where ccache should store cached files.
301 config BR2_CCACHE_INITIAL_SETUP
302 string "Compiler cache initial setup"
304 Initial ccache settings to apply, such as --max-files or --max-size.
306 For example, if your project is known to require more space than the
307 default max cache size, then you might want to increase the cache size
308 to a suitable amount using the -M (--max-size) option.
310 The string you specify here is passed verbatim to ccache. Refer to
311 ccache documentation for more details.
313 These initial settings are applied after ccache has been compiled.
315 config BR2_CCACHE_USE_BASEDIR
316 bool "Use relative paths"
319 Allow ccache to convert absolute paths within the output
320 directory into relative paths.
322 During the build, many -I include directives are given with
323 an absolute path. These absolute paths end up in the hashes
324 that are computed by ccache. Therefore, when you build from a
325 different directory, the hash will be different and the
326 cached object will not be used.
328 To improve cache performance, set this option to y. This
329 allows ccache to rewrite absolute paths within the output
330 directory into relative paths. Note that only paths within
331 the output directory will be rewritten; therefore, if you
332 change BR2_HOST_DIR to point outside the output directory and
333 subsequently move it to a different location, this will lead
336 This option has as a result that the debug information in the
337 object files also has only relative paths. Therefore, make
338 sure you cd to the build directory before starting gdb. See
339 the section "COMPILING IN DIFFERENT DIRECTORIES" in the
340 ccache manual for more information.
344 config BR2_DEPRECATED
345 bool "Show options and packages that are deprecated or obsolete"
347 This option shows outdated/obsolete versions of packages and
348 options that are otherwise hidden.
352 config BR2_DEPRECATED_SINCE_2015_05
356 config BR2_DEPRECATED_SINCE_2015_08
360 config BR2_DEPRECATED_SINCE_2015_11
364 config BR2_DEPRECATED_SINCE_2016_02
368 config BR2_DEPRECATED_SINCE_2016_05
374 config BR2_ENABLE_DEBUG
375 bool "build packages with debugging symbols"
377 Build packages with debugging symbols enabled. All libraries
378 and binaries in the 'staging' directory will have debugging
379 symbols, which allows remote debugging even if libraries and
380 binaries are stripped on the target. Whether libraries and
381 binaries are stripped on the target is controlled by the
382 BR2_STRIP_* options below.
386 prompt "gcc debug level"
389 Set the debug level for gcc
394 Debug level 1 produces minimal information, enough
395 for making backtraces in parts of the program that
396 you don't plan to debug. This includes descriptions
397 of functions and external variables, but no information
398 about local variables and no line numbers.
403 The default gcc debug level is 2
408 Level 3 includes extra information, such as all the
409 macro definitions present in the program. Some debuggers
410 support macro expansion when you use -g3.
415 prompt "strip command for binaries on target"
416 default BR2_STRIP_strip
418 config BR2_STRIP_strip
420 depends on !BR2_PACKAGE_HOST_ELF2FLT
422 Binaries and libraries in the target filesystem will be
423 stripped using the normal 'strip' command. This allows to
424 save space, mainly by removing debugging symbols. Debugging
425 symbols on the target are needed for native debugging, but
426 not when remote debugging is used.
428 config BR2_STRIP_none
431 Do not strip binaries and libraries in the target
435 config BR2_STRIP_EXCLUDE_FILES
436 string "executables that should not be stripped"
437 depends on !BR2_STRIP_none
440 You may specify a space-separated list of binaries and libraries
441 here that should not be stripped on the target.
443 config BR2_STRIP_EXCLUDE_DIRS
444 string "directories that should be skipped when stripping"
445 depends on !BR2_STRIP_none
448 You may specify a space-separated list of directories that should
449 be skipped when stripping. Binaries and libraries in these
450 directories will not be touched.
451 The directories should be specified relative to the target directory,
452 without leading slash.
455 prompt "gcc optimization level"
456 default BR2_OPTIMIZE_S
458 Set the optimization level for gcc
460 config BR2_OPTIMIZE_0
461 bool "optimization level 0"
463 Do not optimize. This is the default.
465 config BR2_OPTIMIZE_1
466 bool "optimization level 1"
468 Optimize. Optimizing compilation takes somewhat more time,
469 and a lot more memory for a large function. With -O, the
470 compiler tries to reduce code size and execution time,
471 without performing any optimizations that take a great deal
472 of compilation time. -O turns on the following optimization
473 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
474 -fcprop-registers -floop-optimize -fif-conversion
475 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
476 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
477 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
478 -O also turns on -fomit-frame-pointer on machines where doing
479 so does not interfere with debugging.
481 config BR2_OPTIMIZE_2
482 bool "optimization level 2"
484 Optimize even more. GCC performs nearly all supported optimizations
485 that do not involve a space-speed tradeoff. The compiler does not
486 perform loop unrolling or function inlining when you specify -O2.
487 As compared to -O, this option increases both compilation time and
488 the performance of the generated code. -O2 turns on all optimization
489 flags specified by -O. It also turns on the following optimization
490 flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
491 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
492 -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
493 -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
494 -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
495 -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
496 -freorder-functions -falign-functions -falign-jumps -falign-loops
497 -falign-labels -ftree-vrp -ftree-pre
498 Please note the warning under -fgcse about invoking -O2 on programs
499 that use computed gotos.
501 config BR2_OPTIMIZE_3
502 bool "optimization level 3"
504 Optimize yet more. -O3 turns on all optimizations specified by -O2
505 and also turns on the -finline-functions, -funswitch-loops and
506 -fgcse-after-reload options.
508 config BR2_OPTIMIZE_S
509 bool "optimize for size"
511 Optimize for size. -Os enables all -O2 optimizations that do not
512 typically increase code size. It also performs further optimizations
513 designed to reduce code size. -Os disables the following optimization
514 flags: -falign-functions -falign-jumps -falign-loops -falign-labels
515 -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
516 -ftree-vect-loop-version
520 config BR2_GOOGLE_BREAKPAD_ENABLE
521 bool "Enable google-breakpad support"
522 select BR2_PACKAGE_GOOGLE_BREAKPAD
523 depends on BR2_INSTALL_LIBSTDCPP
524 depends on BR2_TOOLCHAIN_USES_GLIBC
525 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
527 This option will enable the use of google breakpad, a
528 library and tool suite that allows you to distribute an
529 application to users with compiler-provided debugging
530 information removed, record crashes in compact "minidump"
531 files, send them back to your server and produce C and C++
532 stack traces from these minidumps. Breakpad can also write
533 minidumps on request for programs that have not crashed.
535 if BR2_GOOGLE_BREAKPAD_ENABLE
537 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
538 string "List of executables and libraries to extract symbols from"
541 You may specify a space-separated list of binaries and
542 libraries with full paths relative to $(TARGET_DIR) of which
543 debug symbols will be dumped for further use with google
546 A directory structure that can be used by minidump-stackwalk
549 $(STAGING_DIR)/usr/share/google-breakpad-symbols
554 bool "build code with Stack Smashing Protection"
555 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
556 depends on BR2_TOOLCHAIN_HAS_SSP
558 Enable stack smashing protection support using GCC's
559 -fstack-protector option family.
561 See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
564 Note that this requires the toolchain to have SSP
565 support. This is always the case for glibc and eglibc
566 toolchain, but is optional in uClibc toolchains.
571 Disable stack-smashing protection.
573 config BR2_SSP_REGULAR
574 bool "-fstack-protector"
576 Emit extra code to check for buffer overflows, such as stack
577 smashing attacks. This is done by adding a guard variable to
578 functions with vulnerable objects. This includes functions
579 that call alloca, and functions with buffers larger than 8
580 bytes. The guards are initialized when a function is entered
581 and then checked when the function exits. If a guard check
582 fails, an error message is printed and the program exits.
584 config BR2_SSP_STRONG
585 bool "-fstack-protector-strong"
586 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
588 Like -fstack-protector but includes additional functions to be
589 protected - those that have local array definitions, or have
590 references to local frame addresses.
592 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
593 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
596 bool "-fstack-protector-all"
598 Like -fstack-protector except that all functions are
599 protected. This option might have a significant performance
600 impact on the compiled binaries.
604 comment "Stack Smashing Protection needs a toolchain w/ SSP"
605 depends on !BR2_TOOLCHAIN_HAS_SSP
609 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
610 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
612 Select the type of libraries you want to use on the target.
614 The default is to build dynamic libraries and use those on
615 the target filesystem, except when the architecture and/or
616 the selected binary format does not support shared
619 config BR2_STATIC_LIBS
622 Build and use only static libraries. No shared libraries
623 will be instaled on the target. This potentially increases
624 your code size and should only be used if you know what you
625 are doing. Note that some packages may not be available when
626 this option is enabled, due to their need for dynamic
629 config BR2_SHARED_LIBS
631 depends on BR2_BINFMT_SUPPORTS_SHARED
633 Build and use only shared libraries. This is the recommended
634 solution as it saves space and build time.
636 config BR2_SHARED_STATIC_LIBS
637 bool "both static and shared"
638 depends on BR2_BINFMT_SUPPORTS_SHARED
640 Build both shared and static libraries, but link executables
641 dynamically. While building both shared and static libraries
642 take more time and more disk space, having static libraries
643 may be useful to link some of the applications statically.
648 config BR2_PACKAGE_OVERRIDE_FILE
649 string "location of a package override file"
650 default "$(CONFIG_DIR)/local.mk"
652 A package override file is a short makefile that contains
653 variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
654 which allows to tell Buildroot to use an existing directory
655 as the source directory for a particular package. See the
656 Buildroot documentation for more details on this feature.
658 config BR2_GLOBAL_PATCH_DIR
659 string "global patch directories"
661 You may specify a space separated list of one or more directories
662 containing global package patches. For a specific version
663 <packageversion> of a specific package <packagename>, patches are
666 First, the default Buildroot patch set for the package is applied
667 from the package's directory in Buildroot.
669 Then for every directory - <global-patch-dir> - that exists in
670 BR2_GLOBAL_PATCH_DIR, if the directory
671 <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
672 *.patch files in this directory will be applied.
674 Otherwise, if the directory <global-patch-dir>/<packagename> exists,
675 then all *.patch files in the directory will be applied.
679 config BR2_COMPILER_PARANOID_UNSAFE_PATH
680 bool "paranoid check of library/header paths"
682 By default, when this option is disabled, when the Buildroot
683 cross-compiler will encounter an unsafe library or header
684 path (such as /usr/include, or /usr/lib), the compiler will
687 By enabling this option, this warning is turned into an
688 error, which will completely abort the build when such
689 unsafe paths are encountered.
691 Note that this mechanism is available for both the internal
692 toolchain (through gcc and binutils patches) and external
693 toolchain backends (through the external toolchain wrapper).
699 source "toolchain/Config.in"
701 source "system/Config.in"
703 source "linux/Config.in"
705 source "package/Config.in"
707 source "fs/Config.in"
709 source "boot/Config.in"
711 source "package/Config.in.host"
713 source "Config.in.legacy"
715 menu "User-provided options"
716 depends on BR2_EXTERNAL != "support/dummy-external"
718 source "$BR2_EXTERNAL/Config.in"