We don't need Config.in and Makefile in target/device: defconfig files
are sufficient to describe the specificities of a board (architecture,
compilation flags, bootloader and kernel details, etc.).
However, a placeholder such as target/device will be kept in order to
host things such as kernel configuration files or various
board-specific patches.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Having Config.in.mirrors (which also to select various download sites)
inside target/device sounds strange. This commit moves the contents of
Config.in.mirrors directly into the main Config.in file.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* ccache is now a normal package (both for the host and the target).
* ccache option is now part of the "Build options" menu. It will
automatically build ccache for the host before building anything,
and will use it to cache builds for both host compilations and
target compilations.
* bump ccache to 3.1.3
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The configuration cache shared between packages, while being in
principle a nice idea to speed-up the configuration of packages by
avoiding repetitive identical checks, turned out to be unreliable due
to the subtle differences between similar but not identical checks in
different packages. After spending some time trying to fix those, we
concluded that supporting the shared configuration cache is definitely
too hard and too unreliable, and that we'd better get rid of it
altogether.
This patch therefore removes the shared configuration cache
infrastructure and usage.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Wget's builtin default of 20 retries before the backup site is used is
pretty excessive when a server is down.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This re-instates writing the version string in .config headers, and no
longer provides it as a kconfig symbol in .config (it is now a variable
in the Makefile, and in the environment).
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
It's not really necessary to differenciate the commands for checking out
or updating a repository. Only the path to the binary and eventual
top-level flags are useful to configure.
Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reported-by: "James J. Dines" <jdines@jdines.net>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This patch introduces a single, simple, infrastructure to build the
Linux kernel. The configuration is limited to :
* Kernel version: a fixed recent stable version, same as kernel
headers version (for internal toolchains only), custom stable
version, or custom tarball URL
* Kernel patch: either a local file, directory or an URL
* Kernel configuration: either the name of a defconfig or the
location of a custom configuration file
* Kernel image: either uImage, bzImage, zImage or vmlinux.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Instead of asking the user about the GNU target suffix, just compute
it automatically from the other configuration options.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Instead of having a configuration option BR2_GNU_BUILD_SUFFIX, let's
use config.guess to guess the build system type.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Remove the BR2_UPDATE_CONFIG option which allowed to globally
enable/disable the replacement of config.{guess,sub} for
autotools-based packages. Doing it unconditionnally just works.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This option is barely used, no-one is maintaining it or extending
it. So let's remove it.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
With multicores everywhere, 2 is probably a bit low - But atleast it's
better than the current default.
This extra parallelism also ensures we get to test the make dependencies
a bit more.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
It speeds up configuration considerably.
If a package breaks due to wrong cache-entries, then the broken
other package has to be fixed, not the innocent bystander!
Put short: There is absolutely _no_ need to ever turn the cache off
unless you hack on autotools itself and goof.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
hard/softfloat is just one of the many config options, and it only
clutters the filenames.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Change to default Download dir so that different 'make O=<directory>'
commands will use the same location by default without having to
create a symlink in <directory> or having to export BUILDROOT_DL_DIR.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
In the output directory, we now have
- build/ where all the packages are built
- images/ where the final kernel and rootfs images are stored
- staging/ the staging directory (containing the development files
and libraries compiled for the target)
- target/ which contains the target root filesystem
- host/ which contains all the host programs
- stamps/ which contains the stamps files
Therefore, the build_ARCH and toolchain_build_ARCH have been
removed. People willing to use the same Buildroot sources to compile
for different architectures are invited to use the O= command line
option for out-of-tree compilation.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This change adds the config options BR2_BZR_CO and BR2_BZR_UP that
allow to configure the commands for doing a checkout/update from
a Bazaar repository.
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
The buildroot toolchain is installed in $(STAGING_DIR)/usr/bin and not
in $(STAGING_DIR)/bin so let,s adjust the --prefix accordingly.
Also the BFLT binary format is always stripped by definition, so it is
incompatible with any kind of stripping option.
Signed-off-by: Nicolas Pitre <nico@cam.org>
all the different COPYTOs spread out all over
Buildroot.
Generate COPY_FILE subroutine which can be used
to copy a file.
$(COPY_FILE , file, directory, filename)
This will copy to binary dir and to the selected
copy dir if set in new config (intended to replace
all old COPYTO configs)
This is overridden by BUILDROOT_COPYTO,
if set into the environment.
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>
Put first according to principle of configuration order
Merge root skeleton configuration to one place
- currently in package/busybox/Config.in
- Should maybe have it's own Config.in
gcc ABI configuration moved from toplevel to toolchain/gcc/Config.in
quite work yet for me, but this clearly is a huge project and not having it
quite work on the first pass is hardly unexpected. We definately want this
stuff in buildroot.
=========================================================
The purpose of the BSP patch is to allow building
several boards inside the same buildroot tree.
For this to work, each board has to have its
own "$(TARGET_DIR)" and all *configurable* packages
must be rebuilt for each board.
They are now built in the "$(PROJECT_BUILD_DIR)"
All non configurable packages can and should still
be built in the "$(BUILD_DIR)".
If a package is built for one board, then when
you build for a second board of the same architecture
the build becomes a simple copy of the resulting
binaries.
-----
Define BR2_PROJECT which will be used as the selector
between different boards. Note that BR2_PROJECT allow
you to build multiple root file systems for a single
board, and should not be confused with BR2_BOARD_NAME
which relates to the H/W.
-----
Define PROJECT_BUILD_DIR as "PROJECT_BUILD_DIR/$(PROJECT)"
Define BINARIES_DIR as "binaries/$(PROJECT)"
Define TARGET_DIR as "$(PROJECT_BUILD_DIR)/root"
(some prefix/postfix may apply)
Resulting images are stored in "$(BINARIES_DIR)"
-----
Define a few new environment variables in Makefile
PROJECT: Stripped BR2_PROJECT
DATE: Date of build in YYYY-MM-DD format
HOSTNAME: Stripped BR2_HOSTNAME => /etc/hostname
BANNER: Stripped BR2_BANNER => /etc/issue
Linux and Busybox will be built in $(PROJECT_BUILD_DIR)
More patches will be needed later to ensure all
configurable packages are built in this directory.
- depending on the BR2_GNU_BUILD_SUFFIX, set the respective EXEEXT, LIBEXT, SHREXT extensions for use on the target.
Thanks to Tom for suplying a diff which implements these.
0000042: add subversion (svn) support to buildroot
This patch adds support for subversion to checkout files, much like how CVS
already works. It uses 'SVN' macro in makefiles.
make fails for busybox 1.0.0 on fedora core 2
because the default behavior of wget is to create
a directory structure of the remote download
server on the local filesystem. in which case,
tar cannot find successfully downloaded files in
/buildroot/sources/dl. patch attached.