gettext: convert to autotools-package

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[yann.morin.1998@free.fr: add license info, build libintl if locales disabled]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
CC: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Maxime Ripard 2012-09-16 12:57:50 +00:00 committed by Peter Korsgaard
parent bbcbed1829
commit bce64eed99
2 changed files with 38 additions and 140 deletions

View File

@ -7,11 +7,19 @@ config BR2_PACKAGE_GETTEXT
framework to help other GNU packages produce multi-lingual framework to help other GNU packages produce multi-lingual
messages. messages.
Only the gettext libraries will be installed in the Only the libintl library will be installed in the
target. The full gettext suite, including tools, will be target. The full gettext suite, including tools, will be
installed in the staging directory. installed in the staging directory.
http://www.gnu.org/software/gettext/ http://www.gnu.org/software/gettext/
config BR2_PACKAGE_GETTEXT_TOOLS
bool "Install gettext tools"
depends on BR2_PACKAGE_GETTEXT
help
This option allows to install the complete gettext suite in
the target filesystem. This is typically not useful for
correct operation of programs.
comment "gettext requires a toolchain with WCHAR support" comment "gettext requires a toolchain with WCHAR support"
depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR

View File

@ -3,147 +3,37 @@
# gettext # gettext
# #
############################################################# #############################################################
GETTEXT_VERSION:=0.16.1 GETTEXT_VERSION = 0.16.1
GETTEXT_SOURCE:=gettext-$(GETTEXT_VERSION).tar.gz GETTEXT_SITE = $(BR2_GNU_MIRROR)/gettext
GETTEXT_SITE:=$(BR2_GNU_MIRROR)/gettext GETTEXT_INSTALL_STAGING = YES
GETTEXT_DIR:=$(BUILD_DIR)/gettext-$(GETTEXT_VERSION) GETTEXT_LICENSE = GPLv2+
GETTEXT_CAT:=$(ZCAT) GETTEXT_LICENSE_FILES = COPYING
GETTEXT_BINARY:=gettext-runtime/src/gettext
GETTEXT_TARGET_BINARY:=usr/bin/gettext
LIBINTL_TARGET_BINARY:=usr/lib/libintl.so GETTEXT_CONF_OPT += \
$(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 \ --disable-libasprintf \
--enable-shared \
$(IGNORE_EXTERNAL_GETTEXT) \
--disable-openmp \ --disable-openmp \
) --disable-rpath \
touch $@ --disable-java \
--disable-native-java \
--disable-csharp \
--disable-relocatable \
--without-emacs
$(GETTEXT_DIR)/$(GETTEXT_BINARY): $(GETTEXT_DIR)/.configured # Force build with NLS support, otherwise libintl is not built
$(MAKE) -C $(GETTEXT_DIR) # This is needed because some packages (eg. libglib2) requires
touch -c $(GETTEXT_DIR)/$(GETTEXT_BINARY) # locales, but do not properly depend on BR2_ENABLE_LOCALE, and
# instead select BR2_PACKAGE_GETTEXT. Those packages need to be
$(STAGING_DIR)/$(GETTEXT_TARGET_BINARY): $(GETTEXT_DIR)/$(GETTEXT_BINARY) # fixed before we can remove the following 3 lines... :-(
$(MAKE) DESTDIR=$(STAGING_DIR) -C $(GETTEXT_DIR) install ifeq ($(BR2_ENABLE_LOCALE),)
$(SED) 's,/lib/,$(STAGING_DIR)/usr/lib/,g' $(STAGING_DIR)/usr/lib/libgettextlib.la GETTEXT_CONF_OPT += --enable-nls
$(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-legal-info:
@$(call legal-warning-pkg,gettext,legal-info not yet implemented)
gettext: host-pkg-config $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY) $(TARGET_DIR)/$(LIBINTL_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
#
#############################################################
$(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 $@
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_GETTEXT),y)
TARGETS+=gettext
endif endif
# When the gettext tools are not enabled in the configuration, we only
# install libintl to the target.
ifeq ($(BR2_PACKAGE_GETTEXT_TOOLS),)
define GETTEXT_INSTALL_TARGET_CMDS
cp -dpf $(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/
endef
endif # GETTEXT_TOOLS = n
$(eval $(autotools-package))