/[cvs]/eggdrop1.9/gettext.m4
ViewVC logotype

Annotation of /eggdrop1.9/gettext.m4

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Sat Oct 20 01:19:41 2001 UTC (20 years ago) by tothwolf
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
FILE REMOVED
* added acconfig for an aux dir
* moved m4 files to acconfig
* modified EGG_LIBTOOL autoconf macro to pass --with-auxdir to libltdl
* added notice to bootstrap about libtool needing a patch

1 ite 1.1 # Macro to add for using GNU gettext.
2     # Ulrich Drepper <drepper@cygnus.com>, 1995.
3     #
4     # This file can be copied and used freely without restrictions. It can
5     # be used in projects which are not available under the GNU General Public
6     # License or the GNU Library General Public License but which still want
7     # to provide support for the GNU gettext functionality.
8     # Please note that the actual code of the GNU gettext library is covered
9     # by the GNU Library General Public License, and the rest of the GNU
10     # gettext package package is covered by the GNU General Public License.
11     # They are *not* in the public domain.
12    
13     # serial 10
14    
15     dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
16     dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
17     dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
18     dnl depending on --{enable,disable}-{shared,static} and on the presence of
19     dnl AM-DISABLE-SHARED). Otherwise, a static library
20     dnl $(top_builddir)/intl/libintl.a will be created.
21     dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
22     dnl implementations (in libc or libintl) without the ngettext() function
23     dnl will be ignored.
24     dnl LIBDIR is used to find the intl libraries. If empty,
25     dnl the value `$(top_builddir)/intl/' is used.
26     dnl
27     dnl The result of the configuration is one of three cases:
28     dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
29     dnl and used.
30     dnl Catalog format: GNU --> install in $(datadir)
31     dnl Catalog extension: .mo after installation, .gmo in source tree
32     dnl 2) GNU gettext has been found in the system's C library.
33     dnl Catalog format: GNU --> install in $(datadir)
34     dnl Catalog extension: .mo after installation, .gmo in source tree
35     dnl 3) No internationalization, always use English msgid.
36     dnl Catalog format: none
37     dnl Catalog extension: none
38     dnl The use of .gmo is historical (it was needed to avoid overwriting the
39     dnl GNU format catalogs when building on a platform with an X/Open gettext),
40     dnl but we keep it in order not to force irrelevant filename changes on the
41     dnl maintainers.
42     dnl
43     AC_DEFUN([AM_WITH_NLS],
44     [AC_MSG_CHECKING([whether NLS is requested])
45     dnl Default is enabled NLS
46     AC_ARG_ENABLE(nls,
47     [ --disable-nls do not use Native Language Support],
48     USE_NLS=$enableval, USE_NLS=yes)
49     AC_MSG_RESULT($USE_NLS)
50     AC_SUBST(USE_NLS)
51    
52     BUILD_INCLUDED_LIBINTL=no
53     USE_INCLUDED_LIBINTL=no
54     INTLLIBS=
55    
56     dnl If we use NLS figure out what method
57     if test "$USE_NLS" = "yes"; then
58     AC_DEFINE(ENABLE_NLS, 1,
59     [Define to 1 if translation of program messages to the user's native language
60     is requested.])
61     AC_MSG_CHECKING([whether included gettext is requested])
62     AC_ARG_WITH(included-gettext,
63     [ --with-included-gettext use the GNU gettext library included here],
64     nls_cv_force_use_gnu_gettext=$withval,
65     nls_cv_force_use_gnu_gettext=no)
66     AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
67    
68     nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
69     if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
70     dnl User does not insist on using GNU NLS library. Figure out what
71     dnl to use. If GNU gettext is available we use this. Else we have
72     dnl to fall back to GNU NLS library.
73     CATOBJEXT=NONE
74    
75     dnl Add a version number to the cache macros.
76     define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
77     define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
78    
79     AC_CHECK_HEADER(libintl.h,
80     [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
81     [AC_TRY_LINK([#include <libintl.h>
82     extern int _nl_msg_cat_cntr;],
83     [bindtextdomain ("", "");
84     return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
85     gt_cv_func_gnugettext_libc=yes,
86     gt_cv_func_gnugettext_libc=no)])
87    
88     if test "$gt_cv_func_gnugettext_libc" != "yes"; then
89     AC_CACHE_CHECK([for GNU gettext in libintl],
90     gt_cv_func_gnugettext_libintl,
91     [gt_save_LIBS="$LIBS"
92     LIBS="$LIBS -lintl $LIBICONV"
93     AC_TRY_LINK([#include <libintl.h>
94     extern int _nl_msg_cat_cntr;],
95     [bindtextdomain ("", "");
96     return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
97     gt_cv_func_gnugettext_libintl=yes,
98     gt_cv_func_gnugettext_libintl=no)
99     LIBS="$gt_save_LIBS"])
100     fi
101    
102     dnl If an already present or preinstalled GNU gettext() is found,
103     dnl use it. But if this macro is used in GNU gettext, and GNU
104     dnl gettext is already preinstalled in libintl, we update this
105     dnl libintl. (Cf. the install rule in intl/Makefile.in.)
106     if test "$gt_cv_func_gnugettext_libc" = "yes" \
107     || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
108     && test "$PACKAGE" != gettext; }; then
109     AC_DEFINE(HAVE_GETTEXT, 1,
110     [Define if the GNU gettext() function is already present or preinstalled.])
111    
112     if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
113     dnl If iconv() is in a separate libiconv library, then anyone
114     dnl linking with libintl{.a,.so} also needs to link with
115     dnl libiconv.
116     INTLLIBS="-lintl $LIBICONV"
117     fi
118    
119     gt_save_LIBS="$LIBS"
120     LIBS="$LIBS $INTLLIBS"
121     AC_CHECK_FUNCS(dcgettext)
122     LIBS="$gt_save_LIBS"
123    
124     dnl Search for GNU msgfmt in the PATH.
125     AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
126     [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
127     AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
128    
129     dnl Search for GNU xgettext in the PATH.
130     AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
131     [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
132    
133     CATOBJEXT=.gmo
134     fi
135     ])
136    
137     if test "$CATOBJEXT" = "NONE"; then
138     dnl GNU gettext is not found in the C library.
139     dnl Fall back on GNU gettext library.
140     nls_cv_use_gnu_gettext=yes
141     fi
142     fi
143    
144     if test "$nls_cv_use_gnu_gettext" = "yes"; then
145     dnl Mark actions used to generate GNU NLS library.
146     INTLOBJS="\$(GETTOBJS)"
147     AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
148     [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
149     AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
150     AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
151     [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
152     AC_SUBST(MSGFMT)
153     BUILD_INCLUDED_LIBINTL=yes
154     USE_INCLUDED_LIBINTL=yes
155     CATOBJEXT=.gmo
156     INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
157     LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
158     fi
159    
160     dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
161     dnl Test whether we really found GNU msgfmt.
162     if test "$GMSGFMT" != ":"; then
163     dnl If it is no GNU msgfmt we define it as : so that the
164     dnl Makefiles still can work.
165     if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
166     : ;
167     else
168     AC_MSG_RESULT(
169     [found msgfmt program is not GNU msgfmt; ignore it])
170     GMSGFMT=":"
171     fi
172     fi
173    
174     dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
175     dnl Test whether we really found GNU xgettext.
176     if test "$XGETTEXT" != ":"; then
177     dnl If it is no GNU xgettext we define it as : so that the
178     dnl Makefiles still can work.
179     if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
180     : ;
181     else
182     AC_MSG_RESULT(
183     [found xgettext program is not GNU xgettext; ignore it])
184     XGETTEXT=":"
185     fi
186     fi
187    
188     dnl We need to process the po/ directory.
189     POSUB=po
190     fi
191     AC_OUTPUT_COMMANDS(
192     [for ac_file in $CONFIG_FILES; do
193     # Support "outfile[:infile[:infile...]]"
194     case "$ac_file" in
195     *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
196     esac
197     # PO directories have a Makefile.in generated from Makefile.in.in.
198     case "$ac_file" in */Makefile.in)
199     # Adjust a relative srcdir.
200     ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
201     ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
202     ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
203     # In autoconf-2.13 it is called $ac_given_srcdir.
204     # In autoconf-2.50 it is called $srcdir.
205     test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
206     case "$ac_given_srcdir" in
207     .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
208     /*) top_srcdir="$ac_given_srcdir" ;;
209     *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
210     esac
211     if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
212     rm -f "$ac_dir/POTFILES"
213     test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
214     sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
215     test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
216     sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
217     fi
218     ;;
219     esac
220     done])
221    
222    
223     dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
224     dnl to 'yes' because some of the testsuite requires it.
225     if test "$PACKAGE" = gettext; then
226     BUILD_INCLUDED_LIBINTL=yes
227     fi
228    
229     dnl intl/plural.c is generated from intl/plural.y. It requires bison,
230     dnl because plural.y uses bison specific features. It requires at least
231     dnl bison-1.26 because earlier versions generate a plural.c that doesn't
232     dnl compile.
233     dnl bison is only needed for the maintainer (who touches plural.y). But in
234     dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
235     dnl the rule in general Makefile. Now, some people carelessly touch the
236     dnl files or have a broken "make" program, hence the plural.c rule will
237     dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
238     dnl present or too old.
239     AC_CHECK_PROGS([INTLBISON], [bison])
240     if test -z "$INTLBISON"; then
241     ac_verc_fail=yes
242     else
243     dnl Found it, now check the version.
244     AC_MSG_CHECKING([version of bison])
245     changequote(<<,>>)dnl
246     ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
247     case $ac_prog_version in
248     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
249     1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
250     changequote([,])dnl
251     ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
252     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
253     esac
254     AC_MSG_RESULT([$ac_prog_version])
255     fi
256     if test $ac_verc_fail = yes; then
257     INTLBISON=:
258     fi
259    
260     dnl These rules are solely for the distribution goal. While doing this
261     dnl we only have to keep exactly one list of the available catalogs
262     dnl in configure.in.
263     for lang in $ALL_LINGUAS; do
264     GMOFILES="$GMOFILES $lang.gmo"
265     POFILES="$POFILES $lang.po"
266     done
267    
268     dnl Make all variables we use known to autoconf.
269     AC_SUBST(BUILD_INCLUDED_LIBINTL)
270     AC_SUBST(USE_INCLUDED_LIBINTL)
271     AC_SUBST(CATALOGS)
272     AC_SUBST(CATOBJEXT)
273     AC_SUBST(GMOFILES)
274     AC_SUBST(INTLLIBS)
275     AC_SUBST(INTLOBJS)
276     AC_SUBST(POFILES)
277     AC_SUBST(POSUB)
278    
279     dnl For backward compatibility. Some configure.ins may be using this.
280     nls_cv_header_intl=
281     nls_cv_header_libgt=
282    
283     dnl For backward compatibility. Some Makefiles may be using this.
284     DATADIRNAME=share
285     AC_SUBST(DATADIRNAME)
286    
287     dnl For backward compatibility. Some Makefiles may be using this.
288     INSTOBJEXT=.mo
289     AC_SUBST(INSTOBJEXT)
290    
291     dnl For backward compatibility. Some Makefiles may be using this.
292     GENCAT=gencat
293     AC_SUBST(GENCAT)
294     ])
295    
296     dnl Usage: Just like AM_WITH_NLS, which see.
297     AC_DEFUN([AM_GNU_GETTEXT],
298     [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
299     AC_REQUIRE([AC_PROG_CC])dnl
300     AC_REQUIRE([AC_CANONICAL_HOST])dnl
301     AC_REQUIRE([AC_PROG_RANLIB])dnl
302     AC_REQUIRE([AC_ISC_POSIX])dnl
303     AC_REQUIRE([AC_HEADER_STDC])dnl
304     AC_REQUIRE([AC_C_CONST])dnl
305     AC_REQUIRE([AC_C_INLINE])dnl
306     AC_REQUIRE([AC_TYPE_OFF_T])dnl
307     AC_REQUIRE([AC_TYPE_SIZE_T])dnl
308     AC_REQUIRE([AC_FUNC_ALLOCA])dnl
309     AC_REQUIRE([AC_FUNC_MMAP])dnl
310     AC_REQUIRE([jm_GLIBC21])dnl
311    
312     AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
313     stdlib.h string.h unistd.h sys/param.h])
314     AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
315     getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
316     strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
317    
318     AM_ICONV
319     AM_LANGINFO_CODESET
320     AM_LC_MESSAGES
321     AM_WITH_NLS([$1],[$2],[$3])
322    
323     if test "x$CATOBJEXT" != "x"; then
324     if test "x$ALL_LINGUAS" = "x"; then
325     LINGUAS=
326     else
327     AC_MSG_CHECKING(for catalogs to be installed)
328     NEW_LINGUAS=
329     for presentlang in $ALL_LINGUAS; do
330     useit=no
331     for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
332     # Use the presentlang catalog if desiredlang is
333     # a. equal to presentlang, or
334     # b. a variant of presentlang (because in this case,
335     # presentlang can be used as a fallback for messages
336     # which are not translated in the desiredlang catalog).
337     case "$desiredlang" in
338     "$presentlang"*) useit=yes;;
339     esac
340     done
341     if test $useit = yes; then
342     NEW_LINGUAS="$NEW_LINGUAS $presentlang"
343     fi
344     done
345     LINGUAS=$NEW_LINGUAS
346     AC_MSG_RESULT($LINGUAS)
347     fi
348    
349     dnl Construct list of names of catalog files to be constructed.
350     if test -n "$LINGUAS"; then
351     for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
352     fi
353     fi
354    
355     dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
356     dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
357     dnl Try to locate is.
358     MKINSTALLDIRS=
359     if test -n "$ac_aux_dir"; then
360     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
361     fi
362     if test -z "$MKINSTALLDIRS"; then
363     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
364     fi
365     AC_SUBST(MKINSTALLDIRS)
366    
367     dnl Enable libtool support if the surrounding package wishes it.
368     INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
369     AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
370     ])

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23