~sir-rainbow/+junk/scribes-on-win

« back to all changes in this revision

Viewing changes to m4/gettext.m4

  • Committer: goldenmyst
  • Date: 2007-09-25 17:15:52 UTC
  • Revision ID: goldenmyst@goldenmyst-desktop-20070925171552-mvrhxdd39iibs0sr
New branch. New Trigger Management System. New Trigger API. New Plugin Management System. Fix for bug triggered by PyGTK+ version 2.11 or better.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# gettext.m4 serial 37 (gettext-0.14.4)
 
2
dnl Copyright (C) 1995-2005 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 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 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-2003.
 
19
 
 
20
dnl Macro to add for using GNU gettext.
 
21
 
 
22
dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
 
23
dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
 
24
dnl    default (if it is not specified or empty) is 'no-libtool'.
 
25
dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
 
26
dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
 
27
dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
 
28
dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
 
29
dnl    depending on --{enable,disable}-{shared,static} and on the presence of
 
30
dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
 
31
dnl    $(top_builddir)/intl/libintl.a will be created.
 
32
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
 
33
dnl    implementations (in libc or libintl) without the ngettext() function
 
34
dnl    will be ignored.  If NEEDSYMBOL is specified and is
 
35
dnl    'need-formatstring-macros', then GNU gettext implementations that don't
 
36
dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
 
37
dnl INTLDIR is used to find the intl libraries.  If empty,
 
38
dnl    the value `$(top_builddir)/intl/' is used.
 
39
dnl
 
40
dnl The result of the configuration is one of three cases:
 
41
dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
 
42
dnl    and used.
 
43
dnl    Catalog format: GNU --> install in $(datadir)
 
44
dnl    Catalog extension: .mo after installation, .gmo in source tree
 
45
dnl 2) GNU gettext has been found in the system's C library.
 
46
dnl    Catalog format: GNU --> install in $(datadir)
 
47
dnl    Catalog extension: .mo after installation, .gmo in source tree
 
48
dnl 3) No internationalization, always use English msgid.
 
49
dnl    Catalog format: none
 
50
dnl    Catalog extension: none
 
51
dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
 
52
dnl The use of .gmo is historical (it was needed to avoid overwriting the
 
53
dnl GNU format catalogs when building on a platform with an X/Open gettext),
 
54
dnl but we keep it in order not to force irrelevant filename changes on the
 
55
dnl maintainers.
 
56
dnl
 
57
AC_DEFUN([AM_GNU_GETTEXT],
 
58
[
 
59
dnl Argument checking.
 
60
ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
 
61
        [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
 
62
])])])])])
 
63
ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
 
64
        [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
 
65
])])])])
 
66
define([gt_included_intl], ifelse([$1], [external], [no], [yes]))
 
67
define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
 
68
 
 
69
AC_REQUIRE([AM_PO_SUBDIRS])dnl
 
70
ifelse(gt_included_intl, yes, [
 
71
        AC_REQUIRE([AM_INTL_SUBDIR])dnl
 
72
])
 
73
 
 
74
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
 
75
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
 
76
AC_REQUIRE([AC_LIB_RPATH])
 
77
 
 
78
dnl Sometimes libintl requires libiconv, so first search for libiconv.
 
79
dnl Ideally we would do this search only after the
 
80
dnl      if test "$USE_NLS" = "yes"; then
 
81
dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
 
82
dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
 
83
dnl the configure script would need to contain the same shell code
 
84
dnl again, outside any 'if'. There are two solutions:
 
85
dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
 
86
dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
 
87
dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
 
88
dnl documented, we avoid it.
 
89
ifelse(gt_included_intl, yes, , [
 
90
        AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
 
91
])
 
92
 
 
93
dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
 
94
gt_INTL_MACOSX
 
95
 
 
96
dnl Set USE_NLS.
 
97
AM_NLS
 
98
 
 
99
ifelse(gt_included_intl, yes, [
 
100
        BUILD_INCLUDED_LIBINTL=no
 
101
        USE_INCLUDED_LIBINTL=no
 
102
])
 
103
LIBINTL=
 
104
LTLIBINTL=
 
105
POSUB=
 
106
 
 
107
dnl If we use NLS figure out what method
 
108
if test "$USE_NLS" = "yes"; then
 
109
        gt_use_preinstalled_gnugettext=no
 
110
        ifelse(gt_included_intl, yes, [
 
111
        AC_MSG_CHECKING([whether included gettext is requested])
 
112
        AC_ARG_WITH(included-gettext,
 
113
                [  --with-included-gettext use the GNU gettext library included here],
 
114
                nls_cv_force_use_gnu_gettext=$withval,
 
115
                nls_cv_force_use_gnu_gettext=no)
 
116
        AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
 
117
 
 
118
        nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
 
119
        if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
 
120
        ])
 
121
                dnl User does not insist on using GNU NLS library.  Figure out what
 
122
                dnl to use.  If GNU gettext is available we use this.  Else we have
 
123
                dnl to fall back to GNU NLS library.
 
124
 
 
125
                dnl Add a version number to the cache macros.
 
126
                define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
 
127
                define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
 
128
                define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
 
129
 
 
130
                AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
 
131
                [AC_TRY_LINK([#include <libintl.h>
 
132
]ifelse([$2], [need-formatstring-macros],
 
133
[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 
134
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
 
135
#endif
 
136
changequote(,)dnl
 
137
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
 
138
changequote([,])dnl
 
139
], [])[extern int _nl_msg_cat_cntr;
 
140
extern int *_nl_domain_bindings;],
 
141
                        [bindtextdomain ("", "");
 
142
return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
 
143
                        gt_cv_func_gnugettext_libc=yes,
 
144
                        gt_cv_func_gnugettext_libc=no)])
 
145
 
 
146
                if test "$gt_cv_func_gnugettext_libc" != "yes"; then
 
147
                dnl Sometimes libintl requires libiconv, so first search for libiconv.
 
148
                ifelse(gt_included_intl, yes, , [
 
149
                        AM_ICONV_LINK
 
150
                ])
 
151
                dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
 
152
                dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
 
153
                dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
 
154
                dnl even if libiconv doesn't exist.
 
155
                AC_LIB_LINKFLAGS_BODY([intl])
 
156
                AC_CACHE_CHECK([for GNU gettext in libintl],
 
157
                        gt_cv_func_gnugettext_libintl,
 
158
                [gt_save_CPPFLAGS="$CPPFLAGS"
 
159
                        CPPFLAGS="$CPPFLAGS $INCINTL"
 
160
                        gt_save_LIBS="$LIBS"
 
161
                        LIBS="$LIBS $LIBINTL"
 
162
                        dnl Now see whether libintl exists and does not depend on libiconv.
 
163
                        AC_TRY_LINK([#include <libintl.h>
 
164
]ifelse([$2], [need-formatstring-macros],
 
165
[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 
166
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
 
167
#endif
 
168
changequote(,)dnl
 
169
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
 
170
changequote([,])dnl
 
171
], [])[extern int _nl_msg_cat_cntr;
 
172
extern
 
173
#ifdef __cplusplus
 
174
"C"
 
175
#endif
 
176
const char *_nl_expand_alias (const char *);],
 
177
                        [bindtextdomain ("", "");
 
178
return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
 
179
                        gt_cv_func_gnugettext_libintl=yes,
 
180
                        gt_cv_func_gnugettext_libintl=no)
 
181
                        dnl Now see whether libintl exists and depends on libiconv.
 
182
                        if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
 
183
                        LIBS="$LIBS $LIBICONV"
 
184
                        AC_TRY_LINK([#include <libintl.h>
 
185
]ifelse([$2], [need-formatstring-macros],
 
186
[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 
187
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
 
188
#endif
 
189
changequote(,)dnl
 
190
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
 
191
changequote([,])dnl
 
192
], [])[extern int _nl_msg_cat_cntr;
 
193
extern
 
194
#ifdef __cplusplus
 
195
"C"
 
196
#endif
 
197
const char *_nl_expand_alias (const char *);],
 
198
                                [bindtextdomain ("", "");
 
199
return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
 
200
                        [LIBINTL="$LIBINTL $LIBICONV"
 
201
                                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
 
202
                                gt_cv_func_gnugettext_libintl=yes
 
203
                        ])
 
204
                        fi
 
205
                        CPPFLAGS="$gt_save_CPPFLAGS"
 
206
                        LIBS="$gt_save_LIBS"])
 
207
                fi
 
208
 
 
209
                dnl If an already present or preinstalled GNU gettext() is found,
 
210
                dnl use it.  But if this macro is used in GNU gettext, and GNU
 
211
                dnl gettext is already preinstalled in libintl, we update this
 
212
                dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
 
213
                if test "$gt_cv_func_gnugettext_libc" = "yes" \
 
214
                || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
 
215
                                && test "$PACKAGE" != gettext-runtime \
 
216
                                && test "$PACKAGE" != gettext-tools; }; then
 
217
                gt_use_preinstalled_gnugettext=yes
 
218
                else
 
219
                dnl Reset the values set by searching for libintl.
 
220
                LIBINTL=
 
221
                LTLIBINTL=
 
222
                INCINTL=
 
223
                fi
 
224
 
 
225
        ifelse(gt_included_intl, yes, [
 
226
                if test "$gt_use_preinstalled_gnugettext" != "yes"; then
 
227
                dnl GNU gettext is not found in the C library.
 
228
                dnl Fall back on included GNU gettext library.
 
229
                nls_cv_use_gnu_gettext=yes
 
230
                fi
 
231
        fi
 
232
 
 
233
        if test "$nls_cv_use_gnu_gettext" = "yes"; then
 
234
                dnl Mark actions used to generate GNU NLS library.
 
235
                BUILD_INCLUDED_LIBINTL=yes
 
236
                USE_INCLUDED_LIBINTL=yes
 
237
                LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
 
238
                LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
 
239
                LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
 
240
        fi
 
241
 
 
242
        CATOBJEXT=
 
243
        if test "$gt_use_preinstalled_gnugettext" = "yes" \
 
244
                || test "$nls_cv_use_gnu_gettext" = "yes"; then
 
245
                dnl Mark actions to use GNU gettext tools.
 
246
                CATOBJEXT=.gmo
 
247
        fi
 
248
        ])
 
249
 
 
250
        if test -n "$INTL_MACOSX_LIBS"; then
 
251
        if test "$gt_use_preinstalled_gnugettext" = "yes" \
 
252
                || test "$nls_cv_use_gnu_gettext" = "yes"; then
 
253
                dnl Some extra flags are needed during linking.
 
254
                LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
 
255
                LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
 
256
        fi
 
257
        fi
 
258
 
 
259
        if test "$gt_use_preinstalled_gnugettext" = "yes" \
 
260
        || test "$nls_cv_use_gnu_gettext" = "yes"; then
 
261
        AC_DEFINE(ENABLE_NLS, 1,
 
262
                [Define to 1 if translation of program messages to the user's native language
 
263
is requested.])
 
264
        else
 
265
        USE_NLS=no
 
266
        fi
 
267
fi
 
268
 
 
269
AC_MSG_CHECKING([whether to use NLS])
 
270
AC_MSG_RESULT([$USE_NLS])
 
271
if test "$USE_NLS" = "yes"; then
 
272
        AC_MSG_CHECKING([where the gettext function comes from])
 
273
        if test "$gt_use_preinstalled_gnugettext" = "yes"; then
 
274
        if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
 
275
                gt_source="external libintl"
 
276
        else
 
277
                gt_source="libc"
 
278
        fi
 
279
        else
 
280
        gt_source="included intl directory"
 
281
        fi
 
282
        AC_MSG_RESULT([$gt_source])
 
283
fi
 
284
 
 
285
if test "$USE_NLS" = "yes"; then
 
286
 
 
287
        if test "$gt_use_preinstalled_gnugettext" = "yes"; then
 
288
        if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
 
289
                AC_MSG_CHECKING([how to link with libintl])
 
290
                AC_MSG_RESULT([$LIBINTL])
 
291
                AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
 
292
        fi
 
293
 
 
294
        dnl For backward compatibility. Some packages may be using this.
 
295
        AC_DEFINE(HAVE_GETTEXT, 1,
 
296
        [Define if the GNU gettext() function is already present or preinstalled.])
 
297
        AC_DEFINE(HAVE_DCGETTEXT, 1,
 
298
        [Define if the GNU dcgettext() function is already present or preinstalled.])
 
299
        fi
 
300
 
 
301
        dnl We need to process the po/ directory.
 
302
        POSUB=po
 
303
fi
 
304
 
 
305
ifelse(gt_included_intl, yes, [
 
306
        dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
 
307
        dnl to 'yes' because some of the testsuite requires it.
 
308
        if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
 
309
        BUILD_INCLUDED_LIBINTL=yes
 
310
        fi
 
311
 
 
312
        dnl Make all variables we use known to autoconf.
 
313
        AC_SUBST(BUILD_INCLUDED_LIBINTL)
 
314
        AC_SUBST(USE_INCLUDED_LIBINTL)
 
315
        AC_SUBST(CATOBJEXT)
 
316
 
 
317
        dnl For backward compatibility. Some configure.ins may be using this.
 
318
        nls_cv_header_intl=
 
319
        nls_cv_header_libgt=
 
320
 
 
321
        dnl For backward compatibility. Some Makefiles may be using this.
 
322
        DATADIRNAME=share
 
323
        AC_SUBST(DATADIRNAME)
 
324
 
 
325
        dnl For backward compatibility. Some Makefiles may be using this.
 
326
        INSTOBJEXT=.mo
 
327
        AC_SUBST(INSTOBJEXT)
 
328
 
 
329
        dnl For backward compatibility. Some Makefiles may be using this.
 
330
        GENCAT=gencat
 
331
        AC_SUBST(GENCAT)
 
332
 
 
333
        dnl For backward compatibility. Some Makefiles may be using this.
 
334
        INTLOBJS=
 
335
        if test "$USE_INCLUDED_LIBINTL" = yes; then
 
336
        INTLOBJS="\$(GETTOBJS)"
 
337
        fi
 
338
        AC_SUBST(INTLOBJS)
 
339
 
 
340
        dnl Enable libtool support if the surrounding package wishes it.
 
341
        INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
 
342
        AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
 
343
])
 
344
 
 
345
dnl For backward compatibility. Some Makefiles may be using this.
 
346
INTLLIBS="$LIBINTL"
 
347
AC_SUBST(INTLLIBS)
 
348
 
 
349
dnl Make all documented variables known to autoconf.
 
350
AC_SUBST(LIBINTL)
 
351
AC_SUBST(LTLIBINTL)
 
352
AC_SUBST(POSUB)
 
353
])
 
354
 
 
355
 
 
356
dnl Checks for all prerequisites of the intl subdirectory,
 
357
dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
 
358
dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
 
359
AC_DEFUN([AM_INTL_SUBDIR],
 
360
[
 
361
AC_REQUIRE([AC_PROG_INSTALL])dnl
 
362
AC_REQUIRE([AM_MKINSTALLDIRS])dnl
 
363
AC_REQUIRE([AC_PROG_CC])dnl
 
364
AC_REQUIRE([AC_CANONICAL_HOST])dnl
 
365
AC_REQUIRE([gt_GLIBC2])dnl
 
366
AC_REQUIRE([AC_PROG_RANLIB])dnl
 
367
AC_REQUIRE([AC_ISC_POSIX])dnl
 
368
AC_REQUIRE([AC_HEADER_STDC])dnl
 
369
AC_REQUIRE([AC_C_CONST])dnl
 
370
AC_REQUIRE([bh_C_SIGNED])dnl
 
371
AC_REQUIRE([AC_C_INLINE])dnl
 
372
AC_REQUIRE([AC_TYPE_OFF_T])dnl
 
373
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
 
374
AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl
 
375
AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
 
376
AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
 
377
AC_REQUIRE([gt_TYPE_WINT_T])dnl
 
378
AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
 
379
AC_REQUIRE([gl_AC_HEADER_STDINT_H])
 
380
AC_REQUIRE([gt_TYPE_INTMAX_T])
 
381
AC_REQUIRE([gt_PRINTF_POSIX])
 
382
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
 
383
AC_REQUIRE([AC_FUNC_MMAP])dnl
 
384
AC_REQUIRE([gl_GLIBC21])dnl
 
385
AC_REQUIRE([gt_INTDIV0])dnl
 
386
AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
 
387
AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
 
388
AC_REQUIRE([gt_INTTYPES_PRI])dnl
 
389
AC_REQUIRE([gl_XSIZE])dnl
 
390
AC_REQUIRE([gt_INTL_MACOSX])dnl
 
391
 
 
392
AC_CHECK_TYPE([ptrdiff_t], ,
 
393
        [AC_DEFINE([ptrdiff_t], [long],
 
394
        [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
 
395
        ])
 
396
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
 
397
stdlib.h string.h unistd.h sys/param.h])
 
398
AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
 
399
mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
 
400
strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
 
401
__fsetlocking])
 
402
 
 
403
dnl Use the _snprintf function only if it is declared (because on NetBSD it
 
404
dnl is defined as a weak alias of snprintf; we prefer to use the latter).
 
405
gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
 
406
gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
 
407
 
 
408
dnl Use the *_unlocked functions only if they are declared.
 
409
dnl (because some of them were defined without being declared in Solaris
 
410
dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
 
411
dnl on Solaris 2.5.1 to run on Solaris 2.6).
 
412
dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
 
413
gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
 
414
gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
 
415
gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
 
416
 
 
417
case $gt_cv_func_printf_posix in
 
418
        *yes) HAVE_POSIX_PRINTF=1 ;;
 
419
        *) HAVE_POSIX_PRINTF=0 ;;
 
420
esac
 
421
AC_SUBST([HAVE_POSIX_PRINTF])
 
422
if test "$ac_cv_func_asprintf" = yes; then
 
423
        HAVE_ASPRINTF=1
 
424
else
 
425
        HAVE_ASPRINTF=0
 
426
fi
 
427
AC_SUBST([HAVE_ASPRINTF])
 
428
if test "$ac_cv_func_snprintf" = yes; then
 
429
        HAVE_SNPRINTF=1
 
430
else
 
431
        HAVE_SNPRINTF=0
 
432
fi
 
433
AC_SUBST([HAVE_SNPRINTF])
 
434
if test "$ac_cv_func_wprintf" = yes; then
 
435
        HAVE_WPRINTF=1
 
436
else
 
437
        HAVE_WPRINTF=0
 
438
fi
 
439
AC_SUBST([HAVE_WPRINTF])
 
440
 
 
441
AM_ICONV
 
442
AM_LANGINFO_CODESET
 
443
if test $ac_cv_header_locale_h = yes; then
 
444
        gt_LC_MESSAGES
 
445
fi
 
446
 
 
447
if test -n "$INTL_MACOSX_LIBS"; then
 
448
        CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
 
449
fi
 
450
 
 
451
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
 
452
dnl because plural.y uses bison specific features. It requires at least
 
453
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
 
454
dnl compile.
 
455
dnl bison is only needed for the maintainer (who touches plural.y). But in
 
456
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
 
457
dnl the rule in general Makefile. Now, some people carelessly touch the
 
458
dnl files or have a broken "make" program, hence the plural.c rule will
 
459
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
 
460
dnl present or too old.
 
461
AC_CHECK_PROGS([INTLBISON], [bison])
 
462
if test -z "$INTLBISON"; then
 
463
        ac_verc_fail=yes
 
464
else
 
465
        dnl Found it, now check the version.
 
466
        AC_MSG_CHECKING([version of bison])
 
467
changequote(<<,>>)dnl
 
468
        ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
 
469
        case $ac_prog_version in
 
470
        '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
 
471
        1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
 
472
changequote([,])dnl
 
473
                ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
 
474
        *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
 
475
        esac
 
476
        AC_MSG_RESULT([$ac_prog_version])
 
477
fi
 
478
if test $ac_verc_fail = yes; then
 
479
        INTLBISON=:
 
480
fi
 
481
])
 
482
 
 
483
 
 
484
dnl Checks for special options needed on MacOS X.
 
485
dnl Defines INTL_MACOSX_LIBS.
 
486
AC_DEFUN([gt_INTL_MACOSX],
 
487
[
 
488
dnl Check for API introduced in MacOS X 10.2.
 
489
AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
 
490
        gt_cv_func_CFPreferencesCopyAppValue,
 
491
        [gt_save_CPPFLAGS="$CPPFLAGS"
 
492
        CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
 
493
        gt_save_LIBS="$LIBS"
 
494
        LIBS="$LIBS -framework CoreFoundation"
 
495
        AC_TRY_LINK([#include <CFPreferences.h>],
 
496
        [CFPreferencesCopyAppValue(NULL, NULL)],
 
497
        [gt_cv_func_CFPreferencesCopyAppValue=yes],
 
498
        [gt_cv_func_CFPreferencesCopyAppValue=no])
 
499
        CPPFLAGS="$gt_save_CPPFLAGS"
 
500
        LIBS="$gt_save_LIBS"])
 
501
if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
 
502
        AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
 
503
        [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
 
504
fi
 
505
dnl Check for API introduced in MacOS X 10.3.
 
506
AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
 
507
        [gt_save_CPPFLAGS="$CPPFLAGS"
 
508
        CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
 
509
        gt_save_LIBS="$LIBS"
 
510
        LIBS="$LIBS -framework CoreFoundation"
 
511
        AC_TRY_LINK([#include <CFLocale.h>], [CFLocaleCopyCurrent();],
 
512
        [gt_cv_func_CFLocaleCopyCurrent=yes],
 
513
        [gt_cv_func_CFLocaleCopyCurrent=no])
 
514
        CPPFLAGS="$gt_save_CPPFLAGS"
 
515
        LIBS="$gt_save_LIBS"])
 
516
if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
 
517
        AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
 
518
        [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
 
519
fi
 
520
INTL_MACOSX_LIBS=
 
521
if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
 
522
        INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
 
523
fi
 
524
AC_SUBST([INTL_MACOSX_LIBS])
 
525
])
 
526
 
 
527
 
 
528
dnl gt_CHECK_DECL(FUNC, INCLUDES)
 
529
dnl Check whether a function is declared.
 
530
AC_DEFUN([gt_CHECK_DECL],
 
531
[
 
532
AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
 
533
        [AC_TRY_COMPILE([$2], [
 
534
#ifndef $1
 
535
char *p = (char *) $1;
 
536
#endif
 
537
], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
 
538
if test $ac_cv_have_decl_$1 = yes; then
 
539
        gt_value=1
 
540
else
 
541
        gt_value=0
 
542
fi
 
543
AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
 
544
        [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
 
545
])
 
546
 
 
547
 
 
548
dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
 
549
AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])