| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 | # intl.m4 serial 8 (gettext-0.17)dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.dnl This file is free software; the Free Software Foundationdnl gives unlimited permission to copy and/or distribute it,dnl with or without modifications, as long as this notice is preserved.dnldnl This file can can be used in projects which are not available underdnl the GNU General Public License or the GNU Library General Publicdnl License but which still want to provide support for the GNU gettextdnl functionality.dnl Please note that the actual code of the GNU gettext library is covereddnl by the GNU Library General Public License, and the rest of the GNUdnl 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.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([gt_INTL_MACOSX])dnl  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 putenv setenv setlocale snprintf wcslen])  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_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     libintl_lock_init#define glthread_lock_lock     libintl_lock_lock#define glthread_lock_unlock   libintl_lock_unlock#define glthread_lock_destroy  libintl_lock_destroy#define glthread_rwlock_init     libintl_rwlock_init#define glthread_rwlock_rdlock   libintl_rwlock_rdlock#define glthread_rwlock_wrlock   libintl_rwlock_wrlock#define glthread_rwlock_unlock   libintl_rwlock_unlock#define glthread_rwlock_destroy  libintl_rwlock_destroy#define glthread_recursive_lock_init     libintl_recursive_lock_init#define glthread_recursive_lock_lock     libintl_recursive_lock_lock#define glthread_recursive_lock_unlock   libintl_recursive_lock_unlock#define glthread_recursive_lock_destroy  libintl_recursive_lock_destroy#define glthread_once                 libintl_once#define glthread_once_call            libintl_once_call#define glthread_once_singlethreaded  libintl_once_singlethreaded])])dnl Checks for the core files of the intl subdirectory:dnl   dcigettext.cdnl   eval-plural.hdnl   explodename.cdnl   finddomain.cdnl   gettextP.hdnl   gmo.hdnl   hash-string.h hash-string.cdnl   l10nflist.cdnl   libgnuintl.h.in (except the *printf stuff)dnl   loadinfo.hdnl   loadmsgcat.cdnl   localealias.cdnl   log.cdnl   plural-exp.h plural-exp.cdnl   plural.ydnl 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 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 glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined,  dnl and a _NL_LOCALE_NAME macro always.  AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name,    [AC_TRY_LINK([#include <langinfo.h>#include <locale.h>],      [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));       return !cs;      ],      gt_cv_nl_locale_name=yes,      gt_cv_nl_locale_name=no)    ])  if test $gt_cv_nl_locale_name = yes; then    AC_DEFINE(HAVE_NL_LOCALE_NAME, 1,      [Define if you have <langinfo.h> and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.])  fi  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.])])
 |