1
# Copyright (C) 1995-2002 Free Software Foundation, Inc.
2
# Copyright (C) 2001-2003,2004 Red Hat, Inc.
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.
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.
14
# Macro to add for using GNU gettext.
15
# Ulrich Drepper <drepper@cygnus.com>, 1995, 1996
17
# Modified to never use included libintl.
18
# Owen Taylor <otaylor@redhat.com>, 12/15/1998
20
# Major rework to remove unused code
21
# Owen Taylor <otaylor@redhat.com>, 12/11/2002
23
# Added better handling of ALL_LINGUAS from GNU gettext version
24
# written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
26
# Modified to require ngettext
27
# Matthias Clasen <mclasen@redhat.com> 08/06/2004
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
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.
39
m4_copy([AC_DEFUN],[glib_DEFUN])
40
m4_copy([AC_REQUIRE],[glib_REQUIRE])
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.
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.])
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,
71
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
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
79
ac_cv_path_$1="$ac_dir/$ac_word"
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"
92
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
102
glib_DEFUN([GLIB_WITH_NLS],
103
dnl NLS is obligatory
107
gt_cv_have_gettext=no
113
AC_CHECK_HEADER(libintl.h,
114
[gt_cv_func_dgettext_libintl="no"
115
libintl_extra_libs=""
118
# First check in libc
120
AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
124
[return !ngettext ("","", 1)],
125
gt_cv_func_ngettext_libc=yes,
126
gt_cv_func_ngettext_libc=no)
129
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
130
AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
134
[return !dgettext ("","")],
135
gt_cv_func_dgettext_libc=yes,
136
gt_cv_func_dgettext_libc=no)
140
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
141
AC_CHECK_FUNCS(bind_textdomain_codeset)
145
# If we don't have everything we want, check in libintl
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
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)])])
156
if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
157
AC_MSG_CHECKING([if -liconv is needed to use gettext])
159
AC_CHECK_LIB(intl, ngettext,
160
[AC_CHECK_LIB(intl, dcgettext,
161
[gt_cv_func_dgettext_libintl=yes
162
libintl_extra_libs=-liconv],
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
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"
179
if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
180
gt_cv_func_dgettext_libc=no
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
190
if test "$gt_cv_func_dgettext_libc" = "yes" \
191
|| test "$gt_cv_func_dgettext_libintl" = "yes"; then
192
gt_cv_have_gettext=yes
195
if test "$gt_cv_func_dgettext_libintl" = "yes"; then
196
INTLLIBS="-lintl $libintl_extra_libs"
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)
209
AC_MSG_CHECKING([if msgfmt accepts -c])
210
GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[
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],
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,
247
LIBS="$glib_save_LIBS"
250
gt_cv_have_gettext=no
255
if test "$gt_cv_have_gettext" = "yes" ; then
256
AC_DEFINE(ENABLE_NLS, 1,
257
[always defined to indicate that i18n is enabled])
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
268
[found xgettext program is not GNU xgettext; ignore it])
273
# We need to process the po/ directory.
277
[case "$CONFIG_FILES" in *po/Makefile.in*)
278
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
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
284
for lang in $ALL_LINGUAS; do
285
GMOFILES="$GMOFILES $lang.gmo"
286
POFILES="$POFILES $lang.po"
289
dnl Make all variables we use known to autoconf.
292
AC_SUBST(DATADIRNAME)
296
AC_SUBST(PO_IN_DATADIR_TRUE)
297
AC_SUBST(PO_IN_DATADIR_FALSE)
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
312
glib_DEFUN([GLIB_GNU_GETTEXT],
313
[AC_REQUIRE([AC_PROG_CC])dnl
314
AC_REQUIRE([AC_HEADER_STDC])dnl
319
if test "$gt_cv_have_gettext" = "yes"; then
320
if test "x$ALL_LINGUAS" = "x"; then
323
AC_MSG_CHECKING(for catalogs to be installed)
325
for presentlang in $ALL_LINGUAS; do
327
if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
328
desiredlanguages="$LINGUAS"
330
desiredlanguages="$ALL_LINGUAS"
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;;
342
if test $useit = yes; then
343
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
347
AC_MSG_RESULT($LINGUAS)
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
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.
360
if test -n "$ac_aux_dir"; then
361
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
363
if test -z "$MKINSTALLDIRS"; then
364
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
366
AC_SUBST(MKINSTALLDIRS)
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/"
375
posrcprefix="../$srcdir/"
381
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
382
< $srcdir/po/POTFILES.in > po/POTFILES
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"`
400
localedir=`eval echo "${datadir}/locale"`
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])
410
dnl Now the definitions that aclocal will find
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($@)])
417
# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL])
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
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