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.
170 NOTE: This works for all packages using the central package
171 infrastructure (generic, autotools, cmake, ...)
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_DEBIAN_MIRROR
224 string "Debian Software mirror"
225 default "http://ftp.debian.org"
227 Debian has multiple software mirrors scattered around the world.
228 The following allows you to select your preferred mirror.
230 Usually, just add your country code like XX here:
231 http://ftp.XX.debian.org
235 config BR2_LUAROCKS_MIRROR
236 string "LuaRocks mirror"
237 default "http://rocks.moonscript.org"
241 See http://luarocks.org
243 config BR2_CPAN_MIRROR
244 string "CPAN mirror (Perl packages)"
245 default "http://cpan.metacpan.org"
247 CPAN (Comprehensive Perl Archive Network) is a repository
248 of Perl packages. It has multiple software mirrors scattered
249 around the world. This option allows you to select a mirror.
251 The list of mirrors is available at:
252 http://search.cpan.org/mirror
257 int "Number of jobs to run simultaneously (0 for auto)"
260 Number of jobs to run simultaneously. If 0, determine
261 automatically according to number of CPUs on the host
265 bool "Enable compiler cache"
267 This option will enable the use of ccache, a compiler
268 cache. It will cache the result of previous builds to speed
269 up future builds. By default, the cache is stored in
270 $HOME/.buildroot-ccache.
272 Note that Buildroot does not try to invalidate the cache
273 contents when the compiler changes in an incompatible
274 way. Therefore, if you make a change to the compiler version
275 and/or configuration, you are responsible for purging the
276 ccache cache by removing the $HOME/.buildroot-ccache
281 config BR2_CCACHE_DIR
282 string "Compiler cache location"
283 default "$(HOME)/.buildroot-ccache"
285 Where ccache should store cached files.
287 config BR2_CCACHE_INITIAL_SETUP
288 string "Compiler cache initial setup"
290 Initial ccache settings to apply, such as --max-files or --max-size.
292 For example, if your project is known to require more space than the
293 default max cache size, then you might want to increase the cache size
294 to a suitable amount using the -M (--max-size) option.
296 The string you specify here is passed verbatim to ccache. Refer to
297 ccache documentation for more details.
299 These initial settings are applied after ccache has been compiled.
303 config BR2_DEPRECATED
304 bool "Show packages that are deprecated or obsolete"
306 This option hides outdated/obsolete versions of packages.
310 config BR2_DEPRECATED_SINCE_2013_11
314 config BR2_DEPRECATED_SINCE_2014_02
318 config BR2_DEPRECATED_SINCE_2014_05
322 config BR2_DEPRECATED_SINCE_2014_08
328 config BR2_ENABLE_DEBUG
329 bool "build packages with debugging symbols"
331 Build packages with debugging symbols enabled. All libraries
332 and binaries in the 'staging' directory will have debugging
333 symbols, which allows remote debugging even if libraries and
334 binaries are stripped on the target. Whether libraries and
335 binaries are stripped on the target is controlled by the
336 BR2_STRIP_* options below.
340 prompt "gcc debug level"
343 Set the debug level for gcc
348 Debug level 1 produces minimal information, enough
349 for making backtraces in parts of the program that
350 you don't plan to debug. This includes descriptions
351 of functions and external variables, but no information
352 about local variables and no line numbers.
357 The default gcc debug level is 2
362 Level 3 includes extra information, such as all the
363 macro definitions present in the program. Some debuggers
364 support macro expansion when you use -g3.
369 prompt "strip command for binaries on target"
370 default BR2_STRIP_strip
372 config BR2_STRIP_strip
374 depends on !BR2_PACKAGE_HOST_ELF2FLT
376 Binaries and libraries in the target filesystem will be
377 stripped using the normal 'strip' command. This allows to
378 save space, mainly by removing debugging symbols. Debugging
379 symbols on the target are needed for native debugging, but
380 not when remote debugging is used.
382 config BR2_STRIP_sstrip
384 select BR2_PACKAGE_SSTRIP_HOST
385 depends on !BR2_PACKAGE_HOST_ELF2FLT
386 depends on BR2_DEPRECATED_SINCE_2014_05
388 Binaries and libraries in the target filesystem will be
389 stripped using the 'sstrip' command, which strips a little
390 bit more than the traditional 'strip' command. This allows to
391 save space, mainly by removing debugging symbols. Debugging
392 symbols on the target are needed for native debugging, but
393 not when remote debugging is used.
395 config BR2_STRIP_none
398 Do not strip binaries and libraries in the target
402 config BR2_STRIP_EXCLUDE_FILES
403 string "executables that should not be stripped"
404 depends on !BR2_STRIP_none
407 You may specify a space-separated list of binaries and libraries
408 here that should not be stripped on the target.
410 config BR2_STRIP_EXCLUDE_DIRS
411 string "directories that should be skipped when stripping"
412 depends on !BR2_STRIP_none
415 You may specify a space-separated list of directories that should
416 be skipped when stripping. Binaries and libraries in these
417 directories will not be touched.
418 The directories should be specified relative to the target directory,
419 without leading slash.
422 prompt "gcc optimization level"
423 default BR2_OPTIMIZE_S
425 Set the optimization level for gcc
427 config BR2_OPTIMIZE_0
428 bool "optimization level 0"
430 Do not optimize. This is the default.
432 config BR2_OPTIMIZE_1
433 bool "optimization level 1"
435 Optimize. Optimizing compilation takes somewhat more time,
436 and a lot more memory for a large function. With -O, the
437 compiler tries to reduce code size and execution time,
438 without performing any optimizations that take a great deal
439 of compilation time. -O turns on the following optimization
440 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
441 -fcprop-registers -floop-optimize -fif-conversion
442 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
443 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
444 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
445 -O also turns on -fomit-frame-pointer on machines where doing
446 so does not interfere with debugging.
448 config BR2_OPTIMIZE_2
449 bool "optimization level 2"
451 Optimize even more. GCC performs nearly all supported optimizations
452 that do not involve a space-speed tradeoff. The compiler does not
453 perform loop unrolling or function inlining when you specify -O2.
454 As compared to -O, this option increases both compilation time and
455 the performance of the generated code. -O2 turns on all optimization
456 flags specified by -O. It also turns on the following optimization
457 flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
458 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
459 -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
460 -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
461 -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
462 -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
463 -freorder-functions -falign-functions -falign-jumps -falign-loops
464 -falign-labels -ftree-vrp -ftree-pre
465 Please note the warning under -fgcse about invoking -O2 on programs
466 that use computed gotos.
468 config BR2_OPTIMIZE_3
469 bool "optimization level 3"
471 Optimize yet more. -O3 turns on all optimizations specified by -O2
472 and also turns on the -finline-functions, -funswitch-loops and
473 -fgcse-after-reload options.
475 config BR2_OPTIMIZE_S
476 bool "optimize for size"
478 Optimize for size. -Os enables all -O2 optimizations that do not
479 typically increase code size. It also performs further optimizations
480 designed to reduce code size. -Os disables the following optimization
481 flags: -falign-functions -falign-jumps -falign-loops -falign-labels
482 -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
483 -ftree-vect-loop-version
487 config BR2_GOOGLE_BREAKPAD_ENABLE
488 bool "Enable google-breakpad support"
489 select BR2_PACKAGE_GOOGLE_BREAKPAD
490 depends on BR2_INSTALL_LIBSTDCPP
491 depends on BR2_TOOLCHAIN_USES_GLIBC
492 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
494 This option will enable the use of google breakpad, a
495 library and tool suite that allows you to distribute an
496 application to users with compiler-provided debugging
497 information removed, record crashes in compact "minidump"
498 files, send them back to your server and produce C and C++
499 stack traces from these minidumps. Breakpad can also write
500 minidumps on request for programs that have not crashed.
502 if BR2_GOOGLE_BREAKPAD_ENABLE
504 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
505 string "List of executables and libraries to extract symbols from"
508 You may specify a space-separated list of binaries and
509 libraries with full paths relative to $(TARGET_DIR) of which
510 debug symbols will be dumped for further use with google
513 A directory structure that can be used by minidump-stackwalk
516 $(STAGING_DIR)/usr/share/google-breakpad-symbols
520 config BR2_ENABLE_SSP
521 bool "build code with Stack Smashing Protection"
522 depends on BR2_TOOLCHAIN_HAS_SSP
524 Enable stack smashing protection support using GCCs
525 -fstack-protector-all option.
527 See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
530 Note that this requires the toolchain to have SSP
531 support. This is always the case for glibc and eglibc
532 toolchain, but is optional in uClibc toolchains.
534 comment "enabling Stack Smashing Protection requires support in the toolchain"
535 depends on !BR2_TOOLCHAIN_HAS_SSP
537 config BR2_PREFER_STATIC_LIB
538 bool "prefer static libraries"
540 Where possible, build and use static libraries for the target.
541 This potentially increases your code size and should only be
542 used if you know what you do.
543 The default is to build dynamic libraries and use those on
544 the target filesystem.
546 WARNING: This is highly experimental at the moment.
548 config BR2_PACKAGE_OVERRIDE_FILE
549 string "location of a package override file"
550 default "$(CONFIG_DIR)/local.mk"
552 A package override file is a short makefile that contains
553 variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
554 which allows to tell Buildroot to use an existing directory
555 as the source directory for a particular package. See the
556 Buildroot documentation for more details on this feature.
558 config BR2_GLOBAL_PATCH_DIR
559 string "global patch directories"
561 You may specify a space separated list of one or more directories
562 containing global package patches. For a specific version
563 <packageversion> of a specific package <packagename>, patches are
566 First, the default Buildroot patch set for the package is applied
567 from the package's directory in Buildroot.
569 Then for every directory - <global-patch-dir> - that exists in
570 BR2_GLOBAL_PATCH_DIR, if the directory
571 <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
572 *.patch files in this directory will be applied.
574 Otherwise, if the directory <global-patch-dir>/<packagename> exists,
575 then all *.patch files in the directory will be applied.
579 source "toolchain/Config.in"
581 source "system/Config.in"
583 source "linux/Config.in"
585 source "package/Config.in"
587 source "fs/Config.in"
589 source "boot/Config.in"
591 source "package/Config.in.host"
593 source "Config.in.legacy"
595 menu "User-provided options"
596 depends on BR2_EXTERNAL != "support/dummy-external"
598 source "$BR2_EXTERNAL/Config.in"