~noskcaj/ubuntu/wily/epiphany-browser/merge

« back to all changes in this revision

Viewing changes to m4/glib-gettext.m4

  • Committer: Bazaar Package Importer
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2011-02-27 11:52:17 UTC
  • mto: (1.7.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 108.
  • Revision ID: james.westby@ubuntu.com-20110227115217-lmwnlaftqli9zm34
Tags: upstream-2.91.90
ImportĀ upstreamĀ versionĀ 2.91.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 1995-2002 Free Software Foundation, Inc.
2
 
# Copyright (C) 2001-2003,2004 Red Hat, Inc.
3
 
#
4
 
# This file is free software, distributed under the terms of the GNU
5
 
# General Public License.  As a special exception to the GNU General
6
 
# Public License, this file may be distributed as part of a program
7
 
# that contains a configuration script generated by Autoconf, under
8
 
# the same distribution terms as the rest of that program.
9
 
#
10
 
# This file can be copied and used freely without restrictions.  It can
11
 
# be used in projects which are not available under the GNU Public License
12
 
# but which still want to provide support for the GNU gettext functionality.
13
 
#
14
 
# Macro to add for using GNU gettext.
15
 
# Ulrich Drepper <drepper@cygnus.com>, 1995, 1996
16
 
#
17
 
# Modified to never use included libintl. 
18
 
# Owen Taylor <otaylor@redhat.com>, 12/15/1998
19
 
#
20
 
# Major rework to remove unused code
21
 
# Owen Taylor <otaylor@redhat.com>, 12/11/2002
22
 
#
23
 
# Added better handling of ALL_LINGUAS from GNU gettext version 
24
 
# written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
25
 
#
26
 
# Modified to require ngettext
27
 
# Matthias Clasen <mclasen@redhat.com> 08/06/2004
28
 
#
29
 
# We need this here as well, since someone might use autoconf-2.5x
30
 
# to configure GLib then an older version to configure a package
31
 
# using AM_GLIB_GNU_GETTEXT
32
 
AC_PREREQ(2.53)
33
 
 
34
 
dnl
35
 
dnl We go to great lengths to make sure that aclocal won't 
36
 
dnl try to pull in the installed version of these macros
37
 
dnl when running aclocal in the glib directory.
38
 
dnl
39
 
m4_copy([AC_DEFUN],[glib_DEFUN])
40
 
m4_copy([AC_REQUIRE],[glib_REQUIRE])
41
 
dnl
42
 
dnl At the end, if we're not within glib, we'll define the public
43
 
dnl definitions in terms of our private definitions.
44
 
dnl
45
 
 
46
 
# GLIB_LC_MESSAGES
47
 
#--------------------
48
 
glib_DEFUN([GLIB_LC_MESSAGES],
49
 
  [AC_CHECK_HEADERS([locale.h])
50
 
    if test $ac_cv_header_locale_h = yes; then
51
 
    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
52
 
      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
53
 
       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
54
 
    if test $am_cv_val_LC_MESSAGES = yes; then
55
 
      AC_DEFINE(HAVE_LC_MESSAGES, 1,
56
 
        [Define if your <locale.h> file defines LC_MESSAGES.])
57
 
    fi
58
 
  fi])
59
 
 
60
 
# GLIB_PATH_PROG_WITH_TEST
61
 
#----------------------------
62
 
dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
63
 
dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
64
 
glib_DEFUN([GLIB_PATH_PROG_WITH_TEST],
65
 
[# Extract the first word of "$2", so it can be a program name with args.
66
 
set dummy $2; ac_word=[$]2
67
 
AC_MSG_CHECKING([for $ac_word])
68
 
AC_CACHE_VAL(ac_cv_path_$1,
69
 
[case "[$]$1" in
70
 
  /*)
71
 
  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
72
 
  ;;
73
 
  *)
74
 
  IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
75
 
  for ac_dir in ifelse([$5], , $PATH, [$5]); do
76
 
    test -z "$ac_dir" && ac_dir=.
77
 
    if test -f $ac_dir/$ac_word; then
78
 
      if [$3]; then
79
 
        ac_cv_path_$1="$ac_dir/$ac_word"
80
 
        break
81
 
      fi
82
 
    fi
83
 
  done
84
 
  IFS="$ac_save_ifs"
85
 
dnl If no 4th arg is given, leave the cache variable unset,
86
 
dnl so AC_PATH_PROGS will keep looking.
87
 
ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
88
 
])dnl
89
 
  ;;
90
 
esac])dnl
91
 
$1="$ac_cv_path_$1"
92
 
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
93
 
  AC_MSG_RESULT([$]$1)
94
 
else
95
 
  AC_MSG_RESULT(no)
96
 
fi
97
 
AC_SUBST($1)dnl
98
 
])
99
 
 
100
 
# GLIB_WITH_NLS
101
 
#-----------------
102
 
glib_DEFUN([GLIB_WITH_NLS],
103
 
  dnl NLS is obligatory
104
 
  [USE_NLS=yes
105
 
    AC_SUBST(USE_NLS)
106
 
 
107
 
    gt_cv_have_gettext=no
108
 
 
109
 
    CATOBJEXT=NONE
110
 
    XGETTEXT=:
111
 
    INTLLIBS=
112
 
 
113
 
    AC_CHECK_HEADER(libintl.h,
114
 
     [gt_cv_func_dgettext_libintl="no"
115
 
      libintl_extra_libs=""
116
 
 
117
 
      #
118
 
      # First check in libc
119
 
      #
120
 
      AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
121
 
        [AC_TRY_LINK([
122
 
#include <libintl.h>
123
 
],
124
 
         [return !ngettext ("","", 1)],
125
 
          gt_cv_func_ngettext_libc=yes,
126
 
          gt_cv_func_ngettext_libc=no)
127
 
        ])
128
 
  
129
 
      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
130
 
              AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
131
 
                [AC_TRY_LINK([
132
 
#include <libintl.h>
133
 
],
134
 
                  [return !dgettext ("","")],
135
 
                  gt_cv_func_dgettext_libc=yes,
136
 
                  gt_cv_func_dgettext_libc=no)
137
 
                ])
138
 
      fi
139
 
  
140
 
      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
141
 
        AC_CHECK_FUNCS(bind_textdomain_codeset)
142
 
      fi
143
 
 
144
 
      #
145
 
      # If we don't have everything we want, check in libintl
146
 
      #
147
 
      if test "$gt_cv_func_dgettext_libc" != "yes" \
148
 
         || test "$gt_cv_func_ngettext_libc" != "yes" \
149
 
         || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
150
 
        
151
 
        AC_CHECK_LIB(intl, bindtextdomain,
152
 
            [AC_CHECK_LIB(intl, ngettext,
153
 
                    [AC_CHECK_LIB(intl, dgettext,
154
 
                                  gt_cv_func_dgettext_libintl=yes)])])
155
 
 
156
 
        if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
157
 
          AC_MSG_CHECKING([if -liconv is needed to use gettext])
158
 
          AC_MSG_RESULT([])
159
 
          AC_CHECK_LIB(intl, ngettext,
160
 
                [AC_CHECK_LIB(intl, dcgettext,
161
 
                       [gt_cv_func_dgettext_libintl=yes
162
 
                        libintl_extra_libs=-liconv],
163
 
                        :,-liconv)],
164
 
                :,-liconv)
165
 
        fi
166
 
 
167
 
        #
168
 
        # If we found libintl, then check in it for bind_textdomain_codeset();
169
 
        # we'll prefer libc if neither have bind_textdomain_codeset(),
170
 
        # and both have dgettext and ngettext
171
 
        #
172
 
        if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
173
 
          glib_save_LIBS="$LIBS"
174
 
          LIBS="$LIBS -lintl $libintl_extra_libs"
175
 
          unset ac_cv_func_bind_textdomain_codeset
176
 
          AC_CHECK_FUNCS(bind_textdomain_codeset)
177
 
          LIBS="$glib_save_LIBS"
178
 
 
179
 
          if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
180
 
            gt_cv_func_dgettext_libc=no
181
 
          else
182
 
            if test "$gt_cv_func_dgettext_libc" = "yes" \
183
 
                && test "$gt_cv_func_ngettext_libc" = "yes"; then
184
 
              gt_cv_func_dgettext_libintl=no
185
 
            fi
186
 
          fi
187
 
        fi
188
 
      fi
189
 
 
190
 
      if test "$gt_cv_func_dgettext_libc" = "yes" \
191
 
        || test "$gt_cv_func_dgettext_libintl" = "yes"; then
192
 
        gt_cv_have_gettext=yes
193
 
      fi
194
 
  
195
 
      if test "$gt_cv_func_dgettext_libintl" = "yes"; then
196
 
        INTLLIBS="-lintl $libintl_extra_libs"
197
 
      fi
198
 
  
199
 
      if test "$gt_cv_have_gettext" = "yes"; then
200
 
        AC_DEFINE(HAVE_GETTEXT,1,
201
 
          [Define if the GNU gettext() function is already present or preinstalled.])
202
 
        GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
203
 
          [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
204
 
        if test "$MSGFMT" != "no"; then
205
 
          glib_save_LIBS="$LIBS"
206
 
          LIBS="$LIBS $INTLLIBS"
207
 
          AC_CHECK_FUNCS(dcgettext)
208
 
          MSGFMT_OPTS=
209
 
          AC_MSG_CHECKING([if msgfmt accepts -c])
210
 
          GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[
211
 
msgid ""
212
 
msgstr ""
213
 
"Content-Type: text/plain; charset=UTF-8\n"
214
 
"Project-Id-Version: test 1.0\n"
215
 
"PO-Revision-Date: 2007-02-15 12:01+0100\n"
216
 
"Last-Translator: test <foo@bar.xx>\n"
217
 
"Language-Team: C <LL@li.org>\n"
218
 
"MIME-Version: 1.0\n"
219
 
"Content-Transfer-Encoding: 8bit\n"
220
 
], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
221
 
          AC_SUBST(MSGFMT_OPTS)
222
 
          AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
223
 
          GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
224
 
            [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
225
 
          AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
226
 
                         return _nl_msg_cat_cntr],
227
 
            [CATOBJEXT=.gmo 
228
 
             DATADIRNAME=share],
229
 
            [case $host in
230
 
            *-*-solaris*)
231
 
            dnl On Solaris, if bind_textdomain_codeset is in libc,
232
 
            dnl GNU format message catalog is always supported,
233
 
            dnl since both are added to the libc all together.
234
 
            dnl Hence, we'd like to go with DATADIRNAME=share and
235
 
            dnl and CATOBJEXT=.gmo in this case.
236
 
            AC_CHECK_FUNC(bind_textdomain_codeset,
237
 
              [CATOBJEXT=.gmo 
238
 
               DATADIRNAME=share],
239
 
              [CATOBJEXT=.mo
240
 
               DATADIRNAME=lib])
241
 
            ;;
242
 
            *)
243
 
            CATOBJEXT=.mo
244
 
            DATADIRNAME=lib
245
 
            ;;
246
 
            esac])
247
 
          LIBS="$glib_save_LIBS"
248
 
          INSTOBJEXT=.mo
249
 
        else
250
 
          gt_cv_have_gettext=no
251
 
        fi
252
 
      fi
253
 
    ])
254
 
 
255
 
    if test "$gt_cv_have_gettext" = "yes" ; then
256
 
      AC_DEFINE(ENABLE_NLS, 1,
257
 
        [always defined to indicate that i18n is enabled])
258
 
    fi
259
 
 
260
 
    dnl Test whether we really found GNU xgettext.
261
 
    if test "$XGETTEXT" != ":"; then
262
 
      dnl If it is not GNU xgettext we define it as : so that the
263
 
      dnl Makefiles still can work.
264
 
      if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
265
 
        : ;
266
 
      else
267
 
        AC_MSG_RESULT(
268
 
          [found xgettext program is not GNU xgettext; ignore it])
269
 
        XGETTEXT=":"
270
 
      fi
271
 
    fi
272
 
 
273
 
    # We need to process the po/ directory.
274
 
    POSUB=po
275
 
 
276
 
    AC_OUTPUT_COMMANDS(
277
 
      [case "$CONFIG_FILES" in *po/Makefile.in*)
278
 
        sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
279
 
      esac])
280
 
 
281
 
    dnl These rules are solely for the distribution goal.  While doing this
282
 
    dnl we only have to keep exactly one list of the available catalogs
283
 
    dnl in configure.in.
284
 
    for lang in $ALL_LINGUAS; do
285
 
      GMOFILES="$GMOFILES $lang.gmo"
286
 
      POFILES="$POFILES $lang.po"
287
 
    done
288
 
 
289
 
    dnl Make all variables we use known to autoconf.
290
 
    AC_SUBST(CATALOGS)
291
 
    AC_SUBST(CATOBJEXT)
292
 
    AC_SUBST(DATADIRNAME)
293
 
    AC_SUBST(GMOFILES)
294
 
    AC_SUBST(INSTOBJEXT)
295
 
    AC_SUBST(INTLLIBS)
296
 
    AC_SUBST(PO_IN_DATADIR_TRUE)
297
 
    AC_SUBST(PO_IN_DATADIR_FALSE)
298
 
    AC_SUBST(POFILES)
299
 
    AC_SUBST(POSUB)
300
 
  ])
301
 
 
302
 
# AM_GLIB_GNU_GETTEXT
303
 
# -------------------
304
 
# Do checks necessary for use of gettext. If a suitable implementation 
305
 
# of gettext is found in either in libintl or in the C library,
306
 
# it will set INTLLIBS to the libraries needed for use of gettext
307
 
# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable
308
 
# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST()
309
 
# on various variables needed by the Makefile.in.in installed by 
310
 
# glib-gettextize.
311
 
dnl
312
 
glib_DEFUN([GLIB_GNU_GETTEXT],
313
 
  [AC_REQUIRE([AC_PROG_CC])dnl
314
 
   AC_REQUIRE([AC_HEADER_STDC])dnl
315
 
   
316
 
   GLIB_LC_MESSAGES
317
 
   GLIB_WITH_NLS
318
 
 
319
 
   if test "$gt_cv_have_gettext" = "yes"; then
320
 
     if test "x$ALL_LINGUAS" = "x"; then
321
 
       LINGUAS=
322
 
     else
323
 
       AC_MSG_CHECKING(for catalogs to be installed)
324
 
       NEW_LINGUAS=
325
 
       for presentlang in $ALL_LINGUAS; do
326
 
         useit=no
327
 
         if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
328
 
           desiredlanguages="$LINGUAS"
329
 
         else
330
 
           desiredlanguages="$ALL_LINGUAS"
331
 
         fi
332
 
         for desiredlang in $desiredlanguages; do
333
 
           # Use the presentlang catalog if desiredlang is
334
 
           #   a. equal to presentlang, or
335
 
           #   b. a variant of presentlang (because in this case,
336
 
           #      presentlang can be used as a fallback for messages
337
 
           #      which are not translated in the desiredlang catalog).
338
 
           case "$desiredlang" in
339
 
             "$presentlang"*) useit=yes;;
340
 
           esac
341
 
         done
342
 
         if test $useit = yes; then
343
 
           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
344
 
         fi
345
 
       done
346
 
       LINGUAS=$NEW_LINGUAS
347
 
       AC_MSG_RESULT($LINGUAS)
348
 
     fi
349
 
 
350
 
     dnl Construct list of names of catalog files to be constructed.
351
 
     if test -n "$LINGUAS"; then
352
 
       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
353
 
     fi
354
 
   fi
355
 
 
356
 
   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
357
 
   dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
358
 
   dnl Try to locate is.
359
 
   MKINSTALLDIRS=
360
 
   if test -n "$ac_aux_dir"; then
361
 
     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
362
 
   fi
363
 
   if test -z "$MKINSTALLDIRS"; then
364
 
     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
365
 
   fi
366
 
   AC_SUBST(MKINSTALLDIRS)
367
 
 
368
 
   dnl Generate list of files to be processed by xgettext which will
369
 
   dnl be included in po/Makefile.
370
 
   test -d po || mkdir po
371
 
   if test "x$srcdir" != "x."; then
372
 
     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
373
 
       posrcprefix="$srcdir/"
374
 
     else
375
 
       posrcprefix="../$srcdir/"
376
 
     fi
377
 
   else
378
 
     posrcprefix="../"
379
 
   fi
380
 
   rm -f po/POTFILES
381
 
   sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
382
 
        < $srcdir/po/POTFILES.in > po/POTFILES
383
 
  ])
384
 
 
385
 
# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
386
 
# -------------------------------
387
 
# Define VARIABLE to the location where catalog files will
388
 
# be installed by po/Makefile.
389
 
glib_DEFUN([GLIB_DEFINE_LOCALEDIR],
390
 
[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
391
 
glib_save_prefix="$prefix"
392
 
glib_save_exec_prefix="$exec_prefix"
393
 
glib_save_datarootdir="$datarootdir"
394
 
test "x$prefix" = xNONE && prefix=$ac_default_prefix
395
 
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
396
 
datarootdir=`eval echo "${datarootdir}"`
397
 
if test "x$CATOBJEXT" = "x.mo" ; then
398
 
  localedir=`eval echo "${libdir}/locale"`
399
 
else
400
 
  localedir=`eval echo "${datadir}/locale"`
401
 
fi
402
 
prefix="$glib_save_prefix"
403
 
exec_prefix="$glib_save_exec_prefix"
404
 
datarootdir="$glib_save_datarootdir"
405
 
AC_DEFINE_UNQUOTED($1, "$localedir",
406
 
  [Define the location where the catalogs will be installed])
407
 
])
408
 
 
409
 
dnl
410
 
dnl Now the definitions that aclocal will find
411
 
dnl
412
 
ifdef(glib_configure_in,[],[
413
 
AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
414
 
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
415
 
])dnl
416
 
 
417
 
# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL])
418
 
419
 
# Create a temporary file with TEST-FILE as its contents and pass the
420
 
# file name to PROGRAM.  Perform ACTION-IF-PASS if PROGRAM exits with
421
 
# 0 and perform ACTION-IF-FAIL for any other exit status.
422
 
AC_DEFUN([GLIB_RUN_PROG],
423
 
[cat >conftest.foo <<_ACEOF
424
 
$2
425
 
_ACEOF
426
 
if AC_RUN_LOG([$1 conftest.foo]); then
427
 
  m4_ifval([$3], [$3], [:])
428
 
m4_ifvaln([$4], [else $4])dnl
429
 
echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD
430
 
sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
431
 
fi])
432