Commit Graph

459 Commits

Author SHA1 Message Date
Peter Korsgaard
facd602dca Update for 2011.08
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-08-31 13:44:55 +02:00
Peter Korsgaard
73f131ce7d Update for 2011.08-rc2
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-08-29 11:21:17 +02:00
Jean-Christophe PLAGNIOL-VILLARD
83f1bf9e45 barebox: add barebox-<n/x/menu>config and barebox-savedefconfig support
[Peter: only activate if barebox is enabled, fix deps]
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-08-24 14:43:56 +02:00
Jean-Christophe PLAGNIOL-VILLARD
f5777ce8fb linux: add linux/linux26-savedefconfig support
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-08-22 22:15:35 +02:00
Peter Korsgaard
7ff457cdb5 Update for 2011.08-rc1
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-08-04 22:31:30 +02:00
Thomas De Schampheleire
4eb982cf90 'source' target should depend on 'dirs'
In the following command flow:
make distclean
make <board>_defconfig
make source

the dl directory would normally be created by the first wget download. If there are no such downloads, e.g. because you use a local download mirror (e.g. scp, file) or only use git/svn/hg/bzr repositories, the dl directory is not created automatically. This causes e.g. the 'pushd' command in the respective _DOWNLOAD commands to fail.

This patch adds a dependency to the 'dirs' target to 'source', fixing this scenario.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-08-04 21:44:56 +02:00
Danomi Mocelopolis
b979619973 make help: sort defconfigs for make 3.82
Closes #3985

The wildcard function in make 3.82 no longer sorts the output, so
add an explicit sort so the defconfigs are listed in a sensible order.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-07-17 22:19:19 +02:00
Yann E. MORIN
7c29745969 Makefile: unbreak source-check
'source-check' breaks because the *_DEFCONFIG options are empty strings.
There is an explicit check to avoid erroring-out when doing 'source', but
not when doing 'source-check'.

This patch set DL_MODE right from the first sub-make call.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-07-15 20:57:59 +02:00
Allan W. Nielsen
177b4b4ac0 Makefile.package.in: Add BR2_XZCAT for LZMA compression type
Signed-off-by: Allan W. Nielsen <a@awn.dk>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-07-12 23:14:44 +02:00
Thomas Petazzoni
97fafb9adc Remove unused variable definitions
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-06-12 21:56:09 +02:00
Peter Korsgaard
0a5e7905a6 kickoff 2011.08 development cycle
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-06-06 13:36:55 +02:00
Peter Korsgaard
9ab73b51e8 Update for 2011.05
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-27 16:18:21 +02:00
Peter Korsgaard
effcc9a2a2 Update for 2011.05-rc2
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-24 15:02:23 +02:00
Peter Korsgaard
137a4d7e92 Update for 2011.05-rc1
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-18 22:03:57 +02:00
Peter Korsgaard
125e2558b2 Get rid of unneeded CFLAGS
Now that we use a wrapper for external toolchains (and internal ones
default to the correct setting), we no longer need to explicitly pass
sysroot/march/mtune/mabi/floating point mode in TARGET_CFLAGS.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-05 23:39:03 +02:00
Peter Korsgaard
85dc57f6fd Add toolchain wrapper for external toolchains
Add a simple toolchain wrapper for external toolchains, which forces the
correct sysroot/march/mtune/floating point options needed to use it
with buildroot.

With this in place the external toolchain behaves similar to the internal
ones, and the special handling can be removed. This also means that the
toolchain is usable outside buildroot without having to pass any special
compiler flags.

Also adjust the downloadable external toolchain support to install under
HOST_DIR so it can be used after the temporary build files are removed.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-05 23:38:58 +02:00
Peter Korsgaard
4bb33dce49 Makefile: make help: show busybox/ctng/linux/uclibc-menuconfig if enabled
For this we need to read .config.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-25 00:10:45 +02:00
Peter Korsgaard
b052862f02 Makefile: remove outdated make targets
busybox and linux26 no longer have a -config target, and prepatch only makes
sense for a very specific configuration (BR toolchain with GDB enabled).

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-25 00:00:23 +02:00
Peter Korsgaard
f894e85e85 Makefile: remove extra quotes around host linker flags for cygwin
Closes #3541

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-04 15:44:35 +02:00
Thomas Petazzoni
c729829c6c Fix ccache handling
When ccache support is enabled and 'make silentoldconfig' is being
started from the following rule:

$(BUILD_DIR)/buildroot-config/auto.conf: $(CONFIG_DIR)/.config
	$(MAKE) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig

then, the Makefile in package/config inherits from HOSTCC/HOSTCXX
values with the ccache prefix. However, if we start from a cleaned
build (after make clean), ccache is not compiled yet, so things break.

To solve this, we pass a noccache variant of HOSTCC/HOSTCXX down to
the package/config Makefile.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-02 22:34:09 +02:00
Mike Frysinger
0df02e1233 hostcc/hostcxx: fix noccache variant setting
The current code accidentally sets up HOSTCC_NOCCACHE and HOSTCXX_NOCCACHE
only when the respective HOSTCC or HOSTCXX values are not set.  So if you
do something like:
	make HOSTCC=gcc menuconfig
The build fails because HOSTCC_NOCCACHE is not set anywhere.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-03-28 10:29:35 +02:00
Peter Korsgaard
da5e5a5aa2 kickoff 2011.05 development cycle
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-03-01 14:13:06 +01:00
Peter Korsgaard
f3e79a7aae Update for 2011.02
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-28 21:54:22 +01:00
Peter Korsgaard
2d3d618b6a Update for 2011.02-rc2
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-24 10:10:16 +01:00
Peter Korsgaard
51f8802d87 Update for 2011.02-rc1
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-14 22:38:01 +01:00
Bjørn Forsman
f16f2a5fee Makefile: remove dead code (TARGET_SKELETON_PATCH)
TARGET_SKELETON_PATCH is no longer in use, so remove it.

Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-14 22:27:30 +01:00
Mike Frysinger
871db074b1 initial support for Blackfin processors
[Peter: don't allow MMU on bfin]
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-07 14:29:19 +01:00
Gustavo Zacarias
a2b4f7fbbd toolchain: introduce HOST_DIR option
Allow the user to define HOST_DIR in the config menu.

This way when building an internal toolchain a separate (maybe shared)
output directory may be defined and the toolchain can be used by
multiple users and/or projects.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-02 22:46:13 +01:00
Peter Korsgaard
35ac32d150 Makefile: savedefconfig: save in O= directory for out-of-tree builds
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-02 15:54:50 +01:00
Peter Korsgaard
15f5bef053 make help: document ncurses, make V=1 and make O=<dir>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-01 08:41:01 +01:00
Bjørn Forsman
73144a6e02 Makefile: generate CMake toolchain-file in $(O)
A CMake toolchain-file makes it easy to develop CMake-based packages
outside of Buildroot. Just give the toolchain-file to CMake via the
-DCMAKE_TOOLCHAIN_FILE=... option.

Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-26 23:22:32 +01:00
Thomas Petazzoni
b0c86bcc57 Remove .py or .pyc depending on Python configuration
We do this at a global level since several packages can install
Python modules.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2011-01-25 08:59:57 +01:00
Peter Korsgaard
877044a738 Update copyright info for 2011
Happy newyear!

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-13 00:18:39 +01:00
Gustavo Zacarias
5ad139ebc9 toolchain: do staging symlink
Make an output/staging -> sysroot symlink just for compatibility
purposes.
This may be gone in the future so don't count on it, use $(STAGING_DIR)
instead.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-02 22:55:36 +01:00
Gustavo Zacarias
009407e6be binutils: make it a proper package
* Convert binutils to a proper autotargets package

* Add version 2.21 and drop version 2.17

* Hook up packaged binutils for target gcc

* Build tools are on HOST_DIR now so change it

* Move cross/host gcc to HOST_DIR

* Drop kludge from commit 3c77bab2ee
  This is fixed in the next commit "gcc: install copies of libgcc,
  libstdc++ and libgcj to the sysroot" - tested for arm & x86_64
  targets.

* TARGET_CROSS now pointed to HOST_DIR too

[Peter: Config.in tweaks]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-02 22:55:16 +01:00
Daniel Nyström
2bf3c16609 Reset critical environment variables
Reset them early in top-level Makefile to ensure they're keept unset
all the way through the build process.

This also removes the requirement of these variables being unset
globally prior the build.

Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-29 23:35:52 +01:00
Gustavo Zacarias
87b81bb56f toolchain: move sysroot to host dir
* Drop the BR2_STAGING_DIR option
* Hardcode STAGING_DIR to $(HOST_DIR)/usr/TUPLE/sysroot

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-28 22:38:47 +01:00
Thomas Petazzoni
6c492d5e7b toolchain: add support for external toolchain profiles and download
Instead of letting the user define all the details of his external
toolchain, we define a set of profiles for well-known external
toolchains (CodeSourcery ones only at the moment, can easily be
extended with other toolchains).

Once a profile has been choosen, the user is offered the choice of
either letting Buildroot download and install the external toolchain,
or (as before) to tell Buildroot where the toolchain is installed on
the system.

We of course provide a "custom profile", through which the user can
configure Buildroot to use a custom external toolchain for which no
profile is available.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 21:56:49 +01:00
Thomas Petazzoni
17b66affdf ccache: rework ccache management
* 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>
2010-12-08 17:51:49 +01:00
Peter Korsgaard
d7051da8c6 Makefile: document savedefconfig in 'make help', like it's done in Linux
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-07 12:16:44 +01:00
Peter Korsgaard
a8ecce0743 buildroot: kickoff 2011.02 development phase
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-03 11:56:28 +01:00
Peter Korsgaard
dbc45b0369 Update for 2010.11
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-30 16:52:43 +01:00
Gustavo Zacarias
0dc940cdee Makefile: introduce KSTRIPCMD to strip kernel modules
When sstrip is selected it tries to strip kernel modules too.
Unfortunately this fails with a "unrecognized program segment header
size" error thus interrupting the build process.

We introduce a new $(KSTRIPCMD) strip command for this, being a regular
strip when sstrip is selected and an empty stub when not stripping.

At the same time get rid of the REMOVE_SECTION_* variables, as they are
only used once.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-30 16:28:41 +01:00
Mike Frysinger
66254843a5 target-finalize: libtread_db: support nonstd toolchain setups
Certain toolchain configs (E.G. on blackfin), don't use symlinks, so the
file name to match is the actual SONAME (.so.*). Support these toolchains
as well.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-28 22:13:05 +01:00
Javier Viguera
69b2cc76b3 target-finalize: do not strip libthread_db
Fix previous commit not to strip libthread_db library. In the previous
commit the wildcard was incorrectly matching the symbolic link instead
of the real library file.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 21:41:20 +01:00
Peter Korsgaard
09af8387fd Update for 2010.11-rc2
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-25 11:29:30 +01:00
Mike Frysinger
c98bc88e32 target-finalize: do not strip libthread_db.so
For proper threading debug support, the libthread_db.so library cannot
be stripped on the target.  This is because the target gdbserver will
also load up this library at runtime and poke around its symbols.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-24 22:24:06 +01:00
Mike Frysinger
68ad6d4ee0 auto remove empty /usr/share dir
Often times, the only reason /usr/share exists is because of documentation
installed into it.  So once we're done cleaning the docs, attempt to rmdir
/usr/share.  If it's empty, things will work out nicely.

[Peter: use make infrastructure to ignore errors rather than shell]
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-24 22:14:33 +01:00
Peter Korsgaard
7dccbc44a8 Makefile: really adjust kernel modules strip invocation
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-24 22:12:13 +01:00
Mike Frysinger
8101c9a357 linux: strip installed modules
The installed kernel modules should have useless build cruft stripped out
of them.  On my system, a default build went from a very unreasonable 30MB
to a normal 3MB (on disk) and from 14MB to 3MB when compressed due to the
info stored in the kernel modules alone.

[Peter: don't hardcode binutils strip specific options]
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-24 22:02:40 +01:00
Peter Korsgaard
69884e3149 Makefile: remove outdated flush target
Not needed any more as we've removed the shared config.cache handling.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-24 15:32:17 +01:00
Peter Korsgaard
610255e7e4 Makefile: remove outdated .config.cmd handling
Not used anymore, and forcefully removes config if *config is aborted.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-24 15:30:54 +01:00
Peter Korsgaard
22c2c6b541 Makefile: handle host packages for make source / make external-deps
Ensure host packages (dependencies of target packages) are also handled
by make source / make external-deps.

This has to be done a explicitly, as we don't list these in Kconfig,
and hence also not in a variable like TARGETS, so instead we have to
look at the <PKG>_DEPENDENCIES variables for each enabled package and
extract the host packages from there.

Host packages can in turn also have dependencies, so we have to follow
those as well. Ideally this should be done recursively, but as that's
pretty hard to do in make, it is limited to 1 level for now.

Finally, host packages share source files with target packages, so
pipe output of make external-deps through sort -u to ensure duplicates
are removed.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-19 14:20:56 +01:00
Peter Korsgaard
ea252b0e04 Update for 2010.11-rc1
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-08 10:24:59 +01:00
Peter Korsgaard
64d8e9a0c1 Makefile: move target-{finalize,purgelocales} after bootloader/linux step
Closes #2731

Bootloader and Linux kernel steps can add content to the rootfs, so ensure
the cleanup / postprocess steps are moved after those.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-07 19:33:11 +01:00
Thomas Petazzoni
5f71fc1f19 Remove support for shared configuration cache
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>
2010-11-05 10:21:17 +01:00
Peter Korsgaard
0dca706568 Makefile: fix release target with make 3.81
It seems that target-specific variables don't mix with target rules.

Thanks to Yann for helping debugging the issue.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-04 00:03:52 +01:00
Yann E. MORIN
cb15bf8da5 Makefile: use global version string in /etc/br-version
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-03 23:31:32 +01:00
Yann E. MORIN
8258df279a Makefile: compute the version string for all to use
Some packages use the buildroot version string (to set their own version
string). Computing the version string globally will makes it easy for
them to use it instead of re-computing it in every packages.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-03 23:31:04 +01:00
Yann E. MORIN
e5e8fae892 Makefile: move version string from Config.in into Makefile
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>
2010-11-03 23:26:45 +01:00
Yann E. MORIN
2d239bbe27 Makefile: move .NOTPARALLEL
Move it down, users should not mess with it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-03 23:23:31 +01:00
Peter Korsgaard
3be4968343 Optimize (-O2) host binaries by default
Default HOST_CFLAGS to -O2, so host tools (like the cross compiler) are
built with optimization by default.

Based on a patch by Will Newton <will.newton@gmail.com>.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-10-29 21:00:26 +02:00
Peter Korsgaard
891973f538 Makefile: move KERNEL_ARCH from kernel-headers to here
Closes #2707

It's not only for kernel headers, and the kernel headers .mk file
isn't included for crosstool-ng toolchain, which broke linux/u-boot/..
builds.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-10-17 23:32:37 +02:00
Yann E. MORIN
10c1eec2c3 toolchain: add new toolchain backend: crosstool-NG
[Peter: indent Config.in, shuffle make targets around]
Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-10-01 16:40:40 +02:00
Peter Korsgaard
d0c3d1cf43 sed: get rid of host-sed variant
And all the infrastructure surrounding it. A broken sed implementation
is quite rare nowadays, as seen by the fact that the current host-sed
support has been broken for a while, so just get rid of it.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-09-30 23:09:39 +02:00
Yann E. MORIN
d487168c71 Makefile: Force make to run serially in the top-level Makefile
The top-level Makefile can be executed in parallel, as it causes problems.
We can force make to be not parallel.

It's been reported many times, and recent discussions on IRC with kos_tom,
and user nick-named knee, led to this patch.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-09-30 14:37:01 +02:00
Yann E. MORIN
aefad5317f Makefile: generate a Makefile wrapper in $(O)
If building out-of-tree, add a Makefile wrapper that calls-out to the real
Makefile with proper args.

Avoids having to pass -C and O= every time we call make.

This is highly inspired from how the Linux kernel does it, and portions of
it have been used. We can't use exactly the same implementation as the
kernel does, because:

 - the script writing the wrapper has been expunged of the few lines
   that were too kernel-related: in buildroot we do not need the version
   string in the wrapper, and we do not have a patchlevel version;

 - "in-tree build" does not have the same meaning for the kernel and for
   buildroot: for the kernel, $(O) point to the $(TOPDIR), while for
   buildroot $(O) points to $(TOPDIR)/output.

For more complete explanations, see:
  http://lists.busybox.net/pipermail/buildroot/2010-September/037815.html

[Peter: minor tweaks]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-09-26 23:47:07 +02:00
Maxime Petazzoni
d147b81fda Re-implement the source-check and external-deps targets
The new DL_MODE variable dispatches between the various download
implementations of each method (Git, Subversion, Wget) to deal with the
normal download (default mode, 'DOWNLOAD'), the source-check
('SOURCE_CHECK') and to show the external dependencies for external-deps
('SHOW_EXTERNAL_DEPS').

For the latter, the legacy script wget-show-external-deps.sh is no
longer required as $(WGET) isn't called directly anymore but always
through the DOWNLOAD helper.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-13 08:18:40 +02:00
Maxime Petazzoni
cf71111b99 Cleanup the VCS commands configuration
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>
2010-09-13 08:17:57 +02:00
Maxime Petazzoni
07b2af1a45 Remove the spider feature
In preparation for the re-work of the DOWNLOAD helper to support
multiple download methods and protocols, the spider feature used with
wget is removed for now until it is re-implemented on top of the new
download methods.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-13 08:17:46 +02:00
Peter Korsgaard
e62ed84b19 Merge branch 'for-2010.11/kconfig-upgrade' of git://git.busybox.net/~tpetazzoni/git/buildroot 2010-09-02 17:08:11 +02:00
Thomas Petazzoni
0b36880085 Ensure that all config-related files are generated before the build
The previous commit has removed calls to conf_write_autoconf(), which
is the function that generates the KCONFIG_AUTOCONF,
KCONFIG_AUTOHEADER, KCONFIG_TRISTATE files and the split config (with
one file per config item). Therefore, those things were not generated
anymore before the build.

In order to get them generated before the build, we use the same
mechanism as the kernel: run a silentoldconfig when the .config file
is newer than the KCONFIG_AUTOCONF file.

In Buildroot, all those elements are not really used today, except the
split config which is used a little bit in the toolchain build, in a
try to make sure the toolchain gets rebuilt properly when the
configuration changes. It does not seem that this work has been
completed.

However, as we want to keep the same behaviour as previously, we have
to generate all those elements before starting the build.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-01 14:22:28 +02:00
Thomas Petazzoni
e1b1a18ab6 Add support for savedefconfig
savedefconfig allows to create a minimal defconfig file from an
existing configuration. For example :

 make O=/path/to/some/buildroot/build/directory savedefconfig

will generate a minimal 'defconfig' file in the main Buildroot source
directory.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-01 12:27:25 +02:00
Thomas Petazzoni
1039eb74fa Factorize environment variables for config utilities
Instead of duplicating the definition of KCONFIG_AUTOCONFIG,
KCONFIG_AUTOHEADER and BUILDROOT_CONFIG, let's define them in a
COMMON_CONFIG_ENV variable, which is used by all the xconfig, gconfig,
menuconfig, nconfig, config, oldconfig, randconfig, allyesconfig,
allnoconfig, randpackageconfig, allyespackageconfig,
allnopackageconfig, defconfig, %_defconfig targets.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-01 12:27:17 +02:00
Thomas Petazzoni
abba28ac7d Makefile: use long options names for the 'conf' utility
The short option names have been removed as they were starting to
cause too much confusion. See
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4062f1a4c030157216dc8932e27131975cf7253c
for details.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-01 12:27:09 +02:00
Thomas Petazzoni
8b6585a9d3 Add support for the new nconf configuration tool
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-01 12:26:56 +02:00
Thomas Petazzoni
7c524dd0b6 Clean up our patches against kconfig
Our kconfig-to-buildroot2.patch hasn't been kept up to date with all
the changes made into package/config, and a single patch wasn't very
practical to maintain all our changes. Therefore, this commit adds a
package/config/patches directory, which contains a Quilt series of
patches that correspond to our modifications to the kconfig mechanism.

The huge kconfig-to-buildroot2.patch has been split into 16 smaller
patches. The purpose of some of the modifications has been clearly
identified, while some others were not identified.

The 16 patches together do match exactly the old
kconfig-to-buildroot2.patch. We have been very careful in making sure
that we wouldn't loose any of our modifications.

The only modifications made are :

 * Instead of renaming the kernel Makefile to Makefile.kconfig and
   naming the Buildroot Makefile just 'Makefile', we instead keep the
   original package/config/Makefile from the kernel
   scripts/kconfig/Makefile and name the Buildroot Makefile
   package/config/Makefile.br. The main Buildroot Makefile is modified
   accordingly.

 * The documentation README.buildroot2 is updated to explain how to
   upgrade to a newer version of scripts/kconfig.

 * The kconfig-language.txt documentation is removed, as anybody can
   easily find it in the kernel sources so there's no need to
   duplicate it here.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-01 12:26:41 +02:00
Thomas Petazzoni
6f38119cbb Implement %_defconfig similarly to the kernel
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-01 12:26:29 +02:00
Thomas Petazzoni
dc9dba1509 Remove CONFIG_DEFCONFIG
There's no need to have a .defconfig, when you run make menuconfig,
make xconfig or anything else for the first time, it will just start
with the default configuration anyway. This is what the kernel does.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-01 12:26:22 +02:00
Thomas Petazzoni
4ccde7fabb Fix ldconfig call in target-finalize
Recent versions of ldconfig require the directory /var/lib/ldconfig,
otherwise they bail out with an error. Moreover, having a
/etc/ld.so.conf file also avoids a warning.

In addition to this, we remove the redirection of stderr, so that
errors remain visible to the user.

Thanks to Baruch Siach, Andy Gibbs and Darcy Watkins for investigating
the issue and proposing solutions.

This fixes the build on recent distributions such as Fedora 13 or
Gentoo.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-08-30 23:14:20 +02:00
Peter Korsgaard
de846f6e04 Makefile: fix source/source-check/external-deps with O=
Based on patch by Will Wagner <will_wagner@carallon.com>.

Now that the .config is located in the output directory when O=<dir>
is used, we have to pass the O= option to make for
source/source-check/external-deps to get them to look in the right place
for the .config.

Fix it by introducing an EXTRAMAKEARGS variable and use it whenever we
call back into the toplevel Makefile.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-08-29 23:24:07 +02:00
Malte Starostik
e48a72e5e9 Remove gdb plugins from target
* Don't install gdb plugins unless BR2_TARGET_GDB is set

Signed-off-by: Malte Starostik <m-starostik@versanet.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-30 10:46:37 +02:00
Malte Starostik
bea9e43fe7 Globally remove aclocal directories from target
* Remove $(TARGET_DIR)/usr/share/aclocal from target-finalize when not
  installing devfiles and
* Remove some (now) redundant cleanup from individual packages

Signed-off-by: Malte Starostik <m-starostik@versanet.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-30 10:45:00 +02:00
Yann E. MORIN
ed0200993e toolchain: move makefile includes
Including a bunch of Makefiles with wildcard makes it impossible to add
new toolchain backends. Avoid that by namely including needed files.

The external toolchain still needs to include all the toolchain/*/*.mk
sub-makefiles, as they are needed to build a toolchain that runs on the
target. It is to be noted that the cross-toolchain is not built in this
case, as the make-targets to build the cross-toolchain are not present
in the $(BASE_TARGETS) variable, which is later used to create the
dependency rules.

Also, the comment 'Explicit ordering' has been removed, as it is mis-
leading. It is make's responsibility to create the proper ordering based
on the dependency rules it finds in the Makefiles

Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-28 16:20:06 +02:00
Yann E. MORIN
ed181aeedb toolchain: move helper functions from external toolchain
The helper functions used for external toolchains may also be useful
to alternate toolchain backends (currently, the external toolchain is
the sole user).

Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-28 16:19:56 +02:00
Peter Korsgaard
e49e2feda4 Makefile: fix ldconfig selection for internal toolchains
Commit ed0d45fdd (Choose host/target ldconfig based on availability)
added a runtime check for a cross-ldconfig being available.
Unfortunately this checks runs too early (at package/Makefile.in parsing
time), so it always fails when using an internal toolchain as ldconfig
isn't built yet.

Fix it by moving the check to the only place it is used (target-finalize).

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-26 23:57:01 +02:00
Malte Starostik
fbc22ecaef Fix default skeleton path
Signed-off-by: Malte Starostik <m-starostik@versanet.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-19 09:42:56 +02:00
Dmytro Milinevskyy
2b3a43f4e3 fs: add option to define path to custom rootfs skeleton
Signed-off-by: Dmytro Milinevskyy <milinevskyy@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-18 23:15:55 +02:00
Dmytro Milinevskyy
d9119c0bc5 move default skeleton to fs/ and drop busybox skeleton
[Peter: fixup patch, adjust for busybox.mk changes]
Signed-off-by: Dmytro Milinevskyy <milinevskyy@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-18 23:08:55 +02:00
Thomas Petazzoni
26082e79af Introduce support for host config cache
We now have for quite some time a configuration cache used to speed-up
the execution of ./configure scripts when compiling programs for the
target. This commit introduces a similar concept when Buildroot
compiles programs for the host.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:41 +02:00
Peter Korsgaard
8e29430410 Makefile: fixup make distclean after kconfig build in BUILD_DIR
We don't actually need to explicitly clean the kconfig stuff, as distclean
already removes the entire BUILD_DIR, but fix up the packag/config makefile
to do the right thing if make clean/distclean is called manually for
completeness.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-01 09:03:36 +02:00
Daniel Hobi
cf4689f8b1 Fix: convert leftover $(CONFIG)/conf to $(BUILD_DIR)/buildroot-config/conf
Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-29 23:47:49 +02:00
Thomas Petazzoni
fe1cba690a Remove old Linux infrastructure
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-22 21:20:26 +02:00
Thomas Petazzoni
487e21cff6 New, simpler, infrastructure for building the Linux kernel
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>
2010-06-22 21:20:25 +02:00
Peter Korsgaard
2cc210c92f kconfig: build in BUILD_DIR/buildroot-config
This way the main buildroot dir can be completely read-only for
out-of-tree builds

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 22:16:34 +02:00
Peter Korsgaard
2691d80803 Makefile: fix make <blah>_defconfig
Make sure we only pass O=<path> if we were originally called like that,
otherwise we might end up looking for the .config in the wrong place.

Likewise, when changing between using O= or not (or simply running
make <blah>_defconfig in a pristine source tree), we do end up having
a .config, but no .config.cmd. It isn't really critical so just continue
even if we couldn't read it.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 22:16:34 +02:00
Will Wagner
39ca6d50d8 Move config files into output directory for out-of-tree build
Closes #1213

Signed-off-by: Will Wagner <will_wagner@carallon.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-21 22:06:00 +02:00
Peter Korsgaard
5fd095b374 toolchain: remove gcc 4.1.2 and non-sysroot support
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 23:16:55 +02:00
Thomas Petazzoni
649b5b9250 bootloaders: move bootloader build code to boot/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-06-10 21:05:12 +02:00
Peter Korsgaard
2b42aae784 Makefile: support gconfig (GTK-based configurator) similar to xconfig
Support the GTK variant of the graphical kconfig configurator as an
alternative to the Qt3-based one.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-05 21:15:10 +02:00