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 boolean selected by packages in need of Java in order to build
23 config BR2_NEEDS_HOST_JAVA
26 # Hidden boolean selected by packages in need of javac in order to build
27 # (example: classpath)
28 config BR2_NEEDS_HOST_JAVAC
31 # Hidden boolean selected by packages in need of jar in order to build
32 # (example: classpath)
33 config BR2_NEEDS_HOST_JAR
36 # Hidden boolean selected by pre-built packages for x86, when they
37 # need to run on x86-64 machines (example: pre-built external
38 # toolchains, binary tools like SAM-BA, etc.).
39 config BR2_HOSTARCH_NEEDS_IA32_LIBS
42 # Hidden boolean selected by packages that need to build 32 bits
43 # binaries with the host compiler, even on 64 bits build machines (e.g
45 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
48 source "arch/Config.in"
56 default "wget --passive-ftp -nd -t 3"
59 string "Subversion (svn) command"
63 string "Bazaar (bzr) command"
75 string "Local files retrieval command"
79 string "Secure copy (scp) command"
83 string "Secure shell (ssh) command"
87 string "Mercurial (hg) command"
94 Command to be used to extract a gzip'ed file to stdout.
95 zcat is identical to gunzip -c except that the former may
96 not be available on your system.
97 Default is "gzip -d -c"
98 Other possible values include "gunzip -c" or "zcat".
101 string "bzcat command"
104 Command to be used to extract a bzip2'ed file to stdout.
105 bzcat is identical to bunzip2 -c except that the former may
106 not be available on your system.
108 Other possible values include "bunzip2 -c" or "bzip2 -d -c".
111 string "xzcat command"
114 Command to be used to extract a xz'ed file to stdout.
117 config BR2_TAR_OPTIONS
121 Options to pass to tar when extracting the sources.
122 E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
127 config BR2_DEFCONFIG_FROM_ENV
129 option env="BR2_DEFCONFIG"
132 string "Location to save buildroot config"
133 default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
134 default "$(CONFIG_DIR)/defconfig"
136 When running 'make savedefconfig', the defconfig file will be saved
140 string "Download dir"
141 default "$(TOPDIR)/dl"
143 Directory to store all the source files that we need to fetch.
144 If the Linux shell environment has defined the BR2_DL_DIR
145 environment variable, then this overrides this configuration item.
147 The default is $(TOPDIR)/dl
151 default "$(BASE_DIR)/host"
153 Directory to store all the binary files that are built for the host.
154 This includes the cross compilation toolchain when building the
155 internal buildroot toolchain.
157 The default is $(BASE_DIR)/host
159 menu "Mirrors and Download locations"
161 config BR2_PRIMARY_SITE
162 string "Primary download site"
165 Primary site to download from. If this option is set then buildroot
166 will try to download package source first from this site and try the
167 default if the file is not found.
169 - URIs recognized by $(WGET)
170 - local URIs of the form file://absolutepath
171 - scp URIs of the form scp://[user@]host:path.
173 config BR2_PRIMARY_SITE_ONLY
174 bool "Only allow downloads from primary download site"
175 depends on BR2_PRIMARY_SITE != ""
177 If this option is enabled, downloads will only be attempted
178 from the primary download site. Other locations, like the
179 package's official download location or the backup download
180 site, will not be considered. Therefore, if the package is
181 not present on the primary site, the download fails.
183 This is useful for project developers who want to ensure
184 that the project can be built even if the upstream tarball
187 if !BR2_PRIMARY_SITE_ONLY
189 config BR2_BACKUP_SITE
190 string "Backup download site"
191 default "http://sources.buildroot.net"
193 Backup site to download from. If this option is set then buildroot
194 will fall back to download package sources from here if the
195 normal location fails.
197 config BR2_KERNEL_MIRROR
198 string "Kernel.org mirror"
199 default "https://www.kernel.org/pub"
201 kernel.org is mirrored on a number of servers around the world.
202 The following allows you to select your preferred mirror.
204 Have a look on the kernel.org site for a list of mirrors, then enter
205 the URL to the base directory. Examples:
207 http://www.XX.kernel.org/pub (XX = country code)
208 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
210 config BR2_GNU_MIRROR
211 string "GNU Software mirror"
212 default "http://ftp.gnu.org/pub/gnu"
214 GNU has multiple software mirrors scattered around the world.
215 The following allows you to select your preferred mirror.
217 Have a look on the gnu.org site for a list of mirrors, then enter
218 the URL to the base directory. Examples:
220 http://ftp.gnu.org/pub/gnu
221 http://mirror.aarnet.edu.au/pub/gnu
223 config BR2_LUAROCKS_MIRROR
224 string "LuaRocks mirror"
225 default "http://rocks.moonscript.org"
229 See http://luarocks.org
231 config BR2_CPAN_MIRROR
232 string "CPAN mirror (Perl packages)"
233 default "http://cpan.metacpan.org"
235 CPAN (Comprehensive Perl Archive Network) is a repository
236 of Perl packages. It has multiple software mirrors scattered
237 around the world. This option allows you to select a mirror.
239 The list of mirrors is available at:
240 http://search.cpan.org/mirror
247 int "Number of jobs to run simultaneously (0 for auto)"
250 Number of jobs to run simultaneously. If 0, determine
251 automatically according to number of CPUs on the host
255 bool "Enable compiler cache"
257 This option will enable the use of ccache, a compiler
258 cache. It will cache the result of previous builds to speed
259 up future builds. By default, the cache is stored in
260 $HOME/.buildroot-ccache.
262 Note that Buildroot does not try to invalidate the cache
263 contents when the compiler changes in an incompatible
264 way. Therefore, if you make a change to the compiler version
265 and/or configuration, you are responsible for purging the
266 ccache cache by removing the $HOME/.buildroot-ccache
271 config BR2_CCACHE_DIR
272 string "Compiler cache location"
273 default "$(HOME)/.buildroot-ccache"
275 Where ccache should store cached files.
277 config BR2_CCACHE_INITIAL_SETUP
278 string "Compiler cache initial setup"
280 Initial ccache settings to apply, such as --max-files or --max-size.
282 For example, if your project is known to require more space than the
283 default max cache size, then you might want to increase the cache size
284 to a suitable amount using the -M (--max-size) option.
286 The string you specify here is passed verbatim to ccache. Refer to
287 ccache documentation for more details.
289 These initial settings are applied after ccache has been compiled.
291 config BR2_CCACHE_USE_BASEDIR
292 bool "Use relative paths"
295 Allow ccache to convert absolute paths within the output
296 directory into relative paths.
298 During the build, many -I include directives are given with
299 an absolute path. These absolute paths end up in the hashes
300 that are computed by ccache. Therefore, when you build from a
301 different directory, the hash will be different and the
302 cached object will not be used.
304 To improve cache performance, set this option to y. This
305 allows ccache to rewrite absolute paths within the output
306 directory into relative paths. Note that only paths within
307 the output directory will be rewritten; therefore, if you
308 change BR2_HOST_DIR to point outside the output directory and
309 subsequently move it to a different location, this will lead
312 This option has as a result that the debug information in the
313 object files also has only relative paths. Therefore, make
314 sure you cd to the build directory before starting gdb. See
315 the section "COMPILING IN DIFFERENT DIRECTORIES" in the
316 ccache manual for more information.
320 config BR2_DEPRECATED
321 bool "Show options and packages that are deprecated or obsolete"
323 This option shows outdated/obsolete versions of packages and
324 options that are otherwise hidden.
328 config BR2_DEPRECATED_SINCE_2015_02
332 config BR2_DEPRECATED_SINCE_2015_05
336 config BR2_DEPRECATED_SINCE_2015_08
340 config BR2_DEPRECATED_SINCE_2015_11
346 config BR2_ENABLE_DEBUG
347 bool "build packages with debugging symbols"
349 Build packages with debugging symbols enabled. All libraries
350 and binaries in the 'staging' directory will have debugging
351 symbols, which allows remote debugging even if libraries and
352 binaries are stripped on the target. Whether libraries and
353 binaries are stripped on the target is controlled by the
354 BR2_STRIP_* options below.
358 prompt "gcc debug level"
361 Set the debug level for gcc
366 Debug level 1 produces minimal information, enough
367 for making backtraces in parts of the program that
368 you don't plan to debug. This includes descriptions
369 of functions and external variables, but no information
370 about local variables and no line numbers.
375 The default gcc debug level is 2
380 Level 3 includes extra information, such as all the
381 macro definitions present in the program. Some debuggers
382 support macro expansion when you use -g3.
387 prompt "strip command for binaries on target"
388 default BR2_STRIP_strip
390 config BR2_STRIP_strip
392 depends on !BR2_PACKAGE_HOST_ELF2FLT
394 Binaries and libraries in the target filesystem will be
395 stripped using the normal 'strip' command. This allows to
396 save space, mainly by removing debugging symbols. Debugging
397 symbols on the target are needed for native debugging, but
398 not when remote debugging is used.
400 config BR2_STRIP_none
403 Do not strip binaries and libraries in the target
407 config BR2_STRIP_EXCLUDE_FILES
408 string "executables that should not be stripped"
409 depends on !BR2_STRIP_none
412 You may specify a space-separated list of binaries and libraries
413 here that should not be stripped on the target.
415 config BR2_STRIP_EXCLUDE_DIRS
416 string "directories that should be skipped when stripping"
417 depends on !BR2_STRIP_none
420 You may specify a space-separated list of directories that should
421 be skipped when stripping. Binaries and libraries in these
422 directories will not be touched.
423 The directories should be specified relative to the target directory,
424 without leading slash.
427 prompt "gcc optimization level"
428 default BR2_OPTIMIZE_S
430 Set the optimization level for gcc
432 config BR2_OPTIMIZE_0
433 bool "optimization level 0"
435 Do not optimize. This is the default.
437 config BR2_OPTIMIZE_1
438 bool "optimization level 1"
440 Optimize. Optimizing compilation takes somewhat more time,
441 and a lot more memory for a large function. With -O, the
442 compiler tries to reduce code size and execution time,
443 without performing any optimizations that take a great deal
444 of compilation time. -O turns on the following optimization
445 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
446 -fcprop-registers -floop-optimize -fif-conversion
447 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
448 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
449 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
450 -O also turns on -fomit-frame-pointer on machines where doing
451 so does not interfere with debugging.
453 config BR2_OPTIMIZE_2
454 bool "optimization level 2"
456 Optimize even more. GCC performs nearly all supported optimizations
457 that do not involve a space-speed tradeoff. The compiler does not
458 perform loop unrolling or function inlining when you specify -O2.
459 As compared to -O, this option increases both compilation time and
460 the performance of the generated code. -O2 turns on all optimization
461 flags specified by -O. It also turns on the following optimization
462 flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
463 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
464 -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
465 -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
466 -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
467 -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
468 -freorder-functions -falign-functions -falign-jumps -falign-loops
469 -falign-labels -ftree-vrp -ftree-pre
470 Please note the warning under -fgcse about invoking -O2 on programs
471 that use computed gotos.
473 config BR2_OPTIMIZE_3
474 bool "optimization level 3"
476 Optimize yet more. -O3 turns on all optimizations specified by -O2
477 and also turns on the -finline-functions, -funswitch-loops and
478 -fgcse-after-reload options.
480 config BR2_OPTIMIZE_S
481 bool "optimize for size"
483 Optimize for size. -Os enables all -O2 optimizations that do not
484 typically increase code size. It also performs further optimizations
485 designed to reduce code size. -Os disables the following optimization
486 flags: -falign-functions -falign-jumps -falign-loops -falign-labels
487 -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
488 -ftree-vect-loop-version
492 config BR2_GOOGLE_BREAKPAD_ENABLE
493 bool "Enable google-breakpad support"
494 select BR2_PACKAGE_GOOGLE_BREAKPAD
495 depends on BR2_INSTALL_LIBSTDCPP
496 depends on BR2_TOOLCHAIN_USES_GLIBC
497 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
499 This option will enable the use of google breakpad, a
500 library and tool suite that allows you to distribute an
501 application to users with compiler-provided debugging
502 information removed, record crashes in compact "minidump"
503 files, send them back to your server and produce C and C++
504 stack traces from these minidumps. Breakpad can also write
505 minidumps on request for programs that have not crashed.
507 if BR2_GOOGLE_BREAKPAD_ENABLE
509 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
510 string "List of executables and libraries to extract symbols from"
513 You may specify a space-separated list of binaries and
514 libraries with full paths relative to $(TARGET_DIR) of which
515 debug symbols will be dumped for further use with google
518 A directory structure that can be used by minidump-stackwalk
521 $(STAGING_DIR)/usr/share/google-breakpad-symbols
526 bool "build code with Stack Smashing Protection"
527 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
528 depends on BR2_TOOLCHAIN_HAS_SSP
530 Enable stack smashing protection support using GCC's
531 -fstack-protector option family.
533 See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
536 Note that this requires the toolchain to have SSP
537 support. This is always the case for glibc and eglibc
538 toolchain, but is optional in uClibc toolchains.
543 Disable stack-smashing protection.
545 config BR2_SSP_REGULAR
546 bool "-fstack-protector"
548 Emit extra code to check for buffer overflows, such as stack
549 smashing attacks. This is done by adding a guard variable to
550 functions with vulnerable objects. This includes functions
551 that call alloca, and functions with buffers larger than 8
552 bytes. The guards are initialized when a function is entered
553 and then checked when the function exits. If a guard check
554 fails, an error message is printed and the program exits.
556 config BR2_SSP_STRONG
557 bool "-fstack-protector-strong"
558 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
560 Like -fstack-protector but includes additional functions to be
561 protected - those that have local array definitions, or have
562 references to local frame addresses.
564 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
565 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
568 bool "-fstack-protector-all"
570 Like -fstack-protector except that all functions are
571 protected. This option might have a significant performance
572 impact on the compiled binaries.
576 comment "Stack Smashing Protection needs a toolchain w/ SSP"
577 depends on !BR2_TOOLCHAIN_HAS_SSP
581 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
582 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
584 Select the type of libraries you want to use on the target.
586 The default is to build dynamic libraries and use those on
587 the target filesystem, except when the architecture and/or
588 the selected binary format does not support shared
591 config BR2_STATIC_LIBS
594 Build and use only static libraries. No shared libraries
595 will be instaled on the target. This potentially increases
596 your code size and should only be used if you know what you
597 are doing. Note that some packages may not be available when
598 this option is enabled, due to their need for dynamic
601 config BR2_SHARED_LIBS
603 depends on BR2_BINFMT_SUPPORTS_SHARED
605 Build and use only shared libraries. This is the recommended
606 solution as it saves space and build time.
608 config BR2_SHARED_STATIC_LIBS
609 bool "both static and shared"
610 depends on BR2_BINFMT_SUPPORTS_SHARED
612 Build both shared and static libraries, but link executables
613 dynamically. While building both shared and static libraries
614 take more time and more disk space, having static libraries
615 may be useful to link some of the applications statically.
620 config BR2_PACKAGE_OVERRIDE_FILE
621 string "location of a package override file"
622 default "$(CONFIG_DIR)/local.mk"
624 A package override file is a short makefile that contains
625 variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
626 which allows to tell Buildroot to use an existing directory
627 as the source directory for a particular package. See the
628 Buildroot documentation for more details on this feature.
630 config BR2_GLOBAL_PATCH_DIR
631 string "global patch directories"
633 You may specify a space separated list of one or more directories
634 containing global package patches. For a specific version
635 <packageversion> of a specific package <packagename>, patches are
638 First, the default Buildroot patch set for the package is applied
639 from the package's directory in Buildroot.
641 Then for every directory - <global-patch-dir> - that exists in
642 BR2_GLOBAL_PATCH_DIR, if the directory
643 <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
644 *.patch files in this directory will be applied.
646 Otherwise, if the directory <global-patch-dir>/<packagename> exists,
647 then all *.patch files in the directory will be applied.
651 config BR2_COMPILER_PARANOID_UNSAFE_PATH
652 bool "paranoid check of library/header paths"
654 By default, when this option is disabled, when the Buildroot
655 cross-compiler will encounter an unsafe library or header
656 path (such as /usr/include, or /usr/lib), the compiler will
659 By enabling this option, this warning is turned into an
660 error, which will completely abort the build when such
661 unsafe paths are encountered.
663 Note that this mechanism is available for both the internal
664 toolchain (through gcc and binutils patches) and external
665 toolchain backends (through the external toolchain wrapper).
671 source "toolchain/Config.in"
673 source "system/Config.in"
675 source "linux/Config.in"
677 source "package/Config.in"
679 source "fs/Config.in"
681 source "boot/Config.in"
683 source "package/Config.in.host"
685 source "Config.in.legacy"
687 menu "User-provided options"
688 depends on BR2_EXTERNAL != "support/dummy-external"
690 source "$BR2_EXTERNAL/Config.in"