From 01bcd0320e65c0b9c07a54b172b86ca37f3b5a68 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Mon, 16 Mar 2009 15:49:03 +0000 Subject: libglib2: build host version for build-time binaries Build host version of glib in HOST_DIR and use the build-time binaries from there instead of relying on what is installed on the host. --- package/atk/atk.mk | 5 +-- package/cairo/cairo.mk | 4 +- package/gtk2-engines/gtk2-engines.mk | 1 - package/java/jamvm/jamvm.mk | 1 - package/libglib2/libglib2-pkgconfig-cc.patch | 24 ++++++++--- package/libglib2/libglib2.mk | 62 ++++++++++++++++++++++------ package/libgtk2/libgtk2.mk | 7 +--- package/metacity/metacity.mk | 1 - package/pango/pango.mk | 2 +- package/webkit/webkit.mk | 2 - 10 files changed, 73 insertions(+), 36 deletions(-) diff --git a/package/atk/atk.mk b/package/atk/atk.mk index 5bd1a0c50..ac6f5059d 100644 --- a/package/atk/atk.mk +++ b/package/atk/atk.mk @@ -38,8 +38,7 @@ ATK_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes \ am_cv_func_working_getline=yes gl_cv_func_mkdir_trailing_slash_bug=no \ gl_cv_func_mkstemp_limitations=no ac_cv_func_working_mktime=yes \ jm_cv_func_working_re_compile_pattern=yes ac_use_included_regex=no \ - gl_cv_c_restrict=no ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal \ - ac_cv_prog_F77=no + gl_cv_c_restrict=no ac_cv_prog_F77=no ifneq ($(BR2_PACKAGE_XSERVER_none),y) ATK_CONF_OPT_X = --with-x \ @@ -54,8 +53,6 @@ ATK_CONF_OPT = --enable-shared \ --disable-glibtest --enable-explicit-deps=no \ --disable-debug -ATK_MAKE_OPT = GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal GLIB_MKENUMS=$(HOST_GLIB)/bin/glib-mkenums - ATK_DEPENDENCIES = libglib2 pkgconfig $(eval $(call AUTOTARGETS,package,atk)) diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk index 0814f9cb3..668f915c6 100644 --- a/package/cairo/cairo.mk +++ b/package/cairo/cairo.mk @@ -38,9 +38,7 @@ CAIRO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \ am_getline_needs_run_time_check=no am_cv_func_working_getline=yes \ gl_cv_func_mkdir_trailing_slash_bug=no gl_cv_func_mkstemp_limitations=no \ ac_cv_func_working_mktime=yes jm_cv_func_working_re_compile_pattern=yes \ - ac_use_included_regex=no gl_cv_c_restrict=no \ - ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal - + ac_use_included_regex=no gl_cv_c_restrict=no CAIRO_DEPENDENCIES = uclibc pkgconfig fontconfig pixman diff --git a/package/gtk2-engines/gtk2-engines.mk b/package/gtk2-engines/gtk2-engines.mk index 30467a046..6f5af419b 100644 --- a/package/gtk2-engines/gtk2-engines.mk +++ b/package/gtk2-engines/gtk2-engines.mk @@ -69,7 +69,6 @@ GTK2_ENGINES_BUILD_ENV= \ jm_cv_func_working_re_compile_pattern=yes \ ac_use_included_regex=no \ gl_cv_c_restrict=no \ - ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal \ ac_cv_path_CUPS_CONFIG=no diff --git a/package/java/jamvm/jamvm.mk b/package/java/jamvm/jamvm.mk index 3ea6e2147..560be3470 100644 --- a/package/java/jamvm/jamvm.mk +++ b/package/java/jamvm/jamvm.mk @@ -39,7 +39,6 @@ JAMVM_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \ gl_cv_func_mkdir_trailing_slash_bug=no gl_cv_func_mkstemp_limitations=no \ ac_cv_func_working_mktime=yes jm_cv_func_working_re_compile_pattern=yes \ ac_use_included_regex=no gl_cv_c_restrict=no \ - ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/glib-genmarshal \ ac_cv_prog_F77=no ac_cv_prog_CXX=no ac_cv_path_CUPS_CONFIG=no JAMVM_CONF_OPT = \ diff --git a/package/libglib2/libglib2-pkgconfig-cc.patch b/package/libglib2/libglib2-pkgconfig-cc.patch index 36a2487b3..44e236fa3 100644 --- a/package/libglib2/libglib2-pkgconfig-cc.patch +++ b/package/libglib2/libglib2-pkgconfig-cc.patch @@ -1,15 +1,27 @@ ---- a/glib-2.0.pc.in 2007-01-16 18:24:39.000000000 -0500 -+++ b/glib-2.0.pc.in 2008-02-09 09:25:28.000000000 -0500 -@@ -3,9 +3,9 @@ exec_prefix=@exec_prefix@ +glib2: prefix glib binaries in pkgconfig file with BIN_DIR + +Make sure the host versions of the glib binaries are used. +--- + glib-2.0.pc.in | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +Index: glib-2.18.4/glib-2.0.pc.in +=================================================================== +--- glib-2.18.4.orig/glib-2.0.pc.in ++++ glib-2.18.4/glib-2.0.pc.in +@@ -1,11 +1,12 @@ ++BIN_DIR= + prefix=@prefix@ + exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ -glib_genmarshal=glib-genmarshal -gobject_query=gobject-query -glib_mkenums=glib-mkenums -+glib_genmarshal=/usr/bin/glib-genmarshal -+gobject_query=/usr/bin/gobject-query -+glib_mkenums=/usr/bin/glib-mkenums ++glib_genmarshal=${BIN_DIR}glib-genmarshal ++gobject_query=$(BIN_DIR}gobject-query ++glib_mkenums=${BIN_DIR}glib-mkenums Name: GLib Description: C Utility Library diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk index 064347819..a8654349d 100644 --- a/package/libglib2/libglib2.mk +++ b/package/libglib2/libglib2.mk @@ -15,10 +15,6 @@ LIBGLIB2_INSTALL_STAGING = YES LIBGLIB2_INSTALL_TARGET = YES LIBGLIB2_INSTALL_STAGING_OPT = DESTDIR=$(STAGING_DIR) LDFLAGS=-L$(STAGING_DIR)/usr/lib install -# detect install prefix of host glib development stuff -HOST_GLIB_BIN:=`dirname $(shell which glib-genmarshal || echo /usr/bin/glib-genmarshal)` -HOST_GLIB:=$(shell dirname $(HOST_GLIB_BIN) || echo /usr) - LIBGLIB2_CONF_ENV = \ ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \ glib_cv_uscore=no ac_cv_func_strtod=yes \ @@ -48,14 +44,14 @@ LIBGLIB2_CONF_ENV = \ gl_cv_func_mkdir_trailing_slash_bug=no gl_cv_func_mkstemp_limitations=no \ ac_cv_func_working_mktime=yes jm_cv_func_working_re_compile_pattern=yes \ ac_use_included_regex=no gl_cv_c_restrict=no \ - ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal ac_cv_prog_F77=no \ + ac_cv_path_GLIB_GENMARSHAL=$(HOST_DIR)/usr/bin/glib-genmarshal ac_cv_prog_F77=no \ ac_cv_func_posix_getgrgid_r=no \ gt_cv_c_wchar_t=$(if $(BR2_USE_WCHAR),yes,no) LIBGLIB2_CONF_OPT = --enable-shared \ --enable-static -LIBGLIB2_DEPENDENCIES = uclibc gettext libintl pkgconfig +LIBGLIB2_DEPENDENCIES = uclibc gettext libintl pkgconfig host-libglib2 ifneq ($(BR2_ENABLE_LOCALE),y) LIBGLIB2_DEPENDENCIES+=libiconv @@ -68,9 +64,51 @@ endif $(eval $(call AUTOTARGETS,package,libglib2)) -# we NEED a host glib-genmarshal -ifeq ($(BR2_PACKAGE_LIBGLIB2),y) -ifeq ($(wildcard $(HOST_GLIB)/bin/glib-genmarshal),) -$(error Host glib-genmarshal not found. Please install glib development package on your host (something like libglib2.0-dev)) -endif -endif +$(LIBGLIB2_HOOK_POST_INSTALL): $(LIBGLIB2_TARGET_INSTALL_STAGING) + $(SED) 's~^BIN_DIR=.*~BIN_DIR=$(HOST_DIR)/usr/bin/~' \ + $(STAGING_DIR)/usr/lib/pkgconfig/glib-2.0.pc + touch $@ + +# libglib2 for the host +LIBGLIB2_HOST_DIR:=$(BUILD_DIR)/libglib2-$(LIBGLIB2_VERSION)-host +LIBGLIB2_HOST_BINARY:=$(HOST_DIR)/usr/bin/glib-genmarshal + +$(LIBGLIB2_HOST_DIR)/.unpacked: $(DL_DIR)/$(LIBGLIB2_SOURCE) + mkdir -p $(@D) + $(INFLATE$(suffix $(LIBGLIB2_SOURCE))) $< | \ + $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) - + touch $@ + +$(LIBGLIB2_HOST_DIR)/.configured: $(LIBGLIB2_HOST_DIR)/.unpacked + (cd $(@D); rm -rf config.cache; \ + $(HOST_CONFIGURE_OPTS) \ + CFLAGS="$(HOST_CFLAGS)" \ + LDFLAGS="$(HOST_LDFLAGS)" \ + $(@D)/configure \ + --prefix=$(HOST_DIR)/usr \ + --sysconfdir=$(HOST_DIR)/etc \ + --enable-shared \ + --disable-static \ + --disable-gtk-doc \ + --enable-debug=no \ + ) + touch $@ + +$(LIBGLIB2_HOST_DIR)/.compiled: $(LIBGLIB2_HOST_DIR)/.configured + $(MAKE) -C $(@D) + touch $@ + +$(LIBGLIB2_HOST_BINARY): $(LIBGLIB2_HOST_DIR)/.compiled + $(MAKE) -C $(