Commit Graph

345 Commits

Author SHA1 Message Date
Peter Korsgaard
7e3e8ec040 package/Makefile.in: CFLAGS/LDFLAGS: don't add -I / -L args for STAGING_DIR
Now that we use sysroot for all toolchains, the explicit -I / -L arguments
in CFLAGS / LDFLAGS aren't needed anymore (And having them makes the build
quite noisy for certain packages as STAGING_DIR/include normally doesn't
exist).

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-29 15:40:58 +02:00
Sonic Zhang
5d6ff452ad external toolchain: Only prefix path if specified
Only prefix the external toolchain calls with its absolute path if
BR2_TOOLCHAIN_EXTERNAL_PATH is set, otherwise just assume it will
be available in the path.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-03-28 10:00:37 +02:00
Peter Korsgaard
6a86dd9c8e pkg-config: add usr/share/pkgconfig to search path as well
A few packages (like xlib_xtrans) install their .pc files here, and
upstream pkg-config defaults to searching both /usr/lib/pkgconfig and
/usr/share/pkgconfig, so add it as well.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-03-27 21:20:04 +02:00
Peter Korsgaard
50bda85e88 pkg-config: add --with-sysroot option for compiled in default sysroot setting
Similar to the --with-pc-path option. It works just like the existing
PKG_CONFIG_SYSROOT_DIR environment variable, but compiled in.
The environment variable overrides this default setting if set.

This way we don't need to pass PKG_CONFIG_SYSROOT_DIR in the environment
when building for the target, and it is easier to reuse pkg-config outside
BR (E.G. for the SDK) without having to setup special environment
variables.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-30 00:37:53 +01:00
Bjørn Forsman
bc1acec143 Add CMAKETARGETS infrastructure for CMake packages
The CMAKETARGETS infrastructure makes adding CMake-based packages to
Buildroot easy. It uses the same set of variables as the autotools
infrastructure, except for autoreconf and libtool stuff which is not
needed. Usage: just call CMAKETARGETS instead of AUTOTARGETS.

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
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
Peter Korsgaard
d97db71d10 Use 'sysroot' rather than 'sys-root' for the sysroot/staging_dir
As pointed out on the list, using sysroot rather than sys-root is less
confusing, as this is how it is referred to in the GCC manual.

So rather than changing BR, patch ct-ng to use sysroot instead.
The next ct-ng release will use 'sysroot' as well by default.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-26 14:49:00 +01:00
Peter Korsgaard
58d107ec3f crosstool-ng: install toolchain into HOST_DIR like the internal toolchain
Simplifies code and helps us when we add SDK support in the future.
With this we no longer need to copy headers/libraries to STAGING_DIR either.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-25 16:08:50 +01:00
Peter Korsgaard
f826046578 package/Makefile.in: Fix LIBC calculation for internal ct-ng toolchains
Use uclibc for internal ct-ng toolchains configured with uClibc as well.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-25 16:01:25 +01:00
Peter Korsgaard
8f61b236c9 Use sys-root rather than sysroot for the sysroot/staging_dir
The name of the sysroot directory is arbitrary, but as ct-ng uses sys-root,
let's use that as well for consistency.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-25 15:58:04 +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
Gustavo Zacarias
74058758e4 package: drop sparc64 bits
Remove VIS optimization, it's for sparc64 and it's gone.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-29 23:13:03 +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
Gustavo Zacarias
f78b344ea8 sstrip: make it a proper package
* Convert sstrip to a proper gentargets package
* Use openwrt svn version, it's basically the same one we used
* Change the hooks from old toolchain/sstrip to new package/sstrip
* Drop the old toolchain/sstrip directory
* sstrip for the target is now in Package -> Development

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-28 20:43:58 +01:00
Thomas Petazzoni
6b578c8d73 toolchain: rework C++ options
Instead of having BR2_GCC_CROSS_CXX and BR2_INSTALL_LIBSTDCPP, with
BR2_GCC_CROSS_CXX not being visible (and therefore being useless),
let's just keep BR2_INSTALL_LIBSTDCPP to enable C++ in the toolchain
and install C++ libraries on the target.

We also take that opportunity to make BR2_INSTALL_LIBSTDCPP an hidden
option, which is selected by an option in Buildroot toolchain support
or an option in External toolchain support, just as we did for other
toolchain features.

Some work definitely remains to be done :

 - The name BR2_INSTALL_LIBSTDCPP is ugly, but we keep it for the
   moment in order to avoid changing all packages.

 - We should clarify the other language-related options (Fortran,
   Java, Objective-C, etc.).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 22:04:35 +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
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
Marcelo Roberto Jimenez
1fbd9ef813 package/Makefile.in: Add OBJDUMP=$(TARGET_OBJDUMP) to TARGET_CONFIGURE_OPTS
Closes #2857

The OBJDUMP was missing from TARGET_CONFIGURE_OPTS, this patch adds it
to the proper place in package/Makefile.in.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:36:28 +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
Mike Frysinger
d2f7323f78 toolchain: do not require full path
If the toolchain can be found via $PATH, then requiring the full path to
it is unnecessary.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-10-16 16:46:44 -04: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
Thomas Petazzoni
ece1f4225c Fix computation of REAL_GNU_TARGET_NAME
The current computation of REAL_GNU_TARGET_NAME is incorrect for
non-ARM glibc platforms because it generates something such as
mipsel-unknown-linux- as the REAL_GNU_TARGET_NAME.

So we correct this by :

 * Adding "gnu" in the suffix when glibc is used, so that in the
   previous case we will have mipsel-unknown-linux-gnu

 * Improving the ARM_EABI code to correctly append "eabi" when glibc
   is selected, so that we have arm-unknown-linux-gnueabi, and to
   append "gnueabi" when uclibc is selected, so that we have
   arm-unknown-linux-uclibcgnueabi. The little trick here is that LIBC
   and ABI aren't completely orthogonal on ARM.

This fixes problems such as :

checking host system type... Invalid configuration
`mipsel-unknown-linux-': machine `mipsel-unknown-linux' not recognized

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-29 16:04:38 +02:00
Thomas Petazzoni
ef2c11e51a Remove unused X11_PREFIX option
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-28 00:30:26 +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
ed0d45fdd4 Choose host/target ldconfig based on availability
Decide whether to use the host or target ldconfig based on an
availability check instead of internal/external toolchain selection.  An
external toolchain may very well provide an ldconfig while the host's
one may fail.
External toolchain generated by Gentoo crossdev:

$ LC_ALL=C i686-pc-linux-uclibc-ldconfig -r output/target/; echo $?
i686-pc-linux-uclibc-ldconfig: skipping /usr/lib: No such file or directory
0

vs. the host (x86_64-pc-linux-gnu) version:

$ LC_ALL=C /sbin/ldconfig -r output/target/; echo $?
/sbin/ldconfig: Can't open configuration file
output/target/etc/ld.so.conf: No such file or directory
/sbin/ldconfig: Can't open cache file /var/cache/ldconfig/aux-cache
: No such file or directory
1

Signed-off-by: Malte Starostik <m-starostik@versanet.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-18 22:46:06 +02:00
Thomas Petazzoni
e721a7c07e Merge TARGET_CONFIGURE_ENV into TARGET_CONFIGURE_OPTS
TARGET_CONFIGURE_ENV defines CFLAGS, LDFLAGS, CXXFLAGS and FCFLAGS,
separatly from all other variables that are part of
TARGET_CONFIGURE_OPTS. This is useless and not consistent with the
HOST_CONFIGURE_ variables, therefore we merge TARGET_CONFIGURE_ENV
into TARGET_CONFIGURE_OPTS and fix the few users of
TARGET_CONFIGURE_ENV.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:41 +02:00
Thomas Petazzoni
0ab16a01bb Remove $(TOOLCHAIN_DIR)/bin and $(STAGING_DIR)/{usr/bin,bin} from the PATH
These shouldn't be needed. Even when the cross-compiler is in
$(STAGING_DIR)/usr/bin, we anyway use an absolute path for TARGET_CC,
TARGET_LD and al.

Not having $(STAGING_DIR)/{usr/bin,bin} in the PATH will avoid having
Buildroot trying to run target binaries.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:41 +02:00
Thomas Petazzoni
359090e693 Remove *_FOR_TARGET variables from TARGET_CONFIGURE_OPTS
Those variables are not standard.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:40 +02:00
Thomas Petazzoni
efb1d8d3f4 Cleanup TARGET_CONFIGURE_OPTS
The definition of CC, LD, GCC, CPP, CXX and FC shouldn't contain the
CFLAGS/LDFLAGS/CXXFLAGS, those should be passed through the
appropriate variables.

However, the --sysroot option is a particular case here: it needs to
be part of the CC/LD/GCC/etc. definitions otherwise libtool strips it
from the CFLAGS/LDFLAGS.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:40 +02:00
Thomas Petazzoni
dc67c7f4dc Rework sysroot option handling
The external toolchain and internal toolchain cases both need to use
the --sysroot option, and they have almost identical
LDFLAGS/CFLAGS/CXXFLAGS definition, so we can factorize these
definitions.

Moreover, the --isysroot option is implied by --sysroot so there's no
need to specify both.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:40 +02:00
Thomas Petazzoni
b07030a708 Separate flags from commands in HOST_CONFIGURE_OPTS
Just as we did for LD/LDFLAGS, pass CFLAGS and CXXFLAGS in their own
variables.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:40 +02:00
Thomas Petazzoni
8e8103bfb5 Remove unneeded variables in HOST_CONFIGURE_OPTS
When building packages for the host, the *_FOR_BUILD and *_FOR_TARGET
variables are not needed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:39 +02:00
Thomas Petazzoni
4fdecac9d6 Solve the host tools relying on host libraries problem
We build host tools installed in $(HOST_DIR)/usr/bin, and some of them
rely on host libraries in $(HOST_DIR)/usr/lib. So when these host
tools are executed, they need to find the host libraries, which are
not installed in a default location.

In c1b6242fdc we tried to use
LD_LIBRARY_PATH when building target packages to solve this
problem. Unfortunately, LD_LIBRARY_PATH is not only used to find
libraries at run-time, but also at compile time. So it leads the build
of some packages, such as icu, to fail.

Therefore, in 0d1830b07d, we reverted
the LD_LIBRARY_PATH idea.

The other option to solve this problem was to hardcode a RPATH value
in the host binaries that would reference the location of host
libraries. We added this -Wl,-rpath option to HOST_CFLAGS in
6b939d40f6. Unfortunately, this caused
problems when building binutils, as reported in bug 1789 so this
change was reverted in e1a7d916e9.

Then, we tried to use -Wl,-rpath in HOST_LDFLAGS, but it was causing
problems with fakeroot not recognizing 'ld' as the GNU linker, since
the -Wl,-rpath cannot be understood by 'ld' directly, only by 'gcc'.

This commit is a new attempt at using HOST_LDFLAGS, but in this case
we modified the definition of HOST_LD to *not* contain
HOST_LDFLAGS. LDFLAGS are being set separatly. It solved the fakeroot
issue and was tested against nearly 300 packages of Buildroot.

For more details on this story, see
 http://lists.busybox.net/pipermail/buildroot/2010-June/035580.html
 http://lists.busybox.net/pipermail/buildroot/2010-June/035581.html
 http://lists.busybox.net/pipermail/buildroot/2010-June/035586.html
 http://lists.busybox.net/pipermail/buildroot/2010-June/035609.html
 https://bugs.busybox.net/show_bug.cgi?id=1789

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:39 +02:00
Thomas Petazzoni
07d15f907b ext-toolchain: Fix ARCH_SYSROOT detection
For the detection of the ARCH_SYSROOT_DIR (which contains the C
library variant specific to the compiler flags), we used to pass only
the -march argument instead of the full TARGET_CFLAGS. This was done
because TARGET_CFLAGS contains --sysroot, and we don't want to tell
here the compiler which sysroot to use, because we're specifically
asking the compiler where the *normal* arch sysroot directory is.

Unfortunately, there are some multilib variants that aren't decided
only based on -march, but also on -msoft-float or other compiler
flags. Therefore, we take the opposite approach: pass the full
TARGET_CFLAGS, from which we have stripped the --sysroot option.

For example, this allows a PowerPC CodeSourcery toolchain, on which
we're using the soft-float multilib variant, to work properly as an
external toolchain.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-06 07:55:59 +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
Peter Korsgaard
e1a7d916e9 Revert "Add -rpath option for host package compilation"
Closes #1789

This reverts commit 6b939d40f6.

The problem this commit tries to fix is valid, but the fix unfortunately
seems to cause worse problems on certain distributions/setups, so revert
for now.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-30 10:42:17 +02:00
Peter Korsgaard
0d6068ae01 Merge branch 'misc-fixes2' of git://git.busybox.net/~tpetazzoni/git/buildroot 2010-05-08 00:09:11 +02:00
Thomas Petazzoni
5e1fbd2c33 Fix the computation of REAL_GNU_TARGET_NAME
When the selected C library is glibc, the C library shouldn't be
mentionned in REAL_GNU_TARGET_NAME. In other words:

 arm-unknown-linux-uclibcgnueabi must be used for uClibc
 arm-unknown-linux-gnueabi must be used for glibc

This fixes the build of GDB on the target, as reported by Quotient
Remainder <quotientvremainder@gmail.com>.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-06 23:08:37 +02:00
Thomas Petazzoni
2eb4b09529 Add staging libraries directories to -L in external case
In order to solve issues of libtool trying to link target components
against host libraries, it seems that specifying -L$(STAGING_DIR)/lib
and -L$(STAGING_DIR)/usr/lib works.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-05-06 20:18:41 +02:00
Thomas Petazzoni
6b939d40f6 Add -rpath option for host package compilation
In c1b6242fdc, we added
$(HOST_DIR)/usr/lib to LD_LIBRARY_PATH when building target packages,
because the build of target packages sometimes require host tools
installed in $(HOST_DIR)/usr/bin which themselves require host
libaries installed in $(HOST_DIR)/usr/lib.

Unfortunately, this solution didn't work, as libtool then tried to
link target binaries against host libraries. So $(HOST_DIR)/usr/lib
got removed from LD_LIBRARY_PATH in
0d1830b07d.

However, this meant that we went back to the previous situation, in
which host tools used during compilation of target components might
require host libraries. An example :

make[2]: Entering directory `/home/test/buildroot/output.ctng-arm-eglibc-2010-05-04-12-41-00/build/xfont_font-adobe-100dpi-1.0.1'
/home/test/buildroot/output.ctng-arm-eglibc-2010-05-04-12-41-00/host/usr/bin/mkfontdir /home/test/buildroot/output.ctng-arm-eglibc-2010-05-04-12-41-00/target/usr/share/fonts/X11/100dpi
/home/test/buildroot/output.ctng-arm-eglibc-2010-05-04-12-41-00/host/usr/bin/mkfontscale: error while loading shared libraries: libfontenc.so.1: cannot open shared object file: No such file or directory

Therefore, we try another solution: make sure that host binaries are
linked with an -rpath option, so that $(HOST_DIR)/usr/lib doesn't need
to be in LD_LIBRARY_PATH for them to find their libraries.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-05-06 20:17:38 +02:00
Lionel Landwerlin
0d1830b07d package: Add $(HOST_DIR)/usr/lib to LD_LIBRARY_PATH for host but not target
Some packages like icu requires to be compiled against the host system
first to be able to compile against the target. This is due to the
usage of self generated binaries by the package to build itself. When
the generated tools also depends on generated libraries it is required
to add the path to these libraries in the library path
(LD_LIBRARY_PATH) especially for the configure step.

Adding $(HOST_DIR)/usr/lib to LD_LIBRARY_PATH for target compilation
might break the link step by mixing host libraries and target
binaries.

Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-03 13:37:11 +02:00
Thomas Petazzoni
65e80a0b0b Remove BR2_GNU_TARGET_SUFFIX and compute GNU_TARGET_NAME
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>
2010-05-03 00:00:08 +02:00
Thomas Petazzoni
d70a3800b2 Get rid of the code computing ROOTFS_SUFFIX
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-03 00:00:07 +02:00
Thomas Petazzoni
bf75987424 Get rid of KERNEL_CROSS
In both internal and external toolchain cases, KERNEL_CROSS was
defined to *exactly* the same value as TARGET_CROSS. It isn't modified
anywhere, and is just used by kernel compilation and pcmcia
compilation.

Therefore, get rid of KERNEL_CROSS and use TARGET_CROSS instead.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-03 00:00:06 +02:00
Thomas Petazzoni
4c5bf461cd Commonalize the definition of TOOLCHAIN_DIR
The definition of TOOLCHAIN_DIR is the same regardless of whether
external or internal toolchains are used. Moreover, move its
definition together with all the other *_DIR definitions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-03 00:00:05 +02:00
Thomas Petazzoni
7b7a4be0e1 external toolchains: take into account architecture variant
Until now, many TARGET_CFLAGS where missing when using an external
toolchain, due to how package/Makefile.in was written. Now, a lot more
definitions are common between the Buildroot toolchain case and the
external toolchain case.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-04-17 02:09:38 +02:00
Thomas Petazzoni
04ba0089a6 Get rid of the OPTIMIZE_FOR_CPU variable
This variable, together with the FIXME comment, has been added has
part of Eric Andersen's « Major buildroot facelift, step one » commit
that occured in October 2004.

Since then, no real usage has been made of OPTIMIZE_FOR_CPU, and the
initial intention has probably been lost in the memories of the
implementors.

Therefore, get rid of the variable, and just use $(ARCH) at the two
locations the variable was used.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-04-11 21:10:35 +02:00
Thomas Petazzoni
ce3bd8da2a Get rid of now unused HOST_ARCH computation code
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-04-11 21:10:34 +02:00
Thomas Petazzoni
60281cbfe4 Guess build system and remove BR2_GNU_BUILD_SUFFIX
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>
2010-04-11 21:10:33 +02:00
Thomas Petazzoni
325bfd1cba Remove IMAGE and related configuration options
Now, we just hardcode the image filenames to be rootfs.$(FSTYPE), in
the $(BINARIES_DIR).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-04-09 11:04:35 +02:00
Yann E. MORIN
26b44b2b02 toolchain: prepare for more than two alternatives
Lay down the path to add more than two toolchain kinds:
- check the type of toolchain as:
    ifeq (toolchain_buildroot,y)
        blabla buildroot-specific
    else ifeq (toolchain_external,y)
        blabla external-specific
    endif

- prefer using positive checks, a-la:
    ifeq (foo,y)
  instead of:
    ifneq (bar,y)
  (where foo and bar are mutually exclusive)

- have the toolchain_buildroot case always appear first

- gettext is handled differently, because we want to add an option
  only if not using the buildroot toolchain, hence we use ifneq.

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-03-31 10:53:12 +02:00
Thomas Petazzoni
405a7ecaa1 package infrastructure: add PERLLIB
Now that we build Perl modules in $(HOST_DIR), PERLLIB must be defined
to $(HOST_DIR)/usr/lib/perl.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-02-23 20:34:19 +01:00
Thomas Petazzoni
c1b6242fdc package infrastructure: add LD_LIBRARY_PATH
During the compilation of target or host packages, host tools might be
used, and in turn, they might use host libraries installed in
$(HOST_DIR)/usr/lib. Therefore, we pass a LD_LIBRARY_PATH variable
when building packages.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-02-23 20:33:26 +01:00
Lionel Landwerlin
96879ab1de package: fix unstripped binary installation
Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-01-28 22:55:42 +01:00
Thomas Petazzoni
69fa47be3f Add $(HOST_DIR)/usr/sbin to the PATH
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-15 19:57:31 +01:00
Thomas Petazzoni
497abb8211 Define TARGET_MAKE_ENV similarly to HOST_MAKE_ENV
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-15 18:09:30 +01:00
Thomas Petazzoni
e11fe847b2 Add generic package infrastructure
This new infrastructure allows to write simpler .mk files for packages
not using the autotools as their build system, by factorizing many
common steps (download, extract, patching), and will more easily allow
Buildroot-wide changes in how the packages are handled.

The main macro is called GENTARGETS and works similarly to the
AUTOTARGETS macro that already exists for autotools-based
packages. However, the set of variables to be defined before calling
the macro is different. Refer to the documentation for details.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-15 18:09:23 +01:00
Thomas Petazzoni
bc994c533c Use BR2_TOOLCHAIN_BUILDROOT instead of BR2_TOOLCHAIN_SOURCE
The BR2_TOOLCHAIN_SOURCE option is removed in a future commit.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:47 +01:00
Peter Korsgaard
9e76714747 package: get rid of redundant malloc related configure presets
Those are already in TARGET_CONFIGURE_ARGS. Also get rid of unused
BR2_AC_CV_FUNC_MALLOC_0_NONNULL variable.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-12-06 19:58:45 +01:00
Peter Korsgaard
3445ff4ade package/Makefile.in: fix 'true' invocation for BR2_STRIP_none
Closes #701

Coreutils true doesn't understand a -Not_stripping argument.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-11-22 20:54:20 +01:00
Peter Korsgaard
9af188d883 toolchain/gcc: get rid of ancient 3.4.6 / 4.0.4 versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-29 21:11:28 +01:00
Bernhard Reutner-Fischer
0bc7a43ff3 remove BR2_FPU_SUFFIX
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>
2009-10-07 22:33:52 +02:00
Michael Roth
cb5710c538 rename TOOL_BUILD_DIR to TOOLCHAIN_DIR
To reflect the new output directory hierachy rename the Makefile variable
TOOL_BUILD_DIR to TOOLCHAIN_DIR.

Signed-off-by: Michael Roth <mroth@nessie.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-09-23 09:15:27 +02:00
Will Newton
51173980cd package/Makefile.in: Use appropriate paths for host pkg-config.
PKG_CONFIG_PATH adds a path to the pkg-config search path, but this is not
enough when we are building host tools - the host pkg-config default path
is still used, and this will pick up .pc files in the staging_dir tree.

PKG_CONFIG_LIBDIR overrides the pkg-config default path and ensures only
host .pc files are found. This fixes a pango build failure when building
for the host with cairo PNG support enabled.

Signed-off-by: Will Newton <will.newton@gmail.com>
2009-09-20 19:34:27 +01:00
Thomas Petazzoni
3b2a803d28 Rename the output directories
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>
2009-09-16 20:33:31 +02:00
Thomas Petazzoni
fd3800c197 Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX
The same effect can be done using out-of-tree build with O=

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-09-16 20:33:27 +02:00
Thomas Petazzoni
3c35d55ea9 packages: use qstrip
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-09-05 14:43:17 +02:00
Peter Korsgaard
717aaab9e8 package/Makefile.in: use := for INSTALL
So it doesn't get reevaluated every time and for consistency with FLEX/BISON.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-26 09:52:51 +02:00
Thomas Petazzoni
7e62e8ec72 Remove --without-html-dir from DISABLE_DOCUMENTATION
In an attempt to disable the compilation and installation of
documentation of gtk packages, a DISABLE_DOCUMENTATION variable
containing --without-html-dir has been added to
package/Makefile.in. This variable is used by
package/Makefile.autotools.in so that --without-html-dir is in effect
passed to all autotools-based packaging relying on the
Makefile.autotools.in infrastructure.

Unfortunately, --without-html-dir doesn't work. It leads libglib2
./configure script to think that HTML_DIR is "no", which leads to the
installation of the documentation in $(STAGING_DIR)no (yes, with the
"no" suffix at the end). The issue is that --with-html-dir is not an
enable/disable type of option, it's an option that only allows to pass
a PATH for documentation installation.

As we don't want the documentation to be installed in this odd
$(STAGING_DIR)no directory, we simply get rid of this option.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-08-08 20:21:58 +02:00
Thomas Petazzoni
1a2433b58e makefile: don't hardcore install utility location
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-31 08:48:03 +02:00
Thomas Petazzoni
4e9807a645 makefile: remove unused AUTO_CONFIGURE_OPTS variable
The AUTO_CONFIGURE_OPTS is not used anywhere in the tree. autoconf
based packages should used the Makefile.autotools.in machinery
instead.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-30 16:53:46 +02:00
Peter Korsgaard
441c122606 Merge branch 'xorg' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-25 09:13:44 +02:00
Thomas Petazzoni
74ecbaa23d xorg: remove the XSERVER variable
The XSERVER variable used to be defined by package/Makefile.in because
the X server package name was different depending on the type of X
server that was choosen. Nowadays, the name of the package is always
xserver_xorg-server, so there's no point in having this XSERVER
intermediate variable.

This patch makes all packages use xserver_xorg-server directly as a
dependency, and removes the XSERVER variable from package/Makefile.in.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:48 +02:00
Thomas Petazzoni
b36a589480 xorg: remove references to non-existing configuration options
The option BR2_PACKAGE_TINY, BR2_PACKAGE_XORG and BR2_PACKAGE_XGGI
don't exist, so do not use them to find the value of the $(XSERVER)
variable.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:48 +02:00
Maxim Grigoriev
6b27f42180 package/Makefile.in: xtensa host support
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:12:27 +02:00
Thomas Petazzoni
b5d6f341c5 external toolchain: add $(HOST_DIR)/bin to TARGET_PATH
Since the move of many host binaries to $(HOST_DIR), the TARGET_PATH
for internal toolchain had been changed to include $(HOST_DIR)/bin and
$(HOST_DIR)/usr/bin, but this change was not reflected to the
TARGET_PATH used in external toolchain configuration. This patches
fixes this.

We also remove $(STAGING_DIR)/bin and $(STAGING_DIR)/usr/bin from the
TARGET_PATH in external toolchain configuration, since the STAGING_DIR
is not supposed to contain host binaries.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 17:23:44 +02:00
Peter Korsgaard
a0352751ac package: set CXX to false rather than "" if no C++ support is enabled
Some configure scripts seems to ignore CXX settings if it is set to
the empty string, and goes back to the default (<arch>-linux-g++),
so use false instead, as that will loudly break the build if the
C++ compiler is ever used.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-04 21:22:44 +02:00
Thomas Petazzoni
fb56c53e39 Another external toolchain fix
Change the definition of TARGET_LDFLAGS to use --sysroot
$(STAGING_DIR) instead of -L$(STAGING_DIR)/lib
-L$(STAGING_DIR)/usr/lib. It fixes the following failure while trying
to build mtd-utils :

/usr/local/xtools/arm-unknown-linux-uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-gcc -L/home/thomas/local/buildroot-output/build_arm/staging_dir/lib -L/home/thomas/local/buildroot-output/build_arm/staging_dir/usr/lib -o /home/thomas/local/buildroot-output/build_arm/mtd_orig/flash_eraseall /home/thomas/local/buildroot-output/build_arm/mtd_orig/crc32.o /home/thomas/local/buildroot-output/build_arm/mtd_orig/flash_eraseall.o
/usr/local/xtools/arm-unknown-linux-uclibcgnueabi/lib/gcc/arm-unknown-linux-uclibcgnueabi/4.3.2/../../../../arm-unknown-linux-uclibcgnueabi/bin/ld: cannot find /lib/libc.so.0
collect2: ld returned 1 exit status
make[1]: *** [/home/thomas/local/buildroot-output/build_arm/mtd_orig/flash_eraseall] Error 1

At the same time, simplify the definition of TARGET_CFLAGS, because
the -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include
-I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include are
no longer necessary since we sysroot the toolchain in $(SYSROOT_DIR).

This patch has no effect on non-external toolchain builds.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-03-29 18:32:18 +00:00
Peter Korsgaard
e7b38c71ce package: add STAMP_DIR and use for host builds
Move stamp (dependency) files outside the (version specific) source
directories, so other packages can hardcode dependencies on them instead
of having to use <PACKAGE>_VERSION variables.

This is important as the variables in the make rules are evaluated when
the rules is seen, which might be before the dependent makefile is parsed
(and hence <PACKAGE>_VERSION variable is known, screwing up stuff.

The downside of this is that the package isn't automatically rebuilt
when the version changes (E.G. by a svn update) and you now also have to
remove the stamp files next to $(BUILD_DIR)/<PACKAGE>-* to force a rebuild.
2009-03-19 11:06:47 +00:00
Peter Korsgaard
849c45648d pkg-config: rename pkgconfig to pkg-config
This matches upstream tarball, doesn't screw up existing .config's with
BR2_PACKAGE_PKGCONFIG and makes sure the patch gets applied for target
compilation.
2009-03-19 08:30:20 +00:00
Peter Korsgaard
b451015203 pkgconfig: install into HOST_DIR 2009-03-18 19:18:40 +00:00
Peter Korsgaard
00400f4720 package: add HOST_DIR to target path 2009-03-17 13:48:29 +00:00
Peter Korsgaard
4311f0fe39 package: fix host path
And generate dbus introspect xml for dbus-glib.
2009-03-17 13:48:15 +00:00
Peter Korsgaard
40a54252eb package/Makefile.in: search $(HOST_DIR) for host includes / libraries 2009-03-16 20:58:08 +00:00
Peter Korsgaard
bd07d92aad Makefile: introduce $(HOST_DIR) for host binaries
Add HOST_DIR directory handling. HOST_DIR should be used just like
STAGING_DIR, but for host files instead of target ones.
2009-03-16 15:48:43 +00:00
Peter Korsgaard
2c89d7aeb6 mpg123: remove arm funroll-loops workaround
Fixed by toolchain patch.
2009-02-05 13:24:18 +00:00
Ulf Samuelsson
32521c03bd Do not overwrite user configuration 2009-02-01 16:10:47 +00:00
Ulf Samuelsson
81a9f04114 Make toolchain configration to fix mpg123 global and move to Makefile 2009-01-24 11:27:47 +00:00
Peter Korsgaard
bc65432230 toolchain: introduce HOSTCC_VERSION and fix gcc-4.3.x build with old host CCs
gcc < 4.2.0 doesn't support -Wno-overlength-stings, but gcc-4.3.x configure
fails to detect that, breaking the build.

Work around it by detecting the host gcc version (and store in HOSTCC_VERSION)
and set the proper configure variables for gcc < 4.2.0.
2009-01-19 09:18:46 +00:00
Ulf Samuelsson
6da70de503 The liboil Makefile will use "-mcpu=vfp" when building for ARM.
The VFP is only available for a few ARM CPUs at the moment,
so this breaks the liboil build.

A patch is available upstream which only enables "-mfpu=vfp"
if "--enable-vfp" is given to "configure".
Autotools needs to be run for liboil for this to take effect.

A new configuration BR2_VFP_FLOAT is added to allow enabling vfp.
If this is "yes", then "-mfpu=vfp" is added to CFLAGS.
2009-01-18 10:51:53 +00:00
Thomas Lundquist
fa2273f409 Easier with one place for configure options for disabling gtk-doc 2009-01-17 10:11:12 +00:00
Peter Korsgaard
b24c3215c1 buildroot: get rid of s390 support
As discussed on the list. It isn't supported by uclibc, so I strongly doubt
anyone has been using it.
2009-01-12 14:36:14 +00:00
Peter Korsgaard
69f8592407 buildroot: set SHELL instead of messing around with CONFIG_SHELL
Simply set SHELL to bash instead of adding CONFIG_SHELL to all shell
invocations. CONFIG_SHELL is still set, as it is used by kconfig.
2009-01-01 21:20:35 +00:00
Thomas Petazzoni
c934e1aa18 Fix TARGET_PATH for external toolchain builds
TARGET_PATH didn't contain $(STAGING_DIR)/usr/bin, which means that
programs installed in $(STAGING_DIR)/usr/bin were not considered for
execution during Buildroot build process. This was a problem with host
automake/autoconf/libtool, which could not be found.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2008-12-15 22:07:38 +00:00
Thomas Petazzoni
978d8dc53e Another external toolchain support solution
* In toolchain/external-toolchain/ext-tool.mk, copy the contents of
   the sysroot directory to the staging dir.

 * In package/Makefile.in, add a --sysroot CFLAGS pointing to the
   staging dir

 * Remove the CFLAGS and LDFLAGS definition from
   TARGET_CONFIGURE_OPTS. I haven't investigated exactly why, but with
   these options, DirectFB fails to build because it cannot find
   PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, even if DirectFB's Makefile
   properly sets -D_GNU_SOURCE.

I have already sent this patch on December, 2nd to the mailing-list,
but got no feedback. So let's commit and see what happens :-)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2008-12-13 16:15:50 +00:00
Peter Korsgaard
ac1d92c425 package/: get rid of unneeded $(strip ..) 2008-12-08 08:15:27 +00:00
Daniel Laird
5432f26f0e Adding Central config.cache options
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>
2008-11-28 14:20:47 +00:00
Peter Korsgaard
5098ee9c7f Revert r24000: "Fix external toolchain build"
This breaks builds with internal toolchain, so let's revert this until we find
a proper solution.
2008-11-21 14:51:10 +00:00
Thomas Petazzoni
60d39dbb3f Fix external toolchain build
This patch is a new version of a patch already sent several times on
the mailing-list, committed and reverted a few times by Daniel Laird,
due to several imperfections. This version is a new try at finding a
solution that works for everybody. Hopefully it'll work :-)

The original problem is that external toolchain builds failed because
packages couldn't find their dependent libraries at configure time and
could not be linked with them. To fix these two problems, two things
are added:

 * The TARGET_LDFLAGS variable was exposed as LDFLAGS at ./configure
   time thanks to TARGET_CONFIGURE_OPTS. The TARGET_LDFLAGS variable
   contains -L options with the path in the STAGING_DIR for the
   libraries. It allows ./configure scripts to properly compile the
   small test programs testing whether a dependency is properly
   installed.

 * The TARGET_CFLAGS contains a new -Wl,--rpath-link option for both
   $(STAGING_DIR)/lib and $(STAGING_DIR)/usr/lib. It allows library
   depending on other libraries to link properly. The TARGET_CFLAGS is
   exposed as CFLAGS in TARGET_CONFIGURE_OPTS.

This new version fixes a problem encountered by hartleys
<hartleys@visionengravers.com> when building the kernel. The problem
was that the -Wl,--rpath-link options were added to LDFLAGS, while
there are options for the C compiler, not the ld linker. Moving them
to CFLAGS seems to fix the issue.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2008-11-11 18:32:31 +00:00
Daniel Laird
2dbf951819 package/Makefile.in: revert rpath setup for toolchains.
Revert the rpath patch, it looked good up until someone tried 
to build a kernel as well.  This seems to break as a result.

Will post a new patch soon and see how that goes.. 

Signed-off-by: Daniel Laird <daniel.j.laird@nxp.com>
2008-11-07 08:15:53 +00:00
Daniel Laird
fd3bb17cbb package/Makefile.in: rpath setup for toolchains.
Apply the patch I posted some time ago that fixes 
rpath issues with external toolchains.
Has been tested by users of buildroot and feedback looks good.

Signed-off-by: Thomas Petazzoni
Signed-off-by: Daniel Laird <daniel.j.laird@nxp.com>
2008-11-06 12:54:29 +00:00
Daniel Laird
eff04b41d3 package/Makefile.in: Remove rpath fix as it breaks Thomas png build
Remove my fix for rpath-link until I can find out why it works for me and not
Thomas.

Signed-off-by: Daniel Laird <daniel.j.laird@nxp.com>
2008-10-22 15:28:30 +00:00
Daniel Laird
ec65ef836f package/Makefile.in: Add -rpath-link
As per various email discussions add -rpath-link
to the LDFLAGS.
This definately fixes a few issues for Thomas and myself
Any objections and it can be pulled again.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@...> 
Signed-off-by: Daniel Laird <daniel.j.laird@nxp.com>
2008-10-22 12:47:53 +00:00
Peter Korsgaard
60b5eee76e package: global largefile CFLAGS handling 2008-08-04 19:07:18 +00:00
Peter Korsgaard
c666875912 package/Makefile.in: cleanup MAKE/MAKE1
The extra stuff doesn't seem to be needed, so lets just get rid of it.
2008-07-11 13:43:59 +00:00
Peter Korsgaard
607d0229ae package/Makefile.in: propagate -s make flag to sub makes 2008-07-01 13:30:26 +00:00
Peter Korsgaard
6eb60364c4 pkgconfig: bump version and cleanup
Upgrade to pkgconfig 0.23 which has native sysroot support (buggy,
but easily fixable), which allows us to get rid of pkgconfig-filter.sh.
At the same time cleanup the makefile.
2008-06-14 21:00:59 +00:00
Peter Korsgaard
ff1b7e871f Makefile: honor silent (-s) flag 2008-05-31 07:27:52 +00:00
John Voltz
41f6b79ff7 added more debugging options for packages 2008-03-12 13:07:10 +00:00
John Voltz
1beaf12098 added debug option 2008-03-11 18:15:30 +00:00
Ulf Samuelsson
0c85dfd60c Use host ldconfig, if external toolchain is used 2008-01-10 09:29:06 +00:00
Ulf Samuelsson
c8e376f83e FIx syntax error 2007-10-30 10:30:59 +00:00
Ulf Samuelsson
3c2739182b Allow to remove _nofpu from directories and images 2007-10-18 12:38:26 +00:00
Ulf Samuelsson
29ac0f18d2 Remove debugging info from package/Makefile.in 2007-10-18 07:40:19 +00:00
Ulf Samuelsson
c500802eaf Remove hyphen from images if empty rootfs suffix 2007-10-18 05:56:05 +00:00
Ulf Samuelsson
79d42d3238 Allow date to be added to Image 2007-10-07 18:23:01 +00:00
Bernhard Reutner-Fischer
5cfb2f794f - fix some whitespace damage..
- add COPYTO settings for cpio and tar and remove that ugly hardcoded DATE from that was added by Ulf
2007-10-05 12:55:40 +00:00
Bernhard Reutner-Fischer
05195c3d00 - default to mips I for mipsel and mips III for mips
- suggest some target flags for abi64
2007-10-02 21:36:49 +00:00
Bernhard Reutner-Fischer
14a71561a3 - just use the strip binary to avoid confusing libtool (quotes)
- use $(STRIPCMD) in packages to avoid clashes with $(STRIP)
2007-10-01 16:15:31 +00:00
Bernhard Reutner-Fischer
3569f2d045 - fix quotes for STRIP.
Sorry for any inconvenience this may have caused..
2007-09-29 14:27:39 +00:00
Bernhard Reutner-Fischer
4f5facb9ec - make sure that strip and all it's arguments are passed if used via
STRIP=$(TARGET_STRIP) (i.e. without quoting). Thanks to Dimitry Golubovsky
  for mentioning this.
2007-09-29 10:05:08 +00:00
Bernhard Reutner-Fischer
fbb5f1b94e - cleanup configure options 2007-09-28 22:15:19 +00:00
Bernhard Reutner-Fischer
5f97580e50 - add FC, remove some duplicate entries, cleanup
- fixup after Ulf: CXX doesn't take CFLAGS but CXXFLAGS
2007-09-28 20:10:22 +00:00
Ulf Samuelsson
966c37f7d2 Sort HOST/TARGET_CONFIGURE_OPTS, add some more, needed for gcc-4.1.2 2007-09-28 19:49:13 +00:00
Bernhard Reutner-Fischer
e27250c502 - add a query for suggestions on how to deal with MALLOC_GLIBC_COMPAT 2007-09-27 21:58:46 +00:00
Bernhard Reutner-Fischer
4b0d5a80f8 - revert some bad checkins, fixup bad settings in atmel targets and move the gcc target abi back to a place where the other arch-specific settings live 2007-09-26 21:12:38 +00:00
Bernhard Reutner-Fischer
fecac9bfb6 - revert r19918 for now 2007-09-20 18:28:53 +00:00
Bernhard Reutner-Fischer
7025afd93c - Reset flags, packages are usually built with -O2 otherwise.
Packages that need to pass additional CFLAGS in their .mk have to do something
  like this: ...configure $(foreach i,$(foo_CFLAGS),CFLAGS+=$$i) --prefix=...
2007-09-20 17:26:59 +00:00
Bernhard Reutner-Fischer
be10c4a8c9 - add v9a and v9b settings.
Will need to change the GCC_TARGET_TUNE accordingly.
2007-09-17 21:50:54 +00:00
Bernhard Reutner-Fischer
153ee9e247 - some more sparc{,64} twiddling 2007-09-15 22:04:49 +00:00
Ulf Samuelsson
49a1413d5d Add version info (date) to root fs image 2007-09-12 04:40:02 +00:00
Ulf Samuelsson
5f17c052bc Update various packages to make X run 2007-09-12 04:37:31 +00:00
Bernhard Reutner-Fischer
b6a2729be1 - cosmetic cleanup 2007-09-01 17:32:01 +00:00
Ulf Samuelsson
a9a68fabc5 Add default X11 install directory 2007-08-28 23:02:52 +00:00
Bernhard Reutner-Fischer
4427e87559 - add apropriate variables for the host-toolchain to HOST_CONFIGURE_OPTS 2007-08-28 08:14:51 +00:00
Bernhard Reutner-Fischer
6547bced93 - global whitespace trimming 2007-08-22 12:35:41 +00:00
Bernhard Reutner-Fischer
3471ebe0a3 - random whitespace cleanup 2007-08-22 11:47:22 +00:00
Bernhard Reutner-Fischer
1dbe6e3396 - our dependencies are project specific. First (untested) attempt to take this fact into account.
Will need to try to copy eventual pre-existing project-specific deps back
  to package/config in order not to mess up the corresponding timestamps (to avoid superfluous rebuilds)..
2007-08-21 17:56:47 +00:00
Bernhard Reutner-Fischer
1e3c369df8 - move the PROJECT variable setting to a more sensible place 2007-08-21 17:14:56 +00:00
Ulf Samuelsson
e4ead9c13c Remove switches if sstrip is run 2007-08-21 01:53:57 +00:00
Eric Andersen
a7e49eb2af Merge in X11R7 patches from Julien Letessier, posted 04 Jul 2007. Doesn't
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.
2007-08-10 19:07:51 +00:00
Peter Korsgaard
6c0c83fb56 Use cross ldconfig instead of host version 2007-08-08 14:58:47 +00:00
Bernhard Reutner-Fischer
bbd251a075 - add possibility to select different flavours of strip (or none at all for debugging purposes) 2007-07-31 18:06:50 +00:00
Bernhard Reutner-Fischer
cd1819ee15 - nil the CXX env var if we don't have a CXX cross-compiler 2007-07-31 15:10:55 +00:00
Bernhard Reutner-Fischer
85580c38a7 - fix typo in previous commit 2007-07-23 12:03:17 +00:00
Bernhard Reutner-Fischer
58002d40e9 - iff the cross-compiler supports certain mtune,march,mabi flags then use them for the packages.
This should make it obvious if the wrong compiler is used to build the target.
2007-07-23 11:37:25 +00:00
"Steven J. Hill"
f60905df62 No platform code in this file. 2007-07-22 20:09:54 +00:00
Ulf Samuelsson
3b7b07a422 ATMEL_MIRROR needs to be available before toolchain is built 2007-07-22 17:17:03 +00:00
Ulf Samuelsson
65a964b6a7 Add additional include directory, required by some packages 2007-07-20 11:36:52 +00:00
Ulf Samuelsson
e7c08c297d make source-check without permanently changing WGET command 2007-07-20 07:34:28 +00:00
Ulf Samuelsson
4705b60076 Ensure we use host 'make', even when building 'make' in buildroot 2007-07-17 12:09:07 +00:00
Ulf Samuelsson
e17c3858c4 Add comment on when to use BUILD_DIR vs PROJECT_BUILD_DIR 2007-07-12 15:32:04 +00:00
Ulf Samuelsson
412ca2a4d4 BSP Patch:
=========================================================
	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.
2007-07-12 13:11:03 +00:00
"Steven J. Hill"
9a4ca08e5f Remove usage of TARGET_LDFLAGS all together. Both TARGET_CFLAGS and TARGET_LDFLAGS are passed with the compilers and linker respectively so that we can pass CFLAGS and LDFLAGS on a per-package basis which was not possible previously and a number of packages failed to build. TARGET_CFLAGS usage in package makefiles will be removed next. 2007-07-06 04:26:32 +00:00
Bernhard Reutner-Fischer
afc61c6e8e - adjust infrastructure for new kconfig 2007-06-28 10:47:05 +00:00
Bernhard Reutner-Fischer
74d518dc2a - add endian handling, mmap, memcmp checks to TARGET_CONFIGURE_ARGS
- use TARGET_CONFIGURE_ARGS where appropriate.
2007-06-27 12:01:27 +00:00
Bernhard Reutner-Fischer
de18b661cf - introduce TARGET_CONFIGURE_ARGS to hold presets for configure for target packages 2007-06-27 09:48:23 +00:00
Bernhard Reutner-Fischer
a48d8f5414 - add BR2_INET_IPV6 and BR2_INET_RPC
TODO: use $(DISABLE_IPV6) in packages instead of a gazillion different hackish ways that are currently in there
2007-06-26 16:34:45 +00:00
Bernhard Reutner-Fischer
c77052465a - pass -msoft-float if BR2_SOFT_FLOAT is set. Closes bug #1069 2007-06-26 14:02:29 +00:00
Bernhard Reutner-Fischer
8027784c35 - add full sysroot support for non-ancient toolchains.
- start to separate usr/lib and lib to match normal system-layout
2007-06-20 11:26:36 +00:00
"Steven J. Hill"
116acadec9 Add another include path to the CFLAGS. 2007-05-07 04:01:24 +00:00
Bernhard Reutner-Fischer
4fc1724e27 - put staging_dir/usr/bin into the target path, so X-stuff can find freetype-config.
Closes #1233
2007-03-20 17:58:36 +00:00
"Steven J. Hill"
02f71aab47 Support building using an external toolchain. Questions to the mailing list and all other comments to <biteme@devnull.com>. 2007-02-06 18:19:38 +00:00
Bernhard Reutner-Fischer
4bbeb74b2e - the $(XSERVER) target can be provided by different X server impls. Adjust users
- rdesktop needs an xserver impl
2007-02-04 19:47:41 +00:00
Bernhard Reutner-Fischer
b82245322e - make absolutely sure that we are not trying to go into jobserver mode for MAKE1 2007-01-30 17:33:53 +00:00
Eric Andersen
4ac03cc86a filter pkgconfig output to force it do use our staging_dir and not
try to use the system libraries as it is inclined to do
2007-01-14 03:48:13 +00:00
Bernhard Reutner-Fischer
3c9baee374 - use centralized DISABLE_LARGEFILE
- nil CXX if there isn't one
2006-12-21 13:51:53 +00:00
Bernhard Reutner-Fischer
761ca0d1a5 - Quote TARGET_PATH. Closes #1107. 2006-12-08 12:45:45 +00:00
Bernhard Reutner-Fischer
4e5da4289e - add and use a HOSTCXX variable. 2006-11-20 16:09:43 +00:00
Bernhard Reutner-Fischer
6e2823c1fa - add and use BR2_BZCAT config option. 2006-11-17 15:43:51 +00:00
Eric Andersen
290615edc1 we use BR2_ENABLE_LOCALE not ENABLE_LOCALE 2006-10-17 16:57:02 +00:00
Bernhard Reutner-Fischer
6fe5f48cbf - add missing hung from the BR2_ZCAT introduction 2006-10-01 18:34:45 +00:00
Bernhard Reutner-Fischer
e4a303dd69 - fix bug #1042; Hardcoding system-paths is a bad idea. If some of them are not
in PATH seen by make then most likely for a very good reason. Set your PATH accordingly if you need /bin or /usr/local/bin et al.
2006-09-30 21:08:56 +00:00
Bernhard Reutner-Fischer
e16425c389 - pickup the PATH the user has set.
Fixes HOSTCC et al being installed in e.g. /opt where it wasn't found before.
2006-08-24 19:35:47 +00:00
Eric Andersen
ddb5ebab06 move TAR_OPTIONS to its rightful place 2006-07-18 22:58:58 +00:00
Paul Mundt
d56e2b342f Split the target suffix out as a config option, for the few cases where
we have to use a different one.
2006-06-05 21:49:44 +00:00
Bernhard Reutner-Fischer
6ff820d647 - pass $(TARGET_CROSS)strip as STRIP to the packages. 2006-03-10 08:44:16 +00:00
David Anders
54f724280d add TARGET_CXX per case 0000593 2006-01-25 17:28:23 +00:00
Mike Frysinger
70ea98efbb add an option for the --build so cygwin users can utilize buildroot 2005-12-27 08:42:13 +00:00
Mike Frysinger
ea26d735ae force CPP 2005-12-17 01:34:03 +00:00
Mike Frysinger
59a63a91eb let people control location of download dir 2005-10-01 00:35:24 +00:00
Mike Frysinger
e4de8b2f14 add sf mirrors list in help (fix by Bernhard Fischer) and allow people to add custom prefix/suffix to builds 2005-09-18 04:41:57 +00:00
"Steven J. Hill"
6b632ad624 Build 'file' for the host as well as the target. If the host system has a version older than that being built for buildroot, the target build will fail. So, we build 'file' for the host and add actually add '$(TOOL_BUILD_DIR)/bin' to the TARGET_PATH so that it takes precedence over the host system version. 2005-08-30 03:35:37 +00:00
Eric Andersen
29353e58bc Change root_fs_$(ARCH) to rootfs.$(ARCH) 2005-08-13 10:57:08 +00:00
"Steven J. Hill"
d5871cf8ad Fix bzip2 cross build error associated with host ranlib being
used instead of cross target ranlib.
2005-05-18 03:42:51 +00:00
Mike Frysinger
c76539aa58 SnarlCat writes: add OBJCOPY to build environment Bug #213 2005-04-07 00:25:21 +00:00
Eric Andersen
9cc9476c35 more dhcp updates 2005-02-16 19:48:03 +00:00
Eric Andersen
e30cf26cff Patch from scott: http://bugs.uclibc.org/view.php?id=42
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.
2005-01-23 11:20:30 +00:00
Eric Andersen
8e5fb3fb4a Add initial BR2_JLEVEL support, with some exceptions for apps that
have broken 'make -j' support
2004-12-11 13:01:10 +00:00
Eric Andersen
ba7c48f306 Add an option to allow people to relocate the toolchain 2004-12-11 10:25:40 +00:00
Tim Riker
788ddd9c45 nuke sources/ - you might want to move sources/dl/ to dl/ to avoid redownloading the world 2004-10-27 18:13:38 +00:00
Eric Andersen
44eedc5c44 facelift step number two 2004-10-09 02:49:33 +00:00
Eric Andersen
2d523c2317 Major buildroot facelift, step one.
-Erik
2004-10-09 01:06:03 +00:00