donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

intl.m4 (12120B)


      1 # intl.m4 serial 29 (gettext-0.19)
      2 dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc.
      3 dnl This file is free software; the Free Software Foundation
      4 dnl gives unlimited permission to copy and/or distribute it,
      5 dnl with or without modifications, as long as this notice is preserved.
      6 dnl
      7 dnl This file can be used in projects which are not available under
      8 dnl the GNU General Public License or the GNU Library General Public
      9 dnl License but which still want to provide support for the GNU gettext
     10 dnl functionality.
     11 dnl Please note that the actual code of the GNU gettext library is covered
     12 dnl by the GNU Library General Public License, and the rest of the GNU
     13 dnl gettext package is covered by the GNU General Public License.
     14 dnl They are *not* in the public domain.
     15 
     16 dnl Authors:
     17 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
     18 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2009.
     19 
     20 AC_PREREQ([2.60])
     21 
     22 dnl Checks for all prerequisites of the intl subdirectory,
     23 dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
     24 dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
     25 AC_DEFUN([AM_INTL_SUBDIR],
     26 [
     27   AC_REQUIRE([AC_PROG_INSTALL])dnl
     28   AC_REQUIRE([AC_PROG_MKDIR_P])dnl
     29   AC_REQUIRE([AC_PROG_CC])dnl
     30   AC_REQUIRE([AC_CANONICAL_HOST])dnl
     31   AC_REQUIRE([gt_GLIBC2])dnl
     32   AC_REQUIRE([AC_PROG_RANLIB])dnl
     33   AC_REQUIRE([gl_VISIBILITY])dnl
     34   AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
     35   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
     36   AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
     37   AC_REQUIRE([gt_TYPE_WINT_T])dnl
     38   AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
     39   AC_REQUIRE([gt_TYPE_INTMAX_T])
     40   AC_REQUIRE([gt_PRINTF_POSIX])
     41   AC_REQUIRE([gl_GLIBC21])dnl
     42   AC_REQUIRE([gl_XSIZE])dnl
     43   AC_REQUIRE([gl_FCNTL_O_FLAGS])dnl
     44   AC_REQUIRE([gt_INTL_MACOSX])dnl
     45   AC_REQUIRE([gl_EXTERN_INLINE])dnl
     46   AC_REQUIRE([gt_GL_ATTRIBUTE])dnl
     47 
     48   dnl Support for automake's --enable-silent-rules.
     49   case "$enable_silent_rules" in
     50     yes) INTL_DEFAULT_VERBOSITY=0;;
     51     no)  INTL_DEFAULT_VERBOSITY=1;;
     52     *)   INTL_DEFAULT_VERBOSITY=1;;
     53   esac
     54   AC_SUBST([INTL_DEFAULT_VERBOSITY])
     55 
     56   AC_CHECK_TYPE([ptrdiff_t], ,
     57     [AC_DEFINE([ptrdiff_t], [long],
     58        [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
     59     ])
     60   AC_CHECK_HEADERS([features.h stddef.h stdlib.h string.h])
     61   AC_CHECK_FUNCS([asprintf fwprintf newlocale putenv setenv setlocale \
     62     snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
     63 
     64   dnl Use the _snprintf function only if it is declared (because on NetBSD it
     65   dnl is defined as a weak alias of snprintf; we prefer to use the latter).
     66   AC_CHECK_DECLS([_snprintf, _snwprintf], , , [#include <stdio.h>])
     67 
     68   dnl Use the *_unlocked functions only if they are declared.
     69   dnl (because some of them were defined without being declared in Solaris
     70   dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
     71   dnl on Solaris 2.5.1 to run on Solaris 2.6).
     72   AC_CHECK_DECLS([getc_unlocked], , , [#include <stdio.h>])
     73 
     74   case $gt_cv_func_printf_posix in
     75     *yes) HAVE_POSIX_PRINTF=1 ;;
     76     *) HAVE_POSIX_PRINTF=0 ;;
     77   esac
     78   AC_SUBST([HAVE_POSIX_PRINTF])
     79   if test "$ac_cv_func_asprintf" = yes; then
     80     HAVE_ASPRINTF=1
     81   else
     82     HAVE_ASPRINTF=0
     83   fi
     84   AC_SUBST([HAVE_ASPRINTF])
     85   if test "$ac_cv_func_snprintf" = yes; then
     86     HAVE_SNPRINTF=1
     87   else
     88     HAVE_SNPRINTF=0
     89   fi
     90   AC_SUBST([HAVE_SNPRINTF])
     91   if test "$ac_cv_func_newlocale" = yes; then
     92     HAVE_NEWLOCALE=1
     93   else
     94     HAVE_NEWLOCALE=0
     95   fi
     96   AC_SUBST([HAVE_NEWLOCALE])
     97   if test "$ac_cv_func_wprintf" = yes; then
     98     HAVE_WPRINTF=1
     99   else
    100     HAVE_WPRINTF=0
    101   fi
    102   AC_SUBST([HAVE_WPRINTF])
    103 
    104   AM_LANGINFO_CODESET
    105   gt_LC_MESSAGES
    106 
    107   dnl Compilation on mingw and Cygwin needs special Makefile rules, because
    108   dnl 1. when we install a shared library, we must arrange to export
    109   dnl    auxiliary pointer variables for every exported variable,
    110   dnl 2. when we install a shared library and a static library simultaneously,
    111   dnl    the include file specifies __declspec(dllimport) and therefore we
    112   dnl    must arrange to define the auxiliary pointer variables for the
    113   dnl    exported variables _also_ in the static library.
    114   if test "$enable_shared" = yes; then
    115     case "$host_os" in
    116       mingw* | cygwin*) is_woe32dll=yes ;;
    117       *) is_woe32dll=no ;;
    118     esac
    119   else
    120     is_woe32dll=no
    121   fi
    122   WOE32DLL=$is_woe32dll
    123   AC_SUBST([WOE32DLL])
    124 
    125   dnl On mingw and Cygwin, we can activate special Makefile rules which add
    126   dnl version information to the shared libraries and executables.
    127   case "$host_os" in
    128     mingw* | cygwin*) is_woe32=yes ;;
    129     *) is_woe32=no ;;
    130   esac
    131   WOE32=$is_woe32
    132   AC_SUBST([WOE32])
    133   if test $WOE32 = yes; then
    134     dnl Check for a program that compiles Windows resource files.
    135     AC_CHECK_TOOL([WINDRES], [windres])
    136   fi
    137 
    138   dnl Determine whether when creating a library, "-lc" should be passed to
    139   dnl libtool or not. On many platforms, it is required for the libtool option
    140   dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool
    141   dnl in the *.la files - makes it impossible to create multithreaded programs,
    142   dnl because libtool also reorders the -lc to come before the -pthread, and
    143   dnl this disables pthread_create() <http://docs.hp.com/en/1896/pthreads.html>.
    144   case "$host_os" in
    145     hpux*) LTLIBC="" ;;
    146     *)     LTLIBC="-lc" ;;
    147   esac
    148   AC_SUBST([LTLIBC])
    149 
    150   dnl Rename some macros and functions used for locking.
    151   AH_BOTTOM([
    152 #define __libc_lock_t                   gl_lock_t
    153 #define __libc_lock_define              gl_lock_define
    154 #define __libc_lock_define_initialized  gl_lock_define_initialized
    155 #define __libc_lock_init                gl_lock_init
    156 #define __libc_lock_lock                gl_lock_lock
    157 #define __libc_lock_unlock              gl_lock_unlock
    158 #define __libc_lock_recursive_t                   gl_recursive_lock_t
    159 #define __libc_lock_define_recursive              gl_recursive_lock_define
    160 #define __libc_lock_define_initialized_recursive  gl_recursive_lock_define_initialized
    161 #define __libc_lock_init_recursive                gl_recursive_lock_init
    162 #define __libc_lock_lock_recursive                gl_recursive_lock_lock
    163 #define __libc_lock_unlock_recursive              gl_recursive_lock_unlock
    164 #define glthread_in_use  libintl_thread_in_use
    165 #define glthread_lock_init_func     libintl_lock_init_func
    166 #define glthread_lock_lock_func     libintl_lock_lock_func
    167 #define glthread_lock_unlock_func   libintl_lock_unlock_func
    168 #define glthread_lock_destroy_func  libintl_lock_destroy_func
    169 #define glthread_rwlock_init_multithreaded     libintl_rwlock_init_multithreaded
    170 #define glthread_rwlock_init_func              libintl_rwlock_init_func
    171 #define glthread_rwlock_rdlock_multithreaded   libintl_rwlock_rdlock_multithreaded
    172 #define glthread_rwlock_rdlock_func            libintl_rwlock_rdlock_func
    173 #define glthread_rwlock_wrlock_multithreaded   libintl_rwlock_wrlock_multithreaded
    174 #define glthread_rwlock_wrlock_func            libintl_rwlock_wrlock_func
    175 #define glthread_rwlock_unlock_multithreaded   libintl_rwlock_unlock_multithreaded
    176 #define glthread_rwlock_unlock_func            libintl_rwlock_unlock_func
    177 #define glthread_rwlock_destroy_multithreaded  libintl_rwlock_destroy_multithreaded
    178 #define glthread_rwlock_destroy_func           libintl_rwlock_destroy_func
    179 #define glthread_recursive_lock_init_multithreaded     libintl_recursive_lock_init_multithreaded
    180 #define glthread_recursive_lock_init_func              libintl_recursive_lock_init_func
    181 #define glthread_recursive_lock_lock_multithreaded     libintl_recursive_lock_lock_multithreaded
    182 #define glthread_recursive_lock_lock_func              libintl_recursive_lock_lock_func
    183 #define glthread_recursive_lock_unlock_multithreaded   libintl_recursive_lock_unlock_multithreaded
    184 #define glthread_recursive_lock_unlock_func            libintl_recursive_lock_unlock_func
    185 #define glthread_recursive_lock_destroy_multithreaded  libintl_recursive_lock_destroy_multithreaded
    186 #define glthread_recursive_lock_destroy_func           libintl_recursive_lock_destroy_func
    187 #define glthread_once_func            libintl_once_func
    188 #define glthread_once_singlethreaded  libintl_once_singlethreaded
    189 #define glthread_once_multithreaded   libintl_once_multithreaded
    190 ])
    191 ])
    192 
    193 
    194 dnl Checks for the core files of the intl subdirectory:
    195 dnl   dcigettext.c
    196 dnl   eval-plural.h
    197 dnl   explodename.c
    198 dnl   finddomain.c
    199 dnl   gettextP.h
    200 dnl   gmo.h
    201 dnl   hash-string.h hash-string.c
    202 dnl   l10nflist.c
    203 dnl   libgnuintl.h.in (except the *printf stuff)
    204 dnl   loadinfo.h
    205 dnl   loadmsgcat.c
    206 dnl   localealias.c
    207 dnl   log.c
    208 dnl   plural-exp.h plural-exp.c
    209 dnl   plural.y
    210 dnl Used by libglocale.
    211 AC_DEFUN([gt_INTL_SUBDIR_CORE],
    212 [
    213   AC_REQUIRE([AC_C_INLINE])dnl
    214   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
    215   AC_REQUIRE([gl_AC_HEADER_STDINT_H])
    216   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
    217   AC_REQUIRE([AC_FUNC_MMAP])dnl
    218   AC_REQUIRE([gt_INTDIV0])dnl
    219   AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
    220   AC_REQUIRE([gt_INTTYPES_PRI])dnl
    221   AC_REQUIRE([gl_LOCK])dnl
    222 
    223   AC_LINK_IFELSE(
    224     [AC_LANG_PROGRAM(
    225        [[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]],
    226        [[]])],
    227     [AC_DEFINE([HAVE_BUILTIN_EXPECT], [1],
    228        [Define to 1 if the compiler understands __builtin_expect.])])
    229 
    230   AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
    231   AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
    232     stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \
    233     argz_stringify argz_next __fsetlocking])
    234 
    235   dnl Solaris 12 provides getlocalename_l, while Illumos doesn't have
    236   dnl it nor the equivalent.
    237   if test $ac_cv_func_uselocale = yes; then
    238     AC_CHECK_FUNCS([getlocalename_l])
    239   fi
    240 
    241   dnl Use the *_unlocked functions only if they are declared.
    242   dnl (because some of them were defined without being declared in Solaris
    243   dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
    244   dnl on Solaris 2.5.1 to run on Solaris 2.6).
    245   AC_CHECK_DECLS([feof_unlocked, fgets_unlocked], , , [#include <stdio.h>])
    246 
    247   AM_ICONV
    248 
    249   dnl intl/plural.c is generated from intl/plural.y. It requires bison,
    250   dnl because plural.y uses bison specific features. It requires at least
    251   dnl bison-2.7 for %define api.pure.
    252   dnl bison is only needed for the maintainer (who touches plural.y). But in
    253   dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
    254   dnl the rule in general Makefile. Now, some people carelessly touch the
    255   dnl files or have a broken "make" program, hence the plural.c rule will
    256   dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
    257   dnl present or too old.
    258   AC_CHECK_PROGS([INTLBISON], [bison])
    259   if test -z "$INTLBISON"; then
    260     ac_verc_fail=yes
    261   else
    262     dnl Found it, now check the version.
    263     AC_MSG_CHECKING([version of bison])
    264 changequote(<<,>>)dnl
    265     ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
    266     case $ac_prog_version in
    267       '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
    268       2.[7-9]* | [3-9].*)
    269 changequote([,])dnl
    270          ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
    271       *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
    272     esac
    273     AC_MSG_RESULT([$ac_prog_version])
    274   fi
    275   if test $ac_verc_fail = yes; then
    276     INTLBISON=:
    277   fi
    278 ])
    279 
    280 dnl Copies _GL_UNUSED and _GL_ATTRIBUTE_PURE definitions from
    281 dnl gnulib-common.m4 as a fallback, if the project isn't using Gnulib.
    282 AC_DEFUN([gt_GL_ATTRIBUTE], [
    283   m4_ifndef([gl_[]COMMON],
    284     AH_VERBATIM([gt_gl_attribute],
    285 [/* Define as a marker that can be attached to declarations that might not
    286     be used.  This helps to reduce warnings, such as from
    287     GCC -Wunused-parameter.  */
    288 #ifndef _GL_UNUSED
    289 # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
    290 #  define _GL_UNUSED __attribute__ ((__unused__))
    291 # else
    292 #  define _GL_UNUSED
    293 # endif
    294 #endif
    295 
    296 /* The __pure__ attribute was added in gcc 2.96.  */
    297 #ifndef _GL_ATTRIBUTE_PURE
    298 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
    299 #  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
    300 # else
    301 #  define _GL_ATTRIBUTE_PURE /* empty */
    302 # endif
    303 #endif
    304 ]))])