~ubuntu-branches/ubuntu/karmic/photoprint/karmic

« back to all changes in this revision

Viewing changes to m4/gettext.m4

  • Committer: Bazaar Package Importer
  • Author(s): Milan Zamazal
  • Date: 2007-05-01 16:32:13 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20070501163213-ni1933khtg9fdvn5
Tags: 0.3.5-2
Move to unstable.

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], [])