The MTD utils require MTD headers in the toolchain, and in several
external toolchains, they are not present. In order to make the build
work by default, let's disable the MTD Busybox applets in our default
configuration.
Fixes bug #1669
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Closes#849, #1135
customize.mk used to copy files with a wrong command, resulting in one
directory level in excess. For example, source/etc/myfile would have
produced /etc/etc/myfile in the target filesystem instead of /etc/myfile.
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
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>
HOST_SED_BINARY is used 2 times during startup, and is relatively
expensive to run, so make it a simple expanded variable (:=) rather
than a recursively expanded one (=).
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
As noticed by Thomas, we call the UPPERCASE macro a lot, and it slows down
startup quite a bit.
Optimize it by implementing it in make, rather than forking a shell + tr.
The implementation is heavily based on the 'up' macro from gmsl
(http://gmsl.sf.net)
With this in place, startup time is ~5 times lower.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Instead of assuming that mkfontdir and mkfontscale are available on
the development system, use the one installed in $(HOST_DIR).
The FCCACHE variable is removed, because, for some reason, the
installation process of xfonts disables the call to fc-cache when a
DESTDIR is passed. See the definition of XORG_FONT_FCCACHE in
aclocal.m4 in font packages:
AC_DEFUN([XORG_FONT_FCCACHE],[
AC_PATH_PROG(FCCACHE, fc-cache)
FCCACHE_WARN='echo "** Warning: fonts.cache not built" ; echo "** Generate this file manually on host system using fc-cache"'
if test x"$FCCACHE" = x ; then
RUN_FCCACHE="${FCCACHE_WARN}"
else
RUN_FCCACHE='@(if test -z "$(DESTDIR)"; then echo $(FCCACHE) $(fontdir); $(FCCACHE) $(fontdir); else'
RUN_FCCACHE="${RUN_FCCACHE} ${FCCACHE_WARN} ; fi)"
fi
AC_SUBST([RUN_FCCACHE])
])
In addition to this, we update the font dependencies to include
font-utils for the host, mkfontdir for the host, mkfontscale for the
host and bdftopcf for the host.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Now that xapp_bdftopcf is enabled on the host, we also need its
dependencies to be available for the host. The dependency of
host-xapp_bdftopcf is host-xlib_libXfont, which itself depends on a
bunch of other packages. Some of them were already available for the
host, some not (xfont_encodings, xlib_xtrans, xproto_fontcacheproto,
xproto_fontsproto) and are therefore added by this patch.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Compiling xfonts require having bdftopcf installed on the
host. Therefore, enable host support for this package.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
When compiling xfonts, host utilities like bdftopcf or ucs2any, part
of xfont_font-util are needed. Until now, xfont_font-util was
installing ugly symbolic links, assuming that these tools were
available on the development machine.
This patch enables the host package for xfont_font-util, removes the
post-install.sh script, and keeps only the useful part of this script
in a post install hook.
host-xfont_font-util will be used later by xfont packages.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
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>
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>
On my target rootfs it is installed documentation for:
atk, cairo, gdk, gdk-pixbuf, gio, glib, gobject, gtk, pango
It ocupies 34M of space. Configure option --disable-gtk-doc doesn't
prevent installation of it. So we should remove them manually if
documentation is disabled.
[Peter: also remove manual rm's from hal/libxml2/libglade]
Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Closes#1525
Kconfig selects are not recursive, so ensure we select the dependencies
of our dependencies as well.
Cleanup target installation:
- Remove tasks handled by the generic post-build cleanup
- Hal doesn't install etc/rc.d, so don't try to delete it
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Fix a few typos/mistakes introduced in commit ea448fe:
- bzip2 soname is not the same as package version
- It is PKG_INSTALL_STAGING, not PKG_STAGING_INSTALL
- Typo: BZIP2_INSTALL_TARGET_CMDS, not B2IP_INSTALL_TARGET_CMDS
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
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>
Also convert to generic package infrastructure
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>
It got broken by the introduction of the new autotools infrastructure
based on the generic infrastructure.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
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>
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>
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>
When FOO_LIBTOOL_PATCH is defined, assume that the same value should
be used for HOST_FOO_LIBTOOL_PATCH.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
OpenSSL is not using the autotools as its build system. Therefore, we
must use the generic infrastructure instead of the autotools one.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Do not build against libgcrypt on the host, since we don't build
libgcrypt ourself, and it might fail even when libgcrypt is installed
on the host:
...configure...
checking for libgcrypt-config... /usr/bin/libgcrypt-config
Crypto extensions will be available.
...build...
gcc: /usr/lib/libgcrypt.so: No such file or directory
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The autoreconf check was incorrect, missing a $ sign to properly
reference a package-specific variable. There was no visible effect
until now since :
* The existing syntax allowed to access the value defined in the
package specific .mk file, so when AUTORECONF was set to YES by a
package, it was working.
* The default value in Makefile.autotools.in was NO. In fact, when a
package .mkf file wasn't defining the AUTORECONF variable, the
Makefile.autotools.in test was testing the empty string against
'YES', which was false, leading to the AUTORECONF not being done,
which was the desired effect.
However, in a later patch, we intend to change this default value.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
install -D needs the destination filename, not just it's directory,
otherwise we end up with a pkgconfig file instead.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
autoheader is used by autoreconf, therefor we need to give the right
path to this tools for host/target autoreconfiguration.
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>
Closes#803
Based on initial patch by rvpaasen@t3i.nl
[Peter: lua/luac needs liblua.so.* on target]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
[Peter: XF86DRIPROTO should only be selected if mesa is enabled]
Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
While at it convert spaces to TABs
Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
These packages have buggy configure script. It adds -L/lib flag
for linker and thus wrong libraries are linked in.
Workaround this issue by setting expat=yes in configure
environment.
Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Closes#1321
[Peter: Rework patch to make it apply to git]
Signed-off-by: Grant Edwards <grant.b.edwards@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Fixes error: "open with O_CREAT in second argument needs 3 arguments".
Original patch: svn://svn.berlios.de/tslib/trunk/tslib r72.
[Peter: pull original patch for proper attribution]
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
As discussed on the list, don't want to have to change the Config.in
file when we bump the version of a package
Signed-off-by: Will Wagner <will_wagner@carallon.com>
Acked-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Will Wagner <will_wagner@carallon.com>
Acked-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
[Peter: remove select from xserver Config.in]
Signed-off-by: Will Wagner <will_wagner@carallon.com>
Acked-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
[Peter: also remove selects from affected Config.in's]
Signed-off-by: Will Wagner <will_wagner@carallon.com>
Acked-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Will Wagner <will_wagner@carallon.com>
Acked-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Later version of xserver no longer need configure hack to say where
mesa3d is located.
Signed-off-by: Will Wagner <will_wagner@carallon.com>
Acked-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Commit 9277cb760a added support
for mtdinfo to mtd.mk but missed corresponding Config.in stuff.
Signed-off-by: Michael Roth <mroth@nessie.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The installation procedure of cramfs was broken when
$(HOST_DIR)/usr/bin didn't exist (i.e, cramfsck was installed as
$(HOST_DIR)/usr/bin directly). Use install -D with a proper
destination argument to make it work.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
When compiling Busybox, according to readelf -A, all object files were
properly compiled according to the select architecture (-march=armv4t
for example), but the final busybox binary could be of a different
architecture (ARMv5t even if ARMv4t was selected).
This patch changes the way we configure/compile Busybox so that our
CFLAGS aren't anymore passed through the make EXTRA_CFLAGS variable,
but through the .config CONFIG_EXTRA_CFLAGS variable. Unfortunately,
those variables don't have exactly the same semantic for the Busybox
build system.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
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>
Also cleanup autotools symbols and add libatomic_ops dependency
for Intel part.
Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
These options are part of the default set of options passed to
./configure by the AUTOTARGETS infrastructure.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since the introduction of the AUTOTARGETS infrastructure, the dummy
example is no longer correct. Moreover, the documentation now contains
extensive details about how new packages should be added, either using
the GENTARGETS or the AUTOTARGETS infrastructures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Bumping the version from 2.5.9 to 2.6 allows to avoid adding a patch
(merged upstream) to fix patch's Makefile install target.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since BR2_RECENT was enabled by default, we do not want entries marked
BR2_RECENT (and thus appearing by default in Buildroot) to disappear.
Therefore, all the entries marked BR2_RECENT are converted as
non-deprecated. We can later decide, on a per-entry basis, to add
BR2_DEPRECATED to some of them. But at least, this commit doesn't
change the default current behaviour of Buildroot.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
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>
It seems that there was an intention to add BR2_ENABLE_OPENMP someday,
but it was in June 2007 (commit
c81807a9d7) and since then, nothing
occured. Therefore, get rid of this code, and just pass
--disable-openmp to gettext to keep the current behaviour.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
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>
Since the documentation cleanup is done by the main Makefile in a
global way, there's no need to do that on a per-package basis in the
generic package infrastructure.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The cleanup of $(TARGET_DIR)/usr/share/man, $(TARGET_DIR)/usr/man,
$(TARGET_DIR)/usr/share/info, $(TARGET_DIR)/usr/info,
$(TARGET_DIR)/usr/share/doc and $(TARGET_DIR)/usr/doc is already done
globally in the main Makefile. Therefore, there's no need to handle
that on a per-package basis.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Remove the BR2_UPDATE_CONFIG option which allowed to globally
enable/disable the replacement of config.{guess,sub} for
autotools-based packages. Doing it unconditionnally just works.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This option is barely used, no-one is maintaining it or extending
it. So let's remove it.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Add support for the old squashfs 3.x tools, so that squashfs 3.x root
filesystems can be generated.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
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>
Note that we loose the ability to use a lzma command available on the
host and we now always build your own if a package needs it.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Only the host variant is supported, which explains why there is no
Config.in file. Will be used by the filesystem generation code.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Host package is needed to get libuuid installed for the host, needed
to build the mtd utils for the host.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Supported both for the target and the host. Will be used by the root
filesystem generation code, thanks to genisoimage.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Only compilation for the host is supported, why explains why we don't
have a Config.in and the corresponding BR2_PACKAGE_CMAKE option.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Needed as a dependency of cdrkit, which contains genisomage, useful
for generating ISO9660 filesystem images.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>