123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- # intl.m4 serial 29 (gettext-0.19)
- dnl Copyright (C) 1995-2014, 2016 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 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 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.60])
- 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([AC_PROG_MKDIR_P])dnl
- 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
- AC_REQUIRE([gl_EXTERN_INLINE])dnl
- AC_REQUIRE([gt_GL_ATTRIBUTE])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([features.h 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).
- AC_CHECK_DECLS([_snprintf, _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).
- AC_CHECK_DECLS([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_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[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 Solaris 12 provides getlocalename_l, while Illumos doesn't have
- dnl it nor the equivalent.
- if test $ac_cv_func_uselocale = yes; then
- AC_CHECK_FUNCS([getlocalename_l])
- fi
- 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).
- AC_CHECK_DECLS([feof_unlocked, 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-2.7 for %define api.pure.
- 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;;
- 2.[7-9]* | [3-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 Copies _GL_UNUSED and _GL_ATTRIBUTE_PURE definitions from
- dnl gnulib-common.m4 as a fallback, if the project isn't using Gnulib.
- AC_DEFUN([gt_GL_ATTRIBUTE], [
- m4_ifndef([gl_[]COMMON],
- AH_VERBATIM([gt_gl_attribute],
- [/* Define as a marker that can be attached to declarations that might not
- be used. This helps to reduce warnings, such as from
- GCC -Wunused-parameter. */
- #ifndef _GL_UNUSED
- # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
- # define _GL_UNUSED __attribute__ ((__unused__))
- # else
- # define _GL_UNUSED
- # endif
- #endif
- /* The __pure__ attribute was added in gcc 2.96. */
- #ifndef _GL_ATTRIBUTE_PURE
- # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
- # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
- # else
- # define _GL_ATTRIBUTE_PURE /* empty */
- # endif
- #endif
- ]))])
|