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
370 config BR2_ENABLE_DEBUG
371 bool "build packages with debugging symbols"
373 Build packages with debugging symbols enabled. All libraries
374 and binaries in the 'staging' directory will have debugging
375 symbols, which allows remote debugging even if libraries and
376 binaries are stripped on the target. Whether libraries and
377 binaries are stripped on the target is controlled by the
378 BR2_STRIP_* options below.
382 prompt "gcc debug level"
385 Set the debug level for gcc
390 Debug level 1 produces minimal information, enough
391 for making backtraces in parts of the program that
392 you don't plan to debug. This includes descriptions
393 of functions and external variables, but no information
394 about local variables and no line numbers.
399 The default gcc debug level is 2
404 Level 3 includes extra information, such as all the
405 macro definitions present in the program. Some debuggers
406 support macro expansion when you use -g3.
411 prompt "strip command for binaries on target"
412 default BR2_STRIP_strip
414 config BR2_STRIP_strip
416 depends on !BR2_PACKAGE_HOST_ELF2FLT
418 Binaries and libraries in the target filesystem will be
419 stripped using the normal 'strip' command. This allows to
420 save space, mainly by removing debugging symbols. Debugging
421 symbols on the target are needed for native debugging, but
422 not when remote debugging is used.
424 config BR2_STRIP_none
427 Do not strip binaries and libraries in the target
431 config BR2_STRIP_EXCLUDE_FILES
432 string "executables that should not be stripped"
433 depends on !BR2_STRIP_none
436 You may specify a space-separated list of binaries and libraries
437 here that should not be stripped on the target.
439 config BR2_STRIP_EXCLUDE_DIRS
440 string "directories that should be skipped when stripping"
441 depends on !BR2_STRIP_none
444 You may specify a space-separated list of directories that should
445 be skipped when stripping. Binaries and libraries in these
446 directories will not be touched.
447 The directories should be specified relative to the target directory,
448 without leading slash.
451 prompt "gcc optimization level"
452 default BR2_OPTIMIZE_S
454 Set the optimization level for gcc
456 config BR2_OPTIMIZE_0
457 bool "optimization level 0"
459 Do not optimize. This is the default.
461 config BR2_OPTIMIZE_1
462 bool "optimization level 1"
464 Optimize. Optimizing compilation takes somewhat more time,
465 and a lot more memory for a large function. With -O, the
466 compiler tries to reduce code size and execution time,
467 without performing any optimizations that take a great deal
468 of compilation time. -O turns on the following optimization
469 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
470 -fcprop-registers -floop-optimize -fif-conversion
471 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
472 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
473 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
474 -O also turns on -fomit-frame-pointer on machines where doing
475 so does not interfere with debugging.
477 config BR2_OPTIMIZE_2
478 bool "optimization level 2"
480 Optimize even more. GCC performs nearly all supported optimizations
481 that do not involve a space-speed tradeoff. The compiler does not
482 perform loop unrolling or function inlining when you specify -O2.
483 As compared to -O, this option increases both compilation time and
484 the performance of the generated code. -O2 turns on all optimization
485 flags specified by -O. It also turns on the following optimization
486 flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
487 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
488 -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
489 -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
490 -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
491 -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
492 -freorder-functions -falign-functions -falign-jumps -falign-loops
493 -falign-labels -ftree-vrp -ftree-pre
494 Please note the warning under -fgcse about invoking -O2 on programs
495 that use computed gotos.
497 config BR2_OPTIMIZE_3
498 bool "optimization level 3"
500 Optimize yet more. -O3 turns on all optimizations specified by -O2
501 and also turns on the -finline-functions, -funswitch-loops and
502 -fgcse-after-reload options.
504 config BR2_OPTIMIZE_S
505 bool "optimize for size"
507 Optimize for size. -Os enables all -O2 optimizations that do not
508 typically increase code size. It also performs further optimizations
509 designed to reduce code size. -Os disables the following optimization
510 flags: -falign-functions -falign-jumps -falign-loops -falign-labels
511 -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
512 -ftree-vect-loop-version
516 config BR2_GOOGLE_BREAKPAD_ENABLE
517 bool "Enable google-breakpad support"
518 select BR2_PACKAGE_GOOGLE_BREAKPAD
519 depends on BR2_INSTALL_LIBSTDCPP
520 depends on BR2_TOOLCHAIN_USES_GLIBC
521 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
523 This option will enable the use of google breakpad, a
524 library and tool suite that allows you to distribute an
525 application to users with compiler-provided debugging
526 information removed, record crashes in compact "minidump"
527 files, send them back to your server and produce C and C++
528 stack traces from these minidumps. Breakpad can also write
529 minidumps on request for programs that have not crashed.
531 if BR2_GOOGLE_BREAKPAD_ENABLE
533 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
534 string "List of executables and libraries to extract symbols from"
537 You may specify a space-separated list of binaries and
538 libraries with full paths relative to $(TARGET_DIR) of which
539 debug symbols will be dumped for further use with google
542 A directory structure that can be used by minidump-stackwalk
545 $(STAGING_DIR)/usr/share/google-breakpad-symbols
550 bool "build code with Stack Smashing Protection"
551 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
552 depends on BR2_TOOLCHAIN_HAS_SSP
554 Enable stack smashing protection support using GCC's
555 -fstack-protector option family.
557 See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
560 Note that this requires the toolchain to have SSP
561 support. This is always the case for glibc and eglibc
562 toolchain, but is optional in uClibc toolchains.
567 Disable stack-smashing protection.
569 config BR2_SSP_REGULAR
570 bool "-fstack-protector"
572 Emit extra code to check for buffer overflows, such as stack
573 smashing attacks. This is done by adding a guard variable to
574 functions with vulnerable objects. This includes functions
575 that call alloca, and functions with buffers larger than 8
576 bytes. The guards are initialized when a function is entered
577 and then checked when the function exits. If a guard check
578 fails, an error message is printed and the program exits.
580 config BR2_SSP_STRONG
581 bool "-fstack-protector-strong"
582 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
584 Like -fstack-protector but includes additional functions to be
585 protected - those that have local array definitions, or have
586 references to local frame addresses.
588 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
589 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
592 bool "-fstack-protector-all"
594 Like -fstack-protector except that all functions are
595 protected. This option might have a significant performance
596 impact on the compiled binaries.
600 comment "Stack Smashing Protection needs a toolchain w/ SSP"
601 depends on !BR2_TOOLCHAIN_HAS_SSP
605 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
606 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
608 Select the type of libraries you want to use on the target.
610 The default is to build dynamic libraries and use those on
611 the target filesystem, except when the architecture and/or
612 the selected binary format does not support shared
615 config BR2_STATIC_LIBS
618 Build and use only static libraries. No shared libraries
619 will be instaled on the target. This potentially increases
620 your code size and should only be used if you know what you
621 are doing. Note that some packages may not be available when
622 this option is enabled, due to their need for dynamic
625 config BR2_SHARED_LIBS
627 depends on BR2_BINFMT_SUPPORTS_SHARED
629 Build and use only shared libraries. This is the recommended
630 solution as it saves space and build time.
632 config BR2_SHARED_STATIC_LIBS
633 bool "both static and shared"
634 depends on BR2_BINFMT_SUPPORTS_SHARED
636 Build both shared and static libraries, but link executables
637 dynamically. While building both shared and static libraries
638 take more time and more disk space, having static libraries
639 may be useful to link some of the applications statically.
644 config BR2_PACKAGE_OVERRIDE_FILE
645 string "location of a package override file"
646 default "$(CONFIG_DIR)/local.mk"
648 A package override file is a short makefile that contains
649 variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
650 which allows to tell Buildroot to use an existing directory
651 as the source directory for a particular package. See the
652 Buildroot documentation for more details on this feature.
654 config BR2_GLOBAL_PATCH_DIR
655 string "global patch directories"
657 You may specify a space separated list of one or more directories
658 containing global package patches. For a specific version
659 <packageversion> of a specific package <packagename>, patches are
662 First, the default Buildroot patch set for the package is applied
663 from the package's directory in Buildroot.
665 Then for every directory - <global-patch-dir> - that exists in
666 BR2_GLOBAL_PATCH_DIR, if the directory
667 <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
668 *.patch files in this directory will be applied.
670 Otherwise, if the directory <global-patch-dir>/<packagename> exists,
671 then all *.patch files in the directory will be applied.
675 config BR2_COMPILER_PARANOID_UNSAFE_PATH
676 bool "paranoid check of library/header paths"
678 By default, when this option is disabled, when the Buildroot
679 cross-compiler will encounter an unsafe library or header
680 path (such as /usr/include, or /usr/lib), the compiler will
683 By enabling this option, this warning is turned into an
684 error, which will completely abort the build when such
685 unsafe paths are encountered.
687 Note that this mechanism is available for both the internal
688 toolchain (through gcc and binutils patches) and external
689 toolchain backends (through the external toolchain wrapper).
695 source "toolchain/Config.in"
697 source "system/Config.in"
699 source "linux/Config.in"
701 source "package/Config.in"
703 source "fs/Config.in"
705 source "boot/Config.in"
707 source "package/Config.in.host"
709 source "Config.in.legacy"
711 menu "User-provided options"
712 depends on BR2_EXTERNAL != "support/dummy-external"
714 source "$BR2_EXTERNAL/Config.in"