~ubuntu-branches/ubuntu/trusty/pitivi/trusty

« back to all changes in this revision

Viewing changes to common/m4/glib-gettext.m4

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2006-02-04 14:42:30 UTC
  • Revision ID: james.westby@ubuntu.com-20060204144230-9ihvyas6lhgn81k1
Tags: upstream-0.9.9.2
ImportĀ upstreamĀ versionĀ 0.9.9.2

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 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
#
 
27
# We need this here as well, since someone might use autoconf-2.5x
 
28
# to configure GLib then an older version to configure a package
 
29
# using AM_GLIB_GNU_GETTEXT
 
30
AC_PREREQ(2.53)
 
31
 
 
32
dnl
 
33
dnl We go to great lengths to make sure that aclocal won't 
 
34
dnl try to pull in the installed version of these macros
 
35
dnl when running aclocal in the glib directory.
 
36
dnl
 
37
m4_copy([AC_DEFUN],[glib_DEFUN])
 
38
m4_copy([AC_REQUIRE],[glib_REQUIRE])
 
39
dnl
 
40
dnl At the end, if we're not within glib, we'll define the public
 
41
dnl definitions in terms of our private definitions.
 
42
dnl
 
43
 
 
44
# GLIB_LC_MESSAGES
 
45
#--------------------
 
46
glib_DEFUN([GLIB_LC_MESSAGES],
 
47
  [AC_CHECK_HEADERS([locale.h])
 
48
    if test $ac_cv_header_locale_h = yes; then
 
49
    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
 
50
      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
 
51
       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
 
52
    if test $am_cv_val_LC_MESSAGES = yes; then
 
53
      AC_DEFINE(HAVE_LC_MESSAGES, 1,
 
54
        [Define if your <locale.h> file defines LC_MESSAGES.])
 
55
    fi
 
56
  fi])
 
57
 
 
58
# GLIB_PATH_PROG_WITH_TEST
 
59
#----------------------------
 
60
dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
 
61
dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
 
62
glib_DEFUN([GLIB_PATH_PROG_WITH_TEST],
 
63
[# Extract the first word of "$2", so it can be a program name with args.
 
64
set dummy $2; ac_word=[$]2
 
65
AC_MSG_CHECKING([for $ac_word])
 
66
AC_CACHE_VAL(ac_cv_path_$1,
 
67
[case "[$]$1" in
 
68
  /*)
 
69
  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
 
70
  ;;
 
71
  *)
 
72
  IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
 
73
  for ac_dir in ifelse([$5], , $PATH, [$5]); do
 
74
    test -z "$ac_dir" && ac_dir=.
 
75
    if test -f $ac_dir/$ac_word; then
 
76
      if [$3]; then
 
77
        ac_cv_path_$1="$ac_dir/$ac_word"
 
78
        break
 
79
      fi
 
80
    fi
 
81
  done
 
82
  IFS="$ac_save_ifs"
 
83
dnl If no 4th arg is given, leave the cache variable unset,
 
84
dnl so AC_PATH_PROGS will keep looking.
 
85
ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
 
86
])dnl
 
87
  ;;
 
88
esac])dnl
 
89
$1="$ac_cv_path_$1"
 
90
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
 
91
  AC_MSG_RESULT([$]$1)
 
92
else
 
93
  AC_MSG_RESULT(no)
 
94
fi
 
95
AC_SUBST($1)dnl
 
96
])
 
97
 
 
98
# GLIB_WITH_NLS
 
99
#-----------------
 
100
glib_DEFUN([GLIB_WITH_NLS],
 
101
  dnl NLS is obligatory
 
102
  [USE_NLS=yes
 
103
    AC_SUBST(USE_NLS)
 
104
 
 
105
    gt_cv_have_gettext=no
 
106
 
 
107
    CATOBJEXT=NONE
 
108
    XGETTEXT=:
 
109
    INTLLIBS=
 
110
 
 
111
    AC_CHECK_HEADER(libintl.h,
 
112
     [gt_cv_func_dgettext_libintl="no"
 
113
      libintl_extra_libs=""
 
114
 
 
115
      #
 
116
      # First check in libc
 
117
      #
 
118
      AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
 
119
        [AC_TRY_LINK([
 
120
#include <libintl.h>
 
121
],
 
122
          [return (int) dgettext ("","")],
 
123
          gt_cv_func_dgettext_libc=yes,
 
124
          gt_cv_func_dgettext_libc=no)
 
125
        ])
 
126
  
 
127
      if test "$gt_cv_func_dgettext_libc" = "yes" ; then
 
128
        AC_CHECK_FUNCS(bind_textdomain_codeset)
 
129
      fi
 
130
 
 
131
      #
 
132
      # If we don't have everything we want, check in libintl
 
133
      #
 
134
      if test "$gt_cv_func_dgettext_libc" != "yes" \
 
135
         || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
 
136
        
 
137
        AC_CHECK_LIB(intl, bindtextdomain,
 
138
            [AC_CHECK_LIB(intl, dgettext,
 
139
                          gt_cv_func_dgettext_libintl=yes)])
 
140
 
 
141
        if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
 
142
          AC_MSG_CHECKING([if -liconv is needed to use gettext])
 
143
          AC_MSG_RESULT([])
 
144
          AC_CHECK_LIB(intl, dcgettext,
 
145
                       [gt_cv_func_dgettext_libintl=yes
 
146
                        libintl_extra_libs=-liconv],
 
147
                        :,-liconv)
 
148
        fi
 
149
 
 
150
        #
 
151
        # If we found libintl, then check in it for bind_textdomain_codeset();
 
152
        # we'll prefer libc if neither have bind_textdomain_codeset(),
 
153
        # and both have dgettext
 
154
        #
 
155
        if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
 
156
          glib_save_LIBS="$LIBS"
 
157
          LIBS="$LIBS -lintl $libintl_extra_libs"
 
158
          unset ac_cv_func_bind_textdomain_codeset
 
159
          AC_CHECK_FUNCS(bind_textdomain_codeset)
 
160
          LIBS="$glib_save_LIBS"
 
161
 
 
162
          if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
 
163
            gt_cv_func_dgettext_libc=no
 
164
          else
 
165
            if test "$gt_cv_func_dgettext_libc" = "yes"; then
 
166
              gt_cv_func_dgettext_libintl=no
 
167
            fi
 
168
          fi
 
169
        fi
 
170
      fi
 
171
 
 
172
      if test "$gt_cv_func_dgettext_libc" = "yes" \
 
173
        || test "$gt_cv_func_dgettext_libintl" = "yes"; then
 
174
        gt_cv_have_gettext=yes
 
175
      fi
 
176
  
 
177
      if test "$gt_cv_func_dgettext_libintl" = "yes"; then
 
178
        INTLLIBS="-lintl $libintl_extra_libs"
 
179
      fi
 
180
  
 
181
      if test "$gt_cv_have_gettext" = "yes"; then
 
182
        AC_DEFINE(HAVE_GETTEXT,1,
 
183
          [Define if the GNU gettext() function is already present or preinstalled.])
 
184
        GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
 
185
          [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
 
186
        if test "$MSGFMT" != "no"; then
 
187
          glib_save_LIBS="$LIBS"
 
188
          LIBS="$LIBS $INTLLIBS"
 
189
          AC_CHECK_FUNCS(dcgettext)
 
190
          AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
 
191
          GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
 
192
            [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
 
193
          AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
 
194
                         return _nl_msg_cat_cntr],
 
195
            [CATOBJEXT=.gmo 
 
196
             DATADIRNAME=share],
 
197
            [case $host in
 
198
            *-*-solaris*)
 
199
            dnl On Solaris, if bind_textdomain_codeset is in libc,
 
200
            dnl GNU format message catalog is always supported,
 
201
            dnl since both are added to the libc all together.
 
202
            dnl Hence, we'd like to go with DATADIRNAME=share and
 
203
            dnl and CATOBJEXT=.gmo in this case.
 
204
            AC_CHECK_FUNC(bind_textdomain_codeset,
 
205
              [CATOBJEXT=.gmo 
 
206
               DATADIRNAME=share],
 
207
              [CATOBJEXT=.mo
 
208
               DATADIRNAME=lib])
 
209
            ;;
 
210
            *)
 
211
            CATOBJEXT=.mo
 
212
            DATADIRNAME=lib
 
213
            ;;
 
214
            esac])
 
215
          LIBS="$glib_save_LIBS"
 
216
          INSTOBJEXT=.mo
 
217
        else
 
218
          gt_cv_have_gettext=no
 
219
        fi
 
220
      fi
 
221
    ])
 
222
 
 
223
    if test "$gt_cv_have_gettext" = "yes" ; then
 
224
      AC_DEFINE(ENABLE_NLS, 1,
 
225
        [always defined to indicate that i18n is enabled])
 
226
    fi
 
227
 
 
228
    dnl Test whether we really found GNU xgettext.
 
229
    if test "$XGETTEXT" != ":"; then
 
230
      dnl If it is not GNU xgettext we define it as : so that the
 
231
      dnl Makefiles still can work.
 
232
      if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
 
233
        : ;
 
234
      else
 
235
        AC_MSG_RESULT(
 
236
          [found xgettext program is not GNU xgettext; ignore it])
 
237
        XGETTEXT=":"
 
238
      fi
 
239
    fi
 
240
 
 
241
    # We need to process the po/ directory.
 
242
    POSUB=po
 
243
 
 
244
    AC_OUTPUT_COMMANDS(
 
245
      [case "$CONFIG_FILES" in *po/Makefile.in*)
 
246
        sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
 
247
      esac])
 
248
 
 
249
    dnl These rules are solely for the distribution goal.  While doing this
 
250
    dnl we only have to keep exactly one list of the available catalogs
 
251
    dnl in configure.in.
 
252
    for lang in $ALL_LINGUAS; do
 
253
      GMOFILES="$GMOFILES $lang.gmo"
 
254
      POFILES="$POFILES $lang.po"
 
255
    done
 
256
 
 
257
    dnl Make all variables we use known to autoconf.
 
258
    AC_SUBST(CATALOGS)
 
259
    AC_SUBST(CATOBJEXT)
 
260
    AC_SUBST(DATADIRNAME)
 
261
    AC_SUBST(GMOFILES)
 
262
    AC_SUBST(INSTOBJEXT)
 
263
    AC_SUBST(INTLLIBS)
 
264
    AC_SUBST(PO_IN_DATADIR_TRUE)
 
265
    AC_SUBST(PO_IN_DATADIR_FALSE)
 
266
    AC_SUBST(POFILES)
 
267
    AC_SUBST(POSUB)
 
268
  ])
 
269
 
 
270
# AM_GLIB_GNU_GETTEXT
 
271
# -------------------
 
272
# Do checks necessary for use of gettext. If a suitable implementation 
 
273
# of gettext is found in either in libintl or in the C library,
 
274
# it will set INTLLIBS to the libraries needed for use of gettext
 
275
# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable
 
276
# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST()
 
277
# on various variables needed by the Makefile.in.in installed by 
 
278
# glib-gettextize.
 
279
dnl
 
280
glib_DEFUN([GLIB_GNU_GETTEXT],
 
281
  [AC_REQUIRE([AC_PROG_CC])dnl
 
282
   AC_REQUIRE([AC_HEADER_STDC])dnl
 
283
   
 
284
   GLIB_LC_MESSAGES
 
285
   GLIB_WITH_NLS
 
286
 
 
287
   if test "$gt_cv_have_gettext" = "yes"; then
 
288
     if test "x$ALL_LINGUAS" = "x"; then
 
289
       LINGUAS=
 
290
     else
 
291
       AC_MSG_CHECKING(for catalogs to be installed)
 
292
       NEW_LINGUAS=
 
293
       for presentlang in $ALL_LINGUAS; do
 
294
         useit=no
 
295
         if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
 
296
           desiredlanguages="$LINGUAS"
 
297
         else
 
298
           desiredlanguages="$ALL_LINGUAS"
 
299
         fi
 
300
         for desiredlang in $desiredlanguages; do
 
301
           # Use the presentlang catalog if desiredlang is
 
302
           #   a. equal to presentlang, or
 
303
           #   b. a variant of presentlang (because in this case,
 
304
           #      presentlang can be used as a fallback for messages
 
305
           #      which are not translated in the desiredlang catalog).
 
306
           case "$desiredlang" in
 
307
             "$presentlang"*) useit=yes;;
 
308
           esac
 
309
         done
 
310
         if test $useit = yes; then
 
311
           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
 
312
         fi
 
313
       done
 
314
       LINGUAS=$NEW_LINGUAS
 
315
       AC_MSG_RESULT($LINGUAS)
 
316
     fi
 
317
 
 
318
     dnl Construct list of names of catalog files to be constructed.
 
319
     if test -n "$LINGUAS"; then
 
320
       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
 
321
     fi
 
322
   fi
 
323
 
 
324
   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
 
325
   dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
 
326
   dnl Try to locate is.
 
327
   MKINSTALLDIRS=
 
328
   if test -n "$ac_aux_dir"; then
 
329
     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
 
330
   fi
 
331
   if test -z "$MKINSTALLDIRS"; then
 
332
     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
 
333
   fi
 
334
   AC_SUBST(MKINSTALLDIRS)
 
335
 
 
336
   dnl Generate list of files to be processed by xgettext which will
 
337
   dnl be included in po/Makefile.
 
338
   test -d po || mkdir po
 
339
   if test "x$srcdir" != "x."; then
 
340
     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
 
341
       posrcprefix="$srcdir/"
 
342
     else
 
343
       posrcprefix="../$srcdir/"
 
344
     fi
 
345
   else
 
346
     posrcprefix="../"
 
347
   fi
 
348
   rm -f po/POTFILES
 
349
   sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
 
350
        < $srcdir/po/POTFILES.in > po/POTFILES
 
351
  ])
 
352
 
 
353
# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
 
354
# -------------------------------
 
355
# Define VARIABLE to the location where catalog files will
 
356
# be installed by po/Makefile.
 
357
glib_DEFUN([GLIB_DEFINE_LOCALEDIR],
 
358
[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
 
359
glib_save_prefix="$prefix"
 
360
glib_save_exec_prefix="$exec_prefix"
 
361
test "x$prefix" = xNONE && prefix=$ac_default_prefix
 
362
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
 
363
if test "x$CATOBJEXT" = "x.mo" ; then
 
364
  localedir=`eval echo "${libdir}/locale"`
 
365
else
 
366
  localedir=`eval echo "${datadir}/locale"`
 
367
fi
 
368
prefix="$glib_save_prefix"
 
369
exec_prefix="$glib_save_exec_prefix"
 
370
AC_DEFINE_UNQUOTED($1, "$localedir",
 
371
  [Define the location where the catalogs will be installed])
 
372
])
 
373
 
 
374
dnl
 
375
dnl Now the definitions that aclocal will find
 
376
dnl
 
377
ifdef(glib_configure_in,[],[
 
378
AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
 
379
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
 
380
])dnl