#
-mainmenu "Buildroot2 Configuration"
+mainmenu "Buildroot $BR2_VERSION Configuration"
config BR2_HAVE_DOT_CONFIG
bool
config BR2_VERSION
string
- default "2010.08-rc1"
+ option env="BR2_VERSION_FULL"
-source "target/Config.in.arch"
-source "target/device/Config.in"
+config BR2_HOSTARCH
+ string
+ option env="HOSTARCH"
+
+config BR2_EXTERNAL
+ string
+ option env="BR2_EXTERNAL"
+
+# Hidden boolean selected by packages in need of Java in order to build
+# (example: xbmc)
+config BR2_NEEDS_HOST_JAVA
+ bool
+
+# Hidden boolean selected by packages in need of javac in order to build
+# (example: classpath)
+config BR2_NEEDS_HOST_JAVAC
+ bool
+
+# Hidden boolean selected by packages in need of jar in order to build
+# (example: classpath)
+config BR2_NEEDS_HOST_JAR
+ bool
+
+# Hidden boolean selected by pre-built packages for x86, when they
+# need to run on x86-64 machines (example: pre-built external
+# toolchains, binary tools like SAM-BA, etc.).
+config BR2_HOSTARCH_NEEDS_IA32_LIBS
+ bool
+
+# Hidden boolean selected by packages that need to build 32 bits
+# binaries with the host compiler, even on 64 bits build machines (e.g
+# bootloaders).
+config BR2_HOSTARCH_NEEDS_IA32_COMPILER
+ bool
+
+source "arch/Config.in"
menu "Build options"
config BR2_WGET
string "Wget command"
- default "wget --passive-ftp -nd"
+ default "wget --passive-ftp -nd -t 3"
+
+config BR2_SVN
+ string "Subversion (svn) command"
+ default "svn"
-config BR2_SVN_CO
- string "Subversion (svn) command to download source tree"
- default "svn co"
+config BR2_BZR
+ string "Bazaar (bzr) command"
+ default "bzr"
-config BR2_SVN_UP
- string "Subversion (svn) command to update source tree"
- default "svn up"
+config BR2_GIT
+ string "Git command"
+ default "git"
-config BR2_BZR_CO
- string "Bazaar (bzr) command to download source tree"
- default "bzr co"
+config BR2_CVS
+ string "CVS command"
+ default "cvs"
-config BR2_BZR_UP
- string "Bazaar (bzr) command to update source tree"
- default "bzr up"
+config BR2_LOCALFILES
+ string "Local files retrieval command"
+ default "cp"
-config BR2_GIT
- string "Git command to download source tree"
- default "git clone"
+config BR2_SCP
+ string "Secure copy (scp) command"
+ default "scp"
+
+config BR2_SSH
+ string "Secure shell (ssh) command"
+ default "ssh"
+
+config BR2_HG
+ string "Mercurial (hg) command"
+ default "hg"
config BR2_ZCAT
string "zcat command"
Default is "bzcat"
Other possible values include "bunzip2 -c" or "bzip2 -d -c".
+config BR2_XZCAT
+ string "xzcat command"
+ default "xzcat"
+ help
+ Command to be used to extract a xz'ed file to stdout.
+ Default is "xzcat"
+
config BR2_TAR_OPTIONS
string "Tar options"
default ""
endmenu
+config BR2_DEFCONFIG_FROM_ENV
+ string
+ option env="BR2_DEFCONFIG"
+
+config BR2_DEFCONFIG
+ string "Location to save buildroot config"
+ default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
+ default "$(CONFIG_DIR)/defconfig"
+ help
+ When running 'make savedefconfig', the defconfig file will be saved
+ in this location.
+
config BR2_DL_DIR
string "Download dir"
default "$(TOPDIR)/dl"
help
Directory to store all the source files that we need to fetch.
- If the Linux shell environment has defined the BUILDROOT_DL_DIR
+ If the Linux shell environment has defined the BR2_DL_DIR
environment variable, then this overrides this configuration item.
The default is $(TOPDIR)/dl
-config BR2_STAGING_DIR
- string "Toolchain and header file location?"
- default "$(BASE_DIR)/staging"
+config BR2_HOST_DIR
+ string "Host dir"
+ default "$(BASE_DIR)/host"
+ help
+ Directory to store all the binary files that are built for the host.
+ This includes the cross compilation toolchain when building the
+ internal buildroot toolchain.
+
+ The default is $(BASE_DIR)/host
+
+menu "Mirrors and Download locations"
+
+config BR2_PRIMARY_SITE
+ string "Primary download site"
+ default ""
+ help
+ Primary site to download from. If this option is set then buildroot
+ will try to download package source first from this site and try the
+ default if the file is not found.
+ Valid URIs are URIs recognized by $(WGET) and scp URIs of the form
+ scp://[user@]host:path.
+ NOTE: This works for all packages using the central package
+ infrastructure (generic, autotools, cmake, ...)
+
+config BR2_PRIMARY_SITE_ONLY
+ bool "Only allow downloads from primary download site"
+ depends on BR2_PRIMARY_SITE != ""
+ help
+ If this option is enabled, downloads will only be attempted
+ from the primary download site. Other locations, like the
+ package's official download location or the backup download
+ site, will not be considered. Therefore, if the package is
+ not present on the primary site, the download fails.
+
+ This is useful for project developers who want to ensure
+ that the project can be built even if the upstream tarball
+ locations disappear.
+
+if !BR2_PRIMARY_SITE_ONLY
+
+config BR2_BACKUP_SITE
+ string "Backup download site"
+ default "http://sources.buildroot.net"
+ help
+ Backup site to download from. If this option is set then buildroot
+ will fall back to download package sources from here if the
+ normal location fails.
+
+config BR2_KERNEL_MIRROR
+ string "Kernel.org mirror"
+ default "https://www.kernel.org/pub"
+ help
+ kernel.org is mirrored on a number of servers around the world.
+ The following allows you to select your preferred mirror.
+
+ Have a look on the kernel.org site for a list of mirrors, then enter
+ the URL to the base directory. Examples:
+
+ http://www.XX.kernel.org/pub (XX = country code)
+ http://mirror.aarnet.edu.au/pub/ftp.kernel.org
+
+config BR2_GNU_MIRROR
+ string "GNU Software mirror"
+ default "http://ftp.gnu.org/pub/gnu"
+ help
+ GNU has multiple software mirrors scattered around the world.
+ The following allows you to select your preferred mirror.
+
+ Have a look on the gnu.org site for a list of mirrors, then enter
+ the URL to the base directory. Examples:
+
+ http://ftp.gnu.org/pub/gnu
+ http://mirror.aarnet.edu.au/pub/gnu
+
+endif
+
+config BR2_LUAROCKS_MIRROR
+ string "LuaRocks mirror"
+ default "http://rocks.moonscript.org"
+ help
+ LuaRocks repository.
+
+ See http://luarocks.org
+
+config BR2_CPAN_MIRROR
+ string "CPAN mirror (Perl packages)"
+ default "http://cpan.metacpan.org"
help
- This is the location where the toolchain will be installed. The
- toolchain will not work if it is moved from this location.
- Therefore, if you wish to package up a uClibc toolchain, it is
- important that is is set to the final location where the toolchain
- will be used.
+ CPAN (Comprehensive Perl Archive Network) is a repository
+ of Perl packages. It has multiple software mirrors scattered
+ around the world. This option allows you to select a mirror.
- Most people will leave this set to the default value of
- "$(BASE_DIR)/staging".
+ The list of mirrors is available at:
+ http://search.cpan.org/mirror
-source "target/device/Config.in.mirrors"
+endmenu
config BR2_JLEVEL
- int "Number of jobs to run simultaneously"
- default "2"
+ int "Number of jobs to run simultaneously (0 for auto)"
+ default "0"
help
- Number of jobs to run simultaneously
+ Number of jobs to run simultaneously. If 0, determine
+ automatically according to number of CPUs on the host
+ system.
+
+config BR2_CCACHE
+ bool "Enable compiler cache"
+ help
+ This option will enable the use of ccache, a compiler
+ cache. It will cache the result of previous builds to speed
+ up future builds. By default, the cache is stored in
+ $HOME/.buildroot-ccache.
+
+ Note that Buildroot does not try to invalidate the cache
+ contents when the compiler changes in an incompatible
+ way. Therefore, if you make a change to the compiler version
+ and/or configuration, you are responsible for purging the
+ ccache cache by removing the $HOME/.buildroot-ccache
+ directory.
+
+if BR2_CCACHE
+
+config BR2_CCACHE_DIR
+ string "Compiler cache location"
+ default "$(HOME)/.buildroot-ccache"
+ help
+ Where ccache should store cached files.
+
+config BR2_CCACHE_INITIAL_SETUP
+ string "Compiler cache initial setup"
+ help
+ Initial ccache settings to apply, such as --max-files or --max-size.
+
+ For example, if your project is known to require more space than the
+ default max cache size, then you might want to increase the cache size
+ to a suitable amount using the -M (--max-size) option.
+
+ The string you specify here is passed verbatim to ccache. Refer to
+ ccache documentation for more details.
+
+ These initial settings are applied after ccache has been compiled.
+
+endif
config BR2_DEPRECATED
- bool "Show packages that are deprecated or obsolete"
+ bool "Show options and packages that are deprecated or obsolete"
help
- This option hides outdated/obsolete versions of packages.
+ This option shows outdated/obsolete versions of packages and
+ options that are otherwise hidden.
+
+if BR2_DEPRECATED
+
+config BR2_DEPRECATED_SINCE_2014_02
+ bool
+ default y
+
+config BR2_DEPRECATED_SINCE_2014_05
+ bool
+ default y
+
+config BR2_DEPRECATED_SINCE_2014_08
+ bool
+ default y
+
+config BR2_DEPRECATED_SINCE_2015_02
+ bool
+ default y
+
+endif
config BR2_ENABLE_DEBUG
bool "build packages with debugging symbols"
- select BR2_PACKAGE_GDB_SERVER
help
- Build packages with debugging symbols
- enabled
+ Build packages with debugging symbols enabled. All libraries
+ and binaries in the 'staging' directory will have debugging
+ symbols, which allows remote debugging even if libraries and
+ binaries are stripped on the target. Whether libraries and
+ binaries are stripped on the target is controlled by the
+ BR2_STRIP_* options below.
if BR2_ENABLE_DEBUG
choice
endif
choice
- prompt "strip"
+ prompt "strip command for binaries on target"
default BR2_STRIP_strip
- help
- Select whether to strip binaries and libraries for the target
- or not.
- strip is the normal strip command
- sstrip is a strip that discards more than the normal strip
- none do not strip (only for debugging!)
config BR2_STRIP_strip
bool "strip"
- depends on !BR2_ENABLE_DEBUG && !BR2_ELF2FLT
+ depends on !BR2_PACKAGE_HOST_ELF2FLT
help
- strip is the normal strip command
+ Binaries and libraries in the target filesystem will be
+ stripped using the normal 'strip' command. This allows to
+ save space, mainly by removing debugging symbols. Debugging
+ symbols on the target are needed for native debugging, but
+ not when remote debugging is used.
config BR2_STRIP_sstrip
bool "sstrip"
select BR2_PACKAGE_SSTRIP_HOST
- depends on !BR2_ENABLE_DEBUG && !BR2_ELF2FLT
+ depends on !BR2_PACKAGE_HOST_ELF2FLT
+ depends on BR2_DEPRECATED_SINCE_2014_05
help
- sstrip is a strip that discards more than the normal strip
+ Binaries and libraries in the target filesystem will be
+ stripped using the 'sstrip' command, which strips a little
+ bit more than the traditional 'strip' command. This allows to
+ save space, mainly by removing debugging symbols. Debugging
+ symbols on the target are needed for native debugging, but
+ not when remote debugging is used.
config BR2_STRIP_none
bool "none"
help
- none do not strip (only for debugging!)
+ Do not strip binaries and libraries in the target
+ filesystem.
endchoice
+config BR2_STRIP_EXCLUDE_FILES
+ string "executables that should not be stripped"
+ depends on !BR2_STRIP_none
+ default ""
+ help
+ You may specify a space-separated list of binaries and libraries
+ here that should not be stripped on the target.
+
+config BR2_STRIP_EXCLUDE_DIRS
+ string "directories that should be skipped when stripping"
+ depends on !BR2_STRIP_none
+ default ""
+ help
+ You may specify a space-separated list of directories that should
+ be skipped when stripping. Binaries and libraries in these
+ directories will not be touched.
+ The directories should be specified relative to the target directory,
+ without leading slash.
+
choice
prompt "gcc optimization level"
default BR2_OPTIMIZE_S
endchoice
-config BR2_PREFER_STATIC_LIB
- bool "prefer static libraries"
+config BR2_GOOGLE_BREAKPAD_ENABLE
+ bool "Enable google-breakpad support"
+ select BR2_PACKAGE_GOOGLE_BREAKPAD
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_USES_GLIBC
+ depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
help
- Where possible, build and use static libraries for the target.
- This potentially increases your code size and should only be
- used if you know what you do.
+ This option will enable the use of google breakpad, a
+ library and tool suite that allows you to distribute an
+ application to users with compiler-provided debugging
+ information removed, record crashes in compact "minidump"
+ files, send them back to your server and produce C and C++
+ stack traces from these minidumps. Breakpad can also write
+ minidumps on request for programs that have not crashed.
+
+if BR2_GOOGLE_BREAKPAD_ENABLE
+
+config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
+ string "List of executables and libraries to extract symbols from"
+ default ""
+ help
+ You may specify a space-separated list of binaries and
+ libraries with full paths relative to $(TARGET_DIR) of which
+ debug symbols will be dumped for further use with google
+ breakpad.
+
+ A directory structure that can be used by minidump-stackwalk
+ will be created at:
+
+ $(STAGING_DIR)/usr/share/google-breakpad-symbols
+
+endif
+
+config BR2_ENABLE_SSP
+ bool "build code with Stack Smashing Protection"
+ depends on BR2_TOOLCHAIN_HAS_SSP
+ help
+ Enable stack smashing protection support using GCCs
+ -fstack-protector-all option.
+
+ See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
+ for details.
+
+ Note that this requires the toolchain to have SSP
+ support. This is always the case for glibc and eglibc
+ toolchain, but is optional in uClibc toolchains.
+
+comment "enabling Stack Smashing Protection requires support in the toolchain"
+ depends on !BR2_TOOLCHAIN_HAS_SSP
+
+choice
+ bool "libraries"
+ default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
+ default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
+ help
+ Select the type of libraries you want to use on the target.
+
The default is to build dynamic libraries and use those on
- the target filesystem.
+ the target filesystem, except when the architecture and/or
+ the selected binary format does not support shared
+ libraries.
- WARNING: This is highly experimental at the moment.
+config BR2_STATIC_LIBS
+ bool "static only"
+ help
+ Build and use only static libraries. No shared libraries
+ will be instaled on the target. This potentially increases
+ your code size and should only be used if you know what you
+ are doing. Note that some packages may not be available when
+ this option is enabled, due to their need for dynamic
+ library support.
+
+config BR2_SHARED_LIBS
+ bool "shared only"
+ depends on BR2_BINFMT_SUPPORTS_SHARED
+ help
+ Build and use only shared libraries. This is the recommended
+ solution as it saves space and build time.
-config BR2_HAVE_DOCUMENTATION
- bool "documentation on the target"
+config BR2_SHARED_STATIC_LIBS
+ bool "both static and shared"
+ depends on BR2_BINFMT_SUPPORTS_SHARED
help
- Install the documentation, including manual pages and info
- pages, on the target.
- If you say n here, your target will not contain any
- documentation.
+ Build both shared and static libraries, but link executables
+ dynamically. While building both shared and static libraries
+ take more time and more disk space, having static libraries
+ may be useful to link some of the applications statically.
+
+endchoice
-config BR2_HAVE_DEVFILES
- bool "development files in target filesystem"
+
+config BR2_PACKAGE_OVERRIDE_FILE
+ string "location of a package override file"
+ default "$(CONFIG_DIR)/local.mk"
+ help
+ A package override file is a short makefile that contains
+ variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
+ which allows to tell Buildroot to use an existing directory
+ as the source directory for a particular package. See the
+ Buildroot documentation for more details on this feature.
+
+config BR2_GLOBAL_PATCH_DIR
+ string "global patch directories"
help
- Install headers and static libraries in the
- target filesystem
+ You may specify a space separated list of one or more directories
+ containing global package patches. For a specific version
+ <packageversion> of a specific package <packagename>, patches are
+ applied as follows:
+
+ First, the default Buildroot patch set for the package is applied
+ from the package's directory in Buildroot.
+
+ Then for every directory - <global-patch-dir> - that exists in
+ BR2_GLOBAL_PATCH_DIR, if the directory
+ <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
+ *.patch files in this directory will be applied.
+
+ Otherwise, if the directory <global-patch-dir>/<packagename> exists,
+ then all *.patch files in the directory will be applied.
menu "Advanced"
-config BR2_CONFIG_CACHE
- bool "Use a central configure cache file"
- default y
+config BR2_COMPILER_PARANOID_UNSAFE_PATH
+ bool "paranoid check of library/header paths"
help
- This determines if a central config cache is used by
- packages, reducing the configure time for packages as each
- one caches its findings.
+ By default, when this option is disabled, when the Buildroot
+ cross-compiler will encounter an unsafe library or header
+ path (such as /usr/include, or /usr/lib), the compiler will
+ display a warning.
+
+ By enabling this option, this warning is turned into an
+ error, which will completely abort the build when such
+ unsafe paths are encountered.
+
+ Note that this mechanism is available for both the internal
+ toolchain (through gcc and binutils patches) and external
+ toolchain backends (through the external toolchain wrapper).
endmenu
source "toolchain/Config.in"
+source "system/Config.in"
+
+source "linux/Config.in"
+
source "package/Config.in"
source "fs/Config.in"
source "boot/Config.in"
-source "linux/Config.in"
+source "package/Config.in.host"
+
+source "Config.in.legacy"
+
+menu "User-provided options"
+ depends on BR2_EXTERNAL != "support/dummy-external"
+
+source "$BR2_EXTERNAL/Config.in"
+
+endmenu