* More fixes for configuring gettext correctly.

This commit is contained in:
Paul Smith 2000-06-14 22:29:30 +00:00
parent 4972b017b6
commit c392c19335
7 changed files with 111 additions and 61 deletions

View File

@ -1,3 +1,14 @@
2000-06-14 Paul D. Smith <psmith@gnu.org>
* acinclude.m4 (pds_WITH_GETTEXT): rewrite fp_WITH_GETTEXT and
rename it to avoid confusion. This version is very specific: it
won't accept any gettext that isn't GNU. If the user doesn't
explicitly ask for the included gettext, we look to see if the
system gettext is GNU (testing both the actual libintl library,
and the libintl.h header file). Only if the system gettext is
really GNU gettext will we allow it to be used.
(pds_CHECK_SYSTEM_GETTEXT): A helper function.
2000-06-13 Paul D. Smith <psmith@gnu.org> 2000-06-13 Paul D. Smith <psmith@gnu.org>
* gettext.h: If we have libintl.h, use that instead of any of the * gettext.h: If we have libintl.h, use that instead of any of the

View File

@ -4,9 +4,6 @@
/* Version of this package (needed by automake) */ /* Version of this package (needed by automake) */
#undef VERSION #undef VERSION
/* Define to 1 if NLS is requested. */
#undef ENABLE_NLS
/* Define if your locale.h file contains LC_MESSAGES. */ /* Define if your locale.h file contains LC_MESSAGES. */
#undef HAVE_LC_MESSAGES #undef HAVE_LC_MESSAGES
@ -16,12 +13,6 @@
/* Define to the name of the SCCS `get' command. */ /* Define to the name of the SCCS `get' command. */
#undef SCCS_GET #undef SCCS_GET
/* Define this if the SCCS `get' command understands the `-G<file>' option. */
#undef SCCS_GET_MINUS_G
/* Define this to enable job server support in GNU make. */
#undef MAKE_JOBSERVER
/* Define to be the nanoseconds member of struct stat's st_mtim, /* Define to be the nanoseconds member of struct stat's st_mtim,
if it exists. */ if it exists. */
#undef ST_MTIM_NSEC #undef ST_MTIM_NSEC
@ -32,9 +23,6 @@
/* Define this if the C library defines the variable `_sys_siglist'. */ /* Define this if the C library defines the variable `_sys_siglist'. */
#undef HAVE__SYS_SIGLIST #undef HAVE__SYS_SIGLIST
/* Define this if you have the `union wait' type in <sys/wait.h>. */
#undef HAVE_UNION_WAIT
/* Define to `unsigned long' or `unsigned long long' /* Define to `unsigned long' or `unsigned long long'
if <inttypes.h> doesn't define. */ if <inttypes.h> doesn't define. */
#undef uintmax_t #undef uintmax_t

View File

@ -485,11 +485,62 @@ esac
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
dnl Enable internationalization support for GNU make. dnl Enable internationalization support for GNU make.
dnl Obtained from the libit 0.7 distribution dnl Original obtained from the libit 0.7 distribution
dnl Modified to check for a system version of GNU gettext by dnl Rewritten by Paul D. Smith <psmith@gnu.org>
dnl Paul D. Smith <psmith@gnu.org> dnl This version is much more straightforward than the original (I think);
dnl If the user doesn't disable NLS, check whether she asked for the
dnl included gettext. If so, we use that. If not, test to see if the
dnl system gettext is GNU. If not, use the included gettext. If so,
dnl use the system gettext. We are very strict about testing for GNU
dnl gettext; not only must the library be GNU gettext, but the libintl.h
dnl file must also be GNU.
dnl dnl
AC_DEFUN(fp_WITH_GETTEXT, [ AC_DEFUN(pds_CHECK_SYSTEM_GETTEXT, [
# OK. What we're going to do is see if the system gettext is really
# GNU gettext, and we're going to make _sure_ (as we can) that if
# it's not we'll use the included gettext.
pds_keep_LIBS="$LIBS"
# Look around for gettext() and libintl.h on the system
AC_CHECK_HEADERS(locale.h)
AC_SEARCH_LIBS(gettext, intl)
if test "$ac_cv_search_gettext" = no; then
with_included_gettext=yes
else
# We only want to deal with GNU's gettext; if we don't have that
# we'll just use our own, thanks very much.
AC_CACHE_CHECK([whether system uses GNU gettext],
pds_cv_system_gnu_gettext, [
AC_TRY_LINK([
#include <libintl.h>
#ifdef HAVE_LOCALE_H
#include <locale.h>
#endif
], [
#if __USE_GNU_GETTEXT
extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr;
#else
not GNU gettext
#endif
],
pds_cv_system_gnu_gettext=yes, pds_cv_system_gnu_gettext=no)])
if test "x$pds_cv_system_gnu_gettext" = xyes; then
with_included_gettext=no
AC_DEFINE(HAVE_LIBINTL_H, 1, [Define if you have <libintl.h>.])
else
with_included_gettext=yes
LIBS="$fp_keep_LIBS"
fi
fi
])
AC_DEFUN(pds_WITH_GETTEXT, [
AC_MSG_CHECKING(whether NLS is wanted) AC_MSG_CHECKING(whether NLS is wanted)
AC_ARG_ENABLE(nls, AC_ARG_ENABLE(nls,
@ -500,41 +551,34 @@ AC_DEFUN(fp_WITH_GETTEXT, [
AM_CONDITIONAL(USE_NLS, test $use_nls = yes) AM_CONDITIONAL(USE_NLS, test $use_nls = yes)
if test $enable_nls = yes; then if test $enable_nls = yes; then
AC_DEFINE(ENABLE_NLS) AC_DEFINE(ENABLE_NLS, 1, [Define if NLS is requested.])
# We don't support catgets at all # We don't support catgets at all
if test "x$with_catgets" != x; then if test "x$with_catgets" != x; then
AC_MSG_WARN([catgets not supported, --with-catgets ignored]) AC_MSG_WARN([catgets not supported; --with-catgets ignored])
fi fi
fp_keep_LIBS="$LIBS" # Find out what the user wants.
# Look around for gettext() on the system AC_ARG_WITH(included-gettext,
AC_SEARCH_LIBS(gettext, intl) [ --with-included-gettext use the GNU gettext library included here],
if test "$ac_cv_search_gettext" = no; then with_included_gettext=yes,
with_included_gettext=yes with_included_gettext=maybe)
else
# We only want to deal with GNU's gettext; if we don't have that if test "x$with_included_gettext" != xyes; then
# we'll just use our own, thanks very much. pds_CHECK_SYSTEM_GETTEXT
AC_MSG_CHECKING(for GNU gettext)
AC_TRY_LINK(,[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr;],
with_included_gettext=no, with_included_gettext=yes)
case "$with_included_gettext" in
no) AC_MSG_RESULT(yes) ;;
yes) AC_MSG_RESULT([no; using local copy]); LIBS="$fp_keep_LIBS" ;;
esac
fi fi
AC_MSG_CHECKING([whether to use included gettext])
AC_MSG_RESULT($with_included_gettext)
if test "$with_included_gettext" = yes; then if test "$with_included_gettext" = yes; then
LIBOBJS="$LIBOBJS gettext.o" LIBOBJS="$LIBOBJS gettext.o"
AC_DEFINE(HAVE_GETTEXT, 1, [Define if you have the gettext function.])
AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if you have the dcgettext function.])
else
AC_CHECK_HEADERS(libintl.h)
AC_CHECK_FUNCS(dcgettext gettext)
fi fi
AC_CHECK_HEADERS(locale.h) AC_DEFINE(HAVE_GETTEXT, 1, [Define if you have the gettext function.])
AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if you have the dcgettext function.])
AC_CHECK_FUNCS(getcwd setlocale stpcpy) AC_CHECK_FUNCS(getcwd setlocale stpcpy)
AM_LC_MESSAGES AM_LC_MESSAGES

View File

@ -3,7 +3,7 @@ AC_REVISION([$Id$])
AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required. AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required.
AC_INIT(vpath.c)dnl dnl A distinctive file to look for in srcdir. AC_INIT(vpath.c)dnl dnl A distinctive file to look for in srcdir.
AM_INIT_AUTOMAKE(make, 3.79.1) AM_INIT_AUTOMAKE(make, 3.79.0.1)
AM_CONFIG_HEADER(config.h) AM_CONFIG_HEADER(config.h)
dnl Regular configure stuff dnl Regular configure stuff
@ -43,7 +43,7 @@ AC_HEADER_TIME
dnl Handle internationalization dnl Handle internationalization
ALL_LINGUAS="de es fr ja ko nl pl pt_BR ru" ALL_LINGUAS="de es fr ja ko nl pl pt_BR ru"
fp_WITH_GETTEXT pds_WITH_GETTEXT
AC_STRUCT_ST_MTIM_NSEC AC_STRUCT_ST_MTIM_NSEC
jm_AC_TYPE_UINTMAX_T jm_AC_TYPE_UINTMAX_T
@ -133,7 +133,7 @@ pid = waitpid (-1, &status, 0);
], ],
[make_cv_union_wait=yes], [make_cv_union_wait=no])]) [make_cv_union_wait=yes], [make_cv_union_wait=no])])
if test "$make_cv_union_wait" = yes; then if test "$make_cv_union_wait" = yes; then
AC_DEFINE(HAVE_UNION_WAIT) AC_DEFINE(HAVE_UNION_WAIT, 1, [Define this if you have the \`union wait' type in <sys/wait.h>.])
fi fi
AC_MSG_RESULT($make_cv_union_wait) AC_MSG_RESULT($make_cv_union_wait)
@ -177,7 +177,8 @@ case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
esac esac
case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$has_wait_nohang/$make_cv_job_server" in case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$has_wait_nohang/$make_cv_job_server" in
yes/yes/yes/yes) AC_DEFINE(MAKE_JOBSERVER) ;; yes/yes/yes/yes) AC_DEFINE(MAKE_JOBSERVER, 1,
[Define this to enable job server support in GNU make.]);;
esac esac
dnl Allow building with dmalloc dnl Allow building with dmalloc
@ -213,7 +214,8 @@ if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
make_cv_sys_get_minus_G=no make_cv_sys_get_minus_G=no
fi]) fi])
case "$make_cv_sys_get_minus_G" in case "$make_cv_sys_get_minus_G" in
yes) AC_DEFINE(SCCS_GET_MINUS_G);; yes) AC_DEFINE(SCCS_GET_MINUS_G, 1,
[Define this if the SCCS \`get' command understands the \`-G<file>' option.]);;
esac esac
fi fi
rm -f s.conftest conftoast rm -f s.conftest conftoast

2
file.c
View File

@ -400,7 +400,7 @@ remove_intermediates (sig)
/* If nothing would have created this file yet, /* If nothing would have created this file yet,
don't print an "rm" command for it. */ don't print an "rm" command for it. */
continue; continue;
else if (just_print_flag) if (just_print_flag)
status = 0; status = 0;
else else
{ {

View File

@ -17,14 +17,8 @@
along with this program; if not, write to the Free Software Foundation, along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Include libintl.h, if it was found: we don't even look for it unless we #ifndef _GETTEXT_H
want to use the system's gettext(). If not, the rest of the file contains #define _GETTEXT_H 1
the headers necessary for our own gettext.c. */
#ifdef HAVE_LIBINTL_H
# include <libintl.h>
#else
/* We define an additional symbol to signal that we use the GNU /* We define an additional symbol to signal that we use the GNU
implementation of gettext. */ implementation of gettext. */
@ -166,12 +160,6 @@ extern int _nl_msg_cat_cntr;
} }
#endif #endif
#endif /* !HAVE_LIBINTL_H */ #endif /* _GETTEXT_H */
#ifndef gettext_noop
/* For automatical extraction of messages sometimes no real
translation is needed. Instead the string itself is the result. */
# define gettext_noop(Str) (Str)
#endif
/* End of libgettext.h */ /* End of libgettext.h */

19
make.h
View File

@ -39,11 +39,28 @@ Boston, MA 02111-1307, USA. */
# define PARAMS(protos) () # define PARAMS(protos) ()
#endif /* C++ or ANSI C. */ #endif /* C++ or ANSI C. */
/* Include libintl.h, if it was found: we don't even look for it unless we
want to use the system's gettext(). If not, use the included gettext.h. */
#ifdef HAVE_LIBINTL_H
# include <libintl.h>
# ifdef HAVE_LOCALE_H
# include <locale.h>
# endif
#else
# include "gettext.h"
#endif
#ifndef gettext_noop
/* For automatic extraction of messages sometimes no real translation is
needed. Instead the string itself is the result. */
# define gettext_noop(Str) (Str)
#endif
#include "gettext.h"
#define _(Text) gettext (Text) #define _(Text) gettext (Text)
#define N_(Text) gettext_noop (Text) #define N_(Text) gettext_noop (Text)
#if !HAVE_SETLOCALE #if !HAVE_SETLOCALE
# define setlocale(Category, Locale) /* empty */ # define setlocale(Category, Locale) /* empty */
#endif #endif