| 1 | # This file is derived from `gettext.m4'. The difference is that the
|
|---|
| 2 | # included macros assume Cygnus-style source and build trees.
|
|---|
| 3 |
|
|---|
| 4 | # Macro to add for using GNU gettext.
|
|---|
| 5 | # Ulrich Drepper <[email protected]>, 1995.
|
|---|
| 6 | #
|
|---|
| 7 | # This file file be copied and used freely without restrictions. It can
|
|---|
| 8 | # be used in projects which are not available under the GNU Public License
|
|---|
| 9 | # but which still want to provide support for the GNU gettext functionality.
|
|---|
| 10 | # Please note that the actual code is *not* freely available.
|
|---|
| 11 |
|
|---|
| 12 | # serial 3
|
|---|
| 13 |
|
|---|
| 14 | AC_DEFUN(CY_WITH_NLS,
|
|---|
| 15 | [AC_MSG_CHECKING([whether NLS is requested])
|
|---|
| 16 | dnl Default is enabled NLS
|
|---|
| 17 | AC_ARG_ENABLE(nls,
|
|---|
| 18 | [ --disable-nls do not use Native Language Support],
|
|---|
| 19 | USE_NLS=$enableval, USE_NLS=yes)
|
|---|
| 20 | AC_MSG_RESULT($USE_NLS)
|
|---|
| 21 | AC_SUBST(USE_NLS)
|
|---|
| 22 |
|
|---|
| 23 | USE_INCLUDED_LIBINTL=no
|
|---|
| 24 |
|
|---|
| 25 | dnl If we use NLS figure out what method
|
|---|
| 26 | if test "$USE_NLS" = "yes"; then
|
|---|
| 27 | AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if NLS is requested])
|
|---|
| 28 | AC_MSG_CHECKING([whether included gettext is requested])
|
|---|
| 29 | AC_ARG_WITH(included-gettext,
|
|---|
| 30 | [ --with-included-gettext use the GNU gettext library included here],
|
|---|
| 31 | nls_cv_force_use_gnu_gettext=$withval,
|
|---|
| 32 | nls_cv_force_use_gnu_gettext=no)
|
|---|
| 33 | AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
|
|---|
| 34 |
|
|---|
| 35 | nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
|
|---|
| 36 | echo "nls_cv_use_gnu_gettext:$nls_cv_use_gnu_gettext" >&5
|
|---|
| 37 | if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
|
|---|
| 38 | dnl User does not insist on using GNU NLS library. Figure out what
|
|---|
| 39 | dnl to use. If gettext or catgets are available (in this order) we
|
|---|
| 40 | dnl use this. Else we have to fall back to GNU NLS library.
|
|---|
| 41 | dnl catgets is only used if permitted by option --with-catgets.
|
|---|
| 42 | nls_cv_header_intl=
|
|---|
| 43 | nls_cv_header_libgt=
|
|---|
| 44 | CATOBJEXT=NONE
|
|---|
| 45 |
|
|---|
| 46 | AC_CHECK_HEADER(libintl.h,
|
|---|
| 47 | [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
|
|---|
| 48 | [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
|
|---|
| 49 | gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
|
|---|
| 50 |
|
|---|
| 51 | if test "$gt_cv_func_gettext_libc" != "yes"; then
|
|---|
| 52 | dnl dnl Bird: this is pretty hackish, something aint working right...
|
|---|
| 53 | dnl dnl AC_CHECK_LIB isnt working it seems... its not adding -lintl to LIB...
|
|---|
| 54 | AC_CHECK_LIB(intl, bindtextdomain,
|
|---|
| 55 | [AC_CACHE_CHECK([for gettext in libintl],
|
|---|
| 56 | gt_cv_func_gettext_libintl,
|
|---|
| 57 | [ac_save_LIBS="$LIBS"; LIBS="-lintl $LIBS";
|
|---|
| 58 | AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
|
|---|
| 59 | gt_cv_func_gettext_libintl=yes,
|
|---|
| 60 | gt_cv_func_gettext_libintl=no)
|
|---|
| 61 | LIBS="$ac_save_LIBS";])])
|
|---|
| 62 | fi
|
|---|
| 63 |
|
|---|
| 64 | if test "$gt_cv_func_gettext_libc" = "yes" \
|
|---|
| 65 | || test "$gt_cv_func_gettext_libintl" = "yes"; then
|
|---|
| 66 | AC_DEFINE(HAVE_GETTEXT, 1,
|
|---|
| 67 | [Define as 1 if you have gettext and don't want to use GNU gettext.])
|
|---|
| 68 | AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
|---|
| 69 | [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
|
|---|
| 70 | if test "$MSGFMT" != "no"; then
|
|---|
| 71 | AC_CHECK_FUNCS(dcgettext)
|
|---|
| 72 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
|---|
| 73 | AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
|---|
| 74 | [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
|---|
| 75 |
|
|---|
| 76 | AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
|
|---|
| 77 | return _nl_msg_cat_cntr],
|
|---|
| 78 | [CATOBJEXT=.gmo
|
|---|
| 79 | DATADIRNAME=share],
|
|---|
| 80 | [CATOBJEXT=.mo
|
|---|
| 81 | DATADIRNAME=lib])
|
|---|
| 82 | INSTOBJEXT=.mo
|
|---|
| 83 | fi
|
|---|
| 84 | fi
|
|---|
| 85 | ])
|
|---|
| 86 |
|
|---|
| 87 | dnl In the standard gettext, we would now check for catgets.
|
|---|
| 88 | dnl However, we never want to use catgets for our releases.
|
|---|
| 89 |
|
|---|
| 90 | if test "$CATOBJEXT" = "NONE"; then
|
|---|
| 91 | dnl Neither gettext nor catgets in included in the C library.
|
|---|
| 92 | dnl Fall back on GNU gettext library.
|
|---|
| 93 | nls_cv_use_gnu_gettext=yes
|
|---|
| 94 | echo "nls_cv_use_gnu_gettext:$nls_cv_use_gnu_gettext fallback" >&5
|
|---|
| 95 | fi
|
|---|
| 96 | fi
|
|---|
| 97 |
|
|---|
| 98 | if test "$nls_cv_use_gnu_gettext" = "yes"; then
|
|---|
| 99 | dnl Mark actions used to generate GNU NLS library.
|
|---|
| 100 | INTLOBJS="\$(GETTOBJS)"
|
|---|
| 101 | AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
|---|
| 102 | [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
|
|---|
| 103 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
|---|
| 104 | AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
|---|
| 105 | [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
|---|
| 106 | AC_SUBST(MSGFMT)
|
|---|
| 107 | USE_INCLUDED_LIBINTL=yes
|
|---|
| 108 | CATOBJEXT=.gmo
|
|---|
| 109 | INSTOBJEXT=.mo
|
|---|
| 110 | DATADIRNAME=share
|
|---|
| 111 | INTLDEPS='$(top_builddir)/../intl/libintl.a'
|
|---|
| 112 | INTLLIBS=$INTLDEPS
|
|---|
| 113 | LIBS=`echo $LIBS | sed -e 's/-lintl//'`
|
|---|
| 114 | nls_cv_header_intl=libintl.h
|
|---|
| 115 | nls_cv_header_libgt=libgettext.h
|
|---|
| 116 | dnl else
|
|---|
| 117 | dnl dnl Bird: AC_CHECK_LIB doesn't seem to work. Update both LIBS and
|
|---|
| 118 | dnl dnl INTLLIBS just in case LIBS is messed up later.
|
|---|
| 119 | dnl echo "dbg: else: gt_cv_func_gettext_libintl" >&5
|
|---|
| 120 | dnl if test "$gt_cv_func_gettext_libintl" = "yes"; then
|
|---|
| 121 | dnl echo "dbg: updating LIBS" >&5
|
|---|
| 122 | dnl LIBS="-lintl $LIBS"
|
|---|
| 123 | dnl INTLLIBS="-lintl"
|
|---|
| 124 | dnl fi
|
|---|
| 125 | fi
|
|---|
| 126 |
|
|---|
| 127 | dnl Test whether we really found GNU xgettext.
|
|---|
| 128 | if test "$XGETTEXT" != ":"; then
|
|---|
| 129 | dnl If it is no GNU xgettext we define it as : so that the
|
|---|
| 130 | dnl Makefiles still can work.
|
|---|
| 131 | if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
|
|---|
| 132 | : ;
|
|---|
| 133 | else
|
|---|
| 134 | AC_MSG_RESULT(
|
|---|
| 135 | [found xgettext programs is not GNU xgettext; ignore it])
|
|---|
| 136 | XGETTEXT=":"
|
|---|
| 137 | fi
|
|---|
| 138 | fi
|
|---|
| 139 |
|
|---|
| 140 | # We need to process the po/ directory.
|
|---|
| 141 | POSUB=po
|
|---|
| 142 | else
|
|---|
| 143 | DATADIRNAME=share
|
|---|
| 144 | nls_cv_header_intl=libintl.h
|
|---|
|
|---|