From f03faaf3ab5bbd5f375c47c3cf12f1254d1237bd Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 17:09:05 +0100 Subject: [PATCH 01/40] automake: add build dependency on host-autoconf automake for the target fails to build if autoconf is not installed on the host: checking whether autoconf is installed... no configure: error: Autoconf 2.58 or better is required. Please make sure it is installed and in your PATH. make: *** [/home/test/brbuilttest/build/automake-1.10/.stamp_configured] Error 1 Signed-off-by: Thomas Petazzoni --- package/automake/automake.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/automake/automake.mk b/package/automake/automake.mk index eb3b3755ef..db935a4661 100644 --- a/package/automake/automake.mk +++ b/package/automake/automake.mk @@ -11,7 +11,7 @@ ifeq ($(BR2_ENABLE_DEBUG),y) # install-exec doesn't install aclocal stuff AUTOMAKE_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install endif -AUTOMAKE_DEPENDENCIES = autoconf microperl +AUTOMAKE_DEPENDENCIES = host-autoconf autoconf microperl HOST_AUTOMAKE_DEPENDENCIES = host-autoconf From 53f670ac06837e0517cffad747435e5d1677d3fa Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 17:13:55 +0100 Subject: [PATCH 02/40] ccache: remove cleanup of documentation The cleanup of documentation is handled in a global way, in the main Makefile. Signed-off-by: Thomas Petazzoni --- toolchain/ccache/ccache.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/toolchain/ccache/ccache.mk b/toolchain/ccache/ccache.mk index c98937d374..8e414b27bf 100644 --- a/toolchain/ccache/ccache.mk +++ b/toolchain/ccache/ccache.mk @@ -163,9 +163,6 @@ $(CCACHE_DIR2)/$(CCACHE_BINARY): $(CCACHE_DIR2)/.configured $(TARGET_DIR)/$(CCACHE_TARGET_BINARY): $(CCACHE_DIR2)/$(CCACHE_BINARY) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(CCACHE_DIR2) install -ifneq ($(BR2_HAVE_MANPAGES),y) - rm -rf $(TARGET_DIR)/usr/man -endif # put a bunch of symlinks into /bin, since that is earlier # in the default PATH than /usr/bin where gcc lives (cd $(TARGET_DIR)/bin; \ From e81149c54301f88ae64bd85caa6d0f29e879d064 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:11:37 +0100 Subject: [PATCH 03/40] libxml2: do not apply libtool patch when compiling for host The libtool patch is not applied when building for the target because it does not apply, so do not attempt to apply it when building for the host. This fixes libxml2 build for the host. Signed-off-by: Thomas Petazzoni --- package/libxml2/libxml2.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/libxml2/libxml2.mk b/package/libxml2/libxml2.mk index e598d36cba..31fdabfa1a 100644 --- a/package/libxml2/libxml2.mk +++ b/package/libxml2/libxml2.mk @@ -28,6 +28,8 @@ HOST_LIBXML2_CONF_OPT = \ --enable-shared --without-debugging --without-python \ --without-threads +HOST_LIBXML2_LIBTOOL_PATCH = NO + $(eval $(call AUTOTARGETS,package,libxml2)) $(eval $(call AUTOTARGETS,package,libxml2,host)) From 73c937229bff334c9e4b88b7cc094ff4e576cdf4 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:12:34 +0100 Subject: [PATCH 04/40] libxslt: enable compilation on host Compiling libxcb (from the X.org stack) requires xsltproc on the host, which is part of libxslt. Signed-off-by: Thomas Petazzoni --- package/libxslt/libxslt.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/package/libxslt/libxslt.mk b/package/libxslt/libxslt.mk index 03c113103c..4bf61b54c5 100644 --- a/package/libxslt/libxslt.mk +++ b/package/libxslt/libxslt.mk @@ -25,7 +25,15 @@ LIBXSLT_CONF_OPT = --with-gnu-ld --enable-shared \ LIBXSLT_DEPENDENCIES = libxml2 $(LIBXSLT_DEPENDENCIES_EXTRA) +HOST_LIBXSLT_CONF_OPT = --enable-shared \ + --without-debugging \ + --without-python \ + --without-threads + +HOST_LIBXSLT_DEPENDENCIES = host-libxml2 + $(eval $(call AUTOTARGETS,package,libxslt)) +$(eval $(call AUTOTARGETS,package,libxslt,host)) $(LIBXSLT_HOOK_POST_INSTALL): $(SED) "s,^prefix=.*,prefix=\'$(STAGING_DIR)/usr\',g" $(STAGING_DIR)/usr/bin/xslt-config From e5d1244a747a3863b9f53c80c3ad3f0d60fbe8cd Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:13:18 +0100 Subject: [PATCH 05/40] libxcb: fix build with Buildroot compiled xsltproc Make sure that libxcb depends on host-xsltproc, since xsltproc is required for the compilation of libxcb. Moreover, remove the XSLTPROC=/usr/bin/xsltproc variable definition, which was assuming that XSLTPROC was installed on the host. xsltproc should just be part of the PATH. Signed-off-by: Thomas Petazzoni --- package/x11r7/libxcb/libxcb.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/x11r7/libxcb/libxcb.mk b/package/x11r7/libxcb/libxcb.mk index b79addd200..19cfc6a129 100644 --- a/package/x11r7/libxcb/libxcb.mk +++ b/package/x11r7/libxcb/libxcb.mk @@ -10,9 +10,9 @@ LIBXCB_SITE = http://xcb.freedesktop.org/dist/ LIBXCB_INSTALL_STAGING = YES LIBXCB_AUTORECONF = NO -LIBXCB_DEPENDENCIES = pthread-stubs xcb-proto xlib_libXdmcp xlib_libXau +LIBXCB_DEPENDENCIES = host-libxslt pthread-stubs xcb-proto xlib_libXdmcp xlib_libXau LIBXCB_CONF_ENV = STAGING_DIR="$(STAGING_DIR)" -LIBXCB_MAKE_OPT = XCBPROTO_XCBINCLUDEDIR=$(STAGING_DIR)/usr/share/xcb XSLTPROC=/usr/bin/xsltproc +LIBXCB_MAKE_OPT = XCBPROTO_XCBINCLUDEDIR=$(STAGING_DIR)/usr/share/xcb $(eval $(call AUTOTARGETS,package/x11r7,libxcb)) From 1786b39f0b85f2efa383ca8714ca88fdecafba84 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:14:56 +0100 Subject: [PATCH 06/40] xapp_mkfontscale: enable compilation for the host and fix deps mkfontscale on the host is required to build xfonts-encoding for the target. We also fix the dependencies. xlib_libX11 is not needed to compile xapp_mkfontscale. However, xproto_xproto is needed. Signed-off-by: Thomas Petazzoni --- package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk b/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk index 05a3f8146c..1cbe0b42aa 100644 --- a/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk +++ b/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk @@ -8,6 +8,8 @@ XAPP_MKFONTSCALE_VERSION = 1.0.5 XAPP_MKFONTSCALE_SOURCE = mkfontscale-$(XAPP_MKFONTSCALE_VERSION).tar.bz2 XAPP_MKFONTSCALE_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_MKFONTSCALE_AUTORECONF = NO -XAPP_MKFONTSCALE_DEPENDENCIES = freetype xlib_libX11 xlib_libfontenc +XAPP_MKFONTSCALE_DEPENDENCIES = zlib freetype xlib_libfontenc xproto_xproto +HOST_XAPP_MKFONTSCALE_DEPENDENCIES = host-zlib host-freetype host-xlib_libfontenc host-xproto_xproto $(eval $(call AUTOTARGETS,package/x11r7,xapp_mkfontscale)) +$(eval $(call AUTOTARGETS,package/x11r7,xapp_mkfontscale,host)) From d61ed6f32207ced6d7afa0d45473b63a0acf248d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:15:46 +0100 Subject: [PATCH 07/40] xfont_encoding: add mkfontscale on the host as dependency mkfontscale on the host is needed to build xfont_encoding, therefore we add host-xapp_mkfontscale as a dependency. Signed-off-by: Thomas Petazzoni --- package/x11r7/xfont_encodings/xfont_encodings.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/package/x11r7/xfont_encodings/xfont_encodings.mk b/package/x11r7/xfont_encodings/xfont_encodings.mk index 74256d1d1a..9097735e84 100644 --- a/package/x11r7/xfont_encodings/xfont_encodings.mk +++ b/package/x11r7/xfont_encodings/xfont_encodings.mk @@ -9,5 +9,6 @@ XFONT_ENCODINGS_SOURCE = encodings-$(XFONT_ENCODINGS_VERSION).tar.bz2 XFONT_ENCODINGS_SITE = http://xorg.freedesktop.org/releases/individual/font XFONT_ENCODINGS_AUTORECONF = NO XFONT_ENCODINGS_MAKE_OPT = +XFONT_ENCODINGS_DEPENDENCIES = host-xapp_mkfontscale $(eval $(call AUTOTARGETS,package/x11r7,xfont_encodings)) From d65e627432af8fce1c41df67ca48ce926b5a7300 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:17:43 +0100 Subject: [PATCH 08/40] xlib_libfontenc: enable compilation on the host xlib_libfontenc is required to build xapp_mkfontscale on the host, which in turn is needed to build font encodings for the target. Signed-off-by: Thomas Petazzoni --- package/x11r7/xlib_libfontenc/xlib_libfontenc.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk b/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk index b03697a8f5..7ab4511663 100644 --- a/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk +++ b/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk @@ -12,4 +12,7 @@ XLIB_LIBFONTENC_INSTALL_STAGING = YES XLIB_LIBFONTENC_DEPENDENCIES = zlib xproto_xproto XLIB_LIBFONTENC_CONF_OPT = --enable-shared --disable-static +HOST_XLIB_LIBFONTENC_DEPENDENCIES = host-zlib host-xproto_xproto + $(eval $(call AUTOTARGETS,package/x11r7,xlib_libfontenc)) +$(eval $(call AUTOTARGETS,package/x11r7,xlib_libfontenc,host)) From a55cd51b855fc2749bc7db972ae353177eaa7d79 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:19:06 +0100 Subject: [PATCH 09/40] zlib: enable compilation on the host zlib is needed on the host, to build xlib_libfontenc on the host, to build xapp_mkfontscale on the host, in order to finally build xfonts encodings on the target. Signed-off-by: Thomas Petazzoni --- package/zlib/zlib.mk | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/package/zlib/zlib.mk b/package/zlib/zlib.mk index 743247309a..3144ae9fa1 100644 --- a/package/zlib/zlib.mk +++ b/package/zlib/zlib.mk @@ -30,10 +30,26 @@ define ZLIB_CONFIGURE_CMDS ) endef +define HOST_ZLIB_CONFIGURE_CMDS + (cd $(@D); rm -rf config.cache; \ + $(HOST_CONFIGURE_ARGS) \ + $(HOST_CONFIGURE_OPTS) \ + CFLAGS="$(ZLIB_PIC)" \ + ./configure \ + $(ZLIB_SHARED) \ + --prefix="$(HOST_DIR)/usr" \ + --sysconfdir="$(HOST_DIR)/etc" \ + ) +endef + define ZLIB_BUILD_CMDS $(MAKE) -C $(@D) all libz.a endef +define HOST_ZLIB_BUILD_CMDS + $(MAKE) -C $(@D) all libz.a +endef + define ZLIB_INSTALL_STAGING_CMDS $(INSTALL) -D $(@D)/libz.a $(STAGING_DIR)/usr/lib/libz.a $(INSTALL) -D $(@D)/zlib.h $(STAGING_DIR)/usr/include/zlib.h @@ -41,6 +57,13 @@ define ZLIB_INSTALL_STAGING_CMDS cp -dpf $(@D)/libz.so* $(STAGING_DIR)/usr/lib/ endef +define HOST_ZLIB_INSTALL_CMDS + $(INSTALL) -D $(@D)/libz.a $(HOST_DIR)/usr/lib/libz.a + $(INSTALL) -D $(@D)/zlib.h $(HOST_DIR)/usr/include/zlib.h + $(INSTALL) $(@D)/zconf.h $(HOST_DIR)/usr/include/ + cp -dpf $(@D)/libz.so* $(HOST_DIR)/usr/lib/ +endef + ifeq ($(BR2_HAVE_DEVFILES),y) define ZLIB_INSTALL_TARGET_HEADERS $(INSTALL) -D $(@D)/zlib.h $(TARGET_DIR)/usr/include/zlib.h @@ -57,3 +80,5 @@ define ZLIB_INSTALL_TARGET_CMDS endef $(eval $(call GENTARGETS,package,zlib)) +$(eval $(call GENTARGETS,package,zlib,host)) + From abc1479ea795a18a743ea513e33179058bdfe6b6 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:20:14 +0100 Subject: [PATCH 10/40] xfont_font-util: convert to the autotools infrastructure Signed-off-by: Thomas Petazzoni --- .../x11r7/xfont_font-util/xfont_font-util.mk | 74 ++----------------- 1 file changed, 6 insertions(+), 68 deletions(-) diff --git a/package/x11r7/xfont_font-util/xfont_font-util.mk b/package/x11r7/xfont_font-util/xfont_font-util.mk index 38e7e80a73..88dce3843b 100644 --- a/package/x11r7/xfont_font-util/xfont_font-util.mk +++ b/package/x11r7/xfont_font-util/xfont_font-util.mk @@ -5,76 +5,14 @@ ################################################################################ XFONT_FONT_UTIL_VERSION = 1.0.1 -XFONT_FONT_UTIL_NAME = font-util-$(XFONT_FONT_UTIL_VERSION) XFONT_FONT_UTIL_SOURCE = font-util-$(XFONT_FONT_UTIL_VERSION).tar.bz2 XFONT_FONT_UTIL_SITE = http://xorg.freedesktop.org/releases/individual/font -XFONT_FONT_UTIL_AUTORECONF = NO -XFONT_FONT_UTIL_DIR=$(BUILD_DIR)/$(XFONT_FONT_UTIL_NAME) -XFONT_FONT_UTIL_CAT:=$(BZCAT) +XFONT_FONT_UTIL_DEPENDENCIES = host-pkg-config -$(DL_DIR)/$(XFONT_FONT_UTIL_SOURCE): - $(call DOWNLOAD,$(XFONT_FONT_UTIL_SITE),$(XFONT_FONT_UTIL_SOURCE)) +define XFONT_FONT_UTIL_POST_INSTALL_FIXES + $(@D)/post-install.sh $(STAGING_DIR) +endef -xfont_font-util-source: $(DL_DIR)/$(XFONT_FONT_UTIL_SOURCE) - -$(XFONT_FONT_UTIL_DIR)/.unpacked: $(DL_DIR)/$(XFONT_FONT_UTIL_SOURCE) - $(XFONT_FONT_UTIL_CAT) $(DL_DIR)/$(XFONT_FONT_UTIL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - - toolchain/patch-kernel.sh $(XFONT_FONT_UTIL_DIR) package/x11r7/xfont_font-util/ \*.patch - $(CONFIG_UPDATE) $(XFONT_FONT_UTIL_DIR) - touch $@ - -$(XFONT_FONT_UTIL_DIR)/.configured: $(XFONT_FONT_UTIL_DIR)/.unpacked - (cd $(XFONT_FONT_UTIL_DIR) && rm -rf config.cache) - (cd $(XFONT_FONT_UTIL_DIR) && \ - $(TARGET_CONFIGURE_OPTS) \ - $(TARGET_CONFIGURE_ARGS) \ - ./configure $(QUIET) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --prefix=/usr \ - --exec-prefix=/usr \ - --bindir=/usr/bin \ - --sbindir=/usr/sbin \ - --libdir=/usr/lib \ - --libexecdir=/usr/lib \ - --sysconfdir=/etc \ - --datadir=/usr/share \ - --localstatedir=/var \ - --includedir=/usr/include \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - ) - touch $@ - -$(XFONT_FONT_UTIL_DIR)/.compiled: $(XFONT_FONT_UTIL_DIR)/.configured - $(MAKE) -C $(XFONT_FONT_UTIL_DIR) - touch $@ - -$(XFONT_FONT_UTIL_DIR)/.installed: $(XFONT_FONT_UTIL_DIR)/.compiled - $(MAKE) DESTDIR=$(STAGING_DIR) -C $(XFONT_FONT_UTIL_DIR) install - touch $@ - -$(XFONT_FONT_UTIL_DIR)/.hacked: $(XFONT_FONT_UTIL_DIR)/.installed - ( package/x11r7/xfont_font-util/post-install.sh $(STAGING_DIR) ) - touch $@ - -xfont_font-util: host-pkg-config $(XFONT_FONT_UTIL_DIR)/.hacked - -xfont_font-util-unpacked: $(XFONT_FONT_UTIL_DIR)/.unpacked - -xfont_font-util-clean: - -$(MAKE) -C $(XFONT_FONT_UTIL_DIR) clean - -xfont_font-util-dirclean: - rm -rf $(XFONT_FONT_UTIL_DIR) - -############################################################# -# -# Toplevel Makefile options -# -############################################################# -ifeq ($(BR2_PACKAGE_XFONT_FONT_UTIL),y) -TARGETS+=xfont_font-util -endif +XFONT_FONT_UTIL_POST_INSTALL_STAGING_HOOKS += XFONT_FONT_UTIL_POST_INSTALL_FIXES +$(eval $(call AUTOTARGETS,package/x11r7,xfont_font-util)) \ No newline at end of file From c1b6242fdcf2cff7ebf09fec4cc1be58963e8427 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:20:38 +0100 Subject: [PATCH 11/40] 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 --- package/Makefile.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/Makefile.in b/package/Makefile.in index bc0ac7ccd3..043ef3e46d 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -236,7 +236,8 @@ TARGET_CONFIGURE_ENV=\ LDFLAGS="$(TARGET_LDFLAGS)" \ FCFLAGS="$(TARGET_FCFLAGS)" \ -TARGET_MAKE_ENV=PATH=$(TARGET_PATH) +TARGET_MAKE_ENV=PATH=$(TARGET_PATH) \ + LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:$(LD_LIBRARY_PATH)" HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \ AR="$(HOSTAR)" \ @@ -277,6 +278,7 @@ HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \ PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" HOST_MAKE_ENV=PATH=$(HOST_PATH) \ + LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:$(LD_LIBRARY_PATH)" \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" From 988b4d8d1cce4187bb0600cebd31dcff7c726056 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:23:04 +0100 Subject: [PATCH 12/40] libpng: enable compilation on the host libpng is needed on the host to build ace_of_penguins. Signed-off-by: Thomas Petazzoni --- package/libpng/libpng.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package/libpng/libpng.mk b/package/libpng/libpng.mk index 1297c89ee8..86e943caa5 100644 --- a/package/libpng/libpng.mk +++ b/package/libpng/libpng.mk @@ -11,7 +11,12 @@ LIBPNG_INSTALL_STAGING = YES LIBPNG_CONF_OPT = --without-libpng-compat LIBPNG_DEPENDENCIES = host-pkg-config zlib +HOST_LIBPNG_LIBTOOL_PATCH = NO +HOST_LIBPNG_CONF_OPT = --without-libpng-compat +HOST_LIBPNG_DEPENDENCIES = host-pkg-config host-zlib + $(eval $(call AUTOTARGETS,package,libpng)) +$(eval $(call AUTOTARGETS,package,libpng,host)) $(LIBPNG_HOOK_POST_INSTALL): $(SED) "s,^prefix=.*,prefix=\'$(STAGING_DIR)/usr\',g" \ From 3422dc5efe3557f32ea9f71ec2e27c512288015b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 18:23:35 +0100 Subject: [PATCH 13/40] ace_of_penguins: add dependency on host-libpng libpng is needed on the host to build the make-imglib utility, built during the compilation of ace_of_penguins for the target. Signed-off-by: Thomas Petazzoni --- package/games/ace_of_penguins/ace_of_penguins.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/games/ace_of_penguins/ace_of_penguins.mk b/package/games/ace_of_penguins/ace_of_penguins.mk index fe3e20481a..a106d14166 100644 --- a/package/games/ace_of_penguins/ace_of_penguins.mk +++ b/package/games/ace_of_penguins/ace_of_penguins.mk @@ -10,6 +10,6 @@ ACE_OF_PENGUINS_AUTORECONF = YES ACE_OF_PENGUINS_STAGING = NO ACE_OF_PENGUINS_TARGET = YES -ACE_OF_PENGUINS_DEPENDENCIES = libpng xserver_xorg-server xlib_libXpm +ACE_OF_PENGUINS_DEPENDENCIES = libpng host-libpng xserver_xorg-server xlib_libXpm $(eval $(call AUTOTARGETS,package/games,ace_of_penguins)) From 7452b4edfa1c8385d602950bcaeb2cb3afdfdf3c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 19:21:37 +0100 Subject: [PATCH 14/40] ace_of_penguins: mark as BROKEN This package is BROKEN in the way it compiles make-imglib and text2c for the host while being in cross-compiled mode. It does not use CC_FOR_BUILD and CFLAGS_FOR_BUILD as it should. No upstream release has been made since 2001 and since it is a relatively useless package, I don't think it's worth the trouble to sanitize its build system. Signed-off-by: Thomas Petazzoni --- package/games/ace_of_penguins/Config.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package/games/ace_of_penguins/Config.in b/package/games/ace_of_penguins/Config.in index 1d5a367741..b3015c6435 100644 --- a/package/games/ace_of_penguins/Config.in +++ b/package/games/ace_of_penguins/Config.in @@ -3,6 +3,9 @@ config BR2_PACKAGE_ACE_OF_PENGUINS select BR2_PACKAGE_LIBPNG depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_XLIB_LIBXPM + # Build system is broken for tools that need to be compiled + # on the host + depends on BROKEN help The Ace of Penguins is a set of Unix/X solitaire games based on the ones available for Windows but with a number of From a47ce9d3df148cbfbd38355c80624fb5abc78a77 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 20 Feb 2010 19:31:39 +0100 Subject: [PATCH 15/40] dependencies: add gzip and bzip2 as base dependencies They are needed to uncompress the tarballs we download. bzip2, for instance, is not necessarly installed by default on basic Debian systems. Signed-off-by: Thomas Petazzoni --- toolchain/dependencies/dependencies.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh index f5b26214d4..d0190fd4de 100755 --- a/toolchain/dependencies/dependencies.sh +++ b/toolchain/dependencies/dependencies.sh @@ -122,7 +122,7 @@ if ! $SHELL --version 2>&1 | grep -q '^GNU bash'; then fi; # Check that a few mandatory programs are installed -for prog in awk bison flex msgfmt makeinfo patch ; do +for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 ; do if ! which $prog > /dev/null ; then /bin/echo -e "\nYou must install '$prog' on your build machine"; if test $prog = "makeinfo" ; then From ce1f459b8bb0654a717124a1284b7204616ca199 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:11:00 +0100 Subject: [PATCH 16/40] libgtk2: break the dependency of host-libgtk2 on host-cairo Making a full build of libgtk2 for the host is a pain, since it requires host-cairo, which it turns requires a full X.org stack to be compiled for the host. Moreover, building libgtk2 for the host completely is useless: we only need gdk-pixbuf-csource and gtk-update-icon-cache. In this patch, we add a new host-libgtk2-2.12.12-reduce-dependencies.patch, that is only applied to libgtk2 when being built for the host. This patch removes a lot of dependencies in configure.in, which allows to: * run make and make install in gdk-pixbuf/, which compiles and installs the gdk-pixbuf library and the gdk-pixbuf-csource utility * run make gtk-update-icon-cache in gtk/, which compiles the gtk-update-icon-cache utility, which is then installed manually The compilation and installation steps of libgtk2 for the host are therefore overriden, so as to not use the default behaviour, which would attempt to build the full gtk library. Signed-off-by: Thomas Petazzoni --- ...-libgtk2-2.12.12-reduce-dependencies.patch | 200 ++++++++++++++++++ package/libgtk2/libgtk2.mk | 29 ++- 2 files changed, 226 insertions(+), 3 deletions(-) create mode 100644 package/libgtk2/host-libgtk2-2.12.12-reduce-dependencies.patch diff --git a/package/libgtk2/host-libgtk2-2.12.12-reduce-dependencies.patch b/package/libgtk2/host-libgtk2-2.12.12-reduce-dependencies.patch new file mode 100644 index 0000000000..f0ac6bfa17 --- /dev/null +++ b/package/libgtk2/host-libgtk2-2.12.12-reduce-dependencies.patch @@ -0,0 +1,200 @@ +Index: gtk+-2.12.12/configure.in +=================================================================== +--- gtk+-2.12.12.orig/configure.in 2008-09-13 02:01:07.000000000 +0200 ++++ gtk+-2.12.12/configure.in 2010-02-21 10:42:40.000000000 +0100 +@@ -32,9 +32,6 @@ + + # required versions of other packages + m4_define([glib_required_version], [2.13.5]) +-m4_define([pango_required_version], [1.17.3]) +-m4_define([atk_required_version], [1.9.0]) +-m4_define([cairo_required_version], [1.2.0]) + + + AC_INIT([gtk+], [gtk_version], +@@ -239,12 +236,12 @@ + gdktarget=x11 + fi + +-AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target], ++AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb/none]] select non-default GDK target], + gdktarget=$with_gdktarget) + + AC_SUBST(gdktarget) + case $gdktarget in +- x11|win32|quartz|directfb) ;; ++ x11|win32|quartz|directfb|none) ;; + *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);; + esac + +@@ -349,10 +346,7 @@ + ## the version requirements since those make the module lists + ## annoying to construct + PKG_CHECK_MODULES(BASE_DEPENDENCIES, +- [glib-2.0 >= glib_required_version dnl +- atk >= atk_required_version dnl +- pango >= pango_required_version dnl +- cairo >= cairo_required_version]) ++ [glib-2.0 >= glib_required_version]) + + if test "$os_win32" != yes; then + # libtool option to control which symbols are exported +@@ -1061,7 +1055,7 @@ + GDK_PIXBUF_XLIB_EXTRA_CFLAGS= + GDK_PIXBUF_XLIB_EXTRA_LIBS= + +-X_PACKAGES=fontconfig ++X_PACKAGES= + GDK_EXTRA_LIBS="$GDK_WLIBS" + GDK_EXTRA_CFLAGS= + +@@ -1070,14 +1064,6 @@ + GTK_DEP_LIBS_FOR_X= + + if test "x$gdktarget" = "xx11"; then +- # +- # We use fontconfig very peripherally when decoding the default +- # settings. +- # +- if $PKG_CONFIG --exists fontconfig; then : ; else +- AC_MSG_ERROR([ +-*** fontconfig (http://www.fontconfig.org) is required by the X11 backend.]) +- fi + + # + # Check for basic X packages; we use pkg-config if available +@@ -1124,16 +1110,6 @@ + gtk_save_LIBS=$LIBS + LIBS="$x_libs_for_checks $LIBS" + +- # Sanity check for the X11 and Xext libraries. While everything we need from +- # Xext is optional, the chances a system has *none* of these things is so +- # small that we just unconditionally require it. +- AC_CHECK_FUNC(XOpenDisplay, :, +- AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.])) +- AC_CHECK_FUNC(XextFindDisplay, :, +- AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.])) +- AC_CHECK_FUNC(XRenderQueryExtension, :, +- AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.])) +- + # Check for xReply + + AC_MSG_CHECKING([if is needed for xReply]) +@@ -1418,48 +1394,6 @@ + AM_CONDITIONAL(USE_DIRECTFB, false) + fi + +- +-# Check for Pango flags +- +-if test "x$gdktarget" = "xwin32"; then +- PANGO_PACKAGES="pangowin32 pangocairo" +-else +- PANGO_PACKAGES="pango pangocairo" +-fi +- +-AC_MSG_CHECKING(Pango flags) +-if $PKG_CONFIG --exists $PANGO_PACKAGES ; then +- PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES` +- PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES` +- +- AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS) +-else +- AC_MSG_ERROR([ +-*** Pango not found. Pango built with Cairo support is required +-*** to build GTK+. See http://www.pango.org for Pango information. +-]) +-fi +- +-CFLAGS="$CFLAGS $PANGO_CFLAGS" +- +-if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then +- : +-else +- gtk_save_LIBS="$LIBS" +- LIBS="$PANGO_LIBS $LIBS" +- AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([ +-*** Can't link to Pango. Pango is required to build +-*** GTK+. For more information see http://www.pango.org])) +- LIBS="$gtk_save_LIBS" +-fi +- +-CFLAGS="$saved_cflags" +-LDFLAGS="$saved_ldflags" +- +-GDK_PACKAGES="$PANGO_PACKAGES" +-if test "x$gdktarget" = "xx11"; then +- GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES" +-fi + GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS" + GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS" + +@@ -1468,7 +1402,7 @@ + # into the pkg-config files + # + if test $enable_explicit_deps != yes ; then +- GDK_PACKAGES="$PANGO_PACKAGES" ++ GDK_PACKAGES= + GDK_EXTRA_LIBS= + fi + +@@ -1479,39 +1413,10 @@ + AC_SUBST(GDK_DEP_CFLAGS) + + +-######################################## +-# Check for Accessibility Toolkit flags +-######################################## +- +-ATK_PACKAGES=atk +-AC_MSG_CHECKING(ATK flags) +-if $PKG_CONFIG --exists $ATK_PACKAGES ; then +- ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES` +- ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES` +- +- AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS) +-else +- AC_MSG_ERROR([ +-*** Accessibility Toolkit not found. Accessibility Toolkit is required +-*** to build GTK+. +-]) +-fi +- +-if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then +- : +-else +- gtk_save_LIBS="$LIBS" +- LIBS="$ATK_LIBS $LIBS" +- AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([ +- *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required +- *** to build GTK+])) +- LIBS="$gtk_save_LIBS" +-fi +- +-GTK_PACKAGES="atk cairo" ++GTK_PACKAGES= + GTK_EXTRA_LIBS= + GTK_EXTRA_CFLAGS= +-GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS" ++GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS" + GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS" + + if test x"$os_win32" = xyes; then +@@ -1601,17 +1506,6 @@ + + gtk_save_cppflags="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS" +- +-AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([ +-*** Can't find cairo-pdf.h. You must build Cairo with the pdf +-*** backend enabled.])) +- +-if test "$os_win32" != "yes"; then +- AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([ +-*** Can't find cairo-ps.h. You must build Cairo with the +-*** postscript backend enabled.])) +-fi +- + CPPFLAGS="$gtk_save_cppflags" + + diff --git a/package/libgtk2/libgtk2.mk b/package/libgtk2/libgtk2.mk index 626b2da3fa..cc62c73ca3 100644 --- a/package/libgtk2/libgtk2.mk +++ b/package/libgtk2/libgtk2.mk @@ -119,17 +119,40 @@ else LIBGTK2_CONF_OPT += --disable-cups endif -HOST_LIBGTK2_DEPENDENCIES = host-cairo host-libglib2 host-pango host-atk +# We do not build a full version of libgtk2 for the host, because that +# requires compiling Cairo, Pango, ATK and X.org for the +# host. Therefore, we patch it to remove dependencies, and we hack the +# build to only build gdk-pixbuf-from-source and +# gtk-update-icon-cache, which are the host tools needed to build Gtk +# for the target. + +HOST_LIBGTK2_DEPENDENCIES = host-libglib2 +HOST_LIBGTK2_AUTORECONF = YES HOST_LIBGTK2_CONF_OPT = \ --disable-static \ --disable-glibtest \ --without-libtiff \ --without-libjpeg \ - --with-x \ - --with-gdktarget=x11 \ + --with-gdktarget=none \ --disable-cups \ --disable-debug +define HOST_LIBGTK2_PATCH_REDUCE_DEPENDENCIES_HOOK + toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME) host-*.patch +endef + +HOST_LIBGTK2_POST_PATCH_HOOKS += HOST_LIBGTK2_PATCH_REDUCE_DEPENDENCIES_HOOK + +define HOST_LIBGTK2_BUILD_CMDS + $(HOST_MAKE_ENV) make -C $(@D)/gdk-pixbuf + $(HOST_MAKE_ENV) make -C $(@D)/gtk gtk-update-icon-cache +endef + +define HOST_LIBGTK2_INSTALL_CMDS + $(HOST_MAKE_ENV) make -C $(@D)/gdk-pixbuf install + cp $(@D)/gtk/gtk-update-icon-cache $(HOST_DIR)/usr/bin +endef + $(eval $(call AUTOTARGETS,package,libgtk2)) $(eval $(call AUTOTARGETS,package,libgtk2,host)) From c13460f769bb4fe88e23a8070b00bab46005cbf2 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:15:22 +0100 Subject: [PATCH 17/40] libxml-parser-perl: new package This Perl module is needed to build intltool, which in turn is needed to build several of our packages. We assume that Perl is installed on the host. Only the host variant of this package has been tested and is used. The code for the target variant (what to do at the configure, build and install steps) isn't implemented, but the GENTARGETS call for the target is mandatory, due to limitations of the Makefile.package.in infrastructure (if one wants the host package to be implemented, then the target package *must* exist). This limitation will be removed after 2010.02. Signed-off-by: Thomas Petazzoni --- package/Config.in | 1 + package/libxml-parser-perl/Config.in | 8 +++++ .../libxml-parser-perl/libxml-parser-perl.mk | 34 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 package/libxml-parser-perl/Config.in create mode 100644 package/libxml-parser-perl/libxml-parser-perl.mk diff --git a/package/Config.in b/package/Config.in index 5ddd63c976..00f3401aea 100644 --- a/package/Config.in +++ b/package/Config.in @@ -412,6 +412,7 @@ source "package/ezxml/Config.in" source "package/libxml2/Config.in" source "package/libxslt/Config.in" source "package/xerces/Config.in" +source "package/libxml-parser-perl/Config.in" endmenu # java support diff --git a/package/libxml-parser-perl/Config.in b/package/libxml-parser-perl/Config.in new file mode 100644 index 0000000000..d20a401d86 --- /dev/null +++ b/package/libxml-parser-perl/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_LIBXML_PARSER_PERL + bool "libxml-parser-perl" + select BR2_PACKAGE_EXPAT + help + The Perl XML::Parser module. + + http://www.cpan.org/modules/by-module/XML/ + diff --git a/package/libxml-parser-perl/libxml-parser-perl.mk b/package/libxml-parser-perl/libxml-parser-perl.mk new file mode 100644 index 0000000000..52d89d5816 --- /dev/null +++ b/package/libxml-parser-perl/libxml-parser-perl.mk @@ -0,0 +1,34 @@ +############################################################# +# +# libxml-parser-perl +# +############################################################# +LIBXML_PARSER_PERL_VERSION:=2.36 +LIBXML_PARSER_PERL_SOURCE:=XML-Parser-$(LIBXML_PARSER_PERL_VERSION).tar.gz +LIBXML_PARSER_PERL_SITE:=http://www.cpan.org/modules/by-module/XML/ + +LIBXML_PARSER_PERL_DEPENDENCIES = expat +HOST_LIBXML_PARSER_PERL_DEPENDENCIES = host-expat + +define HOST_LIBXML_PARSER_PERL_CONFIGURE_CMDS + (cd $(@D) ; \ + perl Makefile.PL \ + PREFIX=$(HOST_DIR)/usr \ + EXPATLIBPATH=$(HOST_DIR)/usr/lib \ + EXPATINCPATH=$(HOST_DIR)/usr/include \ + INSTALLDIRS=site \ + INSTALLSITELIB=$(HOST_DIR)/usr/lib/perl \ + ) +endef + +define HOST_LIBXML_PARSER_PERL_BUILD_CMDS + $(HOST_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define HOST_LIBXML_PARSER_PERL_INSTALL_CMDS + $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install +endef + +$(eval $(call GENTARGETS,package,libxml-parser-perl)) +$(eval $(call GENTARGETS,package,libxml-parser-perl,host)) + From 405a7ecaa19d229e144062a338d5a3b8cd21c96c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:16:28 +0100 Subject: [PATCH 18/40] 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 --- package/Makefile.in | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/package/Makefile.in b/package/Makefile.in index 043ef3e46d..1e412a653d 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -228,6 +228,8 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \ PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \ + PERLLIB="$(HOST_DIR)/usr/lib/perl" \ + LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib" \ STAGING_DIR="$(STAGING_DIR)" TARGET_CONFIGURE_ENV=\ @@ -237,7 +239,8 @@ TARGET_CONFIGURE_ENV=\ FCFLAGS="$(TARGET_FCFLAGS)" \ TARGET_MAKE_ENV=PATH=$(TARGET_PATH) \ - LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:$(LD_LIBRARY_PATH)" + LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:$(LD_LIBRARY_PATH)" \ + PERLLIB="$(HOST_DIR)/usr/lib/perl" HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \ AR="$(HOSTAR)" \ @@ -275,12 +278,14 @@ HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \ ORIGINAL_NM_FOR_TARGET="$(TARGET_NM)" \ ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)" \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ - PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" + PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" \ + PERLLIB="$(HOST_DIR)/usr/lib/perl" HOST_MAKE_ENV=PATH=$(HOST_PATH) \ LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:$(LD_LIBRARY_PATH)" \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ - PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" + PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" \ + PERLLIB="$(HOST_DIR)/usr/lib/perl" ####################################################################### From 570e1b77c285be7b19d0be3dda27853b06b58ae8 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:18:06 +0100 Subject: [PATCH 19/40] intltool: new package This XML internationalization set of tools is required to build several of our packages, and may not be available on the host machine. Only the host variant has been tested. Signed-off-by: Thomas Petazzoni --- package/Config.in | 1 + package/intltool/Config.in | 6 ++++++ package/intltool/intltook.mk | 16 ++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 package/intltool/Config.in create mode 100644 package/intltool/intltook.mk diff --git a/package/Config.in b/package/Config.in index 00f3401aea..37cae2e834 100644 --- a/package/Config.in +++ b/package/Config.in @@ -46,6 +46,7 @@ source "package/pkg-config/Config.in" source "package/readline/Config.in" source "package/valgrind/Config.in" source "package/pcre/Config.in" +source "package/intltool/Config.in" comment "Other stuff" source "package/at/Config.in" diff --git a/package/intltool/Config.in b/package/intltool/Config.in new file mode 100644 index 0000000000..94b34f7c42 --- /dev/null +++ b/package/intltool/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_INTLTOOL + bool "intltool" + help + Utility scripts for internationalizing XML + + http://www.freedesktop.org/wiki/Software/intltool \ No newline at end of file diff --git a/package/intltool/intltook.mk b/package/intltool/intltook.mk new file mode 100644 index 0000000000..746ebb1d5f --- /dev/null +++ b/package/intltool/intltook.mk @@ -0,0 +1,16 @@ +############################################################# +# +# intltool +# +############################################################# +INTLTOOL_VERSION:=0.40.6 +INTLTOOL_SOURCE:=intltool-$(INTLTOOL_VERSION).tar.bz2 +INTLTOOL_SITE:=http://ftp.acc.umu.se/pub/GNOME/sources/intltool/0.40/ + +HOST_INTLTOOL_DEPENDENCIES = host-libxml-parser-perl +HOST_INTLTOOL_CONF_OPT = \ + PERLLIB=$(HOST_DIR)/usr/lib/perl + +$(eval $(call AUTOTARGETS,package,intltool)) +$(eval $(call AUTOTARGETS,package,intltool,host)) + From 496078a0a0530dad1206be6257f1bc91a70b645a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 18:03:41 +0100 Subject: [PATCH 20/40] dependencies: add perl as a mandatory dependency Now that we might happen to build libxml-parser-perl and intltool, Perl becomes a mandatory dependency. This shouldn't be a problem since most distributions install Perl by default anyway. Signed-off-by: Thomas Petazzoni --- toolchain/dependencies/dependencies.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh index d0190fd4de..146e08023d 100755 --- a/toolchain/dependencies/dependencies.sh +++ b/toolchain/dependencies/dependencies.sh @@ -122,7 +122,7 @@ if ! $SHELL --version 2>&1 | grep -q '^GNU bash'; then fi; # Check that a few mandatory programs are installed -for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 ; do +for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl ; do if ! which $prog > /dev/null ; then /bin/echo -e "\nYou must install '$prog' on your build machine"; if test $prog = "makeinfo" ; then From 364555d9fff02e02f96f92f6f8b080663c424c89 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:20:03 +0100 Subject: [PATCH 21/40] gmpc: add dependency on host-intltool Signed-off-by: Thomas Petazzoni --- package/gmpc/gmpc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gmpc/gmpc.mk b/package/gmpc/gmpc.mk index 7110d15bf6..0db89b9028 100644 --- a/package/gmpc/gmpc.mk +++ b/package/gmpc/gmpc.mk @@ -11,7 +11,7 @@ GMPC_CONF_ENV = ac_cv_lib_curl_curl_global_init=yes \ ac_cv_path_GOB2=$(GOB2_HOST_BINARY) GMPC_CONF_OPT = --disable-mmkeys -GMPC_DEPENDENCIES = libglib2 libgtk2 libglade libcurl libmpd host-gob2 +GMPC_DEPENDENCIES = libglib2 libgtk2 libglade libcurl libmpd host-gob2 host-intltool ifeq ($(BR2_PACKAGE_XLIB_LIBSM),y) GMPC_DEPENENCIES += xlib_libSM From 3502bb056f0de1e4eecd7b0de6156daf18a2162c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:20:39 +0100 Subject: [PATCH 22/40] flex: install in the staging directory Flex contains a libfl.a directory, which programs for the target might link against. Therefore, we need to install flex to the staging directory. An example of such a program is gob2, which needs the yywrap() function, which is implemented by libfl. Signed-off-by: Thomas Petazzoni --- package/flex/flex.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/package/flex/flex.mk b/package/flex/flex.mk index fed0d7750b..43e7d5717f 100644 --- a/package/flex/flex.mk +++ b/package/flex/flex.mk @@ -9,6 +9,7 @@ FLEX_SOURCE:=flex_$(FLEX_VERSION).orig.tar.gz FLEX_PATCH:=flex_$(FLEX_VERSION)-$(FLEX_PATCH_VERSION).diff.gz FLEX_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/f/flex FLEX_DIR:=$(BUILD_DIR)/flex-$(FLEX_VERSION) +FLEX_INSTALL_STAGING=YES # lex -> flex define FLEX_INSTALL_LEX From 1844bd894194d44472d7e1f41e3e0f52a6359117 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:21:39 +0100 Subject: [PATCH 23/40] gob2: update dependency on flex gob2 for the target needs both flex on the host (for running the flex program at compile time) and flex on the target (so that it can link against libfl.a). Signed-off-by: Thomas Petazzoni --- package/gob2/Config.in | 1 + package/gob2/gob2.mk | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package/gob2/Config.in b/package/gob2/Config.in index 314a1da7e2..2545bafa62 100644 --- a/package/gob2/Config.in +++ b/package/gob2/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_GOB2 bool "gob2" select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_FLEX + select BR2_PACKAGE_FLEX_LIBFL select BR2_PACKAGE_BISON help GOB (GTK+ Object Builder) is a preprocessor which simplifies diff --git a/package/gob2/gob2.mk b/package/gob2/gob2.mk index cdf7961b13..5d50ed6cb6 100644 --- a/package/gob2/gob2.mk +++ b/package/gob2/gob2.mk @@ -7,7 +7,7 @@ GOB2_VERSION = 2.0.15 GOB2_SOURCE = gob2-$(GOB2_VERSION).tar.gz GOB2_SITE = http://ftp.5z.com/pub/gob/ -GOB2_DEPENDENCIES = libglib2 flex bison host-pkg-config +GOB2_DEPENDENCIES = libglib2 flex bison host-pkg-config host-flex HOST_GOB2_DEPENDENCIES = host-libglib2 From 253f240cc5804bde4fab685cefa1f4479e5c6586 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:22:42 +0100 Subject: [PATCH 24/40] shared-mime-info: run update-mime-database with correct env variables When installing shared-mime-info on the target, we runn update-mime-database, which has been built previously by building and installing shared-mime-info for the host. However, for update-mime-database (host version) to run properly, we must pass the appropriate LD_LIBRARY_PATH variable. We re-use the existing $(HOST_MAKE_ENV) variable to pass all the appropriate variables. Signed-off-by: Thomas Petazzoni --- package/shared-mime-info/shared-mime-info.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/shared-mime-info/shared-mime-info.mk b/package/shared-mime-info/shared-mime-info.mk index cfd3521b04..80b0cccd15 100644 --- a/package/shared-mime-info/shared-mime-info.mk +++ b/package/shared-mime-info/shared-mime-info.mk @@ -29,6 +29,6 @@ SHARED_MIME_INFO_HOST_BINARY:=$(HOST_DIR)/usr/bin/update-mime-database # update the shared-mime-info database in the target $(SHARED_MIME_INFO_HOOK_POST_INSTALL): host-shared-mime-info - $(SHARED_MIME_INFO_HOST_BINARY) $(STAGING_DIR)/usr/share/mime + $(HOST_MAKE_ENV) $(SHARED_MIME_INFO_HOST_BINARY) $(STAGING_DIR)/usr/share/mime $(INSTALL) -D $(STAGING_DIR)/usr/share/mime/mime.cache $(TARGET_DIR)/usr/share/mime/mime.cache touch $@ From cf04b9e0c5f7b55817999a5dd01d7ce740fd3d8e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:35:19 +0100 Subject: [PATCH 25/40] imagemagick: help configure to detect file_offset_bits imagemagick configure script wants to run programs to detect the file_offset_bits, but fails since it is running cross-compile mode. Therefore, we help the configure script by passing the appropriate ac_cv variable. Signed-off-by: Thomas Petazzoni --- package/imagemagick/imagemagick.mk | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/package/imagemagick/imagemagick.mk b/package/imagemagick/imagemagick.mk index 2bcd076cde..e8584306e7 100644 --- a/package/imagemagick/imagemagick.mk +++ b/package/imagemagick/imagemagick.mk @@ -31,6 +31,12 @@ $(IMAGEMAGICK_DIR)/.unpacked: $(DL_DIR)/$(IMAGEMAGICK_SOURCE) $(CONFIG_UPDATE) $(IMAGEMAGICK_DIR)/config touch $@ +ifeq ($(BR2_LARGEFILE),y) +IMAGEMAGICK_CONF_OPTS = ac_cv_sys_file_offset_bits=64 +else +IMAGEMAGICK_CONF_OPTS = ac_cv_sys_file_offset_bits=32 +endif + $(IMAGEMAGICK_DIR)/.configured: $(IMAGEMAGICK_DIR)/.unpacked (cd $(IMAGEMAGICK_DIR); rm -f config.cache; \ $(TARGET_CONFIGURE_OPTS) \ @@ -55,6 +61,7 @@ $(IMAGEMAGICK_DIR)/.configured: $(IMAGEMAGICK_DIR)/.unpacked --without-fpx \ --without-freetype \ --without-x \ + $(IMAGEMAGICK_CONF_OPTS) \ ) touch $@ From b7ea597dd2f3553f2bc44e441011e68f999c7768 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:39:35 +0100 Subject: [PATCH 26/40] imagemagick: use internal libtool For some reason, our imagemagick.mk file calls libtool, but assumes that libtool is available on the host, which may not be true. Therefore, we use ImageMagick's internal libtool, which has been used for compiling/linking all the rest of ImageMagic anyway. Signed-off-by: Thomas Petazzoni --- package/imagemagick/imagemagick.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/imagemagick/imagemagick.mk b/package/imagemagick/imagemagick.mk index e8584306e7..00895f5937 100644 --- a/package/imagemagick/imagemagick.mk +++ b/package/imagemagick/imagemagick.mk @@ -83,8 +83,8 @@ $(IMAGEMAGICK_LIB): $(STAGING_DIR)/usr/lib/libMagickCore.a touch -c $@ $(IMAGEMAGICK_DIR)/.libinstall: $(IMAGEMAGICK_LIB) - libtool --finish $(TARGET_DIR)/usr/lib/ImageMagick-$(IMAGEMAGICK_MAJOR)/modules-Q16/coders - libtool --finish $(TARGET_DIR)/usr/lib/ImageMagick-$(IMAGEMAGICK_MAJOR)/modules-Q16/filters + $(IMAGEMAGICK_DIR)/libtool --finish $(TARGET_DIR)/usr/lib/ImageMagick-$(IMAGEMAGICK_MAJOR)/modules-Q16/coders + $(IMAGEMAGICK_DIR)/libtool --finish $(TARGET_DIR)/usr/lib/ImageMagick-$(IMAGEMAGICK_MAJOR)/modules-Q16/filters touch $@ $(TARGET_DIR)/usr/bin/animate: $(IMAGEMAGICK_LIB) From d5ffabd4c33c7d2a37ca8c7b98601a19286bfe12 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:43:33 +0100 Subject: [PATCH 27/40] iw: give path to pkg-config At install stage, iw needs pkg-config, through the PKG_CONFIG environment variable. Signed-off-by: Thomas Petazzoni --- package/iw/iw.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/package/iw/iw.mk b/package/iw/iw.mk index 2dd1cd4534..89fd6047f0 100644 --- a/package/iw/iw.mk +++ b/package/iw/iw.mk @@ -11,6 +11,7 @@ IW_DEPENDENCIES = libnl IW_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install IW_CONFIG = $(IW_DIR)/.config IW_MAKE_ENV = PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" \ + PKG_CONFIG="$(HOST_DIR)/usr/bin/pkg-config" \ GIT_DIR=$(IW_DIR) $(eval $(call AUTOTARGETS,package,iw)) From fbcedeab9dc3122658af2034d39fbde820c8a8e9 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 13:57:08 +0100 Subject: [PATCH 28/40] kexec: bump version to fix build failure Signed-off-by: Thomas Petazzoni --- package/kexec/kexec.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/kexec/kexec.mk b/package/kexec/kexec.mk index a0fb2fd1f2..4367885171 100644 --- a/package/kexec/kexec.mk +++ b/package/kexec/kexec.mk @@ -3,7 +3,7 @@ # kexec # ############################################################# -KEXEC_VERSION = 2.0.0 +KEXEC_VERSION = 2.0.1 KEXEC_SOURCE = kexec-tools-$(KEXEC_VERSION).tar.bz2 KEXEC_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/horms/kexec-tools/ # no install-strip/install-exec From b5e742a642fc40b802a4d0ec1d6a762a89bee635 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 14:26:02 +0100 Subject: [PATCH 29/40] matchbox: apply libtool patch to matchbox-desktop matchbox-desktop fails to build because it tries to read /usr/lib/libxcb.la, which doesn't exist on a very basic system with no development files instead. The buildroot-libtool.patch must therefore be applied. Unfortunately, matchbox doesn't yet use the autotools infrastructure, so we have to manually apply the patch. Signed-off-by: Thomas Petazzoni --- package/matchbox/matchbox.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/package/matchbox/matchbox.mk b/package/matchbox/matchbox.mk index 06e94cda17..8665d417ba 100644 --- a/package/matchbox/matchbox.mk +++ b/package/matchbox/matchbox.mk @@ -141,6 +141,7 @@ $(MATCHBOX_PL_DIR)/.unpacked: $(DL_DIR)/$(MATCHBOX_PL_SOURCE) $(MATCHBOX_DP_DIR)/.unpacked: $(DL_DIR)/$(MATCHBOX_DP_SOURCE) $(MATCHBOX_CAT) $(DL_DIR)/$(MATCHBOX_DP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - $(SED) 's:mbfolder\.png:mbtasks\.png:g' $(MATCHBOX_DP_DIR)/modules/tasks.c + toolchain/patch-kernel.sh $(MATCHBOX_DP_DIR) package/ buildroot-libtool.patch touch $(MATCHBOX_DP_DIR)/.unpacked $(MATCHBOX_FK_DIR)/.unpacked: $(DL_DIR)/$(MATCHBOX_FK_SOURCE) From ec5ab1dbd7def2276b13800e05cdc248edae6caa Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 15:36:27 +0100 Subject: [PATCH 30/40] matchbox: fix dependency to not always rebuilt libmatchbox Real targets should not depend on phony targets, otherwise they get rebuilt every time. Signed-off-by: Thomas Petazzoni --- package/matchbox/matchbox.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/matchbox/matchbox.mk b/package/matchbox/matchbox.mk index 8665d417ba..4abc9d6251 100644 --- a/package/matchbox/matchbox.mk +++ b/package/matchbox/matchbox.mk @@ -219,7 +219,7 @@ else endif -$(MATCHBOX_LIB_DIR)/.configured: $(MATCHBOX_LIB_DIR)/.unpacked xlib_libXext-install-staging +$(MATCHBOX_LIB_DIR)/.configured: $(MATCHBOX_LIB_DIR)/.unpacked (cd $(MATCHBOX_LIB_DIR); rm -f config.cache; \ $(TARGET_CONFIGURE_OPTS) \ ./configure $(QUIET) \ @@ -610,7 +610,7 @@ $(TARGET_DIR)/usr/bin/$(MATCHBOX_KB_BIN): $(STAGING_DIR)/usr/bin/$(MATCHBOX_KB_B cp -af $(STAGING_DIR)/usr/share/matchbox/matchbox-keyboard $(TARGET_DIR)/usr/share/matchbox/ cp -dpf ./package/matchbox/mb-applet-kbd-wrapper.sh $(TARGET_DIR)/usr/bin/ -matchbox: host-pkg-config expat $(MATCHBOX_WM_DEPS) $(MATCHBOX_SNOTIFY_DEPS) $(MATCHBOX_LIB_DEPS) $(TARGET_DIR)/usr/lib/libmb.so $(TARGET_DIR)/usr/bin/$(MATCHBOX_WM_BIN) +matchbox: host-pkg-config expat xlib_libXext $(MATCHBOX_WM_DEPS) $(MATCHBOX_SNOTIFY_DEPS) $(MATCHBOX_LIB_DEPS) $(TARGET_DIR)/usr/lib/libmb.so $(TARGET_DIR)/usr/bin/$(MATCHBOX_WM_BIN) matchbox-panel: matchbox $(TARGET_DIR)/usr/bin/$(MATCHBOX_PL_BIN) $(TARGET_DIR)/usr/bin/matchbox-session $(MATCHBOX_PANEL_DEPS) From 520dd9fbe5896175285a494aeeabe221bce9db62 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 15:38:02 +0100 Subject: [PATCH 31/40] shared-mime-info: do not depend on phony target in hook Real targets should not depend on phony targets, otherwise they get rebuilt everytime. Signed-off-by: Thomas Petazzoni --- package/shared-mime-info/shared-mime-info.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/shared-mime-info/shared-mime-info.mk b/package/shared-mime-info/shared-mime-info.mk index 80b0cccd15..fe1414257b 100644 --- a/package/shared-mime-info/shared-mime-info.mk +++ b/package/shared-mime-info/shared-mime-info.mk @@ -12,7 +12,7 @@ SHARED_MIME_INFO_INSTALL_TARGET = NO SHARED_MIME_INFO_AUTORECONF = NO SHARED_MIME_INFO_CONF_ENV = XMLLINT=$(HOST_DIR)/usr/bin/xmllint -SHARED_MIME_INFO_DEPENDENCIES = host-pkg-config host-libglib2 host-libxml2 libxml2 libglib2 +SHARED_MIME_INFO_DEPENDENCIES = host-pkg-config host-libglib2 host-libxml2 host-shared-mime-info libxml2 libglib2 SHARED_MIME_INFO_CONF_OPT = --disable-update-mimedb @@ -28,7 +28,7 @@ $(eval $(call AUTOTARGETS,package,shared-mime-info,host)) SHARED_MIME_INFO_HOST_BINARY:=$(HOST_DIR)/usr/bin/update-mime-database # update the shared-mime-info database in the target -$(SHARED_MIME_INFO_HOOK_POST_INSTALL): host-shared-mime-info +$(SHARED_MIME_INFO_HOOK_POST_INSTALL): $(HOST_MAKE_ENV) $(SHARED_MIME_INFO_HOST_BINARY) $(STAGING_DIR)/usr/share/mime $(INSTALL) -D $(STAGING_DIR)/usr/share/mime/mime.cache $(TARGET_DIR)/usr/share/mime/mime.cache touch $@ From e83529882b71cb8a2c6ba2c997308196a2857af0 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 15:50:18 +0100 Subject: [PATCH 32/40] dosfstools: make sure install targets aren't run everytime Adding real targets to $(TARGETS) doesn't work, since they are prefixed __real_tgt by the main Makefile. 'make' then always thinks that these targets aren't up-to-date, and re-generate them every time. Therefore, we switch dosfstools to the more common way of handling packages, with a phony target added to $(TARGETS), this phony target depending on real targets. Signed-off-by: Thomas Petazzoni --- package/dosfstools/dosfstools.mk | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/package/dosfstools/dosfstools.mk b/package/dosfstools/dosfstools.mk index e1e9fe34e3..b826ab183d 100644 --- a/package/dosfstools/dosfstools.mk +++ b/package/dosfstools/dosfstools.mk @@ -32,7 +32,8 @@ $(DOSFSTOOLS_DIR)/.built : $(DOSFSTOOLS_DIR)/.unpacked $(STRIPCMD) $(DOSFSTOOLS_DIR)/$(DOSFSLABEL_BINARY) touch $@ -$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built +$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY): # $(DOSFSTOOLS_DIR)/.built + echo foo cp -a $(DOSFSTOOLS_DIR)/$(MKDOSFS_BINARY) $@ touch -c $@ @@ -44,7 +45,20 @@ $(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built cp -a $(DOSFSTOOLS_DIR)/$(DOSFSLABEL_BINARY) $@ touch -c $@ -dosfstools: $(TARGET_DIR)/$(DOSFSTOOLS_TARGET_BINARY) $(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY) +DOSFSTOOLS= +ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKDOSFS),y) +DOSFSTOOLS+=$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY) +endif + +ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSCK),y) +DOSFSTOOLS+=$(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY) +endif + +ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL),y) +DOSFSTOOLS+=$(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY) +endif + +dosfstools: $(DOSFSTOOLS) dosfstools-clean: rm -f $(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY) @@ -60,14 +74,6 @@ dosfstools-dirclean: # Toplevel Makefile options # ############################################################# -ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKDOSFS),y) -TARGETS+=$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY) -endif - -ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSCK),y) -TARGETS+=$(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY) -endif - -ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL),y) -TARGETS+=$(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY) -endif +ifeq ($(BR2_PACKAGE_DOSFSTOOLS),y) +TARGETS+=dosfstools +endif \ No newline at end of file From 3b5d95be8dfc8a23f4e4619686215a9c99a1a9a6 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 15:55:43 +0100 Subject: [PATCH 33/40] lvm2: prevent dmsetup from being re-installed every time After being copied to target/, touch dmsetup so that its date is newer than the .built stamp file in lvm2 source directory. This prevents make from re-installing dmsetup every time. Signed-off-by: Thomas Petazzoni --- package/lvm2/lvm2.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/lvm2/lvm2.mk b/package/lvm2/lvm2.mk index d190be2f03..bc6f458720 100644 --- a/package/lvm2/lvm2.mk +++ b/package/lvm2/lvm2.mk @@ -86,9 +86,11 @@ $(LVM2_DIR)/.built: $(LVM2_DIR)/.configured $(LVM2_TARGET_SBINS) $(LVM2_TARGET_DMSETUP_SBINS): $(LVM2_DIR)/.built cp -a $(STAGING_DIR)/sbin/$(notdir $@) $@ + touch $@ $(LVM2_TARGET_LIBS): $(LVM2_DIR)/.built cp -a $(STAGING_DIR)/lib/$(notdir $@) $@ + touch $@ ifeq ($(BR2_PACKAGE_LVM2_DMSETUP_ONLY),y) From 1cd56dc514cc4da46cd7abc1782fe258ae1b3dcb Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 16:07:03 +0100 Subject: [PATCH 34/40] libeXosip: do not re-run targets at every invocation of 'make' Make sure that we touch the target so that the target is newer than the .compiled stamp file. Signed-off-by: Thomas Petazzoni --- package/libeXosip2/libeXosip2.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/package/libeXosip2/libeXosip2.mk b/package/libeXosip2/libeXosip2.mk index 09b6022e05..7f282b748d 100644 --- a/package/libeXosip2/libeXosip2.mk +++ b/package/libeXosip2/libeXosip2.mk @@ -43,27 +43,33 @@ $(LIBEXOSIP2_DIR)/.compiled: $(LIBEXOSIP2_DIR)/.configured $(STAGING_DIR)/usr/lib/libeXosip2.so: $(LIBEXOSIP2_DIR)/.compiled cp -dpf $(LIBEXOSIP2_DIR)/src/.libs/libeXosip2.so* $(STAGING_DIR)/usr/lib + touch $@ $(STAGING_DIR)/usr/lib/libeXosip2.a: $(LIBEXOSIP2_DIR)/.compiled cp -dpf $(LIBEXOSIP2_DIR)/src/.libs/libeXosip2.a $(STAGING_DIR)/usr/lib cp -dpf $(LIBEXOSIP2_DIR)/include/*.h $(STAGING_DIR)/usr/include + touch $@ $(STAGING_DIR)/usr/lib/libeXosip2.la: $(LIBEXOSIP2_DIR)/.compiled cp -dpf $(LIBEXOSIP2_DIR)/src/libeXosip2.la $(STAGING_DIR)/usr/lib $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libeXosip2.la + touch $@ $(STAGING_DIR)/usr/bin/sip_reg: $(LIBEXOSIP2_DIR)/.compiled cp -dpf $(LIBEXOSIP2_DIR)/tools/.libs/sip_reg $(STAGING_DIR)/usr/bin + touch $@ $(TARGET_DIR)/usr/lib/libeXosip2.so: $(STAGING_DIR)/usr/lib/libeXosip2.so mkdir -p $(TARGET_DIR)/usr/lib cp -dpf $(STAGING_DIR)/usr/lib/libeXosip2.so* $(TARGET_DIR)/usr/lib/ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libeXosip2.so* + touch $@ $(TARGET_DIR)/usr/bin/sip_reg: $(STAGING_DIR)/usr/bin/sip_reg mkdir -p $(TARGET_DIR)/usr/bin cp -dpf $(STAGING_DIR)/usr/bin/sip_reg $(TARGET_DIR)/usr/bin + touch $@ From 09216ec22b2590b0e5fb5f50ed98bc0f6fd313d5 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 16:25:58 +0100 Subject: [PATCH 35/40] webkit: several build fixes This patch fixes different problems: * The autogen script of Webkit did not find autoconf, automake and aclocal since they are not installed in the host, but in $(HOST_DIR). Therefore we pass HOST_CONFIGURE_OPTS to autogen.sh so that the PATH is correct. * The autogen script was complaining that gtk-doc.make could not be find. As compiling gtk-doc completely is a pain (depends on Docbook), we just include gtk-doc.make into package/webkit/, and copy it to the source directory. * The autogen script was complaining about macros used in gtk-doc.make that did not exist. This is because aclocal was not run with $(STAGING_DIR)/usr/share/aclocal/ in the include path. Therefore, we fix ACLOCAL_FLAGS of Webkit's autogen script before running it. Signed-off-by: Thomas Petazzoni --- package/webkit/gtk-doc.make | 173 ++++++++++++++++++++++++++++++++++++ package/webkit/webkit.mk | 4 +- 2 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 package/webkit/gtk-doc.make diff --git a/package/webkit/gtk-doc.make b/package/webkit/gtk-doc.make new file mode 100644 index 0000000000..354ffb7c66 --- /dev/null +++ b/package/webkit/gtk-doc.make @@ -0,0 +1,173 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +else +GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +EXTRA_DIST = \ + $(content_files) \ + $(HTML_IMAGES) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ + $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) + +if ENABLE_GTK_DOC +all-local: html-build.stamp +else +all-local: +endif + +docs: html-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + @echo 'gtk-doc: Scanning header files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) + if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + else \ + cd $(srcdir) ; \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + @echo 'gtk-doc: Rebuilding template files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +tmpl/*.sgml: + @true + + +#### xml #### + +sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @-chmod -R u+w $(srcdir) + rm -rf $(srcdir)/html + mkdir $(srcdir)/html + cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + @echo 'gtk-doc: Fixing cross-references' + cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + cd $(srcdir) && \ + rm -rf xml $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf xml html + +install-data-local: + -installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + echo '-- Installing $(srcdir)/html/index.sgml' ; \ + $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \ + which gtkdoc-rebase >/dev/null && \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \ + fi + + +uninstall-local: + rm -f $(DESTDIR)$(TARGET_DIR)/* + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: + @echo "*** gtk-doc must be installed and enabled in order to make dist" + @false +endif + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/tmpl + mkdir $(distdir)/xml + mkdir $(distdir)/html + -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl + -cp $(srcdir)/xml/*.xml $(distdir)/xml + cp $(srcdir)/html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/package/webkit/webkit.mk b/package/webkit/webkit.mk index 389a5fc251..2121f4b06d 100644 --- a/package/webkit/webkit.mk +++ b/package/webkit/webkit.mk @@ -25,10 +25,12 @@ endif WEBKIT_CONF_OPT += --disable-video define WEBKIT_AUTOGEN_PATCH +$(SED) 's%ACLOCAL_FLAGS=.*%ACLOCAL_FLAGS="-I autotools -I $(STAGING_DIR)/usr/share/aclocal"%' $(WEBKIT_DIR)/autogen.sh $(SED) 's/AUTOMAKE_FLAGS=.*/AUTOMAKE_FLAGS="--foreign --add-missing --copy"/' $(WEBKIT_DIR)/autogen.sh $(SED) 's/LIBTOOLIZE_FLAGS=.*/LIBTOOLIZE_FLAGS="--force --automake --copy"/' $(WEBKIT_DIR)/autogen.sh +cp package/webkit/gtk-doc.make $(WEBKIT_DIR)/ # Don't run the configure step yet -cd $(WEBKIT_DIR); AUTOGEN_CONFIGURE_ARGS=--version ./autogen.sh +cd $(WEBKIT_DIR); $(HOST_CONFIGURE_OPTS) AUTOGEN_CONFIGURE_ARGS=--version ./autogen.sh endef WEBKIT_POST_EXTRACT_HOOKS += WEBKIT_AUTOGEN_PATCH From a3efb3a3bf0f7d1faa1117f572c11ffb1c96a3f4 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 16:47:11 +0100 Subject: [PATCH 36/40] libsoup: remove --without-html-dir --without-html-dir doesn't work. It leads libsoup ./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. See 7e62e8ec723f91e07bb4ac9ae3e55b65e3123082 for another instance of the same problem. Signed-off-by: Thomas Petazzoni --- package/libsoup/libsoup.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/libsoup/libsoup.mk b/package/libsoup/libsoup.mk index 3e9edd3e6a..3829a81a24 100644 --- a/package/libsoup/libsoup.mk +++ b/package/libsoup/libsoup.mk @@ -24,7 +24,7 @@ LIBSOUP_CONF_OPT = \ --disable-explicit-deps \ --disable-glibtest \ --without-gnome \ - --disable-gtk-doc --without-html-dir + --disable-gtk-doc LIBSOUP_DEPENDENCIES = gettext libintl host-pkg-config host-libglib2 libglib2 libxml2 From ca2293b3645452e58c9236ac0d8ab6e1be2fa2f0 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 16:55:21 +0100 Subject: [PATCH 37/40] mplayer: use UTF-8 charset to avoid iconv dependency The mplayer configure script was failing with: Checking for iconv program ... no No working iconv program found, use --charset=UTF-8 to continue anyway. If you also have problems with iconv library functions use --charset=noconv. Messages in the GTK-2 interface will be broken then. Therefore, we pass --charset=UTF-8 instead of --charset=US-ASCII. Signed-off-by: Thomas Petazzoni --- package/multimedia/mplayer/mplayer.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/multimedia/mplayer/mplayer.mk b/package/multimedia/mplayer/mplayer.mk index 3d56ee0078..538bac9eff 100644 --- a/package/multimedia/mplayer/mplayer.mk +++ b/package/multimedia/mplayer/mplayer.mk @@ -54,7 +54,7 @@ $(MPLAYER_DIR)/.configured: $(MPLAYER_DIR)/.unpacked --as=$(TARGET_CROSS)as \ --with-extraincdir=$(STAGING_DIR)/usr/include \ --with-extralibdir=$(STAGING_DIR)/lib \ - --charset=US-ASCII \ + --charset=UTF-8 \ --enable-mad \ --enable-fbdev \ $(MPLAYER_ENDIAN) \ From 596bcb63fb26052b86c1271913747e701883dbfa Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 23 Feb 2010 20:21:15 +0100 Subject: [PATCH 38/40] webkit: mention build failure with old linuxthread toolchains I could have created a !dependency on !BR2_PTHREADS_OLD, but that wouldn't work with external toolchains. So, let's just add a notice in the help message of WebKit. Signed-off-by: Thomas Petazzoni --- package/webkit/Config.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package/webkit/Config.in b/package/webkit/Config.in index 3c669a53f3..10c8b38ac1 100644 --- a/package/webkit/Config.in +++ b/package/webkit/Config.in @@ -14,6 +14,9 @@ config BR2_PACKAGE_WEBKIT help WebKit is an open source, standards compliant web browser engine. + Note that WebKit does not build with a toolchain using the + old linuxthreads library. + http://webkit.org/ comment "webkit requires a toolchain with C++ support and WCHAR enabled" From 58a45bf66ba1787d9ac25c0fa8df4672bc705358 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 21 Feb 2010 20:50:46 +0100 Subject: [PATCH 39/40] uclibc: do not allow the selection of NPTL if snapshot is not selected In uClibc, NPTL support does not exist in the 0.9.30 branch, that we are using in Buildroot. It is only available in the uClibc daily snapshot, extracted from uClibc master branch. Signed-off-by: Thomas Petazzoni --- toolchain/Config.in.2 | 1 + 1 file changed, 1 insertion(+) diff --git a/toolchain/Config.in.2 b/toolchain/Config.in.2 index 6317ff4fbd..234e31f3ba 100644 --- a/toolchain/Config.in.2 +++ b/toolchain/Config.in.2 @@ -120,6 +120,7 @@ choice config BR2_PTHREADS_NATIVE bool "Native POSIX Threading (NPTL)" + depends on BR2_UCLIBC_VERSION_SNAPSHOT endchoice config BR2_PROGRAM_INVOCATION From f08e9eea1b70f057cc0a3efa18b2acb4faea4abe Mon Sep 17 00:00:00 2001 From: Richard van Paasen Date: Mon, 14 Dec 2009 22:49:23 +0100 Subject: [PATCH 40/40] e2fsprogs: fix lsattr chattr and e2label e2undo mixup In Config.in lsattr/chattr and e2label/e2undo are mixed up. --- package/e2fsprogs/Config.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/e2fsprogs/Config.in b/package/e2fsprogs/Config.in index e83ad4f159..2bb92d9778 100644 --- a/package/e2fsprogs/Config.in +++ b/package/e2fsprogs/Config.in @@ -54,7 +54,7 @@ config BR2_PACKAGE_E2FSPROGS_E2LABEL select BR2_PACKAGE_E2FSPROGS_LIBBLKID config BR2_PACKAGE_E2FSPROGS_E2UNDO - bool "e2label" + bool "e2undo" default y depends on BR2_PACKAGE_E2FSPROGS @@ -81,7 +81,7 @@ config BR2_PACKAGE_E2FSPROGS_LOGSAVE depends on BR2_PACKAGE_E2FSPROGS config BR2_PACKAGE_E2FSPROGS_LSATTR - bool "chattr" + bool "lsattr" default y depends on BR2_PACKAGE_E2FSPROGS