Message ID | 854f44b783b6b7dd9c1189c53e6c98aa74db10a1.1333550801.git.maxime.ripard@free-electrons.com |
---|---|
State | Superseded |
Headers | show |
Hi List, While this patch is definitely needed I think, the implementation is still to be discussed imho. There was two options here for the gettext package: BR2_PACKAGE_GETTEXT and BR2_PACKAGE_LIBINTL. It seems that these two were quite confusing. BR2_PACKAGE_GETTEXT was only installing stuff in the staging area, but what for ? So here, judging by the help message in the Config.in, my understanding is that: - BR2_PACKAGE_GETTEXT should be built both in staging and in the target area - BR2_PACKAGE_LIBINTL should be only to build gettext without the binary - So BR2_PACKAGE_LIBINTL should only remove generated binaries, and as such be a sub-option of BR2_PACKAGE_GETTEXT This what is implemented in this patch. Now, as we are slightly modifying the relations between these two options, package that depends on them should be adapted. Right now, we have three cases: * Packages that depend on BR2_PACKAGE_GETTEXT: libidn, php * Packages that depend on BR2_PACKAGE_LIBINTL: pulseaudio, dnsmasq, util-linux * Packages that depend on both: make, grep, vala, psmisc, binutils, pango, glib-networking, gmpc, axel, avahi, sysstat, libglib2, diffutils, kbd, flex, gdk-pixbuf, libsoup, sshfs So I guess that they need to all depend only on BR2_PACKAGE_GETTEXT if such change in the options is adopted. What do you think of it ? Maxime Le 04/04/2012 16:46, Maxime Ripard a écrit : > Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> > --- > package/gettext/Config.in | 12 --- > package/gettext/gettext.mk | 168 +++----------------------------------- > package/gettext/libdir-la.patch | 154 ----------------------------------- > 3 files changed, 14 insertions(+), 320 deletions(-) > delete mode 100644 package/gettext/libdir-la.patch > > diff --git a/package/gettext/Config.in b/package/gettext/Config.in > index fabfe1e..0ee4065 100644 > --- a/package/gettext/Config.in > +++ b/package/gettext/Config.in > @@ -12,18 +12,6 @@ config BR2_PACKAGE_GETTEXT > comment "gettext requires a toolchain with WCHAR support" > depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR > > -config BR2_PACKAGE_GETTEXT_STATIC > - bool "Use libgettext.a instead of libgettext.so.*" > - depends on BR2_PACKAGE_GETTEXT > - depends on BR2_arm > - help > - The GNU `gettext' utilities are a set of tools that provide a > - framework to help other GNU packages produce multi-lingual > - messages. > - > - http://www.gnu.org/software/gettext/ > - > - > config BR2_PACKAGE_LIBINTL > bool "libintl" > depends on BR2_NEEDS_GETTEXT > diff --git a/package/gettext/gettext.mk b/package/gettext/gettext.mk > index f3605da..7c7b26c 100644 > --- a/package/gettext/gettext.mk > +++ b/package/gettext/gettext.mk > @@ -3,162 +3,22 @@ > # gettext > # > ############################################################# > -GETTEXT_VERSION:=0.16.1 > -GETTEXT_SOURCE:=gettext-$(GETTEXT_VERSION).tar.gz > -GETTEXT_SITE:=$(BR2_GNU_MIRROR)/gettext > -GETTEXT_DIR:=$(BUILD_DIR)/gettext-$(GETTEXT_VERSION) > -GETTEXT_CAT:=$(ZCAT) > -GETTEXT_BINARY:=gettext-runtime/src/gettext > -GETTEXT_TARGET_BINARY:=usr/bin/gettext > +GETTEXT_VERSION = 0.16.1 > +GETTEXT_SITE = $(BR2_GNU_MIRROR)/gettext > +GETTEXT_INSTALL_STAGING = YES > > -ifeq ($(BR2_PACKAGE_GETTEXT_STATIC),y) > -LIBINTL_TARGET_BINARY:=usr/lib/libintl.a > -else > -LIBINTL_TARGET_BINARY:=usr/lib/libintl.so > -endif > - > -$(DL_DIR)/$(GETTEXT_SOURCE): > - $(call DOWNLOAD,$(GETTEXT_SITE)/$(GETTEXT_SOURCE)) > - > -gettext-source: $(DL_DIR)/$(GETTEXT_SOURCE) > - > -$(GETTEXT_DIR)/.unpacked: $(DL_DIR)/$(GETTEXT_SOURCE) > - $(GETTEXT_CAT) $(DL_DIR)/$(GETTEXT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - > - support/scripts/apply-patches.sh $(GETTEXT_DIR) package/gettext/ gettext\*.patch > - $(call CONFIG_UPDATE,$(@D)) > - touch $@ > - > -ifneq ($(BR2_TOOLCHAIN_BUILDROOT),y) > -IGNORE_EXTERNAL_GETTEXT:=--with-included-gettext > -endif > - > -$(GETTEXT_DIR)/.configured: $(GETTEXT_DIR)/.unpacked > - (cd $(GETTEXT_DIR); rm -rf config.cache; \ > - $(TARGET_CONFIGURE_OPTS) \ > - $(TARGET_CONFIGURE_ARGS) \ > - ac_cv_func_strtod=yes \ > - ac_fsusage_space=yes \ > - fu_cv_sys_stat_statfs2_bsize=yes \ > - ac_cv_func_closedir_void=no \ > - ac_cv_func_getloadavg=no \ > - ac_cv_lib_util_getloadavg=no \ > - ac_cv_lib_getloadavg_getloadavg=no \ > - ac_cv_func_getgroups=yes \ > - ac_cv_func_getgroups_works=yes \ > - ac_cv_func_chown_works=yes \ > - ac_cv_have_decl_euidaccess=no \ > - ac_cv_func_euidaccess=no \ > - ac_cv_have_decl_strnlen=yes \ > - ac_cv_func_strnlen_working=yes \ > - ac_cv_func_lstat_dereferences_slashed_symlink=yes \ > - ac_cv_func_lstat_empty_string_bug=no \ > - ac_cv_func_stat_empty_string_bug=no \ > - vb_cv_func_rename_trailing_slash_bug=no \ > - ac_cv_have_decl_nanosleep=yes \ > - jm_cv_func_nanosleep_works=yes \ > - gl_cv_func_working_utimes=yes \ > - ac_cv_func_utime_null=yes \ > - ac_cv_have_decl_strerror_r=yes \ > - ac_cv_func_strerror_r_char_p=no \ > - jm_cv_func_svid_putenv=yes \ > - ac_cv_func_getcwd_null=yes \ > - ac_cv_func_getdelim=yes \ > - ac_cv_func_mkstemp=yes \ > - utils_cv_func_mkstemp_limitations=no \ > - utils_cv_func_mkdir_trailing_slash_bug=no \ > - jm_cv_func_gettimeofday_clobber=no \ > - gl_cv_func_working_readdir=yes \ > - jm_ac_cv_func_link_follows_symlink=no \ > - utils_cv_localtime_cache=no \ > - ac_cv_struct_st_mtim_nsec=no \ > - gl_cv_func_tzset_clobber=no \ > - gl_cv_func_getcwd_null=yes \ > - gl_cv_func_getcwd_path_max=yes \ > - ac_cv_func_fnmatch_gnu=yes \ > - 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 \ > - ./configure $(QUIET) \ > - --target=$(GNU_TARGET_NAME) \ > - --host=$(GNU_TARGET_NAME) \ > - --build=$(GNU_HOST_NAME) \ > - --prefix=/usr \ > - --exec-prefix=/usr \ > - --disable-libasprintf \ > - --enable-shared \ > - $(IGNORE_EXTERNAL_GETTEXT) \ > - --disable-openmp \ > - ) > - touch $@ > +GETTEXT_CONF_OPT += \ > + --disable-libasprintf \ > + --disable-openmp \ > > -$(GETTEXT_DIR)/$(GETTEXT_BINARY): $(GETTEXT_DIR)/.configured > - $(MAKE) -C $(GETTEXT_DIR) > - touch -c $(GETTEXT_DIR)/$(GETTEXT_BINARY) > +define GETTEXT_REMOVE_BINARIES > + rm -f $(TARGET_DIR)/usr/bin/gettext > + rm -f $(TARGET_DIR)/usr/bin/gettext.sh > + rm -f $(TARGET_DIR)/usr/bin/gettextize > +endef > > -$(STAGING_DIR)/$(GETTEXT_TARGET_BINARY): $(GETTEXT_DIR)/$(GETTEXT_BINARY) > - $(MAKE) DESTDIR=$(STAGING_DIR) -C $(GETTEXT_DIR) install > - $(SED) 's,/lib/,$(STAGING_DIR)/usr/lib/,g' $(STAGING_DIR)/usr/lib/libgettextlib.la > - $(SED) 's,/lib/,$(STAGING_DIR)/usr/lib/,g' $(STAGING_DIR)/usr/lib/libgettextpo.la > - $(SED) 's,/lib/,$(STAGING_DIR)/usr/lib/,g' $(STAGING_DIR)/usr/lib/libgettextsrc.la > - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgettextlib.la > - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgettextpo.la > - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgettextsrc.la > - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libintl.la > - rm -f $(addprefix $(STAGING_DIR)/usr/bin/, \ > - autopoint envsubst gettext.sh gettextize msg* ?gettext) > - touch -c $@ > - > -gettext: host-pkg-config $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY) > - > -gettext-unpacked: $(GETTEXT_DIR)/.unpacked > - > -gettext-clean: > - -$(MAKE) DESTDIR=$(STAGING_DIR) CC="$(TARGET_CC)" -C $(GETTEXT_DIR) uninstall > - -$(MAKE) DESTDIR=$(TARGET_DIR) CC="$(TARGET_CC)" -C $(GETTEXT_DIR) uninstall > - -$(MAKE) -C $(GETTEXT_DIR) clean > - > -gettext-dirclean: > - rm -rf $(GETTEXT_DIR) > - > -############################################################# > -# > -# gettext on the target > -# > -############################################################# > - > -gettext-target: $(GETTEXT_DIR)/$(GETTEXT_BINARY) > - $(MAKE) DESTDIR=$(TARGET_DIR) -C $(GETTEXT_DIR) install > - chmod +x $(TARGET_DIR)/usr/lib/libintl.so* # identify as needing to be stripped > - > -$(TARGET_DIR)/usr/lib/libintl.so: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY) > - cp -dpf $(STAGING_DIR)/usr/lib/libgettext*.so* \ > - $(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/ > - $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libgettext*.so* > - $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libintl*.so* > - rm -f $(addprefix $(TARGET_DIR)/usr/lib/, \ > - libgettext*.so*.la libintl*.so*.la) > - touch -c $@ > - > -$(TARGET_DIR)/usr/lib/libintl.a: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY) > - cp -dpf $(STAGING_DIR)/usr/lib/libgettext*.a $(TARGET_DIR)/usr/lib/ > - cp -dpf $(STAGING_DIR)/usr/lib/libintl*.a $(TARGET_DIR)/usr/lib/ > - touch -c $@ > - > -libintl: $(TARGET_DIR)/$(LIBINTL_TARGET_BINARY) > - > -############################################################# > -# > -# Toplevel Makefile options > -# > -############################################################# > ifeq ($(BR2_PACKAGE_LIBINTL),y) > -TARGETS+=libintl > -endif > -ifeq ($(BR2_PACKAGE_GETTEXT),y) > -TARGETS+=gettext > + GETTEXT_POST_INSTALL_TARGET_HOOKS += GETTEXT_REMOVE_BINARIES > endif > + > +$(eval $(call AUTOTARGETS)) > diff --git a/package/gettext/libdir-la.patch b/package/gettext/libdir-la.patch > deleted file mode 100644 > index d5076c1..0000000 > --- a/package/gettext/libdir-la.patch > +++ /dev/null > @@ -1,154 +0,0 @@ > ---- gettext-0.14.6/autoconf-lib-link/build-aux/ltmain.sh.orig 2007-01-13 14:33:23.000000000 -0700 > -+++ gettext-0.14.6/autoconf-lib-link/build-aux/ltmain.sh 2007-01-13 14:35:10.000000000 -0700 > -@@ -234,8 +234,9 @@ > - # line option must be used. > - if test -z "$tagname"; then > - $echo "$modename: unable to infer tagged configuration" > -- $echo "$modename: specify a tag with \`--tag'" 1>&2 > -- exit $EXIT_FAILURE > -+ $echo "$modename: defaulting to \`CC'" > -+ $echo "$modename: if this is not correct, specify a tag with \`--tag'" > -+# exit $EXIT_FAILURE > - # else > - # $echo "$modename: using $tagname tagged configuration" > - fi > -@@ -2324,8 +2325,14 @@ > - absdir="$abs_ladir" > - libdir="$abs_ladir" > - else > -- dir="$libdir" > -- absdir="$libdir" > -+ # Adding 'libdir' from the .la file to our library search paths > -+ # breaks crosscompilation horribly. We cheat here and don't add > -+ # it, instead adding the path where we found the .la. -CL > -+ dir="$abs_ladir" > -+ absdir="$abs_ladir" > -+ libdir="$abs_ladir" > -+ #dir="$libdir" > -+ #absdir="$libdir" > - fi > - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes > - else > -@@ -2800,6 +2807,16 @@ > - esac > - if grep "^installed=no" $deplib > /dev/null; then > - path="$absdir/$objdir" > -+# This interferes with crosscompilation. -CL > -+# else > -+# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` > -+# if test -z "$libdir"; then > -+# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 > -+# exit 1 > -+# fi > -+# if test "$absdir" != "$libdir"; then > -+# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 > -+# fi > - else > - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` > - if test -z "$libdir"; then > -@@ -5210,6 +5227,10 @@ > - # Replace all uninstalled libtool libraries with the installed ones > - newdependency_libs= > - for deplib in $dependency_libs; do > -+ # Replacing uninstalled with installed can easily break crosscompilation, > -+ # since the installed path is generally the wrong architecture. -CL > -+ newdependency_libs="$newdependency_libs $deplib" > -+ continue > - case $deplib in > - *.la) > - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` > -@@ -5528,10 +5549,13 @@ > - # At present, this check doesn't affect windows .dll's that > - # are installed into $libdir/../bin (currently, that works fine) > - # but it's something to keep an eye on. > -- if test "$inst_prefix_dir" = "$destdir"; then > -- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 > -- exit $EXIT_FAILURE > -- fi > -+ # > -+ # This breaks install into our staging area. -PB > -+ # > -+ # if test "$inst_prefix_dir" = "$destdir"; then > -+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 > -+ # exit $EXIT_FAILURE > -+ # fi > - > - if test -n "$inst_prefix_dir"; then > - # Stick the inst_prefix_dir data into the link command. > ---- gettext-0.14.6/build-aux/ltmain.sh.orig 2005-05-20 15:03:38.000000000 -0600 > -+++ gettext-0.14.6/build-aux/ltmain.sh 2007-01-13 14:34:27.000000000 -0700 > -@@ -234,8 +234,9 @@ > - # line option must be used. > - if test -z "$tagname"; then > - $echo "$modename: unable to infer tagged configuration" > -- $echo "$modename: specify a tag with \`--tag'" 1>&2 > -- exit $EXIT_FAILURE > -+ $echo "$modename: defaulting to \`CC'" > -+ $echo "$modename: if this is not correct, specify a tag with \`--tag'" > -+# exit $EXIT_FAILURE > - # else > - # $echo "$modename: using $tagname tagged configuration" > - fi > -@@ -2324,8 +2325,14 @@ > - absdir="$abs_ladir" > - libdir="$abs_ladir" > - else > -- dir="$libdir" > -- absdir="$libdir" > -+ # Adding 'libdir' from the .la file to our library search paths > -+ # breaks crosscompilation horribly. We cheat here and don't add > -+ # it, instead adding the path where we found the .la. -CL > -+ dir="$abs_ladir" > -+ absdir="$abs_ladir" > -+ libdir="$abs_ladir" > -+ #dir="$libdir" > -+ #absdir="$libdir" > - fi > - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes > - else > -@@ -2800,6 +2807,16 @@ > - esac > - if grep "^installed=no" $deplib > /dev/null; then > - path="$absdir/$objdir" > -+# This interferes with crosscompilation. -CL > -+# else > -+# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` > -+# if test -z "$libdir"; then > -+# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 > -+# exit 1 > -+# fi > -+# if test "$absdir" != "$libdir"; then > -+# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 > -+# fi > - else > - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` > - if test -z "$libdir"; then > -@@ -5210,6 +5227,10 @@ > - # Replace all uninstalled libtool libraries with the installed ones > - newdependency_libs= > - for deplib in $dependency_libs; do > -+ # Replacing uninstalled with installed can easily break crosscompilation, > -+ # since the installed path is generally the wrong architecture. -CL > -+ newdependency_libs="$newdependency_libs $deplib" > -+ continue > - case $deplib in > - *.la) > - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` > -@@ -5528,10 +5549,13 @@ > - # At present, this check doesn't affect windows .dll's that > - # are installed into $libdir/../bin (currently, that works fine) > - # but it's something to keep an eye on. > -- if test "$inst_prefix_dir" = "$destdir"; then > -- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 > -- exit $EXIT_FAILURE > -- fi > -+ # > -+ # This breaks install into our staging area. -PB > -+ # > -+ # if test "$inst_prefix_dir" = "$destdir"; then > -+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 > -+ # exit $EXIT_FAILURE > -+ # fi > - > - if test -n "$inst_prefix_dir"; then > - # Stick the inst_prefix_dir data into the link command.
diff --git a/package/gettext/Config.in b/package/gettext/Config.in index fabfe1e..0ee4065 100644 --- a/package/gettext/Config.in +++ b/package/gettext/Config.in @@ -12,18 +12,6 @@ config BR2_PACKAGE_GETTEXT comment "gettext requires a toolchain with WCHAR support" depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR -config BR2_PACKAGE_GETTEXT_STATIC - bool "Use libgettext.a instead of libgettext.so.*" - depends on BR2_PACKAGE_GETTEXT - depends on BR2_arm - help - The GNU `gettext' utilities are a set of tools that provide a - framework to help other GNU packages produce multi-lingual - messages. - - http://www.gnu.org/software/gettext/ - - config BR2_PACKAGE_LIBINTL bool "libintl" depends on BR2_NEEDS_GETTEXT diff --git a/package/gettext/gettext.mk b/package/gettext/gettext.mk index f3605da..7c7b26c 100644 --- a/package/gettext/gettext.mk +++ b/package/gettext/gettext.mk @@ -3,162 +3,22 @@ # gettext # ############################################################# -GETTEXT_VERSION:=0.16.1 -GETTEXT_SOURCE:=gettext-$(GETTEXT_VERSION).tar.gz -GETTEXT_SITE:=$(BR2_GNU_MIRROR)/gettext -GETTEXT_DIR:=$(BUILD_DIR)/gettext-$(GETTEXT_VERSION) -GETTEXT_CAT:=$(ZCAT) -GETTEXT_BINARY:=gettext-runtime/src/gettext -GETTEXT_TARGET_BINARY:=usr/bin/gettext +GETTEXT_VERSION = 0.16.1 +GETTEXT_SITE = $(BR2_GNU_MIRROR)/gettext +GETTEXT_INSTALL_STAGING = YES -ifeq ($(BR2_PACKAGE_GETTEXT_STATIC),y) -LIBINTL_TARGET_BINARY:=usr/lib/libintl.a -else -LIBINTL_TARGET_BINARY:=usr/lib/libintl.so -endif - -$(DL_DIR)/$(GETTEXT_SOURCE): - $(call DOWNLOAD,$(GETTEXT_SITE)/$(GETTEXT_SOURCE)) - -gettext-source: $(DL_DIR)/$(GETTEXT_SOURCE) - -$(GETTEXT_DIR)/.unpacked: $(DL_DIR)/$(GETTEXT_SOURCE) - $(GETTEXT_CAT) $(DL_DIR)/$(GETTEXT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - - support/scripts/apply-patches.sh $(GETTEXT_DIR) package/gettext/ gettext\*.patch - $(call CONFIG_UPDATE,$(@D)) - touch $@ - -ifneq ($(BR2_TOOLCHAIN_BUILDROOT),y) -IGNORE_EXTERNAL_GETTEXT:=--with-included-gettext -endif - -$(GETTEXT_DIR)/.configured: $(GETTEXT_DIR)/.unpacked - (cd $(GETTEXT_DIR); rm -rf config.cache; \ - $(TARGET_CONFIGURE_OPTS) \ - $(TARGET_CONFIGURE_ARGS) \ - ac_cv_func_strtod=yes \ - ac_fsusage_space=yes \ - fu_cv_sys_stat_statfs2_bsize=yes \ - ac_cv_func_closedir_void=no \ - ac_cv_func_getloadavg=no \ - ac_cv_lib_util_getloadavg=no \ - ac_cv_lib_getloadavg_getloadavg=no \ - ac_cv_func_getgroups=yes \ - ac_cv_func_getgroups_works=yes \ - ac_cv_func_chown_works=yes \ - ac_cv_have_decl_euidaccess=no \ - ac_cv_func_euidaccess=no \ - ac_cv_have_decl_strnlen=yes \ - ac_cv_func_strnlen_working=yes \ - ac_cv_func_lstat_dereferences_slashed_symlink=yes \ - ac_cv_func_lstat_empty_string_bug=no \ - ac_cv_func_stat_empty_string_bug=no \ - vb_cv_func_rename_trailing_slash_bug=no \ - ac_cv_have_decl_nanosleep=yes \ - jm_cv_func_nanosleep_works=yes \ - gl_cv_func_working_utimes=yes \ - ac_cv_func_utime_null=yes \ - ac_cv_have_decl_strerror_r=yes \ - ac_cv_func_strerror_r_char_p=no \ - jm_cv_func_svid_putenv=yes \ - ac_cv_func_getcwd_null=yes \ - ac_cv_func_getdelim=yes \ - ac_cv_func_mkstemp=yes \ - utils_cv_func_mkstemp_limitations=no \ - utils_cv_func_mkdir_trailing_slash_bug=no \ - jm_cv_func_gettimeofday_clobber=no \ - gl_cv_func_working_readdir=yes \ - jm_ac_cv_func_link_follows_symlink=no \ - utils_cv_localtime_cache=no \ - ac_cv_struct_st_mtim_nsec=no \ - gl_cv_func_tzset_clobber=no \ - gl_cv_func_getcwd_null=yes \ - gl_cv_func_getcwd_path_max=yes \ - ac_cv_func_fnmatch_gnu=yes \ - 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 \ - ./configure $(QUIET) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --prefix=/usr \ - --exec-prefix=/usr \ - --disable-libasprintf \ - --enable-shared \ - $(IGNORE_EXTERNAL_GETTEXT) \ - --disable-openmp \ - ) - touch $@ +GETTEXT_CONF_OPT += \ + --disable-libasprintf \ + --disable-openmp \ -$(GETTEXT_DIR)/$(GETTEXT_BINARY): $(GETTEXT_DIR)/.configured - $(MAKE) -C $(GETTEXT_DIR) - touch -c $(GETTEXT_DIR)/$(GETTEXT_BINARY) +define GETTEXT_REMOVE_BINARIES + rm -f $(TARGET_DIR)/usr/bin/gettext + rm -f $(TARGET_DIR)/usr/bin/gettext.sh + rm -f $(TARGET_DIR)/usr/bin/gettextize +endef -$(STAGING_DIR)/$(GETTEXT_TARGET_BINARY): $(GETTEXT_DIR)/$(GETTEXT_BINARY) - $(MAKE) DESTDIR=$(STAGING_DIR) -C $(GETTEXT_DIR) install - $(SED) 's,/lib/,$(STAGING_DIR)/usr/lib/,g' $(STAGING_DIR)/usr/lib/libgettextlib.la - $(SED) 's,/lib/,$(STAGING_DIR)/usr/lib/,g' $(STAGING_DIR)/usr/lib/libgettextpo.la - $(SED) 's,/lib/,$(STAGING_DIR)/usr/lib/,g' $(STAGING_DIR)/usr/lib/libgettextsrc.la - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgettextlib.la - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgettextpo.la - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgettextsrc.la - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libintl.la - rm -f $(addprefix $(STAGING_DIR)/usr/bin/, \ - autopoint envsubst gettext.sh gettextize msg* ?gettext) - touch -c $@ - -gettext: host-pkg-config $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY) - -gettext-unpacked: $(GETTEXT_DIR)/.unpacked - -gettext-clean: - -$(MAKE) DESTDIR=$(STAGING_DIR) CC="$(TARGET_CC)" -C $(GETTEXT_DIR) uninstall - -$(MAKE) DESTDIR=$(TARGET_DIR) CC="$(TARGET_CC)" -C $(GETTEXT_DIR) uninstall - -$(MAKE) -C $(GETTEXT_DIR) clean - -gettext-dirclean: - rm -rf $(GETTEXT_DIR) - -############################################################# -# -# gettext on the target -# -############################################################# - -gettext-target: $(GETTEXT_DIR)/$(GETTEXT_BINARY) - $(MAKE) DESTDIR=$(TARGET_DIR) -C $(GETTEXT_DIR) install - chmod +x $(TARGET_DIR)/usr/lib/libintl.so* # identify as needing to be stripped - -$(TARGET_DIR)/usr/lib/libintl.so: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY) - cp -dpf $(STAGING_DIR)/usr/lib/libgettext*.so* \ - $(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/ - $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libgettext*.so* - $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libintl*.so* - rm -f $(addprefix $(TARGET_DIR)/usr/lib/, \ - libgettext*.so*.la libintl*.so*.la) - touch -c $@ - -$(TARGET_DIR)/usr/lib/libintl.a: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY) - cp -dpf $(STAGING_DIR)/usr/lib/libgettext*.a $(TARGET_DIR)/usr/lib/ - cp -dpf $(STAGING_DIR)/usr/lib/libintl*.a $(TARGET_DIR)/usr/lib/ - touch -c $@ - -libintl: $(TARGET_DIR)/$(LIBINTL_TARGET_BINARY) - -############################################################# -# -# Toplevel Makefile options -# -############################################################# ifeq ($(BR2_PACKAGE_LIBINTL),y) -TARGETS+=libintl -endif -ifeq ($(BR2_PACKAGE_GETTEXT),y) -TARGETS+=gettext + GETTEXT_POST_INSTALL_TARGET_HOOKS += GETTEXT_REMOVE_BINARIES endif + +$(eval $(call AUTOTARGETS)) diff --git a/package/gettext/libdir-la.patch b/package/gettext/libdir-la.patch deleted file mode 100644 index d5076c1..0000000 --- a/package/gettext/libdir-la.patch +++ /dev/null @@ -1,154 +0,0 @@ ---- gettext-0.14.6/autoconf-lib-link/build-aux/ltmain.sh.orig 2007-01-13 14:33:23.000000000 -0700 -+++ gettext-0.14.6/autoconf-lib-link/build-aux/ltmain.sh 2007-01-13 14:35:10.000000000 -0700 -@@ -234,8 +234,9 @@ - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" -- $echo "$modename: specify a tag with \`--tag'" 1>&2 -- exit $EXIT_FAILURE -+ $echo "$modename: defaulting to \`CC'" -+ $echo "$modename: if this is not correct, specify a tag with \`--tag'" -+# exit $EXIT_FAILURE - # else - # $echo "$modename: using $tagname tagged configuration" - fi -@@ -2324,8 +2325,14 @@ - absdir="$abs_ladir" - libdir="$abs_ladir" - else -- dir="$libdir" -- absdir="$libdir" -+ # Adding 'libdir' from the .la file to our library search paths -+ # breaks crosscompilation horribly. We cheat here and don't add -+ # it, instead adding the path where we found the .la. -CL -+ dir="$abs_ladir" -+ absdir="$abs_ladir" -+ libdir="$abs_ladir" -+ #dir="$libdir" -+ #absdir="$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else -@@ -2800,6 +2807,16 @@ - esac - if grep "^installed=no" $deplib > /dev/null; then - path="$absdir/$objdir" -+# This interferes with crosscompilation. -CL -+# else -+# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+# if test -z "$libdir"; then -+# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 -+# exit 1 -+# fi -+# if test "$absdir" != "$libdir"; then -+# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 -+# fi - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then -@@ -5210,6 +5227,10 @@ - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do -+ # Replacing uninstalled with installed can easily break crosscompilation, -+ # since the installed path is generally the wrong architecture. -CL -+ newdependency_libs="$newdependency_libs $deplib" -+ continue - case $deplib in - *.la) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` -@@ -5528,10 +5549,13 @@ - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. -- if test "$inst_prefix_dir" = "$destdir"; then -- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -- exit $EXIT_FAILURE -- fi -+ # -+ # This breaks install into our staging area. -PB -+ # -+ # if test "$inst_prefix_dir" = "$destdir"; then -+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -+ # exit $EXIT_FAILURE -+ # fi - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. ---- gettext-0.14.6/build-aux/ltmain.sh.orig 2005-05-20 15:03:38.000000000 -0600 -+++ gettext-0.14.6/build-aux/ltmain.sh 2007-01-13 14:34:27.000000000 -0700 -@@ -234,8 +234,9 @@ - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" -- $echo "$modename: specify a tag with \`--tag'" 1>&2 -- exit $EXIT_FAILURE -+ $echo "$modename: defaulting to \`CC'" -+ $echo "$modename: if this is not correct, specify a tag with \`--tag'" -+# exit $EXIT_FAILURE - # else - # $echo "$modename: using $tagname tagged configuration" - fi -@@ -2324,8 +2325,14 @@ - absdir="$abs_ladir" - libdir="$abs_ladir" - else -- dir="$libdir" -- absdir="$libdir" -+ # Adding 'libdir' from the .la file to our library search paths -+ # breaks crosscompilation horribly. We cheat here and don't add -+ # it, instead adding the path where we found the .la. -CL -+ dir="$abs_ladir" -+ absdir="$abs_ladir" -+ libdir="$abs_ladir" -+ #dir="$libdir" -+ #absdir="$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else -@@ -2800,6 +2807,16 @@ - esac - if grep "^installed=no" $deplib > /dev/null; then - path="$absdir/$objdir" -+# This interferes with crosscompilation. -CL -+# else -+# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+# if test -z "$libdir"; then -+# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 -+# exit 1 -+# fi -+# if test "$absdir" != "$libdir"; then -+# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 -+# fi - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then -@@ -5210,6 +5227,10 @@ - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do -+ # Replacing uninstalled with installed can easily break crosscompilation, -+ # since the installed path is generally the wrong architecture. -CL -+ newdependency_libs="$newdependency_libs $deplib" -+ continue - case $deplib in - *.la) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` -@@ -5528,10 +5549,13 @@ - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. -- if test "$inst_prefix_dir" = "$destdir"; then -- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -- exit $EXIT_FAILURE -- fi -+ # -+ # This breaks install into our staging area. -PB -+ # -+ # if test "$inst_prefix_dir" = "$destdir"; then -+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -+ # exit $EXIT_FAILURE -+ # fi - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> --- package/gettext/Config.in | 12 --- package/gettext/gettext.mk | 168 +++----------------------------------- package/gettext/libdir-la.patch | 154 ----------------------------------- 3 files changed, 14 insertions(+), 320 deletions(-) delete mode 100644 package/gettext/libdir-la.patch