1
# Copyright (C) 1995-2002 Free Software Foundation, Inc.
2
# Copyright (C) 2001-2003 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
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
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.
37
m4_copy([AC_DEFUN],[glib_DEFUN])
38
m4_copy([AC_REQUIRE],[glib_REQUIRE])
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.
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.])
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,
69
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
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
77
ac_cv_path_$1="$ac_dir/$ac_word"
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"
90
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
100
glib_DEFUN([GLIB_WITH_NLS],
101
dnl NLS is obligatory
105
gt_cv_have_gettext=no
111
AC_CHECK_HEADER(libintl.h,
112
[gt_cv_func_dgettext_libintl="no"
113
libintl_extra_libs=""
116
# First check in libc
118
AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
122
[return (int) dgettext ("","")],
123
gt_cv_func_dgettext_libc=yes,
124
gt_cv_func_dgettext_libc=no)
127
if test "$gt_cv_func_dgettext_libc" = "yes" ; then
128
AC_CHECK_FUNCS(bind_textdomain_codeset)
132
# If we don't have everything we want, check in libintl
134
if test "$gt_cv_func_dgettext_libc" != "yes" \
135
|| test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
137
AC_CHECK_LIB(intl, bindtextdomain,
138
[AC_CHECK_LIB(intl, dgettext,
139
gt_cv_func_dgettext_libintl=yes)])
141
if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
142
AC_MSG_CHECKING([if -liconv is needed to use gettext])
144
AC_CHECK_LIB(intl, dcgettext,
145
[gt_cv_func_dgettext_libintl=yes
146
libintl_extra_libs=-liconv],
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
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"
162
if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
163
gt_cv_func_dgettext_libc=no
165
if test "$gt_cv_func_dgettext_libc" = "yes"; then
166
gt_cv_func_dgettext_libintl=no
172
if test "$gt_cv_func_dgettext_libc" = "yes" \
173
|| test "$gt_cv_func_dgettext_libintl" = "yes"; then
174
gt_cv_have_gettext=yes
177
if test "$gt_cv_func_dgettext_libintl" = "yes"; then
178
INTLLIBS="-lintl $libintl_extra_libs"
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],
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,
215
LIBS="$glib_save_LIBS"
218
gt_cv_have_gettext=no
223
if test "$gt_cv_have_gettext" = "yes" ; then
224
AC_DEFINE(ENABLE_NLS, 1,
225
[always defined to indicate that i18n is enabled])
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
236
[found xgettext program is not GNU xgettext; ignore it])
241
# We need to process the po/ directory.
245
[case "$CONFIG_FILES" in *po/Makefile.in*)
246
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
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
252
for lang in $ALL_LINGUAS; do
253
GMOFILES="$GMOFILES $lang.gmo"
254
POFILES="$POFILES $lang.po"
257
dnl Make all variables we use known to autoconf.
260
AC_SUBST(DATADIRNAME)
264
AC_SUBST(PO_IN_DATADIR_TRUE)
265
AC_SUBST(PO_IN_DATADIR_FALSE)
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
280
glib_DEFUN([GLIB_GNU_GETTEXT],
281
[AC_REQUIRE([AC_PROG_CC])dnl
282
AC_REQUIRE([AC_HEADER_STDC])dnl
287
if test "$gt_cv_have_gettext" = "yes"; then
288
if test "x$ALL_LINGUAS" = "x"; then
291
AC_MSG_CHECKING(for catalogs to be installed)
293
for presentlang in $ALL_LINGUAS; do
295
if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
296
desiredlanguages="$LINGUAS"
298
desiredlanguages="$ALL_LINGUAS"
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;;
310
if test $useit = yes; then
311
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
315
AC_MSG_RESULT($LINGUAS)
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
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.
328
if test -n "$ac_aux_dir"; then
329
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
331
if test -z "$MKINSTALLDIRS"; then
332
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
334
AC_SUBST(MKINSTALLDIRS)
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/"
343
posrcprefix="../$srcdir/"
349
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
350
< $srcdir/po/POTFILES.in > po/POTFILES
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"`
366
localedir=`eval echo "${datadir}/locale"`
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])
375
dnl Now the definitions that aclocal will find
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($@)])