mirror of
https://github.com/mirror/make.git
synced 2025-01-27 21:00:22 +08:00
* Implement GNU gettext internationalization support in GNU make.
This commit is contained in:
parent
74fca88bf3
commit
2fd5b943d1
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
|||||||
|
2000-01-22 Paul D. Smith <psmith@gnu.org>
|
||||||
|
|
||||||
|
Integrate GNU gettext support.
|
||||||
|
|
||||||
|
* configure.in: Add AM_GNU_GETTEXT.
|
||||||
|
* Makefile.am: Add options for setting LOCALEDIR, -Iintl, etc.
|
||||||
|
* acinclude.m4: Add gettext autoconf macros.
|
||||||
|
* acconfig.h: Add new gettext #defines.
|
||||||
|
* make.h: Include libintl.h. Make sure _() and N_() macros are
|
||||||
|
declared. Make gettext() an empty macro is NLS is disabled.
|
||||||
|
* main.c (struct command_switch switches[]): Can't initialize
|
||||||
|
static data with _() (gettext calls), so use N_() there then use
|
||||||
|
gettext() directly when printing the strings.
|
||||||
|
* remake.c (no_rule_error): The string constants can't be static
|
||||||
|
when initializing _() macros.
|
||||||
|
* file.c (print_file): Reformat a few strings to work better for
|
||||||
|
translation.
|
||||||
|
* po/POTFILES.in, po/Makefile.in.in: New files. Take
|
||||||
|
Makefile.in.in from the latest GNU tar distribution, as that
|
||||||
|
version works better than the one that comes with gettext.
|
||||||
|
|
||||||
2000-01-21 Paul D. Smith <psmith@gnu.org>
|
2000-01-21 Paul D. Smith <psmith@gnu.org>
|
||||||
|
|
||||||
Installed patches for the VMS port.
|
Installed patches for the VMS port.
|
||||||
|
17
Makefile.am
17
Makefile.am
@ -10,12 +10,16 @@ make_SOURCES = main.c commands.c job.c dir.c file.c misc.c read.c remake.c \
|
|||||||
commands.h dep.h filedef.h job.h make.h rule.h variable.h \
|
commands.h dep.h filedef.h job.h make.h rule.h variable.h \
|
||||||
debug.h signame.c signame.h \
|
debug.h signame.c signame.h \
|
||||||
getopt.c getopt1.c getopt.h
|
getopt.c getopt1.c getopt.h
|
||||||
make_LDADD = $(LIBOBJS) @ALLOCA@ $(GLOBLIB)
|
|
||||||
|
|
||||||
info_TEXINFOS = make.texinfo
|
make_LDADD = $(LIBOBJS) @ALLOCA@ $(GLOBLIB) @INTLLIBS@
|
||||||
|
|
||||||
man_MANS = make.1
|
man_MANS = make.1
|
||||||
|
info_TEXINFOS = make.texinfo
|
||||||
|
|
||||||
INCLUDES = $(GLOBINC) -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\"
|
localedir = $(datadir)/locale
|
||||||
|
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\" @DEFS@
|
||||||
|
|
||||||
|
INCLUDES = -I. -I$(srcdir) $(GLOBINC) -I./intl -I$(top_srcdir)/intl
|
||||||
|
|
||||||
EXTRA_DIST = README build.sh.in $(man_MANS) README.customs remote-cstms.c\
|
EXTRA_DIST = README build.sh.in $(man_MANS) README.customs remote-cstms.c\
|
||||||
make-stds.texi texinfo.tex SCOPTIONS SMakefile\
|
make-stds.texi texinfo.tex SCOPTIONS SMakefile\
|
||||||
@ -23,9 +27,10 @@ EXTRA_DIST = README build.sh.in $(man_MANS) README.customs remote-cstms.c\
|
|||||||
README.DOS Makefile.DOS configure.bat dosbuild.bat configh.dos\
|
README.DOS Makefile.DOS configure.bat dosbuild.bat configh.dos\
|
||||||
README.W32 NMakefile config.h.W32 build_w32.bat subproc.bat\
|
README.W32 NMakefile config.h.W32 build_w32.bat subproc.bat\
|
||||||
readme.vms makefile.vms makefile.com config.h-vms vmsdir.h\
|
readme.vms makefile.vms makefile.com config.h-vms vmsdir.h\
|
||||||
vmsfunctions.c vmsify.c
|
vmsfunctions.c vmsify.c\
|
||||||
|
ABOUT-NLS
|
||||||
|
|
||||||
SUBDIRS = $(GLOBDIR)
|
SUBDIRS = $(GLOBDIR) intl po
|
||||||
|
|
||||||
MOSTLYCLEANFILES = loadavg.c
|
MOSTLYCLEANFILES = loadavg.c
|
||||||
CLEANFILES = loadavg
|
CLEANFILES = loadavg
|
||||||
@ -90,7 +95,7 @@ check-local: check-regression check-loadavg
|
|||||||
#
|
#
|
||||||
loadavg: loadavg.c config.h
|
loadavg: loadavg.c config.h
|
||||||
@rm -f loadavg
|
@rm -f loadavg
|
||||||
$(LINK) $(DEFS) $(CPPFLAGS) -DTEST $(make_LDFLAGS) loadavg.c $(LIBS)
|
$(LINK) -DTEST $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(make_LDFLAGS) loadavg.c $(LIBS)
|
||||||
|
|
||||||
# We copy getloadavg.c into a different file rather than compiling it
|
# We copy getloadavg.c into a different file rather than compiling it
|
||||||
# directly because some compilers clobber getloadavg.o in the process.
|
# directly because some compilers clobber getloadavg.o in the process.
|
||||||
|
15
acconfig.h
15
acconfig.h
@ -4,6 +4,21 @@
|
|||||||
/* 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 as 1 if you have catgets and don't want to use GNU gettext. */
|
||||||
|
#undef HAVE_CATGETS
|
||||||
|
|
||||||
|
/* Define as 1 if you have gettext and don't want to use GNU gettext. */
|
||||||
|
#undef HAVE_GETTEXT
|
||||||
|
|
||||||
|
/* Define as 1 if you have the stpcpy function. */
|
||||||
|
#undef HAVE_STPCPY
|
||||||
|
|
||||||
|
/* Define if your locale.h file contains LC_MESSAGES. */
|
||||||
|
#undef HAVE_LC_MESSAGES
|
||||||
|
|
||||||
/* Define to the name of the SCCS `get' command. */
|
/* Define to the name of the SCCS `get' command. */
|
||||||
#undef SCCS_GET
|
#undef SCCS_GET
|
||||||
|
|
||||||
|
387
acinclude.m4
387
acinclude.m4
@ -482,3 +482,390 @@ case "x$am_cv_prog_cc_stdc" in
|
|||||||
*) CC="$CC $am_cv_prog_cc_stdc" ;;
|
*) CC="$CC $am_cv_prog_cc_stdc" ;;
|
||||||
esac
|
esac
|
||||||
])
|
])
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
|
dnl Got these from the gettext 0.10.35 distribution
|
||||||
|
dnl
|
||||||
|
|
||||||
|
# Macro to add for using GNU gettext.
|
||||||
|
# Ulrich Drepper <drepper@cygnus.com>, 1995.
|
||||||
|
#
|
||||||
|
# This file can be copied and used freely without restrictions. It can
|
||||||
|
# be used in projects which are not available under the GNU Public License
|
||||||
|
# but which still want to provide support for the GNU gettext functionality.
|
||||||
|
# Please note that the actual code is *not* freely available.
|
||||||
|
|
||||||
|
# serial 5
|
||||||
|
|
||||||
|
AC_DEFUN(AM_WITH_NLS,
|
||||||
|
[AC_MSG_CHECKING([whether NLS is requested])
|
||||||
|
dnl Default is enabled NLS
|
||||||
|
AC_ARG_ENABLE(nls,
|
||||||
|
[ --disable-nls do not use Native Language Support],
|
||||||
|
USE_NLS=$enableval, USE_NLS=yes)
|
||||||
|
AC_MSG_RESULT($USE_NLS)
|
||||||
|
AC_SUBST(USE_NLS)
|
||||||
|
|
||||||
|
USE_INCLUDED_LIBINTL=no
|
||||||
|
|
||||||
|
dnl If we use NLS figure out what method
|
||||||
|
if test "$USE_NLS" = "yes"; then
|
||||||
|
AC_DEFINE(ENABLE_NLS)
|
||||||
|
AC_MSG_CHECKING([whether included gettext is requested])
|
||||||
|
AC_ARG_WITH(included-gettext,
|
||||||
|
[ --with-included-gettext use the GNU gettext library included here],
|
||||||
|
nls_cv_force_use_gnu_gettext=$withval,
|
||||||
|
nls_cv_force_use_gnu_gettext=no)
|
||||||
|
AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
|
||||||
|
|
||||||
|
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
|
||||||
|
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
|
||||||
|
dnl User does not insist on using GNU NLS library. Figure out what
|
||||||
|
dnl to use. If gettext or catgets are available (in this order) we
|
||||||
|
dnl use this. Else we have to fall back to GNU NLS library.
|
||||||
|
dnl catgets is only used if permitted by option --with-catgets.
|
||||||
|
nls_cv_header_intl=
|
||||||
|
nls_cv_header_libgt=
|
||||||
|
CATOBJEXT=NONE
|
||||||
|
|
||||||
|
AC_CHECK_HEADER(libintl.h,
|
||||||
|
[AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
|
||||||
|
[AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
|
||||||
|
gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
|
||||||
|
|
||||||
|
if test "$gt_cv_func_gettext_libc" != "yes"; then
|
||||||
|
AC_CHECK_LIB(intl, bindtextdomain,
|
||||||
|
[AC_CACHE_CHECK([for gettext in libintl],
|
||||||
|
gt_cv_func_gettext_libintl,
|
||||||
|
[AC_CHECK_LIB(intl, gettext,
|
||||||
|
gt_cv_func_gettext_libintl=yes,
|
||||||
|
gt_cv_func_gettext_libintl=no)],
|
||||||
|
gt_cv_func_gettext_libintl=no)])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$gt_cv_func_gettext_libc" = "yes" \
|
||||||
|
|| test "$gt_cv_func_gettext_libintl" = "yes"; then
|
||||||
|
AC_DEFINE(HAVE_GETTEXT)
|
||||||
|
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
||||||
|
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
|
||||||
|
if test "$MSGFMT" != "no"; then
|
||||||
|
AC_CHECK_FUNCS(dcgettext)
|
||||||
|
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||||
|
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||||
|
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
||||||
|
AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
|
||||||
|
return _nl_msg_cat_cntr],
|
||||||
|
[CATOBJEXT=.gmo
|
||||||
|
DATADIRNAME=share],
|
||||||
|
[CATOBJEXT=.mo
|
||||||
|
DATADIRNAME=lib])
|
||||||
|
INSTOBJEXT=.mo
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "$CATOBJEXT" = "NONE"; then
|
||||||
|
AC_MSG_CHECKING([whether catgets can be used])
|
||||||
|
AC_ARG_WITH(catgets,
|
||||||
|
[ --with-catgets use catgets functions if available],
|
||||||
|
nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
|
||||||
|
AC_MSG_RESULT($nls_cv_use_catgets)
|
||||||
|
|
||||||
|
if test "$nls_cv_use_catgets" = "yes"; then
|
||||||
|
dnl No gettext in C library. Try catgets next.
|
||||||
|
AC_CHECK_LIB(i, main)
|
||||||
|
AC_CHECK_FUNC(catgets,
|
||||||
|
[AC_DEFINE(HAVE_CATGETS)
|
||||||
|
INTLOBJS="\$(CATOBJS)"
|
||||||
|
AC_PATH_PROG(GENCAT, gencat, no)dnl
|
||||||
|
if test "$GENCAT" != "no"; then
|
||||||
|
AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
|
||||||
|
if test "$GMSGFMT" = "no"; then
|
||||||
|
AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
|
||||||
|
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
|
||||||
|
fi
|
||||||
|
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||||
|
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
||||||
|
USE_INCLUDED_LIBINTL=yes
|
||||||
|
CATOBJEXT=.cat
|
||||||
|
INSTOBJEXT=.cat
|
||||||
|
DATADIRNAME=lib
|
||||||
|
INTLDEPS='$(top_builddir)/intl/libintl.a'
|
||||||
|
INTLLIBS=$INTLDEPS
|
||||||
|
LIBS=`echo $LIBS | sed -e 's/-lintl//'`
|
||||||
|
nls_cv_header_intl=intl/libintl.h
|
||||||
|
nls_cv_header_libgt=intl/libgettext.h
|
||||||
|
fi])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$CATOBJEXT" = "NONE"; then
|
||||||
|
dnl Neither gettext nor catgets in included in the C library.
|
||||||
|
dnl Fall back on GNU gettext library.
|
||||||
|
nls_cv_use_gnu_gettext=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||||
|
dnl Mark actions used to generate GNU NLS library.
|
||||||
|
INTLOBJS="\$(GETTOBJS)"
|
||||||
|
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
||||||
|
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
|
||||||
|
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||||
|
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||||
|
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
||||||
|
AC_SUBST(MSGFMT)
|
||||||
|
USE_INCLUDED_LIBINTL=yes
|
||||||
|
CATOBJEXT=.gmo
|
||||||
|
INSTOBJEXT=.mo
|
||||||
|
DATADIRNAME=share
|
||||||
|
INTLDEPS='$(top_builddir)/intl/libintl.a'
|
||||||
|
INTLLIBS=$INTLDEPS
|
||||||
|
LIBS=`echo $LIBS | sed -e 's/-lintl//'`
|
||||||
|
nls_cv_header_intl=intl/libintl.h
|
||||||
|
nls_cv_header_libgt=intl/libgettext.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Test whether we really found GNU xgettext.
|
||||||
|
if test "$XGETTEXT" != ":"; then
|
||||||
|
dnl If it is no GNU xgettext we define it as : so that the
|
||||||
|
dnl Makefiles still can work.
|
||||||
|
if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
|
||||||
|
: ;
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(
|
||||||
|
[found xgettext program is not GNU xgettext; ignore it])
|
||||||
|
XGETTEXT=":"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We need to process the po/ directory.
|
||||||
|
POSUB=po
|
||||||
|
else
|
||||||
|
DATADIRNAME=share
|
||||||
|
nls_cv_header_intl=intl/libintl.h
|
||||||
|
nls_cv_header_libgt=intl/libgettext.h
|
||||||
|
fi
|
||||||
|
AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
|
||||||
|
AC_OUTPUT_COMMANDS(
|
||||||
|
[case "$CONFIG_FILES" in *po/Makefile.in*)
|
||||||
|
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
|
||||||
|
esac])
|
||||||
|
|
||||||
|
|
||||||
|
# If this is used in GNU gettext we have to set USE_NLS to `yes'
|
||||||
|
# because some of the sources are only built for this goal.
|
||||||
|
if test "$PACKAGE" = gettext; then
|
||||||
|
USE_NLS=yes
|
||||||
|
USE_INCLUDED_LIBINTL=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl These rules are solely for the distribution goal. While doing this
|
||||||
|
dnl we only have to keep exactly one list of the available catalogs
|
||||||
|
dnl in configure.in.
|
||||||
|
for lang in $ALL_LINGUAS; do
|
||||||
|
GMOFILES="$GMOFILES $lang.gmo"
|
||||||
|
POFILES="$POFILES $lang.po"
|
||||||
|
done
|
||||||
|
|
||||||
|
dnl Make all variables we use known to autoconf.
|
||||||
|
AC_SUBST(USE_INCLUDED_LIBINTL)
|
||||||
|
AC_SUBST(CATALOGS)
|
||||||
|
AC_SUBST(CATOBJEXT)
|
||||||
|
AC_SUBST(DATADIRNAME)
|
||||||
|
AC_SUBST(GMOFILES)
|
||||||
|
AC_SUBST(INSTOBJEXT)
|
||||||
|
AC_SUBST(INTLDEPS)
|
||||||
|
AC_SUBST(INTLLIBS)
|
||||||
|
AC_SUBST(INTLOBJS)
|
||||||
|
AC_SUBST(POFILES)
|
||||||
|
AC_SUBST(POSUB)
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN(AM_GNU_GETTEXT,
|
||||||
|
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_CC])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
||||||
|
AC_REQUIRE([AC_ISC_POSIX])dnl
|
||||||
|
AC_REQUIRE([AC_HEADER_STDC])dnl
|
||||||
|
AC_REQUIRE([AC_C_CONST])dnl
|
||||||
|
AC_REQUIRE([AC_C_INLINE])dnl
|
||||||
|
AC_REQUIRE([AC_TYPE_OFF_T])dnl
|
||||||
|
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
|
||||||
|
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
|
||||||
|
AC_REQUIRE([AC_FUNC_MMAP])dnl
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
|
||||||
|
unistd.h sys/param.h])
|
||||||
|
AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
|
||||||
|
strdup __argz_count __argz_stringify __argz_next])
|
||||||
|
|
||||||
|
if test "${ac_cv_func_stpcpy+set}" != "set"; then
|
||||||
|
AC_CHECK_FUNCS(stpcpy)
|
||||||
|
fi
|
||||||
|
if test "${ac_cv_func_stpcpy}" = "yes"; then
|
||||||
|
AC_DEFINE(HAVE_STPCPY)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_LC_MESSAGES
|
||||||
|
AM_WITH_NLS
|
||||||
|
|
||||||
|
if test "x$CATOBJEXT" != "x"; then
|
||||||
|
if test "x$ALL_LINGUAS" = "x"; then
|
||||||
|
LINGUAS=
|
||||||
|
else
|
||||||
|
AC_MSG_CHECKING(for catalogs to be installed)
|
||||||
|
NEW_LINGUAS=
|
||||||
|
for lang in ${LINGUAS=$ALL_LINGUAS}; do
|
||||||
|
case "$ALL_LINGUAS" in
|
||||||
|
*$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
LINGUAS=$NEW_LINGUAS
|
||||||
|
AC_MSG_RESULT($LINGUAS)
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Construct list of names of catalog files to be constructed.
|
||||||
|
if test -n "$LINGUAS"; then
|
||||||
|
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl The reference to <locale.h> in the installed <libintl.h> file
|
||||||
|
dnl must be resolved because we cannot expect the users of this
|
||||||
|
dnl to define HAVE_LOCALE_H.
|
||||||
|
if test $ac_cv_header_locale_h = yes; then
|
||||||
|
INCLUDE_LOCALE_H="#include <locale.h>"
|
||||||
|
else
|
||||||
|
INCLUDE_LOCALE_H="\
|
||||||
|
/* The system does not provide the header <locale.h>. Take care yourself. */"
|
||||||
|
fi
|
||||||
|
AC_SUBST(INCLUDE_LOCALE_H)
|
||||||
|
|
||||||
|
dnl Determine which catalog format we have (if any is needed)
|
||||||
|
dnl For now we know about two different formats:
|
||||||
|
dnl Linux libc-5 and the normal X/Open format
|
||||||
|
test -d intl || mkdir intl
|
||||||
|
if test "$CATOBJEXT" = ".cat"; then
|
||||||
|
AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
|
||||||
|
|
||||||
|
dnl Transform the SED scripts while copying because some dumb SEDs
|
||||||
|
dnl cannot handle comments.
|
||||||
|
sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
|
||||||
|
fi
|
||||||
|
dnl po2tbl.sed is always needed.
|
||||||
|
sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
|
||||||
|
$srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
|
||||||
|
|
||||||
|
dnl In the intl/Makefile.in we have a special dependency which makes
|
||||||
|
dnl only sense for gettext. We comment this out for non-gettext
|
||||||
|
dnl packages.
|
||||||
|
if test "$PACKAGE" = "gettext"; then
|
||||||
|
GT_NO="#NO#"
|
||||||
|
GT_YES=
|
||||||
|
else
|
||||||
|
GT_NO=
|
||||||
|
GT_YES="#YES#"
|
||||||
|
fi
|
||||||
|
AC_SUBST(GT_NO)
|
||||||
|
AC_SUBST(GT_YES)
|
||||||
|
|
||||||
|
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
|
||||||
|
dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
|
||||||
|
dnl Try to locate is.
|
||||||
|
MKINSTALLDIRS=
|
||||||
|
if test -n "$ac_aux_dir"; then
|
||||||
|
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
|
||||||
|
fi
|
||||||
|
if test -z "$MKINSTALLDIRS"; then
|
||||||
|
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
|
||||||
|
fi
|
||||||
|
AC_SUBST(MKINSTALLDIRS)
|
||||||
|
|
||||||
|
dnl *** For now the libtool support in intl/Makefile is not for real.
|
||||||
|
l=
|
||||||
|
AC_SUBST(l)
|
||||||
|
|
||||||
|
dnl Generate list of files to be processed by xgettext which will
|
||||||
|
dnl be included in po/Makefile.
|
||||||
|
test -d po || mkdir po
|
||||||
|
if test "x$srcdir" != "x."; then
|
||||||
|
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
|
||||||
|
posrcprefix="$srcdir/"
|
||||||
|
else
|
||||||
|
posrcprefix="../$srcdir/"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
posrcprefix="../"
|
||||||
|
fi
|
||||||
|
rm -f po/POTFILES
|
||||||
|
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
|
||||||
|
< $srcdir/po/POTFILES.in > po/POTFILES
|
||||||
|
])
|
||||||
|
|
||||||
|
# Check whether LC_MESSAGES is available in <locale.h>.
|
||||||
|
# Ulrich Drepper <drepper@cygnus.com>, 1995.
|
||||||
|
#
|
||||||
|
# This file can be copied and used freely without restrictions. It can
|
||||||
|
# be used in projects which are not available under the GNU Public License
|
||||||
|
# but which still want to provide support for the GNU gettext functionality.
|
||||||
|
# Please note that the actual code is *not* freely available.
|
||||||
|
|
||||||
|
# serial 1
|
||||||
|
|
||||||
|
AC_DEFUN(AM_LC_MESSAGES,
|
||||||
|
[if test $ac_cv_header_locale_h = yes; then
|
||||||
|
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
|
||||||
|
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
|
||||||
|
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
|
||||||
|
if test $am_cv_val_LC_MESSAGES = yes; then
|
||||||
|
AC_DEFINE(HAVE_LC_MESSAGES)
|
||||||
|
fi
|
||||||
|
fi])
|
||||||
|
|
||||||
|
# Search path for a program which passes the given test.
|
||||||
|
# Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
#
|
||||||
|
# This file can be copied and used freely without restrictions. It can
|
||||||
|
# be used in projects which are not available under the GNU Public License
|
||||||
|
# but which still want to provide support for the GNU gettext functionality.
|
||||||
|
# Please note that the actual code is *not* freely available.
|
||||||
|
|
||||||
|
# serial 1
|
||||||
|
|
||||||
|
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
|
||||||
|
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
|
||||||
|
AC_DEFUN(AM_PATH_PROG_WITH_TEST,
|
||||||
|
[# Extract the first word of "$2", so it can be a program name with args.
|
||||||
|
set dummy $2; ac_word=[$]2
|
||||||
|
AC_MSG_CHECKING([for $ac_word])
|
||||||
|
AC_CACHE_VAL(ac_cv_path_$1,
|
||||||
|
[case "[$]$1" in
|
||||||
|
/*)
|
||||||
|
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
||||||
|
for ac_dir in ifelse([$5], , $PATH, [$5]); do
|
||||||
|
test -z "$ac_dir" && ac_dir=.
|
||||||
|
if test -f $ac_dir/$ac_word; then
|
||||||
|
if [$3]; then
|
||||||
|
ac_cv_path_$1="$ac_dir/$ac_word"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$ac_save_ifs"
|
||||||
|
dnl If no 4th arg is given, leave the cache variable unset,
|
||||||
|
dnl so AC_PATH_PROGS will keep looking.
|
||||||
|
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
|
||||||
|
])dnl
|
||||||
|
;;
|
||||||
|
esac])dnl
|
||||||
|
$1="$ac_cv_path_$1"
|
||||||
|
if test -n "[$]$1"; then
|
||||||
|
AC_MSG_RESULT([$]$1)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
AC_SUBST($1)dnl
|
||||||
|
])
|
||||||
|
@ -21,7 +21,6 @@ AC_MINIX
|
|||||||
|
|
||||||
AC_CHECK_PROG(PERL, perl, perl, perl) dnl Needed for the test suite (only)
|
AC_CHECK_PROG(PERL, perl, perl, perl) dnl Needed for the test suite (only)
|
||||||
|
|
||||||
|
|
||||||
dnl This test must come as early as possible after the compiler configuration
|
dnl This test must come as early as possible after the compiler configuration
|
||||||
dnl tests, because the choice of the file model can (in principle) affect
|
dnl tests, because the choice of the file model can (in principle) affect
|
||||||
dnl whether functions and headers are available, whether they work, etc.
|
dnl whether functions and headers are available, whether they work, etc.
|
||||||
@ -107,6 +106,11 @@ AC_MSG_RESULT($make_cv_union_wait)
|
|||||||
|
|
||||||
AC_DECL_SYS_SIGLIST
|
AC_DECL_SYS_SIGLIST
|
||||||
|
|
||||||
|
dnl Handle internationalization
|
||||||
|
|
||||||
|
ALL_LINGUAS=
|
||||||
|
AM_GNU_GETTEXT
|
||||||
|
|
||||||
# The presence of the following is not meant to imply
|
# The presence of the following is not meant to imply
|
||||||
# that make necessarily works on those systems.
|
# that make necessarily works on those systems.
|
||||||
AC_CHECK_LIB(sun, getpwnam)
|
AC_CHECK_LIB(sun, getpwnam)
|
||||||
@ -222,7 +226,7 @@ if test -r "$srcdir/maintMakefile"; then
|
|||||||
fi
|
fi
|
||||||
AC_SUBST_FILE(MAINT_MAKEFILE)
|
AC_SUBST_FILE(MAINT_MAKEFILE)
|
||||||
|
|
||||||
AC_OUTPUT(build.sh Makefile glob/Makefile)
|
AC_OUTPUT(build.sh Makefile glob/Makefile intl/Makefile po/Makefile.in)
|
||||||
|
|
||||||
dnl If we don't yet have build.sh.in, build.sh is a bogus 0-length file
|
dnl If we don't yet have build.sh.in, build.sh is a bogus 0-length file
|
||||||
dnl so remove it.
|
dnl so remove it.
|
||||||
|
5
file.c
5
file.c
@ -635,8 +635,9 @@ print_file (f)
|
|||||||
puts (_("# Command-line target."));
|
puts (_("# Command-line target."));
|
||||||
if (f->dontcare)
|
if (f->dontcare)
|
||||||
puts (_("# A default or MAKEFILES makefile."));
|
puts (_("# A default or MAKEFILES makefile."));
|
||||||
printf (_("# Implicit rule search has%s been done.\n"),
|
puts (f->tried_implicit
|
||||||
f->tried_implicit ? "" : _(" not"));
|
? _("# Implicit rule search has been done.")
|
||||||
|
: _("# Implicit rule search has not been done."));
|
||||||
if (f->stem != 0)
|
if (f->stem != 0)
|
||||||
printf (_("# Implicit/static pattern stem: `%s'\n"), f->stem);
|
printf (_("# Implicit/static pattern stem: `%s'\n"), f->stem);
|
||||||
if (f->intermediate)
|
if (f->intermediate)
|
||||||
|
101
main.c
101
main.c
@ -256,103 +256,103 @@ static const struct command_switch switches[] =
|
|||||||
{
|
{
|
||||||
{ 'b', ignore, 0, 0, 0, 0, 0, 0,
|
{ 'b', ignore, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0,
|
0, 0,
|
||||||
_("Ignored for compatibility") },
|
N_("Ignored for compatibility") },
|
||||||
{ 'C', string, (char *) &directories, 0, 0, 0, 0, 0,
|
{ 'C', string, (char *) &directories, 0, 0, 0, 0, 0,
|
||||||
"directory", _("DIRECTORY"),
|
"directory", N_("DIRECTORY"),
|
||||||
_("Change to DIRECTORY before doing anything") },
|
N_("Change to DIRECTORY before doing anything") },
|
||||||
{ 'd', string, (char *) &db_flags, 1, 1, 0,
|
{ 'd', string, (char *) &db_flags, 1, 1, 0,
|
||||||
"basic", 0,
|
"basic", 0,
|
||||||
"debug", _("FLAGS"),
|
"debug", N_("FLAGS"),
|
||||||
_("Print different types of debugging information") },
|
N_("Print different types of debugging information") },
|
||||||
#ifdef WINDOWS32
|
#ifdef WINDOWS32
|
||||||
{ 'D', flag, (char *) &suspend_flag, 1, 1, 0, 0, 0,
|
{ 'D', flag, (char *) &suspend_flag, 1, 1, 0, 0, 0,
|
||||||
"suspend-for-debug", 0,
|
"suspend-for-debug", 0,
|
||||||
_("Suspend process to allow a debugger to attach") },
|
N_("Suspend process to allow a debugger to attach") },
|
||||||
#endif
|
#endif
|
||||||
{ 'e', flag, (char *) &env_overrides, 1, 1, 0, 0, 0,
|
{ 'e', flag, (char *) &env_overrides, 1, 1, 0, 0, 0,
|
||||||
"environment-overrides", 0,
|
"environment-overrides", 0,
|
||||||
_("Environment variables override makefiles") },
|
N_("Environment variables override makefiles") },
|
||||||
{ 'f', string, (char *) &makefiles, 0, 0, 0, 0, 0,
|
{ 'f', string, (char *) &makefiles, 0, 0, 0, 0, 0,
|
||||||
"file", _("FILE"),
|
"file", N_("FILE"),
|
||||||
_("Read FILE as a makefile") },
|
N_("Read FILE as a makefile") },
|
||||||
{ 'h', flag, (char *) &print_usage_flag, 0, 0, 0, 0, 0,
|
{ 'h', flag, (char *) &print_usage_flag, 0, 0, 0, 0, 0,
|
||||||
"help", 0,
|
"help", 0,
|
||||||
_("Print this message and exit") },
|
N_("Print this message and exit") },
|
||||||
{ 'i', flag, (char *) &ignore_errors_flag, 1, 1, 0, 0, 0,
|
{ 'i', flag, (char *) &ignore_errors_flag, 1, 1, 0, 0, 0,
|
||||||
"ignore-errors", 0,
|
"ignore-errors", 0,
|
||||||
_("Ignore errors from commands") },
|
N_("Ignore errors from commands") },
|
||||||
{ 'I', string, (char *) &include_directories, 1, 1, 0, 0, 0,
|
{ 'I', string, (char *) &include_directories, 1, 1, 0, 0, 0,
|
||||||
"include-dir", _("DIRECTORY"),
|
"include-dir", N_("DIRECTORY"),
|
||||||
_("Search DIRECTORY for included makefiles") },
|
N_("Search DIRECTORY for included makefiles") },
|
||||||
{ 'j',
|
{ 'j',
|
||||||
positive_int, (char *) &job_slots, 1, 1, 0,
|
positive_int, (char *) &job_slots, 1, 1, 0,
|
||||||
(char *) &inf_jobs, (char *) &default_job_slots,
|
(char *) &inf_jobs, (char *) &default_job_slots,
|
||||||
"jobs", "N",
|
"jobs", "N",
|
||||||
_("Allow N jobs at once; infinite jobs with no arg") },
|
N_("Allow N jobs at once; infinite jobs with no arg") },
|
||||||
{ CHAR_MAX+1, string, (char *) &jobserver_fds, 1, 1, 0, 0, 0,
|
{ CHAR_MAX+1, string, (char *) &jobserver_fds, 1, 1, 0, 0, 0,
|
||||||
"jobserver-fds", 0,
|
"jobserver-fds", 0,
|
||||||
0 },
|
0 },
|
||||||
{ 'k', flag, (char *) &keep_going_flag, 1, 1, 0,
|
{ 'k', flag, (char *) &keep_going_flag, 1, 1, 0,
|
||||||
0, (char *) &default_keep_going_flag,
|
0, (char *) &default_keep_going_flag,
|
||||||
"keep-going", 0,
|
"keep-going", 0,
|
||||||
_("Keep going when some targets can't be made") },
|
N_("Keep going when some targets can't be made") },
|
||||||
#ifndef NO_FLOAT
|
#ifndef NO_FLOAT
|
||||||
{ 'l', floating, (char *) &max_load_average, 1, 1, 0,
|
{ 'l', floating, (char *) &max_load_average, 1, 1, 0,
|
||||||
(char *) &default_load_average, (char *) &default_load_average,
|
(char *) &default_load_average, (char *) &default_load_average,
|
||||||
"load-average", "N",
|
"load-average", "N",
|
||||||
_("Don't start multiple jobs unless load is below N") },
|
N_("Don't start multiple jobs unless load is below N") },
|
||||||
#else
|
#else
|
||||||
{ 'l', positive_int, (char *) &max_load_average, 1, 1, 0,
|
{ 'l', positive_int, (char *) &max_load_average, 1, 1, 0,
|
||||||
(char *) &default_load_average, (char *) &default_load_average,
|
(char *) &default_load_average, (char *) &default_load_average,
|
||||||
"load-average", "N",
|
"load-average", "N",
|
||||||
_("Don't start multiple jobs unless load is below N") },
|
N_("Don't start multiple jobs unless load is below N") },
|
||||||
#endif
|
#endif
|
||||||
{ 'm', ignore, 0, 0, 0, 0, 0, 0,
|
{ 'm', ignore, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0,
|
0, 0,
|
||||||
"-b" },
|
"-b" },
|
||||||
{ 'n', flag, (char *) &just_print_flag, 1, 1, 1, 0, 0,
|
{ 'n', flag, (char *) &just_print_flag, 1, 1, 1, 0, 0,
|
||||||
"just-print", 0,
|
"just-print", 0,
|
||||||
_("Don't actually run any commands; just print them") },
|
N_("Don't actually run any commands; just print them") },
|
||||||
{ 'o', string, (char *) &old_files, 0, 0, 0, 0, 0,
|
{ 'o', string, (char *) &old_files, 0, 0, 0, 0, 0,
|
||||||
"old-file", _("FILE"),
|
"old-file", N_("FILE"),
|
||||||
_("Consider FILE to be very old and don't remake it") },
|
N_("Consider FILE to be very old and don't remake it") },
|
||||||
{ 'p', flag, (char *) &print_data_base_flag, 1, 1, 0, 0, 0,
|
{ 'p', flag, (char *) &print_data_base_flag, 1, 1, 0, 0, 0,
|
||||||
"print-data-base", 0,
|
"print-data-base", 0,
|
||||||
_("Print make's internal database") },
|
N_("Print make's internal database") },
|
||||||
{ 'q', flag, (char *) &question_flag, 1, 1, 1, 0, 0,
|
{ 'q', flag, (char *) &question_flag, 1, 1, 1, 0, 0,
|
||||||
"question", 0,
|
"question", 0,
|
||||||
_("Run no commands; exit status says if up to date") },
|
N_("Run no commands; exit status says if up to date") },
|
||||||
{ 'r', flag, (char *) &no_builtin_rules_flag, 1, 1, 0, 0, 0,
|
{ 'r', flag, (char *) &no_builtin_rules_flag, 1, 1, 0, 0, 0,
|
||||||
"no-builtin-rules", 0,
|
"no-builtin-rules", 0,
|
||||||
_("Disable the built-in implicit rules") },
|
N_("Disable the built-in implicit rules") },
|
||||||
{ 'R', flag, (char *) &no_builtin_variables_flag, 1, 1, 0, 0, 0,
|
{ 'R', flag, (char *) &no_builtin_variables_flag, 1, 1, 0, 0, 0,
|
||||||
"no-builtin-variables", 0,
|
"no-builtin-variables", 0,
|
||||||
_("Disable the built-in variable settings") },
|
N_("Disable the built-in variable settings") },
|
||||||
{ 's', flag, (char *) &silent_flag, 1, 1, 0, 0, 0,
|
{ 's', flag, (char *) &silent_flag, 1, 1, 0, 0, 0,
|
||||||
"silent", 0,
|
"silent", 0,
|
||||||
_("Don't echo commands") },
|
N_("Don't echo commands") },
|
||||||
{ 'S', flag_off, (char *) &keep_going_flag, 1, 1, 0,
|
{ 'S', flag_off, (char *) &keep_going_flag, 1, 1, 0,
|
||||||
0, (char *) &default_keep_going_flag,
|
0, (char *) &default_keep_going_flag,
|
||||||
"no-keep-going", 0,
|
"no-keep-going", 0,
|
||||||
_("Turns off -k") },
|
N_("Turns off -k") },
|
||||||
{ 't', flag, (char *) &touch_flag, 1, 1, 1, 0, 0,
|
{ 't', flag, (char *) &touch_flag, 1, 1, 1, 0, 0,
|
||||||
"touch", 0,
|
"touch", 0,
|
||||||
_("Touch targets instead of remaking them") },
|
N_("Touch targets instead of remaking them") },
|
||||||
{ 'v', flag, (char *) &print_version_flag, 1, 1, 0, 0, 0,
|
{ 'v', flag, (char *) &print_version_flag, 1, 1, 0, 0, 0,
|
||||||
"version", 0,
|
"version", 0,
|
||||||
_("Print the version number of make and exit") },
|
N_("Print the version number of make and exit") },
|
||||||
{ 'w', flag, (char *) &print_directory_flag, 1, 1, 0, 0, 0,
|
{ 'w', flag, (char *) &print_directory_flag, 1, 1, 0, 0, 0,
|
||||||
"print-directory", 0,
|
"print-directory", 0,
|
||||||
_("Print the current directory") },
|
N_("Print the current directory") },
|
||||||
{ CHAR_MAX+2, flag, (char *) &inhibit_print_directory_flag, 1, 1, 0, 0, 0,
|
{ CHAR_MAX+2, flag, (char *) &inhibit_print_directory_flag, 1, 1, 0, 0, 0,
|
||||||
"no-print-directory", 0,
|
"no-print-directory", 0,
|
||||||
_("Turn off -w, even if it was turned on implicitly") },
|
N_("Turn off -w, even if it was turned on implicitly") },
|
||||||
{ 'W', string, (char *) &new_files, 0, 0, 0, 0, 0,
|
{ 'W', string, (char *) &new_files, 0, 0, 0, 0, 0,
|
||||||
"what-if", _("FILE"),
|
"what-if", N_("FILE"),
|
||||||
_("Consider FILE to be infinitely new") },
|
N_("Consider FILE to be infinitely new") },
|
||||||
{ CHAR_MAX+3, flag, (char *) &warn_undefined_variables_flag, 1, 1, 0, 0, 0,
|
{ CHAR_MAX+3, flag, (char *) &warn_undefined_variables_flag, 1, 1, 0, 0, 0,
|
||||||
"warn-undefined-variables", 0,
|
"warn-undefined-variables", 0,
|
||||||
_("Warn when an undefined variable is referenced") },
|
N_("Warn when an undefined variable is referenced") },
|
||||||
{ '\0', }
|
{ '\0', }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -566,28 +566,24 @@ handle_runtime_exceptions( struct _EXCEPTION_POINTERS *exinfo )
|
|||||||
|
|
||||||
if (! ISDB (DB_VERBOSE))
|
if (! ISDB (DB_VERBOSE))
|
||||||
{
|
{
|
||||||
sprintf(errmsg, _("%s: Interrupt/Exception caught "), prg);
|
sprintf(errmsg,
|
||||||
sprintf(&errmsg[strlen(errmsg)],
|
_("%s: Interrupt/Exception caught (code = 0x%x, addr = 0x%x)\n"),
|
||||||
"(code = 0x%x, addr = 0x%x)\r\n",
|
prg, exrec->ExceptionCode, exrec->ExceptionAddress);
|
||||||
exrec->ExceptionCode, exrec->ExceptionAddress);
|
|
||||||
fprintf(stderr, errmsg);
|
fprintf(stderr, errmsg);
|
||||||
exit(255);
|
exit(255);
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(errmsg,
|
sprintf(errmsg,
|
||||||
_("\r\nUnhandled exception filter called from program %s\r\n"), prg);
|
_("\nUnhandled exception filter called from program %s\nExceptionCode = %x\nExceptionFlags = %x\nExceptionAddress = %x\n"),
|
||||||
sprintf(&errmsg[strlen(errmsg)], "ExceptionCode = %x\r\n",
|
prg, exrec->ExceptionCode, exrec->ExceptionFlags,
|
||||||
exrec->ExceptionCode);
|
|
||||||
sprintf(&errmsg[strlen(errmsg)], "ExceptionFlags = %x\r\n",
|
|
||||||
exrec->ExceptionFlags);
|
|
||||||
sprintf(&errmsg[strlen(errmsg)], "ExceptionAddress = %x\r\n",
|
|
||||||
exrec->ExceptionAddress);
|
exrec->ExceptionAddress);
|
||||||
|
|
||||||
if (exrec->ExceptionCode == EXCEPTION_ACCESS_VIOLATION
|
if (exrec->ExceptionCode == EXCEPTION_ACCESS_VIOLATION
|
||||||
&& exrec->NumberParameters >= 2)
|
&& exrec->NumberParameters >= 2)
|
||||||
sprintf(&errmsg[strlen(errmsg)],
|
sprintf(&errmsg[strlen(errmsg)],
|
||||||
_("Access violation: %s operation at address %x\r\n"),
|
(exrec->ExceptionInformation[0]
|
||||||
exrec->ExceptionInformation[0] ? _("write"): _("read"),
|
? _("Access violation: write operation at address %x\n")
|
||||||
|
: _("Access violation: read operation at address %x\n")),
|
||||||
exrec->ExceptionInformation[1]);
|
exrec->ExceptionInformation[1]);
|
||||||
|
|
||||||
/* turn this on if we want to put stuff in the event log too */
|
/* turn this on if we want to put stuff in the event log too */
|
||||||
@ -767,6 +763,11 @@ int main (int argc, char ** argv)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Set up gettext/internationalization support. */
|
||||||
|
setlocale (LC_ALL, "");
|
||||||
|
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||||
|
textdomain (PACKAGE);
|
||||||
|
|
||||||
#if !defined (HAVE_STRSIGNAL) && !defined (HAVE_SYS_SIGLIST)
|
#if !defined (HAVE_STRSIGNAL) && !defined (HAVE_SYS_SIGLIST)
|
||||||
signame_init ();
|
signame_init ();
|
||||||
#endif
|
#endif
|
||||||
@ -2016,12 +2017,12 @@ print_usage (bad)
|
|||||||
shortarg[0] = longarg[0] = '\0';
|
shortarg[0] = longarg[0] = '\0';
|
||||||
break;
|
break;
|
||||||
case required_argument:
|
case required_argument:
|
||||||
sprintf (longarg, "=%s", cs->argdesc);
|
sprintf (longarg, "=%s", gettext (cs->argdesc));
|
||||||
sprintf (shortarg, " %s", cs->argdesc);
|
sprintf (shortarg, " %s", gettext (cs->argdesc));
|
||||||
break;
|
break;
|
||||||
case optional_argument:
|
case optional_argument:
|
||||||
sprintf (longarg, "[=%s]", cs->argdesc);
|
sprintf (longarg, "[=%s]", gettext (cs->argdesc));
|
||||||
sprintf (shortarg, " [%s]", cs->argdesc);
|
sprintf (shortarg, " [%s]", gettext (cs->argdesc));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2080,7 +2081,7 @@ print_usage (bad)
|
|||||||
|
|
||||||
fprintf (usageto, "%*s%s.\n",
|
fprintf (usageto, "%*s%s.\n",
|
||||||
- DESCRIPTION_COLUMN,
|
- DESCRIPTION_COLUMN,
|
||||||
buf, cs->description);
|
buf, gettext (cs->description));
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf (usageto, _("\nReport bugs to <bug-make@gnu.org>.\n"));
|
fprintf (usageto, _("\nReport bugs to <bug-make@gnu.org>.\n"));
|
||||||
|
24
make.h
24
make.h
@ -40,11 +40,25 @@ Boston, MA 02111-1307, USA. */
|
|||||||
#endif /* C++ or ANSI C. */
|
#endif /* C++ or ANSI C. */
|
||||||
|
|
||||||
|
|
||||||
/* For now, set gettext macro to a no-op. */
|
#if HAVE_LOCALE_H
|
||||||
#undef _
|
# include <locale.h>
|
||||||
#undef N_
|
#endif
|
||||||
#define _(s) s
|
#if !HAVE_SETLOCALE
|
||||||
#define N_(s) s
|
# define setlocale(Category, Locale) /* empty */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_NLS
|
||||||
|
# include <libintl.h>
|
||||||
|
# define _(Text) gettext (Text)
|
||||||
|
#else
|
||||||
|
# undef bindtextdomain
|
||||||
|
# define bindtextdomain(Domain, Directory) /* empty */
|
||||||
|
# undef textdomain
|
||||||
|
# define textdomain(Domain) /* empty */
|
||||||
|
# define _(Text) Text
|
||||||
|
# define gettext(Text) Text
|
||||||
|
#endif
|
||||||
|
#define N_(Text) Text
|
||||||
|
|
||||||
|
|
||||||
#ifdef CRAY
|
#ifdef CRAY
|
||||||
|
247
po/Makefile.in.in
Normal file
247
po/Makefile.in.in
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
# Makefile for program source directory in GNU NLS utilities package.
|
||||||
|
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
||||||
|
#
|
||||||
|
# This file file be copied and used freely without restrictions. It can
|
||||||
|
# be used in projects which are not available under the GNU Public License
|
||||||
|
# but which still want to provide support for the GNU gettext functionality.
|
||||||
|
# Please note that the actual code is *not* freely available.
|
||||||
|
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
|
||||||
|
SHELL = /bin/sh
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
srcdir = @srcdir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
|
||||||
|
prefix = @prefix@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
datadir = $(prefix)/@DATADIRNAME@
|
||||||
|
localedir = $(datadir)/locale
|
||||||
|
gnulocaledir = $(prefix)/share/locale
|
||||||
|
gettextsrcdir = $(prefix)/share/gettext/po
|
||||||
|
subdir = po
|
||||||
|
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
|
|
||||||
|
CC = @CC@
|
||||||
|
GENCAT = @GENCAT@
|
||||||
|
GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
|
||||||
|
MSGFMT = @MSGFMT@
|
||||||
|
XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
|
||||||
|
MSGMERGE = PATH=../src:$$PATH msgmerge
|
||||||
|
|
||||||
|
DEFS = @DEFS@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
|
||||||
|
INCLUDES = -I.. -I$(top_srcdir)/intl
|
||||||
|
|
||||||
|
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
|
||||||
|
|
||||||
|
SOURCES = cat-id-tbl.c
|
||||||
|
POFILES = @POFILES@
|
||||||
|
GMOFILES = @GMOFILES@
|
||||||
|
DISTFILES = Makefile.in.in POTFILES.in $(PACKAGE).pot \
|
||||||
|
stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
|
||||||
|
|
||||||
|
POTFILES = \
|
||||||
|
|
||||||
|
CATALOGS = @CATALOGS@
|
||||||
|
CATOBJEXT = @CATOBJEXT@
|
||||||
|
INSTOBJEXT = @INSTOBJEXT@
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
$(COMPILE) $<
|
||||||
|
|
||||||
|
.po.pox:
|
||||||
|
$(MAKE) $(PACKAGE).pot
|
||||||
|
$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
|
||||||
|
|
||||||
|
.po.mo:
|
||||||
|
$(MSGFMT) -o $@ $<
|
||||||
|
|
||||||
|
.po.gmo:
|
||||||
|
file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
|
||||||
|
&& rm -f $$file && $(GMSGFMT) -o $$file $<
|
||||||
|
|
||||||
|
.po.cat:
|
||||||
|
sed -f ../intl/po2msg.sed < $< > $*.msg \
|
||||||
|
&& rm -f $@ && $(GENCAT) $@ $*.msg
|
||||||
|
|
||||||
|
|
||||||
|
all: all-@USE_NLS@
|
||||||
|
|
||||||
|
all-yes: cat-id-tbl.c $(CATALOGS)
|
||||||
|
all-no:
|
||||||
|
|
||||||
|
$(srcdir)/$(PACKAGE).pot: $(POTFILES)
|
||||||
|
$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
|
||||||
|
--add-comments --keyword=_ --keyword=N_ \
|
||||||
|
--files-from=$(srcdir)/POTFILES.in \
|
||||||
|
&& test ! -f $(PACKAGE).po \
|
||||||
|
|| ( rm -f $(srcdir)/$(PACKAGE).pot \
|
||||||
|
&& mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
|
||||||
|
|
||||||
|
$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
|
||||||
|
$(srcdir)/stamp-cat-id: $(PACKAGE).pot
|
||||||
|
rm -f cat-id-tbl.tmp
|
||||||
|
sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
|
||||||
|
| sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
|
||||||
|
if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
|
||||||
|
rm cat-id-tbl.tmp; \
|
||||||
|
else \
|
||||||
|
echo cat-id-tbl.c changed; \
|
||||||
|
rm -f $(srcdir)/cat-id-tbl.c; \
|
||||||
|
mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
|
||||||
|
fi
|
||||||
|
cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
|
||||||
|
|
||||||
|
|
||||||
|
install: install-exec install-data
|
||||||
|
install-exec:
|
||||||
|
install-data: install-data-@USE_NLS@
|
||||||
|
install-data-no: all
|
||||||
|
install-data-yes: all
|
||||||
|
if test -x "$(MKINSTALLDIRS)"; then \
|
||||||
|
$(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
|
||||||
|
else \
|
||||||
|
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
|
||||||
|
fi
|
||||||
|
@catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
case "$$cat" in \
|
||||||
|
*.gmo) destdir=$(DESTDIR)$(gnulocaledir);; \
|
||||||
|
*) destdir=$(DESTDIR)$(localedir);; \
|
||||||
|
esac; \
|
||||||
|
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
|
||||||
|
dir=$$destdir/$$lang/LC_MESSAGES; \
|
||||||
|
if test -r "$(MKINSTALLDIRS)"; then \
|
||||||
|
$(MKINSTALLDIRS) $$dir; \
|
||||||
|
else \
|
||||||
|
$(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
|
||||||
|
fi; \
|
||||||
|
if test -r $$cat; then \
|
||||||
|
$(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
|
||||||
|
echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
|
||||||
|
else \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
|
||||||
|
echo "installing $(srcdir)/$$cat as" \
|
||||||
|
"$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
|
||||||
|
fi; \
|
||||||
|
if test -r $$cat.m; then \
|
||||||
|
$(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
|
||||||
|
echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
|
||||||
|
else \
|
||||||
|
if test -r $(srcdir)/$$cat.m ; then \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/$$cat.m \
|
||||||
|
$$dir/$(PACKAGE)$(INSTOBJEXT).m; \
|
||||||
|
echo "installing $(srcdir)/$$cat as" \
|
||||||
|
"$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
|
||||||
|
else \
|
||||||
|
true; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
if test "$(PACKAGE)" = "gettext"; then \
|
||||||
|
if test -x "$(MKINSTALLDIRS)"; then \
|
||||||
|
$(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
|
||||||
|
else \
|
||||||
|
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
|
||||||
|
fi; \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
|
||||||
|
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
|
||||||
|
else \
|
||||||
|
: ; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Define this as empty until I found a useful application.
|
||||||
|
installcheck:
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
|
||||||
|
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
|
||||||
|
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
|
||||||
|
done
|
||||||
|
|
||||||
|
check: all
|
||||||
|
|
||||||
|
cat-id-tbl.o: ../intl/libgettext.h
|
||||||
|
|
||||||
|
dvi info tags TAGS ID:
|
||||||
|
|
||||||
|
mostlyclean:
|
||||||
|
rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
|
||||||
|
rm -fr *.o
|
||||||
|
|
||||||
|
clean: mostlyclean
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
|
||||||
|
|
||||||
|
maintainer-clean: distclean
|
||||||
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
rm -f $(GMOFILES)
|
||||||
|
|
||||||
|
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
|
||||||
|
dist distdir: update-po $(DISTFILES)
|
||||||
|
dists="$(DISTFILES)"; \
|
||||||
|
for file in $$dists; do \
|
||||||
|
ln $(srcdir)/$$file $(distdir) 2> /dev/null \
|
||||||
|
|| cp -p $(srcdir)/$$file $(distdir); \
|
||||||
|
done
|
||||||
|
|
||||||
|
update-po: Makefile
|
||||||
|
$(MAKE) $(PACKAGE).pot
|
||||||
|
PATH=`pwd`/../src:$$PATH; \
|
||||||
|
cd $(srcdir); \
|
||||||
|
catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
|
||||||
|
mv $$lang.po $$lang.old.po; \
|
||||||
|
echo "$$lang:"; \
|
||||||
|
if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
|
||||||
|
rm -f $$lang.old.po; \
|
||||||
|
else \
|
||||||
|
echo "msgmerge for $$cat failed!"; \
|
||||||
|
rm -f $$lang.po; \
|
||||||
|
mv $$lang.old.po $$lang.po; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
POTFILES: POTFILES.in
|
||||||
|
( if test 'x$(srcdir)' != 'x.'; then \
|
||||||
|
posrcprefix='$(top_srcdir)/'; \
|
||||||
|
else \
|
||||||
|
posrcprefix="../"; \
|
||||||
|
fi; \
|
||||||
|
rm -f $@-t $@ \
|
||||||
|
&& (sed -e '/^#/d' -e '/^[ ]*$$/d' \
|
||||||
|
-e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
|
||||||
|
| sed -e '$$s/\\$$//') > $@-t \
|
||||||
|
&& chmod a-w $@-t \
|
||||||
|
&& mv $@-t $@ )
|
||||||
|
|
||||||
|
Makefile: Makefile.in.in ../config.status POTFILES
|
||||||
|
cd .. \
|
||||||
|
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
||||||
|
$(SHELL) ./config.status
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
27
po/POTFILES.in
Normal file
27
po/POTFILES.in
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# List of source files containing translatable strings for GNU make.
|
||||||
|
# Copyright (C) 2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# Sources from make proper
|
||||||
|
|
||||||
|
ar.c
|
||||||
|
arscan.c
|
||||||
|
commands.c
|
||||||
|
dir.c
|
||||||
|
expand.c
|
||||||
|
file.c
|
||||||
|
function.c
|
||||||
|
getopt.c
|
||||||
|
implicit.c
|
||||||
|
job.c
|
||||||
|
main.c
|
||||||
|
make.h
|
||||||
|
misc.c
|
||||||
|
read.c
|
||||||
|
remake.c
|
||||||
|
remote-cstms.c
|
||||||
|
rule.c
|
||||||
|
signame.c
|
||||||
|
variable.c
|
||||||
|
vpath.c
|
||||||
|
|
||||||
|
# Sources in the Windows port
|
4
remake.c
4
remake.c
@ -264,9 +264,9 @@ static void
|
|||||||
no_rule_error(file)
|
no_rule_error(file)
|
||||||
struct file *file;
|
struct file *file;
|
||||||
{
|
{
|
||||||
static const char msg_noparent[]
|
const char *msg_noparent
|
||||||
= _("%sNo rule to make target `%s'%s");
|
= _("%sNo rule to make target `%s'%s");
|
||||||
static const char msg_parent[]
|
const char *msg_parent
|
||||||
= _("%sNo rule to make target `%s', needed by `%s'%s");
|
= _("%sNo rule to make target `%s', needed by `%s'%s");
|
||||||
|
|
||||||
if (keep_going_flag || file->dontcare)
|
if (keep_going_flag || file->dontcare)
|
||||||
|
Loading…
Reference in New Issue
Block a user