mirror of
https://git.busybox.net/buildroot.git
synced 2024-12-14 15:53:29 +08:00
5432f26f0e
The following changes allow for use of a central configure cache file. This speeds up configuration of packages. Its use is configurable at the top level (BR2_CONFIG_CACHE - default n). Old style makefiles can use it if they use the following MACRO in makefiles: $(AUTO_CONFIGURE_TARGET) see my change to directfb.mk. New style Autotools.in will use it if you set the global option. However you can enable the global option and on a per package overrule it by doing the following: $(PKGNAME)_USE_CONFIG_CACHE = NO see fontconfig.mk for an example of this. Finally I have removed a few config variable settings which indicated no CXX compiler as this is wrong and breaks the build when using this central cache. Config.in | 8 ++++++++ package/Makefile.autotools.in | 5 ++++- package/Makefile.in | 28 +++++++++++++++++++++++++++- package/atk/atk.mk | 2 +- package/directfb/directfb.mk | 7 +------ package/fontconfig/fontconfig.mk | 3 +++ package/libglib2/libglib2.mk | 2 +- package/libgtk2/libgtk2.mk | 1 - 8 files changed, 45 insertions(+), 11 deletions(-) I would appreciate feedback on this change (I have been testing for 2-3 weeks) But I can never test all cases! If you enable the BR2_CONFIG_CACHE option some Makefile.autotools.in based packages may now break - I cannot build them all. In this case you may need to remove config options that are being hardcoded all over the place (like gtk saying we have 2 CXX compiler) or disable the use of CONFIG CACHE file like I have done in fontconfig. I can build all packages required to get WebKit on DirectFB up and running and it runs fine. I will try to resolve any issues this creates as fast as I can. Signed-off-by: Daniel Laird <daniel.j.laird@nxp.com>
381 lines
11 KiB
Plaintext
381 lines
11 KiB
Plaintext
#
|
|
|
|
mainmenu "Buildroot2 Configuration"
|
|
|
|
config BR2_HAVE_DOT_CONFIG
|
|
bool
|
|
default y
|
|
|
|
config BR2_VERSION
|
|
string
|
|
default "0.10.0-svn"
|
|
|
|
source "target/Config.in.arch"
|
|
source "target/device/Config.in"
|
|
|
|
menu "Build options"
|
|
|
|
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.
|
|
NOTE: This only works for packages using the Makefile.autotools.in
|
|
|
|
config BR2_WGET
|
|
string "Wget command"
|
|
default "wget --passive-ftp -nd"
|
|
|
|
config BR2_SVN_CO
|
|
string "Subversion (svn) command to download source tree"
|
|
default "svn co"
|
|
|
|
config BR2_SVN_UP
|
|
string "Subversion (svn) command to update source tree"
|
|
default "svn up"
|
|
|
|
config BR2_GIT
|
|
string "Git command to download source tree"
|
|
default "git clone"
|
|
|
|
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_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.
|
|
|
|
config BR2_DL_DIR
|
|
string "Download dir"
|
|
default "$(BASE_DIR)/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
|
|
environment variable, then this overrides this configuration item.
|
|
|
|
The default is $(BASE_DIR)/dl
|
|
|
|
source "target/device/Config.in.mirrors"
|
|
|
|
config BR2_STAGING_DIR
|
|
string "Toolchain and header file location?"
|
|
default "$(BUILD_DIR)/staging_dir"
|
|
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.
|
|
|
|
Most people will leave this set to the default value of
|
|
"$(BUILD_DIR)/staging_dir".
|
|
|
|
config BR2_FPU_SUFFIX
|
|
bool "Add '_nofpu' suffix for softfloat toolchains"
|
|
help
|
|
If the toolchain is configured to use softfloat, then
|
|
the "_nofpu" suffix will be added to the toolchain build
|
|
directory name and to any rootfs image name
|
|
|
|
config BR2_TOPDIR_PREFIX
|
|
string "Custom build dir prefix"
|
|
default ""
|
|
help
|
|
Add a custom string to the beginning of the build directories.
|
|
|
|
build_ARCH -> [PREFIX]_build_ARCH
|
|
toolchain_build_ARCH -> [PREFIX]_toolchain_build_ARCH
|
|
|
|
config BR2_TOPDIR_SUFFIX
|
|
string "Custom build dir suffix"
|
|
default ""
|
|
help
|
|
Add a custom string to the end of the build directories.
|
|
|
|
build_ARCH -> build_ARCH_[SUFFIX]
|
|
toolchain_build_ARCH -> toolchain_build_ARCH_[SUFFIX]
|
|
|
|
config BR2_ROOTFS_PREFIX
|
|
string "Custom root fs prefix"
|
|
default "rootfs"
|
|
help
|
|
Add a custom string to the beginning of the root file system name.
|
|
|
|
config BR2_ROOTFS_SUFFIX
|
|
string "Custom root fs suffix"
|
|
default ""
|
|
help
|
|
Add a custom string to the end of the root file system name.
|
|
|
|
config BR2_GNU_BUILD_SUFFIX
|
|
string "GNU build hostname suffix"
|
|
default "pc-linux-gnu"
|
|
help
|
|
The string used to pass to configure scripts via the
|
|
--build= option. Just specify the suffix here, the leading
|
|
arch will be filled in automatically.
|
|
|
|
Here's some copy and paste build host options for you:
|
|
linux: pc-linux-gnu
|
|
cygwin: pc-cygwin
|
|
os x: apple-darwin7 / apple-darwin8
|
|
|
|
config BR2_GNU_TARGET_SUFFIX
|
|
string "GNU target suffix"
|
|
default "linux-uclibcgnueabi" if BR2_ARM_EABI
|
|
default "linux-uclibc"
|
|
help
|
|
The string used to pass to configure scripts via the
|
|
--target= option. Just specify the suffix here, the leading
|
|
arch will be filled in automatically.
|
|
|
|
Most users will want to stick with the default setting, though
|
|
other users (most notably ARM EABI) like to add on to this in
|
|
order to stay in line with gcc conventions.
|
|
|
|
Default options are:
|
|
linux-uclibcgnueabi for ARM EABI
|
|
linux-uclibc for the rest
|
|
gnuhurd-uclibc for the hurd
|
|
|
|
config BR2_JLEVEL
|
|
int "Number of jobs to run simultaneously"
|
|
default "1"
|
|
help
|
|
Number of jobs to run simultaneously
|
|
|
|
config BR2_PREFER_IMA
|
|
bool "prefer IMA compiles"
|
|
help
|
|
Where possible, compile package with Inter Module Analysis.
|
|
This potentially uses alot of system resources on your compile
|
|
host with the benefit of creating smaller binaries for the target.
|
|
|
|
If unsure, say No.
|
|
|
|
WARNING: This is highly experimental at the moment.
|
|
|
|
config BR2_DEPRECATED
|
|
bool "Show packages that are deprecated or obsolete"
|
|
help
|
|
This option hides outdated/obsolete versions of packages.
|
|
|
|
config BR2_RECENT
|
|
bool "Show packages that are of the latest major version"
|
|
default y
|
|
help
|
|
This option show recent versions of packages.
|
|
|
|
config BR2_CONFIG_CACHE
|
|
bool "Use a central configure cache file"
|
|
default n
|
|
help
|
|
This determines if a central config cache is used by
|
|
packages, reducing the configure time for packages as each
|
|
one caches its findings.
|
|
|
|
config BR2_ENABLE_DEBUG
|
|
bool "build packages with debugging symbols"
|
|
select BR2_PACKAGE_GDB_SERVER
|
|
help
|
|
Build packages with debugging symbols
|
|
enabled
|
|
|
|
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"
|
|
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
|
|
help
|
|
strip is the normal strip command
|
|
|
|
config BR2_STRIP_sstrip
|
|
bool "sstrip"
|
|
select BR2_PACKAGE_SSTRIP_HOST
|
|
depends on !BR2_ENABLE_DEBUG
|
|
help
|
|
sstrip is a strip that discards more than the normal strip
|
|
|
|
config BR2_STRIP_none
|
|
bool "none"
|
|
help
|
|
none do not strip (only for debugging!)
|
|
endchoice
|
|
|
|
choice
|
|
prompt "gcc optimization level"
|
|
default BR2_OPTIMIZE_S
|
|
help
|
|
Set the optimization level for gcc
|
|
|
|
config BR2_OPTIMIZE_0
|
|
bool "optimization level 0"
|
|
depends on !BR2_PACKAGE_LINUX
|
|
help
|
|
Do not optimize. This is the default.
|
|
|
|
config BR2_OPTIMIZE_1
|
|
bool "optimization level 1"
|
|
depends on !BR2_PACKAGE_LINUX
|
|
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_PREFER_STATIC_LIB
|
|
bool "prefer static libraries"
|
|
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.
|
|
The default is to build dynamic libraries and use those on
|
|
the target filesystem.
|
|
|
|
WARNING: This is highly experimental at the moment.
|
|
|
|
config BR2_HAVE_MANPAGES
|
|
bool "manpages on the target"
|
|
help
|
|
Leave the manpages on the target.
|
|
If you say n here, your target will not contain any
|
|
manpage.
|
|
|
|
config BR2_HAVE_INFOPAGES
|
|
bool "infopages on the target"
|
|
help
|
|
Leave the infopages on the target.
|
|
If you say n here, your target will not contain any
|
|
infopage.
|
|
|
|
config BR2_HAVE_DOCUMENTATION
|
|
bool "documentation on the target"
|
|
help
|
|
Leave the documentation on the target.
|
|
If you say n here, your target will not contain any
|
|
documentation.
|
|
|
|
config BR2_HAVE_DEVFILES
|
|
bool "development files in target filesystem"
|
|
help
|
|
Install headers and static libraries in the
|
|
target filesystem
|
|
|
|
source package/gnuconfig/Config.in
|
|
|
|
endmenu
|
|
|
|
source "toolchain/Config.in"
|
|
|
|
source "package/Config.in"
|
|
|
|
source "target/Config.in"
|