source: trunk/src/binutils/gettext.m4@ 2291

Last change on this file since 2291 was 1851, checked in by bird, 21 years ago

Uncommented intl hack.

  • Property cvs2svn:cvs-rev set to 1.7
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 12.3 KB
Line 
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
14AC_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