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.
168 Valid URIs are URIs recognized by $(WGET) and scp URIs of the form
169 scp://[user@]host:path.
171 config BR2_PRIMARY_SITE_ONLY
172 bool "Only allow downloads from primary download site"
173 depends on BR2_PRIMARY_SITE != ""
175 If this option is enabled, downloads will only be attempted
176 from the primary download site. Other locations, like the
177 package's official download location or the backup download
178 site, will not be considered. Therefore, if the package is
179 not present on the primary site, the download fails.
181 This is useful for project developers who want to ensure
182 that the project can be built even if the upstream tarball
185 if !BR2_PRIMARY_SITE_ONLY
187 config BR2_BACKUP_SITE
188 string "Backup download site"
189 default "http://sources.buildroot.net"
191 Backup site to download from. If this option is set then buildroot
192 will fall back to download package sources from here if the
193 normal location fails.
195 config BR2_KERNEL_MIRROR
196 string "Kernel.org mirror"
197 default "https://www.kernel.org/pub"
199 kernel.org is mirrored on a number of servers around the world.
200 The following allows you to select your preferred mirror.
202 Have a look on the kernel.org site for a list of mirrors, then enter
203 the URL to the base directory. Examples:
205 http://www.XX.kernel.org/pub (XX = country code)
206 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
208 config BR2_GNU_MIRROR
209 string "GNU Software mirror"
210 default "http://ftp.gnu.org/pub/gnu"
212 GNU has multiple software mirrors scattered around the world.
213 The following allows you to select your preferred mirror.
215 Have a look on the gnu.org site for a list of mirrors, then enter
216 the URL to the base directory. Examples:
218 http://ftp.gnu.org/pub/gnu
219 http://mirror.aarnet.edu.au/pub/gnu
221 config BR2_LUAROCKS_MIRROR
222 string "LuaRocks mirror"
223 default "http://rocks.moonscript.org"
227 See http://luarocks.org
229 config BR2_CPAN_MIRROR
230 string "CPAN mirror (Perl packages)"
231 default "http://cpan.metacpan.org"
233 CPAN (Comprehensive Perl Archive Network) is a repository
234 of Perl packages. It has multiple software mirrors scattered
235 around the world. This option allows you to select a mirror.
237 The list of mirrors is available at:
238 http://search.cpan.org/mirror
245 int "Number of jobs to run simultaneously (0 for auto)"
248 Number of jobs to run simultaneously. If 0, determine
249 automatically according to number of CPUs on the host
253 bool "Enable compiler cache"
255 This option will enable the use of ccache, a compiler
256 cache. It will cache the result of previous builds to speed
257 up future builds. By default, the cache is stored in
258 $HOME/.buildroot-ccache.
260 Note that Buildroot does not try to invalidate the cache
261 contents when the compiler changes in an incompatible
262 way. Therefore, if you make a change to the compiler version
263 and/or configuration, you are responsible for purging the
264 ccache cache by removing the $HOME/.buildroot-ccache
269 config BR2_CCACHE_DIR
270 string "Compiler cache location"
271 default "$(HOME)/.buildroot-ccache"
273 Where ccache should store cached files.
275 config BR2_CCACHE_INITIAL_SETUP
276 string "Compiler cache initial setup"
278 Initial ccache settings to apply, such as --max-files or --max-size.
280 For example, if your project is known to require more space than the
281 default max cache size, then you might want to increase the cache size
282 to a suitable amount using the -M (--max-size) option.
284 The string you specify here is passed verbatim to ccache. Refer to
285 ccache documentation for more details.
287 These initial settings are applied after ccache has been compiled.
289 config BR2_CCACHE_USE_BASEDIR
290 bool "Use relative paths"
293 Allow ccache to convert absolute paths within the output
294 directory into relative paths.
296 During the build, many -I include directives are given with
297 an absolute path. These absolute paths end up in the hashes
298 that are computed by ccache. Therefore, when you build from a
299 different directory, the hash will be different and the
300 cached object will not be used.
302 To improve cache performance, set this option to y. This
303 allows ccache to rewrite absolute paths within the output
304 directory into relative paths. Note that only paths within
305 the output directory will be rewritten; therefore, if you
306 change BR2_HOST_DIR to point outside the output directory and
307 subsequently move it to a different location, this will lead
310 This option has as a result that the debug information in the
311 object files also has only relative paths. Therefore, make
312 sure you cd to the build directory before starting gdb. See
313 the section "COMPILING IN DIFFERENT DIRECTORIES" in the
314 ccache manual for more information.
318 config BR2_DEPRECATED
319 bool "Show options and packages that are deprecated or obsolete"
321 This option shows outdated/obsolete versions of packages and
322 options that are otherwise hidden.
326 config BR2_DEPRECATED_SINCE_2015_02
330 config BR2_DEPRECATED_SINCE_2015_05
334 config BR2_DEPRECATED_SINCE_2015_08
340 config BR2_ENABLE_DEBUG
341 bool "build packages with debugging symbols"
343 Build packages with debugging symbols enabled. All libraries
344 and binaries in the 'staging' directory will have debugging
345 symbols, which allows remote debugging even if libraries and
346 binaries are stripped on the target. Whether libraries and
347 binaries are stripped on the target is controlled by the
348 BR2_STRIP_* options below.
352 prompt "gcc debug level"
355 Set the debug level for gcc
360 Debug level 1 produces minimal information, enough
361 for making backtraces in parts of the program that
362 you don't plan to debug. This includes descriptions
363 of functions and external variables, but no information
364 about local variables and no line numbers.
369 The default gcc debug level is 2
374 Level 3 includes extra information, such as all the
375 macro definitions present in the program. Some debuggers
376 support macro expansion when you use -g3.
381 prompt "strip command for binaries on target"
382 default BR2_STRIP_strip
384 config BR2_STRIP_strip
386 depends on !BR2_PACKAGE_HOST_ELF2FLT
388 Binaries and libraries in the target filesystem will be
389 stripped using the normal 'strip' command. This allows to
390 save space, mainly by removing debugging symbols. Debugging
391 symbols on the target are needed for native debugging, but
392 not when remote debugging is used.
394 config BR2_STRIP_none
397 Do not strip binaries and libraries in the target
401 config BR2_STRIP_EXCLUDE_FILES
402 string "executables that should not be stripped"
403 depends on !BR2_STRIP_none
406 You may specify a space-separated list of binaries and libraries
407 here that should not be stripped on the target.
409 config BR2_STRIP_EXCLUDE_DIRS
410 string "directories that should be skipped when stripping"
411 depends on !BR2_STRIP_none
414 You may specify a space-separated list of directories that should
415 be skipped when stripping. Binaries and libraries in these
416 directories will not be touched.
417 The directories should be specified relative to the target directory,
418 without leading slash.
421 prompt "gcc optimization level"
422 default BR2_OPTIMIZE_S
424 Set the optimization level for gcc
426 config BR2_OPTIMIZE_0
427 bool "optimization level 0"
429 Do not optimize. This is the default.
431 config BR2_OPTIMIZE_1
432 bool "optimization level 1"
434 Optimize. Optimizing compilation takes somewhat more time,
435 and a lot more memory for a large function. With -O, the
436 compiler tries to reduce code size and execution time,
437 without performing any optimizations that take a great deal
438 of compilation time. -O turns on the following optimization
439 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
440 -fcprop-registers -floop-optimize -fif-conversion
441 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
442 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
443 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
444 -O also turns on -fomit-frame-pointer on machines where doing
445 so does not interfere with debugging.
447 config BR2_OPTIMIZE_2
448 bool "optimization level 2"
450 Optimize even more. GCC performs nearly all supported optimizations
451 that do not involve a space-speed tradeoff. The compiler does not
452 perform loop unrolling or function inlining when you specify -O2.
453 As compared to -O, this option increases both compilation time and
454 the performance of the generated code. -O2 turns on all optimization
455 flags specified by -O. It also turns on the following optimization
456 flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
457 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
458 -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
459 -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
460 -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
461 -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
462 -freorder-functions -falign-functions -falign-jumps -falign-loops
463 -falign-labels -ftree-vrp -ftree-pre
464 Please note the warning under -fgcse about invoking -O2 on programs
465 that use computed gotos.
467 config BR2_OPTIMIZE_3
468 bool "optimization level 3"
470 Optimize yet more. -O3 turns on all optimizations specified by -O2
471 and also turns on the -finline-functions, -funswitch-loops and
472 -fgcse-after-reload options.
474 config BR2_OPTIMIZE_S
475 bool "optimize for size"
477 Optimize for size. -Os enables all -O2 optimizations that do not
478 typically increase code size. It also performs further optimizations
479 designed to reduce code size. -Os disables the following optimization
480 flags: -falign-functions -falign-jumps -falign-loops -falign-labels
481 -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
482 -ftree-vect-loop-version
486 config BR2_GOOGLE_BREAKPAD_ENABLE
487 bool "Enable google-breakpad support"
488 select BR2_PACKAGE_GOOGLE_BREAKPAD
489 depends on BR2_INSTALL_LIBSTDCPP
490 depends on BR2_TOOLCHAIN_USES_GLIBC
491 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
493 This option will enable the use of google breakpad, a
494 library and tool suite that allows you to distribute an
495 application to users with compiler-provided debugging
496 information removed, record crashes in compact "minidump"
497 files, send them back to your server and produce C and C++
498 stack traces from these minidumps. Breakpad can also write
499 minidumps on request for programs that have not crashed.
501 if BR2_GOOGLE_BREAKPAD_ENABLE
503 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
504 string "List of executables and libraries to extract symbols from"
507 You may specify a space-separated list of binaries and
508 libraries with full paths relative to $(TARGET_DIR) of which
509 debug symbols will be dumped for further use with google
512 A directory structure that can be used by minidump-stackwalk
515 $(STAGING_DIR)/usr/share/google-breakpad-symbols
519 config BR2_ENABLE_SSP
520 bool "build code with Stack Smashing Protection"
521 depends on BR2_TOOLCHAIN_HAS_SSP
523 Enable stack smashing protection support using GCCs
524 -fstack-protector-all option.
526 See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
529 Note that this requires the toolchain to have SSP
530 support. This is always the case for glibc and eglibc
531 toolchain, but is optional in uClibc toolchains.
533 comment "enabling Stack Smashing Protection requires support in the toolchain"
534 depends on !BR2_TOOLCHAIN_HAS_SSP
538 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
539 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
541 Select the type of libraries you want to use on the target.
543 The default is to build dynamic libraries and use those on
544 the target filesystem, except when the architecture and/or
545 the selected binary format does not support shared
548 config BR2_STATIC_LIBS
551 Build and use only static libraries. No shared libraries
552 will be instaled on the target. This potentially increases
553 your code size and should only be used if you know what you
554 are doing. Note that some packages may not be available when
555 this option is enabled, due to their need for dynamic
558 config BR2_SHARED_LIBS
560 depends on BR2_BINFMT_SUPPORTS_SHARED
562 Build and use only shared libraries. This is the recommended
563 solution as it saves space and build time.
565 config BR2_SHARED_STATIC_LIBS
566 bool "both static and shared"
567 depends on BR2_BINFMT_SUPPORTS_SHARED
569 Build both shared and static libraries, but link executables
570 dynamically. While building both shared and static libraries
571 take more time and more disk space, having static libraries
572 may be useful to link some of the applications statically.
577 config BR2_PACKAGE_OVERRIDE_FILE
578 string "location of a package override file"
579 default "$(CONFIG_DIR)/local.mk"
581 A package override file is a short makefile that contains
582 variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
583 which allows to tell Buildroot to use an existing directory
584 as the source directory for a particular package. See the
585 Buildroot documentation for more details on this feature.
587 config BR2_GLOBAL_PATCH_DIR
588 string "global patch directories"
590 You may specify a space separated list of one or more directories
591 containing global package patches. For a specific version
592 <packageversion> of a specific package <packagename>, patches are
595 First, the default Buildroot patch set for the package is applied
596 from the package's directory in Buildroot.
598 Then for every directory - <global-patch-dir> - that exists in
599 BR2_GLOBAL_PATCH_DIR, if the directory
600 <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
601 *.patch files in this directory will be applied.
603 Otherwise, if the directory <global-patch-dir>/<packagename> exists,
604 then all *.patch files in the directory will be applied.
608 config BR2_COMPILER_PARANOID_UNSAFE_PATH
609 bool "paranoid check of library/header paths"
611 By default, when this option is disabled, when the Buildroot
612 cross-compiler will encounter an unsafe library or header
613 path (such as /usr/include, or /usr/lib), the compiler will
616 By enabling this option, this warning is turned into an
617 error, which will completely abort the build when such
618 unsafe paths are encountered.
620 Note that this mechanism is available for both the internal
621 toolchain (through gcc and binutils patches) and external
622 toolchain backends (through the external toolchain wrapper).
628 source "toolchain/Config.in"
630 source "system/Config.in"
632 source "linux/Config.in"
634 source "package/Config.in"
636 source "fs/Config.in"
638 source "boot/Config.in"
640 source "package/Config.in.host"
642 source "Config.in.legacy"
644 menu "User-provided options"
645 depends on BR2_EXTERNAL != "support/dummy-external"
647 source "$BR2_EXTERNAL/Config.in"