diff options
Diffstat (limited to 'package/libs/gettext')
| -rw-r--r-- | package/libs/gettext/Makefile | 68 | ||||
| -rw-r--r-- | package/libs/gettext/src/LICENSE | 7 | ||||
| -rw-r--r-- | package/libs/gettext/src/include/libintl.h | 53 | ||||
| -rw-r--r-- | package/libs/gettext/src/m4/codeset.m4 | 21 | ||||
| -rw-r--r-- | package/libs/gettext/src/m4/gettext.m4 | 383 | ||||
| -rw-r--r-- | package/libs/gettext/src/m4/intl.m4 | 294 | ||||
| -rw-r--r-- | package/libs/gettext/src/m4/intldir.m4 | 19 | ||||
| -rw-r--r-- | package/libs/gettext/src/m4/intlmacosx.m4 | 51 | ||||
| -rw-r--r-- | package/libs/gettext/src/m4/lcmessage.m4 | 31 | ||||
| -rw-r--r-- | package/libs/gettext/src/m4/nls.m4 | 32 | ||||
| -rw-r--r-- | package/libs/gettext/src/m4/po.m4 | 449 | 
11 files changed, 1408 insertions, 0 deletions
diff --git a/package/libs/gettext/Makefile b/package/libs/gettext/Makefile new file mode 100644 index 000000000..1ee785eec --- /dev/null +++ b/package/libs/gettext/Makefile @@ -0,0 +1,68 @@ +# +# Copyright (C) 2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=gettext +PKG_RELEASE:=2 + +PKG_LICENSE:=FREE +PKG_LICENSE_FILES:=LICENSE + +PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org> + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk + +define Package/libintl +  SECTION:=libs +  CATEGORY:=Libraries +  TITLE:=Stub header for the GNU Internationalization library +endef + +define Build/Prepare +	$(INSTALL_DIR) $(PKG_BUILD_DIR) +	$(CP) ./src/* $(PKG_BUILD_DIR)/ +endef       + +define Build/Configure +endef + +define Build/Compile +endef + +define Build/InstallDev +	$(INSTALL_DIR) $(1)/usr/lib/libintl-stub/include +	$(INSTALL_DATA) $(PKG_BUILD_DIR)/include/libintl.h $(1)/usr/lib/libintl-stub/include/ + +	$(INSTALL_DIR) $(1)/usr/share/aclocal +	$(INSTALL_DATA) $(PKG_BUILD_DIR)/m4/* $(1)/usr/share/aclocal/ +endef + +define Host/Prepare +	mkdir -p $(HOST_BUILD_DIR) +endef + +define Host/Compile + +endef + +define Host/Install +	$(INSTALL_DIR) $(STAGING_DIR_HOST)/include +	$(INSTALL_DATA) ./src/include/libintl.h $(STAGING_DIR_HOST)/include/ + +	$(INSTALL_DIR) $(STAGING_DIR_HOST)/share/aclocal +	$(INSTALL_DATA) ./src/m4/* $(STAGING_DIR_HOST)/share/aclocal/ +endef + +define Package/libintl/install +	$(INSTALL_DIR) $(1)/tmp +	touch $(1)/tmp/.libintl-placeholder +endef + +$(eval $(call HostBuild)) +$(eval $(call BuildPackage,libintl)) diff --git a/package/libs/gettext/src/LICENSE b/package/libs/gettext/src/LICENSE new file mode 100644 index 000000000..d1a59b05e --- /dev/null +++ b/package/libs/gettext/src/LICENSE @@ -0,0 +1,7 @@ +Each source file contains the following message: + +Copyright (C) 1995-2010 Free Software Foundation, Inc. +This file is free software; the Free Software Foundation +gives unlimited permission to copy and/or distribute it, +with or without modifications, as long as this notice is preserved. + diff --git a/package/libs/gettext/src/include/libintl.h b/package/libs/gettext/src/include/libintl.h new file mode 100644 index 000000000..a1157a445 --- /dev/null +++ b/package/libs/gettext/src/include/libintl.h @@ -0,0 +1,53 @@ +/* + * This code is lifted from http://permalink.gmane.org/gmane.linux.gentoo.embedded/3218 + */ + +#ifndef _LIBINTL_H +#define _LIBINTL_H      1 + +#include <locale.h> + +/* Undef gettext macros, if any... */ +#undef gettext +#undef dgettext +#undef dcgettext +#undef ngettext +#undef dngettext +#undef dcngettext +#undef textdomain +#undef bindtextdomain +#undef bind_textdomain_codeset + +/* part of locale.h */ +/* #undef setlocale */ + +#undef _ +#undef N_ + +/* Define gettext stubs that map back to the original strings */ +#define gettext(String) (String) +#define dgettext(Domain, String) (String) +#define dcgettext(Domain, String, Type) (String) + +#define ngettext(Singular, Plural, Count) \ +	((Count) == 1 ? (const char *) (Singular) : (const char *) (Plural)) + +#define dngettext(Domain, Singular, Plural, Count) \ +	((Count) == 1 ? (const char *) (Singular) : (const char *) (Plural)) + +#define dcngettext(Domain, Singular, Plural, Count, Category) \ +	((Count) == 1 ? (const char *) (Singular) : (const char *) (Plural)) + +#define _(String) (String) +#define N_(String) String + +#ifndef _LOCALE_H +/* #define setlocale(Category, Locale) ((char *)NULL) */ +#endif + +/* No-ops for textdomain operations */ +#define bindtextdomain(Domain, Directory) (Domain) +#define bind_textdomain_codeset(Domain, Codeset) (Codeset) +#define textdomain(String) (String) ?: "messages" + +#endif  /* _LIBINTL_H */ diff --git a/package/libs/gettext/src/m4/codeset.m4 b/package/libs/gettext/src/m4/codeset.m4 new file mode 100644 index 000000000..a53c04260 --- /dev/null +++ b/package/libs/gettext/src/m4/codeset.m4 @@ -0,0 +1,21 @@ +# codeset.m4 serial 4 (gettext-0.18) +dnl Copyright (C) 2000-2002, 2006, 2008-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_LANGINFO_CODESET], +[ +  AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], +    [AC_TRY_LINK([#include <langinfo.h>], +      [char* cs = nl_langinfo(CODESET); return !cs;], +      [am_cv_langinfo_codeset=yes], +      [am_cv_langinfo_codeset=no]) +    ]) +  if test $am_cv_langinfo_codeset = yes; then +    AC_DEFINE([HAVE_LANGINFO_CODESET], [1], +      [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) +  fi +]) diff --git a/package/libs/gettext/src/m4/gettext.m4 b/package/libs/gettext/src/m4/gettext.m4 new file mode 100644 index 000000000..f84e6a5d7 --- /dev/null +++ b/package/libs/gettext/src/m4/gettext.m4 @@ -0,0 +1,383 @@ +# gettext.m4 serial 63 (gettext-0.18) +dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl    default (if it is not specified or empty) is 'no-libtool'. +dnl    INTLSYMBOL should be 'external' for packages with no intl directory, +dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl    If INTLSYMBOL is 'use-libtool', then a libtool library +dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl    depending on --{enable,disable}-{shared,static} and on the presence of +dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl    $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl    implementations (in libc or libintl) without the ngettext() function +dnl    will be ignored.  If NEEDSYMBOL is specified and is +dnl    'need-formatstring-macros', then GNU gettext implementations that don't +dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries.  If empty, +dnl    the value `$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl    and used. +dnl    Catalog format: GNU --> install in $(datadir) +dnl    Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl    Catalog format: GNU --> install in $(datadir) +dnl    Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl    Catalog format: none +dnl    Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ +  dnl Argument checking. +  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , +    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) +  ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], +    [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) +  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , +    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) +  define([gt_included_intl], +    ifelse([$1], [external], +      ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), +      [yes])) +  define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) +  gt_NEEDS_INIT +  AM_GNU_GETTEXT_NEED([$2]) + +  AC_REQUIRE([AM_PO_SUBDIRS])dnl +  ifelse(gt_included_intl, yes, [ +    AC_REQUIRE([AM_INTL_SUBDIR])dnl +  ]) + +  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. +  AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) +  AC_REQUIRE([AC_LIB_RPATH]) + +  dnl Sometimes libintl requires libiconv, so first search for libiconv. +  dnl Ideally we would do this search only after the +  dnl      if test "$USE_NLS" = "yes"; then +  dnl        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then +  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT +  dnl the configure script would need to contain the same shell code +  dnl again, outside any 'if'. There are two solutions: +  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. +  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. +  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not +  dnl documented, we avoid it. +  ifelse(gt_included_intl, yes, , [ +    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) +  ]) + +  dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. +  gt_INTL_MACOSX + +  dnl Set USE_NLS. +  AC_REQUIRE([AM_NLS]) + +  ifelse(gt_included_intl, yes, [ +    BUILD_INCLUDED_LIBINTL=no +    USE_INCLUDED_LIBINTL=no +  ]) +  LIBINTL= +  LTLIBINTL= +  POSUB= + +  dnl Add a version number to the cache macros. +  case " $gt_needs " in +    *" need-formatstring-macros "*) gt_api_version=3 ;; +    *" need-ngettext "*) gt_api_version=2 ;; +    *) gt_api_version=1 ;; +  esac +  gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" +  gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + +  dnl If we use NLS figure out what method +  if test "$USE_NLS" = "yes"; then +    gt_use_preinstalled_gnugettext=no +    ifelse(gt_included_intl, yes, [ +      AC_MSG_CHECKING([whether included gettext is requested]) +      AC_ARG_WITH([included-gettext], +        [  --with-included-gettext use the GNU gettext library included here], +        nls_cv_force_use_gnu_gettext=$withval, +        nls_cv_force_use_gnu_gettext=no) +      AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + +      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" +      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then +    ]) +        dnl User does not insist on using GNU NLS library.  Figure out what +        dnl to use.  If GNU gettext is available we use this.  Else we have +        dnl to fall back to GNU NLS library. + +        if test $gt_api_version -ge 3; then +          gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' +        else +          gt_revision_test_code= +        fi +        if test $gt_api_version -ge 2; then +          gt_expression_test_code=' + * ngettext ("", "", 0)' +        else +          gt_expression_test_code= +        fi + +        AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], +         [AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], +            [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], +            [eval "$gt_func_gnugettext_libc=yes"], +            [eval "$gt_func_gnugettext_libc=no"])]) + +        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then +          dnl Sometimes libintl requires libiconv, so first search for libiconv. +          ifelse(gt_included_intl, yes, , [ +            AM_ICONV_LINK +          ]) +          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL +          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) +          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL +          dnl even if libiconv doesn't exist. +          AC_LIB_LINKFLAGS_BODY([intl]) +          AC_CACHE_CHECK([for GNU gettext in libintl], +            [$gt_func_gnugettext_libintl], +           [gt_save_CPPFLAGS="$CPPFLAGS" +            CPPFLAGS="$CPPFLAGS $INCINTL" +            gt_save_LIBS="$LIBS" +            LIBS="$LIBS $LIBINTL" +            dnl Now see whether libintl exists and does not depend on libiconv. +            AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], +              [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], +              [eval "$gt_func_gnugettext_libintl=yes"], +              [eval "$gt_func_gnugettext_libintl=no"]) +            dnl Now see whether libintl exists and depends on libiconv. +            if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then +              LIBS="$LIBS $LIBICONV" +              AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], +                [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], +               [LIBINTL="$LIBINTL $LIBICONV" +                LTLIBINTL="$LTLIBINTL $LTLIBICONV" +                eval "$gt_func_gnugettext_libintl=yes" +               ]) +            fi +            CPPFLAGS="$gt_save_CPPFLAGS" +            LIBS="$gt_save_LIBS"]) +        fi + +        dnl If an already present or preinstalled GNU gettext() is found, +        dnl use it.  But if this macro is used in GNU gettext, and GNU +        dnl gettext is already preinstalled in libintl, we update this +        dnl libintl.  (Cf. the install rule in intl/Makefile.in.) +        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ +           || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ +                && test "$PACKAGE" != gettext-runtime \ +                && test "$PACKAGE" != gettext-tools; }; then +          gt_use_preinstalled_gnugettext=yes +        else +          dnl Reset the values set by searching for libintl. +          LIBINTL= +          LTLIBINTL= +          INCINTL= +        fi + +    ifelse(gt_included_intl, yes, [ +        if test "$gt_use_preinstalled_gnugettext" != "yes"; then +          dnl GNU gettext is not found in the C library. +          dnl Fall back on included GNU gettext library. +          nls_cv_use_gnu_gettext=yes +        fi +      fi + +      if test "$nls_cv_use_gnu_gettext" = "yes"; then +        dnl Mark actions used to generate GNU NLS library. +        BUILD_INCLUDED_LIBINTL=yes +        USE_INCLUDED_LIBINTL=yes +        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" +        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" +        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` +      fi + +      CATOBJEXT= +      if test "$gt_use_preinstalled_gnugettext" = "yes" \ +         || test "$nls_cv_use_gnu_gettext" = "yes"; then +        dnl Mark actions to use GNU gettext tools. +        CATOBJEXT=.gmo +      fi +    ]) + +    if test -n "$INTL_MACOSX_LIBS"; then +      if test "$gt_use_preinstalled_gnugettext" = "yes" \ +         || test "$nls_cv_use_gnu_gettext" = "yes"; then +        dnl Some extra flags are needed during linking. +        LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" +        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" +      fi +    fi + +    if test "$gt_use_preinstalled_gnugettext" = "yes" \ +       || test "$nls_cv_use_gnu_gettext" = "yes"; then +      AC_DEFINE([ENABLE_NLS], [1], +        [Define to 1 if translation of program messages to the user's native language +   is requested.]) +    else +      USE_NLS=no +    fi +  fi + +  AC_MSG_CHECKING([whether to use NLS]) +  AC_MSG_RESULT([$USE_NLS]) +  if test "$USE_NLS" = "yes"; then +    AC_MSG_CHECKING([where the gettext function comes from]) +    if test "$gt_use_preinstalled_gnugettext" = "yes"; then +      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then +        gt_source="external libintl" +      else +        gt_source="libc" +      fi +    else +      gt_source="included intl directory" +    fi +    AC_MSG_RESULT([$gt_source]) +  fi + +  if test "$USE_NLS" = "yes"; then + +    if test "$gt_use_preinstalled_gnugettext" = "yes"; then +      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then +        AC_MSG_CHECKING([how to link with libintl]) +        AC_MSG_RESULT([$LIBINTL]) +        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) +      fi + +      dnl For backward compatibility. Some packages may be using this. +      AC_DEFINE([HAVE_GETTEXT], [1], +       [Define if the GNU gettext() function is already present or preinstalled.]) +      AC_DEFINE([HAVE_DCGETTEXT], [1], +       [Define if the GNU dcgettext() function is already present or preinstalled.]) +    fi + +    dnl We need to process the po/ directory. +    POSUB=po +  fi + +  ifelse(gt_included_intl, yes, [ +    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL +    dnl to 'yes' because some of the testsuite requires it. +    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then +      BUILD_INCLUDED_LIBINTL=yes +    fi + +    dnl Make all variables we use known to autoconf. +    AC_SUBST([BUILD_INCLUDED_LIBINTL]) +    AC_SUBST([USE_INCLUDED_LIBINTL]) +    AC_SUBST([CATOBJEXT]) + +    dnl For backward compatibility. Some configure.ins may be using this. +    nls_cv_header_intl= +    nls_cv_header_libgt= + +    dnl For backward compatibility. Some Makefiles may be using this. +    DATADIRNAME=share +    AC_SUBST([DATADIRNAME]) + +    dnl For backward compatibility. Some Makefiles may be using this. +    INSTOBJEXT=.mo +    AC_SUBST([INSTOBJEXT]) + +    dnl For backward compatibility. Some Makefiles may be using this. +    GENCAT=gencat +    AC_SUBST([GENCAT]) + +    dnl For backward compatibility. Some Makefiles may be using this. +    INTLOBJS= +    if test "$USE_INCLUDED_LIBINTL" = yes; then +      INTLOBJS="\$(GETTOBJS)" +    fi +    AC_SUBST([INTLOBJS]) + +    dnl Enable libtool support if the surrounding package wishes it. +    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix +    AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) +  ]) + +  dnl For backward compatibility. Some Makefiles may be using this. +  INTLLIBS="$LIBINTL" +  AC_SUBST([INTLLIBS]) + +  dnl Make all documented variables known to autoconf. +  AC_SUBST([LIBINTL]) +  AC_SUBST([LTLIBINTL]) +  AC_SUBST([POSUB]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ +  m4_divert_text([DEFAULTS], [gt_needs=]) +  m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ +  m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/package/libs/gettext/src/m4/intl.m4 b/package/libs/gettext/src/m4/intl.m4 new file mode 100644 index 000000000..335b23c20 --- /dev/null +++ b/package/libs/gettext/src/m4/intl.m4 @@ -0,0 +1,294 @@ +# intl.m4 serial 17 (gettext-0.18) +dnl Copyright (C) 1995-2009 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2009. + +AC_PREREQ([2.52]) + +dnl Checks for all prerequisites of the intl subdirectory, +dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, +dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. +AC_DEFUN([AM_INTL_SUBDIR], +[ +  AC_REQUIRE([AC_PROG_INSTALL])dnl +  AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake +  AC_REQUIRE([AC_PROG_CC])dnl +  AC_REQUIRE([AC_CANONICAL_HOST])dnl +  AC_REQUIRE([gt_GLIBC2])dnl +  AC_REQUIRE([AC_PROG_RANLIB])dnl +  AC_REQUIRE([gl_VISIBILITY])dnl +  AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl +  AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl +  AC_REQUIRE([gt_TYPE_WCHAR_T])dnl +  AC_REQUIRE([gt_TYPE_WINT_T])dnl +  AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) +  AC_REQUIRE([gt_TYPE_INTMAX_T]) +  AC_REQUIRE([gt_PRINTF_POSIX]) +  AC_REQUIRE([gl_GLIBC21])dnl +  AC_REQUIRE([gl_XSIZE])dnl +  AC_REQUIRE([gl_FCNTL_O_FLAGS])dnl +  AC_REQUIRE([gt_INTL_MACOSX])dnl + +  dnl Support for automake's --enable-silent-rules. +  case "$enable_silent_rules" in +    yes) INTL_DEFAULT_VERBOSITY=0;; +    no)  INTL_DEFAULT_VERBOSITY=1;; +    *)   INTL_DEFAULT_VERBOSITY=1;; +  esac +  AC_SUBST([INTL_DEFAULT_VERBOSITY]) + +  AC_CHECK_TYPE([ptrdiff_t], , +    [AC_DEFINE([ptrdiff_t], [long], +       [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) +    ]) +  AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) +  AC_CHECK_FUNCS([asprintf fwprintf newlocale putenv setenv setlocale \ +    snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb]) + +  dnl Use the _snprintf function only if it is declared (because on NetBSD it +  dnl is defined as a weak alias of snprintf; we prefer to use the latter). +  gt_CHECK_DECL(_snprintf, [#include <stdio.h>]) +  gt_CHECK_DECL(_snwprintf, [#include <stdio.h>]) + +  dnl Use the *_unlocked functions only if they are declared. +  dnl (because some of them were defined without being declared in Solaris +  dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built +  dnl on Solaris 2.5.1 to run on Solaris 2.6). +  dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. +  gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>]) + +  case $gt_cv_func_printf_posix in +    *yes) HAVE_POSIX_PRINTF=1 ;; +    *) HAVE_POSIX_PRINTF=0 ;; +  esac +  AC_SUBST([HAVE_POSIX_PRINTF]) +  if test "$ac_cv_func_asprintf" = yes; then +    HAVE_ASPRINTF=1 +  else +    HAVE_ASPRINTF=0 +  fi +  AC_SUBST([HAVE_ASPRINTF]) +  if test "$ac_cv_func_snprintf" = yes; then +    HAVE_SNPRINTF=1 +  else +    HAVE_SNPRINTF=0 +  fi +  AC_SUBST([HAVE_SNPRINTF]) +  if test "$ac_cv_func_newlocale" = yes; then +    HAVE_NEWLOCALE=1 +  else +    HAVE_NEWLOCALE=0 +  fi +  AC_SUBST([HAVE_NEWLOCALE]) +  if test "$ac_cv_func_wprintf" = yes; then +    HAVE_WPRINTF=1 +  else +    HAVE_WPRINTF=0 +  fi +  AC_SUBST([HAVE_WPRINTF]) + +  AM_LANGINFO_CODESET +  gt_LC_MESSAGES + +  dnl Compilation on mingw and Cygwin needs special Makefile rules, because +  dnl 1. when we install a shared library, we must arrange to export +  dnl    auxiliary pointer variables for every exported variable, +  dnl 2. when we install a shared library and a static library simultaneously, +  dnl    the include file specifies __declspec(dllimport) and therefore we +  dnl    must arrange to define the auxiliary pointer variables for the +  dnl    exported variables _also_ in the static library. +  if test "$enable_shared" = yes; then +    case "$host_os" in +      mingw* | cygwin*) is_woe32dll=yes ;; +      *) is_woe32dll=no ;; +    esac +  else +    is_woe32dll=no +  fi +  WOE32DLL=$is_woe32dll +  AC_SUBST([WOE32DLL]) + +  dnl On mingw and Cygwin, we can activate special Makefile rules which add +  dnl version information to the shared libraries and executables. +  case "$host_os" in +    mingw* | cygwin*) is_woe32=yes ;; +    *) is_woe32=no ;; +  esac +  WOE32=$is_woe32 +  AC_SUBST([WOE32]) +  if test $WOE32 = yes; then +    dnl Check for a program that compiles Windows resource files. +    AC_CHECK_TOOL([WINDRES], [windres]) +  fi + +  dnl Determine whether when creating a library, "-lc" should be passed to +  dnl libtool or not. On many platforms, it is required for the libtool option +  dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool +  dnl in the *.la files - makes it impossible to create multithreaded programs, +  dnl because libtool also reorders the -lc to come before the -pthread, and +  dnl this disables pthread_create() <http://docs.hp.com/en/1896/pthreads.html>. +  case "$host_os" in +    hpux*) LTLIBC="" ;; +    *)     LTLIBC="-lc" ;; +  esac +  AC_SUBST([LTLIBC]) + +  dnl Rename some macros and functions used for locking. +  AH_BOTTOM([ +#define __libc_lock_t                   gl_lock_t +#define __libc_lock_define              gl_lock_define +#define __libc_lock_define_initialized  gl_lock_define_initialized +#define __libc_lock_init                gl_lock_init +#define __libc_lock_lock                gl_lock_lock +#define __libc_lock_unlock              gl_lock_unlock +#define __libc_lock_recursive_t                   gl_recursive_lock_t +#define __libc_lock_define_recursive              gl_recursive_lock_define +#define __libc_lock_define_initialized_recursive  gl_recursive_lock_define_initialized +#define __libc_lock_init_recursive                gl_recursive_lock_init +#define __libc_lock_lock_recursive                gl_recursive_lock_lock +#define __libc_lock_unlock_recursive              gl_recursive_lock_unlock +#define glthread_in_use  libintl_thread_in_use +#define glthread_lock_init_func     libintl_lock_init_func +#define glthread_lock_lock_func     libintl_lock_lock_func +#define glthread_lock_unlock_func   libintl_lock_unlock_func +#define glthread_lock_destroy_func  libintl_lock_destroy_func +#define glthread_rwlock_init_multithreaded     libintl_rwlock_init_multithreaded +#define glthread_rwlock_init_func              libintl_rwlock_init_func +#define glthread_rwlock_rdlock_multithreaded   libintl_rwlock_rdlock_multithreaded +#define glthread_rwlock_rdlock_func            libintl_rwlock_rdlock_func +#define glthread_rwlock_wrlock_multithreaded   libintl_rwlock_wrlock_multithreaded +#define glthread_rwlock_wrlock_func            libintl_rwlock_wrlock_func +#define glthread_rwlock_unlock_multithreaded   libintl_rwlock_unlock_multithreaded +#define glthread_rwlock_unlock_func            libintl_rwlock_unlock_func +#define glthread_rwlock_destroy_multithreaded  libintl_rwlock_destroy_multithreaded +#define glthread_rwlock_destroy_func           libintl_rwlock_destroy_func +#define glthread_recursive_lock_init_multithreaded     libintl_recursive_lock_init_multithreaded +#define glthread_recursive_lock_init_func              libintl_recursive_lock_init_func +#define glthread_recursive_lock_lock_multithreaded     libintl_recursive_lock_lock_multithreaded +#define glthread_recursive_lock_lock_func              libintl_recursive_lock_lock_func +#define glthread_recursive_lock_unlock_multithreaded   libintl_recursive_lock_unlock_multithreaded +#define glthread_recursive_lock_unlock_func            libintl_recursive_lock_unlock_func +#define glthread_recursive_lock_destroy_multithreaded  libintl_recursive_lock_destroy_multithreaded +#define glthread_recursive_lock_destroy_func           libintl_recursive_lock_destroy_func +#define glthread_once_func            libintl_once_func +#define glthread_once_singlethreaded  libintl_once_singlethreaded +#define glthread_once_multithreaded   libintl_once_multithreaded +]) +]) + + +dnl Checks for the core files of the intl subdirectory: +dnl   dcigettext.c +dnl   eval-plural.h +dnl   explodename.c +dnl   finddomain.c +dnl   gettextP.h +dnl   gmo.h +dnl   hash-string.h hash-string.c +dnl   l10nflist.c +dnl   libgnuintl.h.in (except the *printf stuff) +dnl   loadinfo.h +dnl   loadmsgcat.c +dnl   localealias.c +dnl   log.c +dnl   plural-exp.h plural-exp.c +dnl   plural.y +dnl Used by libglocale. +AC_DEFUN([gt_INTL_SUBDIR_CORE], +[ +  AC_REQUIRE([AC_C_INLINE])dnl +  AC_REQUIRE([AC_TYPE_SIZE_T])dnl +  AC_REQUIRE([gl_AC_HEADER_STDINT_H]) +  AC_REQUIRE([AC_FUNC_ALLOCA])dnl +  AC_REQUIRE([AC_FUNC_MMAP])dnl +  AC_REQUIRE([gt_INTDIV0])dnl +  AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl +  AC_REQUIRE([gt_INTTYPES_PRI])dnl +  AC_REQUIRE([gl_LOCK])dnl + +  AC_TRY_LINK( +    [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], +    [], +    [AC_DEFINE([HAVE_BUILTIN_EXPECT], [1], +       [Define to 1 if the compiler understands __builtin_expect.])]) + +  AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) +  AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ +    stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \ +    argz_stringify argz_next __fsetlocking]) + +  dnl Use the *_unlocked functions only if they are declared. +  dnl (because some of them were defined without being declared in Solaris +  dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built +  dnl on Solaris 2.5.1 to run on Solaris 2.6). +  dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. +  gt_CHECK_DECL([feof_unlocked], [#include <stdio.h>]) +  gt_CHECK_DECL([fgets_unlocked], [#include <stdio.h>]) + +  AM_ICONV + +  dnl intl/plural.c is generated from intl/plural.y. It requires bison, +  dnl because plural.y uses bison specific features. It requires at least +  dnl bison-1.26 because earlier versions generate a plural.c that doesn't +  dnl compile. +  dnl bison is only needed for the maintainer (who touches plural.y). But in +  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put +  dnl the rule in general Makefile. Now, some people carelessly touch the +  dnl files or have a broken "make" program, hence the plural.c rule will +  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not +  dnl present or too old. +  AC_CHECK_PROGS([INTLBISON], [bison]) +  if test -z "$INTLBISON"; then +    ac_verc_fail=yes +  else +    dnl Found it, now check the version. +    AC_MSG_CHECKING([version of bison]) +changequote(<<,>>)dnl +    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` +    case $ac_prog_version in +      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; +      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) +changequote([,])dnl +         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; +      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; +    esac +    AC_MSG_RESULT([$ac_prog_version]) +  fi +  if test $ac_verc_fail = yes; then +    INTLBISON=: +  fi +]) + + +dnl gt_CHECK_DECL(FUNC, INCLUDES) +dnl Check whether a function is declared. +AC_DEFUN([gt_CHECK_DECL], +[ +  AC_CACHE_CHECK([whether $1 is declared], [ac_cv_have_decl_$1], +    [AC_TRY_COMPILE([$2], [ +#ifndef $1 +  char *p = (char *) $1; +#endif +], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) +  if test $ac_cv_have_decl_$1 = yes; then +    gt_value=1 +  else +    gt_value=0 +  fi +  AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], +    [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) +]) diff --git a/package/libs/gettext/src/m4/intldir.m4 b/package/libs/gettext/src/m4/intldir.m4 new file mode 100644 index 000000000..ebae76d36 --- /dev/null +++ b/package/libs/gettext/src/m4/intldir.m4 @@ -0,0 +1,19 @@ +# intldir.m4 serial 2 (gettext-0.18) +dnl Copyright (C) 2006, 2009-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +AC_PREREQ([2.52]) + +dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory. +AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], []) diff --git a/package/libs/gettext/src/m4/intlmacosx.m4 b/package/libs/gettext/src/m4/intlmacosx.m4 new file mode 100644 index 000000000..dd9102596 --- /dev/null +++ b/package/libs/gettext/src/m4/intlmacosx.m4 @@ -0,0 +1,51 @@ +# intlmacosx.m4 serial 3 (gettext-0.18) +dnl Copyright (C) 2004-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on MacOS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ +  dnl Check for API introduced in MacOS X 10.2. +  AC_CACHE_CHECK([for CFPreferencesCopyAppValue], +    [gt_cv_func_CFPreferencesCopyAppValue], +    [gt_save_LIBS="$LIBS" +     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" +     AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>], +       [CFPreferencesCopyAppValue(NULL, NULL)], +       [gt_cv_func_CFPreferencesCopyAppValue=yes], +       [gt_cv_func_CFPreferencesCopyAppValue=no]) +     LIBS="$gt_save_LIBS"]) +  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then +    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], +      [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) +  fi +  dnl Check for API introduced in MacOS X 10.3. +  AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], +    [gt_save_LIBS="$LIBS" +     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" +     AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();], +       [gt_cv_func_CFLocaleCopyCurrent=yes], +       [gt_cv_func_CFLocaleCopyCurrent=no]) +     LIBS="$gt_save_LIBS"]) +  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then +    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], +      [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) +  fi +  INTL_MACOSX_LIBS= +  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then +    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" +  fi +  AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/package/libs/gettext/src/m4/lcmessage.m4 b/package/libs/gettext/src/m4/lcmessage.m4 new file mode 100644 index 000000000..1a705431a --- /dev/null +++ b/package/libs/gettext/src/m4/lcmessage.m4 @@ -0,0 +1,31 @@ +# lcmessage.m4 serial 6 (gettext-0.18) +dnl Copyright (C) 1995-2002, 2004-2005, 2008-2010 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl   Ulrich Drepper <drepper@cygnus.com>, 1995. + +# Check whether LC_MESSAGES is available in <locale.h>. + +AC_DEFUN([gt_LC_MESSAGES], +[ +  AC_CACHE_CHECK([for LC_MESSAGES], [gt_cv_val_LC_MESSAGES], +    [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], +       [gt_cv_val_LC_MESSAGES=yes], [gt_cv_val_LC_MESSAGES=no])]) +  if test $gt_cv_val_LC_MESSAGES = yes; then +    AC_DEFINE([HAVE_LC_MESSAGES], [1], +      [Define if your <locale.h> file defines LC_MESSAGES.]) +  fi +]) diff --git a/package/libs/gettext/src/m4/nls.m4 b/package/libs/gettext/src/m4/nls.m4 new file mode 100644 index 000000000..003704c4b --- /dev/null +++ b/package/libs/gettext/src/m4/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ +  AC_MSG_CHECKING([whether NLS is requested]) +  dnl Default is enabled NLS +  AC_ARG_ENABLE([nls], +    [  --disable-nls           do not use Native Language Support], +    USE_NLS=$enableval, USE_NLS=yes) +  AC_MSG_RESULT([$USE_NLS]) +  AC_SUBST([USE_NLS]) +]) diff --git a/package/libs/gettext/src/m4/po.m4 b/package/libs/gettext/src/m4/po.m4 new file mode 100644 index 000000000..47f36a41a --- /dev/null +++ b/package/libs/gettext/src/m4/po.m4 @@ -0,0 +1,449 @@ +# po.m4 serial 17 (gettext-0.18) +dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ([2.50]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ +  AC_REQUIRE([AC_PROG_MAKE_SET])dnl +  AC_REQUIRE([AC_PROG_INSTALL])dnl +  AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake +  AC_REQUIRE([AM_NLS])dnl + +  dnl Release version of the gettext macros. This is used to ensure that +  dnl the gettext macros and po/Makefile.in.in are in sync. +  AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) + +  dnl Perform the following tests also if --disable-nls has been given, +  dnl because they are needed for "make dist" to work. + +  dnl Search for GNU msgfmt in the PATH. +  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. +  dnl The second test excludes FreeBSD msgfmt. +  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, +    [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && +     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], +    :) +  AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + +  dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl +  case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in +    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; +    *) MSGFMT_015=$MSGFMT ;; +  esac +changequote([,])dnl +  AC_SUBST([MSGFMT_015]) +changequote(,)dnl +  case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in +    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; +    *) GMSGFMT_015=$GMSGFMT ;; +  esac +changequote([,])dnl +  AC_SUBST([GMSGFMT_015]) + +  dnl Search for GNU xgettext 0.12 or newer in the PATH. +  dnl The first test excludes Solaris xgettext and early GNU xgettext versions. +  dnl The second test excludes FreeBSD xgettext. +  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, +    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && +     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], +    :) +  dnl Remove leftover from FreeBSD xgettext call. +  rm -f messages.po + +  dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl +  case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in +    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; +    *) XGETTEXT_015=$XGETTEXT ;; +  esac +changequote([,])dnl +  AC_SUBST([XGETTEXT_015]) + +  dnl Search for GNU msgmerge 0.11 or newer in the PATH. +  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, +    [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + +  dnl Installation directories. +  dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we +  dnl have to define it here, so that it can be used in po/Makefile. +  test -n "$localedir" || localedir='${datadir}/locale' +  AC_SUBST([localedir]) + +  dnl Support for AM_XGETTEXT_OPTION. +  test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= +  AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + +  AC_CONFIG_COMMANDS([po-directories], [[ +    for ac_file in $CONFIG_FILES; do +      # Support "outfile[:infile[:infile...]]" +      case "$ac_file" in +        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; +      esac +      # PO directories have a Makefile.in generated from Makefile.in.in. +      case "$ac_file" in */Makefile.in) +        # Adjust a relative srcdir. +        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` +        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" +        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` +        # In autoconf-2.13 it is called $ac_given_srcdir. +        # In autoconf-2.50 it is called $srcdir. +        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" +        case "$ac_given_srcdir" in +          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; +          /*) top_srcdir="$ac_given_srcdir" ;; +          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;; +        esac +        # Treat a directory as a PO directory if and only if it has a +        # POTFILES.in file. This allows packages to have multiple PO +        # directories under different names or in different locations. +        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then +          rm -f "$ac_dir/POTFILES" +          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" +          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" +          POMAKEFILEDEPS="POTFILES.in" +          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend +          # on $ac_dir but don't depend on user-specified configuration +          # parameters. +          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then +            # The LINGUAS file contains the set of available languages. +            if test -n "$OBSOLETE_ALL_LINGUAS"; then +              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" +            fi +            ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` +            # Hide the ALL_LINGUAS assigment from automake < 1.5. +            eval 'ALL_LINGUAS''=$ALL_LINGUAS_' +            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" +          else +            # The set of available languages was given in configure.in. +            # Hide the ALL_LINGUAS assigment from automake < 1.5. +            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' +          fi +          # Compute POFILES +          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) +          # Compute UPDATEPOFILES +          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) +          # Compute DUMMYPOFILES +          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop) +          # Compute GMOFILES +          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) +          case "$ac_given_srcdir" in +            .) srcdirpre= ;; +            *) srcdirpre='$(srcdir)/' ;; +          esac +          POFILES= +          UPDATEPOFILES= +          DUMMYPOFILES= +          GMOFILES= +          for lang in $ALL_LINGUAS; do +            POFILES="$POFILES $srcdirpre$lang.po" +            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" +            DUMMYPOFILES="$DUMMYPOFILES $lang.nop" +            GMOFILES="$GMOFILES $srcdirpre$lang.gmo" +          done +          # CATALOGS depends on both $ac_dir and the user's LINGUAS +          # environment variable. +          INST_LINGUAS= +          if test -n "$ALL_LINGUAS"; then +            for presentlang in $ALL_LINGUAS; do +              useit=no +              if test "%UNSET%" != "$LINGUAS"; then +                desiredlanguages="$LINGUAS" +              else +                desiredlanguages="$ALL_LINGUAS" +              fi +              for desiredlang in $desiredlanguages; do +                # Use the presentlang catalog if desiredlang is +                #   a. equal to presentlang, or +                #   b. a variant of presentlang (because in this case, +                #      presentlang can be used as a fallback for messages +                #      which are not translated in the desiredlang catalog). +                case "$desiredlang" in +                  "$presentlang"*) useit=yes;; +                esac +              done +              if test $useit = yes; then +                INST_LINGUAS="$INST_LINGUAS $presentlang" +              fi +            done +          fi +          CATALOGS= +          if test -n "$INST_LINGUAS"; then +            for lang in $INST_LINGUAS; do +              CATALOGS="$CATALOGS $lang.gmo" +            done +          fi +          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" +          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" +          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do +            if test -f "$f"; then +              case "$f" in +                *.orig | *.bak | *~) ;; +                *) cat "$f" >> "$ac_dir/Makefile" ;; +              esac +            fi +          done +        fi +        ;; +      esac +    done]], +   [# Capture the value of obsolete ALL_LINGUAS because we need it to compute +    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it +    # from automake < 1.5. +    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' +    # Capture the value of LINGUAS because we need it to compute CATALOGS. +    LINGUAS="${LINGUAS-%UNSET%}" +   ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ +  # When this code is run, in config.status, two variables have already been +  # set: +  # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, +  # - LINGUAS is the value of the environment variable LINGUAS at configure +  #   time. + +changequote(,)dnl +  # Adjust a relative srcdir. +  ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` +  ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" +  ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` +  # In autoconf-2.13 it is called $ac_given_srcdir. +  # In autoconf-2.50 it is called $srcdir. +  test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" +  case "$ac_given_srcdir" in +    .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; +    /*) top_srcdir="$ac_given_srcdir" ;; +    *)  top_srcdir="$ac_dots$ac_given_srcdir" ;; +  esac + +  # Find a way to echo strings without interpreting backslash. +  if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then +    gt_echo='echo' +  else +    if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then +      gt_echo='printf %s\n' +    else +      echo_func () { +        cat <<EOT +$* +EOT +      } +      gt_echo='echo_func' +    fi +  fi + +  # A sed script that extracts the value of VARIABLE from a Makefile. +  sed_x_variable=' +# Test if the hold space is empty. +x +s/P/P/ +x +ta +# Yes it was empty. Look if we have the expected variable definition. +/^[	 ]*VARIABLE[	 ]*=/{ +  # Seen the first line of the variable definition. +  s/^[	 ]*VARIABLE[	 ]*=// +  ba +} +bd +:a +# Here we are processing a line from the variable definition. +# Remove comment, more precisely replace it with a space. +s/#.*$/ / +# See if the line ends in a backslash. +tb +:b +s/\\$// +# Print the line, without the trailing backslash. +p +tc +# There was no trailing backslash. The end of the variable definition is +# reached. Clear the hold space. +s/^.*$// +x +bd +:c +# A trailing backslash means that the variable definition continues in the +# next line. Put a nonempty string into the hold space to indicate this. +s/^.*$/P/ +x +:d +' +changequote([,])dnl + +  # Set POTFILES to the value of the Makefile variable POTFILES. +  sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` +  POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` +  # Compute POTFILES_DEPS as +  #   $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +  POTFILES_DEPS= +  for file in $POTFILES; do +    POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" +  done +  POMAKEFILEDEPS="" + +  if test -n "$OBSOLETE_ALL_LINGUAS"; then +    test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" +  fi +  if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then +    # The LINGUAS file contains the set of available languages. +    ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` +    POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" +  else +    # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. +    sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` +    ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` +  fi +  # Hide the ALL_LINGUAS assigment from automake < 1.5. +  eval 'ALL_LINGUAS''=$ALL_LINGUAS_' +  # Compute POFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) +  # Compute UPDATEPOFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) +  # Compute DUMMYPOFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop) +  # Compute GMOFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) +  # Compute PROPERTIESFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties) +  # Compute CLASSFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class) +  # Compute QMFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) +  # Compute MSGFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) +  # Compute RESOURCESDLLFILES +  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) +  case "$ac_given_srcdir" in +    .) srcdirpre= ;; +    *) srcdirpre='$(srcdir)/' ;; +  esac +  POFILES= +  UPDATEPOFILES= +  DUMMYPOFILES= +  GMOFILES= +  PROPERTIESFILES= +  CLASSFILES= +  QMFILES= +  MSGFILES= +  RESOURCESDLLFILES= +  for lang in $ALL_LINGUAS; do +    POFILES="$POFILES $srcdirpre$lang.po" +    UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" +    DUMMYPOFILES="$DUMMYPOFILES $lang.nop" +    GMOFILES="$GMOFILES $srcdirpre$lang.gmo" +    PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties" +    CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class" +    QMFILES="$QMFILES $srcdirpre$lang.qm" +    frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` +    MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" +    frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` +    RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" +  done +  # CATALOGS depends on both $ac_dir and the user's LINGUAS +  # environment variable. +  INST_LINGUAS= +  if test -n "$ALL_LINGUAS"; then +    for presentlang in $ALL_LINGUAS; do +      useit=no +      if test "%UNSET%" != "$LINGUAS"; then +        desiredlanguages="$LINGUAS" +      else +        desiredlanguages="$ALL_LINGUAS" +      fi +      for desiredlang in $desiredlanguages; do +        # Use the presentlang catalog if desiredlang is +        #   a. equal to presentlang, or +        #   b. a variant of presentlang (because in this case, +        #      presentlang can be used as a fallback for messages +        #      which are not translated in the desiredlang catalog). +        case "$desiredlang" in +          "$presentlang"*) useit=yes;; +        esac +      done +      if test $useit = yes; then +        INST_LINGUAS="$INST_LINGUAS $presentlang" +      fi +    done +  fi +  CATALOGS= +  JAVACATALOGS= +  QTCATALOGS= +  TCLCATALOGS= +  CSHARPCATALOGS= +  if test -n "$INST_LINGUAS"; then +    for lang in $INST_LINGUAS; do +      CATALOGS="$CATALOGS $lang.gmo" +      JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" +      QTCATALOGS="$QTCATALOGS $lang.qm" +      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` +      TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" +      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` +      CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" +    done +  fi + +  sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" +  if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then +    # Add dependencies that cannot be formulated as a simple suffix rule. +    for lang in $ALL_LINGUAS; do +      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` +      cat >> "$ac_file.tmp" <<EOF +$frobbedlang.msg: $lang.po +	@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ +	\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } +EOF +    done +  fi +  if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then +    # Add dependencies that cannot be formulated as a simple suffix rule. +    for lang in $ALL_LINGUAS; do +      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` +      cat >> "$ac_file.tmp" <<EOF +$frobbedlang/\$(DOMAIN).resources.dll: $lang.po +	@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ +	\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } +EOF +    done +  fi +  if test -n "$POMAKEFILEDEPS"; then +    cat >> "$ac_file.tmp" <<EOF +Makefile: $POMAKEFILEDEPS +EOF +  fi +  mv "$ac_file.tmp" "$ac_file" +]) + +dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. +AC_DEFUN([AM_XGETTEXT_OPTION_INIT], +[ +  XGETTEXT_EXTRA_OPTIONS= +]) + +dnl Registers an option to be passed to xgettext in the po subdirectory. +AC_DEFUN([AM_XGETTEXT_OPTION], +[ +  AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) +  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" +])  | 
