665e13c85e
Since a while, the semantic of BR2_PREFER_STATIC_LIB has been changed from "prefer static libraries when possible" to "use only static libraries". The former semantic didn't make much sense, since the user had absolutely no control/idea of which package would use static libraries, and which packages would not. Therefore, for quite some time, we have been starting to enforce that BR2_PREFER_STATIC_LIB should really build everything with static libraries. As a consequence, this patch renames BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS, and adjust the Config.in option accordingly. This also helps preparing the addition of other options to select shared, shared+static or just static. Note that we have verified that this commit can be reproduced by simply doing a global rename of BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS plus adding BR2_PREFER_STATIC_LIB to Config.in.legacy. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
616 lines
18 KiB
Plaintext
616 lines
18 KiB
Plaintext
#
|
|
|
|
mainmenu "Buildroot $BR2_VERSION Configuration"
|
|
|
|
config BR2_HAVE_DOT_CONFIG
|
|
bool
|
|
default y
|
|
|
|
config BR2_VERSION
|
|
string
|
|
option env="BR2_VERSION_FULL"
|
|
|
|
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"
|
|
|
|
menu "Commands"
|
|
|
|
config BR2_WGET
|
|
string "Wget command"
|
|
default "wget --passive-ftp -nd -t 3"
|
|
|
|
config BR2_SVN
|
|
string "Subversion (svn) command"
|
|
default "svn"
|
|
|
|
config BR2_BZR
|
|
string "Bazaar (bzr) command"
|
|
default "bzr"
|
|
|
|
config BR2_GIT
|
|
string "Git command"
|
|
default "git"
|
|
|
|
config BR2_CVS
|
|
string "CVS command"
|
|
default "cvs"
|
|
|
|
config BR2_LOCALFILES
|
|
string "Local files retrieval command"
|
|
default "cp"
|
|
|
|
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 "gzip -d -c"
|
|
help
|
|
Command to be used to extract a gzip'ed file to stdout.
|
|
zcat is identical to gunzip -c except that the former may
|
|
not be available on your system.
|
|
Default is "gzip -d -c"
|
|
Other possible values include "gunzip -c" or "zcat".
|
|
|
|
config BR2_BZCAT
|
|
string "bzcat command"
|
|
default "bzcat"
|
|
help
|
|
Command to be used to extract a bzip2'ed file to stdout.
|
|
bzcat is identical to bunzip2 -c except that the former may
|
|
not be available on your system.
|
|
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 ""
|
|
help
|
|
Options to pass to tar when extracting the sources.
|
|
E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
|
|
and to be verbose.
|
|
|
|
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 BR2_DL_DIR
|
|
environment variable, then this overrides this configuration item.
|
|
|
|
The default is $(TOPDIR)/dl
|
|
|
|
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
|
|
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.
|
|
|
|
The list of mirrors is available at:
|
|
http://search.cpan.org/mirror
|
|
|
|
endmenu
|
|
|
|
config BR2_JLEVEL
|
|
int "Number of jobs to run simultaneously (0 for auto)"
|
|
default "0"
|
|
help
|
|
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 options and packages that are deprecated or obsolete"
|
|
help
|
|
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"
|
|
help
|
|
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
|
|
prompt "gcc debug level"
|
|
default BR2_DEBUG_2
|
|
help
|
|
Set the debug level for gcc
|
|
|
|
config BR2_DEBUG_1
|
|
bool "debug level 1"
|
|
help
|
|
Debug level 1 produces minimal information, enough
|
|
for making backtraces in parts of the program that
|
|
you don't plan to debug. This includes descriptions
|
|
of functions and external variables, but no information
|
|
about local variables and no line numbers.
|
|
|
|
config BR2_DEBUG_2
|
|
bool "debug level 2"
|
|
help
|
|
The default gcc debug level is 2
|
|
|
|
config BR2_DEBUG_3
|
|
bool "debug level 3"
|
|
help
|
|
Level 3 includes extra information, such as all the
|
|
macro definitions present in the program. Some debuggers
|
|
support macro expansion when you use -g3.
|
|
endchoice
|
|
endif
|
|
|
|
choice
|
|
prompt "strip command for binaries on target"
|
|
default BR2_STRIP_strip
|
|
|
|
config BR2_STRIP_strip
|
|
bool "strip"
|
|
depends on !BR2_PACKAGE_HOST_ELF2FLT
|
|
help
|
|
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_PACKAGE_HOST_ELF2FLT
|
|
depends on BR2_DEPRECATED_SINCE_2014_05
|
|
help
|
|
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
|
|
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
|
|
help
|
|
Set the optimization level for gcc
|
|
|
|
config BR2_OPTIMIZE_0
|
|
bool "optimization level 0"
|
|
help
|
|
Do not optimize. This is the default.
|
|
|
|
config BR2_OPTIMIZE_1
|
|
bool "optimization level 1"
|
|
help
|
|
Optimize. Optimizing compilation takes somewhat more time,
|
|
and a lot more memory for a large function. With -O, the
|
|
compiler tries to reduce code size and execution time,
|
|
without performing any optimizations that take a great deal
|
|
of compilation time. -O turns on the following optimization
|
|
flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
|
|
-fcprop-registers -floop-optimize -fif-conversion
|
|
-fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
|
|
-ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
|
|
-ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
|
|
-O also turns on -fomit-frame-pointer on machines where doing
|
|
so does not interfere with debugging.
|
|
|
|
config BR2_OPTIMIZE_2
|
|
bool "optimization level 2"
|
|
help
|
|
Optimize even more. GCC performs nearly all supported optimizations
|
|
that do not involve a space-speed tradeoff. The compiler does not
|
|
perform loop unrolling or function inlining when you specify -O2.
|
|
As compared to -O, this option increases both compilation time and
|
|
the performance of the generated code. -O2 turns on all optimization
|
|
flags specified by -O. It also turns on the following optimization
|
|
flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
|
|
-fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
|
|
-fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
|
|
-frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
|
|
-fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
|
|
-fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
|
|
-freorder-functions -falign-functions -falign-jumps -falign-loops
|
|
-falign-labels -ftree-vrp -ftree-pre
|
|
Please note the warning under -fgcse about invoking -O2 on programs
|
|
that use computed gotos.
|
|
|
|
config BR2_OPTIMIZE_3
|
|
bool "optimization level 3"
|
|
help
|
|
Optimize yet more. -O3 turns on all optimizations specified by -O2
|
|
and also turns on the -finline-functions, -funswitch-loops and
|
|
-fgcse-after-reload options.
|
|
|
|
config BR2_OPTIMIZE_S
|
|
bool "optimize for size"
|
|
help
|
|
Optimize for size. -Os enables all -O2 optimizations that do not
|
|
typically increase code size. It also performs further optimizations
|
|
designed to reduce code size. -Os disables the following optimization
|
|
flags: -falign-functions -falign-jumps -falign-loops -falign-labels
|
|
-freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
|
|
-ftree-vect-loop-version
|
|
|
|
endchoice
|
|
|
|
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
|
|
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
|
|
|
|
config BR2_STATIC_LIBS
|
|
bool "build statically linked applications, no dynamic libraries"
|
|
help
|
|
Build all applications for the target statically linked.
|
|
This potentially increases your filesystem size and should only be
|
|
used if you know what you do.
|
|
|
|
Note that some applications cannot be build statically and so are
|
|
intentionally disabled.
|
|
|
|
The default (if this option is disabled) is to build dynamic
|
|
libraries and dynamically link applications to use those on the
|
|
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
|
|
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_COMPILER_PARANOID_UNSAFE_PATH
|
|
bool "paranoid check of library/header paths"
|
|
help
|
|
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
|
|
|
|
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 "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
|