1
# intl.m4 serial 17 (gettext-0.18)
2
dnl Copyright (C) 1995-2009 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.
7
dnl This file can 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
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 package is covered by the GNU General Public License.
14
dnl They are *not* in the public domain.
17
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
18
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2009.
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],
27
AC_REQUIRE([AC_PROG_INSTALL])dnl
28
AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
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
46
dnl Support for automake's --enable-silent-rules.
47
case "$enable_silent_rules" in
48
yes) INTL_DEFAULT_VERBOSITY=0;;
49
no) INTL_DEFAULT_VERBOSITY=1;;
50
*) INTL_DEFAULT_VERBOSITY=1;;
52
AC_SUBST([INTL_DEFAULT_VERBOSITY])
54
AC_CHECK_TYPE([ptrdiff_t], ,
55
[AC_DEFINE([ptrdiff_t], [long],
56
[Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
58
AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
59
AC_CHECK_FUNCS([asprintf fwprintf newlocale putenv setenv setlocale \
60
snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
62
dnl Use the _snprintf function only if it is declared (because on NetBSD it
63
dnl is defined as a weak alias of snprintf; we prefer to use the latter).
64
gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
65
gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
67
dnl Use the *_unlocked functions only if they are declared.
68
dnl (because some of them were defined without being declared in Solaris
69
dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
70
dnl on Solaris 2.5.1 to run on Solaris 2.6).
71
dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
72
gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
74
case $gt_cv_func_printf_posix in
75
*yes) HAVE_POSIX_PRINTF=1 ;;
76
*) HAVE_POSIX_PRINTF=0 ;;
78
AC_SUBST([HAVE_POSIX_PRINTF])
79
if test "$ac_cv_func_asprintf" = yes; then
84
AC_SUBST([HAVE_ASPRINTF])
85
if test "$ac_cv_func_snprintf" = yes; then
90
AC_SUBST([HAVE_SNPRINTF])
91
if test "$ac_cv_func_newlocale" = yes; then
96
AC_SUBST([HAVE_NEWLOCALE])
97
if test "$ac_cv_func_wprintf" = yes; then
102
AC_SUBST([HAVE_WPRINTF])
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
116
mingw* | cygwin*) is_woe32dll=yes ;;
122
WOE32DLL=$is_woe32dll
125
dnl On mingw and Cygwin, we can activate special Makefile rules which add
126
dnl version information to the shared libraries and executables.
128
mingw* | cygwin*) is_woe32=yes ;;
133
if test $WOE32 = yes; then
134
dnl Check for a program that compiles Windows resource files.
135
AC_CHECK_TOOL([WINDRES], [windres])
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>.
150
dnl Rename some macros and functions used for locking.
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
194
dnl Checks for the core files of the intl subdirectory:
201
dnl hash-string.h hash-string.c
203
dnl libgnuintl.h.in (except the *printf stuff)
208
dnl plural-exp.h plural-exp.c
210
dnl Used by libglocale.
211
AC_DEFUN([gt_INTL_SUBDIR_CORE],
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
224
[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }],
226
[AC_DEFINE([HAVE_BUILTIN_EXPECT], [1],
227
[Define to 1 if the compiler understands __builtin_expect.])])
229
AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
230
AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
231
stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \
232
argz_stringify argz_next __fsetlocking])
234
dnl Use the *_unlocked functions only if they are declared.
235
dnl (because some of them were defined without being declared in Solaris
236
dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
237
dnl on Solaris 2.5.1 to run on Solaris 2.6).
238
dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
239
gt_CHECK_DECL([feof_unlocked], [#include <stdio.h>])
240
gt_CHECK_DECL([fgets_unlocked], [#include <stdio.h>])
244
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
245
dnl because plural.y uses bison specific features. It requires at least
246
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
248
dnl bison is only needed for the maintainer (who touches plural.y). But in
249
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
250
dnl the rule in general Makefile. Now, some people carelessly touch the
251
dnl files or have a broken "make" program, hence the plural.c rule will
252
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
253
dnl present or too old.
254
AC_CHECK_PROGS([INTLBISON], [bison])
255
if test -z "$INTLBISON"; then
258
dnl Found it, now check the version.
259
AC_MSG_CHECKING([version of bison])
260
changequote(<<,>>)dnl
261
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
262
case $ac_prog_version in
263
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
264
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
266
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
267
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
269
AC_MSG_RESULT([$ac_prog_version])
271
if test $ac_verc_fail = yes; then
277
dnl gt_CHECK_DECL(FUNC, INCLUDES)
278
dnl Check whether a function is declared.
279
AC_DEFUN([gt_CHECK_DECL],
281
AC_CACHE_CHECK([whether $1 is declared], [ac_cv_have_decl_$1],
282
[AC_TRY_COMPILE([$2], [
284
char *p = (char *) $1;
286
], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
287
if test $ac_cv_have_decl_$1 = yes; then
292
AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
293
[Define to 1 if you have the declaration of `$1', and to 0 if you don't.])