libmicrohttpd2

HTTP server C library (MHD 2.x, alpha)
Log | Files | Refs | README | LICENSE

intl.m4 (11253B)


      1 # intl.m4 serial 44 (gettext-0.21)
      2 dnl Copyright (C) 1995-2014, 2016-2020 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 Lesser 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 Lesser 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 LIBTOOL, USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
     24 AC_DEFUN([AM_INTL_SUBDIR],
     25 [
     26   AC_REQUIRE([AC_PROG_INSTALL])dnl
     27   AC_REQUIRE([AC_PROG_MKDIR_P])dnl
     28   AC_REQUIRE([AC_PROG_CC])dnl
     29   AC_REQUIRE([AC_CANONICAL_HOST])dnl
     30   AC_REQUIRE([gt_GLIBC2])dnl
     31   AC_REQUIRE([gl_VISIBILITY])dnl
     32   AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
     33   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
     34   AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
     35   AC_REQUIRE([gt_TYPE_WINT_T])dnl
     36   AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
     37   AC_REQUIRE([gt_TYPE_INTMAX_T])
     38   AC_REQUIRE([gt_PRINTF_POSIX])
     39   AC_REQUIRE([gl_GLIBC21])dnl
     40   AC_REQUIRE([gl_XSIZE])dnl
     41   AC_REQUIRE([gl_FCNTL_O_FLAGS])dnl
     42   AC_REQUIRE([gt_INTL_THREAD_LOCALE_NAME])
     43   AC_REQUIRE([gt_INTL_MACOSX])dnl
     44   AC_REQUIRE([gl_EXTERN_INLINE])dnl
     45   AC_REQUIRE([gt_GL_ATTRIBUTE])dnl
     46   AC_REQUIRE([AC_C_FLEXIBLE_ARRAY_MEMBER])dnl
     47 
     48   dnl In projects that use gnulib, use gl_PROG_AR_RANLIB.
     49   dnl The '][' hides this use from 'aclocal'.
     50   m4_ifdef([g][l_PROG_AR_RANLIB],
     51     [AC_REQUIRE([g][l_PROG_AR_RANLIB])],
     52     [AC_REQUIRE([AC_PROG_RANLIB])
     53      dnl Use Automake-documented default values for AR and ARFLAGS, but prefer
     54      dnl ${host}-ar over ar (useful for cross-compiling).
     55      AC_CHECK_TOOL([AR], [ar], [ar])
     56      if test -z "$ARFLAGS"; then
     57        ARFLAGS='cr'
     58      fi
     59      AC_SUBST([AR])
     60      AC_SUBST([ARFLAGS])
     61     ])
     62 
     63   dnl Support for automake's --enable-silent-rules.
     64   case "$enable_silent_rules" in
     65     yes) INTL_DEFAULT_VERBOSITY=0;;
     66     no)  INTL_DEFAULT_VERBOSITY=1;;
     67     *)   INTL_DEFAULT_VERBOSITY=1;;
     68   esac
     69   AC_SUBST([INTL_DEFAULT_VERBOSITY])
     70 
     71   AC_CHECK_TYPE([ptrdiff_t], ,
     72     [AC_DEFINE([ptrdiff_t], [long],
     73        [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
     74     ])
     75   AC_CHECK_HEADERS([features.h stddef.h stdlib.h string.h])
     76   AC_CHECK_FUNCS([asprintf wprintf newlocale putenv setenv \
     77     snprintf strnlen uselocale wcslen wcsnlen mbrtowc wcrtomb])
     78 
     79   dnl Use the _snprintf function only if it is declared (because on NetBSD it
     80   dnl is defined as a weak alias of snprintf; we prefer to use the latter).
     81   AC_CHECK_DECLS([_snprintf, _snwprintf], , , [#include <stdio.h>])
     82 
     83   dnl Use the *_unlocked functions only if they are declared.
     84   dnl (because some of them were defined without being declared in Solaris
     85   dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
     86   dnl on Solaris 2.5.1 to run on Solaris 2.6).
     87   AC_CHECK_DECLS([getc_unlocked], , , [#include <stdio.h>])
     88 
     89   case $gt_cv_func_printf_posix in
     90     *yes) HAVE_POSIX_PRINTF=1 ;;
     91     *) HAVE_POSIX_PRINTF=0 ;;
     92   esac
     93   AC_SUBST([HAVE_POSIX_PRINTF])
     94   if test "$ac_cv_func_asprintf" = yes; then
     95     HAVE_ASPRINTF=1
     96   else
     97     HAVE_ASPRINTF=0
     98   fi
     99   AC_SUBST([HAVE_ASPRINTF])
    100   if test "$ac_cv_func_snprintf" = yes; then
    101     HAVE_SNPRINTF=1
    102   else
    103     HAVE_SNPRINTF=0
    104   fi
    105   AC_SUBST([HAVE_SNPRINTF])
    106   if test "$ac_cv_func_newlocale" = yes; then
    107     HAVE_NEWLOCALE=1
    108   else
    109     HAVE_NEWLOCALE=0
    110   fi
    111   AC_SUBST([HAVE_NEWLOCALE])
    112   if test "$ac_cv_func_wprintf" = yes; then
    113     HAVE_WPRINTF=1
    114   else
    115     HAVE_WPRINTF=0
    116   fi
    117   AC_SUBST([HAVE_WPRINTF])
    118 
    119   AM_LANGINFO_CODESET
    120   gt_LC_MESSAGES
    121 
    122   if test $gt_nameless_locales = yes; then
    123     HAVE_NAMELESS_LOCALES=1
    124   else
    125     HAVE_NAMELESS_LOCALES=0
    126   fi
    127   AC_SUBST([HAVE_NAMELESS_LOCALES])
    128 
    129   dnl Compilation on mingw and Cygwin needs special Makefile rules, because
    130   dnl 1. when we install a shared library, we must arrange to export
    131   dnl    auxiliary pointer variables for every exported variable,
    132   dnl 2. when we install a shared library and a static library simultaneously,
    133   dnl    the include file specifies __declspec(dllimport) and therefore we
    134   dnl    must arrange to define the auxiliary pointer variables for the
    135   dnl    exported variables _also_ in the static library.
    136   if test "$enable_shared" = yes; then
    137     case "$host_os" in
    138       mingw* | cygwin*) is_woe32dll=yes ;;
    139       *) is_woe32dll=no ;;
    140     esac
    141   else
    142     is_woe32dll=no
    143   fi
    144   WOE32DLL=$is_woe32dll
    145   AC_SUBST([WOE32DLL])
    146 
    147   dnl On mingw and Cygwin, we can activate special Makefile rules which add
    148   dnl version information to the shared libraries and executables.
    149   case "$host_os" in
    150     mingw* | cygwin*) is_woe32=yes ;;
    151     *) is_woe32=no ;;
    152   esac
    153   WOE32=$is_woe32
    154   AC_SUBST([WOE32])
    155   if test $WOE32 = yes; then
    156     dnl Check for a program that compiles Windows resource files.
    157     AC_CHECK_TOOL([WINDRES], [windres])
    158   fi
    159 
    160   dnl Rename some macros and functions used for locking.
    161   AH_BOTTOM([
    162 #define __libc_lock_t                   gl_lock_t
    163 #define __libc_lock_define              gl_lock_define
    164 #define __libc_lock_define_initialized  gl_lock_define_initialized
    165 #define __libc_lock_init                gl_lock_init
    166 #define __libc_lock_lock                gl_lock_lock
    167 #define __libc_lock_unlock              gl_lock_unlock
    168 #define __libc_lock_recursive_t                   gl_recursive_lock_t
    169 #define __libc_lock_define_recursive              gl_recursive_lock_define
    170 #define __libc_lock_define_initialized_recursive  gl_recursive_lock_define_initialized
    171 #define __libc_lock_init_recursive                gl_recursive_lock_init
    172 #define __libc_lock_lock_recursive                gl_recursive_lock_lock
    173 #define __libc_lock_unlock_recursive              gl_recursive_lock_unlock
    174 #define glthread_in_use  libintl_thread_in_use
    175 #define glthread_lock_init_func     libintl_lock_init_func
    176 #define glthread_lock_lock_func     libintl_lock_lock_func
    177 #define glthread_lock_unlock_func   libintl_lock_unlock_func
    178 #define glthread_lock_destroy_func  libintl_lock_destroy_func
    179 #define glthread_rwlock_init_multithreaded     libintl_rwlock_init_multithreaded
    180 #define glthread_rwlock_init_func              libintl_rwlock_init_func
    181 #define glthread_rwlock_rdlock_multithreaded   libintl_rwlock_rdlock_multithreaded
    182 #define glthread_rwlock_rdlock_func            libintl_rwlock_rdlock_func
    183 #define glthread_rwlock_wrlock_multithreaded   libintl_rwlock_wrlock_multithreaded
    184 #define glthread_rwlock_wrlock_func            libintl_rwlock_wrlock_func
    185 #define glthread_rwlock_unlock_multithreaded   libintl_rwlock_unlock_multithreaded
    186 #define glthread_rwlock_unlock_func            libintl_rwlock_unlock_func
    187 #define glthread_rwlock_destroy_multithreaded  libintl_rwlock_destroy_multithreaded
    188 #define glthread_rwlock_destroy_func           libintl_rwlock_destroy_func
    189 #define glthread_recursive_lock_init_multithreaded     libintl_recursive_lock_init_multithreaded
    190 #define glthread_recursive_lock_init_func              libintl_recursive_lock_init_func
    191 #define glthread_recursive_lock_lock_multithreaded     libintl_recursive_lock_lock_multithreaded
    192 #define glthread_recursive_lock_lock_func              libintl_recursive_lock_lock_func
    193 #define glthread_recursive_lock_unlock_multithreaded   libintl_recursive_lock_unlock_multithreaded
    194 #define glthread_recursive_lock_unlock_func            libintl_recursive_lock_unlock_func
    195 #define glthread_recursive_lock_destroy_multithreaded  libintl_recursive_lock_destroy_multithreaded
    196 #define glthread_recursive_lock_destroy_func           libintl_recursive_lock_destroy_func
    197 #define glthread_once_func            libintl_once_func
    198 #define glthread_once_singlethreaded  libintl_once_singlethreaded
    199 #define glthread_once_multithreaded   libintl_once_multithreaded
    200 ])
    201 ])
    202 
    203 
    204 dnl Checks for the core files of the intl subdirectory:
    205 dnl   dcigettext.c
    206 dnl   eval-plural.h
    207 dnl   explodename.c
    208 dnl   finddomain.c
    209 dnl   gettextP.h
    210 dnl   gmo.h
    211 dnl   hash-string.h hash-string.c
    212 dnl   l10nflist.c
    213 dnl   libgnuintl.h.in (except the *printf stuff)
    214 dnl   loadinfo.h
    215 dnl   loadmsgcat.c
    216 dnl   localealias.c
    217 dnl   log.c
    218 dnl   plural-exp.h plural-exp.c
    219 dnl   plural.y
    220 dnl Used by libglocale.
    221 AC_DEFUN([gt_INTL_SUBDIR_CORE],
    222 [
    223   AC_REQUIRE([AC_C_INLINE])dnl
    224   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
    225   AC_REQUIRE([gl_AC_HEADER_STDINT_H])
    226   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
    227   AC_REQUIRE([AC_FUNC_MMAP])dnl
    228   AC_REQUIRE([gt_INTDIV0])dnl
    229   AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
    230   AC_REQUIRE([gl_LOCK])dnl
    231 
    232   AC_LINK_IFELSE(
    233     [AC_LANG_PROGRAM(
    234        [[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]],
    235        [[]])],
    236     [AC_DEFINE([HAVE_BUILTIN_EXPECT], [1],
    237        [Define to 1 if the compiler understands __builtin_expect.])])
    238 
    239   AC_CHECK_HEADERS([inttypes.h limits.h unistd.h sys/param.h])
    240   AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
    241     stpcpy strcasecmp strdup strtoul tsearch __fsetlocking])
    242 
    243   dnl Use the *_unlocked functions only if they are declared.
    244   dnl (because some of them were defined without being declared in Solaris
    245   dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
    246   dnl on Solaris 2.5.1 to run on Solaris 2.6).
    247   AC_CHECK_DECLS([feof_unlocked, fgets_unlocked], , , [#include <stdio.h>])
    248 
    249   AM_ICONV
    250 
    251   dnl intl/plural.c is generated from intl/plural.y. It requires bison,
    252   dnl because plural.y uses bison specific features. It requires at least
    253   dnl bison-3.0 for %precedence.
    254   dnl bison is only needed for the maintainer (who touches plural.y). But in
    255   dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
    256   dnl the rule in general Makefile. Now, some people carelessly touch the
    257   dnl files or have a broken "make" program, hence the plural.c rule will
    258   dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
    259   dnl present or too old.
    260   gl_PROG_BISON([INTLBISON], [3.0])
    261 ])
    262 
    263 dnl Copies _GL_UNUSED and _GL_ATTRIBUTE_PURE definitions from
    264 dnl gnulib-common.m4 as a fallback, if the project isn't using Gnulib.
    265 AC_DEFUN([gt_GL_ATTRIBUTE], [
    266   m4_ifndef([gl_[]COMMON],
    267     AH_VERBATIM([gt_gl_attribute],
    268 [/* Define as a marker that can be attached to declarations that might not
    269     be used.  This helps to reduce warnings, such as from
    270     GCC -Wunused-parameter.  */
    271 #ifndef _GL_UNUSED
    272 # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
    273 #  define _GL_UNUSED __attribute__ ((__unused__))
    274 # else
    275 #  define _GL_UNUSED
    276 # endif
    277 #endif
    278 
    279 /* The __pure__ attribute was added in gcc 2.96.  */
    280 #ifndef _GL_ATTRIBUTE_PURE
    281 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
    282 #  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
    283 # else
    284 #  define _GL_ATTRIBUTE_PURE /* empty */
    285 # endif
    286 #endif
    287 ]))])