summaryrefslogtreecommitdiff
path: root/package/Makefile.in
AgeCommit message (Collapse)Author
2010-07-26Makefile: fix ldconfig selection for internal toolchainsPeter Korsgaard
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-18Choose host/target ldconfig based on availabilityMalte Starostik
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-07Merge TARGET_CONFIGURE_ENV into TARGET_CONFIGURE_OPTSThomas Petazzoni
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-07Remove $(TOOLCHAIN_DIR)/bin and $(STAGING_DIR)/{usr/bin,bin} from the PATHThomas Petazzoni
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-07Remove *_FOR_TARGET variables from TARGET_CONFIGURE_OPTSThomas Petazzoni
Those variables are not standard. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07Cleanup TARGET_CONFIGURE_OPTSThomas Petazzoni
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-07Rework sysroot option handlingThomas Petazzoni
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-07Separate flags from commands in HOST_CONFIGURE_OPTSThomas Petazzoni
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-07Remove unneeded variables in HOST_CONFIGURE_OPTSThomas Petazzoni
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-07Solve the host tools relying on host libraries problemThomas Petazzoni
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 c1b6242fdcf2cff7ebf09fec4cc1be58963e8427 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 0d1830b07db4ebfd14e77a258de6fb391e57e960, 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 6b939d40f6a29a43277566adc9d4312d49cb3abf. Unfortunately, this caused problems when building binutils, as reported in bug 1789 so this change was reverted in e1a7d916e9eeaa215551740de40c055130d6c073. 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-06ext-toolchain: Fix ARCH_SYSROOT detectionThomas Petazzoni
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-06-15toolchain: remove gcc 4.1.2 and non-sysroot supportPeter Korsgaard
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-30Revert "Add -rpath option for host package compilation"Peter Korsgaard
Closes #1789 This reverts commit 6b939d40f6a29a43277566adc9d4312d49cb3abf. 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-08Merge branch 'misc-fixes2' of git://git.busybox.net/~tpetazzoni/git/buildrootPeter Korsgaard
2010-05-06Fix the computation of REAL_GNU_TARGET_NAMEThomas Petazzoni
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-06Add staging libraries directories to -L in external caseThomas Petazzoni
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-06Add -rpath option for host package compilationThomas Petazzoni
In c1b6242fdcf2cff7ebf09fec4cc1be58963e8427, 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 0d1830b07db4ebfd14e77a258de6fb391e57e960. 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-03package: Add $(HOST_DIR)/usr/lib to LD_LIBRARY_PATH for host but not targetLionel Landwerlin
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-03Remove BR2_GNU_TARGET_SUFFIX and compute GNU_TARGET_NAMEThomas Petazzoni
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-03Get rid of the code computing ROOTFS_SUFFIXThomas Petazzoni
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-03Get rid of KERNEL_CROSSThomas Petazzoni
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-03Commonalize the definition of TOOLCHAIN_DIRThomas Petazzoni
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-04-17external toolchains: take into account architecture variantThomas Petazzoni
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-11Get rid of the OPTIMIZE_FOR_CPU variableThomas Petazzoni
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-11Get rid of now unused HOST_ARCH computation codeThomas Petazzoni
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-04-11Guess build system and remove BR2_GNU_BUILD_SUFFIXThomas Petazzoni
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-09Remove IMAGE and related configuration optionsThomas Petazzoni
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-03-31toolchain: prepare for more than two alternativesYann E. MORIN
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-02-23package infrastructure: add PERLLIBThomas Petazzoni
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-23package infrastructure: add LD_LIBRARY_PATHThomas Petazzoni
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-01-28package: fix unstripped binary installationLionel Landwerlin
Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-12-15Add $(HOST_DIR)/usr/sbin to the PATHThomas Petazzoni
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-15Define TARGET_MAKE_ENV similarly to HOST_MAKE_ENVThomas Petazzoni
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-15Add generic package infrastructureThomas Petazzoni
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-14Use BR2_TOOLCHAIN_BUILDROOT instead of BR2_TOOLCHAIN_SOURCEThomas Petazzoni
The BR2_TOOLCHAIN_SOURCE option is removed in a future commit. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-06package: get rid of redundant malloc related configure presetsPeter Korsgaard
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-11-22package/Makefile.in: fix 'true' invocation for BR2_STRIP_nonePeter Korsgaard
Closes #701 Coreutils true doesn't understand a -Not_stripping argument. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-29toolchain/gcc: get rid of ancient 3.4.6 / 4.0.4 versionsPeter Korsgaard
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-07remove BR2_FPU_SUFFIXBernhard Reutner-Fischer
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-09-23rename TOOL_BUILD_DIR to TOOLCHAIN_DIRMichael Roth
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-20package/Makefile.in: Use appropriate paths for host pkg-config.Will Newton
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-16Rename the output directoriesThomas Petazzoni
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-16Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIXThomas Petazzoni
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-05packages: use qstripThomas Petazzoni
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-08-26package/Makefile.in: use := for INSTALLPeter Korsgaard
So it doesn't get reevaluated every time and for consistency with FLEX/BISON. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-08Remove --without-html-dir from DISABLE_DOCUMENTATIONThomas Petazzoni
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-07-31makefile: don't hardcore install utility locationThomas Petazzoni
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-30makefile: remove unused AUTO_CONFIGURE_OPTS variableThomas Petazzoni
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-25Merge branch 'xorg' of git://git.busybox.net/~tpetazzoni/git/buildrootPeter Korsgaard
2009-07-24xorg: remove the XSERVER variableThomas Petazzoni
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>