aboutsummaryrefslogtreecommitdiff
path: root/m4/intl.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/intl.m4')
-rw-r--r--m4/intl.m4181
1 files changed, 110 insertions, 71 deletions
diff --git a/m4/intl.m4 b/m4/intl.m4
index dcefb118c..1747af909 100644
--- a/m4/intl.m4
+++ b/m4/intl.m4
@@ -1,5 +1,5 @@
1# intl.m4 serial 3 (gettext-0.16) 1# intl.m4 serial 27 (gettext-0.19)
2dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. 2dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation 3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it, 4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved. 5dnl with or without modifications, as long as this notice is preserved.
@@ -15,9 +15,9 @@ dnl They are *not* in the public domain.
15 15
16dnl Authors: 16dnl Authors:
17dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. 17dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
18dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006. 18dnl Bruno Haible <haible@clisp.cons.org>, 2000-2009.
19 19
20AC_PREREQ(2.52) 20AC_PREREQ([2.60])
21 21
22dnl Checks for all prerequisites of the intl subdirectory, 22dnl Checks for all prerequisites of the intl subdirectory,
23dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, 23dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
@@ -25,7 +25,7 @@ dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
25AC_DEFUN([AM_INTL_SUBDIR], 25AC_DEFUN([AM_INTL_SUBDIR],
26[ 26[
27 AC_REQUIRE([AC_PROG_INSTALL])dnl 27 AC_REQUIRE([AC_PROG_INSTALL])dnl
28 AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake 28 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
29 AC_REQUIRE([AC_PROG_CC])dnl 29 AC_REQUIRE([AC_PROG_CC])dnl
30 AC_REQUIRE([AC_CANONICAL_HOST])dnl 30 AC_REQUIRE([AC_CANONICAL_HOST])dnl
31 AC_REQUIRE([gt_GLIBC2])dnl 31 AC_REQUIRE([gt_GLIBC2])dnl
@@ -33,7 +33,6 @@ AC_DEFUN([AM_INTL_SUBDIR],
33 AC_REQUIRE([gl_VISIBILITY])dnl 33 AC_REQUIRE([gl_VISIBILITY])dnl
34 AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl 34 AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
35 AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl 35 AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
36 AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
37 AC_REQUIRE([gt_TYPE_WCHAR_T])dnl 36 AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
38 AC_REQUIRE([gt_TYPE_WINT_T])dnl 37 AC_REQUIRE([gt_TYPE_WINT_T])dnl
39 AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) 38 AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
@@ -41,26 +40,36 @@ AC_DEFUN([AM_INTL_SUBDIR],
41 AC_REQUIRE([gt_PRINTF_POSIX]) 40 AC_REQUIRE([gt_PRINTF_POSIX])
42 AC_REQUIRE([gl_GLIBC21])dnl 41 AC_REQUIRE([gl_GLIBC21])dnl
43 AC_REQUIRE([gl_XSIZE])dnl 42 AC_REQUIRE([gl_XSIZE])dnl
43 AC_REQUIRE([gl_FCNTL_O_FLAGS])dnl
44 AC_REQUIRE([gt_INTL_MACOSX])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])
45 55
46 AC_CHECK_TYPE([ptrdiff_t], , 56 AC_CHECK_TYPE([ptrdiff_t], ,
47 [AC_DEFINE([ptrdiff_t], [long], 57 [AC_DEFINE([ptrdiff_t], [long],
48 [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) 58 [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
49 ]) 59 ])
50 AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) 60 AC_CHECK_HEADERS([features.h stddef.h stdlib.h string.h])
51 AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen]) 61 AC_CHECK_FUNCS([asprintf fwprintf newlocale putenv setenv setlocale \
62 snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
52 63
53 dnl Use the _snprintf function only if it is declared (because on NetBSD it 64 dnl Use the _snprintf function only if it is declared (because on NetBSD it
54 dnl is defined as a weak alias of snprintf; we prefer to use the latter). 65 dnl is defined as a weak alias of snprintf; we prefer to use the latter).
55 gt_CHECK_DECL(_snprintf, [#include <stdio.h>]) 66 AC_CHECK_DECLS([_snprintf, _snwprintf], , , [#include <stdio.h>])
56 gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
57 67
58 dnl Use the *_unlocked functions only if they are declared. 68 dnl Use the *_unlocked functions only if they are declared.
59 dnl (because some of them were defined without being declared in Solaris 69 dnl (because some of them were defined without being declared in Solaris
60 dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built 70 dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
61 dnl on Solaris 2.5.1 to run on Solaris 2.6). 71 dnl on Solaris 2.5.1 to run on Solaris 2.6).
62 dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. 72 AC_CHECK_DECLS([getc_unlocked], , , [#include <stdio.h>])
63 gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
64 73
65 case $gt_cv_func_printf_posix in 74 case $gt_cv_func_printf_posix in
66 *yes) HAVE_POSIX_PRINTF=1 ;; 75 *yes) HAVE_POSIX_PRINTF=1 ;;
@@ -79,6 +88,12 @@ AC_DEFUN([AM_INTL_SUBDIR],
79 HAVE_SNPRINTF=0 88 HAVE_SNPRINTF=0
80 fi 89 fi
81 AC_SUBST([HAVE_SNPRINTF]) 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])
82 if test "$ac_cv_func_wprintf" = yes; then 97 if test "$ac_cv_func_wprintf" = yes; then
83 HAVE_WPRINTF=1 98 HAVE_WPRINTF=1
84 else 99 else
@@ -98,7 +113,7 @@ AC_DEFUN([AM_INTL_SUBDIR],
98 dnl exported variables _also_ in the static library. 113 dnl exported variables _also_ in the static library.
99 if test "$enable_shared" = yes; then 114 if test "$enable_shared" = yes; then
100 case "$host_os" in 115 case "$host_os" in
101 cygwin*) is_woe32dll=yes ;; 116 mingw* | cygwin*) is_woe32dll=yes ;;
102 *) is_woe32dll=no ;; 117 *) is_woe32dll=no ;;
103 esac 118 esac
104 else 119 else
@@ -107,6 +122,31 @@ AC_DEFUN([AM_INTL_SUBDIR],
107 WOE32DLL=$is_woe32dll 122 WOE32DLL=$is_woe32dll
108 AC_SUBST([WOE32DLL]) 123 AC_SUBST([WOE32DLL])
109 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
110 dnl Rename some macros and functions used for locking. 150 dnl Rename some macros and functions used for locking.
111 AH_BOTTOM([ 151 AH_BOTTOM([
112#define __libc_lock_t gl_lock_t 152#define __libc_lock_t gl_lock_t
@@ -122,22 +162,31 @@ AC_DEFUN([AM_INTL_SUBDIR],
122#define __libc_lock_lock_recursive gl_recursive_lock_lock 162#define __libc_lock_lock_recursive gl_recursive_lock_lock
123#define __libc_lock_unlock_recursive gl_recursive_lock_unlock 163#define __libc_lock_unlock_recursive gl_recursive_lock_unlock
124#define glthread_in_use libintl_thread_in_use 164#define glthread_in_use libintl_thread_in_use
125#define glthread_lock_init libintl_lock_init 165#define glthread_lock_init_func libintl_lock_init_func
126#define glthread_lock_lock libintl_lock_lock 166#define glthread_lock_lock_func libintl_lock_lock_func
127#define glthread_lock_unlock libintl_lock_unlock 167#define glthread_lock_unlock_func libintl_lock_unlock_func
128#define glthread_lock_destroy libintl_lock_destroy 168#define glthread_lock_destroy_func libintl_lock_destroy_func
129#define glthread_rwlock_init libintl_rwlock_init 169#define glthread_rwlock_init_multithreaded libintl_rwlock_init_multithreaded
130#define glthread_rwlock_rdlock libintl_rwlock_rdlock 170#define glthread_rwlock_init_func libintl_rwlock_init_func
131#define glthread_rwlock_wrlock libintl_rwlock_wrlock 171#define glthread_rwlock_rdlock_multithreaded libintl_rwlock_rdlock_multithreaded
132#define glthread_rwlock_unlock libintl_rwlock_unlock 172#define glthread_rwlock_rdlock_func libintl_rwlock_rdlock_func
133#define glthread_rwlock_destroy libintl_rwlock_destroy 173#define glthread_rwlock_wrlock_multithreaded libintl_rwlock_wrlock_multithreaded
134#define glthread_recursive_lock_init libintl_recursive_lock_init 174#define glthread_rwlock_wrlock_func libintl_rwlock_wrlock_func
135#define glthread_recursive_lock_lock libintl_recursive_lock_lock 175#define glthread_rwlock_unlock_multithreaded libintl_rwlock_unlock_multithreaded
136#define glthread_recursive_lock_unlock libintl_recursive_lock_unlock 176#define glthread_rwlock_unlock_func libintl_rwlock_unlock_func
137#define glthread_recursive_lock_destroy libintl_recursive_lock_destroy 177#define glthread_rwlock_destroy_multithreaded libintl_rwlock_destroy_multithreaded
138#define glthread_once libintl_once 178#define glthread_rwlock_destroy_func libintl_rwlock_destroy_func
139#define glthread_once_call libintl_once_call 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
140#define glthread_once_singlethreaded libintl_once_singlethreaded 188#define glthread_once_singlethreaded libintl_once_singlethreaded
189#define glthread_once_multithreaded libintl_once_multithreaded
141]) 190])
142]) 191])
143 192
@@ -171,45 +220,29 @@ AC_DEFUN([gt_INTL_SUBDIR_CORE],
171 AC_REQUIRE([gt_INTTYPES_PRI])dnl 220 AC_REQUIRE([gt_INTTYPES_PRI])dnl
172 AC_REQUIRE([gl_LOCK])dnl 221 AC_REQUIRE([gl_LOCK])dnl
173 222
174 AC_TRY_LINK( 223 AC_LINK_IFELSE(
175 [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], 224 [AC_LANG_PROGRAM(
176 [], 225 [[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]],
177 [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1, 226 [[]])],
227 [AC_DEFINE([HAVE_BUILTIN_EXPECT], [1],
178 [Define to 1 if the compiler understands __builtin_expect.])]) 228 [Define to 1 if the compiler understands __builtin_expect.])])
179 229
180 AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) 230 AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
181 AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ 231 AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
182 stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ 232 stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \
183 argz_next __fsetlocking]) 233 argz_stringify argz_next __fsetlocking])
184 234
185 dnl Use the *_unlocked functions only if they are declared. 235 dnl Use the *_unlocked functions only if they are declared.
186 dnl (because some of them were defined without being declared in Solaris 236 dnl (because some of them were defined without being declared in Solaris
187 dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built 237 dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
188 dnl on Solaris 2.5.1 to run on Solaris 2.6). 238 dnl on Solaris 2.5.1 to run on Solaris 2.6).
189 dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. 239 AC_CHECK_DECLS([feof_unlocked, fgets_unlocked], , , [#include <stdio.h>])
190 gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
191 gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
192 240
193 AM_ICONV 241 AM_ICONV
194 242
195 dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined,
196 dnl and a _NL_LOCALE_NAME macro always.
197 AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name,
198 [AC_TRY_LINK([#include <langinfo.h>
199#include <locale.h>],
200 [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));],
201 gt_cv_nl_locale_name=yes,
202 gt_cv_nl_locale_name=no)
203 ])
204 if test $gt_cv_nl_locale_name = yes; then
205 AC_DEFINE(HAVE_NL_LOCALE_NAME, 1,
206 [Define if you have <langinfo.h> and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.])
207 fi
208
209 dnl intl/plural.c is generated from intl/plural.y. It requires bison, 243 dnl intl/plural.c is generated from intl/plural.y. It requires bison,
210 dnl because plural.y uses bison specific features. It requires at least 244 dnl because plural.y uses bison specific features. It requires at least
211 dnl bison-1.26 because earlier versions generate a plural.c that doesn't 245 dnl bison-2.7 for %define api.pure.
212 dnl compile.
213 dnl bison is only needed for the maintainer (who touches plural.y). But in 246 dnl bison is only needed for the maintainer (who touches plural.y). But in
214 dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put 247 dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
215 dnl the rule in general Makefile. Now, some people carelessly touch the 248 dnl the rule in general Makefile. Now, some people carelessly touch the
@@ -226,7 +259,7 @@ changequote(<<,>>)dnl
226 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` 259 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
227 case $ac_prog_version in 260 case $ac_prog_version in
228 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 261 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
229 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) 262 2.[7-9]* | [3-9].*)
230changequote([,])dnl 263changequote([,])dnl
231 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; 264 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
232 *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; 265 *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -238,22 +271,28 @@ changequote([,])dnl
238 fi 271 fi
239]) 272])
240 273
274dnl Copies _GL_UNUSED and _GL_ATTRIBUTE_PURE definitions from
275dnl gnulib-common.m4 as a fallback, if the project isn't using Gnulib.
276AC_DEFUN([gt_GL_ATTRIBUTE], [
277 m4_ifndef([gl_[]COMMON],
278 AH_VERBATIM([gt_gl_attribute],
279[/* Define as a marker that can be attached to declarations that might not
280 be used. This helps to reduce warnings, such as from
281 GCC -Wunused-parameter. */
282#ifndef _GL_UNUSED
283# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
284# define _GL_UNUSED __attribute__ ((__unused__))
285# else
286# define _GL_UNUSED
287# endif
288#endif
241 289
242dnl gt_CHECK_DECL(FUNC, INCLUDES) 290/* The __pure__ attribute was added in gcc 2.96. */
243dnl Check whether a function is declared. 291#ifndef _GL_ATTRIBUTE_PURE
244AC_DEFUN([gt_CHECK_DECL], 292# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
245[ 293# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
246 AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, 294# else
247 [AC_TRY_COMPILE([$2], [ 295# define _GL_ATTRIBUTE_PURE /* empty */
248#ifndef $1 296# endif
249 char *p = (char *) $1;
250#endif 297#endif
251], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) 298]))])
252 if test $ac_cv_have_decl_$1 = yes; then
253 gt_value=1
254 else
255 gt_value=0
256 fi
257 AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
258 [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
259])