tIncluded gettext distribution upgraded to 0.10.38; should now also work under … | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 0ffd3ec19b9649f16291084b4aaf35072266873d | |
parent fa8aa41d78c810190a4dc616a659c0d30ca25570 | |
Author: Ben Webb <[email protected]> | |
Date: Sat, 27 Oct 2001 19:14:16 +0000 | |
Included gettext distribution upgraded to 0.10.38; should now also work under W… | |
Diffstat: | |
M ChangeLog | 1 + | |
M Makefile.in | 15 +++++++++------ | |
M TODO | 1 + | |
M aclocal.m4 | 941 ++++++++++++++++++-----------… | |
A config.guess | 1371 +++++++++++++++++++++++++++++… | |
M config.h.in | 61 +++++++++++++++++++++++++----… | |
A config.sub | 1362 ++++++++++++++++++++++++++++++ | |
M configure | 4611 +++++++++++++++--------------… | |
M configure.in | 38 ++++++++++++++++-------------… | |
M intl/ChangeLog | 1086 +----------------------------… | |
M intl/Makefile.in | 234 ++++++++++++++++++++++-------… | |
M intl/VERSION | 2 +- | |
M intl/bindtextdom.c | 319 +++++++++++++++++++++++------… | |
D intl/cat-compat.c | 262 -----------------------------… | |
A intl/config.charset | 438 +++++++++++++++++++++++++++++… | |
M intl/dcgettext.c | 577 +----------------------------… | |
A intl/dcngettext.c | 59 +++++++++++++++++++++++++++++… | |
M intl/dgettext.c | 11 +++++------ | |
A intl/dngettext.c | 60 +++++++++++++++++++++++++++++… | |
M intl/explodename.c | 29 ++++++++++++++++------------- | |
M intl/finddomain.c | 51 ++++++++++-------------------… | |
M intl/gettext.c | 21 +++++++-------------- | |
M intl/gettext.h | 18 +++++++----------- | |
M intl/gettextP.h | 178 +++++++++++++++++++++++++++++… | |
M intl/hash-string.h | 19 +++++++++---------- | |
M intl/intl-compat.c | 111 ++++++++++++++++++++++++++++-… | |
M intl/l10nflist.c | 35 +++++++++++++----------------… | |
M intl/libgettext.h | 174 ++++-------------------------… | |
A intl/libgnuintl.h | 127 +++++++++++++++++++++++++++++… | |
D intl/linux-msg.sed | 100 -----------------------------… | |
M intl/loadinfo.h | 36 +++++++++++++++++++++++++++++… | |
M intl/loadmsgcat.c | 412 ++++++++++++++++++++++++++++-… | |
A intl/localcharset.c | 271 +++++++++++++++++++++++++++++… | |
A intl/locale.alias | 77 +++++++++++++++++++++++++++++… | |
M intl/localealias.c | 143 +++++++++++++----------------… | |
A intl/ngettext.c | 67 +++++++++++++++++++++++++++++… | |
A intl/plural.c | 1325 +++++++++++++++++++++++++++++… | |
A intl/plural.y | 412 +++++++++++++++++++++++++++++… | |
D intl/po2tbl.sed.in | 102 -----------------------------… | |
A intl/ref-add.sin | 31 +++++++++++++++++++++++++++++… | |
A intl/ref-del.sin | 26 ++++++++++++++++++++++++++ | |
M intl/textdomain.c | 81 ++++++++++++++++++++++-------… | |
D intl/xopen-msg.sed | 104 -----------------------------… | |
M src/gtkport.c | 51 +++++++++++++++++++++--------… | |
M src/gtkport.h | 2 ++ | |
M src/nls.h | 32 +++++++++++++++++------------… | |
M src/winmain.c | 71 +++++++++++++++++++++++++++--… | |
47 files changed, 9860 insertions(+), 5695 deletions(-) | |
--- | |
diff --git a/ChangeLog b/ChangeLog | |
t@@ -1,4 +1,5 @@ | |
cvs | |
+ - Translations should now work with the Windows client | |
- Documentation on the client-server protocol added | |
- Windows graphical server can be minimized to the System Tray | |
- Keyboard shortcuts for menu items in Windows client | |
diff --git a/Makefile.in b/Makefile.in | |
t@@ -57,11 +57,15 @@ POST_INSTALL = : | |
NORMAL_UNINSTALL = : | |
PRE_UNINSTALL = : | |
POST_UNINSTALL = : | |
+host_alias = @host_alias@ | |
+host_triplet = @host@ | |
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ | |
CATALOGS = @CATALOGS@ | |
CATOBJEXT = @CATOBJEXT@ | |
CC = @CC@ | |
DATADIRNAME = @DATADIRNAME@ | |
GENCAT = @GENCAT@ | |
+GLIBC21 = @GLIBC21@ | |
GLIB_CFLAGS = @GLIB_CFLAGS@ | |
GLIB_CONFIG = @GLIB_CONFIG@ | |
GLIB_LIBS = @GLIB_LIBS@ | |
t@@ -72,13 +76,12 @@ GTKPORT_O = @GTKPORT_O@ | |
GTK_CFLAGS = @GTK_CFLAGS@ | |
GTK_CONFIG = @GTK_CONFIG@ | |
GTK_LIBS = @GTK_LIBS@ | |
-GT_NO = @GT_NO@ | |
-GT_YES = @GT_YES@ | |
-INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ | |
INSTOBJEXT = @INSTOBJEXT@ | |
-INTLDEPS = @INTLDEPS@ | |
+INTLBISON = @INTLBISON@ | |
INTLLIBS = @INTLLIBS@ | |
INTLOBJS = @INTLOBJS@ | |
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ | |
+LIBICONV = @LIBICONV@ | |
MAKEINFO = @MAKEINFO@ | |
MKINSTALLDIRS = @MKINSTALLDIRS@ | |
MSGFMT = @MSGFMT@ | |
t@@ -90,7 +93,6 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ | |
USE_NLS = @USE_NLS@ | |
VERSION = @VERSION@ | |
WNDRES = @WNDRES@ | |
-l = @l@ | |
localedir = @localedir@ | |
SUBDIRS = intl src doc po | |
t@@ -105,7 +107,8 @@ CONFIG_HEADER = config.h | |
CONFIG_CLEAN_FILES = | |
DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \ | |
INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \ | |
-config.h.in configure configure.in install-sh missing mkinstalldirs | |
+config.guess config.h.in config.sub configure configure.in install-sh \ | |
+missing mkinstalldirs | |
TAR = gtar | |
diff --git a/TODO b/TODO | |
t@@ -1,3 +1,4 @@ | |
+- Implement allow_shrink window attribute for Windows client | |
- Make server run as an NT Service | |
- Restore default configuration properly at the start of each game | |
- Configuration file editor thingy in the client? | |
diff --git a/aclocal.m4 b/aclocal.m4 | |
t@@ -1,6 +1,6 @@ | |
-dnl aclocal.m4 generated automatically by aclocal 1.4 | |
+dnl aclocal.m4 generated automatically by aclocal 1.4-p5 | |
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. | |
+dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. | |
dnl This file is free software; the Free Software Foundation | |
dnl gives unlimited permission to copy and/or distribute it, | |
dnl with or without modifications, as long as this notice is preserved. | |
t@@ -19,7 +19,7 @@ dnl PARTICULAR PURPOSE. | |
dnl Usage: | |
dnl AM_INIT_AUTOMAKE(package,version, [no-define]) | |
-AC_DEFUN(AM_INIT_AUTOMAKE, | |
+AC_DEFUN([AM_INIT_AUTOMAKE], | |
[AC_REQUIRE([AC_PROG_INSTALL]) | |
PACKAGE=[$1] | |
AC_SUBST(PACKAGE) | |
t@@ -47,7 +47,7 @@ AC_REQUIRE([AC_PROG_MAKE_SET])]) | |
# Check to make sure that the build environment is sane. | |
# | |
-AC_DEFUN(AM_SANITY_CHECK, | |
+AC_DEFUN([AM_SANITY_CHECK], | |
[AC_MSG_CHECKING([whether build environment is sane]) | |
# Just in case | |
sleep 1 | |
t@@ -88,7 +88,7 @@ AC_MSG_RESULT(yes)]) | |
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) | |
dnl The program must properly implement --version. | |
-AC_DEFUN(AM_MISSING_PROG, | |
+AC_DEFUN([AM_MISSING_PROG], | |
[AC_MSG_CHECKING(for working $2) | |
# Run test in a subshell; some versions of sh will print an error if | |
# an executable is not found, even if stderr is redirected. | |
t@@ -104,7 +104,7 @@ AC_SUBST($1)]) | |
# Like AC_CONFIG_HEADER, but automatically create stamp file. | |
-AC_DEFUN(AM_CONFIG_HEADER, | |
+AC_DEFUN([AM_CONFIG_HEADER], | |
[AC_PREREQ([2.12]) | |
AC_CONFIG_HEADER([$1]) | |
dnl When config.status generates a header, we must update the stamp-h file. | |
t@@ -125,389 +125,23 @@ for am_file in <<$1>>; do | |
done<<>>dnl>>) | |
changequote([,]))]) | |
-# Macro to add for using GNU gettext. | |
-# Ulrich Drepper <[email protected]>, 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 | |
+#serial 1 | |
+# This test replaces the one in autoconf. | |
+# Currently this macro should have the same name as the autoconf macro | |
+# because gettext's gettext.m4 (distributed in the automake package) | |
+# still uses it. Otherwise, the use in gettext.m4 makes autoheader | |
+# give these diagnostics: | |
+# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX | |
+# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX | |
-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 | |
+undefine([AC_ISC_POSIX]) | |
- 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/\(… | |
- < $srcdir/po/POTFILES.in > po/POTFILES | |
- ]) | |
- | |
-# Search path for a program which passes the given test. | |
-# Ulrich Drepper <[email protected]>, 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 | |
-]) | |
- | |
-# Check whether LC_MESSAGES is available in <locale.h>. | |
-# Ulrich Drepper <[email protected]>, 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]) | |
+AC_DEFUN([AC_ISC_POSIX], | |
+ [ | |
+ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. | |
+ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) | |
+ ] | |
+) | |
# Configure paths for GLIB | |
# Owen Taylor 97-11-3 | |
t@@ -901,3 +535,536 @@ main () | |
rm -f conf.gtktest | |
]) | |
+# Macro to add for using GNU gettext. | |
+# Ulrich Drepper <[email protected]>, 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 9 | |
+ | |
+dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]). | |
+dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library | |
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, | |
+dnl depending on --{enable,disable}-{shared,static} and on the presence of | |
+dnl AM-DISABLE-SHARED). Otherwise, a static library | |
+dnl $(top_builddir)/intl/libintl.a will be created. | |
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext | |
+dnl implementations (in libc or libintl) without the ngettext() function | |
+dnl will be ignored. | |
+dnl LIBDIR is used to find the intl libraries. If empty, | |
+dnl the value `$(top_builddir)/intl/' is used. | |
+dnl | |
+dnl The result of the configuration is one of three cases: | |
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled | |
+dnl and used. | |
+dnl Catalog format: GNU --> install in $(datadir) | |
+dnl Catalog extension: .mo after installation, .gmo in source tree | |
+dnl 2) GNU gettext has been found in the system's C library. | |
+dnl Catalog format: GNU --> install in $(datadir) | |
+dnl Catalog extension: .mo after installation, .gmo in source tree | |
+dnl 3) No internationalization, always use English msgid. | |
+dnl Catalog format: none | |
+dnl Catalog extension: none | |
+dnl The use of .gmo is historical (it was needed to avoid overwriting the | |
+dnl GNU format catalogs when building on a platform with an X/Open gettext), | |
+dnl but we keep it in order not to force irrelevant filename changes on the | |
+dnl maintainers. | |
+dnl | |
+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) | |
+ | |
+ BUILD_INCLUDED_LIBINTL=no | |
+ USE_INCLUDED_LIBINTL=no | |
+ INTLLIBS= | |
+ | |
+ dnl If we use NLS figure out what method | |
+ if test "$USE_NLS" = "yes"; then | |
+ AC_DEFINE(ENABLE_NLS, 1, | |
+ [Define to 1 if translation of program messages to the user's native l… | |
+ is requested.]) | |
+ 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 GNU gettext is available we use this. Else we have | |
+ dnl to fall back to GNU NLS library. | |
+ CATOBJEXT=NONE | |
+ | |
+ dnl Add a version number to the cache macros. | |
+ define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2],… | |
+ define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$… | |
+ | |
+ AC_CHECK_HEADER(libintl.h, | |
+ [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_lib… | |
+ [AC_TRY_LINK([#include <libintl.h> | |
+extern int _nl_msg_cat_cntr;], | |
+ [bindtextdomain ("", ""); | |
+return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", … | |
+ gt_cv_func_gnugettext_libc=yes, | |
+ gt_cv_func_gnugettext_libc=no)]) | |
+ | |
+ if test "$gt_cv_func_gnugettext_libc" != "yes"; then | |
+ AC_CACHE_CHECK([for GNU gettext in libintl], | |
+ gt_cv_func_gnugettext_libintl, | |
+ [gt_save_LIBS="$LIBS" | |
+ LIBS="$LIBS -lintl $LIBICONV" | |
+ AC_TRY_LINK([#include <libintl.h> | |
+extern int _nl_msg_cat_cntr;], | |
+ [bindtextdomain ("", ""); | |
+return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", … | |
+ gt_cv_func_gnugettext_libintl=yes, | |
+ gt_cv_func_gnugettext_libintl=no) | |
+ LIBS="$gt_save_LIBS"]) | |
+ fi | |
+ | |
+ dnl If an already present or preinstalled GNU gettext() is found, | |
+ dnl use it. But if this macro is used in GNU gettext, and GNU | |
+ dnl gettext is already preinstalled in libintl, we update this | |
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.) | |
+ if test "$gt_cv_func_gnugettext_libc" = "yes" \ | |
+ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ | |
+ && test "$PACKAGE" != gettext; }; then | |
+ AC_DEFINE(HAVE_GETTEXT, 1, | |
+ [Define if the GNU gettext() function is already present or pre… | |
+ | |
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then | |
+ dnl If iconv() is in a separate libiconv library, then anyone | |
+ dnl linking with libintl{.a,.so} also needs to link with | |
+ dnl libiconv. | |
+ INTLLIBS="-lintl $LIBICONV" | |
+ fi | |
+ | |
+ gt_save_LIBS="$LIBS" | |
+ LIBS="$LIBS $INTLLIBS" | |
+ AC_CHECK_FUNCS(dcgettext) | |
+ LIBS="$gt_save_LIBS" | |
+ | |
+ 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_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) | |
+ fi | |
+ | |
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, | |
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) | |
+ | |
+ CATOBJEXT=.gmo | |
+ fi | |
+ ]) | |
+ | |
+ if test "$CATOBJEXT" = "NONE"; then | |
+ dnl GNU gettext is not found 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) | |
+ BUILD_INCLUDED_LIBINTL=yes | |
+ USE_INCLUDED_LIBINTL=yes | |
+ CATOBJEXT=.gmo | |
+ INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$… | |
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` | |
+ 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 | |
+ | |
+ dnl We need to process the po/ directory. | |
+ POSUB=po | |
+ fi | |
+ AC_OUTPUT_COMMANDS( | |
+ [for ac_file in $CONFIG_FILES; do | |
+ # Support "outfile[:infile[:infile...]]" | |
+ case "$ac_file" in | |
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; | |
+ esac | |
+ # PO directories have a Makefile.in generated from Makefile.in.in. | |
+ case "$ac_file" in */Makefile.in) | |
+ # Adjust a relative srcdir. | |
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` | |
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" | |
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` | |
+ case "$ac_given_srcdir" in | |
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; | |
+ /*) top_srcdir="$ac_given_srcdir" ;; | |
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;; | |
+ esac | |
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then | |
+ rm -f "$ac_dir/POTFILES" | |
+ echo creating "$ac_dir/POTFILES" | |
+ sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/&… | |
+ echo creating "$ac_dir/Makefile" | |
+ sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$… | |
+ fi | |
+ ;; | |
+ esac | |
+ done]) | |
+ | |
+ | |
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL | |
+ dnl to 'yes' because some of the testsuite requires it. | |
+ if test "$PACKAGE" = gettext; then | |
+ BUILD_INCLUDED_LIBINTL=yes | |
+ fi | |
+ | |
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison, | |
+ dnl because plural.y uses bison specific features. It requires at least | |
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't | |
+ dnl compile. | |
+ dnl bison is only needed for the maintainer (who touches plural.y). But in | |
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put | |
+ dnl the rule in general Makefile. Now, some people carelessly touch the | |
+ dnl files or have a broken "make" program, hence the plural.c rule will | |
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not | |
+ dnl present or too old. | |
+ AC_CHECK_PROGS([INTLBISON], [bison]) | |
+ if test -z "$INTLBISON"; then | |
+ ac_verc_fail=yes | |
+ else | |
+ dnl Found it, now check the version. | |
+ AC_MSG_CHECKING([version of bison]) | |
+changequote(<<,>>)dnl | |
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \… | |
+ case $ac_prog_version in | |
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; | |
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) | |
+changequote([,])dnl | |
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; | |
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; | |
+ esac | |
+ AC_MSG_RESULT([$ac_prog_version]) | |
+ fi | |
+ if test $ac_verc_fail = yes; then | |
+ INTLBISON=: | |
+ 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(BUILD_INCLUDED_LIBINTL) | |
+ AC_SUBST(USE_INCLUDED_LIBINTL) | |
+ AC_SUBST(CATALOGS) | |
+ AC_SUBST(CATOBJEXT) | |
+ AC_SUBST(GMOFILES) | |
+ AC_SUBST(INTLLIBS) | |
+ AC_SUBST(INTLOBJS) | |
+ AC_SUBST(POFILES) | |
+ AC_SUBST(POSUB) | |
+ | |
+ dnl For backward compatibility. Some configure.ins may be using this. | |
+ nls_cv_header_intl= | |
+ nls_cv_header_libgt= | |
+ | |
+ dnl For backward compatibility. Some Makefiles may be using this. | |
+ DATADIRNAME=share | |
+ AC_SUBST(DATADIRNAME) | |
+ | |
+ dnl For backward compatibility. Some Makefiles may be using this. | |
+ INSTOBJEXT=.mo | |
+ AC_SUBST(INSTOBJEXT) | |
+ | |
+ dnl For backward compatibility. Some Makefiles may be using this. | |
+ GENCAT=gencat | |
+ AC_SUBST(GENCAT) | |
+ ]) | |
+ | |
+dnl Usage: Just like AM_WITH_NLS, which see. | |
+AC_DEFUN([AM_GNU_GETTEXT], | |
+ [AC_REQUIRE([AC_PROG_MAKE_SET])dnl | |
+ AC_REQUIRE([AC_PROG_CC])dnl | |
+ AC_REQUIRE([AC_CANONICAL_HOST])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_REQUIRE([jm_GLIBC21])dnl | |
+ | |
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ | |
+stdlib.h string.h unistd.h sys/param.h]) | |
+ AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \ | |
+getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ | |
+strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) | |
+ | |
+ AM_ICONV | |
+ AM_LANGINFO_CODESET | |
+ AM_LC_MESSAGES | |
+ AM_WITH_NLS([$1],[$2],[$3]) | |
+ | |
+ 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 presentlang in $ALL_LINGUAS; do | |
+ useit=no | |
+ for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do | |
+ # Use the presentlang catalog if desiredlang is | |
+ # a. equal to presentlang, or | |
+ # b. a variant of presentlang (because in this case, | |
+ # presentlang can be used as a fallback for messages | |
+ # which are not translated in the desiredlang catalog). | |
+ case "$desiredlang" in | |
+ "$presentlang"*) useit=yes;; | |
+ esac | |
+ done | |
+ if test $useit = yes; then | |
+ NEW_LINGUAS="$NEW_LINGUAS $presentlang" | |
+ fi | |
+ 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 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 Enable libtool support if the surrounding package wishes it. | |
+ INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], []) | |
+ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) | |
+ ]) | |
+ | |
+# Search path for a program which passes the given test. | |
+# Ulrich Drepper <[email protected]>, 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 | |
+]) | |
+ | |
+#serial 2 | |
+ | |
+# Test for the GNU C Library, version 2.1 or newer. | |
+# From Bruno Haible. | |
+ | |
+AC_DEFUN([jm_GLIBC21], | |
+ [ | |
+ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, | |
+ ac_cv_gnu_library_2_1, | |
+ [AC_EGREP_CPP([Lucky GNU user], | |
+ [ | |
+#include <features.h> | |
+#ifdef __GNU_LIBRARY__ | |
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) | |
+ Lucky GNU user | |
+ #endif | |
+#endif | |
+ ], | |
+ ac_cv_gnu_library_2_1=yes, | |
+ ac_cv_gnu_library_2_1=no) | |
+ ] | |
+ ) | |
+ AC_SUBST(GLIBC21) | |
+ GLIBC21="$ac_cv_gnu_library_2_1" | |
+ ] | |
+) | |
+ | |
+#serial AM2 | |
+ | |
+dnl From Bruno Haible. | |
+ | |
+AC_DEFUN([AM_ICONV], | |
+[ | |
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and | |
+ dnl those with the standalone portable GNU libiconv installed). | |
+ | |
+ AC_ARG_WITH([libiconv-prefix], | |
+[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib]… | |
+ for dir in `echo "$withval" | tr : ' '`; do | |
+ if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi | |
+ if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi | |
+ done | |
+ ]) | |
+ | |
+ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ | |
+ am_cv_func_iconv="no, consider installing GNU libiconv" | |
+ am_cv_lib_iconv=no | |
+ AC_TRY_LINK([#include <stdlib.h> | |
+#include <iconv.h>], | |
+ [iconv_t cd = iconv_open("",""); | |
+ iconv(cd,NULL,NULL,NULL,NULL); | |
+ iconv_close(cd);], | |
+ am_cv_func_iconv=yes) | |
+ if test "$am_cv_func_iconv" != yes; then | |
+ am_save_LIBS="$LIBS" | |
+ LIBS="$LIBS -liconv" | |
+ AC_TRY_LINK([#include <stdlib.h> | |
+#include <iconv.h>], | |
+ [iconv_t cd = iconv_open("",""); | |
+ iconv(cd,NULL,NULL,NULL,NULL); | |
+ iconv_close(cd);], | |
+ am_cv_lib_iconv=yes | |
+ am_cv_func_iconv=yes) | |
+ LIBS="$am_save_LIBS" | |
+ fi | |
+ ]) | |
+ if test "$am_cv_func_iconv" = yes; then | |
+ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) | |
+ AC_MSG_CHECKING([for iconv declaration]) | |
+ AC_CACHE_VAL(am_cv_proto_iconv, [ | |
+ AC_TRY_COMPILE([ | |
+#include <stdlib.h> | |
+#include <iconv.h> | |
+extern | |
+#ifdef __cplusplus | |
+"C" | |
+#endif | |
+#if defined(__STDC__) || defined(__cplusplus) | |
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, … | |
+#else | |
+size_t iconv(); | |
+#endif | |
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") | |
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_a… | |
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /… | |
+ AC_MSG_RESULT([$]{ac_t:- | |
+ }[$]am_cv_proto_iconv) | |
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, | |
+ [Define as const if the declaration of iconv() needs const.]) | |
+ fi | |
+ LIBICONV= | |
+ if test "$am_cv_lib_iconv" = yes; then | |
+ LIBICONV="-liconv" | |
+ fi | |
+ AC_SUBST(LIBICONV) | |
+]) | |
+ | |
+#serial AM1 | |
+ | |
+dnl From Bruno Haible. | |
+ | |
+AC_DEFUN([AM_LANGINFO_CODESET], | |
+[ | |
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, | |
+ [AC_TRY_LINK([#include <langinfo.h>], | |
+ [char* cs = nl_langinfo(CODESET);], | |
+ am_cv_langinfo_codeset=yes, | |
+ am_cv_langinfo_codeset=no) | |
+ ]) | |
+ if test $am_cv_langinfo_codeset = yes; then | |
+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1, | |
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) | |
+ fi | |
+]) | |
+ | |
+# Check whether LC_MESSAGES is available in <locale.h>. | |
+# Ulrich Drepper <[email protected]>, 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 2 | |
+ | |
+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, 1, | |
+ [Define if your <locale.h> file defines LC_MESSAGES.]) | |
+ fi | |
+ fi]) | |
+ | |
diff --git a/config.guess b/config.guess | |
t@@ -0,0 +1,1371 @@ | |
+#! /bin/sh | |
+# Attempt to guess a canonical system name. | |
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 | |
+# Free Software Foundation, Inc. | |
+ | |
+timestamp='2001-04-20' | |
+ | |
+# This file is free software; you can redistribute it and/or modify it | |
+# under the terms of the GNU General Public License as published by | |
+# the Free Software Foundation; either version 2 of the License, or | |
+# (at your option) any later version. | |
+# | |
+# This program is distributed in the hope that it will be useful, but | |
+# WITHOUT ANY WARRANTY; without even the implied warranty of | |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
+# General Public License for more details. | |
+# | |
+# You should have received a copy of the GNU General Public License | |
+# along with this program; if not, write to the Free Software | |
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
+# | |
+# As a special exception to the GNU General Public License, if you | |
+# distribute this file as part of a program that contains a | |
+# configuration script generated by Autoconf, you may include it under | |
+# the same distribution terms that you use for the rest of that program. | |
+ | |
+# Written by Per Bothner <[email protected]>. | |
+# Please send patches to <[email protected]>. | |
+# | |
+# This script attempts to guess a canonical system name similar to | |
+# config.sub. If it succeeds, it prints the system name on stdout, and | |
+# exits with 0. Otherwise, it exits with 1. | |
+# | |
+# The plan is that this can be called by configure scripts if you | |
+# don't specify an explicit build system type. | |
+ | |
+me=`echo "$0" | sed -e 's,.*/,,'` | |
+ | |
+usage="\ | |
+Usage: $0 [OPTION] | |
+ | |
+Output the configuration name of the system \`$me' is run on. | |
+ | |
+Operation modes: | |
+ -h, --help print this help, then exit | |
+ -t, --time-stamp print date of last modification, then exit | |
+ -v, --version print version number, then exit | |
+ | |
+Report bugs and patches to <[email protected]>." | |
+ | |
+version="\ | |
+GNU config.guess ($timestamp) | |
+ | |
+Originally written by Per Bothner. | |
+Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000 | |
+Free Software Foundation, Inc. | |
+ | |
+This is free software; see the source for copying conditions. There is NO | |
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | |
+ | |
+help=" | |
+Try \`$me --help' for more information." | |
+ | |
+# Parse command line | |
+while test $# -gt 0 ; do | |
+ case $1 in | |
+ --time-stamp | --time* | -t ) | |
+ echo "$timestamp" ; exit 0 ;; | |
+ --version | -v ) | |
+ echo "$version" ; exit 0 ;; | |
+ --help | --h* | -h ) | |
+ echo "$usage"; exit 0 ;; | |
+ -- ) # Stop option processing | |
+ shift; break ;; | |
+ - ) # Use stdin as input. | |
+ break ;; | |
+ -* ) | |
+ echo "$me: invalid option $1$help" >&2 | |
+ exit 1 ;; | |
+ * ) | |
+ break ;; | |
+ esac | |
+done | |
+ | |
+if test $# != 0; then | |
+ echo "$me: too many arguments$help" >&2 | |
+ exit 1 | |
+fi | |
+ | |
+ | |
+dummy=dummy-$$ | |
+trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 | |
+ | |
+# CC_FOR_BUILD -- compiler used by this script. | |
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still | |
+# use `HOST_CC' if defined, but it is deprecated. | |
+ | |
+case $CC_FOR_BUILD,$HOST_CC,$CC in | |
+ ,,) echo "int dummy(){}" > $dummy.c | |
+ for c in cc gcc c89 ; do | |
+ ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 | |
+ if test $? = 0 ; then | |
+ CC_FOR_BUILD="$c"; break | |
+ fi | |
+ done | |
+ rm -f $dummy.c $dummy.o $dummy.rel | |
+ if test x"$CC_FOR_BUILD" = x ; then | |
+ CC_FOR_BUILD=no_compiler_found | |
+ fi | |
+ ;; | |
+ ,,*) CC_FOR_BUILD=$CC ;; | |
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;; | |
+esac | |
+ | |
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe. | |
+# ([email protected] 8/24/94.) | |
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then | |
+ PATH=$PATH:/.attbin ; export PATH | |
+fi | |
+ | |
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown | |
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown | |
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown | |
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown | |
+ | |
+# Note: order is significant - the case branches are not exclusive. | |
+ | |
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | |
+ *:NetBSD:*:*) | |
+ # Netbsd (nbsd) targets should (where applicable) match one or | |
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, | |
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently | |
+ # switched to ELF, *-*-netbsd* would select the old | |
+ # object file format. This provides both forward | |
+ # compatibility and a consistent mechanism for selecting the | |
+ # object file format. | |
+ # Determine the machine/vendor (is the vendor relevant). | |
+ case "${UNAME_MACHINE}" in | |
+ amiga) machine=m68k-unknown ;; | |
+ arm32) machine=arm-unknown ;; | |
+ atari*) machine=m68k-atari ;; | |
+ sun3*) machine=m68k-sun ;; | |
+ mac68k) machine=m68k-apple ;; | |
+ macppc) machine=powerpc-apple ;; | |
+ hp3[0-9][05]) machine=m68k-hp ;; | |
+ ibmrt|romp-ibm) machine=romp-ibm ;; | |
+ *) machine=${UNAME_MACHINE}-unknown ;; | |
+ esac | |
+ # The Operating System including object format, if it has switched | |
+ # to ELF recently, or will in the future. | |
+ case "${UNAME_MACHINE}" in | |
+ i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news6… | |
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | |
+ | grep __ELF__ >/dev/null | |
+ then | |
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (… | |
+ # Return netbsd for either. FIX? | |
+ os=netbsd | |
+ else | |
+ os=netbsdelf | |
+ fi | |
+ ;; | |
+ *) | |
+ os=netbsd | |
+ ;; | |
+ esac | |
+ # The OS release | |
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` | |
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: | |
+ # contains redundant information, the shorter form: | |
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. | |
+ echo "${machine}-${os}${release}" | |
+ exit 0 ;; | |
+ alpha:OSF1:*:*) | |
+ if test $UNAME_RELEASE = "V4.0"; then | |
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` | |
+ fi | |
+ # A Vn.n version is a released version. | |
+ # A Tn.n version is a released field test version. | |
+ # A Xn.n version is an unreleased experimental baselevel. | |
+ # 1.2 uses "1.2" for uname -r. | |
+ cat <<EOF >$dummy.s | |
+ .data | |
+\$Lformat: | |
+ .byte 37,100,45,37,120,10,0 # "%d-%x\n" | |
+ | |
+ .text | |
+ .globl main | |
+ .align 4 | |
+ .ent main | |
+main: | |
+ .frame \$30,16,\$26,0 | |
+ ldgp \$29,0(\$27) | |
+ .prologue 1 | |
+ .long 0x47e03d80 # implver \$0 | |
+ lda \$2,-1 | |
+ .long 0x47e20c21 # amask \$2,\$1 | |
+ lda \$16,\$Lformat | |
+ mov \$0,\$17 | |
+ not \$1,\$18 | |
+ jsr \$26,printf | |
+ ldgp \$29,0(\$26) | |
+ mov 0,\$16 | |
+ jsr \$26,exit | |
+ .end main | |
+EOF | |
+ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null | |
+ if test "$?" = 0 ; then | |
+ case `./$dummy` in | |
+ 0-0) | |
+ UNAME_MACHINE="alpha" | |
+ ;; | |
+ 1-0) | |
+ UNAME_MACHINE="alphaev5" | |
+ ;; | |
+ 1-1) | |
+ UNAME_MACHINE="alphaev56" | |
+ ;; | |
+ 1-101) | |
+ UNAME_MACHINE="alphapca56" | |
+ ;; | |
+ 2-303) | |
+ UNAME_MACHINE="alphaev6" | |
+ ;; | |
+ 2-307) | |
+ UNAME_MACHINE="alphaev67" | |
+ ;; | |
+ esac | |
+ fi | |
+ rm -f $dummy.s $dummy | |
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]… | |
+ exit 0 ;; | |
+ Alpha\ *:Windows_NT*:*) | |
+ # How do we know it's Interix rather than the generic POSIX subsystem? | |
+ # Should we change UNAME_MACHINE based on the output of uname instead | |
+ # of the specific Alpha model? | |
+ echo alpha-pc-interix | |
+ exit 0 ;; | |
+ 21064:Windows_NT:50:3) | |
+ echo alpha-dec-winnt3.5 | |
+ exit 0 ;; | |
+ Amiga*:UNIX_System_V:4.0:*) | |
+ echo m68k-unknown-sysv4 | |
+ exit 0;; | |
+ amiga:OpenBSD:*:*) | |
+ echo m68k-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:[Aa]miga[Oo][Ss]:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-amigaos | |
+ exit 0 ;; | |
+ arc64:OpenBSD:*:*) | |
+ echo mips64el-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ arc:OpenBSD:*:*) | |
+ echo mipsel-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ hkmips:OpenBSD:*:*) | |
+ echo mips-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ pmax:OpenBSD:*:*) | |
+ echo mipsel-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ sgi:OpenBSD:*:*) | |
+ echo mips-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ wgrisc:OpenBSD:*:*) | |
+ echo mipsel-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:OS/390:*:*) | |
+ echo i370-ibm-openedition | |
+ exit 0 ;; | |
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) | |
+ echo arm-acorn-riscix${UNAME_RELEASE} | |
+ exit 0;; | |
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) | |
+ echo hppa1.1-hitachi-hiuxmpp | |
+ exit 0;; | |
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) | |
+ # [email protected] (Earle F. Ake) contributed MIS and NILE. | |
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then | |
+ echo pyramid-pyramid-sysv3 | |
+ else | |
+ echo pyramid-pyramid-bsd | |
+ fi | |
+ exit 0 ;; | |
+ NILE*:*:*:dcosx) | |
+ echo pyramid-pyramid-svr4 | |
+ exit 0 ;; | |
+ sun4H:SunOS:5.*:*) | |
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
+ exit 0 ;; | |
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) | |
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
+ exit 0 ;; | |
+ i86pc:SunOS:5.*:*) | |
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
+ exit 0 ;; | |
+ sun4*:SunOS:6*:*) | |
+ # According to config.sub, this is the proper way to canonicalize | |
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but | |
+ # it's likely to be more like Solaris than SunOS4. | |
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | |
+ exit 0 ;; | |
+ sun4*:SunOS:*:*) | |
+ case "`/usr/bin/arch -k`" in | |
+ Series*|S4*) | |
+ UNAME_RELEASE=`uname -v` | |
+ ;; | |
+ esac | |
+ # Japanese Language versions have a version number like `4.1.3-JL'. | |
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` | |
+ exit 0 ;; | |
+ sun3*:SunOS:*:*) | |
+ echo m68k-sun-sunos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ sun*:*:4.2BSD:*) | |
+ UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/d… | |
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 | |
+ case "`/bin/arch`" in | |
+ sun3) | |
+ echo m68k-sun-sunos${UNAME_RELEASE} | |
+ ;; | |
+ sun4) | |
+ echo sparc-sun-sunos${UNAME_RELEASE} | |
+ ;; | |
+ esac | |
+ exit 0 ;; | |
+ aushp:SunOS:*:*) | |
+ echo sparc-auspex-sunos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ atari*:OpenBSD:*:*) | |
+ echo m68k-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ # The situation for MiNT is a little confusing. The machine name | |
+ # can be virtually everything (everything which is not | |
+ # "atarist" or "atariste" at least should have a processor | |
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT" | |
+ # to the lowercase version "mint" (or "freemint"). Finally | |
+ # the system name "TOS" denotes a system which is actually not | |
+ # MiNT. But MiNT is downward compatible to TOS, so this should | |
+ # be no problem. | |
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) | |
+ echo m68k-atari-mint${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) | |
+ echo m68k-atari-mint${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) | |
+ echo m68k-atari-mint${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) | |
+ echo m68k-milan-mint${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) | |
+ echo m68k-hades-mint${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) | |
+ echo m68k-unknown-mint${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ sun3*:OpenBSD:*:*) | |
+ echo m68k-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ mac68k:OpenBSD:*:*) | |
+ echo m68k-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ mvme68k:OpenBSD:*:*) | |
+ echo m68k-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ mvme88k:OpenBSD:*:*) | |
+ echo m88k-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ powerpc:machten:*:*) | |
+ echo powerpc-apple-machten${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ RISC*:Mach:*:*) | |
+ echo mips-dec-mach_bsd4.3 | |
+ exit 0 ;; | |
+ RISC*:ULTRIX:*:*) | |
+ echo mips-dec-ultrix${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ VAX*:ULTRIX*:*:*) | |
+ echo vax-dec-ultrix${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ 2020:CLIX:*:* | 2430:CLIX:*:*) | |
+ echo clipper-intergraph-clix${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ mips:*:*:UMIPS | mips:*:*:RISCos) | |
+ sed 's/^ //' << EOF >$dummy.c | |
+#ifdef __cplusplus | |
+#include <stdio.h> /* for printf() prototype */ | |
+ int main (int argc, char *argv[]) { | |
+#else | |
+ int main (argc, argv) int argc; char *argv[]; { | |
+#endif | |
+ #if defined (host_mips) && defined (MIPSEB) | |
+ #if defined (SYSTYPE_SYSV) | |
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); | |
+ #endif | |
+ #if defined (SYSTYPE_SVR4) | |
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); | |
+ #endif | |
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) | |
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); | |
+ #endif | |
+ #endif | |
+ exit (-1); | |
+ } | |
+EOF | |
+ $CC_FOR_BUILD $dummy.c -o $dummy \ | |
+ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'`… | |
+ && rm -f $dummy.c $dummy && exit 0 | |
+ rm -f $dummy.c $dummy | |
+ echo mips-mips-riscos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ Motorola:PowerMAX_OS:*:*) | |
+ echo powerpc-motorola-powermax | |
+ exit 0 ;; | |
+ Night_Hawk:Power_UNIX:*:*) | |
+ echo powerpc-harris-powerunix | |
+ exit 0 ;; | |
+ m88k:CX/UX:7*:*) | |
+ echo m88k-harris-cxux7 | |
+ exit 0 ;; | |
+ m88k:*:4*:R4*) | |
+ echo m88k-motorola-sysv4 | |
+ exit 0 ;; | |
+ m88k:*:3*:R3*) | |
+ echo m88k-motorola-sysv3 | |
+ exit 0 ;; | |
+ AViiON:dgux:*:*) | |
+ # DG/UX returns AViiON for all architectures | |
+ UNAME_PROCESSOR=`/usr/bin/uname -p` | |
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] | |
+ then | |
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ | |
+ [ ${TARGET_BINARY_INTERFACE}x = x ] | |
+ then | |
+ echo m88k-dg-dgux${UNAME_RELEASE} | |
+ else | |
+ echo m88k-dg-dguxbcs${UNAME_RELEASE} | |
+ fi | |
+ else | |
+ echo i586-dg-dgux${UNAME_RELEASE} | |
+ fi | |
+ exit 0 ;; | |
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3) | |
+ echo m88k-dolphin-sysv3 | |
+ exit 0 ;; | |
+ M88*:*:R3*:*) | |
+ # Delta 88k system running SVR3 | |
+ echo m88k-motorola-sysv3 | |
+ exit 0 ;; | |
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) | |
+ echo m88k-tektronix-sysv3 | |
+ exit 0 ;; | |
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) | |
+ echo m68k-tektronix-bsd | |
+ exit 0 ;; | |
+ *:IRIX*:*:*) | |
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` | |
+ exit 0 ;; | |
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. | |
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id | |
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' | |
+ i*86:AIX:*:*) | |
+ echo i386-ibm-aix | |
+ exit 0 ;; | |
+ ia64:AIX:*:*) | |
+ if [ -x /usr/bin/oslevel ] ; then | |
+ IBM_REV=`/usr/bin/oslevel` | |
+ else | |
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} | |
+ fi | |
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} | |
+ exit 0 ;; | |
+ *:AIX:2:3) | |
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then | |
+ sed 's/^ //' << EOF >$dummy.c | |
+ #include <sys/systemcfg.h> | |
+ | |
+ main() | |
+ { | |
+ if (!__power_pc()) | |
+ exit(1); | |
+ puts("powerpc-ibm-aix3.2.5"); | |
+ exit(0); | |
+ } | |
+EOF | |
+ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c… | |
+ rm -f $dummy.c $dummy | |
+ echo rs6000-ibm-aix3.2.5 | |
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then | |
+ echo rs6000-ibm-aix3.2.4 | |
+ else | |
+ echo rs6000-ibm-aix3.2 | |
+ fi | |
+ exit 0 ;; | |
+ *:AIX:*:[45]) | |
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | a… | |
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1;… | |
+ IBM_ARCH=rs6000 | |
+ else | |
+ IBM_ARCH=powerpc | |
+ fi | |
+ if [ -x /usr/bin/oslevel ] ; then | |
+ IBM_REV=`/usr/bin/oslevel` | |
+ else | |
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} | |
+ fi | |
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV} | |
+ exit 0 ;; | |
+ *:AIX:*:*) | |
+ echo rs6000-ibm-aix | |
+ exit 0 ;; | |
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*) | |
+ echo romp-ibm-bsd4.4 | |
+ exit 0 ;; | |
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and | |
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to | |
+ exit 0 ;; # report: romp-ibm BSD 4.3 | |
+ *:BOSX:*:*) | |
+ echo rs6000-bull-bosx | |
+ exit 0 ;; | |
+ DPX/2?00:B.O.S.:*:*) | |
+ echo m68k-bull-sysv3 | |
+ exit 0 ;; | |
+ 9000/[34]??:4.3bsd:1.*:*) | |
+ echo m68k-hp-bsd | |
+ exit 0 ;; | |
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) | |
+ echo m68k-hp-bsd4.4 | |
+ exit 0 ;; | |
+ 9000/[34678]??:HP-UX:*:*) | |
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` | |
+ case "${UNAME_MACHINE}" in | |
+ 9000/31? ) HP_ARCH=m68000 ;; | |
+ 9000/[34]?? ) HP_ARCH=m68k ;; | |
+ 9000/[678][0-9][0-9]) | |
+ case "${HPUX_REV}" in | |
+ 11.[0-9][0-9]) | |
+ if [ -x /usr/bin/getconf ]; then | |
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/nul… | |
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/nul… | |
+ case "${sc_cpu_version}" in | |
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 | |
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 | |
+ 532) # CPU_PA_RISC2_0 | |
+ case "${sc_kernel_bits}" in | |
+ 32) HP_ARCH="hppa2.0n" ;; | |
+ 64) HP_ARCH="hppa2.0w" ;; | |
+ esac ;; | |
+ esac | |
+ fi ;; | |
+ esac | |
+ if [ "${HP_ARCH}" = "" ]; then | |
+ sed 's/^ //' << EOF >$dummy.c | |
+ | |
+ #define _HPUX_SOURCE | |
+ #include <stdlib.h> | |
+ #include <unistd.h> | |
+ | |
+ int main () | |
+ { | |
+ #if defined(_SC_KERNEL_BITS) | |
+ long bits = sysconf(_SC_KERNEL_BITS); | |
+ #endif | |
+ long cpu = sysconf (_SC_CPU_VERSION); | |
+ | |
+ switch (cpu) | |
+ { | |
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; | |
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; | |
+ case CPU_PA_RISC2_0: | |
+ #if defined(_SC_KERNEL_BITS) | |
+ switch (bits) | |
+ { | |
+ case 64: puts ("hppa2.0w"); break; | |
+ case 32: puts ("hppa2.0n"); break; | |
+ default: puts ("hppa2.0"); break; | |
+ } break; | |
+ #else /* !defined(_SC_KERNEL_BITS) */ | |
+ puts ("hppa2.0"); break; | |
+ #endif | |
+ default: puts ("hppa1.0"); break; | |
+ } | |
+ exit (0); | |
+ } | |
+EOF | |
+ (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./… | |
+ if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi | |
+ rm -f $dummy.c $dummy | |
+ fi ;; | |
+ esac | |
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV} | |
+ exit 0 ;; | |
+ ia64:HP-UX:*:*) | |
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` | |
+ echo ia64-hp-hpux${HPUX_REV} | |
+ exit 0 ;; | |
+ 3050*:HI-UX:*:*) | |
+ sed 's/^ //' << EOF >$dummy.c | |
+ #include <unistd.h> | |
+ int | |
+ main () | |
+ { | |
+ long cpu = sysconf (_SC_CPU_VERSION); | |
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns | |
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct | |
+ results, however. */ | |
+ if (CPU_IS_PA_RISC (cpu)) | |
+ { | |
+ switch (cpu) | |
+ { | |
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; | |
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; | |
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; | |
+ default: puts ("hppa-hitachi-hiuxwe2"); break; | |
+ } | |
+ } | |
+ else if (CPU_IS_HP_MC68K (cpu)) | |
+ puts ("m68k-hitachi-hiuxwe2"); | |
+ else puts ("unknown-hitachi-hiuxwe2"); | |
+ exit (0); | |
+ } | |
+EOF | |
+ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy … | |
+ rm -f $dummy.c $dummy | |
+ echo unknown-hitachi-hiuxwe2 | |
+ exit 0 ;; | |
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) | |
+ echo hppa1.1-hp-bsd | |
+ exit 0 ;; | |
+ 9000/8??:4.3bsd:*:*) | |
+ echo hppa1.0-hp-bsd | |
+ exit 0 ;; | |
+ *9??*:MPE/iX:*:*) | |
+ echo hppa1.0-hp-mpeix | |
+ exit 0 ;; | |
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) | |
+ echo hppa1.1-hp-osf | |
+ exit 0 ;; | |
+ hp8??:OSF1:*:*) | |
+ echo hppa1.0-hp-osf | |
+ exit 0 ;; | |
+ i*86:OSF1:*:*) | |
+ if [ -x /usr/sbin/sysversion ] ; then | |
+ echo ${UNAME_MACHINE}-unknown-osf1mk | |
+ else | |
+ echo ${UNAME_MACHINE}-unknown-osf1 | |
+ fi | |
+ exit 0 ;; | |
+ parisc*:Lites*:*:*) | |
+ echo hppa1.1-hp-lites | |
+ exit 0 ;; | |
+ hppa*:OpenBSD:*:*) | |
+ echo hppa-unknown-openbsd | |
+ exit 0 ;; | |
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) | |
+ echo c1-convex-bsd | |
+ exit 0 ;; | |
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) | |
+ if getsysinfo -f scalar_acc | |
+ then echo c32-convex-bsd | |
+ else echo c2-convex-bsd | |
+ fi | |
+ exit 0 ;; | |
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) | |
+ echo c34-convex-bsd | |
+ exit 0 ;; | |
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) | |
+ echo c38-convex-bsd | |
+ exit 0 ;; | |
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) | |
+ echo c4-convex-bsd | |
+ exit 0 ;; | |
+ CRAY*X-MP:*:*:*) | |
+ echo xmp-cray-unicos | |
+ exit 0 ;; | |
+ CRAY*Y-MP:*:*:*) | |
+ echo ymp-cray-unicos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ CRAY*[A-Z]90:*:*:*) | |
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | |
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ | |
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ | |
+ exit 0 ;; | |
+ CRAY*TS:*:*:*) | |
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
+ exit 0 ;; | |
+ CRAY*T3D:*:*:*) | |
+ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
+ exit 0 ;; | |
+ CRAY*T3E:*:*:*) | |
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
+ exit 0 ;; | |
+ CRAY*SV1:*:*:*) | |
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | |
+ exit 0 ;; | |
+ CRAY-2:*:*:*) | |
+ echo cray2-cray-unicos | |
+ exit 0 ;; | |
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) | |
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijkl… | |
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklm… | |
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` | |
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" | |
+ exit 0 ;; | |
+ hp300:OpenBSD:*:*) | |
+ echo m68k-unknown-openbsd${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) | |
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ sparc*:BSD/OS:*:*) | |
+ echo sparc-unknown-bsdi${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:BSD/OS:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:FreeBSD:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/… | |
+ exit 0 ;; | |
+ *:OpenBSD:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/… | |
+ exit 0 ;; | |
+ i*:CYGWIN*:*) | |
+ echo ${UNAME_MACHINE}-pc-cygwin | |
+ exit 0 ;; | |
+ i*:MINGW*:*) | |
+ echo ${UNAME_MACHINE}-pc-mingw32 | |
+ exit 0 ;; | |
+ i*:PW*:*) | |
+ echo ${UNAME_MACHINE}-pc-pw32 | |
+ exit 0 ;; | |
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*) | |
+ # How do we know it's Interix rather than the generic POSIX subsystem? | |
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we | |
+ # UNAME_MACHINE based on the output of uname instead of i386? | |
+ echo i386-pc-interix | |
+ exit 0 ;; | |
+ i*:UWIN*:*) | |
+ echo ${UNAME_MACHINE}-pc-uwin | |
+ exit 0 ;; | |
+ p*:CYGWIN*:*) | |
+ echo powerpcle-unknown-cygwin | |
+ exit 0 ;; | |
+ prep*:SunOS:5.*:*) | |
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*/… | |
+ exit 0 ;; | |
+ *:GNU:*:*) | |
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${U… | |
+ exit 0 ;; | |
+ i*86:Minix:*:*) | |
+ echo ${UNAME_MACHINE}-pc-minix | |
+ exit 0 ;; | |
+ arm*:Linux:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu | |
+ exit 0 ;; | |
+ ia64:Linux:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-linux | |
+ exit 0 ;; | |
+ m68*:Linux:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu | |
+ exit 0 ;; | |
+ mips:Linux:*:*) | |
+ cat >$dummy.c <<EOF | |
+#ifdef __cplusplus | |
+#include <stdio.h> /* for printf() prototype */ | |
+int main (int argc, char *argv[]) { | |
+#else | |
+int main (argc, argv) int argc; char *argv[]; { | |
+#endif | |
+#ifdef __MIPSEB__ | |
+ printf ("%s-unknown-linux-gnu\n", argv[1]); | |
+#endif | |
+#ifdef __MIPSEL__ | |
+ printf ("%sel-unknown-linux-gnu\n", argv[1]); | |
+#endif | |
+ return 0; | |
+} | |
+EOF | |
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACH… | |
+ rm -f $dummy.c $dummy | |
+ ;; | |
+ ppc:Linux:*:*) | |
+ # Determine Lib Version | |
+ cat >$dummy.c <<EOF | |
+#include <features.h> | |
+#if defined(__GLIBC__) | |
+extern char __libc_version[]; | |
+extern char __libc_release[]; | |
+#endif | |
+main(argc, argv) | |
+ int argc; | |
+ char *argv[]; | |
+{ | |
+#if defined(__GLIBC__) | |
+ printf("%s %s\n", __libc_version, __libc_release); | |
+#else | |
+ printf("unknown\n"); | |
+#endif | |
+ return 0; | |
+} | |
+EOF | |
+ LIBC="" | |
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null | |
+ if test "$?" = 0 ; then | |
+ ./$dummy | grep 1\.99 > /dev/null | |
+ if test "$?" = 0 ; then LIBC="libc1" ; fi | |
+ fi | |
+ rm -f $dummy.c $dummy | |
+ echo powerpc-unknown-linux-gnu${LIBC} | |
+ exit 0 ;; | |
+ alpha:Linux:*:*) | |
+ cat <<EOF >$dummy.s | |
+ .data | |
+ \$Lformat: | |
+ .byte 37,100,45,37,120,10,0 # "%d-%x\n" | |
+ .text | |
+ .globl main | |
+ .align 4 | |
+ .ent main | |
+ main: | |
+ .frame \$30,16,\$26,0 | |
+ ldgp \$29,0(\$27) | |
+ .prologue 1 | |
+ .long 0x47e03d80 # implver \$0 | |
+ lda \$2,-1 | |
+ .long 0x47e20c21 # amask \$2,\$1 | |
+ lda \$16,\$Lformat | |
+ mov \$0,\$17 | |
+ not \$1,\$18 | |
+ jsr \$26,printf | |
+ ldgp \$29,0(\$26) | |
+ mov 0,\$16 | |
+ jsr \$26,exit | |
+ .end main | |
+EOF | |
+ LIBC="" | |
+ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null | |
+ if test "$?" = 0 ; then | |
+ case `./$dummy` in | |
+ 0-0) UNAME_MACHINE="alpha" ;; | |
+ 1-0) UNAME_MACHINE="alphaev5" ;; | |
+ 1-1) UNAME_MACHINE="alphaev56" ;; | |
+ 1-101) UNAME_MACHINE="alphapca56" ;; | |
+ 2-303) UNAME_MACHINE="alphaev6" ;; | |
+ 2-307) UNAME_MACHINE="alphaev67" ;; | |
+ esac | |
+ objdump --private-headers $dummy | \ | |
+ grep ld.so.1 > /dev/null | |
+ if test "$?" = 0 ; then | |
+ LIBC="libc1" | |
+ fi | |
+ fi | |
+ rm -f $dummy.s $dummy | |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} | |
+ exit 0 ;; | |
+ parisc:Linux:*:* | hppa:Linux:*:*) | |
+ # Look for CPU level | |
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in | |
+ PA7*) echo hppa1.1-unknown-linux-gnu ;; | |
+ PA8*) echo hppa2.0-unknown-linux-gnu ;; | |
+ *) echo hppa-unknown-linux-gnu ;; | |
+ esac | |
+ exit 0 ;; | |
+ parisc64:Linux:*:* | hppa64:Linux:*:*) | |
+ echo hppa64-unknown-linux-gnu | |
+ exit 0 ;; | |
+ s390:Linux:*:* | s390x:Linux:*:*) | |
+ echo ${UNAME_MACHINE}-ibm-linux | |
+ exit 0 ;; | |
+ sh*:Linux:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu | |
+ exit 0 ;; | |
+ sparc:Linux:*:* | sparc64:Linux:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu | |
+ exit 0 ;; | |
+ x86_64:Linux:*:*) | |
+ echo x86_64-unknown-linux-gnu | |
+ exit 0 ;; | |
+ i*86:Linux:*:*) | |
+ # The BFD linker knows what the default object file format is, so | |
+ # first see if it will tell us. cd to the root directory to prevent | |
+ # problems with other programs or directories called `ld' in the path. | |
+ ld_supported_emulations=`cd /; ld --help 2>&1 \ | |
+ | sed -ne '/supported emulations:/!d | |
+ s/[ ][ ]*/ /g | |
+ s/.*supported emulations: *// | |
+ s/ .*// | |
+ p'` | |
+ case "$ld_supported_emulations" in | |
+ i*86linux) | |
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout" | |
+ exit 0 | |
+ ;; | |
+ elf_i*86) | |
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" | |
+ ;; | |
+ i*86coff) | |
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff" | |
+ exit 0 | |
+ ;; | |
+ esac | |
+ # Either a pre-BFD a.out linker (linux-gnuoldld) | |
+ # or one that does not give us useful --help. | |
+ # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. | |
+ # If ld does not provide *any* "supported emulations:" | |
+ # that means it is gnuoldld. | |
+ test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-… | |
+ case "${UNAME_MACHINE}" in | |
+ i*86) | |
+ VENDOR=pc; | |
+ ;; | |
+ *) | |
+ VENDOR=unknown; | |
+ ;; | |
+ esac | |
+ # Determine whether the default compiler is a.out or elf | |
+ cat >$dummy.c <<EOF | |
+#include <features.h> | |
+#ifdef __cplusplus | |
+#include <stdio.h> /* for printf() prototype */ | |
+ int main (int argc, char *argv[]) { | |
+#else | |
+ int main (argc, argv) int argc; char *argv[]; { | |
+#endif | |
+#ifdef __ELF__ | |
+# ifdef __GLIBC__ | |
+# if __GLIBC__ >= 2 | |
+ printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); | |
+# else | |
+ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); | |
+# endif | |
+# else | |
+ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); | |
+# endif | |
+#else | |
+ printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); | |
+#endif | |
+ return 0; | |
+} | |
+EOF | |
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACH… | |
+ rm -f $dummy.c $dummy | |
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 | |
+ ;; | |
+# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions | |
+# are messed up and put the nodename in both sysname and nodename. | |
+ i*86:DYNIX/ptx:4*:*) | |
+ echo i386-sequent-sysv4 | |
+ exit 0 ;; | |
+ i*86:UNIX_SV:4.2MP:2.*) | |
+ # Unixware is an offshoot of SVR4, but it has its own version | |
+ # number series starting with 2... | |
+ # I am not positive that other SVR4 systems won't match this, | |
+ # I just have to hope. -- rms. | |
+ # Use sysv4.2uw... so that sysv4* matches it. | |
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} | |
+ exit 0 ;; | |
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) | |
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` | |
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then | |
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} | |
+ else | |
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} | |
+ fi | |
+ exit 0 ;; | |
+ i*86:*:5:7*) | |
+ # Fixed at (any) Pentium or better | |
+ UNAME_MACHINE=i586 | |
+ if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then | |
+ echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} | |
+ else | |
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} | |
+ fi | |
+ exit 0 ;; | |
+ i*86:*:3.2:*) | |
+ if test -f /usr/options/cb.name; then | |
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` | |
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL | |
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then | |
+ UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` | |
+ (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 | |
+ (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ | |
+ && UNAME_MACHINE=i586 | |
+ (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ | |
+ && UNAME_MACHINE=i686 | |
+ (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ | |
+ && UNAME_MACHINE=i686 | |
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL | |
+ else | |
+ echo ${UNAME_MACHINE}-pc-sysv32 | |
+ fi | |
+ exit 0 ;; | |
+ i*86:*DOS:*:*) | |
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp | |
+ exit 0 ;; | |
+ pc:*:*:*) | |
+ # Left here for compatibility: | |
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about | |
+ # the processor, so we play safe by assuming i386. | |
+ echo i386-pc-msdosdjgpp | |
+ exit 0 ;; | |
+ Intel:Mach:3*:*) | |
+ echo i386-pc-mach3 | |
+ exit 0 ;; | |
+ paragon:*:*:*) | |
+ echo i860-intel-osf1 | |
+ exit 0 ;; | |
+ i860:*:4.*:*) # i860-SVR4 | |
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then | |
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 | |
+ else # Add other i860-SVR4 vendors below as they are discovered. | |
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 | |
+ fi | |
+ exit 0 ;; | |
+ mini*:CTIX:SYS*5:*) | |
+ # "miniframe" | |
+ echo m68010-convergent-sysv | |
+ exit 0 ;; | |
+ M68*:*:R3V[567]*:*) | |
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; | |
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:… | |
+ OS_REL='' | |
+ test -r /etc/.relid \ | |
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` | |
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | |
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 | |
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ | |
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; | |
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) | |
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | |
+ && echo i486-ncr-sysv4 && exit 0 ;; | |
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) | |
+ echo m68k-unknown-lynxos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ mc68030:UNIX_System_V:4.*:*) | |
+ echo m68k-atari-sysv4 | |
+ exit 0 ;; | |
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) | |
+ echo i386-unknown-lynxos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ TSUNAMI:LynxOS:2.*:*) | |
+ echo sparc-unknown-lynxos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ rs6000:LynxOS:2.*:*) | |
+ echo rs6000-unknown-lynxos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) | |
+ echo powerpc-unknown-lynxos${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ SM[BE]S:UNIX_SV:*:*) | |
+ echo mips-dde-sysv${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ RM*:ReliantUNIX-*:*:*) | |
+ echo mips-sni-sysv4 | |
+ exit 0 ;; | |
+ RM*:SINIX-*:*:*) | |
+ echo mips-sni-sysv4 | |
+ exit 0 ;; | |
+ *:SINIX-*:*:*) | |
+ if uname -p 2>/dev/null >/dev/null ; then | |
+ UNAME_MACHINE=`(uname -p) 2>/dev/null` | |
+ echo ${UNAME_MACHINE}-sni-sysv4 | |
+ else | |
+ echo ns32k-sni-sysv | |
+ fi | |
+ exit 0 ;; | |
+ PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort | |
+ # says <[email protected]> | |
+ echo i586-unisys-sysv4 | |
+ exit 0 ;; | |
+ *:UNIX_System_V:4*:FTX*) | |
+ # From Gerald Hewes <[email protected]>. | |
+ # How about differentiating between stratus architectures? -djm | |
+ echo hppa1.1-stratus-sysv4 | |
+ exit 0 ;; | |
+ *:*:*:FTX*) | |
+ # From [email protected]. | |
+ echo i860-stratus-sysv4 | |
+ exit 0 ;; | |
+ mc68*:A/UX:*:*) | |
+ echo m68k-apple-aux${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ news*:NEWS-OS:6*:*) | |
+ echo mips-sony-newsos6 | |
+ exit 0 ;; | |
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) | |
+ if [ -d /usr/nec ]; then | |
+ echo mips-nec-sysv${UNAME_RELEASE} | |
+ else | |
+ echo mips-unknown-sysv${UNAME_RELEASE} | |
+ fi | |
+ exit 0 ;; | |
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. | |
+ echo powerpc-be-beos | |
+ exit 0 ;; | |
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. | |
+ echo powerpc-apple-beos | |
+ exit 0 ;; | |
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. | |
+ echo i586-pc-beos | |
+ exit 0 ;; | |
+ SX-4:SUPER-UX:*:*) | |
+ echo sx4-nec-superux${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ SX-5:SUPER-UX:*:*) | |
+ echo sx5-nec-superux${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ Power*:Rhapsody:*:*) | |
+ echo powerpc-apple-rhapsody${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:Rhapsody:*:*) | |
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:Darwin:*:*) | |
+ echo `uname -p`-apple-darwin${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:procnto*:*:* | *:QNX:[0123456789]*:*) | |
+ if test "${UNAME_MACHINE}" = "x86pc"; then | |
+ UNAME_MACHINE=pc | |
+ fi | |
+ echo `uname -p`-${UNAME_MACHINE}-nto-qnx | |
+ exit 0 ;; | |
+ *:QNX:*:4*) | |
+ echo i386-pc-qnx | |
+ exit 0 ;; | |
+ NSR-[KW]:NONSTOP_KERNEL:*:*) | |
+ echo nsr-tandem-nsk${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:NonStop-UX:*:*) | |
+ echo mips-compaq-nonstopux | |
+ exit 0 ;; | |
+ BS2000:POSIX*:*:*) | |
+ echo bs2000-siemens-sysv | |
+ exit 0 ;; | |
+ DS/*:UNIX_System_V:*:*) | |
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} | |
+ exit 0 ;; | |
+ *:Plan9:*:*) | |
+ # "uname -m" is not consistent, so use $cputype instead. 386 | |
+ # is converted to i386 for consistency with other x86 | |
+ # operating systems. | |
+ if test "$cputype" = "386"; then | |
+ UNAME_MACHINE=i386 | |
+ else | |
+ UNAME_MACHINE="$cputype" | |
+ fi | |
+ echo ${UNAME_MACHINE}-unknown-plan9 | |
+ exit 0 ;; | |
+ i*86:OS/2:*:*) | |
+ # If we were able to find `uname', then EMX Unix compatibility | |
+ # is probably installed. | |
+ echo ${UNAME_MACHINE}-pc-os2-emx | |
+ exit 0 ;; | |
+ *:TOPS-10:*:*) | |
+ echo pdp10-unknown-tops10 | |
+ exit 0 ;; | |
+ *:TENEX:*:*) | |
+ echo pdp10-unknown-tenex | |
+ exit 0 ;; | |
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) | |
+ echo pdp10-dec-tops20 | |
+ exit 0 ;; | |
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) | |
+ echo pdp10-xkl-tops20 | |
+ exit 0 ;; | |
+ *:TOPS-20:*:*) | |
+ echo pdp10-unknown-tops20 | |
+ exit 0 ;; | |
+ *:ITS:*:*) | |
+ echo pdp10-unknown-its | |
+ exit 0 ;; | |
+esac | |
+ | |
+#echo '(No uname command or uname output not recognized.)' 1>&2 | |
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 | |
+ | |
+cat >$dummy.c <<EOF | |
+#ifdef _SEQUENT_ | |
+# include <sys/types.h> | |
+# include <sys/utsname.h> | |
+#endif | |
+main () | |
+{ | |
+#if defined (sony) | |
+#if defined (MIPSEB) | |
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, | |
+ I don't know.... */ | |
+ printf ("mips-sony-bsd\n"); exit (0); | |
+#else | |
+#include <sys/param.h> | |
+ printf ("m68k-sony-newsos%s\n", | |
+#ifdef NEWSOS4 | |
+ "4" | |
+#else | |
+ "" | |
+#endif | |
+ ); exit (0); | |
+#endif | |
+#endif | |
+ | |
+#if defined (__arm) && defined (__acorn) && defined (__unix) | |
+ printf ("arm-acorn-riscix"); exit (0); | |
+#endif | |
+ | |
+#if defined (hp300) && !defined (hpux) | |
+ printf ("m68k-hp-bsd\n"); exit (0); | |
+#endif | |
+ | |
+#if defined (NeXT) | |
+#if !defined (__ARCHITECTURE__) | |
+#define __ARCHITECTURE__ "m68k" | |
+#endif | |
+ int version; | |
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; | |
+ if (version < 4) | |
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); | |
+ else | |
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); | |
+ exit (0); | |
+#endif | |
+ | |
+#if defined (MULTIMAX) || defined (n16) | |
+#if defined (UMAXV) | |
+ printf ("ns32k-encore-sysv\n"); exit (0); | |
+#else | |
+#if defined (CMU) | |
+ printf ("ns32k-encore-mach\n"); exit (0); | |
+#else | |
+ printf ("ns32k-encore-bsd\n"); exit (0); | |
+#endif | |
+#endif | |
+#endif | |
+ | |
+#if defined (__386BSD__) | |
+ printf ("i386-pc-bsd\n"); exit (0); | |
+#endif | |
+ | |
+#if defined (sequent) | |
+#if defined (i386) | |
+ printf ("i386-sequent-dynix\n"); exit (0); | |
+#endif | |
+#if defined (ns32000) | |
+ printf ("ns32k-sequent-dynix\n"); exit (0); | |
+#endif | |
+#endif | |
+ | |
+#if defined (_SEQUENT_) | |
+ struct utsname un; | |
+ | |
+ uname(&un); | |
+ | |
+ if (strncmp(un.version, "V2", 2) == 0) { | |
+ printf ("i386-sequent-ptx2\n"); exit (0); | |
+ } | |
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ | |
+ printf ("i386-sequent-ptx1\n"); exit (0); | |
+ } | |
+ printf ("i386-sequent-ptx\n"); exit (0); | |
+ | |
+#endif | |
+ | |
+#if defined (vax) | |
+# if !defined (ultrix) | |
+# include <sys/param.h> | |
+# if defined (BSD) | |
+# if BSD == 43 | |
+ printf ("vax-dec-bsd4.3\n"); exit (0); | |
+# else | |
+# if BSD == 199006 | |
+ printf ("vax-dec-bsd4.3reno\n"); exit (0); | |
+# else | |
+ printf ("vax-dec-bsd\n"); exit (0); | |
+# endif | |
+# endif | |
+# else | |
+ printf ("vax-dec-bsd\n"); exit (0); | |
+# endif | |
+# else | |
+ printf ("vax-dec-ultrix\n"); exit (0); | |
+# endif | |
+#endif | |
+ | |
+#if defined (alliant) && defined (i860) | |
+ printf ("i860-alliant-bsd\n"); exit (0); | |
+#endif | |
+ | |
+ exit (1); | |
+} | |
+EOF | |
+ | |
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $du… | |
+rm -f $dummy.c $dummy | |
+ | |
+# Apollos put the system type in the environment. | |
+ | |
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } | |
+ | |
+# Convex versions that predate uname can use getsysinfo(1) | |
+ | |
+if [ -x /usr/convex/getsysinfo ] | |
+then | |
+ case `getsysinfo -f cpu_type` in | |
+ c1*) | |
+ echo c1-convex-bsd | |
+ exit 0 ;; | |
+ c2*) | |
+ if getsysinfo -f scalar_acc | |
+ then echo c32-convex-bsd | |
+ else echo c2-convex-bsd | |
+ fi | |
+ exit 0 ;; | |
+ c34*) | |
+ echo c34-convex-bsd | |
+ exit 0 ;; | |
+ c38*) | |
+ echo c38-convex-bsd | |
+ exit 0 ;; | |
+ c4*) | |
+ echo c4-convex-bsd | |
+ exit 0 ;; | |
+ esac | |
+fi | |
+ | |
+cat >&2 <<EOF | |
+$0: unable to guess system type | |
+ | |
+This script, last modified $timestamp, has failed to recognize | |
+the operating system you are using. It is advised that you | |
+download the most up to date version of the config scripts from | |
+ | |
+ ftp://ftp.gnu.org/pub/gnu/config/ | |
+ | |
+If the version you run ($0) is already up to date, please | |
+send the following data and any information you think might be | |
+pertinent to <[email protected]> in order to provide the needed | |
+information to handle your system. | |
+ | |
+config.guess timestamp = $timestamp | |
+ | |
+uname -m = `(uname -m) 2>/dev/null || echo unknown` | |
+uname -r = `(uname -r) 2>/dev/null || echo unknown` | |
+uname -s = `(uname -s) 2>/dev/null || echo unknown` | |
+uname -v = `(uname -v) 2>/dev/null || echo unknown` | |
+ | |
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` | |
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null` | |
+ | |
+hostinfo = `(hostinfo) 2>/dev/null` | |
+/bin/universe = `(/bin/universe) 2>/dev/null` | |
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` | |
+/bin/arch = `(/bin/arch) 2>/dev/null` | |
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` | |
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` | |
+ | |
+UNAME_MACHINE = ${UNAME_MACHINE} | |
+UNAME_RELEASE = ${UNAME_RELEASE} | |
+UNAME_SYSTEM = ${UNAME_SYSTEM} | |
+UNAME_VERSION = ${UNAME_VERSION} | |
+EOF | |
+ | |
+exit 1 | |
+ | |
+# Local variables: | |
+# eval: (add-hook 'write-file-hooks 'time-stamp) | |
+# time-stamp-start: "timestamp='" | |
+# time-stamp-format: "%:y-%02m-%02d" | |
+# time-stamp-end: "'" | |
+# End: | |
diff --git a/config.h.in b/config.h.in | |
t@@ -31,9 +31,6 @@ | |
/* Define to `long' if <sys/types.h> doesn't define. */ | |
#undef off_t | |
-/* Define if you need to in order for stat and other things to work. */ | |
-#undef _POSIX_SOURCE | |
- | |
/* Define if the setvbuf function takes the buffering type as its second | |
argument and the buffer pointer as the third, as on System V | |
before release 3. */ | |
t@@ -82,12 +79,6 @@ | |
(i.e. >= 1.2.10) */ | |
#undef HAVE_FIXED_GTK | |
-#undef ENABLE_NLS | |
-#undef HAVE_CATGETS | |
-#undef HAVE_GETTEXT | |
-#undef HAVE_LC_MESSAGES | |
-#undef HAVE_STPCPY | |
- | |
/* The number of bytes in a long long. */ | |
#undef SIZEOF_LONG_LONG | |
t@@ -103,9 +94,24 @@ | |
/* Define if you have the dcgettext function. */ | |
#undef HAVE_DCGETTEXT | |
+/* Define if you have the feof_unlocked function. */ | |
+#undef HAVE_FEOF_UNLOCKED | |
+ | |
+/* Define if you have the fgets_unlocked function. */ | |
+#undef HAVE_FGETS_UNLOCKED | |
+ | |
/* Define if you have the getcwd function. */ | |
#undef HAVE_GETCWD | |
+/* Define if you have the getegid function. */ | |
+#undef HAVE_GETEGID | |
+ | |
+/* Define if you have the geteuid function. */ | |
+#undef HAVE_GETEUID | |
+ | |
+/* Define if you have the getgid function. */ | |
+#undef HAVE_GETGID | |
+ | |
/* Define if you have the gethostbyname function. */ | |
#undef HAVE_GETHOSTBYNAME | |
t@@ -115,6 +121,12 @@ | |
/* Define if you have the getpagesize function. */ | |
#undef HAVE_GETPAGESIZE | |
+/* Define if you have the getuid function. */ | |
+#undef HAVE_GETUID | |
+ | |
+/* Define if you have the mempcpy function. */ | |
+#undef HAVE_MEMPCPY | |
+ | |
/* Define if you have the munmap function. */ | |
#undef HAVE_MUNMAP | |
t@@ -148,6 +160,12 @@ | |
/* Define if you have the strstr function. */ | |
#undef HAVE_STRSTR | |
+/* Define if you have the strtoul function. */ | |
+#undef HAVE_STRTOUL | |
+ | |
+/* Define if you have the tsearch function. */ | |
+#undef HAVE_TSEARCH | |
+ | |
/* Define if you have the <argz.h> header file. */ | |
#undef HAVE_ARGZ_H | |
t@@ -166,6 +184,9 @@ | |
/* Define if you have the <nl_types.h> header file. */ | |
#undef HAVE_NL_TYPES_H | |
+/* Define if you have the <stddef.h> header file. */ | |
+#undef HAVE_STDDEF_H | |
+ | |
/* Define if you have the <stdlib.h> header file. */ | |
#undef HAVE_STDLIB_H | |
t@@ -187,9 +208,6 @@ | |
/* Define if you have the curses library (-lcurses). */ | |
#undef HAVE_LIBCURSES | |
-/* Define if you have the i library (-li). */ | |
-#undef HAVE_LIBI | |
- | |
/* Define if you have the ncurses library (-lncurses). */ | |
#undef HAVE_LIBNCURSES | |
t@@ -199,3 +217,22 @@ | |
/* Version number of package */ | |
#undef VERSION | |
+/* Define if you have the iconv() function. */ | |
+#undef HAVE_ICONV | |
+ | |
+/* Define as const if the declaration of iconv() needs const. */ | |
+#undef ICONV_CONST | |
+ | |
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ | |
+#undef HAVE_LANGINFO_CODESET | |
+ | |
+/* Define if your <locale.h> file defines LC_MESSAGES. */ | |
+#undef HAVE_LC_MESSAGES | |
+ | |
+/* Define to 1 if translation of program messages to the user's native language | |
+ is requested. */ | |
+#undef ENABLE_NLS | |
+ | |
+/* Define if the GNU gettext() function is already present or preinstalled. */ | |
+#undef HAVE_GETTEXT | |
+ | |
diff --git a/config.sub b/config.sub | |
t@@ -0,0 +1,1362 @@ | |
+#! /bin/sh | |
+# Configuration validation subroutine script. | |
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 | |
+# Free Software Foundation, Inc. | |
+ | |
+timestamp='2001-04-20' | |
+ | |
+# This file is (in principle) common to ALL GNU software. | |
+# The presence of a machine in this file suggests that SOME GNU software | |
+# can handle that machine. It does not imply ALL GNU software can. | |
+# | |
+# This file is free software; you can redistribute it and/or modify | |
+# it under the terms of the GNU General Public License as published by | |
+# the Free Software Foundation; either version 2 of the License, or | |
+# (at your option) any later version. | |
+# | |
+# This program is distributed in the hope that it will be useful, | |
+# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+# GNU General Public License for more details. | |
+# | |
+# You should have received a copy of the GNU General Public License | |
+# along with this program; if not, write to the Free Software | |
+# Foundation, Inc., 59 Temple Place - Suite 330, | |
+# Boston, MA 02111-1307, USA. | |
+ | |
+# As a special exception to the GNU General Public License, if you | |
+# distribute this file as part of a program that contains a | |
+# configuration script generated by Autoconf, you may include it under | |
+# the same distribution terms that you use for the rest of that program. | |
+ | |
+# Please send patches to <[email protected]>. | |
+# | |
+# Configuration subroutine to validate and canonicalize a configuration type. | |
+# Supply the specified configuration type as an argument. | |
+# If it is invalid, we print an error message on stderr and exit with code 1. | |
+# Otherwise, we print the canonical config type on stdout and succeed. | |
+ | |
+# This file is supposed to be the same for all GNU packages | |
+# and recognize all the CPU types, system types and aliases | |
+# that are meaningful with *any* GNU software. | |
+# Each package is responsible for reporting which valid configurations | |
+# it does not support. The user should be able to distinguish | |
+# a failure to support a valid configuration from a meaningless | |
+# configuration. | |
+ | |
+# The goal of this file is to map all the various variations of a given | |
+# machine specification into a single specification in the form: | |
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM | |
+# or in some cases, the newer four-part form: | |
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM | |
+# It is wrong to echo any other type of specification. | |
+ | |
+me=`echo "$0" | sed -e 's,.*/,,'` | |
+ | |
+usage="\ | |
+Usage: $0 [OPTION] CPU-MFR-OPSYS | |
+ $0 [OPTION] ALIAS | |
+ | |
+Canonicalize a configuration name. | |
+ | |
+Operation modes: | |
+ -h, --help print this help, then exit | |
+ -t, --time-stamp print date of last modification, then exit | |
+ -v, --version print version number, then exit | |
+ | |
+Report bugs and patches to <[email protected]>." | |
+ | |
+version="\ | |
+GNU config.sub ($timestamp) | |
+ | |
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 | |
+Free Software Foundation, Inc. | |
+ | |
+This is free software; see the source for copying conditions. There is NO | |
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | |
+ | |
+help=" | |
+Try \`$me --help' for more information." | |
+ | |
+# Parse command line | |
+while test $# -gt 0 ; do | |
+ case $1 in | |
+ --time-stamp | --time* | -t ) | |
+ echo "$timestamp" ; exit 0 ;; | |
+ --version | -v ) | |
+ echo "$version" ; exit 0 ;; | |
+ --help | --h* | -h ) | |
+ echo "$usage"; exit 0 ;; | |
+ -- ) # Stop option processing | |
+ shift; break ;; | |
+ - ) # Use stdin as input. | |
+ break ;; | |
+ -* ) | |
+ echo "$me: invalid option $1$help" | |
+ exit 1 ;; | |
+ | |
+ *local*) | |
+ # First pass through any local machine types. | |
+ echo $1 | |
+ exit 0;; | |
+ | |
+ * ) | |
+ break ;; | |
+ esac | |
+done | |
+ | |
+case $# in | |
+ 0) echo "$me: missing argument$help" >&2 | |
+ exit 1;; | |
+ 1) ;; | |
+ *) echo "$me: too many arguments$help" >&2 | |
+ exit 1;; | |
+esac | |
+ | |
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). | |
+# Here we must recognize all the valid KERNEL-OS combinations. | |
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` | |
+case $maybe_os in | |
+ nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*) | |
+ os=-$maybe_os | |
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` | |
+ ;; | |
+ *) | |
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'` | |
+ if [ $basic_machine != $1 ] | |
+ then os=`echo $1 | sed 's/.*-/-/'` | |
+ else os=; fi | |
+ ;; | |
+esac | |
+ | |
+### Let's recognize common machines as not being operating systems so | |
+### that things like config.sub decstation-3100 work. We also | |
+### recognize some manufacturers as not being operating systems, so we | |
+### can provide default operating systems below. | |
+case $os in | |
+ -sun*os*) | |
+ # Prevent following clause from handling this invalid input. | |
+ ;; | |
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ | |
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ | |
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ | |
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ | |
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ | |
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ | |
+ -apple | -axis) | |
+ os= | |
+ basic_machine=$1 | |
+ ;; | |
+ -sim | -cisco | -oki | -wec | -winbond) | |
+ os= | |
+ basic_machine=$1 | |
+ ;; | |
+ -scout) | |
+ ;; | |
+ -wrs) | |
+ os=-vxworks | |
+ basic_machine=$1 | |
+ ;; | |
+ -hiux*) | |
+ os=-hiuxwe2 | |
+ ;; | |
+ -sco5) | |
+ os=-sco3.2v5 | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
+ ;; | |
+ -sco4) | |
+ os=-sco3.2v4 | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
+ ;; | |
+ -sco3.2.[4-9]*) | |
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
+ ;; | |
+ -sco3.2v[4-9]*) | |
+ # Don't forget version if it is 3.2v4 or newer. | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
+ ;; | |
+ -sco*) | |
+ os=-sco3.2v2 | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
+ ;; | |
+ -udk*) | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
+ ;; | |
+ -isc) | |
+ os=-isc2.2 | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
+ ;; | |
+ -clix*) | |
+ basic_machine=clipper-intergraph | |
+ ;; | |
+ -isc*) | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | |
+ ;; | |
+ -lynx*) | |
+ os=-lynxos | |
+ ;; | |
+ -ptx*) | |
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` | |
+ ;; | |
+ -windowsnt*) | |
+ os=`echo $os | sed -e 's/windowsnt/winnt/'` | |
+ ;; | |
+ -psos*) | |
+ os=-psos | |
+ ;; | |
+ -mint | -mint[0-9]*) | |
+ basic_machine=m68k-atari | |
+ os=-mint | |
+ ;; | |
+esac | |
+ | |
+# Decode aliases for certain CPU-COMPANY combinations. | |
+case $basic_machine in | |
+ # Recognize the basic CPU types without company name. | |
+ # Some are omitted here because they have special meanings below. | |
+ tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ | |
+ | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | str… | |
+ | pyramid | mn10200 | mn10300 | tron | a29k \ | |
+ | 580 | i960 | h8300 \ | |
+ | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ | |
+ | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ | |
+ | hppa64 \ | |
+ | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ | |
+ | alphaev6[78] \ | |
+ | we32k | ns16k | clipper | i370 | sh | sh[34] \ | |
+ | powerpc | powerpcle \ | |
+ | 1750a | dsp16xx | pdp10 | pdp11 \ | |
+ | mips16 | mips64 | mipsel | mips64el \ | |
+ | mips64orion | mips64orionel | mipstx39 | mipstx39el \ | |
+ | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100e… | |
+ | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \ | |
+ | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \ | |
+ | v850 | c4x \ | |
+ | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \ | |
+ | pj | pjl | h8500) | |
+ basic_machine=$basic_machine-unknown | |
+ ;; | |
+ m6811 | m68hc11 | m6812 | m68hc12) | |
+ # Motorola 68HC11/12. | |
+ basic_machine=$basic_machine-unknown | |
+ os=-none | |
+ ;; | |
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65) | |
+ ;; | |
+ | |
+ # We use `pc' rather than `unknown' | |
+ # because (1) that's what they normally are, and | |
+ # (2) the word "unknown" tends to confuse beginning users. | |
+ i*86 | x86_64) | |
+ basic_machine=$basic_machine-pc | |
+ ;; | |
+ # Object if more than one company name word. | |
+ *-*-*) | |
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' … | |
+ exit 1 | |
+ ;; | |
+ # Recognize the basic CPU types with company name. | |
+ # FIXME: clean up the formatting here. | |
+ vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-… | |
+ | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ | |
+ | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ | |
+ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ | |
+ | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-… | |
+ | xmp-* | ymp-* \ | |
+ | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ | |
+ | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ | |
+ | hppa2.0n-* | hppa64-* \ | |
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ | |
+ | alphaev6[78]-* \ | |
+ | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ | |
+ | clipper-* | orion-* \ | |
+ | sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle… | |
+ | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \ | |
+ | mips16-* | mips64-* | mipsel-* \ | |
+ | mips64el-* | mips64orion-* | mips64orionel-* \ | |
+ | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4… | |
+ | mipstx39-* | mipstx39el-* | mcore-* \ | |
+ | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ | |
+ | [cjt]90-* \ | |
+ | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v… | |
+ | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-*… | |
+ | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*) | |
+ ;; | |
+ # Recognize the various machine names and aliases which stand | |
+ # for a CPU type and a company and sometimes even an OS. | |
+ 386bsd) | |
+ basic_machine=i386-unknown | |
+ os=-bsd | |
+ ;; | |
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) | |
+ basic_machine=m68000-att | |
+ ;; | |
+ 3b*) | |
+ basic_machine=we32k-att | |
+ ;; | |
+ a29khif) | |
+ basic_machine=a29k-amd | |
+ os=-udi | |
+ ;; | |
+ adobe68k) | |
+ basic_machine=m68010-adobe | |
+ os=-scout | |
+ ;; | |
+ alliant | fx80) | |
+ basic_machine=fx80-alliant | |
+ ;; | |
+ altos | altos3068) | |
+ basic_machine=m68k-altos | |
+ ;; | |
+ am29k) | |
+ basic_machine=a29k-none | |
+ os=-bsd | |
+ ;; | |
+ amdahl) | |
+ basic_machine=580-amdahl | |
+ os=-sysv | |
+ ;; | |
+ amiga | amiga-*) | |
+ basic_machine=m68k-unknown | |
+ ;; | |
+ amigaos | amigados) | |
+ basic_machine=m68k-unknown | |
+ os=-amigaos | |
+ ;; | |
+ amigaunix | amix) | |
+ basic_machine=m68k-unknown | |
+ os=-sysv4 | |
+ ;; | |
+ apollo68) | |
+ basic_machine=m68k-apollo | |
+ os=-sysv | |
+ ;; | |
+ apollo68bsd) | |
+ basic_machine=m68k-apollo | |
+ os=-bsd | |
+ ;; | |
+ aux) | |
+ basic_machine=m68k-apple | |
+ os=-aux | |
+ ;; | |
+ balance) | |
+ basic_machine=ns32k-sequent | |
+ os=-dynix | |
+ ;; | |
+ convex-c1) | |
+ basic_machine=c1-convex | |
+ os=-bsd | |
+ ;; | |
+ convex-c2) | |
+ basic_machine=c2-convex | |
+ os=-bsd | |
+ ;; | |
+ convex-c32) | |
+ basic_machine=c32-convex | |
+ os=-bsd | |
+ ;; | |
+ convex-c34) | |
+ basic_machine=c34-convex | |
+ os=-bsd | |
+ ;; | |
+ convex-c38) | |
+ basic_machine=c38-convex | |
+ os=-bsd | |
+ ;; | |
+ cray | ymp) | |
+ basic_machine=ymp-cray | |
+ os=-unicos | |
+ ;; | |
+ cray2) | |
+ basic_machine=cray2-cray | |
+ os=-unicos | |
+ ;; | |
+ [cjt]90) | |
+ basic_machine=${basic_machine}-cray | |
+ os=-unicos | |
+ ;; | |
+ crds | unos) | |
+ basic_machine=m68k-crds | |
+ ;; | |
+ cris | cris-* | etrax*) | |
+ basic_machine=cris-axis | |
+ ;; | |
+ da30 | da30-*) | |
+ basic_machine=m68k-da30 | |
+ ;; | |
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decsta… | |
+ basic_machine=mips-dec | |
+ ;; | |
+ delta | 3300 | motorola-3300 | motorola-delta \ | |
+ | 3300-motorola | delta-motorola) | |
+ basic_machine=m68k-motorola | |
+ ;; | |
+ delta88) | |
+ basic_machine=m88k-motorola | |
+ os=-sysv3 | |
+ ;; | |
+ dpx20 | dpx20-*) | |
+ basic_machine=rs6000-bull | |
+ os=-bosx | |
+ ;; | |
+ dpx2* | dpx2*-bull) | |
+ basic_machine=m68k-bull | |
+ os=-sysv3 | |
+ ;; | |
+ ebmon29k) | |
+ basic_machine=a29k-amd | |
+ os=-ebmon | |
+ ;; | |
+ elxsi) | |
+ basic_machine=elxsi-elxsi | |
+ os=-bsd | |
+ ;; | |
+ encore | umax | mmax) | |
+ basic_machine=ns32k-encore | |
+ ;; | |
+ es1800 | OSE68k | ose68k | ose | OSE) | |
+ basic_machine=m68k-ericsson | |
+ os=-ose | |
+ ;; | |
+ fx2800) | |
+ basic_machine=i860-alliant | |
+ ;; | |
+ genix) | |
+ basic_machine=ns32k-ns | |
+ ;; | |
+ gmicro) | |
+ basic_machine=tron-gmicro | |
+ os=-sysv | |
+ ;; | |
+ go32) | |
+ basic_machine=i386-pc | |
+ os=-go32 | |
+ ;; | |
+ h3050r* | hiux*) | |
+ basic_machine=hppa1.1-hitachi | |
+ os=-hiuxwe2 | |
+ ;; | |
+ h8300hms) | |
+ basic_machine=h8300-hitachi | |
+ os=-hms | |
+ ;; | |
+ h8300xray) | |
+ basic_machine=h8300-hitachi | |
+ os=-xray | |
+ ;; | |
+ h8500hms) | |
+ basic_machine=h8500-hitachi | |
+ os=-hms | |
+ ;; | |
+ harris) | |
+ basic_machine=m88k-harris | |
+ os=-sysv3 | |
+ ;; | |
+ hp300-*) | |
+ basic_machine=m68k-hp | |
+ ;; | |
+ hp300bsd) | |
+ basic_machine=m68k-hp | |
+ os=-bsd | |
+ ;; | |
+ hp300hpux) | |
+ basic_machine=m68k-hp | |
+ os=-hpux | |
+ ;; | |
+ hp3k9[0-9][0-9] | hp9[0-9][0-9]) | |
+ basic_machine=hppa1.0-hp | |
+ ;; | |
+ hp9k2[0-9][0-9] | hp9k31[0-9]) | |
+ basic_machine=m68000-hp | |
+ ;; | |
+ hp9k3[2-9][0-9]) | |
+ basic_machine=m68k-hp | |
+ ;; | |
+ hp9k6[0-9][0-9] | hp6[0-9][0-9]) | |
+ basic_machine=hppa1.0-hp | |
+ ;; | |
+ hp9k7[0-79][0-9] | hp7[0-79][0-9]) | |
+ basic_machine=hppa1.1-hp | |
+ ;; | |
+ hp9k78[0-9] | hp78[0-9]) | |
+ # FIXME: really hppa2.0-hp | |
+ basic_machine=hppa1.1-hp | |
+ ;; | |
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 … | |
+ # FIXME: really hppa2.0-hp | |
+ basic_machine=hppa1.1-hp | |
+ ;; | |
+ hp9k8[0-9][13679] | hp8[0-9][13679]) | |
+ basic_machine=hppa1.1-hp | |
+ ;; | |
+ hp9k8[0-9][0-9] | hp8[0-9][0-9]) | |
+ basic_machine=hppa1.0-hp | |
+ ;; | |
+ hppa-next) | |
+ os=-nextstep3 | |
+ ;; | |
+ hppaosf) | |
+ basic_machine=hppa1.1-hp | |
+ os=-osf | |
+ ;; | |
+ hppro) | |
+ basic_machine=hppa1.1-hp | |
+ os=-proelf | |
+ ;; | |
+ i370-ibm* | ibm*) | |
+ basic_machine=i370-ibm | |
+ ;; | |
+# I'm not sure what "Sysv32" means. Should this be sysv3.2? | |
+ i*86v32) | |
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | |
+ os=-sysv32 | |
+ ;; | |
+ i*86v4*) | |
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | |
+ os=-sysv4 | |
+ ;; | |
+ i*86v) | |
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | |
+ os=-sysv | |
+ ;; | |
+ i*86sol2) | |
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | |
+ os=-solaris2 | |
+ ;; | |
+ i386mach) | |
+ basic_machine=i386-mach | |
+ os=-mach | |
+ ;; | |
+ i386-vsta | vsta) | |
+ basic_machine=i386-unknown | |
+ os=-vsta | |
+ ;; | |
+ iris | iris4d) | |
+ basic_machine=mips-sgi | |
+ case $os in | |
+ -irix*) | |
+ ;; | |
+ *) | |
+ os=-irix4 | |
+ ;; | |
+ esac | |
+ ;; | |
+ isi68 | isi) | |
+ basic_machine=m68k-isi | |
+ os=-sysv | |
+ ;; | |
+ m88k-omron*) | |
+ basic_machine=m88k-omron | |
+ ;; | |
+ magnum | m3230) | |
+ basic_machine=mips-mips | |
+ os=-sysv | |
+ ;; | |
+ merlin) | |
+ basic_machine=ns32k-utek | |
+ os=-sysv | |
+ ;; | |
+ mingw32) | |
+ basic_machine=i386-pc | |
+ os=-mingw32 | |
+ ;; | |
+ miniframe) | |
+ basic_machine=m68000-convergent | |
+ ;; | |
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) | |
+ basic_machine=m68k-atari | |
+ os=-mint | |
+ ;; | |
+ mipsel*-linux*) | |
+ basic_machine=mipsel-unknown | |
+ os=-linux-gnu | |
+ ;; | |
+ mips*-linux*) | |
+ basic_machine=mips-unknown | |
+ os=-linux-gnu | |
+ ;; | |
+ mips3*-*) | |
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` | |
+ ;; | |
+ mips3*) | |
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`… | |
+ ;; | |
+ mmix*) | |
+ basic_machine=mmix-knuth | |
+ os=-mmixware | |
+ ;; | |
+ monitor) | |
+ basic_machine=m68k-rom68k | |
+ os=-coff | |
+ ;; | |
+ msdos) | |
+ basic_machine=i386-pc | |
+ os=-msdos | |
+ ;; | |
+ mvs) | |
+ basic_machine=i370-ibm | |
+ os=-mvs | |
+ ;; | |
+ ncr3000) | |
+ basic_machine=i486-ncr | |
+ os=-sysv4 | |
+ ;; | |
+ netbsd386) | |
+ basic_machine=i386-unknown | |
+ os=-netbsd | |
+ ;; | |
+ netwinder) | |
+ basic_machine=armv4l-rebel | |
+ os=-linux | |
+ ;; | |
+ news | news700 | news800 | news900) | |
+ basic_machine=m68k-sony | |
+ os=-newsos | |
+ ;; | |
+ news1000) | |
+ basic_machine=m68030-sony | |
+ os=-newsos | |
+ ;; | |
+ news-3600 | risc-news) | |
+ basic_machine=mips-sony | |
+ os=-newsos | |
+ ;; | |
+ necv70) | |
+ basic_machine=v70-nec | |
+ os=-sysv | |
+ ;; | |
+ next | m*-next ) | |
+ basic_machine=m68k-next | |
+ case $os in | |
+ -nextstep* ) | |
+ ;; | |
+ -ns2*) | |
+ os=-nextstep2 | |
+ ;; | |
+ *) | |
+ os=-nextstep3 | |
+ ;; | |
+ esac | |
+ ;; | |
+ nh3000) | |
+ basic_machine=m68k-harris | |
+ os=-cxux | |
+ ;; | |
+ nh[45]000) | |
+ basic_machine=m88k-harris | |
+ os=-cxux | |
+ ;; | |
+ nindy960) | |
+ basic_machine=i960-intel | |
+ os=-nindy | |
+ ;; | |
+ mon960) | |
+ basic_machine=i960-intel | |
+ os=-mon960 | |
+ ;; | |
+ nonstopux) | |
+ basic_machine=mips-compaq | |
+ os=-nonstopux | |
+ ;; | |
+ np1) | |
+ basic_machine=np1-gould | |
+ ;; | |
+ nsr-tandem) | |
+ basic_machine=nsr-tandem | |
+ ;; | |
+ op50n-* | op60c-*) | |
+ basic_machine=hppa1.1-oki | |
+ os=-proelf | |
+ ;; | |
+ OSE68000 | ose68000) | |
+ basic_machine=m68000-ericsson | |
+ os=-ose | |
+ ;; | |
+ os68k) | |
+ basic_machine=m68k-none | |
+ os=-os68k | |
+ ;; | |
+ pa-hitachi) | |
+ basic_machine=hppa1.1-hitachi | |
+ os=-hiuxwe2 | |
+ ;; | |
+ paragon) | |
+ basic_machine=i860-intel | |
+ os=-osf | |
+ ;; | |
+ pbd) | |
+ basic_machine=sparc-tti | |
+ ;; | |
+ pbb) | |
+ basic_machine=m68k-tti | |
+ ;; | |
+ pc532 | pc532-*) | |
+ basic_machine=ns32k-pc532 | |
+ ;; | |
+ pentium | p5 | k5 | k6 | nexgen) | |
+ basic_machine=i586-pc | |
+ ;; | |
+ pentiumpro | p6 | 6x86 | athlon) | |
+ basic_machine=i686-pc | |
+ ;; | |
+ pentiumii | pentium2) | |
+ basic_machine=i686-pc | |
+ ;; | |
+ pentium-* | p5-* | k5-* | k6-* | nexgen-*) | |
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` | |
+ ;; | |
+ pentiumpro-* | p6-* | 6x86-* | athlon-*) | |
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | |
+ ;; | |
+ pentiumii-* | pentium2-*) | |
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | |
+ ;; | |
+ pn) | |
+ basic_machine=pn-gould | |
+ ;; | |
+ power) basic_machine=power-ibm | |
+ ;; | |
+ ppc) basic_machine=powerpc-unknown | |
+ ;; | |
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-… | |
+ ;; | |
+ ppcle | powerpclittle | ppc-le | powerpc-little) | |
+ basic_machine=powerpcle-unknown | |
+ ;; | |
+ ppcle-* | powerpclittle-*) | |
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-/… | |
+ ;; | |
+ ps2) | |
+ basic_machine=i386-ibm | |
+ ;; | |
+ pw32) | |
+ basic_machine=i586-unknown | |
+ os=-pw32 | |
+ ;; | |
+ rom68k) | |
+ basic_machine=m68k-rom68k | |
+ os=-coff | |
+ ;; | |
+ rm[46]00) | |
+ basic_machine=mips-siemens | |
+ ;; | |
+ rtpc | rtpc-*) | |
+ basic_machine=romp-ibm | |
+ ;; | |
+ sa29200) | |
+ basic_machine=a29k-amd | |
+ os=-udi | |
+ ;; | |
+ sequent) | |
+ basic_machine=i386-sequent | |
+ ;; | |
+ sh) | |
+ basic_machine=sh-hitachi | |
+ os=-hms | |
+ ;; | |
+ sparclite-wrs) | |
+ basic_machine=sparclite-wrs | |
+ os=-vxworks | |
+ ;; | |
+ sps7) | |
+ basic_machine=m68k-bull | |
+ os=-sysv2 | |
+ ;; | |
+ spur) | |
+ basic_machine=spur-unknown | |
+ ;; | |
+ st2000) | |
+ basic_machine=m68k-tandem | |
+ ;; | |
+ stratus) | |
+ basic_machine=i860-stratus | |
+ os=-sysv4 | |
+ ;; | |
+ sun2) | |
+ basic_machine=m68000-sun | |
+ ;; | |
+ sun2os3) | |
+ basic_machine=m68000-sun | |
+ os=-sunos3 | |
+ ;; | |
+ sun2os4) | |
+ basic_machine=m68000-sun | |
+ os=-sunos4 | |
+ ;; | |
+ sun3os3) | |
+ basic_machine=m68k-sun | |
+ os=-sunos3 | |
+ ;; | |
+ sun3os4) | |
+ basic_machine=m68k-sun | |
+ os=-sunos4 | |
+ ;; | |
+ sun4os3) | |
+ basic_machine=sparc-sun | |
+ os=-sunos3 | |
+ ;; | |
+ sun4os4) | |
+ basic_machine=sparc-sun | |
+ os=-sunos4 | |
+ ;; | |
+ sun4sol2) | |
+ basic_machine=sparc-sun | |
+ os=-solaris2 | |
+ ;; | |
+ sun3 | sun3-*) | |
+ basic_machine=m68k-sun | |
+ ;; | |
+ sun4) | |
+ basic_machine=sparc-sun | |
+ ;; | |
+ sun386 | sun386i | roadrunner) | |
+ basic_machine=i386-sun | |
+ ;; | |
+ sv1) | |
+ basic_machine=sv1-cray | |
+ os=-unicos | |
+ ;; | |
+ symmetry) | |
+ basic_machine=i386-sequent | |
+ os=-dynix | |
+ ;; | |
+ t3e) | |
+ basic_machine=t3e-cray | |
+ os=-unicos | |
+ ;; | |
+ tic54x | c54x*) | |
+ basic_machine=tic54x-unknown | |
+ os=-coff | |
+ ;; | |
+ tx39) | |
+ basic_machine=mipstx39-unknown | |
+ ;; | |
+ tx39el) | |
+ basic_machine=mipstx39el-unknown | |
+ ;; | |
+ tower | tower-32) | |
+ basic_machine=m68k-ncr | |
+ ;; | |
+ udi29k) | |
+ basic_machine=a29k-amd | |
+ os=-udi | |
+ ;; | |
+ ultra3) | |
+ basic_machine=a29k-nyu | |
+ os=-sym1 | |
+ ;; | |
+ v810 | necv810) | |
+ basic_machine=v810-nec | |
+ os=-none | |
+ ;; | |
+ vaxv) | |
+ basic_machine=vax-dec | |
+ os=-sysv | |
+ ;; | |
+ vms) | |
+ basic_machine=vax-dec | |
+ os=-vms | |
+ ;; | |
+ vpp*|vx|vx-*) | |
+ basic_machine=f301-fujitsu | |
+ ;; | |
+ vxworks960) | |
+ basic_machine=i960-wrs | |
+ os=-vxworks | |
+ ;; | |
+ vxworks68) | |
+ basic_machine=m68k-wrs | |
+ os=-vxworks | |
+ ;; | |
+ vxworks29k) | |
+ basic_machine=a29k-wrs | |
+ os=-vxworks | |
+ ;; | |
+ w65*) | |
+ basic_machine=w65-wdc | |
+ os=-none | |
+ ;; | |
+ w89k-*) | |
+ basic_machine=hppa1.1-winbond | |
+ os=-proelf | |
+ ;; | |
+ xmp) | |
+ basic_machine=xmp-cray | |
+ os=-unicos | |
+ ;; | |
+ xps | xps100) | |
+ basic_machine=xps100-honeywell | |
+ ;; | |
+ z8k-*-coff) | |
+ basic_machine=z8k-unknown | |
+ os=-sim | |
+ ;; | |
+ none) | |
+ basic_machine=none-none | |
+ os=-none | |
+ ;; | |
+ | |
+# Here we handle the default manufacturer of certain CPU types. It is in | |
+# some cases the only manufacturer, in others, it is the most popular. | |
+ w89k) | |
+ basic_machine=hppa1.1-winbond | |
+ ;; | |
+ op50n) | |
+ basic_machine=hppa1.1-oki | |
+ ;; | |
+ op60c) | |
+ basic_machine=hppa1.1-oki | |
+ ;; | |
+ mips) | |
+ if [ x$os = x-linux-gnu ]; then | |
+ basic_machine=mips-unknown | |
+ else | |
+ basic_machine=mips-mips | |
+ fi | |
+ ;; | |
+ romp) | |
+ basic_machine=romp-ibm | |
+ ;; | |
+ rs6000) | |
+ basic_machine=rs6000-ibm | |
+ ;; | |
+ vax) | |
+ basic_machine=vax-dec | |
+ ;; | |
+ pdp10) | |
+ # there are many clones, so DEC is not a safe bet | |
+ basic_machine=pdp10-unknown | |
+ ;; | |
+ pdp11) | |
+ basic_machine=pdp11-dec | |
+ ;; | |
+ we32k) | |
+ basic_machine=we32k-att | |
+ ;; | |
+ sh3 | sh4) | |
+ basic_machine=sh-unknown | |
+ ;; | |
+ sparc | sparcv9 | sparcv9b) | |
+ basic_machine=sparc-sun | |
+ ;; | |
+ cydra) | |
+ basic_machine=cydra-cydrome | |
+ ;; | |
+ orion) | |
+ basic_machine=orion-highlevel | |
+ ;; | |
+ orion105) | |
+ basic_machine=clipper-highlevel | |
+ ;; | |
+ mac | mpw | mac-mpw) | |
+ basic_machine=m68k-apple | |
+ ;; | |
+ pmac | pmac-mpw) | |
+ basic_machine=powerpc-apple | |
+ ;; | |
+ c4x*) | |
+ basic_machine=c4x-none | |
+ os=-coff | |
+ ;; | |
+ *-unknown) | |
+ # Make sure to match an already-canonicalized machine name. | |
+ ;; | |
+ *) | |
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' … | |
+ exit 1 | |
+ ;; | |
+esac | |
+ | |
+# Here we canonicalize certain aliases for manufacturers. | |
+case $basic_machine in | |
+ *-digital*) | |
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` | |
+ ;; | |
+ *-commodore*) | |
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` | |
+ ;; | |
+ *) | |
+ ;; | |
+esac | |
+ | |
+# Decode manufacturer-specific aliases for certain operating systems. | |
+ | |
+if [ x"$os" != x"" ] | |
+then | |
+case $os in | |
+ # First match some system type aliases | |
+ # that might get confused with valid system types. | |
+ # -solaris* is a basic system type, with this one exception. | |
+ -solaris1 | -solaris1.*) | |
+ os=`echo $os | sed -e 's|solaris1|sunos4|'` | |
+ ;; | |
+ -solaris) | |
+ os=-solaris2 | |
+ ;; | |
+ -svr4*) | |
+ os=-sysv4 | |
+ ;; | |
+ -unixware*) | |
+ os=-sysv4.2uw | |
+ ;; | |
+ -gnu/linux*) | |
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` | |
+ ;; | |
+ # First accept the basic system types. | |
+ # The portable systems comes first. | |
+ # Each alternative MUST END IN A *, to match a version number. | |
+ # -sysv* is not here because it comes later, after sysvr4. | |
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | |
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | |
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | |
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof*… | |
+ | -aos* \ | |
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | |
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | |
+ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix… | |
+ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oa… | |
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | |
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | |
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | |
+ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | |
+ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ | |
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | |
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) | |
+ # Remember, each alternative MUST END IN *, to match a version number. | |
+ ;; | |
+ -qnx*) | |
+ case $basic_machine in | |
+ x86-* | i*86-*) | |
+ ;; | |
+ *) | |
+ os=-nto$os | |
+ ;; | |
+ esac | |
+ ;; | |
+ -nto*) | |
+ os=-nto-qnx | |
+ ;; | |
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | |
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | |
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) | |
+ ;; | |
+ -mac*) | |
+ os=`echo $os | sed -e 's|mac|macos|'` | |
+ ;; | |
+ -linux*) | |
+ os=`echo $os | sed -e 's|linux|linux-gnu|'` | |
+ ;; | |
+ -sunos5*) | |
+ os=`echo $os | sed -e 's|sunos5|solaris2|'` | |
+ ;; | |
+ -sunos6*) | |
+ os=`echo $os | sed -e 's|sunos6|solaris3|'` | |
+ ;; | |
+ -opened*) | |
+ os=-openedition | |
+ ;; | |
+ -wince*) | |
+ os=-wince | |
+ ;; | |
+ -osfrose*) | |
+ os=-osfrose | |
+ ;; | |
+ -osf*) | |
+ os=-osf | |
+ ;; | |
+ -utek*) | |
+ os=-bsd | |
+ ;; | |
+ -dynix*) | |
+ os=-bsd | |
+ ;; | |
+ -acis*) | |
+ os=-aos | |
+ ;; | |
+ -386bsd) | |
+ os=-bsd | |
+ ;; | |
+ -ctix* | -uts*) | |
+ os=-sysv | |
+ ;; | |
+ -ns2 ) | |
+ os=-nextstep2 | |
+ ;; | |
+ -nsk*) | |
+ os=-nsk | |
+ ;; | |
+ # Preserve the version number of sinix5. | |
+ -sinix5.*) | |
+ os=`echo $os | sed -e 's|sinix|sysv|'` | |
+ ;; | |
+ -sinix*) | |
+ os=-sysv4 | |
+ ;; | |
+ -triton*) | |
+ os=-sysv3 | |
+ ;; | |
+ -oss*) | |
+ os=-sysv3 | |
+ ;; | |
+ -svr4) | |
+ os=-sysv4 | |
+ ;; | |
+ -svr3) | |
+ os=-sysv3 | |
+ ;; | |
+ -sysvr4) | |
+ os=-sysv4 | |
+ ;; | |
+ # This must come after -sysvr4. | |
+ -sysv*) | |
+ ;; | |
+ -ose*) | |
+ os=-ose | |
+ ;; | |
+ -es1800*) | |
+ os=-ose | |
+ ;; | |
+ -xenix) | |
+ os=-xenix | |
+ ;; | |
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) | |
+ os=-mint | |
+ ;; | |
+ -none) | |
+ ;; | |
+ *) | |
+ # Get rid of the `-' at the beginning of $os. | |
+ os=`echo $os | sed 's/[^-]*-//'` | |
+ echo Invalid configuration \`$1\': system \`$os\' not recogniz… | |
+ exit 1 | |
+ ;; | |
+esac | |
+else | |
+ | |
+# Here we handle the default operating systems that come with various machines. | |
+# The value should be what the vendor currently ships out the door with their | |
+# machine or put another way, the most popular os provided with the machine. | |
+ | |
+# Note that if you're going to try to match "-MANUFACTURER" here (say, | |
+# "-sun"), then you have to tell the case statement up towards the top | |
+# that MANUFACTURER isn't an operating system. Otherwise, code above | |
+# will signal an error saying that MANUFACTURER isn't an operating | |
+# system, and we'll never get to this point. | |
+ | |
+case $basic_machine in | |
+ *-acorn) | |
+ os=-riscix1.2 | |
+ ;; | |
+ arm*-rebel) | |
+ os=-linux | |
+ ;; | |
+ arm*-semi) | |
+ os=-aout | |
+ ;; | |
+ pdp10-*) | |
+ os=-tops20 | |
+ ;; | |
+ pdp11-*) | |
+ os=-none | |
+ ;; | |
+ *-dec | vax-*) | |
+ os=-ultrix4.2 | |
+ ;; | |
+ m68*-apollo) | |
+ os=-domain | |
+ ;; | |
+ i386-sun) | |
+ os=-sunos4.0.2 | |
+ ;; | |
+ m68000-sun) | |
+ os=-sunos3 | |
+ # This also exists in the configure program, but was not the | |
+ # default. | |
+ # os=-sunos4 | |
+ ;; | |
+ m68*-cisco) | |
+ os=-aout | |
+ ;; | |
+ mips*-cisco) | |
+ os=-elf | |
+ ;; | |
+ mips*-*) | |
+ os=-elf | |
+ ;; | |
+ *-tti) # must be before sparc entry or we get the wrong os. | |
+ os=-sysv3 | |
+ ;; | |
+ sparc-* | *-sun) | |
+ os=-sunos4.1.1 | |
+ ;; | |
+ *-be) | |
+ os=-beos | |
+ ;; | |
+ *-ibm) | |
+ os=-aix | |
+ ;; | |
+ *-wec) | |
+ os=-proelf | |
+ ;; | |
+ *-winbond) | |
+ os=-proelf | |
+ ;; | |
+ *-oki) | |
+ os=-proelf | |
+ ;; | |
+ *-hp) | |
+ os=-hpux | |
+ ;; | |
+ *-hitachi) | |
+ os=-hiux | |
+ ;; | |
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) | |
+ os=-sysv | |
+ ;; | |
+ *-cbm) | |
+ os=-amigaos | |
+ ;; | |
+ *-dg) | |
+ os=-dgux | |
+ ;; | |
+ *-dolphin) | |
+ os=-sysv3 | |
+ ;; | |
+ m68k-ccur) | |
+ os=-rtu | |
+ ;; | |
+ m88k-omron*) | |
+ os=-luna | |
+ ;; | |
+ *-next ) | |
+ os=-nextstep | |
+ ;; | |
+ *-sequent) | |
+ os=-ptx | |
+ ;; | |
+ *-crds) | |
+ os=-unos | |
+ ;; | |
+ *-ns) | |
+ os=-genix | |
+ ;; | |
+ i370-*) | |
+ os=-mvs | |
+ ;; | |
+ *-next) | |
+ os=-nextstep3 | |
+ ;; | |
+ *-gould) | |
+ os=-sysv | |
+ ;; | |
+ *-highlevel) | |
+ os=-bsd | |
+ ;; | |
+ *-encore) | |
+ os=-bsd | |
+ ;; | |
+ *-sgi) | |
+ os=-irix | |
+ ;; | |
+ *-siemens) | |
+ os=-sysv4 | |
+ ;; | |
+ *-masscomp) | |
+ os=-rtu | |
+ ;; | |
+ f30[01]-fujitsu | f700-fujitsu) | |
+ os=-uxpv | |
+ ;; | |
+ *-rom68k) | |
+ os=-coff | |
+ ;; | |
+ *-*bug) | |
+ os=-coff | |
+ ;; | |
+ *-apple) | |
+ os=-macos | |
+ ;; | |
+ *-atari*) | |
+ os=-mint | |
+ ;; | |
+ *) | |
+ os=-none | |
+ ;; | |
+esac | |
+fi | |
+ | |
+# Here we handle the case where we know the os, and the CPU type, but not the | |
+# manufacturer. We pick the logical manufacturer. | |
+vendor=unknown | |
+case $basic_machine in | |
+ *-unknown) | |
+ case $os in | |
+ -riscix*) | |
+ vendor=acorn | |
+ ;; | |
+ -sunos*) | |
+ vendor=sun | |
+ ;; | |
+ -aix*) | |
+ vendor=ibm | |
+ ;; | |
+ -beos*) | |
+ vendor=be | |
+ ;; | |
+ -hpux*) | |
+ vendor=hp | |
+ ;; | |
+ -mpeix*) | |
+ vendor=hp | |
+ ;; | |
+ -hiux*) | |
+ vendor=hitachi | |
+ ;; | |
+ -unos*) | |
+ vendor=crds | |
+ ;; | |
+ -dgux*) | |
+ vendor=dg | |
+ ;; | |
+ -luna*) | |
+ vendor=omron | |
+ ;; | |
+ -genix*) | |
+ vendor=ns | |
+ ;; | |
+ -mvs* | -opened*) | |
+ vendor=ibm | |
+ ;; | |
+ -ptx*) | |
+ vendor=sequent | |
+ ;; | |
+ -vxsim* | -vxworks*) | |
+ vendor=wrs | |
+ ;; | |
+ -aux*) | |
+ vendor=apple | |
+ ;; | |
+ -hms*) | |
+ vendor=hitachi | |
+ ;; | |
+ -mpw* | -macos*) | |
+ vendor=apple | |
+ ;; | |
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) | |
+ vendor=atari | |
+ ;; | |
+ esac | |
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` | |
+ ;; | |
+esac | |
+ | |
+echo $basic_machine$os | |
+exit 0 | |
+ | |
+# Local variables: | |
+# eval: (add-hook 'write-file-hooks 'time-stamp) | |
+# time-stamp-start: "timestamp='" | |
+# time-stamp-format: "%:y-%02m-%02d" | |
+# time-stamp-end: "'" | |
+# End: | |
diff --git a/configure b/configure | |
t@@ -12,12 +12,6 @@ ac_help= | |
ac_default_prefix=/usr/local | |
# Any additions from configure.in: | |
ac_help="$ac_help | |
- --disable-nls do not use Native Language Support" | |
-ac_help="$ac_help | |
- --with-included-gettext use the GNU gettext library included here" | |
-ac_help="$ac_help | |
- --with-catgets use catgets functions if available" | |
-ac_help="$ac_help | |
--enable-gui-client include graphical client (GTK+/Win32)" | |
ac_help="$ac_help | |
--enable-curses-client include curses client" | |
t@@ -36,6 +30,12 @@ ac_help="$ac_help | |
ac_help="$ac_help | |
--disable-gtktest Do not try to compile and run a test GTK program" | |
ac_help="$ac_help | |
+ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib" | |
+ac_help="$ac_help | |
+ --disable-nls do not use Native Language Support" | |
+ac_help="$ac_help | |
+ --with-included-gettext use the GNU gettext library included here" | |
+ac_help="$ac_help | |
--enable-gui-server use a simple GTK+/Win32 GUI for the server" | |
ac_help="$ac_help | |
--enable-networking dopewars will use TCP/IP to connect to servers" | |
t@@ -1031,6 +1031,49 @@ else | |
fi | |
fi | |
+ | |
+ echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 | |
+echo "configure:1037: checking for strerror in -lcposix" >&5 | |
+ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` | |
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ ac_save_LIBS="$LIBS" | |
+LIBS="-lcposix $LIBS" | |
+cat > conftest.$ac_ext <<EOF | |
+#line 1045 "configure" | |
+#include "confdefs.h" | |
+/* Override any gcc2 internal prototype to avoid an error. */ | |
+/* We use char because int might match the return type of a gcc2 | |
+ builtin and then its argument prototype would still apply. */ | |
+char strerror(); | |
+ | |
+int main() { | |
+strerror() | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:1056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ eval "ac_cv_lib_$ac_lib_var=yes" | |
+else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
+ eval "ac_cv_lib_$ac_lib_var=no" | |
+fi | |
+rm -f conftest* | |
+LIBS="$ac_save_LIBS" | |
+ | |
+fi | |
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
+ echo "$ac_t""yes" 1>&6 | |
+ LIBS="$LIBS -lcposix" | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
+fi | |
+ | |
+ | |
+ | |
# Find a good install program. We prefer a C program (faster), | |
# so one script is as good as another. But avoid the broken or | |
# incompatible versions: | |
t@@ -1043,7 +1086,7 @@ fi | |
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" | |
# ./install, which can be erroneously created by make from ./install.sh. | |
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 | |
-echo "configure:1047: checking for a BSD compatible install" >&5 | |
+echo "configure:1090: checking for a BSD compatible install" >&5 | |
if test -z "$INSTALL"; then | |
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
t@@ -1096,7 +1139,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_P… | |
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' | |
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 | |
-echo "configure:1100: checking whether ${MAKE-make} sets \${MAKE}" >&5 | |
+echo "configure:1143: checking whether ${MAKE-make} sets \${MAKE}" >&5 | |
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` | |
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; t… | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
t@@ -1123,9 +1166,8 @@ else | |
fi | |
-ALL_LINGUAS="de pl pt_BR fr" | |
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 | |
-echo "configure:1129: checking how to run the C preprocessor" >&5 | |
+echo "configure:1171: checking how to run the C preprocessor" >&5 | |
# On Suns, sometimes $CPP names a directory. | |
if test -n "$CPP" && test -d "$CPP"; then | |
CPP= | |
t@@ -1140,13 +1182,13 @@ else | |
# On the NeXT, cc -E runs the code through the compiler's parser, | |
# not just through cpp. | |
cat > conftest.$ac_ext <<EOF | |
-#line 1144 "configure" | |
+#line 1186 "configure" | |
#include "confdefs.h" | |
#include <assert.h> | |
Syntax Error | |
EOF | |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:1150: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+{ (eval echo configure:1192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
if test -z "$ac_err"; then | |
: | |
t@@ -1157,13 +1199,13 @@ else | |
rm -rf conftest* | |
CPP="${CC-cc} -E -traditional-cpp" | |
cat > conftest.$ac_ext <<EOF | |
-#line 1161 "configure" | |
+#line 1203 "configure" | |
#include "confdefs.h" | |
#include <assert.h> | |
Syntax Error | |
EOF | |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:1167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+{ (eval echo configure:1209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
if test -z "$ac_err"; then | |
: | |
t@@ -1174,13 +1216,13 @@ else | |
rm -rf conftest* | |
CPP="${CC-cc} -nologo -E" | |
cat > conftest.$ac_ext <<EOF | |
-#line 1178 "configure" | |
+#line 1220 "configure" | |
#include "confdefs.h" | |
#include <assert.h> | |
Syntax Error | |
EOF | |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:1184: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+{ (eval echo configure:1226: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
if test -z "$ac_err"; then | |
: | |
t@@ -1204,64 +1246,13 @@ else | |
fi | |
echo "$ac_t""$CPP" 1>&6 | |
-# Extract the first word of "ranlib", so it can be a program name with args. | |
-set dummy ranlib; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:1211: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- if test -n "$RANLIB"; then | |
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. | |
-else | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
- ac_dummy="$PATH" | |
- for ac_dir in $ac_dummy; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- ac_cv_prog_RANLIB="ranlib" | |
- break | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" | |
-fi | |
-fi | |
-RANLIB="$ac_cv_prog_RANLIB" | |
-if test -n "$RANLIB"; then | |
- echo "$ac_t""$RANLIB" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
- | |
-echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 | |
-echo "configure:1239: checking for POSIXized ISC" >&5 | |
-if test -d /etc/conf/kconfig.d && | |
- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 | |
-then | |
- echo "$ac_t""yes" 1>&6 | |
- ISC=yes # If later tests want to check for ISC. | |
- cat >> confdefs.h <<\EOF | |
-#define _POSIX_SOURCE 1 | |
-EOF | |
- | |
- if test "$GCC" = yes; then | |
- CC="$CC -posix" | |
- else | |
- CC="$CC -Xp" | |
- fi | |
-else | |
- echo "$ac_t""no" 1>&6 | |
- ISC= | |
-fi | |
- | |
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 | |
-echo "configure:1260: checking for ANSI C header files" >&5 | |
+echo "configure:1251: checking for ANSI C header files" >&5 | |
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 1265 "configure" | |
+#line 1256 "configure" | |
#include "confdefs.h" | |
#include <stdlib.h> | |
#include <stdarg.h> | |
t@@ -1269,7 +1260,7 @@ else | |
#include <float.h> | |
EOF | |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:1273: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+{ (eval echo configure:1264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
if test -z "$ac_err"; then | |
rm -rf conftest* | |
t@@ -1286,7 +1277,7 @@ rm -f conftest* | |
if test $ac_cv_header_stdc = yes; then | |
# SunOS 4.x string.h does not declare mem*, contrary to ANSI. | |
cat > conftest.$ac_ext <<EOF | |
-#line 1290 "configure" | |
+#line 1281 "configure" | |
#include "confdefs.h" | |
#include <string.h> | |
EOF | |
t@@ -1304,7 +1295,7 @@ fi | |
if test $ac_cv_header_stdc = yes; then | |
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. | |
cat > conftest.$ac_ext <<EOF | |
-#line 1308 "configure" | |
+#line 1299 "configure" | |
#include "confdefs.h" | |
#include <stdlib.h> | |
EOF | |
t@@ -1325,7 +1316,7 @@ if test "$cross_compiling" = yes; then | |
: | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 1329 "configure" | |
+#line 1320 "configure" | |
#include "confdefs.h" | |
#include <ctype.h> | |
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') | |
t@@ -1336,7 +1327,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOU… | |
exit (0); } | |
EOF | |
-if { (eval echo configure:1340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:1331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
: | |
else | |
t@@ -1359,1739 +1350,1472 @@ EOF | |
fi | |
-echo $ac_n "checking for working const""... $ac_c" 1>&6 | |
-echo "configure:1364: checking for working const" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then | |
+echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 | |
+echo "configure:1355: checking for sys/wait.h that is POSIX.1 compatible" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 1369 "configure" | |
+#line 1360 "configure" | |
#include "confdefs.h" | |
- | |
+#include <sys/types.h> | |
+#include <sys/wait.h> | |
+#ifndef WEXITSTATUS | |
+#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) | |
+#endif | |
+#ifndef WIFEXITED | |
+#define WIFEXITED(stat_val) (((stat_val) & 255) == 0) | |
+#endif | |
int main() { | |
- | |
-/* Ultrix mips cc rejects this. */ | |
-typedef int charset[2]; const charset x; | |
-/* SunOS 4.1.1 cc rejects this. */ | |
-char const *const *ccp; | |
-char **p; | |
-/* NEC SVR4.0.2 mips cc rejects this. */ | |
-struct point {int x, y;}; | |
-static struct point const zero = {0,0}; | |
-/* AIX XL C 1.02.0.0 rejects this. | |
- It does not let you subtract one const X* pointer from another in an arm | |
- of an if-expression whose if-part is not a constant expression */ | |
-const char *g = "string"; | |
-ccp = &g + (g ? g-g : 0); | |
-/* HPUX 7.0 cc rejects these. */ | |
-++ccp; | |
-p = (char**) ccp; | |
-ccp = (char const *const *) p; | |
-{ /* SCO 3.2v4 cc rejects this. */ | |
- char *t; | |
- char const *s = 0 ? (char *) 0 : (char const *) 0; | |
- | |
- *t++ = 0; | |
-} | |
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ | |
- int x[] = {25, 17}; | |
- const int *foo = &x[0]; | |
- ++foo; | |
-} | |
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ | |
- typedef const int *iptr; | |
- iptr p = 0; | |
- ++p; | |
-} | |
-{ /* AIX XL C 1.02.0.0 rejects this saying | |
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ | |
- struct s { int j; const int *ap[3]; }; | |
- struct s *b; b->j = 5; | |
-} | |
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ | |
- const int foo = 10; | |
-} | |
- | |
+int s; | |
+wait (&s); | |
+s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; | |
; return 0; } | |
EOF | |
-if { (eval echo configure:1418: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
+if { (eval echo configure:1376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
rm -rf conftest* | |
- ac_cv_c_const=yes | |
+ ac_cv_header_sys_wait_h=yes | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- ac_cv_c_const=no | |
+ ac_cv_header_sys_wait_h=no | |
fi | |
rm -f conftest* | |
fi | |
-echo "$ac_t""$ac_cv_c_const" 1>&6 | |
-if test $ac_cv_c_const = no; then | |
+echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6 | |
+if test $ac_cv_header_sys_wait_h = yes; then | |
cat >> confdefs.h <<\EOF | |
-#define const | |
+#define HAVE_SYS_WAIT_H 1 | |
EOF | |
fi | |
-echo $ac_n "checking for inline""... $ac_c" 1>&6 | |
-echo "configure:1439: checking for inline" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then | |
+for ac_hdr in fcntl.h sys/time.h unistd.h stdlib.h | |
+do | |
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | |
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | |
+echo "configure:1400: checking for $ac_hdr" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- ac_cv_c_inline=no | |
-for ac_kw in inline __inline__ __inline; do | |
cat > conftest.$ac_ext <<EOF | |
-#line 1446 "configure" | |
+#line 1405 "configure" | |
#include "confdefs.h" | |
- | |
-int main() { | |
-} $ac_kw foo() { | |
-; return 0; } | |
+#include <$ac_hdr> | |
EOF | |
-if { (eval echo configure:1453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
+{ (eval echo configure:1410: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
+if test -z "$ac_err"; then | |
rm -rf conftest* | |
- ac_cv_c_inline=$ac_kw; break | |
+ eval "ac_cv_header_$ac_safe=yes" | |
else | |
+ echo "$ac_err" >&5 | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
+ eval "ac_cv_header_$ac_safe=no" | |
fi | |
rm -f conftest* | |
-done | |
- | |
fi | |
- | |
-echo "$ac_t""$ac_cv_c_inline" 1>&6 | |
-case "$ac_cv_c_inline" in | |
- inline | yes) ;; | |
- no) cat >> confdefs.h <<\EOF | |
-#define inline | |
-EOF | |
- ;; | |
- *) cat >> confdefs.h <<EOF | |
-#define inline $ac_cv_c_inline | |
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
+ echo "$ac_t""yes" 1>&6 | |
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEF… | |
+ cat >> confdefs.h <<EOF | |
+#define $ac_tr_hdr 1 | |
EOF | |
- ;; | |
-esac | |
+ | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
+fi | |
+done | |
-echo $ac_n "checking for off_t""... $ac_c" 1>&6 | |
-echo "configure:1479: checking for off_t" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then | |
+ | |
+echo $ac_n "checking whether time.h and sys/time.h may both be included""... $… | |
+echo "configure:1438: checking whether time.h and sys/time.h may both be inclu… | |
+if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 1484 "configure" | |
+#line 1443 "configure" | |
#include "confdefs.h" | |
#include <sys/types.h> | |
-#if STDC_HEADERS | |
-#include <stdlib.h> | |
-#include <stddef.h> | |
-#endif | |
+#include <sys/time.h> | |
+#include <time.h> | |
+int main() { | |
+struct tm *tp; | |
+; return 0; } | |
EOF | |
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
- egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then | |
+if { (eval echo configure:1452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
rm -rf conftest* | |
- ac_cv_type_off_t=yes | |
+ ac_cv_header_time=yes | |
else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- ac_cv_type_off_t=no | |
+ ac_cv_header_time=no | |
fi | |
rm -f conftest* | |
- | |
fi | |
-echo "$ac_t""$ac_cv_type_off_t" 1>&6 | |
-if test $ac_cv_type_off_t = no; then | |
+ | |
+echo "$ac_t""$ac_cv_header_time" 1>&6 | |
+if test $ac_cv_header_time = yes; then | |
cat >> confdefs.h <<\EOF | |
-#define off_t long | |
+#define TIME_WITH_SYS_TIME 1 | |
EOF | |
fi | |
-echo $ac_n "checking for size_t""... $ac_c" 1>&6 | |
-echo "configure:1512: checking for size_t" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then | |
+echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" … | |
+echo "configure:1473: checking whether struct tm is in sys/time.h or time.h" >… | |
+if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 1517 "configure" | |
+#line 1478 "configure" | |
#include "confdefs.h" | |
#include <sys/types.h> | |
-#if STDC_HEADERS | |
-#include <stdlib.h> | |
-#include <stddef.h> | |
-#endif | |
+#include <time.h> | |
+int main() { | |
+struct tm *tp; tp->tm_sec; | |
+; return 0; } | |
EOF | |
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
- egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then | |
+if { (eval echo configure:1486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
rm -rf conftest* | |
- ac_cv_type_size_t=yes | |
+ ac_cv_struct_tm=time.h | |
else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- ac_cv_type_size_t=no | |
+ ac_cv_struct_tm=sys/time.h | |
fi | |
rm -f conftest* | |
- | |
fi | |
-echo "$ac_t""$ac_cv_type_size_t" 1>&6 | |
-if test $ac_cv_type_size_t = no; then | |
- cat >> confdefs.h <<\EOF | |
-#define size_t unsigned | |
+ | |
+echo "$ac_t""$ac_cv_struct_tm" 1>&6 | |
+if test $ac_cv_struct_tm = sys/time.h; then | |
+ cat >> confdefs.h <<\EOF | |
+#define TM_IN_SYS_TIME 1 | |
EOF | |
fi | |
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works | |
-# for constant arguments. Useless! | |
-echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 | |
-echo "configure:1547: checking for working alloca.h" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 1552 "configure" | |
-#include "confdefs.h" | |
-#include <alloca.h> | |
-int main() { | |
-char *p = alloca(2 * sizeof(int)); | |
-; return 0; } | |
-EOF | |
-if { (eval echo configure:1559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
- rm -rf conftest* | |
- ac_cv_header_alloca_h=yes | |
+ | |
+HAVE_FIXED_GTK="no" | |
+ | |
+# Check whether --enable-gui-client or --disable-gui-client was given. | |
+if test "${enable_gui_client+set}" = set; then | |
+ enableval="$enable_gui_client" | |
+ GUI_CLIENT="$enableval" | |
else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- ac_cv_header_alloca_h=no | |
-fi | |
-rm -f conftest* | |
+ GUI_CLIENT="yes" | |
fi | |
-echo "$ac_t""$ac_cv_header_alloca_h" 1>&6 | |
-if test $ac_cv_header_alloca_h = yes; then | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_ALLOCA_H 1 | |
-EOF | |
+# Check whether --enable-curses-client or --disable-curses-client was given. | |
+if test "${enable_curses_client+set}" = set; then | |
+ enableval="$enable_curses_client" | |
+ CURSES_CLIENT="$enableval" | |
+else | |
+ CURSES_CLIENT="yes" | |
fi | |
-echo $ac_n "checking for alloca""... $ac_c" 1>&6 | |
-echo "configure:1580: checking for alloca" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then | |
+ | |
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 | |
+echo "configure:1528: checking for Cygwin environment" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 1585 "configure" | |
+#line 1533 "configure" | |
#include "confdefs.h" | |
-#ifdef __GNUC__ | |
-# define alloca __builtin_alloca | |
-#else | |
-# ifdef _MSC_VER | |
-# include <malloc.h> | |
-# define alloca _alloca | |
-# else | |
-# if HAVE_ALLOCA_H | |
-# include <alloca.h> | |
-# else | |
-# ifdef _AIX | |
- #pragma alloca | |
-# else | |
-# ifndef alloca /* predefined by HP cc +Olibcalls */ | |
-char *alloca (); | |
-# endif | |
-# endif | |
-# endif | |
-# endif | |
-#endif | |
- | |
int main() { | |
-char *p = (char *) alloca(1); | |
+ | |
+#ifndef __CYGWIN__ | |
+#define __CYGWIN__ __CYGWIN32__ | |
+#endif | |
+return __CYGWIN__; | |
; return 0; } | |
EOF | |
-if { (eval echo configure:1613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:1544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
rm -rf conftest* | |
- ac_cv_func_alloca_works=yes | |
+ ac_cv_cygwin=yes | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- ac_cv_func_alloca_works=no | |
+ ac_cv_cygwin=no | |
fi | |
rm -f conftest* | |
+rm -f conftest* | |
fi | |
-echo "$ac_t""$ac_cv_func_alloca_works" 1>&6 | |
-if test $ac_cv_func_alloca_works = yes; then | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_ALLOCA 1 | |
-EOF | |
- | |
+echo "$ac_t""$ac_cv_cygwin" 1>&6 | |
+CYGWIN= | |
+test "$ac_cv_cygwin" = yes && CYGWIN=yes | |
+# Check whether --enable-nativewin32 or --disable-nativewin32 was given. | |
+if test "${enable_nativewin32+set}" = set; then | |
+ enableval="$enable_nativewin32" | |
+ CYGWIN="$enableval" | |
fi | |
-if test $ac_cv_func_alloca_works = no; then | |
- # The SVR3 libPW and SVR4 libucb both contain incompatible functions | |
- # that cause trouble. Some versions do not even contain alloca or | |
- # contain a buggy version. If you still want to use their alloca, | |
- # use ar to extract alloca.o from them instead of compiling alloca.c. | |
- ALLOCA=alloca.${ac_objext} | |
- cat >> confdefs.h <<\EOF | |
-#define C_ALLOCA 1 | |
+ | |
+if test "$CYGWIN" = "yes" ; then | |
+ echo "$ac_t"""Configuring for native Win32 binary under Cygwin"" 1>&6 | |
+ cat >> confdefs.h <<\EOF | |
+#define CYGWIN 1 | |
EOF | |
-echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 | |
-echo "configure:1645: checking whether alloca needs Cray hooks" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
+ | |
+ CFLAGS="$CFLAGS -mwindows -fnative-struct -mno-cygwin" | |
+ LIBS="$LIBS -lwsock32 -lcomctl32 -lmpr" | |
+ | |
+ LDFLAGS="$LDFLAGS -lglib-1.3" | |
+ | |
+ WNDRES="dopewars.res" | |
+ | |
+ | |
+ HAVE_FIXED_GTK="yes" | |
+ | |
+ GUI_SERVER="yes" | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 1650 "configure" | |
-#include "confdefs.h" | |
-#if defined(CRAY) && ! defined(CRAY2) | |
-webecray | |
-#else | |
-wenotbecray | |
-#endif | |
+ echo "$ac_t"""Configuring for Unix binary"" 1>&6 | |
-EOF | |
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
- egrep "webecray" >/dev/null 2>&1; then | |
- rm -rf conftest* | |
- ac_cv_os_cray=yes | |
+ # Check whether --with-glib-prefix or --without-glib-prefix was given. | |
+if test "${with_glib_prefix+set}" = set; then | |
+ withval="$with_glib_prefix" | |
+ glib_config_prefix="$withval" | |
else | |
- rm -rf conftest* | |
- ac_cv_os_cray=no | |
+ glib_config_prefix="" | |
fi | |
-rm -f conftest* | |
+# Check whether --with-glib-exec-prefix or --without-glib-exec-prefix was give… | |
+if test "${with_glib_exec_prefix+set}" = set; then | |
+ withval="$with_glib_exec_prefix" | |
+ glib_config_exec_prefix="$withval" | |
+else | |
+ glib_config_exec_prefix="" | |
fi | |
-echo "$ac_t""$ac_cv_os_cray" 1>&6 | |
-if test $ac_cv_os_cray = yes; then | |
-for ac_func in _getb67 GETB67 getb67; do | |
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:1675: checking for $ac_func" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
+# Check whether --enable-glibtest or --disable-glibtest was given. | |
+if test "${enable_glibtest+set}" = set; then | |
+ enableval="$enable_glibtest" | |
+ : | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 1680 "configure" | |
-#include "confdefs.h" | |
-/* System header to define __stub macros and hopefully few prototypes, | |
- which can conflict with char $ac_func(); below. */ | |
-#include <assert.h> | |
-/* Override any gcc2 internal prototype to avoid an error. */ | |
-/* We use char because int might match the return type of a gcc2 | |
- builtin and then its argument prototype would still apply. */ | |
-char $ac_func(); | |
+ enable_glibtest=yes | |
+fi | |
-int main() { | |
-/* The GNU C library defines this for functions which it implements | |
- to always fail with ENOSYS. Some functions are actually named | |
- something starting with __ and the normal name is an alias. */ | |
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
-choke me | |
-#else | |
-$ac_func(); | |
-#endif | |
+ if test x$glib_config_exec_prefix != x ; then | |
+ glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefi… | |
+ if test x${GLIB_CONFIG+set} != xset ; then | |
+ GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config | |
+ fi | |
+ fi | |
+ if test x$glib_config_prefix != x ; then | |
+ glib_config_args="$glib_config_args --prefix=$glib_config_prefix" | |
+ if test x${GLIB_CONFIG+set} != xset ; then | |
+ GLIB_CONFIG=$glib_config_prefix/bin/glib-config | |
+ fi | |
+ fi | |
-; return 0; } | |
-EOF | |
-if { (eval echo configure:1703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
- rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=yes" | |
+ for module in . | |
+ do | |
+ case "$module" in | |
+ gmodule) | |
+ glib_config_args="$glib_config_args gmodule" | |
+ ;; | |
+ gthread) | |
+ glib_config_args="$glib_config_args gthread" | |
+ ;; | |
+ esac | |
+ done | |
+ | |
+ # Extract the first word of "glib-config", so it can be a program name with … | |
+set dummy glib-config; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:1642: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=no" | |
-fi | |
-rm -f conftest* | |
+ case "$GLIB_CONFIG" in | |
+ /*) | |
+ ac_cv_path_GLIB_CONFIG="$GLIB_CONFIG" # Let the user override the test with … | |
+ ;; | |
+ ?:/*) | |
+ ac_cv_path_GLIB_CONFIG="$GLIB_CONFIG" # Let the user override the test with … | |
+ ;; | |
+ *) | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
+ ac_dummy="$PATH" | |
+ for ac_dir in $ac_dummy; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ ac_cv_path_GLIB_CONFIG="$ac_dir/$ac_word" | |
+ break | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
+ test -z "$ac_cv_path_GLIB_CONFIG" && ac_cv_path_GLIB_CONFIG="no" | |
+ ;; | |
+esac | |
fi | |
- | |
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- cat >> confdefs.h <<EOF | |
-#define CRAY_STACKSEG_END $ac_func | |
-EOF | |
- | |
- break | |
+GLIB_CONFIG="$ac_cv_path_GLIB_CONFIG" | |
+if test -n "$GLIB_CONFIG"; then | |
+ echo "$ac_t""$GLIB_CONFIG" 1>&6 | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
-done | |
-fi | |
- | |
-echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 | |
-echo "configure:1730: checking stack direction for C alloca" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- if test "$cross_compiling" = yes; then | |
- ac_cv_c_stack_direction=0 | |
+ min_glib_version=1.2.0 | |
+ echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6 | |
+echo "configure:1677: checking for GLIB - version >= $min_glib_version" >&5 | |
+ no_glib="" | |
+ if test "$GLIB_CONFIG" = "no" ; then | |
+ no_glib=yes | |
+ else | |
+ GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags` | |
+ GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs` | |
+ glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \ | |
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` | |
+ glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \ | |
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` | |
+ glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \ | |
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` | |
+ if test "x$enable_glibtest" = "xyes" ; then | |
+ ac_save_CFLAGS="$CFLAGS" | |
+ ac_save_LIBS="$LIBS" | |
+ CFLAGS="$CFLAGS $GLIB_CFLAGS" | |
+ LIBS="$GLIB_LIBS $LIBS" | |
+ rm -f conf.glibtest | |
+ if test "$cross_compiling" = yes; then | |
+ echo $ac_n "cross compiling; assumed OK... $ac_c" | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 1738 "configure" | |
+#line 1700 "configure" | |
#include "confdefs.h" | |
-find_stack_direction () | |
+ | |
+#include <glib.h> | |
+#include <stdio.h> | |
+#include <stdlib.h> | |
+ | |
+int | |
+main () | |
{ | |
- static char *addr = 0; | |
- auto char dummy; | |
- if (addr == 0) | |
+ int major, minor, micro; | |
+ char *tmp_version; | |
+ | |
+ system ("touch conf.glibtest"); | |
+ | |
+ /* HP/UX 9 (%@#!) writes to sscanf strings */ | |
+ tmp_version = g_strdup("$min_glib_version"); | |
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { | |
+ printf("%s, bad version string\n", "$min_glib_version"); | |
+ exit(1); | |
+ } | |
+ | |
+ if ((glib_major_version != $glib_config_major_version) || | |
+ (glib_minor_version != $glib_config_minor_version) || | |
+ (glib_micro_version != $glib_config_micro_version)) | |
{ | |
- addr = &dummy; | |
- return find_stack_direction (); | |
+ printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d… | |
+ $glib_config_major_version, $glib_config_minor_version, $glib_con… | |
+ glib_major_version, glib_minor_version, glib_micro_version); | |
+ printf ("*** was found! If glib-config was correct, then it is best\n"); | |
+ printf ("*** to remove the old version of GLIB. You may also be able to … | |
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by… | |
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\… | |
+ printf("*** required on your system.\n"); | |
+ printf("*** If glib-config was wrong, set the environment variable GLIB_… | |
+ printf("*** to point to the correct copy of glib-config, and remove the … | |
+ printf("*** before re-running configure\n"); | |
+ } | |
+ else if ((glib_major_version != GLIB_MAJOR_VERSION) || | |
+ (glib_minor_version != GLIB_MINOR_VERSION) || | |
+ (glib_micro_version != GLIB_MICRO_VERSION)) | |
+ { | |
+ printf("*** GLIB header files (version %d.%d.%d) do not match\n", | |
+ GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); | |
+ printf("*** library (version %d.%d.%d)\n", | |
+ glib_major_version, glib_minor_version, glib_micro_version); | |
} | |
else | |
- return (&dummy > addr) ? 1 : -1; | |
-} | |
-main () | |
-{ | |
- exit (find_stack_direction() < 0); | |
+ { | |
+ if ((glib_major_version > major) || | |
+ ((glib_major_version == major) && (glib_minor_version > minor)) || | |
+ ((glib_major_version == major) && (glib_minor_version == minor) && (gl… | |
+ { | |
+ return 0; | |
+ } | |
+ else | |
+ { | |
+ printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", | |
+ glib_major_version, glib_minor_version, glib_micro_version); | |
+ printf("*** You need a version of GLIB newer than %d.%d.%d. The latest… | |
+ major, minor, micro); | |
+ printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); | |
+ printf("***\n"); | |
+ printf("*** If you have already installed a sufficiently new version, … | |
+ printf("*** probably means that the wrong copy of the glib-config shel… | |
+ printf("*** being found. The easiest way to fix this is to remove the … | |
+ printf("*** of GLIB, but you can also set the GLIB_CONFIG environment … | |
+ printf("*** correct copy of glib-config. (In this case, you will have … | |
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /… | |
+ printf("*** so that the correct libraries are found at run-time))\n"); | |
+ } | |
+ } | |
+ return 1; | |
} | |
+ | |
EOF | |
-if { (eval echo configure:1757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:1776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
- ac_cv_c_stack_direction=1 | |
+ : | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -fr conftest* | |
- ac_cv_c_stack_direction=-1 | |
+ no_glib=yes | |
fi | |
rm -fr conftest* | |
fi | |
-fi | |
+ CFLAGS="$ac_save_CFLAGS" | |
+ LIBS="$ac_save_LIBS" | |
+ fi | |
+ fi | |
+ if test "x$no_glib" = x ; then | |
+ echo "$ac_t""yes" 1>&6 | |
+ : | |
+ else | |
+ echo "$ac_t""no" 1>&6 | |
+ if test "$GLIB_CONFIG" = "no" ; then | |
+ echo "*** The glib-config script installed by GLIB could not be found" | |
+ echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in" | |
+ echo "*** your path, or set the GLIB_CONFIG environment variable to the" | |
+ echo "*** full path to glib-config." | |
+ else | |
+ if test -f conf.glibtest ; then | |
+ : | |
+ else | |
+ echo "*** Could not run GLIB test program, checking why..." | |
+ CFLAGS="$CFLAGS $GLIB_CFLAGS" | |
+ LIBS="$LIBS $GLIB_LIBS" | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 1810 "configure" | |
+#include "confdefs.h" | |
-echo "$ac_t""$ac_cv_c_stack_direction" 1>&6 | |
-cat >> confdefs.h <<EOF | |
-#define STACK_DIRECTION $ac_cv_c_stack_direction | |
-EOF | |
+#include <glib.h> | |
+#include <stdio.h> | |
+int main() { | |
+ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version))… | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:1820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ echo "*** The test program compiled, but did not run. This usually means" | |
+ echo "*** that the run-time linker is not finding GLIB or finding th… | |
+ echo "*** version of GLIB. If it is not finding GLIB, you'll need to… | |
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.c… | |
+ echo "*** to the installed location Also, make sure you have run ld… | |
+ echo "*** is required on your system" | |
+ echo "***" | |
+ echo "*** If you have an old version installed, it is best to remove… | |
+ echo "*** you may also be able to get things to work by modifying LD… | |
+ echo "***" | |
+ echo "*** If you have a RedHat 5.0 system, you should remove the GTK… | |
+ echo "*** came with the system with the command" | |
+ echo "***" | |
+ echo "*** rpm --erase --nodeps gtk gtk-devel" | |
+else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
+ echo "*** The test program failed to compile or link. See the file config.l… | |
+ echo "*** exact error that occured. This usually means GLIB was inco… | |
+ echo "*** or that you have moved GLIB since it was installed. In the… | |
+ echo "*** may want to edit the glib-config script: $GLIB_CONFIG" | |
fi | |
+rm -f conftest* | |
+ CFLAGS="$ac_save_CFLAGS" | |
+ LIBS="$ac_save_LIBS" | |
+ fi | |
+ fi | |
+ GLIB_CFLAGS="" | |
+ GLIB_LIBS="" | |
+ { echo "configure: error: Cannot find glib - aborting" 1>&2; exit 1; } | |
+ fi | |
+ | |
+ | |
+ rm -f conf.glibtest | |
-for ac_hdr in unistd.h | |
-do | |
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | |
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | |
-echo "configure:1782: checking for $ac_hdr" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
+ | |
+ if test "$CURSES_CLIENT" = "yes" ; then | |
+ echo $ac_n "checking for newterm in -lncurses""... $ac_c" 1>&6 | |
+echo "configure:1861: checking for newterm in -lncurses" >&5 | |
+ac_lib_var=`echo ncurses'_'newterm | sed 'y%./+-%__p_%'` | |
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 1787 "configure" | |
+ ac_save_LIBS="$LIBS" | |
+LIBS="-lncurses $LIBS" | |
+cat > conftest.$ac_ext <<EOF | |
+#line 1869 "configure" | |
#include "confdefs.h" | |
-#include <$ac_hdr> | |
+/* Override any gcc2 internal prototype to avoid an error. */ | |
+/* We use char because int might match the return type of a gcc2 | |
+ builtin and then its argument prototype would still apply. */ | |
+char newterm(); | |
+ | |
+int main() { | |
+newterm() | |
+; return 0; } | |
EOF | |
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:1792: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
-if test -z "$ac_err"; then | |
+if { (eval echo configure:1880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
- eval "ac_cv_header_$ac_safe=yes" | |
+ eval "ac_cv_lib_$ac_lib_var=yes" | |
else | |
- echo "$ac_err" >&5 | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_header_$ac_safe=no" | |
+ eval "ac_cv_lib_$ac_lib_var=no" | |
fi | |
rm -f conftest* | |
+LIBS="$ac_save_LIBS" | |
+ | |
fi | |
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
echo "$ac_t""yes" 1>&6 | |
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEF… | |
+ ac_tr_lib=HAVE_LIB`echo ncurses | sed -e 's/[^a-zA-Z0-9_]/_/g' \ | |
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` | |
cat >> confdefs.h <<EOF | |
-#define $ac_tr_hdr 1 | |
+#define $ac_tr_lib 1 | |
EOF | |
- | |
+ | |
+ LIBS="-lncurses $LIBS" | |
+ | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
-done | |
-for ac_func in getpagesize | |
-do | |
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:1821: checking for $ac_func" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
+ if test "$ac_cv_lib_ncurses_newterm" = "no" ; then | |
+ echo $ac_n "checking for newterm in -lcurses""... $ac_c" 1>&6 | |
+echo "configure:1909: checking for newterm in -lcurses" >&5 | |
+ac_lib_var=`echo curses'_'newterm | sed 'y%./+-%__p_%'` | |
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 1826 "configure" | |
+ ac_save_LIBS="$LIBS" | |
+LIBS="-lcurses $LIBS" | |
+cat > conftest.$ac_ext <<EOF | |
+#line 1917 "configure" | |
#include "confdefs.h" | |
-/* System header to define __stub macros and hopefully few prototypes, | |
- which can conflict with char $ac_func(); below. */ | |
-#include <assert.h> | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
builtin and then its argument prototype would still apply. */ | |
-char $ac_func(); | |
+char newterm(); | |
int main() { | |
- | |
-/* The GNU C library defines this for functions which it implements | |
- to always fail with ENOSYS. Some functions are actually named | |
- something starting with __ and the normal name is an alias. */ | |
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
-choke me | |
-#else | |
-$ac_func(); | |
-#endif | |
- | |
+newterm() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:1849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:1928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=yes" | |
+ eval "ac_cv_lib_$ac_lib_var=yes" | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=no" | |
+ eval "ac_cv_lib_$ac_lib_var=no" | |
fi | |
rm -f conftest* | |
-fi | |
+LIBS="$ac_save_LIBS" | |
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
+fi | |
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
echo "$ac_t""yes" 1>&6 | |
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGH… | |
+ ac_tr_lib=HAVE_LIB`echo curses | sed -e 's/[^a-zA-Z0-9_]/_/g' \ | |
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` | |
cat >> confdefs.h <<EOF | |
-#define $ac_tr_func 1 | |
-EOF | |
- | |
-else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
-done | |
- | |
-echo $ac_n "checking for working mmap""... $ac_c" 1>&6 | |
-echo "configure:1874: checking for working mmap" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- if test "$cross_compiling" = yes; then | |
- ac_cv_func_mmap_fixed_mapped=no | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 1882 "configure" | |
-#include "confdefs.h" | |
- | |
-/* Thanks to Mike Haertel and Jim Avera for this test. | |
- Here is a matrix of mmap possibilities: | |
- mmap private not fixed | |
- mmap private fixed at somewhere currently unmapped | |
- mmap private fixed at somewhere already mapped | |
- mmap shared not fixed | |
- mmap shared fixed at somewhere currently unmapped | |
- mmap shared fixed at somewhere already mapped | |
- For private mappings, we should verify that changes cannot be read() | |
- back from the file, nor mmap's back from the file at a different | |
- address. (There have been systems where private was not correctly | |
- implemented like the infamous i386 svr4.0, and systems where the | |
- VM page cache was not coherent with the filesystem buffer cache | |
- like early versions of FreeBSD and possibly contemporary NetBSD.) | |
- For shared mappings, we should conversely verify that changes get | |
- propogated back to all the places they're supposed to be. | |
- | |
- Grep wants private fixed already mapped. | |
- The main things grep needs to know about mmap are: | |
- * does it exist and is it safe to write into the mmap'd area | |
- * how to use it (BSD variants) */ | |
-#include <sys/types.h> | |
-#include <fcntl.h> | |
-#include <sys/mman.h> | |
- | |
-/* This mess was copied from the GNU getpagesize.h. */ | |
-#ifndef HAVE_GETPAGESIZE | |
-# ifdef HAVE_UNISTD_H | |
-# include <unistd.h> | |
-# endif | |
- | |
-/* Assume that all systems that can run configure have sys/param.h. */ | |
-# ifndef HAVE_SYS_PARAM_H | |
-# define HAVE_SYS_PARAM_H 1 | |
-# endif | |
- | |
-# ifdef _SC_PAGESIZE | |
-# define getpagesize() sysconf(_SC_PAGESIZE) | |
-# else /* no _SC_PAGESIZE */ | |
-# ifdef HAVE_SYS_PARAM_H | |
-# include <sys/param.h> | |
-# ifdef EXEC_PAGESIZE | |
-# define getpagesize() EXEC_PAGESIZE | |
-# else /* no EXEC_PAGESIZE */ | |
-# ifdef NBPG | |
-# define getpagesize() NBPG * CLSIZE | |
-# ifndef CLSIZE | |
-# define CLSIZE 1 | |
-# endif /* no CLSIZE */ | |
-# else /* no NBPG */ | |
-# ifdef NBPC | |
-# define getpagesize() NBPC | |
-# else /* no NBPC */ | |
-# ifdef PAGESIZE | |
-# define getpagesize() PAGESIZE | |
-# endif /* PAGESIZE */ | |
-# endif /* no NBPC */ | |
-# endif /* no NBPG */ | |
-# endif /* no EXEC_PAGESIZE */ | |
-# else /* no HAVE_SYS_PARAM_H */ | |
-# define getpagesize() 8192 /* punt totally */ | |
-# endif /* no HAVE_SYS_PARAM_H */ | |
-# endif /* no _SC_PAGESIZE */ | |
- | |
-#endif /* no HAVE_GETPAGESIZE */ | |
- | |
-#ifdef __cplusplus | |
-extern "C" { void *malloc(unsigned); } | |
-#else | |
-char *malloc(); | |
-#endif | |
- | |
-int | |
-main() | |
-{ | |
- char *data, *data2, *data3; | |
- int i, pagesize; | |
- int fd; | |
- | |
- pagesize = getpagesize(); | |
- | |
- /* | |
- * First, make a file with some known garbage in it. | |
- */ | |
- data = malloc(pagesize); | |
- if (!data) | |
- exit(1); | |
- for (i = 0; i < pagesize; ++i) | |
- *(data + i) = rand(); | |
- umask(0); | |
- fd = creat("conftestmmap", 0600); | |
- if (fd < 0) | |
- exit(1); | |
- if (write(fd, data, pagesize) != pagesize) | |
- exit(1); | |
- close(fd); | |
- | |
- /* | |
- * Next, try to mmap the file at a fixed address which | |
- * already has something else allocated at it. If we can, | |
- * also make sure that we see the same garbage. | |
- */ | |
- fd = open("conftestmmap", O_RDWR); | |
- if (fd < 0) | |
- exit(1); | |
- data2 = malloc(2 * pagesize); | |
- if (!data2) | |
- exit(1); | |
- data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); | |
- if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE, | |
- MAP_PRIVATE | MAP_FIXED, fd, 0L)) | |
- exit(1); | |
- for (i = 0; i < pagesize; ++i) | |
- if (*(data + i) != *(data2 + i)) | |
- exit(1); | |
- | |
- /* | |
- * Finally, make sure that changes to the mapped area | |
- * do not percolate back to the file as seen by read(). | |
- * (This is a bug on some variants of i386 svr4.0.) | |
- */ | |
- for (i = 0; i < pagesize; ++i) | |
- *(data2 + i) = *(data2 + i) + 1; | |
- data3 = malloc(pagesize); | |
- if (!data3) | |
- exit(1); | |
- if (read(fd, data3, pagesize) != pagesize) | |
- exit(1); | |
- for (i = 0; i < pagesize; ++i) | |
- if (*(data + i) != *(data3 + i)) | |
- exit(1); | |
- close(fd); | |
- unlink("conftestmmap"); | |
- exit(0); | |
-} | |
- | |
-EOF | |
-if { (eval echo configure:2022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
-then | |
- ac_cv_func_mmap_fixed_mapped=yes | |
-else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -fr conftest* | |
- ac_cv_func_mmap_fixed_mapped=no | |
-fi | |
-rm -fr conftest* | |
-fi | |
- | |
-fi | |
- | |
-echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6 | |
-if test $ac_cv_func_mmap_fixed_mapped = yes; then | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_MMAP 1 | |
+#define $ac_tr_lib 1 | |
EOF | |
-fi | |
+ LIBS="-lcurses $LIBS" | |
- | |
- for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h string.h \ | |
-unistd.h sys/param.h | |
-do | |
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | |
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | |
-echo "configure:2050: checking for $ac_hdr" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 2055 "configure" | |
-#include "confdefs.h" | |
-#include <$ac_hdr> | |
-EOF | |
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:2060: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
-if test -z "$ac_err"; then | |
- rm -rf conftest* | |
- eval "ac_cv_header_$ac_safe=yes" | |
-else | |
- echo "$ac_err" >&5 | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- eval "ac_cv_header_$ac_safe=no" | |
-fi | |
-rm -f conftest* | |
-fi | |
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEF… | |
- cat >> confdefs.h <<EOF | |
-#define $ac_tr_hdr 1 | |
-EOF | |
- | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
-done | |
- for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \ | |
-strdup __argz_count __argz_stringify __argz_next | |
-do | |
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:2090: checking for $ac_func" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
+ if test "$ac_cv_lib_curses_newterm" = "no" ; then | |
+ echo $ac_n "checking for newterm in -lcur_colr""... $ac_c" 1>&6 | |
+echo "configure:1957: checking for newterm in -lcur_colr" >&5 | |
+ac_lib_var=`echo cur_colr'_'newterm | sed 'y%./+-%__p_%'` | |
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 2095 "configure" | |
+ ac_save_LIBS="$LIBS" | |
+LIBS="-lcur_colr $LIBS" | |
+cat > conftest.$ac_ext <<EOF | |
+#line 1965 "configure" | |
#include "confdefs.h" | |
-/* System header to define __stub macros and hopefully few prototypes, | |
- which can conflict with char $ac_func(); below. */ | |
-#include <assert.h> | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
builtin and then its argument prototype would still apply. */ | |
-char $ac_func(); | |
+char newterm(); | |
int main() { | |
- | |
-/* The GNU C library defines this for functions which it implements | |
- to always fail with ENOSYS. Some functions are actually named | |
- something starting with __ and the normal name is an alias. */ | |
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
-choke me | |
-#else | |
-$ac_func(); | |
-#endif | |
- | |
+newterm() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:2118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:1976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=yes" | |
+ eval "ac_cv_lib_$ac_lib_var=yes" | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=no" | |
+ eval "ac_cv_lib_$ac_lib_var=no" | |
fi | |
rm -f conftest* | |
-fi | |
+LIBS="$ac_save_LIBS" | |
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
+fi | |
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
echo "$ac_t""yes" 1>&6 | |
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGH… | |
+ ac_tr_lib=HAVE_LIB`echo cur_colr | sed -e 's/[^a-zA-Z0-9_]/_/g' \ | |
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` | |
cat >> confdefs.h <<EOF | |
-#define $ac_tr_func 1 | |
+#define $ac_tr_lib 1 | |
EOF | |
- | |
-else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
-done | |
- | |
- | |
- if test "${ac_cv_func_stpcpy+set}" != "set"; then | |
- for ac_func in stpcpy | |
-do | |
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:2147: checking for $ac_func" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 2152 "configure" | |
-#include "confdefs.h" | |
-/* System header to define __stub macros and hopefully few prototypes, | |
- which can conflict with char $ac_func(); below. */ | |
-#include <assert.h> | |
-/* Override any gcc2 internal prototype to avoid an error. */ | |
-/* We use char because int might match the return type of a gcc2 | |
- builtin and then its argument prototype would still apply. */ | |
-char $ac_func(); | |
- | |
-int main() { | |
- | |
-/* The GNU C library defines this for functions which it implements | |
- to always fail with ENOSYS. Some functions are actually named | |
- something starting with __ and the normal name is an alias. */ | |
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
-choke me | |
-#else | |
-$ac_func(); | |
-#endif | |
-; return 0; } | |
-EOF | |
-if { (eval echo configure:2175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
- rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=yes" | |
-else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=no" | |
-fi | |
-rm -f conftest* | |
-fi | |
+ LIBS="-lcur_colr $LIBS" | |
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGH… | |
- cat >> confdefs.h <<EOF | |
-#define $ac_tr_func 1 | |
-EOF | |
- | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
-done | |
- | |
- fi | |
- if test "${ac_cv_func_stpcpy}" = "yes"; then | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_STPCPY 1 | |
-EOF | |
+ if test "$ac_cv_lib_cur_colr_newterm" = "no" ; then | |
+ echo "configure: warning: Cannot find any curses-type library" … | |
+ CURSES_CLIENT="no" | |
+ fi | |
+ fi | |
+ fi | |
fi | |
- if test $ac_cv_header_locale_h = yes; then | |
- echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 | |
-echo "configure:2209: checking for LC_MESSAGES" >&5 | |
-if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 2214 "configure" | |
-#include "confdefs.h" | |
-#include <locale.h> | |
-int main() { | |
-return LC_MESSAGES | |
-; return 0; } | |
-EOF | |
-if { (eval echo configure:2221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
- rm -rf conftest* | |
- am_cv_val_LC_MESSAGES=yes | |
+ if test "$GUI_CLIENT" = "yes" ; then | |
+ # Check whether --with-gtk-prefix or --without-gtk-prefix was give… | |
+if test "${with_gtk_prefix+set}" = set; then | |
+ withval="$with_gtk_prefix" | |
+ gtk_config_prefix="$withval" | |
else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- am_cv_val_LC_MESSAGES=no | |
-fi | |
-rm -f conftest* | |
+ gtk_config_prefix="" | |
fi | |
-echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6 | |
- if test $am_cv_val_LC_MESSAGES = yes; then | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_LC_MESSAGES 1 | |
-EOF | |
- | |
- fi | |
- fi | |
- echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 | |
-echo "configure:2242: checking whether NLS is requested" >&5 | |
- # Check whether --enable-nls or --disable-nls was given. | |
-if test "${enable_nls+set}" = set; then | |
- enableval="$enable_nls" | |
- USE_NLS=$enableval | |
+# Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given. | |
+if test "${with_gtk_exec_prefix+set}" = set; then | |
+ withval="$with_gtk_exec_prefix" | |
+ gtk_config_exec_prefix="$withval" | |
else | |
- USE_NLS=yes | |
+ gtk_config_exec_prefix="" | |
fi | |
- echo "$ac_t""$USE_NLS" 1>&6 | |
- | |
- | |
- USE_INCLUDED_LIBINTL=no | |
- | |
- if test "$USE_NLS" = "yes"; then | |
- cat >> confdefs.h <<\EOF | |
-#define ENABLE_NLS 1 | |
-EOF | |
- | |
- echo $ac_n "checking whether included gettext is requested""... $ac_c" 1… | |
-echo "configure:2262: checking whether included gettext is requested" >&5 | |
- # Check whether --with-included-gettext or --without-included-gettext wa… | |
-if test "${with_included_gettext+set}" = set; then | |
- withval="$with_included_gettext" | |
- nls_cv_force_use_gnu_gettext=$withval | |
+# Check whether --enable-gtktest or --disable-gtktest was given. | |
+if test "${enable_gtktest+set}" = set; then | |
+ enableval="$enable_gtktest" | |
+ : | |
else | |
- nls_cv_force_use_gnu_gettext=no | |
+ enable_gtktest=yes | |
fi | |
- echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6 | |
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" | |
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then | |
- nls_cv_header_intl= | |
- nls_cv_header_libgt= | |
- CATOBJEXT=NONE | |
+ for module in . | |
+ do | |
+ case "$module" in | |
+ gthread) | |
+ gtk_config_args="$gtk_config_args gthread" | |
+ ;; | |
+ esac | |
+ done | |
- ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` | |
-echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 | |
-echo "configure:2281: checking for libintl.h" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
+ if test x$gtk_config_exec_prefix != x ; then | |
+ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" | |
+ if test x${GTK_CONFIG+set} != xset ; then | |
+ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config | |
+ fi | |
+ fi | |
+ if test x$gtk_config_prefix != x ; then | |
+ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" | |
+ if test x${GTK_CONFIG+set} != xset ; then | |
+ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config | |
+ fi | |
+ fi | |
+ | |
+ # Extract the first word of "gtk-config", so it can be a program name with a… | |
+set dummy gtk-config; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:2062: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 2286 "configure" | |
-#include "confdefs.h" | |
-#include <libintl.h> | |
-EOF | |
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:2291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
-if test -z "$ac_err"; then | |
- rm -rf conftest* | |
- eval "ac_cv_header_$ac_safe=yes" | |
-else | |
- echo "$ac_err" >&5 | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- eval "ac_cv_header_$ac_safe=no" | |
+ case "$GTK_CONFIG" in | |
+ /*) | |
+ ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a … | |
+ ;; | |
+ ?:/*) | |
+ ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a … | |
+ ;; | |
+ *) | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
+ ac_dummy="$PATH" | |
+ for ac_dir in $ac_dummy; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ ac_cv_path_GTK_CONFIG="$ac_dir/$ac_word" | |
+ break | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
+ test -z "$ac_cv_path_GTK_CONFIG" && ac_cv_path_GTK_CONFIG="no" | |
+ ;; | |
+esac | |
fi | |
-rm -f conftest* | |
+GTK_CONFIG="$ac_cv_path_GTK_CONFIG" | |
+if test -n "$GTK_CONFIG"; then | |
+ echo "$ac_t""$GTK_CONFIG" 1>&6 | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
fi | |
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 | |
-echo "configure:2308: checking for gettext in libc" >&5 | |
-if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
+ | |
+ min_gtk_version=1.2.0 | |
+ echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6 | |
+echo "configure:2097: checking for GTK - version >= $min_gtk_version" >&5 | |
+ no_gtk="" | |
+ if test "$GTK_CONFIG" = "no" ; then | |
+ no_gtk=yes | |
+ else | |
+ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags` | |
+ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs` | |
+ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \ | |
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` | |
+ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \ | |
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` | |
+ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \ | |
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` | |
+ if test "x$enable_gtktest" = "xyes" ; then | |
+ ac_save_CFLAGS="$CFLAGS" | |
+ ac_save_LIBS="$LIBS" | |
+ CFLAGS="$CFLAGS $GTK_CFLAGS" | |
+ LIBS="$GTK_LIBS $LIBS" | |
+ rm -f conf.gtktest | |
+ if test "$cross_compiling" = yes; then | |
+ echo $ac_n "cross compiling; assumed OK... $ac_c" | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 2313 "configure" | |
+#line 2120 "configure" | |
#include "confdefs.h" | |
-#include <libintl.h> | |
-int main() { | |
-return (int) gettext ("") | |
-; return 0; } | |
-EOF | |
-if { (eval echo configure:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
- rm -rf conftest* | |
- gt_cv_func_gettext_libc=yes | |
-else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- gt_cv_func_gettext_libc=no | |
-fi | |
-rm -f conftest* | |
-fi | |
-echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6 | |
+#include <gtk/gtk.h> | |
+#include <stdio.h> | |
+#include <stdlib.h> | |
- if test "$gt_cv_func_gettext_libc" != "yes"; then | |
- echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 | |
-echo "configure:2336: checking for bindtextdomain in -lintl" >&5 | |
-ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` | |
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- ac_save_LIBS="$LIBS" | |
-LIBS="-lintl $LIBS" | |
-cat > conftest.$ac_ext <<EOF | |
-#line 2344 "configure" | |
-#include "confdefs.h" | |
-/* Override any gcc2 internal prototype to avoid an error. */ | |
-/* We use char because int might match the return type of a gcc2 | |
- builtin and then its argument prototype would still apply. */ | |
-char bindtextdomain(); | |
+int | |
+main () | |
+{ | |
+ int major, minor, micro; | |
+ char *tmp_version; | |
+ | |
+ system ("touch conf.gtktest"); | |
+ | |
+ /* HP/UX 9 (%@#!) writes to sscanf strings */ | |
+ tmp_version = g_strdup("$min_gtk_version"); | |
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { | |
+ printf("%s, bad version string\n", "$min_gtk_version"); | |
+ exit(1); | |
+ } | |
+ | |
+ if ((gtk_major_version != $gtk_config_major_version) || | |
+ (gtk_minor_version != $gtk_config_minor_version) || | |
+ (gtk_micro_version != $gtk_config_micro_version)) | |
+ { | |
+ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.… | |
+ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config… | |
+ gtk_major_version, gtk_minor_version, gtk_micro_version); | |
+ printf ("*** was found! If gtk-config was correct, then it is best\n"); | |
+ printf ("*** to remove the old version of GTK+. You may also be able to … | |
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by… | |
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\… | |
+ printf("*** required on your system.\n"); | |
+ printf("*** If gtk-config was wrong, set the environment variable GTK_CO… | |
+ printf("*** to point to the correct copy of gtk-config, and remove the f… | |
+ printf("*** before re-running configure\n"); | |
+ } | |
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK… | |
+ else if ((gtk_major_version != GTK_MAJOR_VERSION) || | |
+ (gtk_minor_version != GTK_MINOR_VERSION) || | |
+ (gtk_micro_version != GTK_MICRO_VERSION)) | |
+ { | |
+ printf("*** GTK+ header files (version %d.%d.%d) do not match\n", | |
+ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); | |
+ printf("*** library (version %d.%d.%d)\n", | |
+ gtk_major_version, gtk_minor_version, gtk_micro_version); | |
+ } | |
+#endif /* defined (GTK_MAJOR_VERSION) ... */ | |
+ else | |
+ { | |
+ if ((gtk_major_version > major) || | |
+ ((gtk_major_version == major) && (gtk_minor_version > minor)) || | |
+ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_… | |
+ { | |
+ return 0; | |
+ } | |
+ else | |
+ { | |
+ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", | |
+ gtk_major_version, gtk_minor_version, gtk_micro_version); | |
+ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest… | |
+ major, minor, micro); | |
+ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); | |
+ printf("***\n"); | |
+ printf("*** If you have already installed a sufficiently new version, … | |
+ printf("*** probably means that the wrong copy of the gtk-config shell… | |
+ printf("*** being found. The easiest way to fix this is to remove the … | |
+ printf("*** of GTK+, but you can also set the GTK_CONFIG environment t… | |
+ printf("*** correct copy of gtk-config. (In this case, you will have t… | |
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /… | |
+ printf("*** so that the correct libraries are found at run-time))\n"); | |
+ } | |
+ } | |
+ return 1; | |
+} | |
-int main() { | |
-bindtextdomain() | |
-; return 0; } | |
EOF | |
-if { (eval echo configure:2355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
- rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=yes" | |
+if { (eval echo configure:2198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+then | |
+ : | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=no" | |
+ rm -fr conftest* | |
+ no_gtk=yes | |
fi | |
-rm -f conftest* | |
-LIBS="$ac_save_LIBS" | |
- | |
+rm -fr conftest* | |
fi | |
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 | |
-echo "configure:2371: checking for gettext in libintl" >&5 | |
-if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 | |
-echo "configure:2376: checking for gettext in -lintl" >&5 | |
-ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` | |
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- ac_save_LIBS="$LIBS" | |
-LIBS="-lintl $LIBS" | |
-cat > conftest.$ac_ext <<EOF | |
-#line 2384 "configure" | |
+ | |
+ CFLAGS="$ac_save_CFLAGS" | |
+ LIBS="$ac_save_LIBS" | |
+ fi | |
+ fi | |
+ if test "x$no_gtk" = x ; then | |
+ echo "$ac_t""yes" 1>&6 | |
+ gtk_found="yes" | |
+ else | |
+ echo "$ac_t""no" 1>&6 | |
+ if test "$GTK_CONFIG" = "no" ; then | |
+ echo "*** The gtk-config script installed by GTK could not be found" | |
+ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in" | |
+ echo "*** your path, or set the GTK_CONFIG environment variable to the" | |
+ echo "*** full path to gtk-config." | |
+ else | |
+ if test -f conf.gtktest ; then | |
+ : | |
+ else | |
+ echo "*** Could not run GTK test program, checking why..." | |
+ CFLAGS="$CFLAGS $GTK_CFLAGS" | |
+ LIBS="$LIBS $GTK_LIBS" | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2232 "configure" | |
#include "confdefs.h" | |
-/* Override any gcc2 internal prototype to avoid an error. */ | |
-/* We use char because int might match the return type of a gcc2 | |
- builtin and then its argument prototype would still apply. */ | |
-char gettext(); | |
+ | |
+#include <gtk/gtk.h> | |
+#include <stdio.h> | |
int main() { | |
-gettext() | |
+ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:2395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:2242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=yes" | |
+ echo "*** The test program compiled, but did not run. This usually means" | |
+ echo "*** that the run-time linker is not finding GTK or finding the… | |
+ echo "*** version of GTK. If it is not finding GTK, you'll need to s… | |
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.c… | |
+ echo "*** to the installed location Also, make sure you have run ld… | |
+ echo "*** is required on your system" | |
+ echo "***" | |
+ echo "*** If you have an old version installed, it is best to remove… | |
+ echo "*** you may also be able to get things to work by modifying LD… | |
+ echo "***" | |
+ echo "*** If you have a RedHat 5.0 system, you should remove the GTK… | |
+ echo "*** came with the system with the command" | |
+ echo "***" | |
+ echo "*** rpm --erase --nodeps gtk gtk-devel" | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=no" | |
+ echo "*** The test program failed to compile or link. See the file config.l… | |
+ echo "*** exact error that occured. This usually means GTK was incor… | |
+ echo "*** or that you have moved GTK since it was installed. In the … | |
+ echo "*** may want to edit the gtk-config script: $GTK_CONFIG" | |
fi | |
rm -f conftest* | |
-LIBS="$ac_save_LIBS" | |
+ CFLAGS="$ac_save_CFLAGS" | |
+ LIBS="$ac_save_LIBS" | |
+ fi | |
+ fi | |
+ GTK_CFLAGS="" | |
+ GTK_LIBS="" | |
+ gtk_found="no" | |
+ fi | |
+ | |
+ | |
+ rm -f conf.gtktest | |
-fi | |
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
+ if test "$gtk_found" = "no" ; then | |
+ echo "configure: warning: Cannot find GTK+" 1>&2 | |
+ GUI_CLIENT="no" | |
+ else | |
+ echo $ac_n "checking for non-buggy GTK+ ( >= 1.2.10 )""... $ac_c" 1>&6 | |
+echo "configure:2285: checking for non-buggy GTK+ ( >= 1.2.10 )" >&5 | |
+ if test "$gtk_config_major_version" -gt 1 ; then | |
+ HAVE_FIXED_GTK="yes" | |
+ elif test "$gtk_config_major_version" -eq 1 ; then | |
+ if test "$gtk_config_minor_version" -gt 2 ; then | |
+ HAVE_FIXED_GTK="yes" | |
+ elif test "$gtk_config_minor_version" -eq 2 -a \ | |
+ "$gtk_config_micro_version" -ge 10 ; then | |
+ HAVE_FIXED_GTK="yes" | |
+ fi | |
+ fi | |
+ echo "$ac_t"""$HAVE_FIXED_GTK"" 1>&6 | |
+ fi | |
+ fi | |
+ | |
+ CFLAGS="$CFLAGS `glib-config --cflags`" | |
+ LDFLAGS="$LDFLAGS `glib-config --libs`" | |
+ | |
+ GUI_SERVER="no" | |
+ | |
+ echo $ac_n "checking for socklen_t data type""... $ac_c" 1>&6 | |
+echo "configure:2306: checking for socklen_t data type" >&5 | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2308 "configure" | |
+#include "confdefs.h" | |
+#include <sys/types.h> | |
+ #include <sys/socket.h> | |
+int main() { | |
+socklen_t val | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:2316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
+ rm -rf conftest* | |
echo "$ac_t""yes" 1>&6 | |
- gt_cv_func_gettext_libintl=yes | |
+ cat >> confdefs.h <<\EOF | |
+#define HAVE_SOCKLEN_T 1 | |
+EOF | |
+ | |
else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
echo "$ac_t""no" 1>&6 | |
-gt_cv_func_gettext_libintl=no | |
fi | |
- | |
+rm -f conftest* | |
fi | |
-echo "$ac_t""$gt_cv_func_gettext_libintl" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
+ALL_LINGUAS="de pl pt_BR fr" | |
+ | |
+# Make sure we can run config.sub. | |
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : | |
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } | |
fi | |
- fi | |
+echo $ac_n "checking host system type""... $ac_c" 1>&6 | |
+echo "configure:2340: checking host system type" >&5 | |
- if test "$gt_cv_func_gettext_libc" = "yes" \ | |
- || test "$gt_cv_func_gettext_libintl" = "yes"; then | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_GETTEXT 1 | |
-EOF | |
+host_alias=$host | |
+case "$host_alias" in | |
+NONE) | |
+ case $nonopt in | |
+ NONE) | |
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : | |
+ else { echo "configure: error: can not guess host type; you must specify o… | |
+ fi ;; | |
+ *) host_alias=$nonopt ;; | |
+ esac ;; | |
+esac | |
- # Extract the first word of "msgfmt", so it can be a program nam… | |
-set dummy msgfmt; ac_word=$2 | |
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` | |
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` | |
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` | |
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` | |
+echo "$ac_t""$host" 1>&6 | |
+ | |
+# Extract the first word of "ranlib", so it can be a program name with args. | |
+set dummy ranlib; ac_word=$2 | |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2434: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then | |
+echo "configure:2363: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- case "$MSGFMT" in | |
- /*) | |
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
- for ac_dir in $PATH; do | |
+ if test -n "$RANLIB"; then | |
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. | |
+else | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
+ ac_dummy="$PATH" | |
+ for ac_dir in $ac_dummy; do | |
test -z "$ac_dir" && ac_dir=. | |
if test -f $ac_dir/$ac_word; then | |
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then | |
- ac_cv_path_MSGFMT="$ac_dir/$ac_word" | |
- break | |
- fi | |
+ ac_cv_prog_RANLIB="ranlib" | |
+ break | |
fi | |
done | |
IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" | |
- ;; | |
-esac | |
+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" | |
fi | |
-MSGFMT="$ac_cv_path_MSGFMT" | |
-if test -n "$MSGFMT"; then | |
- echo "$ac_t""$MSGFMT" 1>&6 | |
+fi | |
+RANLIB="$ac_cv_prog_RANLIB" | |
+if test -n "$RANLIB"; then | |
+ echo "$ac_t""$RANLIB" 1>&6 | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
- if test "$MSGFMT" != "no"; then | |
- for ac_func in dcgettext | |
-do | |
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:2468: checking for $ac_func" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
+ | |
+echo $ac_n "checking for working const""... $ac_c" 1>&6 | |
+echo "configure:2391: checking for working const" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 2473 "configure" | |
+#line 2396 "configure" | |
#include "confdefs.h" | |
-/* System header to define __stub macros and hopefully few prototypes, | |
- which can conflict with char $ac_func(); below. */ | |
-#include <assert.h> | |
-/* Override any gcc2 internal prototype to avoid an error. */ | |
-/* We use char because int might match the return type of a gcc2 | |
- builtin and then its argument prototype would still apply. */ | |
-char $ac_func(); | |
int main() { | |
-/* The GNU C library defines this for functions which it implements | |
- to always fail with ENOSYS. Some functions are actually named | |
- something starting with __ and the normal name is an alias. */ | |
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
-choke me | |
-#else | |
-$ac_func(); | |
-#endif | |
+/* Ultrix mips cc rejects this. */ | |
+typedef int charset[2]; const charset x; | |
+/* SunOS 4.1.1 cc rejects this. */ | |
+char const *const *ccp; | |
+char **p; | |
+/* NEC SVR4.0.2 mips cc rejects this. */ | |
+struct point {int x, y;}; | |
+static struct point const zero = {0,0}; | |
+/* AIX XL C 1.02.0.0 rejects this. | |
+ It does not let you subtract one const X* pointer from another in an arm | |
+ of an if-expression whose if-part is not a constant expression */ | |
+const char *g = "string"; | |
+ccp = &g + (g ? g-g : 0); | |
+/* HPUX 7.0 cc rejects these. */ | |
+++ccp; | |
+p = (char**) ccp; | |
+ccp = (char const *const *) p; | |
+{ /* SCO 3.2v4 cc rejects this. */ | |
+ char *t; | |
+ char const *s = 0 ? (char *) 0 : (char const *) 0; | |
+ | |
+ *t++ = 0; | |
+} | |
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ | |
+ int x[] = {25, 17}; | |
+ const int *foo = &x[0]; | |
+ ++foo; | |
+} | |
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ | |
+ typedef const int *iptr; | |
+ iptr p = 0; | |
+ ++p; | |
+} | |
+{ /* AIX XL C 1.02.0.0 rejects this saying | |
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ | |
+ struct s { int j; const int *ap[3]; }; | |
+ struct s *b; b->j = 5; | |
+} | |
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ | |
+ const int foo = 10; | |
+} | |
; return 0; } | |
EOF | |
-if { (eval echo configure:2496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:2445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=yes" | |
+ ac_cv_c_const=yes | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_func_$ac_func=no" | |
+ ac_cv_c_const=no | |
fi | |
rm -f conftest* | |
fi | |
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGH… | |
- cat >> confdefs.h <<EOF | |
-#define $ac_tr_func 1 | |
+echo "$ac_t""$ac_cv_c_const" 1>&6 | |
+if test $ac_cv_c_const = no; then | |
+ cat >> confdefs.h <<\EOF | |
+#define const | |
EOF | |
- | |
-else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
-done | |
- # Extract the first word of "gmsgfmt", so it can be a program … | |
-set dummy gmsgfmt; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2523: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- case "$GMSGFMT" in | |
- /*) | |
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. | |
- ;; | |
- ?:/*) | |
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos pa… | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
- ac_dummy="$PATH" | |
- for ac_dir in $ac_dummy; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- ac_cv_path_GMSGFMT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" | |
- ;; | |
-esac | |
-fi | |
-GMSGFMT="$ac_cv_path_GMSGFMT" | |
-if test -n "$GMSGFMT"; then | |
- echo "$ac_t""$GMSGFMT" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
fi | |
- # Extract the first word of "xgettext", so it can be a program… | |
-set dummy xgettext; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2559: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then | |
+echo $ac_n "checking for inline""... $ac_c" 1>&6 | |
+echo "configure:2466: checking for inline" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- case "$XGETTEXT" in | |
- /*) | |
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
- for ac_dir in $PATH; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then | |
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" | |
- ;; | |
-esac | |
-fi | |
-XGETTEXT="$ac_cv_path_XGETTEXT" | |
-if test -n "$XGETTEXT"; then | |
- echo "$ac_t""$XGETTEXT" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
- | |
- cat > conftest.$ac_ext <<EOF | |
-#line 2591 "configure" | |
+ ac_cv_c_inline=no | |
+for ac_kw in inline __inline__ __inline; do | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2473 "configure" | |
#include "confdefs.h" | |
int main() { | |
-extern int _nl_msg_cat_cntr; | |
- return _nl_msg_cat_cntr | |
+} $ac_kw foo() { | |
; return 0; } | |
EOF | |
-if { (eval echo configure:2599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:2480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
rm -rf conftest* | |
- CATOBJEXT=.gmo | |
- DATADIRNAME=share | |
+ ac_cv_c_inline=$ac_kw; break | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- CATOBJEXT=.mo | |
- DATADIRNAME=lib | |
fi | |
rm -f conftest* | |
- INSTOBJEXT=.mo | |
- fi | |
- fi | |
- | |
-else | |
- echo "$ac_t""no" 1>&6 | |
+done | |
+ | |
fi | |
+echo "$ac_t""$ac_cv_c_inline" 1>&6 | |
+case "$ac_cv_c_inline" in | |
+ inline | yes) ;; | |
+ no) cat >> confdefs.h <<\EOF | |
+#define inline | |
+EOF | |
+ ;; | |
+ *) cat >> confdefs.h <<EOF | |
+#define inline $ac_cv_c_inline | |
+EOF | |
+ ;; | |
+esac | |
- if test "$CATOBJEXT" = "NONE"; then | |
- echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 | |
-echo "configure:2622: checking whether catgets can be used" >&5 | |
- # Check whether --with-catgets or --without-catgets was given. | |
-if test "${with_catgets+set}" = set; then | |
- withval="$with_catgets" | |
- nls_cv_use_catgets=$withval | |
+echo $ac_n "checking for off_t""... $ac_c" 1>&6 | |
+echo "configure:2506: checking for off_t" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2511 "configure" | |
+#include "confdefs.h" | |
+#include <sys/types.h> | |
+#if STDC_HEADERS | |
+#include <stdlib.h> | |
+#include <stddef.h> | |
+#endif | |
+EOF | |
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
+ egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then | |
+ rm -rf conftest* | |
+ ac_cv_type_off_t=yes | |
else | |
- nls_cv_use_catgets=no | |
+ rm -rf conftest* | |
+ ac_cv_type_off_t=no | |
fi | |
+rm -f conftest* | |
- echo "$ac_t""$nls_cv_use_catgets" 1>&6 | |
+fi | |
+echo "$ac_t""$ac_cv_type_off_t" 1>&6 | |
+if test $ac_cv_type_off_t = no; then | |
+ cat >> confdefs.h <<\EOF | |
+#define off_t long | |
+EOF | |
- if test "$nls_cv_use_catgets" = "yes"; then | |
- echo $ac_n "checking for main in -li""... $ac_c" 1>&6 | |
-echo "configure:2635: checking for main in -li" >&5 | |
-ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` | |
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
+fi | |
+ | |
+echo $ac_n "checking for size_t""... $ac_c" 1>&6 | |
+echo "configure:2539: checking for size_t" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- ac_save_LIBS="$LIBS" | |
-LIBS="-li $LIBS" | |
-cat > conftest.$ac_ext <<EOF | |
-#line 2643 "configure" | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2544 "configure" | |
#include "confdefs.h" | |
- | |
-int main() { | |
-main() | |
-; return 0; } | |
+#include <sys/types.h> | |
+#if STDC_HEADERS | |
+#include <stdlib.h> | |
+#include <stddef.h> | |
+#endif | |
EOF | |
-if { (eval echo configure:2650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
+ egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=yes" | |
+ ac_cv_type_size_t=yes | |
else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=no" | |
+ ac_cv_type_size_t=no | |
fi | |
rm -f conftest* | |
-LIBS="$ac_save_LIBS" | |
fi | |
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- ac_tr_lib=HAVE_LIB`echo i | sed -e 's/[^a-zA-Z0-9_]/_/g' \ | |
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` | |
- cat >> confdefs.h <<EOF | |
-#define $ac_tr_lib 1 | |
+echo "$ac_t""$ac_cv_type_size_t" 1>&6 | |
+if test $ac_cv_type_size_t = no; then | |
+ cat >> confdefs.h <<\EOF | |
+#define size_t unsigned | |
EOF | |
- LIBS="-li $LIBS" | |
- | |
-else | |
- echo "$ac_t""no" 1>&6 | |
fi | |
- echo $ac_n "checking for catgets""... $ac_c" 1>&6 | |
-echo "configure:2678: checking for catgets" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then | |
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works | |
+# for constant arguments. Useless! | |
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 | |
+echo "configure:2574: checking for working alloca.h" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 2683 "configure" | |
+#line 2579 "configure" | |
#include "confdefs.h" | |
-/* System header to define __stub macros and hopefully few prototypes, | |
- which can conflict with char catgets(); below. */ | |
-#include <assert.h> | |
-/* Override any gcc2 internal prototype to avoid an error. */ | |
-/* We use char because int might match the return type of a gcc2 | |
- builtin and then its argument prototype would still apply. */ | |
-char catgets(); | |
- | |
+#include <alloca.h> | |
int main() { | |
- | |
-/* The GNU C library defines this for functions which it implements | |
- to always fail with ENOSYS. Some functions are actually named | |
- something starting with __ and the normal name is an alias. */ | |
-#if defined (__stub_catgets) || defined (__stub___catgets) | |
-choke me | |
-#else | |
-catgets(); | |
-#endif | |
- | |
+char *p = alloca(2 * sizeof(int)); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:2706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:2586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
- eval "ac_cv_func_catgets=yes" | |
+ ac_cv_header_alloca_h=yes | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_func_catgets=no" | |
+ ac_cv_header_alloca_h=no | |
fi | |
rm -f conftest* | |
fi | |
-if eval "test \"`echo '$ac_cv_func_'catgets`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6 | |
+if test $ac_cv_header_alloca_h = yes; then | |
cat >> confdefs.h <<\EOF | |
-#define HAVE_CATGETS 1 | |
+#define HAVE_ALLOCA_H 1 | |
EOF | |
- INTLOBJS="\$(CATOBJS)" | |
- # Extract the first word of "gencat", so it can be a program na… | |
-set dummy gencat; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2728: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then | |
+fi | |
+ | |
+echo $ac_n "checking for alloca""... $ac_c" 1>&6 | |
+echo "configure:2607: checking for alloca" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- case "$GENCAT" in | |
- /*) | |
- ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a path. | |
- ;; | |
- ?:/*) | |
- ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a dos path. | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
- ac_dummy="$PATH" | |
- for ac_dir in $ac_dummy; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- ac_cv_path_GENCAT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_GENCAT" && ac_cv_path_GENCAT="no" | |
- ;; | |
-esac | |
-fi | |
-GENCAT="$ac_cv_path_GENCAT" | |
-if test -n "$GENCAT"; then | |
- echo "$ac_t""$GENCAT" 1>&6 | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2612 "configure" | |
+#include "confdefs.h" | |
+ | |
+#ifdef __GNUC__ | |
+# define alloca __builtin_alloca | |
+#else | |
+# ifdef _MSC_VER | |
+# include <malloc.h> | |
+# define alloca _alloca | |
+# else | |
+# if HAVE_ALLOCA_H | |
+# include <alloca.h> | |
+# else | |
+# ifdef _AIX | |
+ #pragma alloca | |
+# else | |
+# ifndef alloca /* predefined by HP cc +Olibcalls */ | |
+char *alloca (); | |
+# endif | |
+# endif | |
+# endif | |
+# endif | |
+#endif | |
+ | |
+int main() { | |
+char *p = (char *) alloca(1); | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:2640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ ac_cv_func_alloca_works=yes | |
else | |
- echo "$ac_t""no" 1>&6 | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
+ ac_cv_func_alloca_works=no | |
fi | |
- if test "$GENCAT" != "no"; then | |
- # Extract the first word of "gmsgfmt", so it can be a program… | |
-set dummy gmsgfmt; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2764: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- case "$GMSGFMT" in | |
- /*) | |
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. | |
- ;; | |
- ?:/*) | |
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos pa… | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
- ac_dummy="$PATH" | |
- for ac_dir in $ac_dummy; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- ac_cv_path_GMSGFMT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no" | |
- ;; | |
-esac | |
+rm -f conftest* | |
fi | |
-GMSGFMT="$ac_cv_path_GMSGFMT" | |
-if test -n "$GMSGFMT"; then | |
- echo "$ac_t""$GMSGFMT" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
+ | |
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6 | |
+if test $ac_cv_func_alloca_works = yes; then | |
+ cat >> confdefs.h <<\EOF | |
+#define HAVE_ALLOCA 1 | |
+EOF | |
+ | |
fi | |
- if test "$GMSGFMT" = "no"; then | |
- # Extract the first word of "msgfmt", so it can be a progra… | |
-set dummy msgfmt; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2801: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then | |
+if test $ac_cv_func_alloca_works = no; then | |
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions | |
+ # that cause trouble. Some versions do not even contain alloca or | |
+ # contain a buggy version. If you still want to use their alloca, | |
+ # use ar to extract alloca.o from them instead of compiling alloca.c. | |
+ ALLOCA=alloca.${ac_objext} | |
+ cat >> confdefs.h <<\EOF | |
+#define C_ALLOCA 1 | |
+EOF | |
+ | |
+ | |
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 | |
+echo "configure:2672: checking whether alloca needs Cray hooks" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- case "$GMSGFMT" in | |
- /*) | |
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
- for ac_dir in $PATH; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then | |
- ac_cv_path_GMSGFMT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no" | |
- ;; | |
-esac | |
-fi | |
-GMSGFMT="$ac_cv_path_GMSGFMT" | |
-if test -n "$GMSGFMT"; then | |
- echo "$ac_t""$GMSGFMT" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2677 "configure" | |
+#include "confdefs.h" | |
+#if defined(CRAY) && ! defined(CRAY2) | |
+webecray | |
+#else | |
+wenotbecray | |
+#endif | |
- fi | |
- # Extract the first word of "xgettext", so it can be a progra… | |
-set dummy xgettext; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2836: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
+EOF | |
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
+ egrep "webecray" >/dev/null 2>&1; then | |
+ rm -rf conftest* | |
+ ac_cv_os_cray=yes | |
else | |
- case "$XGETTEXT" in | |
- /*) | |
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
- for ac_dir in $PATH; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then | |
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" | |
- ;; | |
-esac | |
+ rm -rf conftest* | |
+ ac_cv_os_cray=no | |
fi | |
-XGETTEXT="$ac_cv_path_XGETTEXT" | |
-if test -n "$XGETTEXT"; then | |
- echo "$ac_t""$XGETTEXT" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
+rm -f conftest* | |
+ | |
fi | |
- 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 | |
+echo "$ac_t""$ac_cv_os_cray" 1>&6 | |
+if test $ac_cv_os_cray = yes; then | |
+for ac_func in _getb67 GETB67 getb67; do | |
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
+echo "configure:2702: checking for $ac_func" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2707 "configure" | |
+#include "confdefs.h" | |
+/* System header to define __stub macros and hopefully few prototypes, | |
+ which can conflict with char $ac_func(); below. */ | |
+#include <assert.h> | |
+/* Override any gcc2 internal prototype to avoid an error. */ | |
+/* We use char because int might match the return type of a gcc2 | |
+ builtin and then its argument prototype would still apply. */ | |
+char $ac_func(); | |
- fi | |
- fi | |
+int main() { | |
- if test "$CATOBJEXT" = "NONE"; then | |
- nls_cv_use_gnu_gettext=yes | |
- fi | |
- fi | |
+/* The GNU C library defines this for functions which it implements | |
+ to always fail with ENOSYS. Some functions are actually named | |
+ something starting with __ and the normal name is an alias. */ | |
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
+choke me | |
+#else | |
+$ac_func(); | |
+#endif | |
- if test "$nls_cv_use_gnu_gettext" = "yes"; then | |
- INTLOBJS="\$(GETTOBJS)" | |
- # Extract the first word of "msgfmt", so it can be a program name with… | |
-set dummy msgfmt; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2894: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:2730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ eval "ac_cv_func_$ac_func=yes" | |
else | |
- case "$MSGFMT" in | |
- /*) | |
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
- for ac_dir in $PATH; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then | |
- ac_cv_path_MSGFMT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt" | |
- ;; | |
-esac | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
+ eval "ac_cv_func_$ac_func=no" | |
fi | |
-MSGFMT="$ac_cv_path_MSGFMT" | |
-if test -n "$MSGFMT"; then | |
- echo "$ac_t""$MSGFMT" 1>&6 | |
+rm -f conftest* | |
+fi | |
+ | |
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
+ echo "$ac_t""yes" 1>&6 | |
+ cat >> confdefs.h <<EOF | |
+#define CRAY_STACKSEG_END $ac_func | |
+EOF | |
+ | |
+ break | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
- # Extract the first word of "gmsgfmt", so it can be a program name wit… | |
-set dummy gmsgfmt; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2928: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then | |
+done | |
+fi | |
+ | |
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 | |
+echo "configure:2757: checking stack direction for C alloca" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- case "$GMSGFMT" in | |
- /*) | |
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. | |
- ;; | |
- ?:/*) | |
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos pa… | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
- ac_dummy="$PATH" | |
- for ac_dir in $ac_dummy; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- ac_cv_path_GMSGFMT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" | |
- ;; | |
-esac | |
-fi | |
-GMSGFMT="$ac_cv_path_GMSGFMT" | |
-if test -n "$GMSGFMT"; then | |
- echo "$ac_t""$GMSGFMT" 1>&6 | |
+ if test "$cross_compiling" = yes; then | |
+ ac_cv_c_stack_direction=0 | |
else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
- | |
- # Extract the first word of "xgettext", so it can be a program name wi… | |
-set dummy xgettext; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:2964: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2765 "configure" | |
+#include "confdefs.h" | |
+find_stack_direction () | |
+{ | |
+ static char *addr = 0; | |
+ auto char dummy; | |
+ if (addr == 0) | |
+ { | |
+ addr = &dummy; | |
+ return find_stack_direction (); | |
+ } | |
+ else | |
+ return (&dummy > addr) ? 1 : -1; | |
+} | |
+main () | |
+{ | |
+ exit (find_stack_direction() < 0); | |
+} | |
+EOF | |
+if { (eval echo configure:2784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+then | |
+ ac_cv_c_stack_direction=1 | |
else | |
- case "$XGETTEXT" in | |
- /*) | |
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
- for ac_dir in $PATH; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then | |
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word" | |
- break | |
- fi | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" | |
- ;; | |
-esac | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -fr conftest* | |
+ ac_cv_c_stack_direction=-1 | |
fi | |
-XGETTEXT="$ac_cv_path_XGETTEXT" | |
-if test -n "$XGETTEXT"; then | |
- echo "$ac_t""$XGETTEXT" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
+rm -fr conftest* | |
fi | |
- | |
- 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 | |
- | |
- if test "$XGETTEXT" != ":"; then | |
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then | |
- : ; | |
- else | |
- echo "$ac_t""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 | |
- | |
- | |
- | |
- | |
- # 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 | |
- | |
- for lang in $ALL_LINGUAS; do | |
- GMOFILES="$GMOFILES $lang.gmo" | |
- POFILES="$POFILES $lang.po" | |
- done | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- if test "x$CATOBJEXT" != "x"; then | |
- if test "x$ALL_LINGUAS" = "x"; then | |
- LINGUAS= | |
- else | |
- echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 | |
-echo "configure:3057: checking for catalogs to be installed" >&5 | |
- NEW_LINGUAS= | |
- for lang in ${LINGUAS=$ALL_LINGUAS}; do | |
- case "$ALL_LINGUAS" in | |
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; | |
- esac | |
- done | |
- LINGUAS=$NEW_LINGUAS | |
- echo "$ac_t""$LINGUAS" 1>&6 | |
- fi | |
+fi | |
- if test -n "$LINGUAS"; then | |
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done | |
- fi | |
- fi | |
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6 | |
+cat >> confdefs.h <<EOF | |
+#define STACK_DIRECTION $ac_cv_c_stack_direction | |
+EOF | |
- 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 | |
- | |
+fi | |
- test -d intl || mkdir intl | |
- if test "$CATOBJEXT" = ".cat"; then | |
- ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` | |
-echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 | |
-echo "configure:3085: checking for linux/version.h" >&5 | |
+for ac_hdr in unistd.h | |
+do | |
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | |
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | |
+echo "configure:2809: checking for $ac_hdr" >&5 | |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3090 "configure" | |
+#line 2814 "configure" | |
#include "confdefs.h" | |
-#include <linux/version.h> | |
+#include <$ac_hdr> | |
EOF | |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:3095: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+{ (eval echo configure:2819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
if test -z "$ac_err"; then | |
rm -rf conftest* | |
t@@ -3107,1187 +2831,1214 @@ rm -f conftest* | |
fi | |
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
echo "$ac_t""yes" 1>&6 | |
- msgformat=linux | |
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEF… | |
+ cat >> confdefs.h <<EOF | |
+#define $ac_tr_hdr 1 | |
+EOF | |
+ | |
else | |
echo "$ac_t""no" 1>&6 | |
-msgformat=xopen | |
-fi | |
- | |
- | |
- sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed | |
- fi | |
- sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ | |
- $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed | |
- | |
- if test "$PACKAGE" = "gettext"; then | |
- GT_NO="#NO#" | |
- GT_YES= | |
- else | |
- GT_NO= | |
- GT_YES="#YES#" | |
- fi | |
- | |
- | |
- | |
- MKINSTALLDIRS= | |
- if test -n "$ac_aux_dir"; then | |
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" | |
- fi | |
- if test -z "$MKINSTALLDIRS"; then | |
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" | |
- fi | |
- | |
- | |
- l= | |
- | |
- | |
- 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/\(… | |
- < $srcdir/po/POTFILES.in > po/POTFILES | |
- | |
-if test "$gt_cv_func_gettext_libintl" = "yes"; then | |
- LIBS="-lintl $LIBS" | |
-fi | |
- | |
-HAVE_FIXED_GTK="no" | |
- | |
-localedir=${datadir}/locale | |
- | |
- | |
-# Check whether --enable-gui-client or --disable-gui-client was given. | |
-if test "${enable_gui_client+set}" = set; then | |
- enableval="$enable_gui_client" | |
- GUI_CLIENT="$enableval" | |
-else | |
- GUI_CLIENT="yes" | |
fi | |
+done | |
- | |
-# Check whether --enable-curses-client or --disable-curses-client was given. | |
-if test "${enable_curses_client+set}" = set; then | |
- enableval="$enable_curses_client" | |
- CURSES_CLIENT="$enableval" | |
-else | |
- CURSES_CLIENT="yes" | |
-fi | |
- | |
- | |
-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 | |
-echo "configure:3187: checking for Cygwin environment" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then | |
+for ac_func in getpagesize | |
+do | |
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
+echo "configure:2848: checking for $ac_func" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3192 "configure" | |
+#line 2853 "configure" | |
#include "confdefs.h" | |
+/* System header to define __stub macros and hopefully few prototypes, | |
+ which can conflict with char $ac_func(); below. */ | |
+#include <assert.h> | |
+/* Override any gcc2 internal prototype to avoid an error. */ | |
+/* We use char because int might match the return type of a gcc2 | |
+ builtin and then its argument prototype would still apply. */ | |
+char $ac_func(); | |
int main() { | |
-#ifndef __CYGWIN__ | |
-#define __CYGWIN__ __CYGWIN32__ | |
+/* The GNU C library defines this for functions which it implements | |
+ to always fail with ENOSYS. Some functions are actually named | |
+ something starting with __ and the normal name is an alias. */ | |
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
+choke me | |
+#else | |
+$ac_func(); | |
#endif | |
-return __CYGWIN__; | |
+ | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
+if { (eval echo configure:2876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
- ac_cv_cygwin=yes | |
+ eval "ac_cv_func_$ac_func=yes" | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- ac_cv_cygwin=no | |
+ eval "ac_cv_func_$ac_func=no" | |
fi | |
rm -f conftest* | |
-rm -f conftest* | |
-fi | |
- | |
-echo "$ac_t""$ac_cv_cygwin" 1>&6 | |
-CYGWIN= | |
-test "$ac_cv_cygwin" = yes && CYGWIN=yes | |
-# Check whether --enable-nativewin32 or --disable-nativewin32 was given. | |
-if test "${enable_nativewin32+set}" = set; then | |
- enableval="$enable_nativewin32" | |
- CYGWIN="$enableval" | |
fi | |
- | |
-if test "$CYGWIN" = "yes" ; then | |
- echo "$ac_t"""Configuring for native Win32 binary under Cygwin"" 1>&6 | |
- cat >> confdefs.h <<\EOF | |
-#define CYGWIN 1 | |
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
+ echo "$ac_t""yes" 1>&6 | |
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGH… | |
+ cat >> confdefs.h <<EOF | |
+#define $ac_tr_func 1 | |
EOF | |
- | |
- | |
- | |
- CFLAGS="$CFLAGS -mwindows -fnative-struct -mno-cygwin" | |
- LIBS="$LIBS -lwsock32 -lcomctl32 -lmpr" | |
- | |
- LDFLAGS="$LDFLAGS -lglib-1.3" | |
- | |
- WNDRES="dopewars.res" | |
- | |
- | |
- HAVE_FIXED_GTK="yes" | |
- | |
- GUI_SERVER="yes" | |
-else | |
- echo "$ac_t"""Configuring for Unix binary"" 1>&6 | |
- | |
- # Check whether --with-glib-prefix or --without-glib-prefix was given. | |
-if test "${with_glib_prefix+set}" = set; then | |
- withval="$with_glib_prefix" | |
- glib_config_prefix="$withval" | |
+ | |
else | |
- glib_config_prefix="" | |
+ echo "$ac_t""no" 1>&6 | |
fi | |
+done | |
-# Check whether --with-glib-exec-prefix or --without-glib-exec-prefix was give… | |
-if test "${with_glib_exec_prefix+set}" = set; then | |
- withval="$with_glib_exec_prefix" | |
- glib_config_exec_prefix="$withval" | |
+echo $ac_n "checking for working mmap""... $ac_c" 1>&6 | |
+echo "configure:2901: checking for working mmap" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- glib_config_exec_prefix="" | |
-fi | |
- | |
-# Check whether --enable-glibtest or --disable-glibtest was given. | |
-if test "${enable_glibtest+set}" = set; then | |
- enableval="$enable_glibtest" | |
- : | |
+ if test "$cross_compiling" = yes; then | |
+ ac_cv_func_mmap_fixed_mapped=no | |
else | |
- enable_glibtest=yes | |
-fi | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 2909 "configure" | |
+#include "confdefs.h" | |
+/* Thanks to Mike Haertel and Jim Avera for this test. | |
+ Here is a matrix of mmap possibilities: | |
+ mmap private not fixed | |
+ mmap private fixed at somewhere currently unmapped | |
+ mmap private fixed at somewhere already mapped | |
+ mmap shared not fixed | |
+ mmap shared fixed at somewhere currently unmapped | |
+ mmap shared fixed at somewhere already mapped | |
+ For private mappings, we should verify that changes cannot be read() | |
+ back from the file, nor mmap's back from the file at a different | |
+ address. (There have been systems where private was not correctly | |
+ implemented like the infamous i386 svr4.0, and systems where the | |
+ VM page cache was not coherent with the filesystem buffer cache | |
+ like early versions of FreeBSD and possibly contemporary NetBSD.) | |
+ For shared mappings, we should conversely verify that changes get | |
+ propogated back to all the places they're supposed to be. | |
- if test x$glib_config_exec_prefix != x ; then | |
- glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefi… | |
- if test x${GLIB_CONFIG+set} != xset ; then | |
- GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config | |
- fi | |
- fi | |
- if test x$glib_config_prefix != x ; then | |
- glib_config_args="$glib_config_args --prefix=$glib_config_prefix" | |
- if test x${GLIB_CONFIG+set} != xset ; then | |
- GLIB_CONFIG=$glib_config_prefix/bin/glib-config | |
- fi | |
- fi | |
+ Grep wants private fixed already mapped. | |
+ The main things grep needs to know about mmap are: | |
+ * does it exist and is it safe to write into the mmap'd area | |
+ * how to use it (BSD variants) */ | |
+#include <sys/types.h> | |
+#include <fcntl.h> | |
+#include <sys/mman.h> | |
- for module in . | |
- do | |
- case "$module" in | |
- gmodule) | |
- glib_config_args="$glib_config_args gmodule" | |
- ;; | |
- gthread) | |
- glib_config_args="$glib_config_args gthread" | |
- ;; | |
- esac | |
- done | |
+/* This mess was copied from the GNU getpagesize.h. */ | |
+#ifndef HAVE_GETPAGESIZE | |
+# ifdef HAVE_UNISTD_H | |
+# include <unistd.h> | |
+# endif | |
- # Extract the first word of "glib-config", so it can be a program name with … | |
-set dummy glib-config; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3301: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- case "$GLIB_CONFIG" in | |
- /*) | |
- ac_cv_path_GLIB_CONFIG="$GLIB_CONFIG" # Let the user override the test with … | |
- ;; | |
- ?:/*) | |
- ac_cv_path_GLIB_CONFIG="$GLIB_CONFIG" # Let the user override the test with … | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
- ac_dummy="$PATH" | |
- for ac_dir in $ac_dummy; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- ac_cv_path_GLIB_CONFIG="$ac_dir/$ac_word" | |
- break | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_GLIB_CONFIG" && ac_cv_path_GLIB_CONFIG="no" | |
- ;; | |
-esac | |
-fi | |
-GLIB_CONFIG="$ac_cv_path_GLIB_CONFIG" | |
-if test -n "$GLIB_CONFIG"; then | |
- echo "$ac_t""$GLIB_CONFIG" 1>&6 | |
-else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
+/* Assume that all systems that can run configure have sys/param.h. */ | |
+# ifndef HAVE_SYS_PARAM_H | |
+# define HAVE_SYS_PARAM_H 1 | |
+# endif | |
- min_glib_version=1.2.0 | |
- echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6 | |
-echo "configure:3336: checking for GLIB - version >= $min_glib_version" >&5 | |
- no_glib="" | |
- if test "$GLIB_CONFIG" = "no" ; then | |
- no_glib=yes | |
- else | |
- GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags` | |
- GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs` | |
- glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \ | |
- sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` | |
- glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \ | |
- sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` | |
- glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \ | |
- sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` | |
- if test "x$enable_glibtest" = "xyes" ; then | |
- ac_save_CFLAGS="$CFLAGS" | |
- ac_save_LIBS="$LIBS" | |
- CFLAGS="$CFLAGS $GLIB_CFLAGS" | |
- LIBS="$GLIB_LIBS $LIBS" | |
- rm -f conf.glibtest | |
- if test "$cross_compiling" = yes; then | |
- echo $ac_n "cross compiling; assumed OK... $ac_c" | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 3359 "configure" | |
-#include "confdefs.h" | |
+# ifdef _SC_PAGESIZE | |
+# define getpagesize() sysconf(_SC_PAGESIZE) | |
+# else /* no _SC_PAGESIZE */ | |
+# ifdef HAVE_SYS_PARAM_H | |
+# include <sys/param.h> | |
+# ifdef EXEC_PAGESIZE | |
+# define getpagesize() EXEC_PAGESIZE | |
+# else /* no EXEC_PAGESIZE */ | |
+# ifdef NBPG | |
+# define getpagesize() NBPG * CLSIZE | |
+# ifndef CLSIZE | |
+# define CLSIZE 1 | |
+# endif /* no CLSIZE */ | |
+# else /* no NBPG */ | |
+# ifdef NBPC | |
+# define getpagesize() NBPC | |
+# else /* no NBPC */ | |
+# ifdef PAGESIZE | |
+# define getpagesize() PAGESIZE | |
+# endif /* PAGESIZE */ | |
+# endif /* no NBPC */ | |
+# endif /* no NBPG */ | |
+# endif /* no EXEC_PAGESIZE */ | |
+# else /* no HAVE_SYS_PARAM_H */ | |
+# define getpagesize() 8192 /* punt totally */ | |
+# endif /* no HAVE_SYS_PARAM_H */ | |
+# endif /* no _SC_PAGESIZE */ | |
-#include <glib.h> | |
-#include <stdio.h> | |
-#include <stdlib.h> | |
+#endif /* no HAVE_GETPAGESIZE */ | |
-int | |
-main () | |
+#ifdef __cplusplus | |
+extern "C" { void *malloc(unsigned); } | |
+#else | |
+char *malloc(); | |
+#endif | |
+ | |
+int | |
+main() | |
{ | |
- int major, minor, micro; | |
- char *tmp_version; | |
+ char *data, *data2, *data3; | |
+ int i, pagesize; | |
+ int fd; | |
- system ("touch conf.glibtest"); | |
+ pagesize = getpagesize(); | |
- /* HP/UX 9 (%@#!) writes to sscanf strings */ | |
- tmp_version = g_strdup("$min_glib_version"); | |
- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { | |
- printf("%s, bad version string\n", "$min_glib_version"); | |
- exit(1); | |
- } | |
+ /* | |
+ * First, make a file with some known garbage in it. | |
+ */ | |
+ data = malloc(pagesize); | |
+ if (!data) | |
+ exit(1); | |
+ for (i = 0; i < pagesize; ++i) | |
+ *(data + i) = rand(); | |
+ umask(0); | |
+ fd = creat("conftestmmap", 0600); | |
+ if (fd < 0) | |
+ exit(1); | |
+ if (write(fd, data, pagesize) != pagesize) | |
+ exit(1); | |
+ close(fd); | |
+ | |
+ /* | |
+ * Next, try to mmap the file at a fixed address which | |
+ * already has something else allocated at it. If we can, | |
+ * also make sure that we see the same garbage. | |
+ */ | |
+ fd = open("conftestmmap", O_RDWR); | |
+ if (fd < 0) | |
+ exit(1); | |
+ data2 = malloc(2 * pagesize); | |
+ if (!data2) | |
+ exit(1); | |
+ data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); | |
+ if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE, | |
+ MAP_PRIVATE | MAP_FIXED, fd, 0L)) | |
+ exit(1); | |
+ for (i = 0; i < pagesize; ++i) | |
+ if (*(data + i) != *(data2 + i)) | |
+ exit(1); | |
- if ((glib_major_version != $glib_config_major_version) || | |
- (glib_minor_version != $glib_config_minor_version) || | |
- (glib_micro_version != $glib_config_micro_version)) | |
- { | |
- printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d… | |
- $glib_config_major_version, $glib_config_minor_version, $glib_con… | |
- glib_major_version, glib_minor_version, glib_micro_version); | |
- printf ("*** was found! If glib-config was correct, then it is best\n"); | |
- printf ("*** to remove the old version of GLIB. You may also be able to … | |
- printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by… | |
- printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\… | |
- printf("*** required on your system.\n"); | |
- printf("*** If glib-config was wrong, set the environment variable GLIB_… | |
- printf("*** to point to the correct copy of glib-config, and remove the … | |
- printf("*** before re-running configure\n"); | |
- } | |
- else if ((glib_major_version != GLIB_MAJOR_VERSION) || | |
- (glib_minor_version != GLIB_MINOR_VERSION) || | |
- (glib_micro_version != GLIB_MICRO_VERSION)) | |
- { | |
- printf("*** GLIB header files (version %d.%d.%d) do not match\n", | |
- GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); | |
- printf("*** library (version %d.%d.%d)\n", | |
- glib_major_version, glib_minor_version, glib_micro_version); | |
- } | |
- else | |
- { | |
- if ((glib_major_version > major) || | |
- ((glib_major_version == major) && (glib_minor_version > minor)) || | |
- ((glib_major_version == major) && (glib_minor_version == minor) && (gl… | |
- { | |
- return 0; | |
- } | |
- else | |
- { | |
- printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", | |
- glib_major_version, glib_minor_version, glib_micro_version); | |
- printf("*** You need a version of GLIB newer than %d.%d.%d. The latest… | |
- major, minor, micro); | |
- printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); | |
- printf("***\n"); | |
- printf("*** If you have already installed a sufficiently new version, … | |
- printf("*** probably means that the wrong copy of the glib-config shel… | |
- printf("*** being found. The easiest way to fix this is to remove the … | |
- printf("*** of GLIB, but you can also set the GLIB_CONFIG environment … | |
- printf("*** correct copy of glib-config. (In this case, you will have … | |
- printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /… | |
- printf("*** so that the correct libraries are found at run-time))\n"); | |
- } | |
- } | |
- return 1; | |
+ /* | |
+ * Finally, make sure that changes to the mapped area | |
+ * do not percolate back to the file as seen by read(). | |
+ * (This is a bug on some variants of i386 svr4.0.) | |
+ */ | |
+ for (i = 0; i < pagesize; ++i) | |
+ *(data2 + i) = *(data2 + i) + 1; | |
+ data3 = malloc(pagesize); | |
+ if (!data3) | |
+ exit(1); | |
+ if (read(fd, data3, pagesize) != pagesize) | |
+ exit(1); | |
+ for (i = 0; i < pagesize; ++i) | |
+ if (*(data + i) != *(data3 + i)) | |
+ exit(1); | |
+ close(fd); | |
+ unlink("conftestmmap"); | |
+ exit(0); | |
} | |
EOF | |
-if { (eval echo configure:3435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
- : | |
+ ac_cv_func_mmap_fixed_mapped=yes | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -fr conftest* | |
- no_glib=yes | |
+ ac_cv_func_mmap_fixed_mapped=no | |
fi | |
rm -fr conftest* | |
fi | |
- CFLAGS="$ac_save_CFLAGS" | |
- LIBS="$ac_save_LIBS" | |
- fi | |
- fi | |
- if test "x$no_glib" = x ; then | |
- echo "$ac_t""yes" 1>&6 | |
- : | |
- else | |
- echo "$ac_t""no" 1>&6 | |
- if test "$GLIB_CONFIG" = "no" ; then | |
- echo "*** The glib-config script installed by GLIB could not be found" | |
- echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in" | |
- echo "*** your path, or set the GLIB_CONFIG environment variable to the" | |
- echo "*** full path to glib-config." | |
- else | |
- if test -f conf.glibtest ; then | |
- : | |
- else | |
- echo "*** Could not run GLIB test program, checking why..." | |
- CFLAGS="$CFLAGS $GLIB_CFLAGS" | |
- LIBS="$LIBS $GLIB_LIBS" | |
- cat > conftest.$ac_ext <<EOF | |
-#line 3469 "configure" | |
-#include "confdefs.h" | |
- | |
-#include <glib.h> | |
-#include <stdio.h> | |
+fi | |
-int main() { | |
- return ((glib_major_version) || (glib_minor_version) || (glib_micro_version))… | |
-; return 0; } | |
+echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6 | |
+if test $ac_cv_func_mmap_fixed_mapped = yes; then | |
+ cat >> confdefs.h <<\EOF | |
+#define HAVE_MMAP 1 | |
EOF | |
-if { (eval echo configure:3479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
- rm -rf conftest* | |
- echo "*** The test program compiled, but did not run. This usually means" | |
- echo "*** that the run-time linker is not finding GLIB or finding th… | |
- echo "*** version of GLIB. If it is not finding GLIB, you'll need to… | |
- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.c… | |
- echo "*** to the installed location Also, make sure you have run ld… | |
- echo "*** is required on your system" | |
- echo "***" | |
- echo "*** If you have an old version installed, it is best to remove… | |
- echo "*** you may also be able to get things to work by modifying LD… | |
- echo "***" | |
- echo "*** If you have a RedHat 5.0 system, you should remove the GTK… | |
- echo "*** came with the system with the command" | |
- echo "***" | |
- echo "*** rpm --erase --nodeps gtk gtk-devel" | |
-else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- echo "*** The test program failed to compile or link. See the file config.l… | |
- echo "*** exact error that occured. This usually means GLIB was inco… | |
- echo "*** or that you have moved GLIB since it was installed. In the… | |
- echo "*** may want to edit the glib-config script: $GLIB_CONFIG" | |
+ | |
fi | |
-rm -f conftest* | |
- CFLAGS="$ac_save_CFLAGS" | |
- LIBS="$ac_save_LIBS" | |
- fi | |
- fi | |
- GLIB_CFLAGS="" | |
- GLIB_LIBS="" | |
- { echo "configure: error: Cannot find glib - aborting" 1>&2; exit 1; } | |
- fi | |
- | |
- | |
- rm -f conf.glibtest | |
- if test "$CURSES_CLIENT" = "yes" ; then | |
- echo $ac_n "checking for newterm in -lncurses""... $ac_c" 1>&6 | |
-echo "configure:3520: checking for newterm in -lncurses" >&5 | |
-ac_lib_var=`echo ncurses'_'newterm | sed 'y%./+-%__p_%'` | |
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
+ echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""… | |
+echo "configure:3073: checking whether we are using the GNU C Library 2.1 or n… | |
+if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- ac_save_LIBS="$LIBS" | |
-LIBS="-lncurses $LIBS" | |
-cat > conftest.$ac_ext <<EOF | |
-#line 3528 "configure" | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3078 "configure" | |
#include "confdefs.h" | |
-/* Override any gcc2 internal prototype to avoid an error. */ | |
-/* We use char because int might match the return type of a gcc2 | |
- builtin and then its argument prototype would still apply. */ | |
-char newterm(); | |
-int main() { | |
-newterm() | |
-; return 0; } | |
+#include <features.h> | |
+#ifdef __GNU_LIBRARY__ | |
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) | |
+ Lucky GNU user | |
+ #endif | |
+#endif | |
+ | |
EOF | |
-if { (eval echo configure:3539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
+ egrep "Lucky GNU user" >/dev/null 2>&1; then | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=yes" | |
+ ac_cv_gnu_library_2_1=yes | |
else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=no" | |
+ ac_cv_gnu_library_2_1=no | |
fi | |
rm -f conftest* | |
-LIBS="$ac_save_LIBS" | |
+ | |
+ | |
fi | |
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- ac_tr_lib=HAVE_LIB`echo ncurses | sed -e 's/[^a-zA-Z0-9_]/_/g' \ | |
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` | |
- cat >> confdefs.h <<EOF | |
-#define $ac_tr_lib 1 | |
-EOF | |
- LIBS="-lncurses $LIBS" | |
- | |
-else | |
- echo "$ac_t""no" 1>&6 | |
-fi | |
+echo "$ac_t""$ac_cv_gnu_library_2_1" 1>&6 | |
+ | |
+ GLIBC21="$ac_cv_gnu_library_2_1" | |
+ | |
- if test "$ac_cv_lib_ncurses_newterm" = "no" ; then | |
- echo $ac_n "checking for newterm in -lcurses""... $ac_c" 1>&6 | |
-echo "configure:3568: checking for newterm in -lcurses" >&5 | |
-ac_lib_var=`echo curses'_'newterm | sed 'y%./+-%__p_%'` | |
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
+ | |
+ for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ | |
+stdlib.h string.h unistd.h sys/param.h | |
+do | |
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | |
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | |
+echo "configure:3114: checking for $ac_hdr" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- ac_save_LIBS="$LIBS" | |
-LIBS="-lcurses $LIBS" | |
-cat > conftest.$ac_ext <<EOF | |
-#line 3576 "configure" | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3119 "configure" | |
#include "confdefs.h" | |
-/* Override any gcc2 internal prototype to avoid an error. */ | |
-/* We use char because int might match the return type of a gcc2 | |
- builtin and then its argument prototype would still apply. */ | |
-char newterm(); | |
- | |
-int main() { | |
-newterm() | |
-; return 0; } | |
+#include <$ac_hdr> | |
EOF | |
-if { (eval echo configure:3587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
+{ (eval echo configure:3124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
+if test -z "$ac_err"; then | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=yes" | |
+ eval "ac_cv_header_$ac_safe=yes" | |
else | |
+ echo "$ac_err" >&5 | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=no" | |
+ eval "ac_cv_header_$ac_safe=no" | |
fi | |
rm -f conftest* | |
-LIBS="$ac_save_LIBS" | |
- | |
fi | |
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
echo "$ac_t""yes" 1>&6 | |
- ac_tr_lib=HAVE_LIB`echo curses | sed -e 's/[^a-zA-Z0-9_]/_/g' \ | |
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` | |
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEF… | |
cat >> confdefs.h <<EOF | |
-#define $ac_tr_lib 1 | |
+#define $ac_tr_hdr 1 | |
EOF | |
- | |
- LIBS="-lcurses $LIBS" | |
- | |
+ | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
+done | |
- if test "$ac_cv_lib_curses_newterm" = "no" ; then | |
- echo $ac_n "checking for newterm in -lcur_colr""... $ac_c" 1>&6 | |
-echo "configure:3616: checking for newterm in -lcur_colr" >&5 | |
-ac_lib_var=`echo cur_colr'_'newterm | sed 'y%./+-%__p_%'` | |
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
+ for ac_func in feof_unlocked fgets_unlocked getcwd getegid geteuid \ | |
+getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ | |
+strdup strtoul tsearch __argz_count __argz_stringify __argz_next | |
+do | |
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
+echo "configure:3155: checking for $ac_func" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- ac_save_LIBS="$LIBS" | |
-LIBS="-lcur_colr $LIBS" | |
-cat > conftest.$ac_ext <<EOF | |
-#line 3624 "configure" | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3160 "configure" | |
#include "confdefs.h" | |
+/* System header to define __stub macros and hopefully few prototypes, | |
+ which can conflict with char $ac_func(); below. */ | |
+#include <assert.h> | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
builtin and then its argument prototype would still apply. */ | |
-char newterm(); | |
+char $ac_func(); | |
+ | |
+int main() { | |
+ | |
+/* The GNU C library defines this for functions which it implements | |
+ to always fail with ENOSYS. Some functions are actually named | |
+ something starting with __ and the normal name is an alias. */ | |
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
+choke me | |
+#else | |
+$ac_func(); | |
+#endif | |
-int main() { | |
-newterm() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=yes" | |
+ eval "ac_cv_func_$ac_func=yes" | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- eval "ac_cv_lib_$ac_lib_var=no" | |
+ eval "ac_cv_func_$ac_func=no" | |
fi | |
rm -f conftest* | |
-LIBS="$ac_save_LIBS" | |
- | |
fi | |
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | |
+ | |
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
echo "$ac_t""yes" 1>&6 | |
- ac_tr_lib=HAVE_LIB`echo cur_colr | sed -e 's/[^a-zA-Z0-9_]/_/g' \ | |
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` | |
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGH… | |
cat >> confdefs.h <<EOF | |
-#define $ac_tr_lib 1 | |
+#define $ac_tr_func 1 | |
EOF | |
- | |
- LIBS="-lcur_colr $LIBS" | |
- | |
+ | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
+done | |
- if test "$ac_cv_lib_cur_colr_newterm" = "no" ; then | |
- echo "configure: warning: Cannot find any curses-type library" … | |
- CURSES_CLIENT="no" | |
- fi | |
- fi | |
- fi | |
- fi | |
- | |
- if test "$GUI_CLIENT" = "yes" ; then | |
- # Check whether --with-gtk-prefix or --without-gtk-prefix was give… | |
-if test "${with_gtk_prefix+set}" = set; then | |
- withval="$with_gtk_prefix" | |
- gtk_config_prefix="$withval" | |
-else | |
- gtk_config_prefix="" | |
-fi | |
- | |
-# Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given. | |
-if test "${with_gtk_exec_prefix+set}" = set; then | |
- withval="$with_gtk_exec_prefix" | |
- gtk_config_exec_prefix="$withval" | |
-else | |
- gtk_config_exec_prefix="" | |
-fi | |
-# Check whether --enable-gtktest or --disable-gtktest was given. | |
-if test "${enable_gtktest+set}" = set; then | |
- enableval="$enable_gtktest" | |
- : | |
-else | |
- enable_gtktest=yes | |
+ | |
+ | |
+ # Check whether --with-libiconv-prefix or --without-libiconv-prefix was give… | |
+if test "${with_libiconv_prefix+set}" = set; then | |
+ withval="$with_libiconv_prefix" | |
+ | |
+ for dir in `echo "$withval" | tr : ' '`; do | |
+ if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi | |
+ if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi | |
+ done | |
+ | |
fi | |
- for module in . | |
- do | |
- case "$module" in | |
- gthread) | |
- gtk_config_args="$gtk_config_args gthread" | |
- ;; | |
- esac | |
- done | |
- | |
- if test x$gtk_config_exec_prefix != x ; then | |
- gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" | |
- if test x${GTK_CONFIG+set} != xset ; then | |
- GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config | |
- fi | |
- fi | |
- if test x$gtk_config_prefix != x ; then | |
- gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" | |
- if test x${GTK_CONFIG+set} != xset ; then | |
- GTK_CONFIG=$gtk_config_prefix/bin/gtk-config | |
- fi | |
- fi | |
- | |
- # Extract the first word of "gtk-config", so it can be a program name with a… | |
-set dummy gtk-config; ac_word=$2 | |
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3721: checking for $ac_word" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then | |
+ echo $ac_n "checking for iconv""... $ac_c" 1>&6 | |
+echo "configure:3223: checking for iconv" >&5 | |
+if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- case "$GTK_CONFIG" in | |
- /*) | |
- ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a … | |
- ;; | |
- ?:/*) | |
- ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a … | |
- ;; | |
- *) | |
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
- ac_dummy="$PATH" | |
- for ac_dir in $ac_dummy; do | |
- test -z "$ac_dir" && ac_dir=. | |
- if test -f $ac_dir/$ac_word; then | |
- ac_cv_path_GTK_CONFIG="$ac_dir/$ac_word" | |
- break | |
- fi | |
- done | |
- IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_GTK_CONFIG" && ac_cv_path_GTK_CONFIG="no" | |
- ;; | |
-esac | |
-fi | |
-GTK_CONFIG="$ac_cv_path_GTK_CONFIG" | |
-if test -n "$GTK_CONFIG"; then | |
- echo "$ac_t""$GTK_CONFIG" 1>&6 | |
+ | |
+ am_cv_func_iconv="no, consider installing GNU libiconv" | |
+ am_cv_lib_iconv=no | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3231 "configure" | |
+#include "confdefs.h" | |
+#include <stdlib.h> | |
+#include <iconv.h> | |
+int main() { | |
+iconv_t cd = iconv_open("",""); | |
+ iconv(cd,NULL,NULL,NULL,NULL); | |
+ iconv_close(cd); | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:3241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ am_cv_func_iconv=yes | |
else | |
- echo "$ac_t""no" 1>&6 | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
fi | |
- | |
- min_gtk_version=1.2.0 | |
- echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6 | |
-echo "configure:3756: checking for GTK - version >= $min_gtk_version" >&5 | |
- no_gtk="" | |
- if test "$GTK_CONFIG" = "no" ; then | |
- no_gtk=yes | |
- else | |
- GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags` | |
- GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs` | |
- gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \ | |
- sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` | |
- gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \ | |
- sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` | |
- gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \ | |
- sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` | |
- if test "x$enable_gtktest" = "xyes" ; then | |
- ac_save_CFLAGS="$CFLAGS" | |
- ac_save_LIBS="$LIBS" | |
- CFLAGS="$CFLAGS $GTK_CFLAGS" | |
- LIBS="$GTK_LIBS $LIBS" | |
- rm -f conf.gtktest | |
- if test "$cross_compiling" = yes; then | |
- echo $ac_n "cross compiling; assumed OK... $ac_c" | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 3779 "configure" | |
+rm -f conftest* | |
+ if test "$am_cv_func_iconv" != yes; then | |
+ am_save_LIBS="$LIBS" | |
+ LIBS="$LIBS -liconv" | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3253 "configure" | |
#include "confdefs.h" | |
- | |
-#include <gtk/gtk.h> | |
-#include <stdio.h> | |
#include <stdlib.h> | |
- | |
-int | |
-main () | |
-{ | |
- int major, minor, micro; | |
- char *tmp_version; | |
- | |
- system ("touch conf.gtktest"); | |
- | |
- /* HP/UX 9 (%@#!) writes to sscanf strings */ | |
- tmp_version = g_strdup("$min_gtk_version"); | |
- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { | |
- printf("%s, bad version string\n", "$min_gtk_version"); | |
- exit(1); | |
- } | |
- | |
- if ((gtk_major_version != $gtk_config_major_version) || | |
- (gtk_minor_version != $gtk_config_minor_version) || | |
- (gtk_micro_version != $gtk_config_micro_version)) | |
- { | |
- printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.… | |
- $gtk_config_major_version, $gtk_config_minor_version, $gtk_config… | |
- gtk_major_version, gtk_minor_version, gtk_micro_version); | |
- printf ("*** was found! If gtk-config was correct, then it is best\n"); | |
- printf ("*** to remove the old version of GTK+. You may also be able to … | |
- printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by… | |
- printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\… | |
- printf("*** required on your system.\n"); | |
- printf("*** If gtk-config was wrong, set the environment variable GTK_CO… | |
- printf("*** to point to the correct copy of gtk-config, and remove the f… | |
- printf("*** before re-running configure\n"); | |
- } | |
-#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK… | |
- else if ((gtk_major_version != GTK_MAJOR_VERSION) || | |
- (gtk_minor_version != GTK_MINOR_VERSION) || | |
- (gtk_micro_version != GTK_MICRO_VERSION)) | |
- { | |
- printf("*** GTK+ header files (version %d.%d.%d) do not match\n", | |
- GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); | |
- printf("*** library (version %d.%d.%d)\n", | |
- gtk_major_version, gtk_minor_version, gtk_micro_version); | |
- } | |
-#endif /* defined (GTK_MAJOR_VERSION) ... */ | |
- else | |
- { | |
- if ((gtk_major_version > major) || | |
- ((gtk_major_version == major) && (gtk_minor_version > minor)) || | |
- ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_… | |
- { | |
- return 0; | |
- } | |
- else | |
- { | |
- printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", | |
- gtk_major_version, gtk_minor_version, gtk_micro_version); | |
- printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest… | |
- major, minor, micro); | |
- printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); | |
- printf("***\n"); | |
- printf("*** If you have already installed a sufficiently new version, … | |
- printf("*** probably means that the wrong copy of the gtk-config shell… | |
- printf("*** being found. The easiest way to fix this is to remove the … | |
- printf("*** of GTK+, but you can also set the GTK_CONFIG environment t… | |
- printf("*** correct copy of gtk-config. (In this case, you will have t… | |
- printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /… | |
- printf("*** so that the correct libraries are found at run-time))\n"); | |
- } | |
- } | |
- return 1; | |
-} | |
- | |
+#include <iconv.h> | |
+int main() { | |
+iconv_t cd = iconv_open("",""); | |
+ iconv(cd,NULL,NULL,NULL,NULL); | |
+ iconv_close(cd); | |
+; return 0; } | |
EOF | |
-if { (eval echo configure:3857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
-then | |
- : | |
+if { (eval echo configure:3263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ am_cv_lib_iconv=yes | |
+ am_cv_func_iconv=yes | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
- rm -fr conftest* | |
- no_gtk=yes | |
fi | |
-rm -fr conftest* | |
+rm -f conftest* | |
+ LIBS="$am_save_LIBS" | |
+ fi | |
+ | |
fi | |
- CFLAGS="$ac_save_CFLAGS" | |
- LIBS="$ac_save_LIBS" | |
- fi | |
- fi | |
- if test "x$no_gtk" = x ; then | |
- echo "$ac_t""yes" 1>&6 | |
- gtk_found="yes" | |
- else | |
- echo "$ac_t""no" 1>&6 | |
- if test "$GTK_CONFIG" = "no" ; then | |
- echo "*** The gtk-config script installed by GTK could not be found" | |
- echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in" | |
- echo "*** your path, or set the GTK_CONFIG environment variable to the" | |
- echo "*** full path to gtk-config." | |
- else | |
- if test -f conf.gtktest ; then | |
- : | |
- else | |
- echo "*** Could not run GTK test program, checking why..." | |
- CFLAGS="$CFLAGS $GTK_CFLAGS" | |
- LIBS="$LIBS $GTK_LIBS" | |
- cat > conftest.$ac_ext <<EOF | |
-#line 3891 "configure" | |
+echo "$ac_t""$am_cv_func_iconv" 1>&6 | |
+ if test "$am_cv_func_iconv" = yes; then | |
+ cat >> confdefs.h <<\EOF | |
+#define HAVE_ICONV 1 | |
+EOF | |
+ | |
+ echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 | |
+echo "configure:3284: checking for iconv declaration" >&5 | |
+ if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3290 "configure" | |
#include "confdefs.h" | |
-#include <gtk/gtk.h> | |
-#include <stdio.h> | |
+#include <stdlib.h> | |
+#include <iconv.h> | |
+extern | |
+#ifdef __cplusplus | |
+"C" | |
+#endif | |
+#if defined(__STDC__) || defined(__cplusplus) | |
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, … | |
+#else | |
+size_t iconv(); | |
+#endif | |
int main() { | |
- return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); | |
+ | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3309: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
rm -rf conftest* | |
- echo "*** The test program compiled, but did not run. This usually means" | |
- echo "*** that the run-time linker is not finding GTK or finding the… | |
- echo "*** version of GTK. If it is not finding GTK, you'll need to s… | |
- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.c… | |
- echo "*** to the installed location Also, make sure you have run ld… | |
- echo "*** is required on your system" | |
- echo "***" | |
- echo "*** If you have an old version installed, it is best to remove… | |
- echo "*** you may also be able to get things to work by modifying LD… | |
- echo "***" | |
- echo "*** If you have a RedHat 5.0 system, you should remove the GTK… | |
- echo "*** came with the system with the command" | |
- echo "***" | |
- echo "*** rpm --erase --nodeps gtk gtk-devel" | |
+ am_cv_proto_iconv_arg1="" | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- echo "*** The test program failed to compile or link. See the file config.l… | |
- echo "*** exact error that occured. This usually means GTK was incor… | |
- echo "*** or that you have moved GTK since it was installed. In the … | |
- echo "*** may want to edit the gtk-config script: $GTK_CONFIG" | |
+ am_cv_proto_iconv_arg1="const" | |
fi | |
rm -f conftest* | |
- CFLAGS="$ac_save_CFLAGS" | |
- LIBS="$ac_save_LIBS" | |
- fi | |
- fi | |
- GTK_CFLAGS="" | |
- GTK_LIBS="" | |
- gtk_found="no" | |
- fi | |
- | |
- | |
- rm -f conf.gtktest | |
- | |
- if test "$gtk_found" = "no" ; then | |
- echo "configure: warning: Cannot find GTK+" 1>&2 | |
- GUI_CLIENT="no" | |
- else | |
- echo $ac_n "checking for non-buggy GTK+ ( >= 1.2.10 )""... $ac_c" 1>&6 | |
-echo "configure:3944: checking for non-buggy GTK+ ( >= 1.2.10 )" >&5 | |
- if test "$gtk_config_major_version" -gt 1 ; then | |
- HAVE_FIXED_GTK="yes" | |
- elif test "$gtk_config_major_version" -eq 1 ; then | |
- if test "$gtk_config_minor_version" -gt 2 ; then | |
- HAVE_FIXED_GTK="yes" | |
- elif test "$gtk_config_minor_version" -eq 2 -a \ | |
- "$gtk_config_micro_version" -ge 10 ; then | |
- HAVE_FIXED_GTK="yes" | |
- fi | |
- fi | |
- echo "$ac_t"""$HAVE_FIXED_GTK"" 1>&6 | |
- fi | |
- fi | |
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_a… | |
+fi | |
- CFLAGS="$CFLAGS `glib-config --cflags`" | |
- LDFLAGS="$LDFLAGS `glib-config --libs`" | |
+ am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/… | |
+ echo "$ac_t""${ac_t:- | |
+ }$am_cv_proto_iconv" 1>&6 | |
+ cat >> confdefs.h <<EOF | |
+#define ICONV_CONST $am_cv_proto_iconv_arg1 | |
+EOF | |
- GUI_SERVER="no" | |
+ fi | |
+ LIBICONV= | |
+ if test "$am_cv_lib_iconv" = yes; then | |
+ LIBICONV="-liconv" | |
+ fi | |
+ | |
- echo $ac_n "checking for socklen_t data type""... $ac_c" 1>&6 | |
-echo "configure:3965: checking for socklen_t data type" >&5 | |
- cat > conftest.$ac_ext <<EOF | |
-#line 3967 "configure" | |
+ | |
+ echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 | |
+echo "configure:3338: checking for nl_langinfo and CODESET" >&5 | |
+if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3343 "configure" | |
#include "confdefs.h" | |
-#include <sys/types.h> | |
- #include <sys/socket.h> | |
+#include <langinfo.h> | |
int main() { | |
-socklen_t val | |
+char* cs = nl_langinfo(CODESET); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
+if { (eval echo configure:3350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
- echo "$ac_t""yes" 1>&6 | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_SOCKLEN_T 1 | |
-EOF | |
- | |
+ am_cv_langinfo_codeset=yes | |
else | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- echo "$ac_t""no" 1>&6 | |
+ am_cv_langinfo_codeset=no | |
fi | |
rm -f conftest* | |
+ | |
fi | |
-if test "$GUI_CLIENT" = "yes" ; then | |
- cat >> confdefs.h <<\EOF | |
-#define GUI_CLIENT 1 | |
+echo "$ac_t""$am_cv_langinfo_codeset" 1>&6 | |
+ if test $am_cv_langinfo_codeset = yes; then | |
+ cat >> confdefs.h <<\EOF | |
+#define HAVE_LANGINFO_CODESET 1 | |
EOF | |
+ fi | |
+ | |
+ if test $ac_cv_header_locale_h = yes; then | |
+ echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 | |
+echo "configure:3373: checking for LC_MESSAGES" >&5 | |
+if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3378 "configure" | |
+#include "confdefs.h" | |
+#include <locale.h> | |
+int main() { | |
+return LC_MESSAGES | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:3385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ am_cv_val_LC_MESSAGES=yes | |
+else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
+ am_cv_val_LC_MESSAGES=no | |
+fi | |
+rm -f conftest* | |
fi | |
-if test "$CURSES_CLIENT" = "yes" ; then | |
- cat >> confdefs.h <<\EOF | |
-#define CURSES_CLIENT 1 | |
+echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6 | |
+ if test $am_cv_val_LC_MESSAGES = yes; then | |
+ cat >> confdefs.h <<\EOF | |
+#define HAVE_LC_MESSAGES 1 | |
EOF | |
+ fi | |
+ fi | |
+ echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 | |
+echo "configure:3406: checking whether NLS is requested" >&5 | |
+ # Check whether --enable-nls or --disable-nls was given. | |
+if test "${enable_nls+set}" = set; then | |
+ enableval="$enable_nls" | |
+ USE_NLS=$enableval | |
+else | |
+ USE_NLS=yes | |
fi | |
-# Check whether --enable-gui-server or --disable-gui-server was given. | |
-if test "${enable_gui_server+set}" = set; then | |
- enableval="$enable_gui_server" | |
- GUI_SERVER="$enableval" | |
-fi | |
+ echo "$ac_t""$USE_NLS" 1>&6 | |
+ | |
+ BUILD_INCLUDED_LIBINTL=no | |
+ USE_INCLUDED_LIBINTL=no | |
+ INTLLIBS= | |
-if test "$GUI_SERVER" = "yes" ; then | |
- cat >> confdefs.h <<\EOF | |
-#define GUI_SERVER 1 | |
+ if test "$USE_NLS" = "yes"; then | |
+ cat >> confdefs.h <<\EOF | |
+#define ENABLE_NLS 1 | |
EOF | |
+ echo $ac_n "checking whether included gettext is requested""... $ac_c" 1… | |
+echo "configure:3428: checking whether included gettext is requested" >&5 | |
+ # Check whether --with-included-gettext or --without-included-gettext wa… | |
+if test "${with_included_gettext+set}" = set; then | |
+ withval="$with_included_gettext" | |
+ nls_cv_force_use_gnu_gettext=$withval | |
+else | |
+ nls_cv_force_use_gnu_gettext=no | |
fi | |
-if test "$HAVE_FIXED_GTK" = "yes" ; then | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_FIXED_GTK 1 | |
-EOF | |
+ echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6 | |
-fi | |
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" | |
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then | |
+ CATOBJEXT=NONE | |
-if test "$GUI_CLIENT" = "yes" -o "$GUI_SERVER" = "yes" ; then | |
- GTKPORT_C="gtkport.c" | |
- GTKPORT_O="gtkport.o" | |
- | |
- | |
-fi | |
+ | |
+ | |
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 | |
-echo "configure:4034: checking for ANSI C header files" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then | |
+ ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` | |
+echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 | |
+echo "configure:3448: checking for libintl.h" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4039 "configure" | |
+#line 3453 "configure" | |
#include "confdefs.h" | |
-#include <stdlib.h> | |
-#include <stdarg.h> | |
-#include <string.h> | |
-#include <float.h> | |
+#include <libintl.h> | |
EOF | |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:4047: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+{ (eval echo configure:3458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
if test -z "$ac_err"; then | |
rm -rf conftest* | |
- ac_cv_header_stdc=yes | |
+ eval "ac_cv_header_$ac_safe=yes" | |
else | |
echo "$ac_err" >&5 | |
echo "configure: failed program was:" >&5 | |
cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- ac_cv_header_stdc=no | |
+ eval "ac_cv_header_$ac_safe=no" | |
+fi | |
+rm -f conftest* | |
+fi | |
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
+ echo "$ac_t""yes" 1>&6 | |
+ echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 | |
+echo "configure:3475: checking for GNU gettext in libc" >&5 | |
+if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3480 "configure" | |
+#include "confdefs.h" | |
+#include <libintl.h> | |
+extern int _nl_msg_cat_cntr; | |
+int main() { | |
+bindtextdomain ("", ""); | |
+return (int) gettext ("") + _nl_msg_cat_cntr | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ gt_cv_func_gnugettext1_libc=yes | |
+else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
+ gt_cv_func_gnugettext1_libc=no | |
fi | |
rm -f conftest* | |
+fi | |
-if test $ac_cv_header_stdc = yes; then | |
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. | |
-cat > conftest.$ac_ext <<EOF | |
-#line 4064 "configure" | |
+echo "$ac_t""$gt_cv_func_gnugettext1_libc" 1>&6 | |
+ | |
+ if test "$gt_cv_func_gnugettext1_libc" != "yes"; then | |
+ echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 | |
+echo "configure:3505: checking for GNU gettext in libintl" >&5 | |
+if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; t… | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ gt_save_LIBS="$LIBS" | |
+ LIBS="$LIBS -lintl $LIBICONV" | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3512 "configure" | |
#include "confdefs.h" | |
-#include <string.h> | |
+#include <libintl.h> | |
+extern int _nl_msg_cat_cntr; | |
+int main() { | |
+bindtextdomain ("", ""); | |
+return (int) gettext ("") + _nl_msg_cat_cntr | |
+; return 0; } | |
EOF | |
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
- egrep "memchr" >/dev/null 2>&1; then | |
- : | |
+if { (eval echo configure:3521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ gt_cv_func_gnugettext1_libintl=yes | |
+else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
+ rm -rf conftest* | |
+ gt_cv_func_gnugettext1_libintl=no | |
+fi | |
+rm -f conftest* | |
+ LIBS="$gt_save_LIBS" | |
+fi | |
+ | |
+echo "$ac_t""$gt_cv_func_gnugettext1_libintl" 1>&6 | |
+ fi | |
+ | |
+ if test "$gt_cv_func_gn… | |
+ || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ | |
+ && test "$PACKAGE" != gettext; }; then | |
+ cat >> confdefs.h <<\EOF | |
+#define HAVE_GETTEXT 1 | |
+EOF | |
+ | |
+ | |
+ if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then | |
+ INTLLIBS="-lintl $… | |
+ fi | |
+ | |
+ gt_save_LIBS="$LIBS" | |
+ LIBS="$LIBS $INTLLIBS" | |
+ for ac_func in dcgettext | |
+do | |
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
+echo "configure:3554: checking for $ac_func" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ cat > conftest.$ac_ext <<EOF | |
+#line 3559 "configure" | |
+#include "confdefs.h" | |
+/* System header to define __stub macros and hopefully few prototypes, | |
+ which can conflict with char $ac_func(); below. */ | |
+#include <assert.h> | |
+/* Override any gcc2 internal prototype to avoid an error. */ | |
+/* We use char because int might match the return type of a gcc2 | |
+ builtin and then its argument prototype would still apply. */ | |
+char $ac_func(); | |
+ | |
+int main() { | |
+ | |
+/* The GNU C library defines this for functions which it implements | |
+ to always fail with ENOSYS. Some functions are actually named | |
+ something starting with __ and the normal name is an alias. */ | |
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func) | |
+choke me | |
+#else | |
+$ac_func(); | |
+#endif | |
+ | |
+; return 0; } | |
+EOF | |
+if { (eval echo configure:3582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+ rm -rf conftest* | |
+ eval "ac_cv_func_$ac_func=yes" | |
else | |
+ echo "configure: failed program was:" >&5 | |
+ cat conftest.$ac_ext >&5 | |
rm -rf conftest* | |
- ac_cv_header_stdc=no | |
+ eval "ac_cv_func_$ac_func=no" | |
fi | |
rm -f conftest* | |
- | |
fi | |
-if test $ac_cv_header_stdc = yes; then | |
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. | |
-cat > conftest.$ac_ext <<EOF | |
-#line 4082 "configure" | |
-#include "confdefs.h" | |
-#include <stdlib.h> | |
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then | |
+ echo "$ac_t""yes" 1>&6 | |
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGH… | |
+ cat >> confdefs.h <<EOF | |
+#define $ac_tr_func 1 | |
EOF | |
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | |
- egrep "free" >/dev/null 2>&1; then | |
- : | |
+ | |
else | |
- rm -rf conftest* | |
- ac_cv_header_stdc=no | |
+ echo "$ac_t""no" 1>&6 | |
fi | |
-rm -f conftest* | |
+done | |
-fi | |
+ LIBS="$gt_save_LIBS" | |
-if test $ac_cv_header_stdc = yes; then | |
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. | |
-if test "$cross_compiling" = yes; then | |
- : | |
+ # Extract the first word of "msgfmt", so it can be a… | |
+set dummy msgfmt; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:3611: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 4103 "configure" | |
-#include "confdefs.h" | |
-#include <ctype.h> | |
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') | |
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) | |
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) | |
-int main () { int i; for (i = 0; i < 256; i++) | |
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); | |
-exit (0); } | |
+ case "$MSGFMT" in | |
+ /*) | |
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. | |
+ ;; | |
+ *) | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
+ for ac_dir in $PATH; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then | |
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word" | |
+ break | |
+ fi | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" | |
+ ;; | |
+esac | |
+fi | |
+MSGFMT="$ac_cv_path_MSGFMT" | |
+if test "$MSGFMT" != ":"; then | |
+ echo "$ac_t""$MSGFMT" 1>&6 | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
+fi | |
-EOF | |
-if { (eval echo configure:4114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
-then | |
- : | |
+ # Extract the first word of "gmsgfmt", so it can be a program nam… | |
+set dummy gmsgfmt; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:3645: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -fr conftest* | |
- ac_cv_header_stdc=no | |
+ case "$GMSGFMT" in | |
+ /*) | |
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. | |
+ ;; | |
+ ?:/*) | |
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos pa… | |
+ ;; | |
+ *) | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
+ ac_dummy="$PATH" | |
+ for ac_dir in $ac_dummy; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ ac_cv_path_GMSGFMT="$ac_dir/$ac_word" | |
+ break | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" | |
+ ;; | |
+esac | |
fi | |
-rm -fr conftest* | |
+GMSGFMT="$ac_cv_path_GMSGFMT" | |
+if test -n "$GMSGFMT"; then | |
+ echo "$ac_t""$GMSGFMT" 1>&6 | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
fi | |
+ | |
+ # Extract the first word of "xgettext", so it can be… | |
+set dummy xgettext; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:3682: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ case "$XGETTEXT" in | |
+ /*) | |
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. | |
+ ;; | |
+ *) | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
+ for ac_dir in $PATH; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then | |
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word" | |
+ break | |
+ fi | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" | |
+ ;; | |
+esac | |
fi | |
+XGETTEXT="$ac_cv_path_XGETTEXT" | |
+if test "$XGETTEXT" != ":"; then | |
+ echo "$ac_t""$XGETTEXT" 1>&6 | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
fi | |
-echo "$ac_t""$ac_cv_header_stdc" 1>&6 | |
-if test $ac_cv_header_stdc = yes; then | |
- cat >> confdefs.h <<\EOF | |
-#define STDC_HEADERS 1 | |
-EOF | |
+ CATOBJEXT=.gmo | |
+ fi | |
+ | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
fi | |
-echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 | |
-echo "configure:4138: checking for sys/wait.h that is POSIX.1 compatible" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then | |
+ | |
+ if test "$CATOBJEXT" = "NONE"; then | |
+ nls_cv_use_gnu_gettext=yes | |
+ fi | |
+ fi | |
+ | |
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then | |
+ INTLOBJS="\$(GETTOBJS)" | |
+ # Extract the first word of "msgfmt", so it can be a program name with… | |
+set dummy msgfmt; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:3732: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 4143 "configure" | |
-#include "confdefs.h" | |
-#include <sys/types.h> | |
-#include <sys/wait.h> | |
-#ifndef WEXITSTATUS | |
-#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) | |
-#endif | |
-#ifndef WIFEXITED | |
-#define WIFEXITED(stat_val) (((stat_val) & 255) == 0) | |
-#endif | |
-int main() { | |
-int s; | |
-wait (&s); | |
-s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; | |
-; return 0; } | |
-EOF | |
-if { (eval echo configure:4159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
- rm -rf conftest* | |
- ac_cv_header_sys_wait_h=yes | |
+ case "$MSGFMT" in | |
+ /*) | |
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. | |
+ ;; | |
+ *) | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
+ for ac_dir in $PATH; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then | |
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word" | |
+ break | |
+ fi | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" | |
+ ;; | |
+esac | |
+fi | |
+MSGFMT="$ac_cv_path_MSGFMT" | |
+if test "$MSGFMT" != ":"; then | |
+ echo "$ac_t""$MSGFMT" 1>&6 | |
else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- ac_cv_header_sys_wait_h=no | |
+ echo "$ac_t""no" 1>&6 | |
+fi | |
+ | |
+ # Extract the first word of "gmsgfmt", so it can be a program name wit… | |
+set dummy gmsgfmt; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:3766: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ case "$GMSGFMT" in | |
+ /*) | |
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. | |
+ ;; | |
+ ?:/*) | |
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos pa… | |
+ ;; | |
+ *) | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
+ ac_dummy="$PATH" | |
+ for ac_dir in $ac_dummy; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ ac_cv_path_GMSGFMT="$ac_dir/$ac_word" | |
+ break | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" | |
+ ;; | |
+esac | |
+fi | |
+GMSGFMT="$ac_cv_path_GMSGFMT" | |
+if test -n "$GMSGFMT"; then | |
+ echo "$ac_t""$GMSGFMT" 1>&6 | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
+fi | |
+ | |
+ # Extract the first word of "xgettext", so it can be a program name wi… | |
+set dummy xgettext; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:3802: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then | |
+ echo $ac_n "(cached) $ac_c" 1>&6 | |
+else | |
+ case "$XGETTEXT" in | |
+ /*) | |
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. | |
+ ;; | |
+ *) | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
+ for ac_dir in $PATH; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then | |
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word" | |
+ break | |
+ fi | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" | |
+ ;; | |
+esac | |
fi | |
-rm -f conftest* | |
+XGETTEXT="$ac_cv_path_XGETTEXT" | |
+if test "$XGETTEXT" != ":"; then | |
+ echo "$ac_t""$XGETTEXT" 1>&6 | |
+else | |
+ echo "$ac_t""no" 1>&6 | |
fi | |
-echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6 | |
-if test $ac_cv_header_sys_wait_h = yes; then | |
- cat >> confdefs.h <<\EOF | |
-#define HAVE_SYS_WAIT_H 1 | |
-EOF | |
+ | |
+ BUILD_INCLUDED_LIBINTL=yes | |
+ USE_INCLUDED_LIBINTL=yes | |
+ CATOBJEXT=.gmo | |
+ INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV" | |
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` | |
+ fi | |
-fi | |
+ if test "$GMSGFMT" != ":"; then | |
+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; th… | |
+ : ; | |
+ else | |
+ echo "$ac_t""found msgfmt program is not GNU msgfmt; ignore it" 1>&6 | |
+ GMSGFMT=":" | |
+ fi | |
+ fi | |
-for ac_hdr in fcntl.h sys/time.h unistd.h stdlib.h | |
+ if test "$XGETTEXT" != ":"; then | |
+ if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; … | |
+ : ; | |
+ else | |
+ echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" … | |
+ XGETTEXT=":" | |
+ fi | |
+ fi | |
+ | |
+ POSUB=po | |
+ fi | |
+ | |
+ | |
+ | |
+ if test "$PACKAGE" = gettext; then | |
+ BUILD_INCLUDED_LIBINTL=yes | |
+ fi | |
+ | |
+ for ac_prog in bison | |
do | |
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | |
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | |
-echo "configure:4183: checking for $ac_hdr" >&5 | |
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
+# Extract the first word of "$ac_prog", so it can be a program name with args. | |
+set dummy $ac_prog; ac_word=$2 | |
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
+echo "configure:3873: checking for $ac_word" >&5 | |
+if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 4188 "configure" | |
-#include "confdefs.h" | |
-#include <$ac_hdr> | |
-EOF | |
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:4193: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
-if test -z "$ac_err"; then | |
- rm -rf conftest* | |
- eval "ac_cv_header_$ac_safe=yes" | |
+ if test -n "$INTLBISON"; then | |
+ ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. | |
else | |
- echo "$ac_err" >&5 | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- eval "ac_cv_header_$ac_safe=no" | |
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" | |
+ ac_dummy="$PATH" | |
+ for ac_dir in $ac_dummy; do | |
+ test -z "$ac_dir" && ac_dir=. | |
+ if test -f $ac_dir/$ac_word; then | |
+ ac_cv_prog_INTLBISON="$ac_prog" | |
+ break | |
+ fi | |
+ done | |
+ IFS="$ac_save_ifs" | |
fi | |
-rm -f conftest* | |
fi | |
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
- echo "$ac_t""yes" 1>&6 | |
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEF… | |
- cat >> confdefs.h <<EOF | |
-#define $ac_tr_hdr 1 | |
-EOF | |
- | |
+INTLBISON="$ac_cv_prog_INTLBISON" | |
+if test -n "$INTLBISON"; then | |
+ echo "$ac_t""$INTLBISON" 1>&6 | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
+ | |
+test -n "$INTLBISON" && break | |
done | |
+ if test -z "$INTLBISON"; then | |
+ ac_verc_fail=yes | |
+ else | |
+ echo $ac_n "checking version of bison""... $ac_c" 1>&6 | |
+echo "configure:3906: checking version of bison" >&5 | |
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \(… | |
+ case $ac_prog_version in | |
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; | |
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) | |
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; | |
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; | |
+ esac | |
+ echo "$ac_t""$ac_prog_version" 1>&6 | |
+ fi | |
+ if test $ac_verc_fail = yes; then | |
+ INTLBISON=: | |
+ fi | |
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $… | |
-echo "configure:4221: checking whether time.h and sys/time.h may both be inclu… | |
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 4226 "configure" | |
-#include "confdefs.h" | |
-#include <sys/types.h> | |
-#include <sys/time.h> | |
-#include <time.h> | |
-int main() { | |
-struct tm *tp; | |
-; return 0; } | |
-EOF | |
-if { (eval echo configure:4235: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
- rm -rf conftest* | |
- ac_cv_header_time=yes | |
-else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- ac_cv_header_time=no | |
-fi | |
-rm -f conftest* | |
+ for lang in $ALL_LINGUAS; do | |
+ GMOFILES="$GMOFILES $lang.gmo" | |
+ POFILES="$POFILES $lang.po" | |
+ done | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ nls_cv_header_intl= | |
+ nls_cv_header_libgt= | |
+ | |
+ DATADIRNAME=share | |
+ | |
+ | |
+ INSTOBJEXT=.mo | |
+ | |
+ | |
+ GENCAT=gencat | |
+ | |
+ | |
+ | |
+ if test "x$CATOBJEXT" != "x"; then | |
+ if test "x$ALL_LINGUAS" = "x"; then | |
+ LINGUAS= | |
+ else | |
+ echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 | |
+echo "configure:3953: checking for catalogs to be installed" >&5 | |
+ NEW_LINGUAS= | |
+ for presentlang in $ALL_LINGUAS; do | |
+ useit=no | |
+ for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do | |
+ # Use the presentlang catalog if desiredlang is | |
+ # a. equal to presentlang, or | |
+ # b. a variant of presentlang (because in this case, | |
+ # presentlang can be used as a fallback for messages | |
+ # which are not translated in the desiredlang catalog). | |
+ case "$desiredlang" in | |
+ "$presentlang"*) useit=yes;; | |
+ esac | |
+ done | |
+ if test $useit = yes; then | |
+ NEW_LINGUAS="$NEW_LINGUAS $presentlang" | |
+ fi | |
+ done | |
+ LINGUAS=$NEW_LINGUAS | |
+ echo "$ac_t""$LINGUAS" 1>&6 | |
+ fi | |
+ | |
+ if test -n "$LINGUAS"; then | |
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done | |
+ fi | |
+ fi | |
+ | |
+ MKINSTALLDIRS= | |
+ if test -n "$ac_aux_dir"; then | |
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" | |
+ fi | |
+ if test -z "$MKINSTALLDIRS"; then | |
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" | |
+ fi | |
+ | |
+ | |
+ INTL_LIBTOOL_SUFFIX_PREFIX= | |
+ | |
+ | |
+if test "$gt_cv_func_gettext_libintl" = "yes"; then | |
+ LIBS="-lintl $LIBS" | |
fi | |
-echo "$ac_t""$ac_cv_header_time" 1>&6 | |
-if test $ac_cv_header_time = yes; then | |
- cat >> confdefs.h <<\EOF | |
-#define TIME_WITH_SYS_TIME 1 | |
+localedir=${datadir}/locale | |
+ | |
+ | |
+if test "$GUI_CLIENT" = "yes" ; then | |
+ cat >> confdefs.h <<\EOF | |
+#define GUI_CLIENT 1 | |
EOF | |
fi | |
-echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" … | |
-echo "configure:4256: checking whether struct tm is in sys/time.h or time.h" >… | |
-if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then | |
- echo $ac_n "(cached) $ac_c" 1>&6 | |
-else | |
- cat > conftest.$ac_ext <<EOF | |
-#line 4261 "configure" | |
-#include "confdefs.h" | |
-#include <sys/types.h> | |
-#include <time.h> | |
-int main() { | |
-struct tm *tp; tp->tm_sec; | |
-; return 0; } | |
+if test "$CURSES_CLIENT" = "yes" ; then | |
+ cat >> confdefs.h <<\EOF | |
+#define CURSES_CLIENT 1 | |
EOF | |
-if { (eval echo configure:4269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
- rm -rf conftest* | |
- ac_cv_struct_tm=time.h | |
-else | |
- echo "configure: failed program was:" >&5 | |
- cat conftest.$ac_ext >&5 | |
- rm -rf conftest* | |
- ac_cv_struct_tm=sys/time.h | |
+ | |
fi | |
-rm -f conftest* | |
+ | |
+# Check whether --enable-gui-server or --disable-gui-server was given. | |
+if test "${enable_gui_server+set}" = set; then | |
+ enableval="$enable_gui_server" | |
+ GUI_SERVER="$enableval" | |
fi | |
-echo "$ac_t""$ac_cv_struct_tm" 1>&6 | |
-if test $ac_cv_struct_tm = sys/time.h; then | |
- cat >> confdefs.h <<\EOF | |
-#define TM_IN_SYS_TIME 1 | |
+ | |
+if test "$GUI_SERVER" = "yes" ; then | |
+ cat >> confdefs.h <<\EOF | |
+#define GUI_SERVER 1 | |
EOF | |
fi | |
+if test "$HAVE_FIXED_GTK" = "yes" ; then | |
+ cat >> confdefs.h <<\EOF | |
+#define HAVE_FIXED_GTK 1 | |
+EOF | |
+ | |
+fi | |
+ | |
+if test "$GUI_CLIENT" = "yes" -o "$GUI_SERVER" = "yes" ; then | |
+ GTKPORT_C="gtkport.c" | |
+ GTKPORT_O="gtkport.o" | |
+ | |
+ | |
+fi | |
echo $ac_n "checking size of long long""... $ac_c" 1>&6 | |
-echo "configure:4291: checking size of long long" >&5 | |
+echo "configure:4042: checking size of long long" >&5 | |
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -4295,7 +4046,7 @@ else | |
{ echo "configure: error: can not run test program while cross compiling" … | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4299 "configure" | |
+#line 4050 "configure" | |
#include "confdefs.h" | |
#include <stdio.h> | |
main() | |
t@@ -4306,7 +4057,7 @@ main() | |
exit(0); | |
} | |
EOF | |
-if { (eval echo configure:4310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
ac_cv_sizeof_long_long=`cat conftestval` | |
else | |
t@@ -4327,7 +4078,7 @@ EOF | |
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 | |
-echo "configure:4331: checking for 8-bit clean memcmp" >&5 | |
+echo "configure:4082: checking for 8-bit clean memcmp" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -4335,7 +4086,7 @@ else | |
ac_cv_func_memcmp_clean=no | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4339 "configure" | |
+#line 4090 "configure" | |
#include "confdefs.h" | |
main() | |
t@@ -4345,7 +4096,7 @@ main() | |
} | |
EOF | |
-if { (eval echo configure:4349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
ac_cv_func_memcmp_clean=yes | |
else | |
t@@ -4363,7 +4114,7 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 | |
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" | |
echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 | |
-echo "configure:4367: checking whether setvbuf arguments are reversed" >&5 | |
+echo "configure:4118: checking whether setvbuf arguments are reversed" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -4371,7 +4122,7 @@ else | |
{ echo "configure: error: can not run test program while cross compiling" … | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4375 "configure" | |
+#line 4126 "configure" | |
#include "confdefs.h" | |
#include <stdio.h> | |
/* If setvbuf has the reversed format, exit 0. */ | |
t@@ -4385,7 +4136,7 @@ main () { | |
exit(0); /* Non-reversed systems segv here. */ | |
} | |
EOF | |
-if { (eval echo configure:4389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
ac_cv_func_setvbuf_reversed=yes | |
else | |
t@@ -4409,12 +4160,12 @@ EOF | |
fi | |
echo $ac_n "checking for strftime""... $ac_c" 1>&6 | |
-echo "configure:4413: checking for strftime" >&5 | |
+echo "configure:4164: checking for strftime" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4418 "configure" | |
+#line 4169 "configure" | |
#include "confdefs.h" | |
/* System header to define __stub macros and hopefully few prototypes, | |
which can conflict with char strftime(); below. */ | |
t@@ -4437,7 +4188,7 @@ strftime(); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_func_strftime=yes" | |
else | |
t@@ -4459,7 +4210,7 @@ else | |
echo "$ac_t""no" 1>&6 | |
# strftime is in -lintl on SCO UNIX. | |
echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6 | |
-echo "configure:4463: checking for strftime in -lintl" >&5 | |
+echo "configure:4214: checking for strftime in -lintl" >&5 | |
ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'` | |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
t@@ -4467,7 +4218,7 @@ else | |
ac_save_LIBS="$LIBS" | |
LIBS="-lintl $LIBS" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4471 "configure" | |
+#line 4222 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4478,7 +4229,7 @@ int main() { | |
strftime() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_lib_$ac_lib_var=yes" | |
else | |
t@@ -4507,12 +4258,12 @@ fi | |
for ac_func in strdup strstr getopt_long | |
do | |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:4511: checking for $ac_func" >&5 | |
+echo "configure:4262: checking for $ac_func" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4516 "configure" | |
+#line 4267 "configure" | |
#include "confdefs.h" | |
/* System header to define __stub macros and hopefully few prototypes, | |
which can conflict with char $ac_func(); below. */ | |
t@@ -4535,7 +4286,7 @@ $ac_func(); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_func_$ac_func=yes" | |
else | |
t@@ -4566,14 +4317,14 @@ if test "$CYGWIN" = "yes" ; then | |
else | |
echo $ac_n "checking for library containing socket""... $ac_c" 1>&6 | |
-echo "configure:4570: checking for library containing socket" >&5 | |
+echo "configure:4321: checking for library containing socket" >&5 | |
if eval "test \"`echo '$''{'ac_cv_search_socket'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
ac_func_search_save_LIBS="$LIBS" | |
ac_cv_search_socket="no" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4577 "configure" | |
+#line 4328 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4584,7 +4335,7 @@ int main() { | |
socket() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
ac_cv_search_socket="none required" | |
else | |
t@@ -4595,7 +4346,7 @@ rm -f conftest* | |
test "$ac_cv_search_socket" = "no" && for i in socket; do | |
LIBS="-l$i $ac_func_search_save_LIBS" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4599 "configure" | |
+#line 4350 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4606,7 +4357,7 @@ int main() { | |
socket() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
ac_cv_search_socket="-l$i" | |
break | |
t@@ -4628,14 +4379,14 @@ else : | |
fi | |
echo $ac_n "checking for library containing gethostbyname""... $ac_c" 1>&6 | |
-echo "configure:4632: checking for library containing gethostbyname" >&5 | |
+echo "configure:4383: checking for library containing gethostbyname" >&5 | |
if eval "test \"`echo '$''{'ac_cv_search_gethostbyname'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
ac_func_search_save_LIBS="$LIBS" | |
ac_cv_search_gethostbyname="no" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4639 "configure" | |
+#line 4390 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4646,7 +4397,7 @@ int main() { | |
gethostbyname() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
ac_cv_search_gethostbyname="none required" | |
else | |
t@@ -4657,7 +4408,7 @@ rm -f conftest* | |
test "$ac_cv_search_gethostbyname" = "no" && for i in nsl socket; do | |
LIBS="-l$i $ac_func_search_save_LIBS" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4661 "configure" | |
+#line 4412 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4668,7 +4419,7 @@ int main() { | |
gethostbyname() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
ac_cv_search_gethostbyname="-l$i" | |
break | |
t@@ -4691,12 +4442,12 @@ fi | |
for ac_func in socket gethostbyname select | |
do | |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:4695: checking for $ac_func" >&5 | |
+echo "configure:4446: checking for $ac_func" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4700 "configure" | |
+#line 4451 "configure" | |
#include "confdefs.h" | |
/* System header to define __stub macros and hopefully few prototypes, | |
which can conflict with char $ac_func(); below. */ | |
t@@ -4719,7 +4470,7 @@ $ac_func(); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_func_$ac_func=yes" | |
else | |
t@@ -4933,38 +4684,43 @@ s%@AUTOHEADER@%$AUTOHEADER%g | |
s%@MAKEINFO@%$MAKEINFO%g | |
s%@SET_MAKE@%$SET_MAKE%g | |
s%@CC@%$CC%g | |
-s%@RANLIB@%$RANLIB%g | |
s%@CPP@%$CPP%g | |
+s%@WNDRES@%$WNDRES%g | |
+s%@GLIB_CONFIG@%$GLIB_CONFIG%g | |
+s%@GLIB_CFLAGS@%$GLIB_CFLAGS%g | |
+s%@GLIB_LIBS@%$GLIB_LIBS%g | |
+s%@GTK_CONFIG@%$GTK_CONFIG%g | |
+s%@GTK_CFLAGS@%$GTK_CFLAGS%g | |
+s%@GTK_LIBS@%$GTK_LIBS%g | |
+s%@host@%$host%g | |
+s%@host_alias@%$host_alias%g | |
+s%@host_cpu@%$host_cpu%g | |
+s%@host_vendor@%$host_vendor%g | |
+s%@host_os@%$host_os%g | |
+s%@RANLIB@%$RANLIB%g | |
s%@ALLOCA@%$ALLOCA%g | |
+s%@GLIBC21@%$GLIBC21%g | |
+s%@LIBICONV@%$LIBICONV%g | |
s%@USE_NLS@%$USE_NLS%g | |
s%@MSGFMT@%$MSGFMT%g | |
s%@GMSGFMT@%$GMSGFMT%g | |
s%@XGETTEXT@%$XGETTEXT%g | |
-s%@GENCAT@%$GENCAT%g | |
+s%@INTLBISON@%$INTLBISON%g | |
+s%@BUILD_INCLUDED_LIBINTL@%$BUILD_INCLUDED_LIBINTL%g | |
s%@USE_INCLUDED_LIBINTL@%$USE_INCLUDED_LIBINTL%g | |
s%@CATALOGS@%$CATALOGS%g | |
s%@CATOBJEXT@%$CATOBJEXT%g | |
-s%@DATADIRNAME@%$DATADIRNAME%g | |
s%@GMOFILES@%$GMOFILES%g | |
-s%@INSTOBJEXT@%$INSTOBJEXT%g | |
-s%@INTLDEPS@%$INTLDEPS%g | |
s%@INTLLIBS@%$INTLLIBS%g | |
s%@INTLOBJS@%$INTLOBJS%g | |
s%@POFILES@%$POFILES%g | |
s%@POSUB@%$POSUB%g | |
-s%@INCLUDE_LOCALE_H@%$INCLUDE_LOCALE_H%g | |
-s%@GT_NO@%$GT_NO%g | |
-s%@GT_YES@%$GT_YES%g | |
+s%@DATADIRNAME@%$DATADIRNAME%g | |
+s%@INSTOBJEXT@%$INSTOBJEXT%g | |
+s%@GENCAT@%$GENCAT%g | |
s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g | |
-s%@l@%$l%g | |
+s%@INTL_LIBTOOL_SUFFIX_PREFIX@%$INTL_LIBTOOL_SUFFIX_PREFIX%g | |
s%@localedir@%$localedir%g | |
-s%@WNDRES@%$WNDRES%g | |
-s%@GLIB_CONFIG@%$GLIB_CONFIG%g | |
-s%@GLIB_CFLAGS@%$GLIB_CFLAGS%g | |
-s%@GLIB_LIBS@%$GLIB_LIBS%g | |
-s%@GTK_CONFIG@%$GTK_CONFIG%g | |
-s%@GTK_CFLAGS@%$GTK_CFLAGS%g | |
-s%@GTK_LIBS@%$GTK_LIBS%g | |
s%@GTKPORT_C@%$GTKPORT_C%g | |
s%@GTKPORT_O@%$GTKPORT_O%g | |
s%@LIBOBJS@%$LIBOBJS%g | |
t@@ -5180,51 +4936,6 @@ cat >> $CONFIG_STATUS <<\EOF | |
fi; done | |
EOF | |
- | |
-cat >> $CONFIG_STATUS <<EOF | |
-ac_sources="$nls_cv_header_libgt" | |
-ac_dests="$nls_cv_header_intl" | |
-EOF | |
- | |
-cat >> $CONFIG_STATUS <<\EOF | |
-srcdir=$ac_given_srcdir | |
-while test -n "$ac_sources"; do | |
- set $ac_dests; ac_dest=$1; shift; ac_dests=$* | |
- set $ac_sources; ac_source=$1; shift; ac_sources=$* | |
- | |
- echo "linking $srcdir/$ac_source to $ac_dest" | |
- | |
- if test ! -r $srcdir/$ac_source; then | |
- { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1… | |
- fi | |
- rm -f $ac_dest | |
- | |
- # Make relative symlinks. | |
- # Remove last slash and all that follows it. Not all systems have dirname. | |
- ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'` | |
- if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then | |
- # The dest file is in a subdirectory. | |
- test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir" | |
- ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`" | |
- # A "../" for each directory in $ac_dest_dir_suffix. | |
- ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'` | |
- else | |
- ac_dest_dir_suffix= ac_dots= | |
- fi | |
- | |
- case "$srcdir" in | |
- [/$]*) ac_rel_source="$srcdir/$ac_source" ;; | |
- *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;; | |
- esac | |
- | |
- # Make a symlink if possible; otherwise try a hard link. | |
- if ln -s $ac_rel_source $ac_dest 2>/dev/null || | |
- ln $srcdir/$ac_source $ac_dest; then : | |
- else | |
- { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&… | |
- fi | |
-done | |
-EOF | |
cat >> $CONFIG_STATUS <<EOF | |
t@@ -5232,9 +4943,35 @@ cat >> $CONFIG_STATUS <<EOF | |
EOF | |
cat >> $CONFIG_STATUS <<\EOF | |
test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h | |
-case "$CONFIG_FILES" in *po/Makefile.in*) | |
- sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile | |
- esac | |
+for ac_file in $CONFIG_FILES; do | |
+ # Support "outfile[:infile[:infile...]]" | |
+ case "$ac_file" in | |
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; | |
+ esac | |
+ # PO directories have a Makefile.in generated from Makefile.in.in. | |
+ case "$ac_file" in */Makefile.in) | |
+ # Adjust a relative srcdir. | |
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` | |
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" | |
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` | |
+ # In autoconf-2.13 it is called $ac_given_srcdir. | |
+ # In autoconf-2.50 it is called $srcdir. | |
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" | |
+ case "$ac_given_srcdir" in | |
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; | |
+ /*) top_srcdir="$ac_given_srcdir" ;; | |
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;; | |
+ esac | |
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then | |
+ rm -f "$ac_dir/POTFILES" | |
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || ec… | |
+ sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/&… | |
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || ec… | |
+ sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$… | |
+ fi | |
+ ;; | |
+ esac | |
+ done | |
sed -e "/POTFILES =/r po/POTFILES" -e 's/^prefix = /prefix = ${DESTDIR}/' po/M… | |
exit 0 | |
EOF | |
diff --git a/configure.in b/configure.in | |
t@@ -9,21 +9,20 @@ AM_CONFIG_HEADER(config.h) | |
dnl Checks for programs. | |
AC_PROG_CC | |
+AC_ISC_POSIX | |
AC_PROG_INSTALL | |
AC_PROG_MAKE_SET | |
-dnl Do i18n stuff | |
-ALL_LINGUAS="de pl pt_BR fr" | |
-AM_GNU_GETTEXT | |
-if test "$gt_cv_func_gettext_libintl" = "yes"; then | |
- LIBS="-lintl $LIBS" | |
-fi | |
+dnl Checks for header files. | |
+AC_HEADER_STDC | |
+AC_HEADER_SYS_WAIT | |
+AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h stdlib.h) | |
-HAVE_FIXED_GTK="no" | |
+dnl Checks for typedefs, structures, and compiler characteristics. | |
+AC_HEADER_TIME | |
+AC_STRUCT_TM | |
-localedir=${datadir}/locale | |
-AC_SUBST(localedir) | |
-dnl AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) | |
+HAVE_FIXED_GTK="no" | |
dnl Process client options | |
AC_ARG_ENABLE(gui-client, | |
t@@ -126,6 +125,16 @@ else | |
[AC_MSG_RESULT([no])]) | |
fi | |
+dnl Do i18n stuff | |
+ALL_LINGUAS="de pl pt_BR fr" | |
+AM_GNU_GETTEXT | |
+if test "$gt_cv_func_gettext_libintl" = "yes"; then | |
+ LIBS="-lintl $LIBS" | |
+fi | |
+ | |
+localedir=${datadir}/locale | |
+AC_SUBST(localedir) | |
+ | |
if test "$GUI_CLIENT" = "yes" ; then | |
AC_DEFINE(GUI_CLIENT) | |
fi | |
t@@ -156,15 +165,6 @@ if test "$GUI_CLIENT" = "yes" -o "$GUI_SERVER" = "yes" ; … | |
AC_SUBST(GTKPORT_O) | |
fi | |
-dnl Checks for header files. | |
-AC_HEADER_STDC | |
-AC_HEADER_SYS_WAIT | |
-AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h stdlib.h) | |
- | |
-dnl Checks for typedefs, structures, and compiler characteristics. | |
-AC_HEADER_TIME | |
-AC_STRUCT_TM | |
- | |
dnl Can we use a long long datatype for price_t ? | |
AC_CHECK_SIZEOF(long long) | |
diff --git a/intl/ChangeLog b/intl/ChangeLog | |
t@@ -1,1086 +1,4 @@ | |
-1998-04-29 Ulrich Drepper <[email protected]> | |
+2001-05-23 GNU <[email protected]> | |
- * intl/localealias.c (read_alias_file): Use unsigned char for | |
- local variables. Remove unused variable tp. | |
- * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char * | |
- for type of codeset. For loosing Solaris systems. | |
- * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset. | |
- * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable | |
- len if not needed. | |
- Patches by Jim Meyering. | |
+ * Version 0.10.38 released. | |
-1998-04-28 Ulrich Drepper <[email protected]> | |
- | |
- * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if | |
- mmap is not supported. | |
- | |
- * hash-string.h: Don't include <values.h>. | |
- | |
-1998-04-27 Ulrich Drepper <[email protected]> | |
- | |
- * textdomain.c: Use strdup is available. | |
- | |
- * localealias.c: Define HAVE_MEMPCPY so that we can use this | |
- function. Define and use semapahores to protect modfication of | |
- global objects when compiling for glibc. Add code to allow | |
- freeing alias table. | |
- | |
- * l10nflist.c: Don't assume stpcpy not being a macro. | |
- | |
- * gettextP.h: Define internal_function macri if not already done. | |
- Use glibc byte-swap macros instead of defining SWAP when compiled | |
- for glibc. | |
- (struct loaded_domain): Add elements to allow unloading. | |
- | |
- * Makefile.in (distclean): Don't remove libintl.h here. | |
- | |
- * bindtextdomain.c: Carry over changes from glibc. Use strdup if | |
- available. | |
- | |
- * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal | |
- functions. Add memory freeing code for glibc. | |
- | |
- * dgettext.c: Update copyright. | |
- | |
- * explodename.c: Include stdlib.h and string.h only if they exist. | |
- Use strings.h eventually. | |
- | |
- * finddomain.c: Mark internal functions. Use strdup if available. | |
- Add memory freeing code for glibc. | |
- | |
-1997-10-10 20:00 Ulrich Drepper <[email protected]> | |
- | |
- * libgettext.h: Fix dummy textdomain and bindtextdomain macros. | |
- They should return reasonable values. | |
- Reported by Tom Tromey <[email protected]>. | |
- | |
-1997-09-16 03:33 Ulrich Drepper <[email protected]> | |
- | |
- * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined. | |
- * intlh.inst.in: Likewise. | |
- Reported by Jean-Marc Lasgouttes <[email protected]>. | |
- | |
- * libintl.glibc: Update from current glibc version. | |
- | |
-1997-09-06 02:10 Ulrich Drepper <[email protected]> | |
- | |
- * intlh.inst.in: Reformat copyright. | |
- | |
-1997-08-19 15:22 Ulrich Drepper <[email protected]> | |
- | |
- * dcgettext.c (DCGETTEXT): Remove wrong comment. | |
- | |
-1997-08-16 00:13 Ulrich Drepper <[email protected]> | |
- | |
- * Makefile.in (install-data): Don't change directory to install. | |
- | |
-1997-08-01 14:30 Ulrich Drepper <[email protected]> | |
- | |
- * cat-compat.c: Fix copyright. | |
- | |
- * localealias.c: Don't define strchr unless !HAVE_STRCHR. | |
- | |
- * loadmsgcat.c: Update copyright. Fix typos. | |
- | |
- * l10nflist.c: Don't define strchr unless !HAVE_STRCHR. | |
- (_nl_make_l10nflist): Handle sponsor and revision correctly. | |
- | |
- * gettext.c: Update copyright. | |
- * gettext.h: Likewise. | |
- * hash-string.h: Likewise. | |
- | |
- * finddomain.c: Remoave dead code. Define strchr only if | |
- !HAVE_STRCHR. | |
- | |
- * explodename.c: Include <sys/types.h>. | |
- | |
- * explodename.c: Reformat copyright text. | |
- (_nl_explode_name): Fix typo. | |
- | |
- * dcgettext.c: Define and use __set_errno. | |
- (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is | |
- not defined. | |
- | |
- * bindtextdom.c: Pretty printing. | |
- | |
-1997-05-01 02:25 Ulrich Drepper <[email protected]> | |
- | |
- * dcgettext.c (guess_category_value): Don't depend on | |
- HAVE_LC_MESSAGES. We don't need the macro here. | |
- Patch by Bruno Haible <[email protected]>. | |
- | |
- * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL | |
- macro. Instead use HAVE_LOCALE_NULL and define it when using | |
- glibc, as in dcgettext.c. | |
- Patch by Bruno Haible <[email protected]>. | |
- | |
- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois | |
- Pinard. | |
- | |
-Mon Mar 10 06:51:17 1997 Ulrich Drepper <[email protected]> | |
- | |
- * Makefile.in: Implement handling of libtool. | |
- | |
- * gettextP.h: Change data structures for use of generic lowlevel | |
- i18n file handling. | |
- | |
-Wed Dec 4 20:21:18 1996 Ulrich Drepper <[email protected]> | |
- | |
- * textdomain.c: Put parentheses around arguments of memcpy macro | |
- definition. | |
- * localealias.c: Likewise. | |
- * l10nflist.c: Likewise. | |
- * finddomain.c: Likewise. | |
- * bindtextdom.c: Likewise. | |
- Reported by Thomas Esken. | |
- | |
-Mon Nov 25 22:57:51 1996 Ulrich Drepper <[email protected]> | |
- | |
- * textdomain.c: Move definition of `memcpy` macro to right | |
- position. | |
- | |
-Fri Nov 22 04:01:58 1996 Ulrich Drepper <[email protected]> | |
- | |
- * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using | |
- bcopy if not already defined. Reported by Thomas Esken. | |
- * bindtextdom.c: Likewise. | |
- * l10nflist.c: Likewise. | |
- * localealias.c: Likewise. | |
- * textdomain.c: Likewise. | |
- | |
-Tue Oct 29 11:10:27 1996 Ulrich Drepper <[email protected]> | |
- | |
- * Makefile.in (libdir): Change to use exec_prefix instead of | |
- prefix. Reported by Knut-H�vardAksnes <[email protected]>. | |
- | |
-Sat Aug 31 03:07:09 1996 Ulrich Drepper <[email protected]> | |
- | |
- * l10nflist.c (_nl_normalize_codeset): We convert to lower case, | |
- so don't prepend uppercase `ISO' for only numeric arg. | |
- | |
-Fri Jul 19 00:15:46 1996 Ulrich Drepper <[email protected]> | |
- | |
- * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after | |
- definition of _GNU_SOURCE. Patch by Roland McGrath. | |
- | |
- * Makefile.in (uninstall): Fix another bug with `for' loop and | |
- empty arguments. Patch by Jim Meyering. Correct name os | |
- uninstalled files: no intl- prefix anymore. | |
- | |
- * Makefile.in (install-data): Again work around shells which | |
- cannot handle mpty for list. Reported by Jim Meyering. | |
- | |
-Sat Jul 13 18:11:35 1996 Ulrich Drepper <[email protected]> | |
- | |
- * Makefile.in (install): Split goal. Now depend on install-exec | |
- and install-data. | |
- (install-exec, install-data): New goals. Created from former | |
- install goal. | |
- Reported by Karl Berry. | |
- | |
-Sat Jun 22 04:58:14 1996 Ulrich Drepper <[email protected]> | |
- | |
- * Makefile.in (MKINSTALLDIRS): New variable. Path to | |
- mkinstalldirs script. | |
- (install): use MKINSTALLDIRS variable or if the script is not present | |
- try to find it in the $top_scrdir). | |
- | |
-Wed Jun 19 02:56:56 1996 Ulrich Drepper <[email protected]> | |
- | |
- * l10nflist.c: Linux libc *partly* includes the argz_* functions. | |
- Grr. Work around by renaming the static version and use macros | |
- for renaming. | |
- | |
-Tue Jun 18 20:11:17 1996 Ulrich Drepper <[email protected]> | |
- | |
- * l10nflist.c: Correct presence test macros of __argz_* functions. | |
- | |
- * l10nflist.c: Include <argz.h> based on test of it instead when | |
- __argz_* functions are available. | |
- Reported by Andreas Schwab. | |
- | |
-Thu Jun 13 15:17:44 1996 Ulrich Drepper <[email protected]> | |
- | |
- * explodename.c, l10nflist.c: Define NULL for dumb systems. | |
- | |
-Tue Jun 11 17:05:13 1996 Ulrich Drepper <[email protected]> | |
- | |
- * intlh.inst.in, libgettext.h (dcgettext): Rename local variable | |
- result to __result to prevent name clash. | |
- | |
- * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to | |
- get prototype for stpcpy and strcasecmp. | |
- | |
- * intlh.inst.in, libgettext.h: Move declaration of | |
- `_nl_msg_cat_cntr' outside __extension__ block to prevent warning | |
- from gcc's -Wnested-extern option. | |
- | |
-Fri Jun 7 01:58:00 1996 Ulrich Drepper <[email protected]> | |
- | |
- * Makefile.in (install): Remove comment. | |
- | |
-Thu Jun 6 17:28:17 1996 Ulrich Drepper <[email protected]> | |
- | |
- * Makefile.in (install): Work around for another Buglix stupidity. | |
- Always use an `else' close for `if's. Reported by Nelson Beebe. | |
- | |
- * Makefile.in (intlh.inst): Correct typo in phony rule. | |
- Reported by Nelson Beebe. | |
- | |
-Thu Jun 6 01:49:52 1996 Ulrich Drepper <[email protected]> | |
- | |
- * dcgettext.c (read_alias_file): Rename variable alloca_list to | |
- block_list as the macro calls assume. | |
- Patch by Eric Backus. | |
- | |
- * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using | |
- malloc. | |
- (read_alias_file): Rename varriabe alloca_list to block_list as the | |
- macro calls assume. | |
- Patch by Eric Backus. | |
- | |
- * l10nflist.c: Correct conditional for <argz.h> inclusion. | |
- Reported by Roland McGrath. | |
- | |
- * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not | |
- all-@USE_NLS@. | |
- | |
- * Makefile.in (install): intlh.inst comes from local dir, not | |
- $(srcdir). | |
- | |
- * Makefile.in (intlh.inst): Special handling of this goal. If | |
- used in gettext, this is really a rul to construct this file. If | |
- used in any other package it is defined as a .PHONY rule with | |
- empty body. | |
- | |
- * finddomain.c: Extract locale file information handling into | |
- l10nfile.c. Rename local stpcpy__ function to stpcpy. | |
- | |
- * dcgettext.c (stpcpy): Add local definition. | |
- | |
- * l10nflist.c: Solve some portability problems. Patches partly by | |
- Thomas Esken. Add local definition of stpcpy. | |
- | |
-Tue Jun 4 02:47:49 1996 Ulrich Drepper <[email protected]> | |
- | |
- * intlh.inst.in: Don't depend including <locale.h> on | |
- HAVE_LOCALE_H. Instead configure must rewrite this fiile | |
- depending on the result of the configure run. | |
- | |
- * Makefile.in (install): libintl.inst is now called intlh.inst. | |
- Add rules for updating intlh.inst from intlh.inst.in. | |
- | |
- * libintl.inst: Renamed to intlh.inst.in. | |
- | |
- * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1 | |
- because gcc has __buitlin_alloca. | |
- Reported by Roland McGrath. | |
- | |
-Mon Jun 3 00:32:16 1996 Ulrich Drepper <[email protected]> | |
- | |
- * Makefile.in (installcheck): New goal to fulfill needs of | |
- automake's distcheck. | |
- | |
- * Makefile.in (install): Reorder commands so that VERSION is | |
- found. | |
- | |
- * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in | |
- @datadir@/gettext. | |
- (COMSRCS): Add l10nfile.c. | |
- (OBJECTS): Add l10nfile.o. | |
- (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common). | |
- (DISTFILE.gettext): Remove $(DISTFILES.common). | |
- (all-gettext): Remove goal. | |
- (install): If $(PACKAGE) = gettext install, otherwose do nothing. No | |
- package but gettext itself should install libintl.h + headers. | |
- (dist): Extend goal to work for gettext, too. | |
- (dist-gettext): Remove goal. | |
- | |
- * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc. | |
- | |
-Sun Jun 2 17:33:06 1996 Ulrich Drepper <[email protected]> | |
- | |
- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from | |
- find_l10nfile. | |
- | |
-Sat Jun 1 02:23:03 1996 Ulrich Drepper <[email protected]> | |
- | |
- * l10nflist.c (__argz_next): Add definition. | |
- | |
- * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca | |
- code. Use new l10nfile handling. | |
- | |
- * localealias.c [!HAVE_ALLOCA]: Add code for handling missing | |
- alloca code. | |
- | |
- * l10nflist.c: Initial revision. | |
- | |
-Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (all-gettext): New goal. Same as all-yes. | |
- | |
-Thu Mar 28 23:01:22 1996 Karl Eichwalder <[email protected]> | |
- | |
- * Makefile.in (gettextsrcdir): Define using @datadir@. | |
- | |
-Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c: Include <ctype.h>. Reported by Roland McGrath. | |
- | |
-Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing | |
- with external declaration. | |
- | |
-Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (all-no): Rename from all_no. | |
- | |
-Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware> | |
- | |
- * gettextP.h [loaded_domain]: Array `successor' must now contain up | |
- to 63 elements (because of codeset name normalization). | |
- | |
- * finddomain.c: Implement codeset name normalization. | |
- | |
-Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (all): Define to `all-@USE_NLS@'. | |
- (all-yes, all_no): New goals. `all-no' is noop, `all-yes' | |
- is former all. | |
- | |
-Mon Jan 15 21:46:01 1996 Howard Gayle <[email protected]> | |
- | |
- * localealias.c (alias_compare): Increment string pointers in loop | |
- of strcasecmp replacement. | |
- | |
-Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (install-src): Who commented this goal out ? :-) | |
- | |
-Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls | |
- should not effect it because a missing catalog is no error. | |
- Reported by Harald K<o:>nig <[email protected]>. | |
- | |
-Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (Makefile): Explicitly use $(SHELL) for running | |
- shell scripts. | |
- | |
-Fri Dec 15 17:34:59 1995 Andreas Schwab <[email protected]… | |
- | |
- * Makefile.in (install-src): Only install library and header when | |
- we use the own implementation. Don't do it when using the | |
- system's gettext or catgets functions. | |
- | |
- * dcgettext.c (find_msg): Must not swap domain->hash_size here. | |
- | |
-Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * localealias.c, libintl.inst, libgettext.h, hash-string.h, | |
- gettextP.h, finddomain.c, dcgettext.c, cat-compat.c: | |
- Use PARAMS instead of __P. Suggested by Roland McGrath. | |
- | |
-Tue Dec 5 11:39:14 1995 Larry Schwimmer <[email protected]> | |
- | |
- * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if | |
- !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty. | |
- | |
-Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (install-src): | |
- Install libintl.inst instead of libintl.h.install. | |
- | |
-Sat Dec 2 22:51:38 1995 Marcus Daniels <[email protected]> | |
- | |
- * cat-compat.c (textdomain): | |
- Reverse order in which files are tried you load. First | |
- try local file, when this failed absolute path. | |
- | |
-Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <[email protected]> | |
- | |
- * cat-compat.c (bindtextdomain): Add missing { }. | |
- | |
-Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * libintl.inst: Add missing __P definition. Reported by Nelson Beebe. | |
- | |
- * Makefile.in: | |
- Add dummy `all' and `dvi' goals. Reported by Tom Tromey. | |
- | |
-Sat Nov 25 16:12:01 1995 Franc,ois Pinard <[email protected]> | |
- | |
- * hash-string.h: Capitalize arguments of macros. | |
- | |
-Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (DISTFILES): Prevent files names longer than 13 | |
- characters. libintl.h.glibc->libintl.glibc, | |
- libintl.h.install->libintl.inst. Reported by Joshua R. Poulson. | |
- | |
-Sat Nov 25 11:31:12 1995 Eric Backus <[email protected]> | |
- | |
- * dcgettext.c: Fix bug in preprocessor conditionals. | |
- | |
-Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <[email protected]> | |
- | |
- * libgettext.h: Solaris cc does not understand | |
- #if !SYMBOL1 && !SYMBOL2. Sad but true. | |
- | |
-Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * hash-string.h (hash_string): | |
- Fix for machine with >32 bit `unsigned long's. | |
- | |
- * dcgettext.c (DCGETTEXT): | |
- Fix horrible bug in loop for alternative translation. | |
- | |
-Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed: | |
- Some further simplifications in message number generation. | |
- | |
-Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * libintl.h.glibc: Use __const instead of const in prototypes. | |
- | |
- * Makefile.in (install-src): | |
- Install libintl.h.install instead of libintl.h. This | |
- is a stripped-down version. Suggested by Peter Miller. | |
- | |
- * libintl.h.install, libintl.h.glibc: Initial revision. | |
- | |
- * localealias.c (_nl_expand_alias, read_alias_file): | |
- Protect prototypes in type casts by __P. | |
- | |
-Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * hash-string.h: Correct prototype for hash_string. | |
- | |
-Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * hash-string.h (hash_string): Add prototype. | |
- | |
- * gettextP.h: Fix copyright. | |
- (SWAP): Add prototype. | |
- | |
-Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * localealias.c (read_alias_file): Forgot sizeof. | |
- Avoid calling *printf function. This introduces a big overhead. | |
- Patch by Roland McGrath. | |
- | |
-Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy. | |
- | |
- * finddomain.c (stpcpy): | |
- Define substitution function local. The macro was to flaky. | |
- | |
- * cat-compat.c: Fix typo. | |
- | |
- * xopen-msg.sed, linux-msg.sed: | |
- While bringing message number to right place only accept digits. | |
- | |
- * linux-msg.sed, xopen-msg.sed: Now that the counter does not have | |
- leading 0s we don't need to remove them. Reported by Marcus | |
- Daniels. | |
- | |
- * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in | |
- dependency. Reported by Marcus Daniels. | |
- | |
- * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement. | |
- Generally cleanup using #if instead of #ifndef. | |
- | |
- * Makefile.in: Correct typos in comment. By Franc,ois Pinard. | |
- | |
-Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (install-src): Don't install libintl.h and libintl.a | |
- if we use an available gettext implementation. | |
- | |
-Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported | |
- by Franc,ois Pinard. | |
- | |
- * libgettext.h: Use #if instead of #ifdef/#ifndef. | |
- | |
- * finddomain.c: | |
- Comments describing what has to be done should start with FIXME. | |
- | |
-Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning. | |
- DISTFILES.common names the files common to both dist goals. | |
- DISTFILES.gettext are the files only distributed in GNU gettext. | |
- | |
-Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * dcgettext.c (DCGETTEXT): Correct searching in derived locales. | |
- This was necessary since a change in _nl_find_msg several weeks | |
- ago. I really don't know this is still not fixed. | |
- | |
-Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This | |
- might mark a special condition. | |
- | |
- * finddomain.c (make_entry_rec): Don't make illegal entry as decided. | |
- | |
- * Makefile.in (dist): Suppress error message when ln failed. | |
- Get files from $(srcdir) explicitly. | |
- | |
- * libgettext.h (gettext_const): Rename to gettext_noop. | |
- | |
-Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c (make_entry_rec): | |
- Protect against wrong locale names by testing mask. | |
- | |
- * libgettext.h (gettext_const): Add macro definition. | |
- Capitalize macro arguments. | |
- | |
-Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c (_nl_find_domain): | |
- Test for pointer != NULL before accessing value. | |
- Reported by Tom Tromey. | |
- | |
- * gettext.c (NULL): | |
- Define as (void*)0 instad of 0. Reported by Franc,ois Pinard. | |
- | |
-Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering. | |
- | |
-Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * libgettext.h: Disable dcgettext optimization for Solaris 2.3. | |
- | |
- * localealias.c (alias_compare): | |
- Peter Miller reported that tolower in some systems is | |
- even dumber than I thought. Protect call by `isupper'. | |
- | |
-Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (libdir, includedir): New variables. | |
- (install-src): Install libintl.a and libintl.h in correct dirs. | |
- | |
-Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c. | |
- | |
- * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques. | |
- | |
- * localealias.c: | |
- Fix typo and superflous test. Reported by Christian von Roques. | |
- | |
-Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c (_nl_find_domain): | |
- Correct some remainder from the pre-CEN syntax. Now | |
- we don't have a constant number of successors anymore. | |
- | |
-Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (DISTFILES): Add libintl.h.glibc. | |
- | |
- * Makefile.in (dist-libc): Add goal for packing sources for glibc. | |
- (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc. | |
- | |
- * loadmsgcat.c: Forget to continue #if line. | |
- | |
- * localealias.c: | |
- [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name | |
- space clean. | |
- | |
- * dcgettext.c, finddomain.c: Better comment to last change. | |
- | |
- * loadmsgcat.c: | |
- [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to | |
- __fstat, __open, __close, __read, __mmap, and __munmap resp | |
- to keep ANSI C name space clean. | |
- | |
- * finddomain.c: | |
- [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean. | |
- | |
- * dcgettext.c: | |
- [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to | |
- keep ANSI C name space clean. | |
- | |
- * libgettext.h: | |
- Include sys/types.h for those old SysV systems out there. | |
- Reported by Francesco Potorti`. | |
- | |
- * loadmsgcat.c (use_mmap): Define if compiled for glibc. | |
- | |
- * bindtextdom.c: Include all those standard headers | |
- unconditionally if _LIBC is defined. | |
- | |
- * finddomain.c: Fix 2 times defiend -> defined. | |
- | |
- * textdomain.c: Include libintl.h instead of libgettext.h when | |
- compiling for glibc. Include all those standard headers | |
- unconditionally if _LIBC is defined. | |
- | |
- * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc. | |
- | |
- * gettext.c: | |
- Include libintl.h instead of libgettext.h when compiling for glibc. | |
- Get NULL from stddef.h if we compile for glibc. | |
- | |
- * finddomain.c: Include libintl.h instead of libgettext.h when | |
- compiling for glibc. Include all those standard headers | |
- unconditionally if _LIBC is defined. | |
- | |
- * dcgettext.c: Include all those standard headers unconditionally | |
- if _LIBC is defined. | |
- | |
- * dgettext.c: If compiled in glibc include libintl.h instead of | |
- libgettext.h. | |
- (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc. | |
- | |
- * dcgettext.c: If compiled in glibc include libintl.h instead of | |
- libgettext.h. | |
- (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc. | |
- | |
- * bindtextdom.c: | |
- If compiled in glibc include libintl.h instead of libgettext.h. | |
- | |
-Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0. | |
- Reported by Marcus Daniels. | |
- | |
- * cat-compat.c (bindtextdomain): | |
- String used in putenv must not be recycled. | |
- Reported by Marcus Daniels. | |
- | |
- * libgettext.h (__USE_GNU_GETTEXT): | |
- Additional symbol to signal that we use GNU gettext | |
- library. | |
- | |
- * cat-compat.c (bindtextdomain): | |
- Fix bug with the strange stpcpy replacement. | |
- Reported by Nelson Beebe. | |
- | |
-Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * cat-compat.c: Include <string.h> for stpcpy prototype. | |
- | |
- * localealias.c (read_alias_file): | |
- While expand strdup code temporary variable `cp' hided | |
- higher level variable with same name. Rename to `tp'. | |
- | |
- * textdomain.c (textdomain): | |
- Avoid warning by using temporary variable in strdup code. | |
- | |
- * finddomain.c (_nl_find_domain): Remove unused variable `application'. | |
- | |
-Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * localealias.c (alias_compare): | |
- Use strcasecmp() only if available. Else use | |
- implementation in place. | |
- | |
- * intl-compat.c: | |
- Wrapper functions now call *__ functions instead of __*. | |
- | |
- * libgettext.h: Declare prototypes for *__ functions instead for __*. | |
- | |
- * cat-compat.c, loadmsgcat.c: | |
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part | |
- of the standard libc and so prevent libintl.a from being used | |
- standalone. | |
- | |
- * bindtextdom.c: | |
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part | |
- of the standard libc and so prevent libintl.a from being used | |
- standalone. | |
- Rename to bindtextdomain__ if not used in GNU C Library. | |
- | |
- * dgettext.c: | |
- Rename function to dgettext__ if not used in GNU C Library. | |
- | |
- * gettext.c: | |
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part | |
- of the standard libc and so prevent libintl.a from being used | |
- standalone. | |
- Functions now called gettext__ if not used in GNU C Library. | |
- | |
- * dcgettext.c, localealias.c, textdomain.c, finddomain.c: | |
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part | |
- of the standard libc and so prevent libintl.a from being used | |
- standalone. | |
- | |
-Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c: Correct some bugs in handling of CEN standard | |
- locale definitions. | |
- | |
-Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c: Implement CEN syntax. | |
- | |
- * gettextP.h (loaded_domain): Extend number of successors to 31. | |
- | |
-Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (aliaspath): Remove path to X11 locale dir. | |
- | |
- * Makefile.in: Make install-src depend on install. This helps | |
- gettext to install the sources and other packages can use the | |
- install goal. | |
- | |
-Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (uninstall): Remove stuff installed by install-src. | |
- | |
-Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * VERSION.in: Initial revision. | |
- | |
- * Makefile.in (DISTFILES): | |
- Add VERSION file. This is not necessary for gettext, but | |
- for other packages using this library. | |
- | |
-Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * gettextP.h (_nl_find_domain): | |
- New prototype after changing search strategy. | |
- | |
- * finddomain.c (_nl_find_domain): | |
- We now try only to find a specified catalog. Fall back to other | |
- catalogs listed in the locale list is now done in __dcgettext. | |
- | |
- * dcgettext.c (__dcgettext): | |
- Now we provide message fall back even to different languages. | |
- I.e. if a message is not available in one language all the other | |
- in the locale list a tried. Formerly fall back was only possible | |
- within one language. Implemented by moving one loop from | |
- _nl_find_domain to here. | |
- | |
-Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (gettextsrcdir): | |
- Directory where source of GNU gettext library are made | |
- available. | |
- (INSTALL, INSTALL_DATA): Programs used for installing sources. | |
- (gettext-src): New. Rule to install GNU gettext sources for use in | |
- gettextize shell script. | |
- | |
-Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * loadmsgcat.c (_nl_load_domain): | |
- Use mmap for loading only when munmap function is | |
- also available. | |
- | |
- * Makefile.in (install): Depend on `all' goal. | |
- | |
-Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * localealias.c (read_alias_file): | |
- Do not overwrite '\n' when terminating alias value string. | |
- | |
- * localealias.c (read_alias_file): | |
- Handle long lines. Ignore the rest not fitting in | |
- the buffer after the initial `fgets' call. | |
- | |
-Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * gettextP.h (_nl_load_domain): | |
- Add prototype, replacing prototype for _nl_load_msg_cat. | |
- | |
- * finddomain.c (_nl_find_domain): | |
- Remove unneeded variable filename and filename_len. | |
- (expand_alias): Remove prototype because functions does not | |
- exist anymore. | |
- | |
- * localealias.c (read_alias_file): | |
- Change type of fname_len parameter to int. | |
- (xmalloc): Add prototype. | |
- | |
- * loadmsgcat.c: Better prototypes for xmalloc. | |
- | |
-Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c (_nl_find_domain): | |
- Allow alias name to be constructed from the four components. | |
- | |
- * Makefile.in (aliaspath): New variable. Set to preliminary value. | |
- (SOURCES): Add localealias.c. | |
- (OBJECTS): Add localealias.o. | |
- | |
- * gettextP.h: Add prototype for _nl_expand_alias. | |
- | |
- * finddomain.c: Aliasing handled in intl/localealias.c. | |
- | |
- * localealias.c: Aliasing for locale names. | |
- | |
- * bindtextdom.c: Better prototypes for xmalloc and xstrdup. | |
- | |
-Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (DISTFILES): gettext.perl is now found in misc/. | |
- | |
- * cat-compat.c (bindtextdomain): | |
- Correct implementation. dirname parameter was not used. | |
- Reported by Marcus Daniels. | |
- | |
- * gettextP.h (loaded_domain): | |
- New fields `successor' and `decided' for oo, lazy | |
- message handling implementation. | |
- | |
- * dcgettext.c: | |
- Adopt for oo, lazy message handliing. | |
- Now we can inherit translations from less specific locales. | |
- (find_msg): New function. | |
- | |
- * loadmsgcat.c, finddomain.c: | |
- Complete rewrite. Implement oo, lazy message handling :-). | |
- We now have an additional environment variable `LANGUAGE' with | |
- a higher priority than LC_ALL for the LC_MESSAGE locale. | |
- Here we can set a colon separated list of specifications each | |
- of the form `language[_territory[.codeset]][@modifier]'. | |
- | |
-Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c (unistd.h): | |
- Include to get _PC_PATH_MAX defined on system having it. | |
- | |
-Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * finddomain.c (stpcpy): Include prototype. | |
- | |
- * Makefile.in (dist): Remove `copying instead' message. | |
- | |
-Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (ID, TAGS): Do not use $^. | |
- | |
-Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (TAGS, ID): Use $^ as command argument. | |
- (TAGS): Give etags -o option t write to current directory, | |
- not $(srcdir). | |
- (ID): Use $(srcdir) instead os $(top_srcdir)/src. | |
- (distclean): Remove ID. | |
- | |
-Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (gnulocaledir): | |
- New variable, always using share/ for data directory. | |
- (DEFS): Add GNULOCALEDIR, used in finddomain.c. | |
- | |
- * finddomain.c (_nl_default_dirname): | |
- Set to GNULOCALEDIR, because it always has to point | |
- to the directory where GNU gettext Library writes it to. | |
- | |
- * intl-compat.c (textdomain, bindtextdomain): | |
- Undefine macros before function definition. | |
- | |
-Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * libgettext.h (_LIBINTL_H): | |
- Protect definition in case where this file is included as | |
- libgettext.h on Solaris machines. Add comment about this. | |
- | |
-Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * intl-compat.c (textdomain): Correct typo. | |
- | |
-Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * dcgettext.c (dcgettext): Function now called __dcgettext. | |
- | |
- * dgettext.c (dgettext): Now called __dgettext and calls | |
- __dcgettext. | |
- | |
- * gettext.c (gettext): | |
- Function now called __gettext and calls __dgettext. | |
- | |
- * textdomain.c (textdomain): Function now called __textdomain. | |
- | |
- * bindtextdom.c (bindtextdomain): Function now called | |
- __bindtextdomain. | |
- | |
- * intl-compat.c: Initial revision. | |
- | |
- * Makefile.in (SOURCES): Add intl-compat.c. | |
- (OBJECTS): We always compile the GNU gettext library functions. | |
- OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o, | |
- and intl-compat.o. | |
- (GETTOBJS): Contains now only intl-compat.o. | |
- | |
- * libgettext.h: | |
- Re-include protection matches dualistic character of libgettext.h. | |
- For all functions in GNU gettext library define __ counter part. | |
- | |
- * finddomain.c (strchr): Define as index if not found in C library. | |
- (_nl_find_domain): For relative paths paste / in between. | |
- | |
-Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h. | |
- | |
- * xopen-msg.sed: Fix bug with `msgstr ""' lines. | |
- A little bit better comments. | |
- | |
-Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in: | |
- po-mode.el, makelinks, combine-sh are now found in ../misc. | |
- | |
- * po-mode.el, makelinks, combine-sh, elisp-comp: | |
- Moved to ../misc/. | |
- | |
- * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__. | |
- | |
-Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (INSTALL, INSTALL_DATA): New variables. | |
- (install-data, uninstall): Install/uninstall .elc file. | |
- | |
- * po-mode.el (Installation comment): | |
- Add .pox as possible extension of .po files. | |
- | |
-Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * elisp-comp: Complete new version by Franc,ois: This does not | |
- fail when not compiling in the source directory. | |
- | |
-Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (../po/cat-id-tbl.o): | |
- Use $(MAKE) instead of make for recursive make. | |
- | |
- * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh. | |
- (install-exec): Add missing dummy goal. | |
- (install-data, uninstall): @ in multi-line shell command at | |
- beginning, not in front of echo. Reported by Eric Backus. | |
- | |
-Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (DISTFILES): | |
- Rename libgettext.perl to gettext.perl to fit in 14 chars | |
- file systems. | |
- | |
- * gettext.perl: | |
- Rename to gettext.perl to fit in 14 chars file systems. | |
- | |
-Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * cat-compat.c: If !STDC_HEADERS try to include malloc.h. | |
- | |
-Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * po2tbl.sed.in: Pretty printing. | |
- | |
- * linux-msg.sed, xopen-msg.sed: | |
- Correct bugs with handling substitute flags in branches. | |
- | |
- * hash-string.h (hash_string): | |
- Old K&R compilers don't under stand `unsigned char'. | |
- | |
- * gettext.h (nls_uint32): | |
- Some old K&R compilers (eg HP) don't understand `unsigned int'. | |
- | |
- * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes. | |
- | |
-Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (ELCFILES): New variable. | |
- (DISTFILES): Add elisp-comp. | |
- Add implicit rule for .el -> .elc compilation. | |
- (install-data): install $ELCFILES | |
- (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp. | |
- | |
- * elisp-comp: Initial revision | |
- | |
-Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in: | |
- cat-id-tbl.c is now found in po/. This enables us to use an identical | |
- intl/ directory in all packages. | |
- | |
- * dcgettext.c (dcgettext): hashing does not work for table size <= 2. | |
- | |
- * textdomain.c: fix typo (#if def -> #if defined) | |
- | |
-Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in (stamp-cat-id): use top_srcdir to address source files | |
- (DISTFILES,distclean): move tupdate.perl to src/ | |
- | |
- * po-to-tbl.sed.in: | |
- add additional jump to clear change flag to recognize multiline strings | |
- | |
-Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * textdomain.c: Protect inclusion of stdlib.h and string.h. | |
- | |
- * loadmsgcat.c: Protect inclusion of stdlib.h. | |
- | |
- * libgettext.h: Protect inclusion of locale.h. | |
- Allow use in C++ programs. | |
- Define NULL is not happened already. | |
- | |
- * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of | |
- po-to-tbl.sed. | |
- (distclean): remove po-to-tbl.sed and tupdate.perl. | |
- | |
- * tupdate.perl.in: Substitute Perl path even in exec line. | |
- Don't include entries without translation from old .po file. | |
- | |
-Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * tupdate.perl.in: use "Updated: " in msgid "". | |
- | |
- * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR). | |
- Define getenv if !__STDC__. | |
- | |
- * bindtextdom.c: Protect stdlib.h and string.h inclusion. | |
- Define free if !__STDC__. | |
- | |
- * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. | |
- Define free if !__STDC__. | |
- | |
- * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. | |
- | |
-Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR. | |
- Remove unneeded $(srcdir) from Makefile.in dependency. | |
- | |
- * makelinks: Add copyright and short description. | |
- | |
- * po-mode.el: Last version for 0.7. | |
- | |
- * tupdate.perl.in: Fix die message. | |
- | |
- * dcgettext.c: Protect include of string.h. | |
- | |
- * gettext.c: Protect include of stdlib.h and further tries to get NULL. | |
- | |
- * finddomain.c: Some corrections in includes. | |
- | |
- * Makefile.in (INCLUDES): Prune list correct path to Makefile.in. | |
- | |
- * po-to-tbl.sed: Adopt for new .po file format. | |
- | |
- * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format. | |
- | |
-Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * tupdate.perl.in: Complete rewrite for new .po file format. | |
- | |
-Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware> | |
- | |
- * First official release. This directory contains all the code | |
- needed to internationalize own packages. It provides functions | |
- which allow to use the X/Open catgets function with an interface | |
- like the Uniforum gettext function. For system which does not | |
- have neither of those a complete implementation is provided. | |
diff --git a/intl/Makefile.in b/intl/Makefile.in | |
t@@ -1,5 +1,5 @@ | |
# Makefile for directory with message catalog handling in GNU NLS Utilities. | |
-# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. | |
+# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. | |
# | |
# This program is free software; you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
t@@ -28,75 +28,106 @@ VPATH = @srcdir@ | |
prefix = @prefix@ | |
exec_prefix = @exec_prefix@ | |
transform = @program_transform_name@ | |
-libdir = $(exec_prefix)/lib | |
-includedir = $(prefix)/include | |
-datadir = $(prefix)/@DATADIRNAME@ | |
+libdir = @libdir@ | |
+includedir = @includedir@ | |
+datadir = @datadir@ | |
localedir = $(datadir)/locale | |
-gnulocaledir = $(prefix)/share/locale | |
-gettextsrcdir = @datadir@/gettext/intl | |
-aliaspath = $(localedir):. | |
+gettextsrcdir = $(datadir)/gettext/intl | |
+aliaspath = $(localedir) | |
subdir = intl | |
INSTALL = @INSTALL@ | |
INSTALL_DATA = @INSTALL_DATA@ | |
MKINSTALLDIRS = @MKINSTALLDIRS@ | |
+mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS… | |
-l = @l@ | |
+l = @INTL_LIBTOOL_SUFFIX_PREFIX@ | |
AR = ar | |
CC = @CC@ | |
LIBTOOL = @LIBTOOL@ | |
RANLIB = @RANLIB@ | |
+YACC = @INTLBISON@ -y -d | |
+YFLAGS = --name-prefix=__gettext | |
-DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \ | |
--DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@ | |
+DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ | |
+-DLIBDIR=\"$(libdir)\" @DEFS@ | |
CPPFLAGS = @CPPFLAGS@ | |
CFLAGS = @CFLAGS@ | |
LDFLAGS = @LDFLAGS@ | |
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) | |
-HEADERS = $(COMHDRS) libgettext.h loadinfo.h | |
+HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h | |
COMHDRS = gettext.h gettextP.h hash-string.h | |
-SOURCES = $(COMSRCS) intl-compat.c cat-compat.c | |
+SOURCES = $(COMSRCS) intl-compat.c | |
COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \ | |
finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \ | |
-explodename.c | |
+explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \ | |
+localcharset.c | |
OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \ | |
finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \ | |
-explodename.$lo | |
-CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo | |
+explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \ | |
+plural.$lo localcharset.$lo | |
GETTOBJS = intl-compat.$lo | |
-DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \ | |
-xopen-msg.sed $(HEADERS) $(SOURCES) | |
+DISTFILES.common = Makefile.in \ | |
+config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES) | |
+DISTFILES.generated = plural.c | |
DISTFILES.normal = VERSION | |
-DISTFILES.gettext = libintl.glibc intlh.inst.in | |
+DISTFILES.gettext = libintl.glibc | |
+DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c | |
+ | |
+# Libtool's library version information for libintl. | |
+# Before making a gettext release, the gettext maintainer must change this | |
+# according to the libtool documentation, section "Library interface versions". | |
+# Maintainers of other packages that include the intl directory must *not* | |
+# change these values. | |
+LTV_CURRENT=1 | |
+LTV_REVISION=1 | |
+LTV_AGE=0 | |
.SUFFIXES: | |
-.SUFFIXES: .c .o .lo | |
+.SUFFIXES: .c .y .o .lo .sin .sed | |
.c.o: | |
$(COMPILE) $< | |
.c.lo: | |
$(LIBTOOL) --mode=compile $(COMPILE) $< | |
-INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib | |
+.y.c: | |
+ $(YACC) $(YFLAGS) --output $@ $< | |
+ rm -f $*.h | |
-all: all-@USE_INCLUDED_LIBINTL@ | |
+.sin.sed: | |
+ sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@ | |
+ mv t-$@ $@ | |
+ | |
+INCLUDES = -I.. -I. -I$(top_srcdir)/intl | |
-all-yes: libintl.$la intlh.inst | |
-all-no: | |
+all: all-@USE_INCLUDED_LIBINTL@ | |
+all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed | |
+all-no: all-no-@BUILD_INCLUDED_LIBINTL@ | |
+all-no-yes: libgnuintl.$la | |
+all-no-no: | |
-libintl.a: $(OBJECTS) | |
+libintl.a libgnuintl.a: $(OBJECTS) | |
rm -f $@ | |
$(AR) cru $@ $(OBJECTS) | |
$(RANLIB) $@ | |
-libintl.la: $(OBJECTS) | |
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \ | |
- -version-info 1:0 -rpath $(libdir) | |
+libintl.la libgnuintl.la: $(OBJECTS) | |
+ $(LIBTOOL) --mode=link \ | |
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \ | |
+ $(OBJECTS) @LIBICONV@ \ | |
+ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \ | |
+ -rpath $(libdir) \ | |
+ -no-undefined | |
-../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot | |
- cd ../po && $(MAKE) cat-id-tbl.$lo | |
+libintl.h: libgnuintl.h | |
+ cp $(srcdir)/libgnuintl.h libintl.h | |
+ | |
+charset.alias: config.charset | |
+ $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ | |
+ mv t-$@ $@ | |
check: all | |
t@@ -104,36 +135,70 @@ check: all | |
# only use the library should use install instead. | |
# We must not install the libintl.h/libintl.a files if we are on a | |
-# system which has the gettext() function in its C library or in a | |
-# separate library or use the catgets interface. A special case is | |
-# where configure found a previously installed GNU gettext library. | |
+# system which has the GNU gettext() function in its C library or in a | |
+# separate library. | |
# If you want to use the one which comes with this version of the | |
# package, you have to use `configure --with-included-gettext'. | |
install: install-exec install-data | |
install-exec: all | |
if test "$(PACKAGE)" = "gettext" \ | |
&& test '@INTLOBJS@' = '$(GETTOBJS)'; then \ | |
- if test -r $(MKINSTALLDIRS); then \ | |
- $(MKINSTALLDIRS) $(libdir) $(includedir); \ | |
+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ | |
+ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \ | |
+ $(LIBTOOL) --mode=install \ | |
+ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \ | |
+ else \ | |
+ : ; \ | |
+ fi | |
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \ | |
+ $(mkinstalldirs) $(DESTDIR)$(libdir); \ | |
+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \ | |
+ dest=$(DESTDIR)$(libdir)/charset.alias; \ | |
+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \ | |
+ orig=$(DESTDIR)$(libdir)/charset.alias; \ | |
+ sed -f ref-add.sed $$orig > $$temp; \ | |
+ $(INSTALL_DATA) $$temp $$dest; \ | |
+ rm -f $$temp; \ | |
else \ | |
- $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \ | |
+ if test @GLIBC21@ = no; then \ | |
+ orig=charset.alias; \ | |
+ sed -f ref-add.sed $$orig > $$temp; \ | |
+ $(INSTALL_DATA) $$temp $$dest; \ | |
+ rm -f $$temp; \ | |
+ fi; \ | |
fi; \ | |
- $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \ | |
- $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \ | |
+ $(mkinstalldirs) $(DESTDIR)$(localedir); \ | |
+ test -f $(DESTDIR)$(localedir)/locale.alias \ | |
+ && orig=$(DESTDIR)$(localedir)/locale.alias \ | |
+ || orig=$(srcdir)/locale.alias; \ | |
+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ | |
+ dest=$(DESTDIR)$(localedir)/locale.alias; \ | |
+ sed -f ref-add.sed $$orig > $$temp; \ | |
+ $(INSTALL_DATA) $$temp $$dest; \ | |
+ rm -f $$temp; \ | |
else \ | |
: ; \ | |
fi | |
install-data: all | |
if test "$(PACKAGE)" = "gettext"; then \ | |
- if test -r $(MKINSTALLDIRS); then \ | |
- $(MKINSTALLDIRS) $(gettextsrcdir); \ | |
- else \ | |
- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ | |
- fi; \ | |
- $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \ | |
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ | |
+ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ | |
+ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog;… | |
dists="$(DISTFILES.common)"; \ | |
for file in $$dists; do \ | |
- $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \ | |
+ $(INSTALL_DATA) $(srcdir)/$$file \ | |
+ $(DESTDIR)$(gettextsrcdir)/$$file; \ | |
+ done; \ | |
+ chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \ | |
+ dists="$(DISTFILES.generated)"; \ | |
+ for file in $$dists; do \ | |
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ | |
+ $(INSTALL_DATA) $$dir/$$file \ | |
+ $(DESTDIR)$(gettextsrcdir)/$$file; \ | |
+ done; \ | |
+ dists="$(DISTFILES.obsolete)"; \ | |
+ for file in $$dists; do \ | |
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ | |
done; \ | |
else \ | |
: ; \ | |
t@@ -143,14 +208,51 @@ install-data: all | |
installcheck: | |
uninstall: | |
- dists="$(DISTFILES.common)"; \ | |
- for file in $$dists; do \ | |
- rm -f $(gettextsrcdir)/$$file; \ | |
- done | |
+ if test "$(PACKAGE)" = "gettext" \ | |
+ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ | |
+ rm -f $(DESTDIR)$(includedir)/libintl.h; \ | |
+ $(LIBTOOL) --mode=uninstall \ | |
+ rm -f $(DESTDIR)$(libdir)/libintl.$la; \ | |
+ else \ | |
+ : ; \ | |
+ fi | |
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \ | |
+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \ | |
+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \ | |
+ dest=$(DESTDIR)$(libdir)/charset.alias; \ | |
+ sed -f ref-del.sed $$dest > $$temp; \ | |
+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then… | |
+ rm -f $$dest; \ | |
+ else \ | |
+ $(INSTALL_DATA) $$temp $$dest; \ | |
+ fi; \ | |
+ rm -f $$temp; \ | |
+ fi; \ | |
+ if test -f $(DESTDIR)$(localedir)/locale.alias; then \ | |
+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ | |
+ dest=$(DESTDIR)$(localedir)/locale.alias; \ | |
+ sed -f ref-del.sed $$dest > $$temp; \ | |
+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then… | |
+ rm -f $$dest; \ | |
+ else \ | |
+ $(INSTALL_DATA) $$temp $$dest; \ | |
+ fi; \ | |
+ rm -f $$temp; \ | |
+ fi; \ | |
+ else \ | |
+ : ; \ | |
+ fi | |
+ if test "$(PACKAGE)" = "gettext"; then \ | |
+ for file in VERSION ChangeLog $(DISTFILES.common) $(DISTFILES.genera… | |
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ | |
+ done; \ | |
+ else \ | |
+ : ; \ | |
+ fi | |
info dvi: | |
-$(OBJECTS): ../config.h libgettext.h | |
+$(OBJECTS): ../config.h libgnuintl.h | |
bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h | |
dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h | |
t@@ -166,12 +268,19 @@ ID: $(HEADERS) $(SOURCES) | |
mostlyclean: | |
- rm -f *.a *.o *.lo core core.* | |
+ rm -f *.a *.la *.o *.lo core core.* | |
+ rm -f libintl.h charset.alias ref-add.sed ref-del.sed | |
+ rm -f -r .libs _libs | |
clean: mostlyclean | |
distclean: clean | |
- rm -f Makefile ID TAGS po2msg.sed po2tbl.sed | |
+ rm -f Makefile ID TAGS | |
+ if test "$(PACKAGE)" = gettext; then \ | |
+ rm -f ChangeLog.inst $(DISTFILES.normal); \ | |
+ else \ | |
+ : ; \ | |
+ fi | |
maintainer-clean: distclean | |
@echo "This command is intended for maintainers to use;" | |
t@@ -181,34 +290,23 @@ maintainer-clean: distclean | |
# GNU gettext needs not contain the file `VERSION' but contains some | |
# other files which should not be distributed in other packages. | |
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) | |
-dist distdir: Makefile $(DISTFILES) | |
+dist distdir: Makefile | |
if test "$(PACKAGE)" = gettext; then \ | |
additional="$(DISTFILES.gettext)"; \ | |
else \ | |
additional="$(DISTFILES.normal)"; \ | |
fi; \ | |
- for file in $(DISTFILES.common) $$additional; do \ | |
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \ | |
- || cp -p $(srcdir)/$$file $(distdir); \ | |
+ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \ | |
+ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$add… | |
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ | |
+ ln $$dir/$$file $(distdir) 2> /dev/null \ | |
+ || cp -p $$dir/$$file $(distdir); \ | |
done | |
-dist-libc: | |
- tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc | |
- | |
Makefile: Makefile.in ../config.status | |
cd .. \ | |
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status | |
-# The dependency for intlh.inst is different in gettext and all other | |
-# packages. Because we cannot you GNU make features we have to solve | |
-# the problem while rewriting Makefile.in. | |
-@[email protected]: intlh.inst.in ../config.status | |
-@GT_YES@ cd .. \ | |
-@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \ | |
-@GT_YES@ $(SHELL) ./config.status | |
-@[email protected]: intlh.inst | |
-@[email protected]: | |
- | |
# 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: | |
diff --git a/intl/VERSION b/intl/VERSION | |
t@@ -1 +1 @@ | |
-GNU gettext library from gettext-0.10.35 | |
+GNU gettext library from gettext-0.10.38 | |
diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c | |
t@@ -1,5 +1,5 @@ | |
/* Implementation of the bindtextdomain(3) function | |
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
+ Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -19,32 +19,39 @@ | |
# include <config.h> | |
#endif | |
-#if defined STDC_HEADERS || defined _LIBC | |
-# include <stdlib.h> | |
-#else | |
-# ifdef HAVE_MALLOC_H | |
-# include <malloc.h> | |
-# else | |
-void free (); | |
-# endif | |
-#endif | |
+#include <stddef.h> | |
+#include <stdlib.h> | |
+#include <string.h> | |
-#if defined HAVE_STRING_H || defined _LIBC | |
-# include <string.h> | |
+#ifdef _LIBC | |
+# include <libintl.h> | |
#else | |
-# include <strings.h> | |
-# ifndef memcpy | |
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) | |
-# endif | |
+# include "libgnuintl.h" | |
#endif | |
+#include "gettextP.h" | |
#ifdef _LIBC | |
-# include <libintl.h> | |
+/* We have to handle multi-threaded applications. */ | |
+# include <bits/libc-lock.h> | |
#else | |
-# include "libgettext.h" | |
+/* Provide dummy implementation if this is outside glibc. */ | |
+# define __libc_rwlock_define(CLASS, NAME) | |
+# define __libc_rwlock_wrlock(NAME) | |
+# define __libc_rwlock_unlock(NAME) | |
+#endif | |
+ | |
+/* The internal variables in the standalone libintl.a must have different | |
+ names than the internal variables in GNU libc, otherwise programs | |
+ using libintl.a cannot be linked statically. */ | |
+#if !defined _LIBC | |
+# define _nl_default_dirname _nl_default_dirname__ | |
+# define _nl_domain_bindings _nl_domain_bindings__ | |
+#endif | |
+ | |
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */ | |
+#ifndef offsetof | |
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) | |
#endif | |
-#include "gettext.h" | |
-#include "gettextP.h" | |
/* @@ end of prolog @@ */ | |
t@@ -54,6 +61,9 @@ extern const char _nl_default_dirname[]; | |
/* List with bindings of specific domains. */ | |
extern struct binding *_nl_domain_bindings; | |
+/* Lock variable to protect the global data in the gettext implementation. */ | |
+__libc_rwlock_define (extern, _nl_state_lock) | |
+ | |
/* Names for the libintl functions are a problem. They must not clash | |
with existing names and they should follow ANSI C. But this source | |
t@@ -61,25 +71,48 @@ extern struct binding *_nl_domain_bindings; | |
prefix. So we have to make a difference here. */ | |
#ifdef _LIBC | |
# define BINDTEXTDOMAIN __bindtextdomain | |
+# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset | |
# ifndef strdup | |
# define strdup(str) __strdup (str) | |
# endif | |
#else | |
# define BINDTEXTDOMAIN bindtextdomain__ | |
+# define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__ | |
#endif | |
-/* Specify that the DOMAINNAME message catalog will be found | |
- in DIRNAME rather than in the system locale data base. */ | |
-char * | |
-BINDTEXTDOMAIN (domainname, dirname) | |
+/* Prototypes for local functions. */ | |
+static void set_binding_values PARAMS ((const char *domainname, | |
+ const char **dirnamep, | |
+ const char **codesetp)); | |
+ | |
+/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP | |
+ to be used for the DOMAINNAME message catalog. | |
+ If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not | |
+ modified, only the current value is returned. | |
+ If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither | |
+ modified nor returned. */ | |
+static void | |
+set_binding_values (domainname, dirnamep, codesetp) | |
const char *domainname; | |
- const char *dirname; | |
+ const char **dirnamep; | |
+ const char **codesetp; | |
{ | |
struct binding *binding; | |
+ int modified; | |
/* Some sanity checks. */ | |
if (domainname == NULL || domainname[0] == '\0') | |
- return NULL; | |
+ { | |
+ if (dirnamep) | |
+ *dirnamep = NULL; | |
+ if (codesetp) | |
+ *codesetp = NULL; | |
+ return; | |
+ } | |
+ | |
+ __libc_rwlock_wrlock (_nl_state_lock); | |
+ | |
+ modified = 0; | |
for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) | |
{ | |
t@@ -95,83 +128,173 @@ BINDTEXTDOMAIN (domainname, dirname) | |
} | |
} | |
- if (dirname == NULL) | |
- /* The current binding has be to returned. */ | |
- return binding == NULL ? (char *) _nl_default_dirname : binding->dirname; | |
- | |
if (binding != NULL) | |
{ | |
- /* The domain is already bound. If the new value and the old | |
- one are equal we simply do nothing. Otherwise replace the | |
- old binding. */ | |
- if (strcmp (dirname, binding->dirname) != 0) | |
+ if (dirnamep) | |
{ | |
- char *new_dirname; | |
+ const char *dirname = *dirnamep; | |
- if (strcmp (dirname, _nl_default_dirname) == 0) | |
- new_dirname = (char *) _nl_default_dirname; | |
+ if (dirname == NULL) | |
+ /* The current binding has be to returned. */ | |
+ *dirnamep = binding->dirname; | |
else | |
{ | |
+ /* The domain is already bound. If the new value and the old | |
+ one are equal we simply do nothing. Otherwise replace the | |
+ old binding. */ | |
+ char *result = binding->dirname; | |
+ if (strcmp (dirname, result) != 0) | |
+ { | |
+ if (strcmp (dirname, _nl_default_dirname) == 0) | |
+ result = (char *) _nl_default_dirname; | |
+ else | |
+ { | |
#if defined _LIBC || defined HAVE_STRDUP | |
- new_dirname = strdup (dirname); | |
- if (new_dirname == NULL) | |
- return NULL; | |
+ result = strdup (dirname); | |
#else | |
- size_t len = strlen (dirname) + 1; | |
- new_dirname = (char *) malloc (len); | |
- if (new_dirname == NULL) | |
- return NULL; | |
- | |
- memcpy (new_dirname, dirname, len); | |
+ size_t len = strlen (dirname) + 1; | |
+ result = (char *) malloc (len); | |
+ if (__builtin_expect (result != NULL, 1)) | |
+ memcpy (result, dirname, len); | |
#endif | |
+ } | |
+ | |
+ if (__builtin_expect (result != NULL, 1)) | |
+ { | |
+ if (binding->dirname != _nl_default_dirname) | |
+ free (binding->dirname); | |
+ | |
+ binding->dirname = result; | |
+ modified = 1; | |
+ } | |
+ } | |
+ *dirnamep = result; | |
} | |
+ } | |
- if (binding->dirname != _nl_default_dirname) | |
- free (binding->dirname); | |
+ if (codesetp) | |
+ { | |
+ const char *codeset = *codesetp; | |
- binding->dirname = new_dirname; | |
+ if (codeset == NULL) | |
+ /* The current binding has be to returned. */ | |
+ *codesetp = binding->codeset; | |
+ else | |
+ { | |
+ /* The domain is already bound. If the new value and the old | |
+ one are equal we simply do nothing. Otherwise replace the | |
+ old binding. */ | |
+ char *result = binding->codeset; | |
+ if (result == NULL || strcmp (codeset, result) != 0) | |
+ { | |
+#if defined _LIBC || defined HAVE_STRDUP | |
+ result = strdup (codeset); | |
+#else | |
+ size_t len = strlen (codeset) + 1; | |
+ result = (char *) malloc (len); | |
+ if (__builtin_expect (result != NULL, 1)) | |
+ memcpy (result, codeset, len); | |
+#endif | |
+ | |
+ if (__builtin_expect (result != NULL, 1)) | |
+ { | |
+ if (binding->codeset != NULL) | |
+ free (binding->codeset); | |
+ | |
+ binding->codeset = result; | |
+ binding->codeset_cntr++; | |
+ modified = 1; | |
+ } | |
+ } | |
+ *codesetp = result; | |
+ } | |
} | |
} | |
+ else if ((dirnamep == NULL || *dirnamep == NULL) | |
+ && (codesetp == NULL || *codesetp == NULL)) | |
+ { | |
+ /* Simply return the default values. */ | |
+ if (dirnamep) | |
+ *dirnamep = _nl_default_dirname; | |
+ if (codesetp) | |
+ *codesetp = NULL; | |
+ } | |
else | |
{ | |
/* We have to create a new binding. */ | |
-#if !defined _LIBC && !defined HAVE_STRDUP | |
- size_t len; | |
-#endif | |
+ size_t len = strlen (domainname) + 1; | |
struct binding *new_binding = | |
- (struct binding *) malloc (sizeof (*new_binding)); | |
+ (struct binding *) malloc (offsetof (struct binding, domainname) + len… | |
+ | |
+ if (__builtin_expect (new_binding == NULL, 0)) | |
+ goto failed; | |
- if (new_binding == NULL) | |
- return NULL; | |
+ memcpy (new_binding->domainname, domainname, len); | |
+ | |
+ if (dirnamep) | |
+ { | |
+ const char *dirname = *dirnamep; | |
+ if (dirname == NULL) | |
+ /* The default value. */ | |
+ dirname = _nl_default_dirname; | |
+ else | |
+ { | |
+ if (strcmp (dirname, _nl_default_dirname) == 0) | |
+ dirname = _nl_default_dirname; | |
+ else | |
+ { | |
+ char *result; | |
#if defined _LIBC || defined HAVE_STRDUP | |
- new_binding->domainname = strdup (domainname); | |
- if (new_binding->domainname == NULL) | |
- return NULL; | |
+ result = strdup (dirname); | |
+ if (__builtin_expect (result == NULL, 0)) | |
+ goto failed_dirname; | |
#else | |
- len = strlen (domainname) + 1; | |
- new_binding->domainname = (char *) malloc (len); | |
- if (new_binding->domainname == NULL) | |
- return NULL; | |
- memcpy (new_binding->domainname, domainname, len); | |
+ size_t len = strlen (dirname) + 1; | |
+ result = (char *) malloc (len); | |
+ if (__builtin_expect (result == NULL, 0)) | |
+ goto failed_dirname; | |
+ memcpy (result, dirname, len); | |
#endif | |
- | |
- if (strcmp (dirname, _nl_default_dirname) == 0) | |
- new_binding->dirname = (char *) _nl_default_dirname; | |
+ dirname = result; | |
+ } | |
+ } | |
+ *dirnamep = dirname; | |
+ new_binding->dirname = (char *) dirname; | |
+ } | |
else | |
+ /* The default value. */ | |
+ new_binding->dirname = (char *) _nl_default_dirname; | |
+ | |
+ new_binding->codeset_cntr = 0; | |
+ | |
+ if (codesetp) | |
{ | |
+ const char *codeset = *codesetp; | |
+ | |
+ if (codeset != NULL) | |
+ { | |
+ char *result; | |
+ | |
#if defined _LIBC || defined HAVE_STRDUP | |
- new_binding->dirname = strdup (dirname); | |
- if (new_binding->dirname == NULL) | |
- return NULL; | |
+ result = strdup (codeset); | |
+ if (__builtin_expect (result == NULL, 0)) | |
+ goto failed_codeset; | |
#else | |
- len = strlen (dirname) + 1; | |
- new_binding->dirname = (char *) malloc (len); | |
- if (new_binding->dirname == NULL) | |
- return NULL; | |
- memcpy (new_binding->dirname, dirname, len); | |
+ size_t len = strlen (codeset) + 1; | |
+ result = (char *) malloc (len); | |
+ if (__builtin_expect (result == NULL, 0)) | |
+ goto failed_codeset; | |
+ memcpy (result, codeset, len); | |
#endif | |
+ codeset = result; | |
+ new_binding->codeset_cntr++; | |
+ } | |
+ *codesetp = codeset; | |
+ new_binding->codeset = (char *) codeset; | |
} | |
+ else | |
+ new_binding->codeset = NULL; | |
/* Now enqueue it. */ | |
if (_nl_domain_bindings == NULL | |
t@@ -191,13 +314,55 @@ BINDTEXTDOMAIN (domainname, dirname) | |
binding->next = new_binding; | |
} | |
- binding = new_binding; | |
+ modified = 1; | |
+ | |
+ /* Here we deal with memory allocation failures. */ | |
+ if (0) | |
+ { | |
+ failed_codeset: | |
+ if (new_binding->dirname != _nl_default_dirname) | |
+ free (new_binding->dirname); | |
+ failed_dirname: | |
+ free (new_binding); | |
+ failed: | |
+ if (dirnamep) | |
+ *dirnamep = NULL; | |
+ if (codesetp) | |
+ *codesetp = NULL; | |
+ } | |
} | |
- return binding->dirname; | |
+ /* If we modified any binding, we flush the caches. */ | |
+ if (modified) | |
+ ++_nl_msg_cat_cntr; | |
+ | |
+ __libc_rwlock_unlock (_nl_state_lock); | |
+} | |
+ | |
+/* Specify that the DOMAINNAME message catalog will be found | |
+ in DIRNAME rather than in the system locale data base. */ | |
+char * | |
+BINDTEXTDOMAIN (domainname, dirname) | |
+ const char *domainname; | |
+ const char *dirname; | |
+{ | |
+ set_binding_values (domainname, &dirname, NULL); | |
+ return (char *) dirname; | |
+} | |
+ | |
+/* Specify the character encoding in which the messages from the | |
+ DOMAINNAME message catalog will be returned. */ | |
+char * | |
+BIND_TEXTDOMAIN_CODESET (domainname, codeset) | |
+ const char *domainname; | |
+ const char *codeset; | |
+{ | |
+ set_binding_values (domainname, NULL, &codeset); | |
+ return (char *) codeset; | |
} | |
#ifdef _LIBC | |
-/* Alias for function name in GNU C Library. */ | |
+/* Aliases for function names in GNU C Library. */ | |
weak_alias (__bindtextdomain, bindtextdomain); | |
+weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset); | |
#endif | |
diff --git a/intl/cat-compat.c b/intl/cat-compat.c | |
t@@ -1,262 +0,0 @@ | |
-/* Compatibility code for gettext-using-catgets interface. | |
- Copyright (C) 1995, 1997 Free Software Foundation, Inc. | |
- | |
- This program is free software; you can redistribute it and/or modify | |
- it under the terms of the GNU General Public License as published by | |
- the Free Software Foundation; either version 2, or (at your option) | |
- any later version. | |
- | |
- This program is distributed in the hope that it will be useful, | |
- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
- GNU General Public License for more details. | |
- | |
- You should have received a copy of the GNU General Public License | |
- along with this program; if not, write to the Free Software Foundation, | |
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
- | |
-#ifdef HAVE_CONFIG_H | |
-# include <config.h> | |
-#endif | |
- | |
-#include <stdio.h> | |
- | |
-#ifdef STDC_HEADERS | |
-# include <stdlib.h> | |
-# include <string.h> | |
-#else | |
-char *getenv (); | |
-# ifdef HAVE_MALLOC_H | |
-# include <malloc.h> | |
-# endif | |
-#endif | |
- | |
-#ifdef HAVE_NL_TYPES_H | |
-# include <nl_types.h> | |
-#endif | |
- | |
-#include "libgettext.h" | |
- | |
-/* @@ end of prolog @@ */ | |
- | |
-/* XPG3 defines the result of `setlocale (category, NULL)' as: | |
- ``Directs `setlocale()' to query `category' and return the current | |
- setting of `local'.'' | |
- However it does not specify the exact format. And even worse: POSIX | |
- defines this not at all. So we can use this feature only on selected | |
- system (e.g. those using GNU C Library). */ | |
-#ifdef _LIBC | |
-# define HAVE_LOCALE_NULL | |
-#endif | |
- | |
-/* The catalog descriptor. */ | |
-static nl_catd catalog = (nl_catd) -1; | |
- | |
-/* Name of the default catalog. */ | |
-static const char default_catalog_name[] = "messages"; | |
- | |
-/* Name of currently used catalog. */ | |
-static const char *catalog_name = default_catalog_name; | |
- | |
-/* Get ID for given string. If not found return -1. */ | |
-static int msg_to_cat_id PARAMS ((const char *msg)); | |
- | |
-/* Substitution for systems lacking this function in their C library. */ | |
-#if !_LIBC && !HAVE_STPCPY | |
-static char *stpcpy PARAMS ((char *dest, const char *src)); | |
-#endif | |
- | |
- | |
-/* Set currently used domain/catalog. */ | |
-char * | |
-textdomain (domainname) | |
- const char *domainname; | |
-{ | |
- nl_catd new_catalog; | |
- char *new_name; | |
- size_t new_name_len; | |
- char *lang; | |
- | |
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \ | |
- && defined HAVE_LOCALE_NULL | |
- lang = setlocale (LC_MESSAGES, NULL); | |
-#else | |
- lang = getenv ("LC_ALL"); | |
- if (lang == NULL || lang[0] == '\0') | |
- { | |
- lang = getenv ("LC_MESSAGES"); | |
- if (lang == NULL || lang[0] == '\0') | |
- lang = getenv ("LANG"); | |
- } | |
-#endif | |
- if (lang == NULL || lang[0] == '\0') | |
- lang = "C"; | |
- | |
- /* See whether name of currently used domain is asked. */ | |
- if (domainname == NULL) | |
- return (char *) catalog_name; | |
- | |
- if (domainname[0] == '\0') | |
- domainname = default_catalog_name; | |
- | |
- /* Compute length of added path element. */ | |
- new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang) | |
- + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1 | |
- + sizeof (".cat"); | |
- | |
- new_name = (char *) malloc (new_name_len); | |
- if (new_name == NULL) | |
- return NULL; | |
- | |
- strcpy (new_name, PACKAGE); | |
- new_catalog = catopen (new_name, 0); | |
- | |
- if (new_catalog == (nl_catd) -1) | |
- { | |
- /* NLSPATH search didn't work, try absolute path */ | |
- sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang, | |
- PACKAGE); | |
- new_catalog = catopen (new_name, 0); | |
- | |
- if (new_catalog == (nl_catd) -1) | |
- { | |
- free (new_name); | |
- return (char *) catalog_name; | |
- } | |
- } | |
- | |
- /* Close old catalog. */ | |
- if (catalog != (nl_catd) -1) | |
- catclose (catalog); | |
- if (catalog_name != default_catalog_name) | |
- free ((char *) catalog_name); | |
- | |
- catalog = new_catalog; | |
- catalog_name = new_name; | |
- | |
- return (char *) catalog_name; | |
-} | |
- | |
-char * | |
-bindtextdomain (domainname, dirname) | |
- const char *domainname; | |
- const char *dirname; | |
-{ | |
-#if HAVE_SETENV || HAVE_PUTENV | |
- char *old_val, *new_val, *cp; | |
- size_t new_val_len; | |
- | |
- /* This does not make much sense here but to be compatible do it. */ | |
- if (domainname == NULL) | |
- return NULL; | |
- | |
- /* Compute length of added path element. If we use setenv we don't need | |
- the first byts for NLSPATH=, but why complicate the code for this | |
- peanuts. */ | |
- new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname) | |
- + sizeof ("/%L/LC_MESSAGES/%N.cat"); | |
- | |
- old_val = getenv ("NLSPATH"); | |
- if (old_val == NULL || old_val[0] == '\0') | |
- { | |
- old_val = NULL; | |
- new_val_len += 1 + sizeof (LOCALEDIR) - 1 | |
- + sizeof ("/%L/LC_MESSAGES/%N.cat"); | |
- } | |
- else | |
- new_val_len += strlen (old_val); | |
- | |
- new_val = (char *) malloc (new_val_len); | |
- if (new_val == NULL) | |
- return NULL; | |
- | |
-# if HAVE_SETENV | |
- cp = new_val; | |
-# else | |
- cp = stpcpy (new_val, "NLSPATH="); | |
-# endif | |
- | |
- cp = stpcpy (cp, dirname); | |
- cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:"); | |
- | |
- if (old_val == NULL) | |
- { | |
-# if __STDC__ | |
- stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat"); | |
-# else | |
- | |
- cp = stpcpy (cp, LOCALEDIR); | |
- stpcpy (cp, "/%L/LC_MESSAGES/%N.cat"); | |
-# endif | |
- } | |
- else | |
- stpcpy (cp, old_val); | |
- | |
-# if HAVE_SETENV | |
- setenv ("NLSPATH", new_val, 1); | |
- free (new_val); | |
-# else | |
- putenv (new_val); | |
- /* Do *not* free the environment entry we just entered. It is used | |
- from now on. */ | |
-# endif | |
- | |
-#endif | |
- | |
- return (char *) domainname; | |
-} | |
- | |
-#undef gettext | |
-char * | |
-gettext (msg) | |
- const char *msg; | |
-{ | |
- int msgid; | |
- | |
- if (msg == NULL || catalog == (nl_catd) -1) | |
- return (char *) msg; | |
- | |
- /* Get the message from the catalog. We always use set number 1. | |
- The message ID is computed by the function `msg_to_cat_id' | |
- which works on the table generated by `po-to-tbl'. */ | |
- msgid = msg_to_cat_id (msg); | |
- if (msgid == -1) | |
- return (char *) msg; | |
- | |
- return catgets (catalog, 1, msgid, (char *) msg); | |
-} | |
- | |
-/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries | |
- for the one equal to msg. If it is found return the ID. In case when | |
- the string is not found return -1. */ | |
-static int | |
-msg_to_cat_id (msg) | |
- const char *msg; | |
-{ | |
- int cnt; | |
- | |
- for (cnt = 0; cnt < _msg_tbl_length; ++cnt) | |
- if (strcmp (msg, _msg_tbl[cnt]._msg) == 0) | |
- return _msg_tbl[cnt]._msg_number; | |
- | |
- return -1; | |
-} | |
- | |
- | |
-/* @@ begin of epilog @@ */ | |
- | |
-/* We don't want libintl.a to depend on any other library. So we | |
- avoid the non-standard function stpcpy. In GNU C Library this | |
- function is available, though. Also allow the symbol HAVE_STPCPY | |
- to be defined. */ | |
-#if !_LIBC && !HAVE_STPCPY | |
-static char * | |
-stpcpy (dest, src) | |
- char *dest; | |
- const char *src; | |
-{ | |
- while ((*dest++ = *src++) != '\0') | |
- /* Do nothing. */ ; | |
- return dest - 1; | |
-} | |
-#endif | |
diff --git a/intl/config.charset b/intl/config.charset | |
t@@ -0,0 +1,438 @@ | |
+#! /bin/sh | |
+# Output a system dependent table of character encoding aliases. | |
+# | |
+# Copyright (C) 2000-2001 Free Software Foundation, Inc. | |
+# | |
+# This program is free software; you can redistribute it and/or modify it | |
+# under the terms of the GNU Library General Public License as published | |
+# by the Free Software Foundation; either version 2, or (at your option) | |
+# any later version. | |
+# | |
+# This program is distributed in the hope that it will be useful, | |
+# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
+# Library General Public License for more details. | |
+# | |
+# You should have received a copy of the GNU Library General Public | |
+# License along with this program; if not, write to the Free Software | |
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | |
+# USA. | |
+# | |
+# The table consists of lines of the form | |
+# ALIAS CANONICAL | |
+# | |
+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". | |
+# ALIAS is compared in a case sensitive way. | |
+# | |
+# CANONICAL is the GNU canonical name for this character encoding. | |
+# It must be an encoding supported by libiconv. Support by GNU libc is | |
+# also desirable. CANONICAL is case insensitive. Usually an upper case | |
+# MIME charset name is preferred. | |
+# The current list of GNU canonical charset names is as follows. | |
+# | |
+# name used by which systems a MIME name? | |
+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd | |
+# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes | |
+# ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes | |
+# ISO-8859-3 glibc yes | |
+# ISO-8859-4 osf solaris freebsd yes | |
+# ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes | |
+# ISO-8859-6 glibc aix hpux solaris yes | |
+# ISO-8859-7 glibc aix hpux irix osf solaris yes | |
+# ISO-8859-8 glibc aix hpux osf solaris yes | |
+# ISO-8859-9 glibc aix hpux irix osf solaris yes | |
+# ISO-8859-13 glibc | |
+# ISO-8859-15 glibc aix osf solaris freebsd | |
+# KOI8-R glibc solaris freebsd yes | |
+# KOI8-U glibc freebsd yes | |
+# CP437 dos | |
+# CP775 dos | |
+# CP850 aix osf dos | |
+# CP852 dos | |
+# CP855 dos | |
+# CP856 aix | |
+# CP857 dos | |
+# CP861 dos | |
+# CP862 dos | |
+# CP864 dos | |
+# CP865 dos | |
+# CP866 freebsd dos | |
+# CP869 dos | |
+# CP874 win32 dos | |
+# CP922 aix | |
+# CP932 aix win32 dos | |
+# CP943 aix | |
+# CP949 osf win32 dos | |
+# CP950 win32 dos | |
+# CP1046 aix | |
+# CP1124 aix | |
+# CP1129 aix | |
+# CP1250 win32 | |
+# CP1251 glibc win32 | |
+# CP1252 aix win32 | |
+# CP1253 win32 | |
+# CP1254 win32 | |
+# CP1255 win32 | |
+# CP1256 win32 | |
+# CP1257 win32 | |
+# GB2312 glibc aix hpux irix solaris freebsd yes | |
+# EUC-JP glibc aix hpux irix osf solaris freebsd yes | |
+# EUC-KR glibc aix hpux irix osf solaris freebsd yes | |
+# EUC-TW glibc aix hpux irix osf solaris | |
+# BIG5 glibc aix hpux osf solaris freebsd yes | |
+# BIG5HKSCS glibc | |
+# GBK aix osf win32 dos | |
+# GB18030 glibc | |
+# SJIS hpux osf solaris freebsd | |
+# JOHAB glibc win32 | |
+# TIS-620 glibc aix hpux osf solaris | |
+# VISCII glibc yes | |
+# HP-ROMAN8 hpux | |
+# HP-ARABIC8 hpux | |
+# HP-GREEK8 hpux | |
+# HP-HEBREW8 hpux | |
+# HP-TURKISH8 hpux | |
+# HP-KANA8 hpux | |
+# DEC-KANJI osf | |
+# DEC-HANYU osf | |
+# UTF-8 glibc aix hpux osf solaris yes | |
+# | |
+# Note: Names which are not marked as being a MIME name should not be used in | |
+# Internet protocols for information interchange (mail, news, etc.). | |
+# | |
+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications | |
+# must understand both names and treat them as equivalent. | |
+# | |
+# The first argument passed to this file is the canonical host specification, | |
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM | |
+# or | |
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM | |
+ | |
+host="$1" | |
+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` | |
+echo "# This file contains a table of character encoding aliases," | |
+echo "# suitable for operating system '${os}'." | |
+echo "# It was automatically generated from config.charset." | |
+# List of references, updated during installation: | |
+echo "# Packages using this file: " | |
+case "$os" in | |
+ linux* | *-gnu*) | |
+ # With glibc-2.1 or newer, we don't need any canonicalization, | |
+ # because glibc has iconv and both glibc and libiconv support all | |
+ # GNU canonical names directly. Therefore, the Makefile does not | |
+ # need to install the alias file at all. | |
+ # The following applies only to glibc-2.0.x and older libcs. | |
+ echo "ISO_646.IRV:1983 ASCII" | |
+ ;; | |
+ aix*) | |
+ echo "ISO8859-1 ISO-8859-1" | |
+ echo "ISO8859-2 ISO-8859-2" | |
+ echo "ISO8859-5 ISO-8859-5" | |
+ echo "ISO8859-6 ISO-8859-6" | |
+ echo "ISO8859-7 ISO-8859-7" | |
+ echo "ISO8859-8 ISO-8859-8" | |
+ echo "ISO8859-9 ISO-8859-9" | |
+ echo "ISO8859-15 ISO-8859-15" | |
+ echo "IBM-850 CP850" | |
+ echo "IBM-856 CP856" | |
+ echo "IBM-921 ISO-8859-13" | |
+ echo "IBM-922 CP922" | |
+ echo "IBM-932 CP932" | |
+ echo "IBM-943 CP943" | |
+ echo "IBM-1046 CP1046" | |
+ echo "IBM-1124 CP1124" | |
+ echo "IBM-1129 CP1129" | |
+ echo "IBM-1252 CP1252" | |
+ echo "IBM-eucCN GB2312" | |
+ echo "IBM-eucJP EUC-JP" | |
+ echo "IBM-eucKR EUC-KR" | |
+ echo "IBM-eucTW EUC-TW" | |
+ echo "big5 BIG5" | |
+ echo "GBK GBK" | |
+ echo "TIS-620 TIS-620" | |
+ echo "UTF-8 UTF-8" | |
+ ;; | |
+ hpux*) | |
+ echo "iso88591 ISO-8859-1" | |
+ echo "iso88592 ISO-8859-2" | |
+ echo "iso88595 ISO-8859-5" | |
+ echo "iso88596 ISO-8859-6" | |
+ echo "iso88597 ISO-8859-7" | |
+ echo "iso88598 ISO-8859-8" | |
+ echo "iso88599 ISO-8859-9" | |
+ echo "iso885915 ISO-8859-15" | |
+ echo "roman8 HP-ROMAN8" | |
+ echo "arabic8 HP-ARABIC8" | |
+ echo "greek8 HP-GREEK8" | |
+ echo "hebrew8 HP-HEBREW8" | |
+ echo "turkish8 HP-TURKISH8" | |
+ echo "kana8 HP-KANA8" | |
+ echo "tis620 TIS-620" | |
+ echo "big5 BIG5" | |
+ echo "eucJP EUC-JP" | |
+ echo "eucKR EUC-KR" | |
+ echo "eucTW EUC-TW" | |
+ echo "hp15CN GB2312" | |
+ #echo "ccdc ?" # what is this? | |
+ echo "SJIS SJIS" | |
+ echo "utf8 UTF-8" | |
+ ;; | |
+ irix*) | |
+ echo "ISO8859-1 ISO-8859-1" | |
+ echo "ISO8859-2 ISO-8859-2" | |
+ echo "ISO8859-5 ISO-8859-5" | |
+ echo "ISO8859-7 ISO-8859-7" | |
+ echo "ISO8859-9 ISO-8859-9" | |
+ echo "eucCN GB2312" | |
+ echo "eucJP EUC-JP" | |
+ echo "eucKR EUC-KR" | |
+ echo "eucTW EUC-TW" | |
+ ;; | |
+ osf*) | |
+ echo "ISO8859-1 ISO-8859-1" | |
+ echo "ISO8859-2 ISO-8859-2" | |
+ echo "ISO8859-4 ISO-8859-4" | |
+ echo "ISO8859-5 ISO-8859-5" | |
+ echo "ISO8859-7 ISO-8859-7" | |
+ echo "ISO8859-8 ISO-8859-8" | |
+ echo "ISO8859-9 ISO-8859-9" | |
+ echo "ISO8859-15 ISO-8859-15" | |
+ echo "cp850 CP850" | |
+ echo "big5 BIG5" | |
+ echo "dechanyu DEC-HANYU" | |
+ echo "dechanzi GB2312" | |
+ echo "deckanji DEC-KANJI" | |
+ echo "deckorean EUC-KR" | |
+ echo "eucJP EUC-JP" | |
+ echo "eucKR EUC-KR" | |
+ echo "eucTW EUC-TW" | |
+ echo "GBK GBK" | |
+ echo "KSC5601 CP949" | |
+ echo "sdeckanji EUC-JP" | |
+ echo "SJIS SJIS" | |
+ echo "TACTIS TIS-620" | |
+ echo "UTF-8 UTF-8" | |
+ ;; | |
+ solaris*) | |
+ echo "646 ASCII" | |
+ echo "ISO8859-1 ISO-8859-1" | |
+ echo "ISO8859-2 ISO-8859-2" | |
+ echo "ISO8859-4 ISO-8859-4" | |
+ echo "ISO8859-5 ISO-8859-5" | |
+ echo "ISO8859-6 ISO-8859-6" | |
+ echo "ISO8859-7 ISO-8859-7" | |
+ echo "ISO8859-8 ISO-8859-8" | |
+ echo "ISO8859-9 ISO-8859-9" | |
+ echo "ISO8859-15 ISO-8859-15" | |
+ echo "koi8-r KOI8-R" | |
+ echo "BIG5 BIG5" | |
+ echo "gb2312 GB2312" | |
+ echo "cns11643 EUC-TW" | |
+ echo "5601 EUC-KR" | |
+ echo "eucJP EUC-JP" | |
+ echo "PCK SJIS" | |
+ echo "TIS620.2533 TIS-620" | |
+ #echo "sun_eu_greek ?" # what is this? | |
+ echo "UTF-8 UTF-8" | |
+ ;; | |
+ freebsd*) | |
+ # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore | |
+ # localcharset.c falls back to using the full locale name | |
+ # from the environment variables. | |
+ echo "C ASCII" | |
+ echo "US-ASCII ASCII" | |
+ for l in la_LN lt_LN; do | |
+ echo "$l.ASCII ASCII" | |
+ done | |
+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ | |
+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ | |
+ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do | |
+ echo "$l.ISO_8859-1 ISO-8859-1" | |
+ echo "$l.DIS_8859-15 ISO-8859-15" | |
+ done | |
+ for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do | |
+ echo "$l.ISO_8859-2 ISO-8859-2" | |
+ done | |
+ for l in la_LN lt_LT; do | |
+ echo "$l.ISO_8859-4 ISO-8859-4" | |
+ done | |
+ for l in ru_RU ru_SU; do | |
+ echo "$l.KOI8-R KOI8-R" | |
+ echo "$l.ISO_8859-5 ISO-8859-5" | |
+ echo "$l.CP866 CP866" | |
+ done | |
+ echo "uk_UA.KOI8-U KOI8-U" | |
+ echo "zh_TW.BIG5 BIG5" | |
+ echo "zh_TW.Big5 BIG5" | |
+ echo "zh_CN.EUC GB2312" | |
+ echo "ja_JP.EUC EUC-JP" | |
+ echo "ja_JP.SJIS SJIS" | |
+ echo "ja_JP.Shift_JIS SJIS" | |
+ echo "ko_KR.EUC EUC-KR" | |
+ ;; | |
+ beos*) | |
+ # BeOS has a single locale, and it has UTF-8 encoding. | |
+ echo "* UTF-8" | |
+ ;; | |
+ msdosdjgpp*) | |
+ # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore | |
+ # localcharset.c falls back to using the full locale name | |
+ # from the environment variables. | |
+ echo "#" | |
+ echo "# The encodings given here may not all be correct." | |
+ echo "# If you find that the encoding given for your language and" | |
+ echo "# country is not the one your DOS machine actually uses, just" | |
+ echo "# correct it in this file, and send a mail to" | |
+ echo "# Juan Manuel Guerrero <[email protected]>" | |
+ echo "# and Bruno Haible <[email protected]>." | |
+ echo "#" | |
+ echo "C ASCII" | |
+ # ISO-8859-1 languages | |
+ echo "ca CP850" | |
+ echo "ca_ES CP850" | |
+ echo "da CP865" # not CP850 ?? | |
+ echo "da_DK CP865" # not CP850 ?? | |
+ echo "de CP850" | |
+ echo "de_AT CP850" | |
+ echo "de_CH CP850" | |
+ echo "de_DE CP850" | |
+ echo "en CP850" | |
+ echo "en_AU CP850" # not CP437 ?? | |
+ echo "en_CA CP850" | |
+ echo "en_GB CP850" | |
+ echo "en_NZ CP437" | |
+ echo "en_US CP437" | |
+ echo "en_ZA CP850" # not CP437 ?? | |
+ echo "es CP850" | |
+ echo "es_AR CP850" | |
+ echo "es_BO CP850" | |
+ echo "es_CL CP850" | |
+ echo "es_CO CP850" | |
+ echo "es_CR CP850" | |
+ echo "es_CU CP850" | |
+ echo "es_DO CP850" | |
+ echo "es_EC CP850" | |
+ echo "es_ES CP850" | |
+ echo "es_GT CP850" | |
+ echo "es_HN CP850" | |
+ echo "es_MX CP850" | |
+ echo "es_NI CP850" | |
+ echo "es_PA CP850" | |
+ echo "es_PY CP850" | |
+ echo "es_PE CP850" | |
+ echo "es_SV CP850" | |
+ echo "es_UY CP850" | |
+ echo "es_VE CP850" | |
+ echo "et CP850" | |
+ echo "et_EE CP850" | |
+ echo "eu CP850" | |
+ echo "eu_ES CP850" | |
+ echo "fi CP850" | |
+ echo "fi_FI CP850" | |
+ echo "fr CP850" | |
+ echo "fr_BE CP850" | |
+ echo "fr_CA CP850" | |
+ echo "fr_CH CP850" | |
+ echo "fr_FR CP850" | |
+ echo "ga CP850" | |
+ echo "ga_IE CP850" | |
+ echo "gd CP850" | |
+ echo "gd_GB CP850" | |
+ echo "gl CP850" | |
+ echo "gl_ES CP850" | |
+ echo "id CP850" # not CP437 ?? | |
+ echo "id_ID CP850" # not CP437 ?? | |
+ echo "is CP861" # not CP850 ?? | |
+ echo "is_IS CP861" # not CP850 ?? | |
+ echo "it CP850" | |
+ echo "it_CH CP850" | |
+ echo "it_IT CP850" | |
+ echo "lt CP775" | |
+ echo "lt_LT CP775" | |
+ echo "lv CP775" | |
+ echo "lv_LV CP775" | |
+ echo "nb CP865" # not CP850 ?? | |
+ echo "nb_NO CP865" # not CP850 ?? | |
+ echo "nl CP850" | |
+ echo "nl_BE CP850" | |
+ echo "nl_NL CP850" | |
+ echo "nn CP865" # not CP850 ?? | |
+ echo "nn_NO CP865" # not CP850 ?? | |
+ echo "no CP865" # not CP850 ?? | |
+ echo "no_NO CP865" # not CP850 ?? | |
+ echo "pt CP850" | |
+ echo "pt_BR CP850" | |
+ echo "pt_PT CP850" | |
+ echo "sv CP850" | |
+ echo "sv_SE CP850" | |
+ # ISO-8859-2 languages | |
+ echo "cs CP852" | |
+ echo "cs_CZ CP852" | |
+ echo "hr CP852" | |
+ echo "hr_HR CP852" | |
+ echo "hu CP852" | |
+ echo "hu_HU CP852" | |
+ echo "pl CP852" | |
+ echo "pl_PL CP852" | |
+ echo "ro CP852" | |
+ echo "ro_RO CP852" | |
+ echo "sk CP852" | |
+ echo "sk_SK CP852" | |
+ echo "sl CP852" | |
+ echo "sl_SI CP852" | |
+ echo "sq CP852" | |
+ echo "sq_AL CP852" | |
+ echo "sr CP852" # CP852 or CP866 or CP855 ?? | |
+ echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? | |
+ # ISO-8859-3 languages | |
+ echo "mt CP850" | |
+ echo "mt_MT CP850" | |
+ # ISO-8859-5 languages | |
+ echo "be CP866" | |
+ echo "be_BE CP866" | |
+ echo "bg CP866" # not CP855 ?? | |
+ echo "bg_BG CP866" # not CP855 ?? | |
+ echo "mk CP866" # not CP855 ?? | |
+ echo "mk_MK CP866" # not CP855 ?? | |
+ echo "ru KOI8-R" # not CP866 ?? | |
+ echo "ru_RU KOI8-R" # not CP866 ?? | |
+ # ISO-8859-6 languages | |
+ echo "ar CP864" | |
+ echo "ar_AE CP864" | |
+ echo "ar_DZ CP864" | |
+ echo "ar_EG CP864" | |
+ echo "ar_IQ CP864" | |
+ echo "ar_IR CP864" | |
+ echo "ar_JO CP864" | |
+ echo "ar_KW CP864" | |
+ echo "ar_MA CP864" | |
+ echo "ar_OM CP864" | |
+ echo "ar_QA CP864" | |
+ echo "ar_SA CP864" | |
+ echo "ar_SY CP864" | |
+ # ISO-8859-7 languages | |
+ echo "el CP869" | |
+ echo "el_GR CP869" | |
+ # ISO-8859-8 languages | |
+ echo "he CP862" | |
+ echo "he_IL CP862" | |
+ # ISO-8859-9 languages | |
+ echo "tr CP857" | |
+ echo "tr_TR CP857" | |
+ # Japanese | |
+ echo "ja CP932" | |
+ echo "ja_JP CP932" | |
+ # Chinese | |
+ echo "zh_CN GBK" | |
+ echo "zh_TW CP950" # not CP938 ?? | |
+ # Korean | |
+ echo "kr CP949" # not CP934 ?? | |
+ echo "kr_KR CP949" # not CP934 ?? | |
+ # Thai | |
+ echo "th CP874" | |
+ echo "th_TH CP874" | |
+ # Other | |
+ echo "eo CP850" | |
+ echo "eo_EO CP850" | |
+ ;; | |
+esac | |
diff --git a/intl/dcgettext.c b/intl/dcgettext.c | |
t@@ -1,5 +1,5 @@ | |
/* Implementation of the dcgettext(3) function. | |
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -19,202 +19,25 @@ | |
# include <config.h> | |
#endif | |
-#include <sys/types.h> | |
- | |
-#ifdef __GNUC__ | |
-# define alloca __builtin_alloca | |
-# define HAVE_ALLOCA 1 | |
-#else | |
-# if defined HAVE_ALLOCA_H || defined _LIBC | |
-# include <alloca.h> | |
-# else | |
-# ifdef _AIX | |
- #pragma alloca | |
-# else | |
-# ifndef alloca | |
-char *alloca (); | |
-# endif | |
-# endif | |
-# endif | |
-#endif | |
- | |
-#include <errno.h> | |
-#ifndef errno | |
-extern int errno; | |
-#endif | |
-#ifndef __set_errno | |
-# define __set_errno(val) errno = (val) | |
-#endif | |
- | |
-#if defined STDC_HEADERS || defined _LIBC | |
-# include <stdlib.h> | |
-#else | |
-char *getenv (); | |
-# ifdef HAVE_MALLOC_H | |
-# include <malloc.h> | |
-# else | |
-void free (); | |
-# endif | |
-#endif | |
- | |
-#if defined HAVE_STRING_H || defined _LIBC | |
-# ifndef _GNU_SOURCE | |
-# define _GNU_SOURCE 1 | |
-# endif | |
-# include <string.h> | |
-#else | |
-# include <strings.h> | |
-#endif | |
-#if !HAVE_STRCHR && !defined _LIBC | |
-# ifndef strchr | |
-# define strchr index | |
-# endif | |
-#endif | |
- | |
-#if defined HAVE_UNISTD_H || defined _LIBC | |
-# include <unistd.h> | |
-#endif | |
- | |
-#include "gettext.h" | |
#include "gettextP.h" | |
#ifdef _LIBC | |
# include <libintl.h> | |
#else | |
-# include "libgettext.h" | |
+# include "libgnuintl.h" | |
#endif | |
-#include "hash-string.h" | |
/* @@ end of prolog @@ */ | |
-#ifdef _LIBC | |
-/* Rename the non ANSI C functions. This is required by the standard | |
- because some ANSI C functions will require linking with this object | |
- file and the name space must not be polluted. */ | |
-# define getcwd __getcwd | |
-# ifndef stpcpy | |
-# define stpcpy __stpcpy | |
-# endif | |
-#else | |
-# if !defined HAVE_GETCWD | |
-char *getwd (); | |
-# define getcwd(buf, max) getwd (buf) | |
-# else | |
-char *getcwd (); | |
-# endif | |
-# ifndef HAVE_STPCPY | |
-static char *stpcpy PARAMS ((char *dest, const char *src)); | |
-# endif | |
-#endif | |
- | |
-/* Amount to increase buffer size by in each try. */ | |
-#define PATH_INCR 32 | |
- | |
-/* The following is from pathmax.h. */ | |
-/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define | |
- PATH_MAX but might cause redefinition warnings when sys/param.h is | |
- later included (as on MORE/BSD 4.3). */ | |
-#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__)) | |
-# include <limits.h> | |
-#endif | |
- | |
-#ifndef _POSIX_PATH_MAX | |
-# define _POSIX_PATH_MAX 255 | |
-#endif | |
- | |
-#if !defined(PATH_MAX) && defined(_PC_PATH_MAX) | |
-# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _P… | |
-#endif | |
- | |
-/* Don't include sys/param.h if it already has been. */ | |
-#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN) | |
-# include <sys/param.h> | |
-#endif | |
- | |
-#if !defined(PATH_MAX) && defined(MAXPATHLEN) | |
-# define PATH_MAX MAXPATHLEN | |
-#endif | |
- | |
-#ifndef PATH_MAX | |
-# define PATH_MAX _POSIX_PATH_MAX | |
-#endif | |
- | |
-/* XPG3 defines the result of `setlocale (category, NULL)' as: | |
- ``Directs `setlocale()' to query `category' and return the current | |
- setting of `local'.'' | |
- However it does not specify the exact format. And even worse: POSIX | |
- defines this not at all. So we can use this feature only on selected | |
- system (e.g. those using GNU C Library). */ | |
-#ifdef _LIBC | |
-# define HAVE_LOCALE_NULL | |
-#endif | |
- | |
-/* Name of the default domain used for gettext(3) prior any call to | |
- textdomain(3). The default value for this is "messages". */ | |
-const char _nl_default_default_domain[] = "messages"; | |
- | |
-/* Value used as the default domain for gettext(3). */ | |
-const char *_nl_current_default_domain = _nl_default_default_domain; | |
- | |
-/* Contains the default location of the message catalogs. */ | |
-const char _nl_default_dirname[] = GNULOCALEDIR; | |
- | |
-/* List with bindings of specific domains created by bindtextdomain() | |
- calls. */ | |
-struct binding *_nl_domain_bindings; | |
- | |
-/* Prototypes for local functions. */ | |
-static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file, | |
- const char *msgid)) internal_function; | |
-static const char *category_to_name PARAMS ((int category)) internal_function; | |
-static const char *guess_category_value PARAMS ((int category, | |
- const char *categoryname)) | |
- internal_function; | |
- | |
- | |
-/* For those loosing systems which don't have `alloca' we have to add | |
- some additional code emulating it. */ | |
-#ifdef HAVE_ALLOCA | |
-/* Nothing has to be done. */ | |
-# define ADD_BLOCK(list, address) /* nothing */ | |
-# define FREE_BLOCKS(list) /* nothing */ | |
-#else | |
-struct block_list | |
-{ | |
- void *address; | |
- struct block_list *next; | |
-}; | |
-# define ADD_BLOCK(list, addr) … | |
- do { … | |
- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ | |
- /* If we cannot get a free block we cannot add the new element to … | |
- the list. */ … | |
- if (newp != NULL) { … | |
- newp->address = (addr); … | |
- newp->next = (list); … | |
- (list) = newp; … | |
- } … | |
- } while (0) | |
-# define FREE_BLOCKS(list) … | |
- do { … | |
- while (list != NULL) { … | |
- struct block_list *old = list; … | |
- list = list->next; \ | |
- free (old); … | |
- } … | |
- } while (0) | |
-# undef alloca | |
-# define alloca(size) (malloc (size)) | |
-#endif /* have alloca */ | |
- | |
- | |
/* Names for the libintl functions are a problem. They must not clash | |
with existing names and they should follow ANSI C. But this source | |
code is also used in GNU C Library where the names have a __ | |
prefix. So we have to make a difference here. */ | |
#ifdef _LIBC | |
# define DCGETTEXT __dcgettext | |
+# define DCIGETTEXT __dcigettext | |
#else | |
# define DCGETTEXT dcgettext__ | |
+# define DCIGETTEXT dcigettext__ | |
#endif | |
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY | |
t@@ -225,400 +48,10 @@ DCGETTEXT (domainname, msgid, category) | |
const char *msgid; | |
int category; | |
{ | |
-#ifndef HAVE_ALLOCA | |
- struct block_list *block_list = NULL; | |
-#endif | |
- struct loaded_l10nfile *domain; | |
- struct binding *binding; | |
- const char *categoryname; | |
- const char *categoryvalue; | |
- char *dirname, *xdomainname; | |
- char *single_locale; | |
- char *retval; | |
- int saved_errno = errno; | |
- | |
- /* If no real MSGID is given return NULL. */ | |
- if (msgid == NULL) | |
- return NULL; | |
- | |
- /* If DOMAINNAME is NULL, we are interested in the default domain. If | |
- CATEGORY is not LC_MESSAGES this might not make much sense but the | |
- defintion left this undefined. */ | |
- if (domainname == NULL) | |
- domainname = _nl_current_default_domain; | |
- | |
- /* First find matching binding. */ | |
- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) | |
- { | |
- int compare = strcmp (domainname, binding->domainname); | |
- if (compare == 0) | |
- /* We found it! */ | |
- break; | |
- if (compare < 0) | |
- { | |
- /* It is not in the list. */ | |
- binding = NULL; | |
- break; | |
- } | |
- } | |
- | |
- if (binding == NULL) | |
- dirname = (char *) _nl_default_dirname; | |
- else if (binding->dirname[0] == '/') | |
- dirname = binding->dirname; | |
- else | |
- { | |
- /* We have a relative path. Make it absolute now. */ | |
- size_t dirname_len = strlen (binding->dirname) + 1; | |
- size_t path_max; | |
- char *ret; | |
- | |
- path_max = (unsigned) PATH_MAX; | |
- path_max += 2; /* The getcwd docs say to do this. */ | |
- | |
- dirname = (char *) alloca (path_max + dirname_len); | |
- ADD_BLOCK (block_list, dirname); | |
- | |
- __set_errno (0); | |
- while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE) | |
- { | |
- path_max += PATH_INCR; | |
- dirname = (char *) alloca (path_max + dirname_len); | |
- ADD_BLOCK (block_list, dirname); | |
- __set_errno (0); | |
- } | |
- | |
- if (ret == NULL) | |
- { | |
- /* We cannot get the current working directory. Don't signal an | |
- error but simply return the default string. */ | |
- FREE_BLOCKS (block_list); | |
- __set_errno (saved_errno); | |
- return (char *) msgid; | |
- } | |
- | |
- stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname); | |
- } | |
- | |
- /* Now determine the symbolic name of CATEGORY and its value. */ | |
- categoryname = category_to_name (category); | |
- categoryvalue = guess_category_value (category, categoryname); | |
- | |
- xdomainname = (char *) alloca (strlen (categoryname) | |
- + strlen (domainname) + 5); | |
- ADD_BLOCK (block_list, xdomainname); | |
- | |
- stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), | |
- domainname), | |
- ".mo"); | |
- | |
- /* Creating working area. */ | |
- single_locale = (char *) alloca (strlen (categoryvalue) + 1); | |
- ADD_BLOCK (block_list, single_locale); | |
- | |
- | |
- /* Search for the given string. This is a loop because we perhaps | |
- got an ordered list of languages to consider for th translation. */ | |
- while (1) | |
- { | |
- /* Make CATEGORYVALUE point to the next element of the list. */ | |
- while (categoryvalue[0] != '\0' && categoryvalue[0] == ':') | |
- ++categoryvalue; | |
- if (categoryvalue[0] == '\0') | |
- { | |
- /* The whole contents of CATEGORYVALUE has been searched but | |
- no valid entry has been found. We solve this situation | |
- by implicitly appending a "C" entry, i.e. no translation | |
- will take place. */ | |
- single_locale[0] = 'C'; | |
- single_locale[1] = '\0'; | |
- } | |
- else | |
- { | |
- char *cp = single_locale; | |
- while (categoryvalue[0] != '\0' && categoryvalue[0] != ':') | |
- *cp++ = *categoryvalue++; | |
- *cp = '\0'; | |
- } | |
- | |
- /* If the current locale value is C (or POSIX) we don't load a | |
- domain. Return the MSGID. */ | |
- if (strcmp (single_locale, "C") == 0 | |
- || strcmp (single_locale, "POSIX") == 0) | |
- { | |
- FREE_BLOCKS (block_list); | |
- __set_errno (saved_errno); | |
- return (char *) msgid; | |
- } | |
- | |
- | |
- /* Find structure describing the message catalog matching the | |
- DOMAINNAME and CATEGORY. */ | |
- domain = _nl_find_domain (dirname, single_locale, xdomainname); | |
- | |
- if (domain != NULL) | |
- { | |
- retval = find_msg (domain, msgid); | |
- | |
- if (retval == NULL) | |
- { | |
- int cnt; | |
- | |
- for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) | |
- { | |
- retval = find_msg (domain->successor[cnt], msgid); | |
- | |
- if (retval != NULL) | |
- break; | |
- } | |
- } | |
- | |
- if (retval != NULL) | |
- { | |
- FREE_BLOCKS (block_list); | |
- __set_errno (saved_errno); | |
- return retval; | |
- } | |
- } | |
- } | |
- /* NOTREACHED */ | |
+ return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category); | |
} | |
#ifdef _LIBC | |
/* Alias for function name in GNU C Library. */ | |
weak_alias (__dcgettext, dcgettext); | |
#endif | |
- | |
- | |
-static char * | |
-internal_function | |
-find_msg (domain_file, msgid) | |
- struct loaded_l10nfile *domain_file; | |
- const char *msgid; | |
-{ | |
- size_t top, act, bottom; | |
- struct loaded_domain *domain; | |
- | |
- if (domain_file->decided == 0) | |
- _nl_load_domain (domain_file); | |
- | |
- if (domain_file->data == NULL) | |
- return NULL; | |
- | |
- domain = (struct loaded_domain *) domain_file->data; | |
- | |
- /* Locate the MSGID and its translation. */ | |
- if (domain->hash_size > 2 && domain->hash_tab != NULL) | |
- { | |
- /* Use the hashing table. */ | |
- nls_uint32 len = strlen (msgid); | |
- nls_uint32 hash_val = hash_string (msgid); | |
- nls_uint32 idx = hash_val % domain->hash_size; | |
- nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); | |
- nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]); | |
- | |
- if (nstr == 0) | |
- /* Hash table entry is empty. */ | |
- return NULL; | |
- | |
- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len | |
- && strcmp (msgid, | |
- domain->data + W (domain->must_swap, | |
- domain->orig_tab[nstr - 1].offset)) == … | |
- return (char *) domain->data + W (domain->must_swap, | |
- domain->trans_tab[nstr - 1].offset); | |
- | |
- while (1) | |
- { | |
- if (idx >= domain->hash_size - incr) | |
- idx -= domain->hash_size - incr; | |
- else | |
- idx += incr; | |
- | |
- nstr = W (domain->must_swap, domain->hash_tab[idx]); | |
- if (nstr == 0) | |
- /* Hash table entry is empty. */ | |
- return NULL; | |
- | |
- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len | |
- && strcmp (msgid, | |
- domain->data + W (domain->must_swap, | |
- domain->orig_tab[nstr - 1].offset)) | |
- == 0) | |
- return (char *) domain->data | |
- + W (domain->must_swap, domain->trans_tab[nstr - 1].offset); | |
- } | |
- /* NOTREACHED */ | |
- } | |
- | |
- /* Now we try the default method: binary search in the sorted | |
- array of messages. */ | |
- bottom = 0; | |
- top = domain->nstrings; | |
- while (bottom < top) | |
- { | |
- int cmp_val; | |
- | |
- act = (bottom + top) / 2; | |
- cmp_val = strcmp (msgid, domain->data | |
- + W (domain->must_swap, | |
- domain->orig_tab[act].offset)); | |
- if (cmp_val < 0) | |
- top = act; | |
- else if (cmp_val > 0) | |
- bottom = act + 1; | |
- else | |
- break; | |
- } | |
- | |
- /* If an translation is found return this. */ | |
- return bottom >= top ? NULL : (char *) domain->data | |
- + W (domain->must_swap, | |
- domain->trans_tab[act].offset); | |
-} | |
- | |
- | |
-/* Return string representation of locale CATEGORY. */ | |
-static const char * | |
-internal_function | |
-category_to_name (category) | |
- int category; | |
-{ | |
- const char *retval; | |
- | |
- switch (category) | |
- { | |
-#ifdef LC_COLLATE | |
- case LC_COLLATE: | |
- retval = "LC_COLLATE"; | |
- break; | |
-#endif | |
-#ifdef LC_CTYPE | |
- case LC_CTYPE: | |
- retval = "LC_CTYPE"; | |
- break; | |
-#endif | |
-#ifdef LC_MONETARY | |
- case LC_MONETARY: | |
- retval = "LC_MONETARY"; | |
- break; | |
-#endif | |
-#ifdef LC_NUMERIC | |
- case LC_NUMERIC: | |
- retval = "LC_NUMERIC"; | |
- break; | |
-#endif | |
-#ifdef LC_TIME | |
- case LC_TIME: | |
- retval = "LC_TIME"; | |
- break; | |
-#endif | |
-#ifdef LC_MESSAGES | |
- case LC_MESSAGES: | |
- retval = "LC_MESSAGES"; | |
- break; | |
-#endif | |
-#ifdef LC_RESPONSE | |
- case LC_RESPONSE: | |
- retval = "LC_RESPONSE"; | |
- break; | |
-#endif | |
-#ifdef LC_ALL | |
- case LC_ALL: | |
- /* This might not make sense but is perhaps better than any other | |
- value. */ | |
- retval = "LC_ALL"; | |
- break; | |
-#endif | |
- default: | |
- /* If you have a better idea for a default value let me know. */ | |
- retval = "LC_XXX"; | |
- } | |
- | |
- return retval; | |
-} | |
- | |
-/* Guess value of current locale from value of the environment variables. */ | |
-static const char * | |
-internal_function | |
-guess_category_value (category, categoryname) | |
- int category; | |
- const char *categoryname; | |
-{ | |
- const char *retval; | |
- | |
- /* The highest priority value is the `LANGUAGE' environment | |
- variable. This is a GNU extension. */ | |
- retval = getenv ("LANGUAGE"); | |
- if (retval != NULL && retval[0] != '\0') | |
- return retval; | |
- | |
- /* `LANGUAGE' is not set. So we have to proceed with the POSIX | |
- methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some | |
- systems this can be done by the `setlocale' function itself. */ | |
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_… | |
- return setlocale (category, NULL); | |
-#else | |
- /* Setting of LC_ALL overwrites all other. */ | |
- retval = getenv ("LC_ALL"); | |
- if (retval != NULL && retval[0] != '\0') | |
- return retval; | |
- | |
- /* Next comes the name of the desired category. */ | |
- retval = getenv (categoryname); | |
- if (retval != NULL && retval[0] != '\0') | |
- return retval; | |
- | |
- /* Last possibility is the LANG environment variable. */ | |
- retval = getenv ("LANG"); | |
- if (retval != NULL && retval[0] != '\0') | |
- return retval; | |
- | |
- /* We use C as the default domain. POSIX says this is implementation | |
- defined. */ | |
- return "C"; | |
-#endif | |
-} | |
- | |
-/* @@ begin of epilog @@ */ | |
- | |
-/* We don't want libintl.a to depend on any other library. So we | |
- avoid the non-standard function stpcpy. In GNU C Library this | |
- function is available, though. Also allow the symbol HAVE_STPCPY | |
- to be defined. */ | |
-#if !_LIBC && !HAVE_STPCPY | |
-static char * | |
-stpcpy (dest, src) | |
- char *dest; | |
- const char *src; | |
-{ | |
- while ((*dest++ = *src++) != '\0') | |
- /* Do nothing. */ ; | |
- return dest - 1; | |
-} | |
-#endif | |
- | |
- | |
-#ifdef _LIBC | |
-/* If we want to free all resources we have to do some work at | |
- program's end. */ | |
-static void __attribute__ ((unused)) | |
-free_mem (void) | |
-{ | |
- struct binding *runp; | |
- | |
- for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next) | |
- { | |
- free (runp->domainname); | |
- if (runp->dirname != _nl_default_dirname) | |
- /* Yes, this is a pointer comparison. */ | |
- free (runp->dirname); | |
- } | |
- | |
- if (_nl_current_default_domain != _nl_default_default_domain) | |
- /* Yes, again a pointer comparison. */ | |
- free ((char *) _nl_current_default_domain); | |
-} | |
- | |
-text_set_element (__libc_subfreeres, free_mem); | |
-#endif | |
diff --git a/intl/dcngettext.c b/intl/dcngettext.c | |
t@@ -0,0 +1,59 @@ | |
+/* Implementation of the dcngettext(3) function. | |
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. | |
+ | |
+ This program is free software; you can redistribute it and/or modify | |
+ it under the terms of the GNU General Public License as published by | |
+ the Free Software Foundation; either version 2, or (at your option) | |
+ any later version. | |
+ | |
+ This program is distributed in the hope that it will be useful, | |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+ GNU General Public License for more details. | |
+ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software Foundation, | |
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+ | |
+#ifdef HAVE_CONFIG_H | |
+# include <config.h> | |
+#endif | |
+ | |
+#include "gettextP.h" | |
+#ifdef _LIBC | |
+# include <libintl.h> | |
+#else | |
+# include "libgnuintl.h" | |
+#endif | |
+ | |
+/* @@ end of prolog @@ */ | |
+ | |
+/* Names for the libintl functions are a problem. They must not clash | |
+ with existing names and they should follow ANSI C. But this source | |
+ code is also used in GNU C Library where the names have a __ | |
+ prefix. So we have to make a difference here. */ | |
+#ifdef _LIBC | |
+# define DCNGETTEXT __dcngettext | |
+# define DCIGETTEXT __dcigettext | |
+#else | |
+# define DCNGETTEXT dcngettext__ | |
+# define DCIGETTEXT dcigettext__ | |
+#endif | |
+ | |
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY | |
+ locale. */ | |
+char * | |
+DCNGETTEXT (domainname, msgid1, msgid2, n, category) | |
+ const char *domainname; | |
+ const char *msgid1; | |
+ const char *msgid2; | |
+ unsigned long int n; | |
+ int category; | |
+{ | |
+ return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category); | |
+} | |
+ | |
+#ifdef _LIBC | |
+/* Alias for function name in GNU C Library. */ | |
+weak_alias (__dcngettext, dcngettext); | |
+#endif | |
diff --git a/intl/dgettext.c b/intl/dgettext.c | |
t@@ -1,5 +1,5 @@ | |
-/* Implementation of the dgettext(3) function | |
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. | |
+/* Implementation of the dgettext(3) function. | |
+ Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -19,14 +19,13 @@ | |
# include <config.h> | |
#endif | |
-#if defined HAVE_LOCALE_H || defined _LIBC | |
-# include <locale.h> | |
-#endif | |
+#include <locale.h> | |
+#include "gettextP.h" | |
#ifdef _LIBC | |
# include <libintl.h> | |
#else | |
-# include "libgettext.h" | |
+# include "libgnuintl.h" | |
#endif | |
/* @@ end of prolog @@ */ | |
diff --git a/intl/dngettext.c b/intl/dngettext.c | |
t@@ -0,0 +1,60 @@ | |
+/* Implementation of the dngettext(3) function. | |
+ Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. | |
+ | |
+ This program is free software; you can redistribute it and/or modify | |
+ it under the terms of the GNU General Public License as published by | |
+ the Free Software Foundation; either version 2, or (at your option) | |
+ any later version. | |
+ | |
+ This program is distributed in the hope that it will be useful, | |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+ GNU General Public License for more details. | |
+ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software Foundation, | |
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+ | |
+#ifdef HAVE_CONFIG_H | |
+# include <config.h> | |
+#endif | |
+ | |
+#include <locale.h> | |
+ | |
+#include "gettextP.h" | |
+#ifdef _LIBC | |
+# include <libintl.h> | |
+#else | |
+# include "libgnuintl.h" | |
+#endif | |
+ | |
+/* @@ end of prolog @@ */ | |
+ | |
+/* Names for the libintl functions are a problem. They must not clash | |
+ with existing names and they should follow ANSI C. But this source | |
+ code is also used in GNU C Library where the names have a __ | |
+ prefix. So we have to make a difference here. */ | |
+#ifdef _LIBC | |
+# define DNGETTEXT __dngettext | |
+# define DCNGETTEXT __dcngettext | |
+#else | |
+# define DNGETTEXT dngettext__ | |
+# define DCNGETTEXT dcngettext__ | |
+#endif | |
+ | |
+/* Look up MSGID in the DOMAINNAME message catalog of the current | |
+ LC_MESSAGES locale and skip message according to the plural form. */ | |
+char * | |
+DNGETTEXT (domainname, msgid1, msgid2, n) | |
+ const char *domainname; | |
+ const char *msgid1; | |
+ const char *msgid2; | |
+ unsigned long int n; | |
+{ | |
+ return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES); | |
+} | |
+ | |
+#ifdef _LIBC | |
+/* Alias for function name in GNU C Library. */ | |
+weak_alias (__dngettext, dngettext); | |
+#endif | |
diff --git a/intl/explodename.c b/intl/explodename.c | |
t@@ -1,4 +1,4 @@ | |
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
+/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. | |
Contributed by Ulrich Drepper <[email protected]>, 1995. | |
This program is free software; you can redistribute it and/or modify | |
t@@ -19,15 +19,8 @@ | |
# include <config.h> | |
#endif | |
-#if defined STDC_HEADERS || defined _LIBC | |
-# include <stdlib.h> | |
-#endif | |
- | |
-#if defined HAVE_STRING_H || defined _LIBC | |
-# include <string.h> | |
-#else | |
-# include <strings.h> | |
-#endif | |
+#include <stdlib.h> | |
+#include <string.h> | |
#include <sys/types.h> | |
#include "loadinfo.h" | |
t@@ -43,6 +36,18 @@ | |
/* @@ end of prolog @@ */ | |
+char * | |
+_nl_find_language (name) | |
+ const char *name; | |
+{ | |
+ while (name[0] != '\0' && name[0] != '_' && name[0] != '@' | |
+ && name[0] != '+' && name[0] != ',') | |
+ ++name; | |
+ | |
+ return (char *) name; | |
+} | |
+ | |
+ | |
int | |
_nl_explode_name (name, language, modifier, territory, codeset, | |
normalized_codeset, special, sponsor, revision) | |
t@@ -74,9 +79,7 @@ _nl_explode_name (name, language, modifier, territory, codes… | |
mask = 0; | |
syntax = undecided; | |
*language = cp = name; | |
- while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@' | |
- && cp[0] != '+' && cp[0] != ',') | |
- ++cp; | |
+ cp = _nl_find_language (*language); | |
if (*language == cp) | |
/* This does not make sense: language has to be specified. Use | |
diff --git a/intl/finddomain.c b/intl/finddomain.c | |
t@@ -1,6 +1,6 @@ | |
/* Handle list of needed message catalogs | |
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
- Written by Ulrich Drepper <[email protected]>, 1995. | |
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. | |
+ Written by Ulrich Drepper <[email protected]>, 1995. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -20,45 +20,20 @@ | |
# include <config.h> | |
#endif | |
-#include <ctype.h> | |
-#include <errno.h> | |
#include <stdio.h> | |
#include <sys/types.h> | |
- | |
-#if defined STDC_HEADERS || defined _LIBC | |
-# include <stdlib.h> | |
-#else | |
-# ifdef HAVE_MALLOC_H | |
-# include <malloc.h> | |
-# else | |
-void free (); | |
-# endif | |
-#endif | |
- | |
-#if defined HAVE_STRING_H || defined _LIBC | |
-# include <string.h> | |
-#else | |
-# include <strings.h> | |
-# ifndef memcpy | |
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) | |
-# endif | |
-#endif | |
-#if !HAVE_STRCHR && !defined _LIBC | |
-# ifndef strchr | |
-# define strchr index | |
-# endif | |
-#endif | |
+#include <stdlib.h> | |
+#include <string.h> | |
#if defined HAVE_UNISTD_H || defined _LIBC | |
# include <unistd.h> | |
#endif | |
-#include "gettext.h" | |
#include "gettextP.h" | |
#ifdef _LIBC | |
# include <libintl.h> | |
#else | |
-# include "libgettext.h" | |
+# include "libgnuintl.h" | |
#endif | |
/* @@ end of prolog @@ */ | |
t@@ -71,10 +46,11 @@ static struct loaded_l10nfile *_nl_loaded_domains; | |
established bindings. */ | |
struct loaded_l10nfile * | |
internal_function | |
-_nl_find_domain (dirname, locale, domainname) | |
+_nl_find_domain (dirname, locale, domainname, domainbinding) | |
const char *dirname; | |
char *locale; | |
const char *domainname; | |
+ struct binding *domainbinding; | |
{ | |
struct loaded_l10nfile *retval; | |
const char *language; | |
t@@ -120,7 +96,7 @@ _nl_find_domain (dirname, locale, domainname) | |
int cnt; | |
if (retval->decided == 0) | |
- _nl_load_domain (retval); | |
+ _nl_load_domain (retval, domainbinding); | |
if (retval->data != NULL) | |
return retval; | |
t@@ -128,7 +104,7 @@ _nl_find_domain (dirname, locale, domainname) | |
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) | |
{ | |
if (retval->successor[cnt]->decided == 0) | |
- _nl_load_domain (retval->successor[cnt]); | |
+ _nl_load_domain (retval->successor[cnt], domainbinding); | |
if (retval->successor[cnt]->data != NULL) | |
break; | |
t@@ -175,14 +151,14 @@ _nl_find_domain (dirname, locale, domainname) | |
return NULL; | |
if (retval->decided == 0) | |
- _nl_load_domain (retval); | |
+ _nl_load_domain (retval, domainbinding); | |
if (retval->data == NULL) | |
{ | |
int cnt; | |
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) | |
{ | |
if (retval->successor[cnt]->decided == 0) | |
- _nl_load_domain (retval->successor[cnt]); | |
+ _nl_load_domain (retval->successor[cnt], domainbinding); | |
if (retval->successor[cnt]->data != NULL) | |
break; | |
} | |
t@@ -192,6 +168,10 @@ _nl_find_domain (dirname, locale, domainname) | |
if (alias_value != NULL) | |
free (locale); | |
+ /* The space for normalized_codeset is dynamically allocated. Free it. */ | |
+ if (mask & XPG_NORM_CODESET) | |
+ free ((void *) normalized_codeset); | |
+ | |
return retval; | |
} | |
t@@ -208,6 +188,7 @@ free_mem (void) | |
if (runp->data != NULL) | |
_nl_unload_domain ((struct loaded_domain *) runp->data); | |
runp = runp->next; | |
+ free ((char *) here->filename); | |
free (here); | |
} | |
} | |
diff --git a/intl/gettext.c b/intl/gettext.c | |
t@@ -1,5 +1,5 @@ | |
/* Implementation of gettext(3) function. | |
- Copyright (C) 1995, 1997 Free Software Foundation, Inc. | |
+ Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -23,21 +23,14 @@ | |
# define __need_NULL | |
# include <stddef.h> | |
#else | |
-# ifdef STDC_HEADERS | |
-# include <stdlib.h> /* Just for NULL. */ | |
-# else | |
-# ifdef HAVE_STRING_H | |
-# include <string.h> | |
-# else | |
-# define NULL ((void *) 0) | |
-# endif | |
-# endif | |
+# include <stdlib.h> /* Just for NULL. */ | |
#endif | |
+#include "gettextP.h" | |
#ifdef _LIBC | |
# include <libintl.h> | |
#else | |
-# include "libgettext.h" | |
+# include "libgnuintl.h" | |
#endif | |
/* @@ end of prolog @@ */ | |
t@@ -48,10 +41,10 @@ | |
prefix. So we have to make a difference here. */ | |
#ifdef _LIBC | |
# define GETTEXT __gettext | |
-# define DGETTEXT __dgettext | |
+# define DCGETTEXT __dcgettext | |
#else | |
# define GETTEXT gettext__ | |
-# define DGETTEXT dgettext__ | |
+# define DCGETTEXT dcgettext__ | |
#endif | |
/* Look up MSGID in the current default message catalog for the current | |
t@@ -61,7 +54,7 @@ char * | |
GETTEXT (msgid) | |
const char *msgid; | |
{ | |
- return DGETTEXT (NULL, msgid); | |
+ return DCGETTEXT (NULL, msgid, LC_MESSAGES); | |
} | |
#ifdef _LIBC | |
diff --git a/intl/gettext.h b/intl/gettext.h | |
t@@ -1,5 +1,5 @@ | |
-/* Internal header for GNU gettext internationalization functions. | |
- Copyright (C) 1995, 1997 Free Software Foundation, Inc. | |
+/* Description of GNU message catalog format: general file layout. | |
+ Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -11,16 +11,13 @@ | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
- You should have received a copy of the GNU Library General Public | |
- License along with the GNU C Library; see the file COPYING.LIB. If not, | |
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
- Boston, MA 02111-1307, USA. */ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software Foundation, | |
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
#ifndef _GETTEXT_H | |
#define _GETTEXT_H 1 | |
-#include <stdio.h> | |
- | |
#if HAVE_LIMITS_H || _LIBC | |
# include <limits.h> | |
#endif | |
t@@ -37,9 +34,8 @@ | |
/* The following contortions are an attempt to use the C preprocessor | |
to determine an unsigned integral type that is 32 bits wide. An | |
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but | |
- doing that would require that the configure script compile and *run* | |
- the resulting executable. Locally running cross-compiled executables | |
- is usually not possible. */ | |
+ as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work | |
+ when cross-compiling. */ | |
#if __STDC__ | |
# define UINT_MAX_32_BITS 4294967295U | |
diff --git a/intl/gettextP.h b/intl/gettextP.h | |
t@@ -1,6 +1,6 @@ | |
-/* Header describing internals of gettext library | |
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
- Written by Ulrich Drepper <[email protected]>, 1995. | |
+/* Header describing internals of libintl library. | |
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. | |
+ Written by Ulrich Drepper <[email protected]>, 1995. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -19,8 +19,20 @@ | |
#ifndef _GETTEXTP_H | |
#define _GETTEXTP_H | |
+#include <stddef.h> /* Get size_t. */ | |
+ | |
+#ifdef _LIBC | |
+# include "../iconv/gconv_int.h" | |
+#else | |
+# if HAVE_ICONV | |
+# include <iconv.h> | |
+# endif | |
+#endif | |
+ | |
#include "loadinfo.h" | |
+#include "gettext.h" /* Get nls_uint32. */ | |
+ | |
/* @@ end of prolog @@ */ | |
#ifndef PARAMS | |
t@@ -35,6 +47,12 @@ | |
# define internal_function | |
#endif | |
+/* Tell the compiler when a conditional or integer expression is | |
+ almost always true or almost always false. */ | |
+#ifndef HAVE_BUILTIN_EXPECT | |
+# define __builtin_expect(expr, val) (expr) | |
+#endif | |
+ | |
#ifndef W | |
# define W(flag, data) ((flag) ? SWAP (data) : (data)) | |
#endif | |
t@@ -44,8 +62,6 @@ | |
# include <byteswap.h> | |
# define SWAP(i) bswap_32 (i) | |
#else | |
-static nls_uint32 SWAP PARAMS ((nls_uint32 i)); | |
- | |
static inline nls_uint32 | |
SWAP (i) | |
nls_uint32 i; | |
t@@ -55,6 +71,52 @@ SWAP (i) | |
#endif | |
+/* This is the representation of the expressions to determine the | |
+ plural form. */ | |
+struct expression | |
+{ | |
+ int nargs; /* Number of arguments. */ | |
+ enum operator | |
+ { | |
+ /* Without arguments: */ | |
+ var, /* The variable "n". */ | |
+ num, /* Decimal number. */ | |
+ /* Unary operators: */ | |
+ lnot, /* Logical NOT. */ | |
+ /* Binary operators: */ | |
+ mult, /* Multiplication. */ | |
+ divide, /* Division. */ | |
+ module, /* Module operation. */ | |
+ plus, /* Addition. */ | |
+ minus, /* Subtraction. */ | |
+ less_than, /* Comparison. */ | |
+ greater_than, /* Comparison. */ | |
+ less_or_equal, /* Comparison. */ | |
+ greater_or_equal, /* Comparison. */ | |
+ equal, /* Comparision for equality. */ | |
+ not_equal, /* Comparision for inequality. */ | |
+ land, /* Logical AND. */ | |
+ lor, /* Logical OR. */ | |
+ /* Ternary operators: */ | |
+ qmop /* Question mark operator. */ | |
+ } operation; | |
+ union | |
+ { | |
+ unsigned long int num; /* Number value for `num'. */ | |
+ struct expression *args[3]; /* Up to three arguments. */ | |
+ } val; | |
+}; | |
+ | |
+/* This is the data structure to pass information to the parser and get | |
+ the result in a thread-safe way. */ | |
+struct parse_args | |
+{ | |
+ const char *cp; | |
+ struct expression *res; | |
+}; | |
+ | |
+ | |
+/* The representation of an opened message catalog. */ | |
struct loaded_domain | |
{ | |
const char *data; | |
t@@ -66,23 +128,123 @@ struct loaded_domain | |
struct string_desc *trans_tab; | |
nls_uint32 hash_size; | |
nls_uint32 *hash_tab; | |
+ int codeset_cntr; | |
+#ifdef _LIBC | |
+ __gconv_t conv; | |
+#else | |
+# if HAVE_ICONV | |
+ iconv_t conv; | |
+# endif | |
+#endif | |
+ char **conv_tab; | |
+ | |
+ struct expression *plural; | |
+ unsigned long int nplurals; | |
}; | |
+/* We want to allocate a string at the end of the struct. But ISO C | |
+ doesn't allow zero sized arrays. */ | |
+#ifdef __GNUC__ | |
+# define ZERO 0 | |
+#else | |
+# define ZERO 1 | |
+#endif | |
+ | |
+/* A set of settings bound to a message domain. Used to store settings | |
+ from bindtextdomain() and bind_textdomain_codeset(). */ | |
struct binding | |
{ | |
struct binding *next; | |
- char *domainname; | |
char *dirname; | |
+ int codeset_cntr; /* Incremented each time codeset changes. */ | |
+ char *codeset; | |
+ char domainname[ZERO]; | |
}; | |
+/* A counter which is incremented each time some previous translations | |
+ become invalid. | |
+ This variable is part of the external ABI of the GNU libintl. */ | |
+extern int _nl_msg_cat_cntr; | |
+ | |
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, | |
char *__locale, | |
- const char *__domainname)) | |
+ const char *__domainname, | |
+ struct binding *__domainbinding)) | |
internal_function; | |
-void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain)) | |
+void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain, | |
+ struct binding *__domainbinding)) | |
internal_function; | |
void _nl_unload_domain PARAMS ((struct loaded_domain *__domain)) | |
internal_function; | |
+const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_fil… | |
+ struct loaded_domain *__domain, | |
+ struct binding *__domainbinding)) | |
+ internal_function; | |
+void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain)) | |
+ internal_function; | |
+ | |
+char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file, | |
+ struct binding *domainbinding, | |
+ const char *msgid, size_t *lengthp)) | |
+ internal_function; | |
+ | |
+#ifdef _LIBC | |
+extern char *__gettext PARAMS ((const char *__msgid)); | |
+extern char *__dgettext PARAMS ((const char *__domainname, | |
+ const char *__msgid)); | |
+extern char *__dcgettext PARAMS ((const char *__domainname, | |
+ const char *__msgid, int __category)); | |
+extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2, | |
+ unsigned long int __n)); | |
+extern char *__dngettext PARAMS ((const char *__domainname, | |
+ const char *__msgid1, const char *__msgid2, | |
+ unsigned long int n)); | |
+extern char *__dcngettext PARAMS ((const char *__domainname, | |
+ const char *__msgid1, const char *__msgid2, | |
+ unsigned long int __n, int __category)); | |
+extern char *__dcigettext PARAMS ((const char *__domainname, | |
+ const char *__msgid1, const char *__msgid2, | |
+ int __plural, unsigned long int __n, | |
+ int __category)); | |
+extern char *__textdomain PARAMS ((const char *__domainname)); | |
+extern char *__bindtextdomain PARAMS ((const char *__domainname, | |
+ const char *__dirname)); | |
+extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname, | |
+ const char *__codeset)); | |
+#else | |
+extern char *gettext__ PARAMS ((const char *__msgid)); | |
+extern char *dgettext__ PARAMS ((const char *__domainname, | |
+ const char *__msgid)); | |
+extern char *dcgettext__ PARAMS ((const char *__domainname, | |
+ const char *__msgid, int __category)); | |
+extern char *ngettext__ PARAMS ((const char *__msgid1, const char *__msgid2, | |
+ unsigned long int __n)); | |
+extern char *dngettext__ PARAMS ((const char *__domainname, | |
+ const char *__msgid1, const char *__msgid2, | |
+ unsigned long int __n)); | |
+extern char *dcngettext__ PARAMS ((const char *__domainname, | |
+ const char *__msgid1, const char *__msgid2, | |
+ unsigned long int __n, int __category)); | |
+extern char *dcigettext__ PARAMS ((const char *__domainname, | |
+ const char *__msgid1, const char *__msgid2, | |
+ int __plural, unsigned long int __n, | |
+ int __category)); | |
+extern char *textdomain__ PARAMS ((const char *__domainname)); | |
+extern char *bindtextdomain__ PARAMS ((const char *__domainname, | |
+ const char *__dirname)); | |
+extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname, | |
+ const char *__codeset)); | |
+#endif | |
+ | |
+#ifdef _LIBC | |
+extern void __gettext_free_exp PARAMS ((struct expression *exp)) | |
+ internal_function; | |
+extern int __gettextparse PARAMS ((void *arg)); | |
+#else | |
+extern void gettext_free_exp__ PARAMS ((struct expression *exp)) | |
+ internal_function; | |
+extern int gettextparse__ PARAMS ((void *arg)); | |
+#endif | |
/* @@ begin of epilog @@ */ | |
diff --git a/intl/hash-string.h b/intl/hash-string.h | |
t@@ -1,5 +1,5 @@ | |
-/* Implements a string hashing function. | |
- Copyright (C) 1995, 1997 Free Software Foundation, Inc. | |
+/* Description of GNU message catalog format: string hashing function. | |
+ Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -11,10 +11,9 @@ | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
- You should have received a copy of the GNU Library General Public | |
- License along with the GNU C Library; see the file COPYING.LIB. If not, | |
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
- Boston, MA 02111-1307, USA. */ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software Foundation, | |
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
/* @@ end of prolog @@ */ | |
t@@ -33,9 +32,9 @@ | |
/* Defines the so called `hashpjw' function by P.J. Weinberger | |
[see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, | |
1986, 1987 Bell Telephone Laboratories, Inc.] */ | |
-static unsigned long hash_string PARAMS ((const char *__str_param)); | |
+static unsigned long int hash_string PARAMS ((const char *__str_param)); | |
-static inline unsigned long | |
+static inline unsigned long int | |
hash_string (str_param) | |
const char *str_param; | |
{ | |
t@@ -47,8 +46,8 @@ hash_string (str_param) | |
while (*str != '\0') | |
{ | |
hval <<= 4; | |
- hval += (unsigned long) *str++; | |
- g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4)); | |
+ hval += (unsigned long int) *str++; | |
+ g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); | |
if (g != 0) | |
{ | |
hval ^= g >> (HASHWORDBITS - 8); | |
diff --git a/intl/intl-compat.c b/intl/intl-compat.c | |
t@@ -1,6 +1,6 @@ | |
/* intl-compat.c - Stub functions to call gettext functions from GNU gettext | |
Library. | |
- Copyright (C) 1995 Software Foundation, Inc. | |
+ Copyright (C) 1995, 2000, 2001 Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -20,24 +20,79 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA … | |
# include <config.h> | |
#endif | |
-#include "libgettext.h" | |
+#include "libgnuintl.h" | |
+#include "gettextP.h" | |
/* @@ end of prolog @@ */ | |
+/* This file redirects the gettext functions (without prefix or suffix) to | |
+ those defined in the included GNU gettext library (with "__" suffix). | |
+ It is compiled into libintl when the included GNU gettext library is | |
+ configured --with-included-gettext. | |
+ | |
+ This redirection works also in the case that the system C library or | |
+ the system libintl library contain gettext/textdomain/... functions. | |
+ If it didn't, we would need to add preprocessor level redirections to | |
+ libgnuintl.h of the following form: | |
+ | |
+# define gettext gettext__ | |
+# define dgettext dgettext__ | |
+# define dcgettext dcgettext__ | |
+# define ngettext ngettext__ | |
+# define dngettext dngettext__ | |
+# define dcngettext dcngettext__ | |
+# define textdomain textdomain__ | |
+# define bindtextdomain bindtextdomain__ | |
+# define bind_textdomain_codeset bind_textdomain_codeset__ | |
+ | |
+ How does this redirection work? There are two cases. | |
+ A. When libintl.a is linked into an executable, it works because | |
+ functions defined in the executable always override functions in | |
+ the shared libraries. | |
+ B. When libintl.so is used, it works because | |
+ 1. those systems defining gettext/textdomain/... in the C library | |
+ (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are | |
+ ELF systems and define these symbols as weak, thus explicitly | |
+ letting other shared libraries override it. | |
+ 2. those systems defining gettext/textdomain/... in a standalone | |
+ libintl.so library (namely, Solaris 2.3 and newer) have this | |
+ shared library in /usr/lib, and the linker will search /usr/lib | |
+ *after* the directory where the GNU gettext library is installed. | |
+ | |
+ A third case, namely when libintl.a is linked into a shared library | |
+ whose name is not libintl.so, is not supported. In this case, on | |
+ Solaris, when -lintl precedes the linker option for the shared library | |
+ containing GNU gettext, the system's gettext would indeed override | |
+ the GNU gettext. Anyone doing this kind of stuff must be clever enough | |
+ to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker | |
+ command line. */ | |
+ | |
#undef gettext | |
#undef dgettext | |
#undef dcgettext | |
+#undef ngettext | |
+#undef dngettext | |
+#undef dcngettext | |
#undef textdomain | |
#undef bindtextdomain | |
+#undef bind_textdomain_codeset | |
char * | |
-bindtextdomain (domainname, dirname) | |
+gettext (msgid) | |
+ const char *msgid; | |
+{ | |
+ return gettext__ (msgid); | |
+} | |
+ | |
+ | |
+char * | |
+dgettext (domainname, msgid) | |
const char *domainname; | |
- const char *dirname; | |
+ const char *msgid; | |
{ | |
- return bindtextdomain__ (domainname, dirname); | |
+ return dgettext__ (domainname, msgid); | |
} | |
t@@ -52,19 +107,35 @@ dcgettext (domainname, msgid, category) | |
char * | |
-dgettext (domainname, msgid) | |
+ngettext (msgid1, msgid2, n) | |
+ const char *msgid1; | |
+ const char *msgid2; | |
+ unsigned long int n; | |
+{ | |
+ return ngettext__ (msgid1, msgid2, n); | |
+} | |
+ | |
+ | |
+char * | |
+dngettext (domainname, msgid1, msgid2, n) | |
const char *domainname; | |
- const char *msgid; | |
+ const char *msgid1; | |
+ const char *msgid2; | |
+ unsigned long int n; | |
{ | |
- return dgettext__ (domainname, msgid); | |
+ return dngettext__ (domainname, msgid1, msgid2, n); | |
} | |
char * | |
-gettext (msgid) | |
- const char *msgid; | |
+dcngettext (domainname, msgid1, msgid2, n, category) | |
+ const char *domainname; | |
+ const char *msgid1; | |
+ const char *msgid2; | |
+ unsigned long int n; | |
+ int category; | |
{ | |
- return gettext__ (msgid); | |
+ return dcngettext__ (domainname, msgid1, msgid2, n, category); | |
} | |
t@@ -74,3 +145,21 @@ textdomain (domainname) | |
{ | |
return textdomain__ (domainname); | |
} | |
+ | |
+ | |
+char * | |
+bindtextdomain (domainname, dirname) | |
+ const char *domainname; | |
+ const char *dirname; | |
+{ | |
+ return bindtextdomain__ (domainname, dirname); | |
+} | |
+ | |
+ | |
+char * | |
+bind_textdomain_codeset (domainname, codeset) | |
+ const char *domainname; | |
+ const char *codeset; | |
+{ | |
+ return bind_textdomain_codeset__ (domainname, codeset); | |
+} | |
diff --git a/intl/l10nflist.c b/intl/l10nflist.c | |
t@@ -1,5 +1,4 @@ | |
-/* Handle list of needed message catalogs | |
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. | |
+/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. | |
Contributed by Ulrich Drepper <[email protected]>, 1995. | |
This program is free software; you can redistribute it and/or modify | |
t@@ -16,22 +15,18 @@ | |
along with this program; if not, write to the Free Software Foundation, | |
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+/* Tell glibc's <string.h> to provide a prototype for stpcpy(). | |
+ This must come before <config.h> because <config.h> may include | |
+ <features.h>, and once <features.h> has been included, it's too late. */ | |
+#ifndef _GNU_SOURCE | |
+# define _GNU_SOURCE 1 | |
+#endif | |
+ | |
#ifdef HAVE_CONFIG_H | |
# include <config.h> | |
#endif | |
- | |
-#if defined HAVE_STRING_H || defined _LIBC | |
-# ifndef _GNU_SOURCE | |
-# define _GNU_SOURCE 1 | |
-# endif | |
-# include <string.h> | |
-#else | |
-# include <strings.h> | |
-# ifndef memcpy | |
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) | |
-# endif | |
-#endif | |
+#include <string.h> | |
#if !HAVE_STRCHR && !defined _LIBC | |
# ifndef strchr | |
# define strchr index | |
t@@ -43,10 +38,7 @@ | |
#endif | |
#include <ctype.h> | |
#include <sys/types.h> | |
- | |
-#if defined STDC_HEADERS || defined _LIBC | |
-# include <stdlib.h> | |
-#endif | |
+#include <stdlib.h> | |
#include "loadinfo.h" | |
t@@ -224,7 +216,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, m… | |
/* Construct file name. */ | |
memcpy (abs_filename, dirlist, dirlist_len); | |
- __argz_stringify (abs_filename, dirlist_len, ':'); | |
+ __argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR); | |
cp = abs_filename + (dirlist_len - 1); | |
*cp++ = '/'; | |
cp = stpcpy (cp, language); | |
t@@ -349,10 +341,11 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len,… | |
/* Normalize codeset name. There is no standard for the codeset | |
names. Normalization allows the user to use any of the common | |
- names. */ | |
+ names. The return value is dynamically allocated and has to be | |
+ freed by the caller. */ | |
const char * | |
_nl_normalize_codeset (codeset, name_len) | |
- const unsigned char *codeset; | |
+ const char *codeset; | |
size_t name_len; | |
{ | |
int len = 0; | |
diff --git a/intl/libgettext.h b/intl/libgettext.h | |
t@@ -1,5 +1,5 @@ | |
-/* Message catalogs for internationalization. | |
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
+/* Convenience header for conditional use of GNU <libintl.h>. | |
+ Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -15,168 +15,34 @@ | |
along with this program; if not, write to the Free Software Foundation, | |
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
-/* Because on some systems (e.g. Solaris) we sometimes have to include | |
- the systems libintl.h as well as this file we have more complex | |
- include protection above. But the systems header might perhaps also | |
- define _LIBINTL_H and therefore we have to protect the definition here. */ | |
- | |
-#if !defined _LIBINTL_H || !defined _LIBGETTEXT_H | |
-#ifndef _LIBINTL_H | |
-# define _LIBINTL_H 1 | |
-#endif | |
-#define _LIBGETTEXT_H 1 | |
- | |
-/* We define an additional symbol to signal that we use the GNU | |
- implementation of gettext. */ | |
-#define __USE_GNU_GETTEXT 1 | |
- | |
-#include <sys/types.h> | |
- | |
-#if HAVE_LOCALE_H | |
-# include <locale.h> | |
-#endif | |
- | |
- | |
-#ifdef __cplusplus | |
-extern "C" { | |
-#endif | |
- | |
-/* @@ end of prolog @@ */ | |
- | |
-#ifndef PARAMS | |
-# if __STDC__ || defined __cplusplus | |
-# define PARAMS(args) args | |
-# else | |
-# define PARAMS(args) () | |
-# endif | |
-#endif | |
- | |
-#ifndef NULL | |
-# if !defined __cplusplus || defined __GNUC__ | |
-# define NULL ((void *) 0) | |
-# else | |
-# define NULL (0) | |
-# endif | |
-#endif | |
- | |
-#if !HAVE_LC_MESSAGES | |
-/* This value determines the behaviour of the gettext() and dgettext() | |
- function. But some system does not have this defined. Define it | |
- to a default value. */ | |
-# define LC_MESSAGES (-1) | |
-#endif | |
- | |
- | |
-/* Declarations for gettext-using-catgets interface. Derived from | |
- Jim Meyering's libintl.h. */ | |
-struct _msg_ent | |
-{ | |
- const char *_msg; | |
- int _msg_number; | |
-}; | |
- | |
- | |
-#if HAVE_CATGETS | |
-/* These two variables are defined in the automatically by po-to-tbl.sed | |
- generated file `cat-id-tbl.c'. */ | |
-extern const struct _msg_ent _msg_tbl[]; | |
-extern int _msg_tbl_length; | |
-#endif | |
- | |
- | |
-/* For automatical extraction of messages sometimes no real | |
- translation is needed. Instead the string itself is the result. */ | |
-#define gettext_noop(Str) (Str) | |
- | |
-/* Look up MSGID in the current default message catalog for the current | |
- LC_MESSAGES locale. If not found, returns MSGID itself (the default | |
- text). */ | |
-extern char *gettext PARAMS ((const char *__msgid)); | |
-extern char *gettext__ PARAMS ((const char *__msgid)); | |
- | |
-/* Look up MSGID in the DOMAINNAME message catalog for the current | |
- LC_MESSAGES locale. */ | |
-extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid)); | |
-extern char *dgettext__ PARAMS ((const char *__domainname, | |
- const char *__msgid)); | |
- | |
-/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY | |
- locale. */ | |
-extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid, | |
- int __category)); | |
-extern char *dcgettext__ PARAMS ((const char *__domainname, | |
- const char *__msgid, int __category)); | |
- | |
- | |
-/* Set the current default message catalog to DOMAINNAME. | |
- If DOMAINNAME is null, return the current default. | |
- If DOMAINNAME is "", reset to the default of "messages". */ | |
-extern char *textdomain PARAMS ((const char *__domainname)); | |
-extern char *textdomain__ PARAMS ((const char *__domainname)); | |
- | |
-/* Specify that the DOMAINNAME message catalog will be found | |
- in DIRNAME rather than in the system locale data base. */ | |
-extern char *bindtextdomain PARAMS ((const char *__domainname, | |
- const char *__dirname)); | |
-extern char *bindtextdomain__ PARAMS ((const char *__domainname, | |
- const char *__dirname)); | |
+#ifndef _LIBGETTEXT_H | |
+#define _LIBGETTEXT_H 1 | |
+/* NLS can be disabled through the configure --disable-nls option. */ | |
#if ENABLE_NLS | |
-/* Solaris 2.3 has the gettext function but dcgettext is missing. | |
- So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4 | |
- has dcgettext. */ | |
-# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT) | |
- | |
-# define gettext(Msgid) \ | |
- dgettext (NULL, Msgid) | |
- | |
-# define dgettext(Domainname, Msgid) … | |
- dcgettext (Domainname, Msgid, LC_MESSAGES) | |
- | |
-# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7 | |
-/* This global variable is defined in loadmsgcat.c. We need a sign, | |
- whether a new catalog was loaded, which can be associated with all | |
- translations. */ | |
-extern int _nl_msg_cat_cntr; | |
- | |
-# define dcgettext(Domainname, Msgid, Category) … | |
- (__extension__ \ | |
- ({ … | |
- char *__result; … | |
- if (__builtin_constant_p (Msgid)) … | |
- { \ | |
- static char *__translation__; … | |
- static int __catalog_counter__; \ | |
- if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \ | |
- { … | |
- __translation__ = … | |
- dcgettext__ (Domainname, Msgid, Category); … | |
- __catalog_counter__ = _nl_msg_cat_cntr; … | |
- } … | |
- __result = __translation__; … | |
- } \ | |
- else … | |
- __result = dcgettext__ (Domainname, Msgid, Category); … | |
- __result; … | |
- })) | |
-# endif | |
-# endif | |
+/* Get declarations of GNU message catalog functions. */ | |
+# include <libintl.h> | |
#else | |
# define gettext(Msgid) (Msgid) | |
# define dgettext(Domainname, Msgid) (Msgid) | |
# define dcgettext(Domainname, Msgid, Category) (Msgid) | |
-# define textdomain(Domainname) ((char *) Domainname) | |
-# define bindtextdomain(Domainname, Dirname) ((char *) Dirname) | |
+# define ngettext(Msgid1, Msgid2, N) \ | |
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) | |
+# define dngettext(Domainname, Msgid1, Msgid2, N) \ | |
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) | |
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ | |
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) | |
+# define textdomain(Domainname) ((char *) (Domainname)) | |
+# define bindtextdomain(Domainname, Dirname) ((char *) (Dirname)) | |
+# define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset)) | |
#endif | |
-/* @@ begin of epilog @@ */ | |
- | |
-#ifdef __cplusplus | |
-} | |
-#endif | |
+/* For automatical extraction of messages sometimes no real | |
+ translation is needed. Instead the string itself is the result. */ | |
+#define gettext_noop(Str) (Str) | |
-#endif | |
+#endif /* _LIBGETTEXT_H */ | |
diff --git a/intl/libgnuintl.h b/intl/libgnuintl.h | |
t@@ -0,0 +1,127 @@ | |
+/* Message catalogs for internationalization. | |
+ Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. | |
+ | |
+ This program is free software; you can redistribute it and/or modify | |
+ it under the terms of the GNU General Public License as published by | |
+ the Free Software Foundation; either version 2, or (at your option) | |
+ any later version. | |
+ | |
+ This program is distributed in the hope that it will be useful, | |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+ GNU General Public License for more details. | |
+ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software Foundation, | |
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+ | |
+#ifndef _LIBINTL_H | |
+#define _LIBINTL_H 1 | |
+ | |
+#include <locale.h> | |
+ | |
+/* The LC_MESSAGES locale category is the category used by the functions | |
+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C. | |
+ On systems that don't define it, use an arbitrary value instead. | |
+ On Solaris, <locale.h> defines __LOCALE_H then includes <libintl.h> (i.e. | |
+ this file!) and then only defines LC_MESSAGES. To avoid a redefinition | |
+ warning, don't define LC_MESSAGES in this case. */ | |
+#if !defined LC_MESSAGES && !defined __LOCALE_H | |
+# define LC_MESSAGES 1729 | |
+#endif | |
+ | |
+/* We define an additional symbol to signal that we use the GNU | |
+ implementation of gettext. */ | |
+#define __USE_GNU_GETTEXT 1 | |
+ | |
+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes | |
+ precedence over _conio_gettext. */ | |
+#ifdef __DJGPP__ | |
+# undef gettext | |
+# define gettext gettext | |
+#endif | |
+ | |
+#ifndef PARAMS | |
+# if __STDC__ || defined __cplusplus | |
+# define PARAMS(args) args | |
+# else | |
+# define PARAMS(args) () | |
+# endif | |
+#endif | |
+ | |
+#ifdef __cplusplus | |
+extern "C" { | |
+#endif | |
+ | |
+/* Look up MSGID in the current default message catalog for the current | |
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default | |
+ text). */ | |
+extern char *gettext PARAMS ((const char *__msgid)); | |
+ | |
+/* Look up MSGID in the DOMAINNAME message catalog for the current | |
+ LC_MESSAGES locale. */ | |
+extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid)); | |
+ | |
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY | |
+ locale. */ | |
+extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid, | |
+ int __category)); | |
+ | |
+ | |
+/* Similar to `gettext' but select the plural form corresponding to the | |
+ number N. */ | |
+extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2, | |
+ unsigned long int __n)); | |
+ | |
+/* Similar to `dgettext' but select the plural form corresponding to the | |
+ number N. */ | |
+extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1, | |
+ const char *__msgid2, unsigned long int __n)); | |
+ | |
+/* Similar to `dcgettext' but select the plural form corresponding to the | |
+ number N. */ | |
+extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid… | |
+ const char *__msgid2, unsigned long int __n, | |
+ int __category)); | |
+ | |
+ | |
+/* Set the current default message catalog to DOMAINNAME. | |
+ If DOMAINNAME is null, return the current default. | |
+ If DOMAINNAME is "", reset to the default of "messages". */ | |
+extern char *textdomain PARAMS ((const char *__domainname)); | |
+ | |
+/* Specify that the DOMAINNAME message catalog will be found | |
+ in DIRNAME rather than in the system locale data base. */ | |
+extern char *bindtextdomain PARAMS ((const char *__domainname, | |
+ const char *__dirname)); | |
+ | |
+/* Specify the character encoding in which the messages from the | |
+ DOMAINNAME message catalog will be returned. */ | |
+extern char *bind_textdomain_codeset PARAMS ((const char *__domainname, | |
+ const char *__codeset)); | |
+ | |
+ | |
+/* Optimized version of the functions above. */ | |
+#if defined __OPTIMIZED | |
+/* These are macros, but could also be inline functions. */ | |
+ | |
+# define gettext(msgid) … | |
+ dgettext (NULL, msgid) | |
+ | |
+# define dgettext(domainname, msgid) … | |
+ dcgettext (domainname, msgid, LC_MESSAGES) | |
+ | |
+# define ngettext(msgid1, msgid2, n) … | |
+ dngettext (NULL, msgid1, msgid2, n) | |
+ | |
+# define dngettext(domainname, msgid1, msgid2, n) … | |
+ dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES) | |
+ | |
+#endif /* Optimizing. */ | |
+ | |
+ | |
+#ifdef __cplusplus | |
+} | |
+#endif | |
+ | |
+#endif /* libintl.h */ | |
diff --git a/intl/linux-msg.sed b/intl/linux-msg.sed | |
t@@ -1,100 +0,0 @@ | |
-# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file | |
-# Copyright (C) 1995 Free Software Foundation, Inc. | |
-# Ulrich Drepper <[email protected]>, 1995. | |
-# | |
-# This program is free software; you can redistribute it and/or modify | |
-# it under the terms of the GNU General Public License as published by | |
-# the Free Software Foundation; either version 2, or (at your option) | |
-# any later version. | |
-# | |
-# This program is distributed in the hope that it will be useful, | |
-# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
-# GNU General Public License for more details. | |
-# | |
-# You should have received a copy of the GNU General Public License | |
-# along with this program; if not, write to the Free Software | |
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
-# | |
-# | |
-# The first directive in the .msg should be the definition of the | |
-# message set number. We use always set number 1. | |
-# | |
-1 { | |
- i\ | |
-$set 1 # Automatically created by po2msg.sed | |
- h | |
- s/.*/0/ | |
- x | |
-} | |
-# | |
-# Mitch's old catalog format does not allow comments. | |
-# | |
-# We copy the original message as a comment into the .msg file. | |
-# | |
-/^msgid/ { | |
- s/msgid[ ]*"// | |
-# | |
-# This does not work now with the new format. | |
-# /"$/! { | |
-# s/\\$// | |
-# s/$/ ... (more lines following)"/ | |
-# } | |
- x | |
-# The following nice solution is by | |
-# Bruno <[email protected]> | |
- td | |
-# Increment a decimal number in pattern space. | |
-# First hide trailing `9' digits. | |
- :d | |
- s/9\(_*\)$/_\1/ | |
- td | |
-# Assure at least one digit is available. | |
- s/^\(_*\)$/0\1/ | |
-# Increment the last digit. | |
- s/8\(_*\)$/9\1/ | |
- s/7\(_*\)$/8\1/ | |
- s/6\(_*\)$/7\1/ | |
- s/5\(_*\)$/6\1/ | |
- s/4\(_*\)$/5\1/ | |
- s/3\(_*\)$/4\1/ | |
- s/2\(_*\)$/3\1/ | |
- s/1\(_*\)$/2\1/ | |
- s/0\(_*\)$/1\1/ | |
-# Convert the hidden `9' digits to `0's. | |
- s/_/0/g | |
- x | |
- G | |
- s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p | |
-} | |
-# | |
-# The .msg file contains, other then the .po file, only the translations | |
-# but each given a unique ID. Starting from 1 and incrementing by 1 for | |
-# each message we assign them to the messages. | |
-# It is important that the .po file used to generate the cat-id-tbl.c file | |
-# (with po-to-tbl) is the same as the one used here. (At least the order | |
-# of declarations must not be changed.) | |
-# | |
-/^msgstr/ { | |
- s/msgstr[ ]*"\(.*\)"/# \1/ | |
-# Clear substitution flag. | |
- tb | |
-# Append the next line. | |
- :b | |
- N | |
-# Look whether second part is continuation line. | |
- s/\(.*\n\)"\(.*\)"/\1\2/ | |
-# Yes, then branch. | |
- ta | |
- P | |
- D | |
-# Note that D includes a jump to the start!! | |
-# We found a continuation line. But before printing insert '\'. | |
- :a | |
- s/\(.*\)\(\n.*\)/\1\\\2/ | |
- P | |
-# We cannot use D here. | |
- s/.*\n\(.*\)/\1/ | |
- tb | |
-} | |
-d | |
diff --git a/intl/loadinfo.h b/intl/loadinfo.h | |
t@@ -1,4 +1,4 @@ | |
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. | |
+/* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc. | |
This file is part of the GNU C Library. | |
Contributed by Ulrich Drepper <[email protected]>, 1996. | |
t@@ -16,6 +16,9 @@ | |
along with this program; if not, write to the Free Software Foundation, | |
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+#ifndef _LOADINFO_H | |
+#define _LOADINFO_H 1 | |
+ | |
#ifndef PARAMS | |
# if __STDC__ | |
# define PARAMS(args) args | |
t@@ -24,6 +27,25 @@ | |
# endif | |
#endif | |
+#ifndef internal_function | |
+# define internal_function | |
+#endif | |
+ | |
+/* Tell the compiler when a conditional or integer expression is | |
+ almost always true or almost always false. */ | |
+#ifndef HAVE_BUILTIN_EXPECT | |
+# define __builtin_expect(expr, val) (expr) | |
+#endif | |
+ | |
+/* Separator in PATH like lists of pathnames. */ | |
+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ | |
+ /* Win32, OS/2, DOS */ | |
+# define PATH_SEPARATOR ';' | |
+#else | |
+ /* Unix */ | |
+# define PATH_SEPARATOR ':' | |
+#endif | |
+ | |
/* Encoding of locale name parts. */ | |
#define CEN_REVISION 1 | |
#define CEN_SPONSOR 2 | |
t@@ -50,7 +72,11 @@ struct loaded_l10nfile | |
}; | |
-extern const char *_nl_normalize_codeset PARAMS ((const unsigned char *codeset, | |
+/* Normalize codeset name. There is no standard for the codeset | |
+ names. Normalization allows the user to use any of the common | |
+ names. The return value is dynamically allocated and has to be | |
+ freed by the caller. */ | |
+extern const char *_nl_normalize_codeset PARAMS ((const char *codeset, | |
size_t name_len)); | |
extern struct loaded_l10nfile * | |
t@@ -66,6 +92,8 @@ _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfil… | |
extern const char *_nl_expand_alias PARAMS ((const char *name)); | |
+/* normalized_codeset is dynamically allocated and has to be freed by | |
+ the caller. */ | |
extern int _nl_explode_name PARAMS ((char *name, const char **language, | |
const char **modifier, | |
const char **territory, | |
t@@ -74,3 +102,7 @@ extern int _nl_explode_name PARAMS ((char *name, const char… | |
const char **special, | |
const char **sponsor, | |
const char **revision)); | |
+ | |
+extern char *_nl_find_language PARAMS ((const char *name)); | |
+ | |
+#endif /* loadinfo.h */ | |
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c | |
t@@ -1,5 +1,5 @@ | |
/* Load needed message catalogs. | |
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -15,29 +15,68 @@ | |
along with this program; if not, write to the Free Software Foundation, | |
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+/* Tell glibc's <string.h> to provide a prototype for mempcpy(). | |
+ This must come before <config.h> because <config.h> may include | |
+ <features.h>, and once <features.h> has been included, it's too late. */ | |
+#ifndef _GNU_SOURCE | |
+# define _GNU_SOURCE 1 | |
+#endif | |
+ | |
#ifdef HAVE_CONFIG_H | |
# include <config.h> | |
#endif | |
+#include <ctype.h> | |
+#include <errno.h> | |
#include <fcntl.h> | |
#include <sys/types.h> | |
#include <sys/stat.h> | |
-#if defined STDC_HEADERS || defined _LIBC | |
-# include <stdlib.h> | |
+#ifdef __GNUC__ | |
+# define alloca __builtin_alloca | |
+# define HAVE_ALLOCA 1 | |
+#else | |
+# if defined HAVE_ALLOCA_H || defined _LIBC | |
+# include <alloca.h> | |
+# else | |
+# ifdef _AIX | |
+ #pragma alloca | |
+# else | |
+# ifndef alloca | |
+char *alloca (); | |
+# endif | |
+# endif | |
+# endif | |
#endif | |
+#include <stdlib.h> | |
+#include <string.h> | |
+ | |
#if defined HAVE_UNISTD_H || defined _LIBC | |
# include <unistd.h> | |
#endif | |
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC | |
+#ifdef _LIBC | |
+# include <langinfo.h> | |
+# include <locale.h> | |
+#endif | |
+ | |
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ | |
+ || (defined _LIBC && defined _POSIX_MAPPED_FILES) | |
# include <sys/mman.h> | |
+# undef HAVE_MMAP | |
+# define HAVE_MMAP 1 | |
+#else | |
+# undef HAVE_MMAP | |
#endif | |
#include "gettext.h" | |
#include "gettextP.h" | |
+#ifdef _LIBC | |
+# include "../locale/localeinfo.h" | |
+#endif | |
+ | |
/* @@ end of prolog @@ */ | |
#ifdef _LIBC | |
t@@ -51,32 +90,275 @@ | |
# define munmap __munmap | |
#endif | |
+/* Names for the libintl functions are a problem. They must not clash | |
+ with existing names and they should follow ANSI C. But this source | |
+ code is also used in GNU C Library where the names have a __ | |
+ prefix. So we have to make a difference here. */ | |
+#ifdef _LIBC | |
+# define PLURAL_PARSE __gettextparse | |
+#else | |
+# define PLURAL_PARSE gettextparse__ | |
+#endif | |
+ | |
+/* For those losing systems which don't have `alloca' we have to add | |
+ some additional code emulating it. */ | |
+#ifdef HAVE_ALLOCA | |
+# define freea(p) /* nothing */ | |
+#else | |
+# define alloca(n) malloc (n) | |
+# define freea(p) free (p) | |
+#endif | |
+ | |
+/* For systems that distinguish between text and binary I/O. | |
+ O_BINARY is usually declared in <fcntl.h>. */ | |
+#if !defined O_BINARY && defined _O_BINARY | |
+ /* For MSC-compatible compilers. */ | |
+# define O_BINARY _O_BINARY | |
+# define O_TEXT _O_TEXT | |
+#endif | |
+#ifdef __BEOS__ | |
+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ | |
+# undef O_BINARY | |
+# undef O_TEXT | |
+#endif | |
+/* On reasonable systems, binary I/O is the default. */ | |
+#ifndef O_BINARY | |
+# define O_BINARY 0 | |
+#endif | |
+ | |
/* We need a sign, whether a new catalog was loaded, which can be associated | |
with all translations. This is important if the translations are | |
cached by one of GCC's features. */ | |
-int _nl_msg_cat_cntr = 0; | |
+int _nl_msg_cat_cntr; | |
+ | |
+#if (defined __GNUC__ && !defined __APPLE_CC__) \ | |
+ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) | |
+ | |
+/* These structs are the constant expression for the germanic plural | |
+ form determination. It represents the expression "n != 1". */ | |
+static const struct expression plvar = | |
+{ | |
+ .nargs = 0, | |
+ .operation = var, | |
+}; | |
+static const struct expression plone = | |
+{ | |
+ .nargs = 0, | |
+ .operation = num, | |
+ .val = | |
+ { | |
+ .num = 1 | |
+ } | |
+}; | |
+static struct expression germanic_plural = | |
+{ | |
+ .nargs = 2, | |
+ .operation = not_equal, | |
+ .val = | |
+ { | |
+ .args = | |
+ { | |
+ [0] = (struct expression *) &plvar, | |
+ [1] = (struct expression *) &plone | |
+ } | |
+ } | |
+}; | |
+ | |
+# define INIT_GERMANIC_PLURAL() | |
+ | |
+#else | |
+ | |
+/* For compilers without support for ISO C 99 struct/union initializers: | |
+ Initialization at run-time. */ | |
+ | |
+static struct expression plvar; | |
+static struct expression plone; | |
+static struct expression germanic_plural; | |
+ | |
+static void | |
+init_germanic_plural () | |
+{ | |
+ if (plone.val.num == 0) | |
+ { | |
+ plvar.nargs = 0; | |
+ plvar.operation = var; | |
+ | |
+ plone.nargs = 0; | |
+ plone.operation = num; | |
+ plone.val.num = 1; | |
+ | |
+ germanic_plural.nargs = 2; | |
+ germanic_plural.operation = not_equal; | |
+ germanic_plural.val.args[0] = &plvar; | |
+ germanic_plural.val.args[1] = &plone; | |
+ } | |
+} | |
+ | |
+# define INIT_GERMANIC_PLURAL() init_germanic_plural () | |
+ | |
+#endif | |
+ | |
+ | |
+/* Initialize the codeset dependent parts of an opened message catalog. | |
+ Return the header entry. */ | |
+const char * | |
+internal_function | |
+_nl_init_domain_conv (domain_file, domain, domainbinding) | |
+ struct loaded_l10nfile *domain_file; | |
+ struct loaded_domain *domain; | |
+ struct binding *domainbinding; | |
+{ | |
+ /* Find out about the character set the file is encoded with. | |
+ This can be found (in textual form) in the entry "". If this | |
+ entry does not exist or if this does not contain the `charset=' | |
+ information, we will assume the charset matches the one the | |
+ current locale and we don't have to perform any conversion. */ | |
+ char *nullentry; | |
+ size_t nullentrylen; | |
+ | |
+ /* Preinitialize fields, to avoid recursion during _nl_find_msg. */ | |
+ domain->codeset_cntr = | |
+ (domainbinding != NULL ? domainbinding->codeset_cntr : 0); | |
+#ifdef _LIBC | |
+ domain->conv = (__gconv_t) -1; | |
+#else | |
+# if HAVE_ICONV | |
+ domain->conv = (iconv_t) -1; | |
+# endif | |
+#endif | |
+ domain->conv_tab = NULL; | |
+ /* Get the header entry. */ | |
+ nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen); | |
+ | |
+ if (nullentry != NULL) | |
+ { | |
+#if defined _LIBC || HAVE_ICONV | |
+ const char *charsetstr; | |
+ | |
+ charsetstr = strstr (nullentry, "charset="); | |
+ if (charsetstr != NULL) | |
+ { | |
+ size_t len; | |
+ char *charset; | |
+ const char *outcharset; | |
+ | |
+ charsetstr += strlen ("charset="); | |
+ len = strcspn (charsetstr, " \t\n"); | |
+ | |
+ charset = (char *) alloca (len + 1); | |
+# if defined _LIBC || HAVE_MEMPCPY | |
+ *((char *) mempcpy (charset, charsetstr, len)) = '\0'; | |
+# else | |
+ memcpy (charset, charsetstr, len); | |
+ charset[len] = '\0'; | |
+# endif | |
+ | |
+ /* The output charset should normally be determined by the | |
+ locale. But sometimes the locale is not used or not correctly | |
+ set up, so we provide a possibility for the user to override | |
+ this. Moreover, the value specified through | |
+ bind_textdomain_codeset overrides both. */ | |
+ if (domainbinding != NULL && domainbinding->codeset != NULL) | |
+ outcharset = domainbinding->codeset; | |
+ else | |
+ { | |
+ outcharset = getenv ("OUTPUT_CHARSET"); | |
+ if (outcharset == NULL || outcharset[0] == '\0') | |
+ { | |
+# ifdef _LIBC | |
+ outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX… | |
+# else | |
+# if HAVE_ICONV | |
+ extern const char *locale_charset (void); | |
+ outcharset = locale_charset (); | |
+# endif | |
+# endif | |
+ } | |
+ } | |
+ | |
+# ifdef _LIBC | |
+ /* We always want to use transliteration. */ | |
+ outcharset = norm_add_slashes (outcharset, "TRANSLIT"); | |
+ charset = norm_add_slashes (charset, NULL); | |
+ if (__gconv_open (outcharset, charset, &domain->conv, | |
+ GCONV_AVOID_NOCONV) | |
+ != __GCONV_OK) | |
+ domain->conv = (__gconv_t) -1; | |
+# else | |
+# if HAVE_ICONV | |
+ /* When using GNU libiconv, we want to use transliteration. */ | |
+# if _LIBICONV_VERSION >= 0x0105 | |
+ len = strlen (outcharset); | |
+ { | |
+ char *tmp = (char *) alloca (len + 10 + 1); | |
+ memcpy (tmp, outcharset, len); | |
+ memcpy (tmp + len, "//TRANSLIT", 10 + 1); | |
+ outcharset = tmp; | |
+ } | |
+# endif | |
+ domain->conv = iconv_open (outcharset, charset); | |
+# if _LIBICONV_VERSION >= 0x0105 | |
+ freea (outcharset); | |
+# endif | |
+# endif | |
+# endif | |
+ | |
+ freea (charset); | |
+ } | |
+#endif /* _LIBC || HAVE_ICONV */ | |
+ } | |
+ | |
+ return nullentry; | |
+} | |
+ | |
+/* Frees the codeset dependent parts of an opened message catalog. */ | |
+void | |
+internal_function | |
+_nl_free_domain_conv (domain) | |
+ struct loaded_domain *domain; | |
+{ | |
+ if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1) | |
+ free (domain->conv_tab); | |
+ | |
+#ifdef _LIBC | |
+ if (domain->conv != (__gconv_t) -1) | |
+ __gconv_close (domain->conv); | |
+#else | |
+# if HAVE_ICONV | |
+ if (domain->conv != (iconv_t) -1) | |
+ iconv_close (domain->conv); | |
+# endif | |
+#endif | |
+} | |
/* Load the message catalogs specified by FILENAME. If it is no valid | |
message catalog do nothing. */ | |
void | |
internal_function | |
-_nl_load_domain (domain_file) | |
+_nl_load_domain (domain_file, domainbinding) | |
struct loaded_l10nfile *domain_file; | |
+ struct binding *domainbinding; | |
{ | |
int fd; | |
size_t size; | |
+#ifdef _LIBC | |
+ struct stat64 st; | |
+#else | |
struct stat st; | |
+#endif | |
struct mo_file_header *data = (struct mo_file_header *) -1; | |
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ | |
- || defined _LIBC | |
int use_mmap = 0; | |
-#endif | |
struct loaded_domain *domain; | |
+ const char *nullentry; | |
domain_file->decided = 1; | |
domain_file->data = NULL; | |
+ /* Note that it would be useless to store domainbinding in domain_file | |
+ because domainbinding might be == NULL now but != NULL later (after | |
+ a call to bind_textdomain_codeset). */ | |
+ | |
/* If the record does not represent a valid locale the FILENAME | |
might be NULL. This can happen when according to the given | |
specification the locale file name is different for XPG and CEN | |
t@@ -85,28 +367,32 @@ _nl_load_domain (domain_file) | |
return; | |
/* Try to open the addressed file. */ | |
- fd = open (domain_file->filename, O_RDONLY); | |
+ fd = open (domain_file->filename, O_RDONLY | O_BINARY); | |
if (fd == -1) | |
return; | |
/* We must know about the size of the file. */ | |
- if (fstat (fd, &st) != 0 | |
- || (size = (size_t) st.st_size) != st.st_size | |
- || size < sizeof (struct mo_file_header)) | |
+ if ( | |
+#ifdef _LIBC | |
+ __builtin_expect (fstat64 (fd, &st) != 0, 0) | |
+#else | |
+ __builtin_expect (fstat (fd, &st) != 0, 0) | |
+#endif | |
+ || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0) | |
+ || __builtin_expect (size < sizeof (struct mo_file_header), 0)) | |
{ | |
/* Something went wrong. */ | |
close (fd); | |
return; | |
} | |
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ | |
- || defined _LIBC | |
+#ifdef HAVE_MMAP | |
/* Now we are ready to load the file. If mmap() is available we try | |
this first. If not available or it failed we try to load it. */ | |
data = (struct mo_file_header *) mmap (NULL, size, PROT_READ, | |
MAP_PRIVATE, fd, 0); | |
- if (data != (struct mo_file_header *) -1) | |
+ if (__builtin_expect (data != (struct mo_file_header *) -1, 1)) | |
{ | |
/* mmap() call was successful. */ | |
close (fd); | |
t@@ -130,12 +416,15 @@ _nl_load_domain (domain_file) | |
do | |
{ | |
long int nb = (long int) read (fd, read_ptr, to_read); | |
- if (nb == -1) | |
+ if (nb <= 0) | |
{ | |
+#ifdef EINTR | |
+ if (nb == -1 && errno == EINTR) | |
+ continue; | |
+#endif | |
close (fd); | |
return; | |
} | |
- | |
read_ptr += nb; | |
to_read -= nb; | |
} | |
t@@ -146,11 +435,11 @@ _nl_load_domain (domain_file) | |
/* Using the magic number we can test whether it really is a message | |
catalog file. */ | |
- if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED) | |
+ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED, | |
+ 0)) | |
{ | |
/* The magic number is wrong: not a message catalog file. */ | |
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ | |
- || defined _LIBC | |
+#ifdef HAVE_MMAP | |
if (use_mmap) | |
munmap ((caddr_t) data, size); | |
else | |
t@@ -159,17 +448,13 @@ _nl_load_domain (domain_file) | |
return; | |
} | |
- domain_file->data | |
- = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); | |
- if (domain_file->data == NULL) | |
+ domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); | |
+ if (domain == NULL) | |
return; | |
+ domain_file->data = domain; | |
- domain = (struct loaded_domain *) domain_file->data; | |
domain->data = (char *) data; | |
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ | |
- || defined _LIBC | |
domain->use_mmap = use_mmap; | |
-#endif | |
domain->mmap_size = size; | |
domain->must_swap = data->magic != _MAGIC; | |
t@@ -187,9 +472,8 @@ _nl_load_domain (domain_file) | |
((char *) data + W (domain->must_swap, data->hash_tab_offset)); | |
break; | |
default: | |
- /* This is an illegal revision. */ | |
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ | |
- || defined _LIBC | |
+ /* This is an invalid revision. */ | |
+#ifdef HAVE_MMAP | |
if (use_mmap) | |
munmap ((caddr_t) data, size); | |
else | |
t@@ -200,9 +484,62 @@ _nl_load_domain (domain_file) | |
return; | |
} | |
- /* Show that one domain is changed. This might make some cached | |
- translations invalid. */ | |
- ++_nl_msg_cat_cntr; | |
+ /* Now initialize the character set converter from the character set | |
+ the file is encoded with (found in the header entry) to the domain's | |
+ specified character set or the locale's character set. */ | |
+ nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding); | |
+ | |
+ /* Also look for a plural specification. */ | |
+ if (nullentry != NULL) | |
+ { | |
+ const char *plural; | |
+ const char *nplurals; | |
+ | |
+ plural = strstr (nullentry, "plural="); | |
+ nplurals = strstr (nullentry, "nplurals="); | |
+ if (plural == NULL || nplurals == NULL) | |
+ goto no_plural; | |
+ else | |
+ { | |
+ /* First get the number. */ | |
+ char *endp; | |
+ unsigned long int n; | |
+ struct parse_args args; | |
+ | |
+ nplurals += 9; | |
+ while (*nplurals != '\0' && isspace (*nplurals)) | |
+ ++nplurals; | |
+#if defined HAVE_STRTOUL || defined _LIBC | |
+ n = strtoul (nplurals, &endp, 10); | |
+#else | |
+ for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++) | |
+ n = n * 10 + (*endp - '0'); | |
+#endif | |
+ domain->nplurals = n; | |
+ if (nplurals == endp) | |
+ goto no_plural; | |
+ | |
+ /* Due to the restrictions bison imposes onto the interface of the | |
+ scanner function we have to put the input string and the result | |
+ passed up from the parser into the same structure which address | |
+ is passed down to the parser. */ | |
+ plural += 7; | |
+ args.cp = plural; | |
+ if (PLURAL_PARSE (&args) != 0) | |
+ goto no_plural; | |
+ domain->plural = args.res; | |
+ } | |
+ } | |
+ else | |
+ { | |
+ /* By default we are using the Germanic form: singular form only | |
+ for `one', the plural form otherwise. Yes, this is also what | |
+ English is using since English is a Germanic language. */ | |
+ no_plural: | |
+ INIT_GERMANIC_PLURAL (); | |
+ domain->plural = &germanic_plural; | |
+ domain->nplurals = 2; | |
+ } | |
} | |
t@@ -212,9 +549,16 @@ internal_function | |
_nl_unload_domain (domain) | |
struct loaded_domain *domain; | |
{ | |
+ if (domain->plural != &germanic_plural) | |
+ __gettext_free_exp (domain->plural); | |
+ | |
+ _nl_free_domain_conv (domain); | |
+ | |
+# ifdef _POSIX_MAPPED_FILES | |
if (domain->use_mmap) | |
munmap ((caddr_t) domain->data, domain->mmap_size); | |
else | |
+# endif /* _POSIX_MAPPED_FILES */ | |
free ((void *) domain->data); | |
free (domain); | |
diff --git a/intl/localcharset.c b/intl/localcharset.c | |
t@@ -0,0 +1,271 @@ | |
+/* Determine a canonical name for the current locale's character encoding. | |
+ | |
+ Copyright (C) 2000-2001 Free Software Foundation, Inc. | |
+ | |
+ This program is free software; you can redistribute it and/or modify it | |
+ under the terms of the GNU Library General Public License as published | |
+ by the Free Software Foundation; either version 2, or (at your option) | |
+ any later version. | |
+ | |
+ This program is distributed in the hope that it will be useful, | |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
+ Library General Public License for more details. | |
+ | |
+ You should have received a copy of the GNU Library General Public | |
+ License along with this program; if not, write to the Free Software | |
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | |
+ USA. */ | |
+ | |
+/* Written by Bruno Haible <[email protected]>. */ | |
+ | |
+#ifdef HAVE_CONFIG_H | |
+# include <config.h> | |
+#endif | |
+ | |
+#if HAVE_STDDEF_H | |
+# include <stddef.h> | |
+#endif | |
+ | |
+#include <stdio.h> | |
+#if HAVE_STRING_H | |
+# include <string.h> | |
+#else | |
+# include <strings.h> | |
+#endif | |
+#if HAVE_STDLIB_H | |
+# include <stdlib.h> | |
+#endif | |
+ | |
+#if defined _WIN32 || defined __WIN32__ | |
+# undef WIN32 /* avoid warning on mingw32 */ | |
+# define WIN32 | |
+#endif | |
+ | |
+#ifndef WIN32 | |
+# if HAVE_LANGINFO_CODESET | |
+# include <langinfo.h> | |
+# else | |
+# if HAVE_SETLOCALE | |
+# include <locale.h> | |
+# endif | |
+# endif | |
+#else /* WIN32 */ | |
+# define WIN32_LEAN_AND_MEAN | |
+# include <windows.h> | |
+#endif | |
+ | |
+#ifndef DIRECTORY_SEPARATOR | |
+# define DIRECTORY_SEPARATOR '/' | |
+#endif | |
+ | |
+#ifndef ISSLASH | |
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) | |
+#endif | |
+ | |
+/* The following static variable is declared 'volatile' to avoid a | |
+ possible multithread problem in the function get_charset_aliases. If we | |
+ are running in a threaded environment, and if two threads initialize | |
+ 'charset_aliases' simultaneously, both will produce the same value, | |
+ and everything will be ok if the two assignments to 'charset_aliases' | |
+ are atomic. But I don't know what will happen if the two assignments mix. … | |
+#if __STDC__ != 1 | |
+# define volatile /* empty */ | |
+#endif | |
+/* Pointer to the contents of the charset.alias file, if it has already been | |
+ read, else NULL. Its format is: | |
+ ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ | |
+static char * volatile charset_aliases; | |
+ | |
+/* Return a pointer to the contents of the charset.alias file. */ | |
+static const char * | |
+get_charset_aliases () | |
+{ | |
+ char *cp; | |
+ | |
+ cp = charset_aliases; | |
+ if (cp == NULL) | |
+ { | |
+#ifndef WIN32 | |
+ FILE *fp; | |
+ const char *dir = LIBDIR; | |
+ const char *base = "charset.alias"; | |
+ char *file_name; | |
+ | |
+ /* Concatenate dir and base into freshly allocated file_name. */ | |
+ { | |
+ size_t dir_len = strlen (dir); | |
+ size_t base_len = strlen (base); | |
+ int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); | |
+ file_name = (char *) malloc (dir_len + add_slash + base_len + 1); | |
+ if (file_name != NULL) | |
+ { | |
+ memcpy (file_name, dir, dir_len); | |
+ if (add_slash) | |
+ file_name[dir_len] = DIRECTORY_SEPARATOR; | |
+ memcpy (file_name + dir_len + add_slash, base, base_len + 1); | |
+ } | |
+ } | |
+ | |
+ if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) | |
+ /* Out of memory or file not found, treat it as empty. */ | |
+ cp = ""; | |
+ else | |
+ { | |
+ /* Parse the file's contents. */ | |
+ int c; | |
+ char buf1[50+1]; | |
+ char buf2[50+1]; | |
+ char *res_ptr = NULL; | |
+ size_t res_size = 0; | |
+ size_t l1, l2; | |
+ | |
+ for (;;) | |
+ { | |
+ c = getc (fp); | |
+ if (c == EOF) | |
+ break; | |
+ if (c == '\n' || c == ' ' || c == '\t') | |
+ continue; | |
+ if (c == '#') | |
+ { | |
+ /* Skip comment, to end of line. */ | |
+ do | |
+ c = getc (fp); | |
+ while (!(c == EOF || c == '\n')); | |
+ if (c == EOF) | |
+ break; | |
+ continue; | |
+ } | |
+ ungetc (c, fp); | |
+ if (fscanf(fp, "%50s %50s", buf1, buf2) < 2) | |
+ break; | |
+ l1 = strlen (buf1); | |
+ l2 = strlen (buf2); | |
+ if (res_size == 0) | |
+ { | |
+ res_size = l1 + 1 + l2 + 1; | |
+ res_ptr = malloc (res_size + 1); | |
+ } | |
+ else | |
+ { | |
+ res_size += l1 + 1 + l2 + 1; | |
+ res_ptr = realloc (res_ptr, res_size + 1); | |
+ } | |
+ if (res_ptr == NULL) | |
+ { | |
+ /* Out of memory. */ | |
+ res_size = 0; | |
+ break; | |
+ } | |
+ strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); | |
+ strcpy (res_ptr + res_size - (l2 + 1), buf2); | |
+ } | |
+ fclose (fp); | |
+ if (res_size == 0) | |
+ cp = ""; | |
+ else | |
+ { | |
+ *(res_ptr + res_size) = '\0'; | |
+ cp = res_ptr; | |
+ } | |
+ } | |
+ | |
+ if (file_name != NULL) | |
+ free (file_name); | |
+ | |
+#else /* WIN32 */ | |
+ | |
+ /* To avoid the troubles of installing a separate file in the same | |
+ directory as the DLL and of retrieving the DLL's directory at | |
+ runtime, simply inline the aliases here. */ | |
+ | |
+ cp = "CP936" "\0" "GBK" "\0" | |
+ "CP1361" "\0" "JOHAB" "\0"; | |
+#endif | |
+ | |
+ charset_aliases = cp; | |
+ } | |
+ | |
+ return cp; | |
+} | |
+ | |
+/* Determine the current locale's character encoding, and canonicalize it | |
+ into one of the canonical names listed in config.charset. | |
+ The result must not be freed; it is statically allocated. | |
+ If the canonical name cannot be determined, the result is a non-canonical | |
+ name. */ | |
+ | |
+#ifdef STATIC | |
+STATIC | |
+#endif | |
+const char * | |
+locale_charset () | |
+{ | |
+ const char *codeset; | |
+ const char *aliases; | |
+ | |
+#ifndef WIN32 | |
+ | |
+# if HAVE_LANGINFO_CODESET | |
+ | |
+ /* Most systems support nl_langinfo (CODESET) nowadays. */ | |
+ codeset = nl_langinfo (CODESET); | |
+ | |
+# else | |
+ | |
+ /* On old systems which lack it, use setlocale or getenv. */ | |
+ const char *locale = NULL; | |
+ | |
+ /* But most old systems don't have a complete set of locales. Some | |
+ (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't | |
+ use setlocale here; it would return "C" when it doesn't support the | |
+ locale name the user has set. */ | |
+# if HAVE_SETLOCALE && 0 | |
+ locale = setlocale (LC_CTYPE, NULL); | |
+# endif | |
+ if (locale == NULL || locale[0] == '\0') | |
+ { | |
+ locale = getenv ("LC_ALL"); | |
+ if (locale == NULL || locale[0] == '\0') | |
+ { | |
+ locale = getenv ("LC_CTYPE"); | |
+ if (locale == NULL || locale[0] == '\0') | |
+ locale = getenv ("LANG"); | |
+ } | |
+ } | |
+ | |
+ /* On some old systems, one used to set locale = "iso8859_1". On others, | |
+ you set it to "language_COUNTRY.charset". In any case, we resolve it | |
+ through the charset.alias file. */ | |
+ codeset = locale; | |
+ | |
+# endif | |
+ | |
+#else /* WIN32 */ | |
+ | |
+ static char buf[2 + 10 + 1]; | |
+ | |
+ /* Win32 has a function returning the locale's codepage as a number. */ | |
+ sprintf (buf, "CP%u", GetACP ()); | |
+ codeset = buf; | |
+ | |
+#endif | |
+ | |
+ if (codeset == NULL) | |
+ /* The canonical name cannot be determined. */ | |
+ codeset = ""; | |
+ | |
+ /* Resolve alias. */ | |
+ for (aliases = get_charset_aliases (); | |
+ *aliases != '\0'; | |
+ aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) | |
+ if (strcmp (codeset, aliases) == 0 | |
+ || (aliases[0] == '*' && aliases[1] == '\0')) | |
+ { | |
+ codeset = aliases + strlen (aliases) + 1; | |
+ break; | |
+ } | |
+ | |
+ return codeset; | |
+} | |
diff --git a/intl/locale.alias b/intl/locale.alias | |
t@@ -0,0 +1,77 @@ | |
+# Locale name alias data base. | |
+# Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. | |
+# | |
+# This program is free software; you can redistribute it and/or modify | |
+# it under the terms of the GNU General Public License as published by | |
+# the Free Software Foundation; either version 2, or (at your option) | |
+# any later version. | |
+# | |
+# This program is distributed in the hope that it will be useful, | |
+# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+# GNU General Public License for more details. | |
+# | |
+# You should have received a copy of the GNU General Public License | |
+# along with this program; if not, write to the Free Software | |
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
+ | |
+# The format of this file is the same as for the corresponding file of | |
+# the X Window System, which normally can be found in | |
+# /usr/lib/X11/locale/locale.alias | |
+# A single line contains two fields: an alias and a substitution value. | |
+# All entries are case independent. | |
+ | |
+# Note: This file is far from being complete. If you have a value for | |
+# your own site which you think might be useful for others too, share | |
+# it with the rest of us. Send it using the `glibcbug' script to | |
+# [email protected]. | |
+ | |
+# Packages using this file: | |
+ | |
+bokmal no_NO.ISO-8859-1 | |
+bokm�l no_NO.ISO-8859-1 | |
+catalan ca_ES.ISO-8859-1 | |
+croatian hr_HR.ISO-8859-2 | |
+czech cs_CZ.ISO-8859-2 | |
+danish da_DK.ISO-8859-1 | |
+dansk da_DK.ISO-8859-1 | |
+deutsch de_DE.ISO-8859-1 | |
+dutch nl_NL.ISO-8859-1 | |
+eesti et_EE.ISO-8859-1 | |
+estonian et_EE.ISO-8859-1 | |
+finnish fi_FI.ISO-8859-1 | |
+fran�ais fr_FR.ISO-8859-1 | |
+french fr_FR.ISO-8859-1 | |
+galego gl_ES.ISO-8859-1 | |
+galician gl_ES.ISO-8859-1 | |
+german de_DE.ISO-8859-1 | |
+greek el_GR.ISO-8859-7 | |
+hebrew iw_IL.ISO-8859-8 | |
+hrvatski hr_HR.ISO-8859-2 | |
+hungarian hu_HU.ISO-8859-2 | |
+icelandic is_IS.ISO-8859-1 | |
+italian it_IT.ISO-8859-1 | |
+japanese ja_JP.eucJP | |
+japanese.euc ja_JP.eucJP | |
+ja_JP ja_JP.eucJP | |
+ja_JP.ujis ja_JP.eucJP | |
+japanese.sjis ja_JP.SJIS | |
+korean ko_KR.eucKR | |
+korean.euc ko_KR.eucKR | |
+ko_KR ko_KR.eucKR | |
+lithuanian lt_LT.ISO-8859-13 | |
+nb_NO no_NO.ISO-8859-1 | |
+nb_NO.ISO-8859-1 no_NO.ISO-8859-1 | |
+norwegian no_NO.ISO-8859-1 | |
+nynorsk nn_NO.ISO-8859-1 | |
+polish pl_PL.ISO-8859-2 | |
+portuguese pt_PT.ISO-8859-1 | |
+romanian ro_RO.ISO-8859-2 | |
+russian ru_RU.ISO-8859-5 | |
+slovak sk_SK.ISO-8859-2 | |
+slovene sl_SI.ISO-8859-2 | |
+slovenian sl_SI.ISO-8859-2 | |
+spanish es_ES.ISO-8859-1 | |
+swedish sv_SE.ISO-8859-1 | |
+thai th_TH.TIS-620 | |
+turkish tr_TR.ISO-8859-9 | |
diff --git a/intl/localealias.c b/intl/localealias.c | |
t@@ -1,6 +1,5 @@ | |
/* Handle aliases for locale names. | |
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
- Written by Ulrich Drepper <[email protected]>, 1995. | |
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -16,6 +15,13 @@ | |
along with this program; if not, write to the Free Software Foundation, | |
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+/* Tell glibc's <string.h> to provide a prototype for mempcpy(). | |
+ This must come before <config.h> because <config.h> may include | |
+ <features.h>, and once <features.h> has been included, it's too late. */ | |
+#ifndef _GNU_SOURCE | |
+# define _GNU_SOURCE 1 | |
+#endif | |
+ | |
#ifdef HAVE_CONFIG_H | |
# include <config.h> | |
#endif | |
t@@ -41,35 +47,15 @@ char *alloca (); | |
# endif | |
#endif | |
-#if defined STDC_HEADERS || defined _LIBC | |
-# include <stdlib.h> | |
-#else | |
-char *getenv (); | |
-# ifdef HAVE_MALLOC_H | |
-# include <malloc.h> | |
-# else | |
-void free (); | |
-# endif | |
-#endif | |
+#include <stdlib.h> | |
-#if defined HAVE_STRING_H || defined _LIBC | |
-# ifndef _GNU_SOURCE | |
-# define _GNU_SOURCE 1 | |
-# endif | |
-# include <string.h> | |
-#else | |
-# include <strings.h> | |
-# ifndef memcpy | |
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) | |
-# endif | |
-#endif | |
+#include <string.h> | |
#if !HAVE_STRCHR && !defined _LIBC | |
# ifndef strchr | |
# define strchr index | |
# endif | |
#endif | |
-#include "gettext.h" | |
#include "gettextP.h" | |
/* @@ end of prolog @@ */ | |
t@@ -80,7 +66,9 @@ void free (); | |
file and the name space must not be polluted. */ | |
# define strcasecmp __strcasecmp | |
-# define mempcpy __mempcpy | |
+# ifndef mempcpy | |
+# define mempcpy __mempcpy | |
+# endif | |
# define HAVE_MEMPCPY 1 | |
/* We need locking here since we can be called from different places. */ | |
t@@ -89,41 +77,27 @@ void free (); | |
__libc_lock_define_initialized (static, lock); | |
#endif | |
+#ifndef internal_function | |
+# define internal_function | |
+#endif | |
-/* For those loosing systems which don't have `alloca' we have to add | |
+/* For those losing systems which don't have `alloca' we have to add | |
some additional code emulating it. */ | |
#ifdef HAVE_ALLOCA | |
-/* Nothing has to be done. */ | |
-# define ADD_BLOCK(list, address) /* nothing */ | |
-# define FREE_BLOCKS(list) /* nothing */ | |
+# define freea(p) /* nothing */ | |
#else | |
-struct block_list | |
-{ | |
- void *address; | |
- struct block_list *next; | |
-}; | |
-# define ADD_BLOCK(list, addr) … | |
- do { … | |
- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ | |
- /* If we cannot get a free block we cannot add the new element to … | |
- the list. */ … | |
- if (newp != NULL) { … | |
- newp->address = (addr); … | |
- newp->next = (list); … | |
- (list) = newp; … | |
- } … | |
- } while (0) | |
-# define FREE_BLOCKS(list) … | |
- do { … | |
- while (list != NULL) { … | |
- struct block_list *old = list; … | |
- list = list->next; \ | |
- free (old); … | |
- } … | |
- } while (0) | |
-# undef alloca | |
-# define alloca(size) (malloc (size)) | |
-#endif /* have alloca */ | |
+# define alloca(n) malloc (n) | |
+# define freea(p) free (p) | |
+#endif | |
+ | |
+#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED | |
+# undef fgets | |
+# define fgets(buf, len, s) fgets_unlocked (buf, len, s) | |
+#endif | |
+#if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED | |
+# undef feof | |
+# define feof(s) feof_unlocked (s) | |
+#endif | |
struct alias_map | |
t@@ -133,18 +107,18 @@ struct alias_map | |
}; | |
-static char *string_space = NULL; | |
-static size_t string_space_act = 0; | |
-static size_t string_space_max = 0; | |
+static char *string_space; | |
+static size_t string_space_act; | |
+static size_t string_space_max; | |
static struct alias_map *map; | |
-static size_t nmap = 0; | |
-static size_t maxmap = 0; | |
+static size_t nmap; | |
+static size_t maxmap; | |
/* Prototypes for local functions. */ | |
static size_t read_alias_file PARAMS ((const char *fname, int fname_len)) | |
internal_function; | |
-static void extend_alias_table PARAMS ((void)); | |
+static int extend_alias_table PARAMS ((void)); | |
static int alias_compare PARAMS ((const struct alias_map *map1, | |
const struct alias_map *map2)); | |
t@@ -190,11 +164,12 @@ _nl_expand_alias (name) | |
{ | |
const char *start; | |
- while (locale_alias_path[0] == ':') | |
+ while (locale_alias_path[0] == PATH_SEPARATOR) | |
++locale_alias_path; | |
start = locale_alias_path; | |
- while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':') | |
+ while (locale_alias_path[0] != '\0' | |
+ && locale_alias_path[0] != PATH_SEPARATOR) | |
++locale_alias_path; | |
if (start < locale_alias_path) | |
t@@ -217,16 +192,12 @@ read_alias_file (fname, fname_len) | |
const char *fname; | |
int fname_len; | |
{ | |
-#ifndef HAVE_ALLOCA | |
- struct block_list *block_list = NULL; | |
-#endif | |
FILE *fp; | |
char *full_fname; | |
size_t added; | |
static const char aliasfile[] = "/locale.alias"; | |
full_fname = (char *) alloca (fname_len + sizeof aliasfile); | |
- ADD_BLOCK (block_list, full_fname); | |
#ifdef HAVE_MEMPCPY | |
mempcpy (mempcpy (full_fname, fname, fname_len), | |
aliasfile, sizeof aliasfile); | |
t@@ -236,11 +207,9 @@ read_alias_file (fname, fname_len) | |
#endif | |
fp = fopen (full_fname, "r"); | |
+ freea (full_fname); | |
if (fp == NULL) | |
- { | |
- FREE_BLOCKS (block_list); | |
- return 0; | |
- } | |
+ return 0; | |
added = 0; | |
while (!feof (fp)) | |
t@@ -250,10 +219,10 @@ read_alias_file (fname, fname_len) | |
b) these fields must be usable as file names and so must not | |
be that long | |
*/ | |
- unsigned char buf[BUFSIZ]; | |
- unsigned char *alias; | |
- unsigned char *value; | |
- unsigned char *cp; | |
+ char buf[BUFSIZ]; | |
+ char *alias; | |
+ char *value; | |
+ char *cp; | |
if (fgets (buf, sizeof buf, fp) == NULL) | |
/* EOF reached. */ | |
t@@ -312,7 +281,8 @@ read_alias_file (fname, fname_len) | |
*cp++ = '\0'; | |
if (nmap >= maxmap) | |
- extend_alias_table (); | |
+ if (__builtin_expect (extend_alias_table (), 0)) | |
+ return added; | |
alias_len = strlen (alias) + 1; | |
value_len = strlen (value) + 1; | |
t@@ -325,10 +295,19 @@ read_alias_file (fname, fname_len) | |
? alias_len + value_len : 1024)); | |
char *new_pool = (char *) realloc (string_space, new_size); | |
if (new_pool == NULL) | |
+ return added; | |
+ | |
+ if (__builtin_expect (string_space != new_pool, 0)) | |
{ | |
- FREE_BLOCKS (block_list); | |
- return added; | |
+ size_t i; | |
+ | |
+ for (i = 0; i < nmap; i++) | |
+ { | |
+ map[i].alias += new_pool - string_space; | |
+ map[i].value += new_pool - string_space; | |
+ } | |
} | |
+ | |
string_space = new_pool; | |
string_space_max = new_size; | |
} | |
t@@ -355,12 +334,11 @@ read_alias_file (fname, fname_len) | |
qsort (map, nmap, sizeof (struct alias_map), | |
(int (*) PARAMS ((const void *, const void *))) alias_compare); | |
- FREE_BLOCKS (block_list); | |
return added; | |
} | |
-static void | |
+static int | |
extend_alias_table () | |
{ | |
size_t new_size; | |
t@@ -371,10 +349,11 @@ extend_alias_table () | |
* sizeof (struct alias_map))); | |
if (new_map == NULL) | |
/* Simply don't extend: we don't have any more core. */ | |
- return; | |
+ return -1; | |
map = new_map; | |
maxmap = new_size; | |
+ return 0; | |
} | |
diff --git a/intl/ngettext.c b/intl/ngettext.c | |
t@@ -0,0 +1,67 @@ | |
+/* Implementation of ngettext(3) function. | |
+ Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. | |
+ | |
+ This program is free software; you can redistribute it and/or modify | |
+ it under the terms of the GNU General Public License as published by | |
+ the Free Software Foundation; either version 2, or (at your option) | |
+ any later version. | |
+ | |
+ This program is distributed in the hope that it will be useful, | |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+ GNU General Public License for more details. | |
+ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software Foundation, | |
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+ | |
+#ifdef HAVE_CONFIG_H | |
+# include <config.h> | |
+#endif | |
+ | |
+#ifdef _LIBC | |
+# define __need_NULL | |
+# include <stddef.h> | |
+#else | |
+# include <stdlib.h> /* Just for NULL. */ | |
+#endif | |
+ | |
+#include "gettextP.h" | |
+#ifdef _LIBC | |
+# include <libintl.h> | |
+#else | |
+# include "libgnuintl.h" | |
+#endif | |
+ | |
+#include <locale.h> | |
+ | |
+/* @@ end of prolog @@ */ | |
+ | |
+/* Names for the libintl functions are a problem. They must not clash | |
+ with existing names and they should follow ANSI C. But this source | |
+ code is also used in GNU C Library where the names have a __ | |
+ prefix. So we have to make a difference here. */ | |
+#ifdef _LIBC | |
+# define NGETTEXT __ngettext | |
+# define DCNGETTEXT __dcngettext | |
+#else | |
+# define NGETTEXT ngettext__ | |
+# define DCNGETTEXT dcngettext__ | |
+#endif | |
+ | |
+/* Look up MSGID in the current default message catalog for the current | |
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default | |
+ text). */ | |
+char * | |
+NGETTEXT (msgid1, msgid2, n) | |
+ const char *msgid1; | |
+ const char *msgid2; | |
+ unsigned long int n; | |
+{ | |
+ return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES); | |
+} | |
+ | |
+#ifdef _LIBC | |
+/* Alias for function name in GNU C Library. */ | |
+weak_alias (__ngettext, ngettext); | |
+#endif | |
diff --git a/intl/plural.c b/intl/plural.c | |
t@@ -0,0 +1,1325 @@ | |
+ | |
+/* A Bison parser, made from plural.y | |
+ by GNU Bison version 1.28 */ | |
+ | |
+#define YYBISON 1 /* Identify Bison output. */ | |
+ | |
+#define yyparse __gettextparse | |
+#define yylex __gettextlex | |
+#define yyerror __gettexterror | |
+#define yylval __gettextlval | |
+#define yychar __gettextchar | |
+#define yydebug __gettextdebug | |
+#define yynerrs __gettextnerrs | |
+#define EQUOP2 257 | |
+#define CMPOP2 258 | |
+#define ADDOP2 259 | |
+#define MULOP2 260 | |
+#define NUMBER 261 | |
+ | |
+#line 1 "plural.y" | |
+ | |
+/* Expression parsing for plural form selection. | |
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc. | |
+ Written by Ulrich Drepper <[email protected]>, 2000. | |
+ | |
+ This program is free software; you can redistribute it and/or modify | |
+ it under the terms of the GNU General Public License as published by | |
+ the Free Software Foundation; either version 2, or (at your option) | |
+ any later version. | |
+ | |
+ This program is distributed in the hope that it will be useful, | |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+ GNU General Public License for more details. | |
+ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software Foundation, | |
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+ | |
+/* The bison generated parser uses alloca. AIX 3 forces us to put this | |
+ declaration at the beginning of the file. The declaration in bison's | |
+ skeleton file comes too late. This must come before <config.h> | |
+ because <config.h> may include arbitrary system headers. */ | |
+#if defined _AIX && !defined __GNUC__ | |
+ #pragma alloca | |
+#endif | |
+ | |
+#ifdef HAVE_CONFIG_H | |
+# include <config.h> | |
+#endif | |
+ | |
+#include <stdlib.h> | |
+#include "gettextP.h" | |
+ | |
+/* Names for the libintl functions are a problem. They must not clash | |
+ with existing names and they should follow ANSI C. But this source | |
+ code is also used in GNU C Library where the names have a __ | |
+ prefix. So we have to make a difference here. */ | |
+#ifdef _LIBC | |
+# define FREE_EXPRESSION __gettext_free_exp | |
+#else | |
+# define FREE_EXPRESSION gettext_free_exp__ | |
+# define __gettextparse gettextparse__ | |
+#endif | |
+ | |
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp | |
+#define YYPARSE_PARAM arg | |
+ | |
+#line 52 "plural.y" | |
+typedef union { | |
+ unsigned long int num; | |
+ enum operator op; | |
+ struct expression *exp; | |
+} YYSTYPE; | |
+#line 58 "plural.y" | |
+ | |
+/* Prototypes for local functions. */ | |
+static struct expression *new_exp PARAMS ((int nargs, enum operator op, | |
+ struct expression * const *args)); | |
+static inline struct expression *new_exp_0 PARAMS ((enum operator op)); | |
+static inline struct expression *new_exp_1 PARAMS ((enum operator op, | |
+ struct expression *right)); | |
+static struct expression *new_exp_2 PARAMS ((enum operator op, | |
+ struct expression *left, | |
+ struct expression *right)); | |
+static inline struct expression *new_exp_3 PARAMS ((enum operator op, | |
+ struct expression *bexp, | |
+ struct expression *tbranch, | |
+ struct expression *fbranch)… | |
+static int yylex PARAMS ((YYSTYPE *lval, const char **pexp)); | |
+static void yyerror PARAMS ((const char *str)); | |
+ | |
+/* Allocation of expressions. */ | |
+ | |
+static struct expression * | |
+new_exp (nargs, op, args) | |
+ int nargs; | |
+ enum operator op; | |
+ struct expression * const *args; | |
+{ | |
+ int i; | |
+ struct expression *newp; | |
+ | |
+ /* If any of the argument could not be malloc'ed, just return NULL. */ | |
+ for (i = nargs - 1; i >= 0; i--) | |
+ if (args[i] == NULL) | |
+ goto fail; | |
+ | |
+ /* Allocate a new expression. */ | |
+ newp = (struct expression *) malloc (sizeof (*newp)); | |
+ if (newp != NULL) | |
+ { | |
+ newp->nargs = nargs; | |
+ newp->operation = op; | |
+ for (i = nargs - 1; i >= 0; i--) | |
+ newp->val.args[i] = args[i]; | |
+ return newp; | |
+ } | |
+ | |
+ fail: | |
+ for (i = nargs - 1; i >= 0; i--) | |
+ FREE_EXPRESSION (args[i]); | |
+ | |
+ return NULL; | |
+} | |
+ | |
+static inline struct expression * | |
+new_exp_0 (op) | |
+ enum operator op; | |
+{ | |
+ return new_exp (0, op, NULL); | |
+} | |
+ | |
+static inline struct expression * | |
+new_exp_1 (op, right) | |
+ enum operator op; | |
+ struct expression *right; | |
+{ | |
+ struct expression *args[1]; | |
+ | |
+ args[0] = right; | |
+ return new_exp (1, op, args); | |
+} | |
+ | |
+static struct expression * | |
+new_exp_2 (op, left, right) | |
+ enum operator op; | |
+ struct expression *left; | |
+ struct expression *right; | |
+{ | |
+ struct expression *args[2]; | |
+ | |
+ args[0] = left; | |
+ args[1] = right; | |
+ return new_exp (2, op, args); | |
+} | |
+ | |
+static inline struct expression * | |
+new_exp_3 (op, bexp, tbranch, fbranch) | |
+ enum operator op; | |
+ struct expression *bexp; | |
+ struct expression *tbranch; | |
+ struct expression *fbranch; | |
+{ | |
+ struct expression *args[3]; | |
+ | |
+ args[0] = bexp; | |
+ args[1] = tbranch; | |
+ args[2] = fbranch; | |
+ return new_exp (3, op, args); | |
+} | |
+ | |
+#include <stdio.h> | |
+ | |
+#ifndef __cplusplus | |
+#ifndef __STDC__ | |
+#define const | |
+#endif | |
+#endif | |
+ | |
+ | |
+ | |
+#define YYFINAL 27 | |
+#define YYFLAG -32768 | |
+#define YYNTBASE 16 | |
+ | |
+#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18) | |
+ | |
+static const char yytranslate[] = { 0, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 10, 2, 2, 2, 2, 5, 2, 14, | |
+ 15, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 12, 2, 2, | |
+ 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 13, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
+ 2, 2, 2, 2, 2, 1, 6, 7, 8, 9, | |
+ 11 | |
+}; | |
+ | |
+#if YYDEBUG != 0 | |
+static const short yyprhs[] = { 0, | |
+ 0, 2, 8, 12, 16, 20, 24, 28, 32, 35, | |
+ 37, 39 | |
+}; | |
+ | |
+static const short yyrhs[] = { 17, | |
+ 0, 17, 3, 17, 12, 17, 0, 17, 4, 17, | |
+ 0, 17, 5, 17, 0, 17, 6, 17, 0, 17, | |
+ 7, 17, 0, 17, 8, 17, 0, 17, 9, 17, | |
+ 0, 10, 17, 0, 13, 0, 11, 0, 14, 17, | |
+ 15, 0 | |
+}; | |
+ | |
+#endif | |
+ | |
+#if YYDEBUG != 0 | |
+static const short yyrline[] = { 0, | |
+ 177, 185, 189, 193, 197, 201, 205, 209, 213, 217, | |
+ 221, 226 | |
+}; | |
+#endif | |
+ | |
+ | |
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) | |
+ | |
+static const char * const yytname[] = { "$","error","$undefined.","'?'","'|'… | |
+"'&'","EQUOP2","CMPOP2","ADDOP2","MULOP2","'!'","NUMBER","':'","'n'","'('","')… | |
+"start","exp", NULL | |
+}; | |
+#endif | |
+ | |
+static const short yyr1[] = { 0, | |
+ 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, | |
+ 17, 17 | |
+}; | |
+ | |
+static const short yyr2[] = { 0, | |
+ 1, 5, 3, 3, 3, 3, 3, 3, 2, 1, | |
+ 1, 3 | |
+}; | |
+ | |
+static const short yydefact[] = { 0, | |
+ 0, 11, 10, 0, 1, 9, 0, 0, 0, 0, | |
+ 0, 0, 0, 0, 12, 0, 3, 4, 5, 6, | |
+ 7, 8, 0, 2, 0, 0, 0 | |
+}; | |
+ | |
+static const short yydefgoto[] = { 25, | |
+ 5 | |
+}; | |
+ | |
+static const short yypact[] = { -9, | |
+ -9,-32768,-32768, -9, 34,-32768, 11, -9, -9, -9, | |
+ -9, -9, -9, -9,-32768, 24, 39, 43, 16, 26, | |
+ -3,-32768, -9, 34, 21, 53,-32768 | |
+}; | |
+ | |
+static const short yypgoto[] = {-32768, | |
+ -1 | |
+}; | |
+ | |
+ | |
+#define YYLAST 53 | |
+ | |
+ | |
+static const short yytable[] = { 6, | |
+ 1, 2, 7, 3, 4, 14, 16, 17, 18, 19, | |
+ 20, 21, 22, 8, 9, 10, 11, 12, 13, 14, | |
+ 26, 24, 12, 13, 14, 15, 8, 9, 10, 11, | |
+ 12, 13, 14, 13, 14, 23, 8, 9, 10, 11, | |
+ 12, 13, 14, 10, 11, 12, 13, 14, 11, 12, | |
+ 13, 14, 27 | |
+}; | |
+ | |
+static const short yycheck[] = { 1, | |
+ 10, 11, 4, 13, 14, 9, 8, 9, 10, 11, | |
+ 12, 13, 14, 3, 4, 5, 6, 7, 8, 9, | |
+ 0, 23, 7, 8, 9, 15, 3, 4, 5, 6, | |
+ 7, 8, 9, 8, 9, 12, 3, 4, 5, 6, | |
+ 7, 8, 9, 5, 6, 7, 8, 9, 6, 7, | |
+ 8, 9, 0 | |
+}; | |
+#define YYPURE 1 | |
+ | |
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ | |
+#line 3 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" | |
+/* This file comes from bison-1.28. */ | |
+ | |
+/* Skeleton output parser for bison, | |
+ Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. | |
+ | |
+ This program is free software; you can redistribute it and/or modify | |
+ it under the terms of the GNU General Public License as published by | |
+ the Free Software Foundation; either version 2, or (at your option) | |
+ any later version. | |
+ | |
+ This program is distributed in the hope that it will be useful, | |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+ GNU General Public License for more details. | |
+ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software | |
+ Foundation, Inc., 59 Temple Place - Suite 330, | |
+ Boston, MA 02111-1307, USA. */ | |
+ | |
+/* As a special exception, when this file is copied by Bison into a | |
+ Bison output file, you may use that output file without restriction. | |
+ This special exception was added by the Free Software Foundation | |
+ in version 1.24 of Bison. */ | |
+ | |
+/* This is the parser code that is written into each bison parser | |
+ when the %semantic_parser declaration is not specified in the grammar. | |
+ It was written by Richard Stallman by simplifying the hairy parser | |
+ used when %semantic_parser is specified. */ | |
+ | |
+#ifndef YYSTACK_USE_ALLOCA | |
+#ifdef alloca | |
+#define YYSTACK_USE_ALLOCA | |
+#else /* alloca not defined */ | |
+#ifdef __GNUC__ | |
+#define YYSTACK_USE_ALLOCA | |
+#define alloca __builtin_alloca | |
+#else /* not GNU C. */ | |
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined… | |
+#define YYSTACK_USE_ALLOCA | |
+#include <alloca.h> | |
+#else /* not sparc */ | |
+/* We think this test detects Watcom and Microsoft C. */ | |
+/* This used to test MSDOS, but that is a bad idea | |
+ since that symbol is in the user namespace. */ | |
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) | |
+#if 0 /* No need for malloc.h, which pollutes the namespace; | |
+ instead, just don't use alloca. */ | |
+#include <malloc.h> | |
+#endif | |
+#else /* not MSDOS, or __TURBOC__ */ | |
+#if defined(_AIX) | |
+/* I don't know what this was needed for, but it pollutes the namespace. | |
+ So I turned it off. rms, 2 May 1997. */ | |
+/* #include <malloc.h> */ | |
+ #pragma alloca | |
+#define YYSTACK_USE_ALLOCA | |
+#else /* not MSDOS, or __TURBOC__, or _AIX */ | |
+#if 0 | |
+#ifdef __hpux /* [email protected] says this works for HPUX 9.05 and up, | |
+ and on HPUX 10. Eventually we can turn this on. */ | |
+#define YYSTACK_USE_ALLOCA | |
+#define alloca __builtin_alloca | |
+#endif /* __hpux */ | |
+#endif | |
+#endif /* not _AIX */ | |
+#endif /* not MSDOS, or __TURBOC__ */ | |
+#endif /* not sparc */ | |
+#endif /* not GNU C */ | |
+#endif /* alloca not defined */ | |
+#endif /* YYSTACK_USE_ALLOCA not defined */ | |
+ | |
+#ifdef YYSTACK_USE_ALLOCA | |
+#define YYSTACK_ALLOC alloca | |
+#else | |
+#define YYSTACK_ALLOC malloc | |
+#endif | |
+ | |
+/* Note: there must be only one dollar sign in this file. | |
+ It is replaced by the list of actions, each action | |
+ as one case of the switch. */ | |
+ | |
+#define yyerrok (yyerrstatus = 0) | |
+#define yyclearin (yychar = YYEMPTY) | |
+#define YYEMPTY -2 | |
+#define YYEOF 0 | |
+#define YYACCEPT goto yyacceptlab | |
+#define YYABORT goto yyabortlab | |
+#define YYERROR goto yyerrlab1 | |
+/* Like YYERROR except do call yyerror. | |
+ This remains here temporarily to ease the | |
+ transition to the new meaning of YYERROR, for GCC. | |
+ Once GCC version 2 has supplanted version 1, this can go. */ | |
+#define YYFAIL goto yyerrlab | |
+#define YYRECOVERING() (!!yyerrstatus) | |
+#define YYBACKUP(token, value) \ | |
+do \ | |
+ if (yychar == YYEMPTY && yylen == 1) \ | |
+ { yychar = (token), yylval = (value); \ | |
+ yychar1 = YYTRANSLATE (yychar); \ | |
+ YYPOPSTACK; \ | |
+ goto yybackup; \ | |
+ } \ | |
+ else \ | |
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \ | |
+while (0) | |
+ | |
+#define YYTERROR 1 | |
+#define YYERRCODE 256 | |
+ | |
+#ifndef YYPURE | |
+#define YYLEX yylex() | |
+#endif | |
+ | |
+#ifdef YYPURE | |
+#ifdef YYLSP_NEEDED | |
+#ifdef YYLEX_PARAM | |
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) | |
+#else | |
+#define YYLEX yylex(&yylval, &yylloc) | |
+#endif | |
+#else /* not YYLSP_NEEDED */ | |
+#ifdef YYLEX_PARAM | |
+#define YYLEX yylex(&yylval, YYLEX_PARAM) | |
+#else | |
+#define YYLEX yylex(&yylval) | |
+#endif | |
+#endif /* not YYLSP_NEEDED */ | |
+#endif | |
+ | |
+/* If nonreentrant, generate the variables here */ | |
+ | |
+#ifndef YYPURE | |
+ | |
+int yychar; /* the lookahead symbol … | |
+YYSTYPE yylval; /* the semantic value of the … | |
+ /* lookahead symbol */ | |
+ | |
+#ifdef YYLSP_NEEDED | |
+YYLTYPE yylloc; /* location data for the lookahead … | |
+ /* symbol */ | |
+#endif | |
+ | |
+int yynerrs; /* number of parse errors so far */ | |
+#endif /* not YYPURE */ | |
+ | |
+#if YYDEBUG != 0 | |
+int yydebug; /* nonzero means print parse trace … | |
+/* Since this is uninitialized, it does not stop multiple parsers | |
+ from coexisting. */ | |
+#endif | |
+ | |
+/* YYINITDEPTH indicates the initial size of the parser's stacks */ | |
+ | |
+#ifndef YYINITDEPTH | |
+#define YYINITDEPTH 200 | |
+#endif | |
+ | |
+/* YYMAXDEPTH is the maximum size the stacks can grow to | |
+ (effective only if the built-in stack extension method is used). */ | |
+ | |
+#if YYMAXDEPTH == 0 | |
+#undef YYMAXDEPTH | |
+#endif | |
+ | |
+#ifndef YYMAXDEPTH | |
+#define YYMAXDEPTH 10000 | |
+#endif | |
+ | |
+/* Define __yy_memcpy. Note that the size argument | |
+ should be passed with type unsigned int, because that is what the non-GCC | |
+ definitions require. With GCC, __builtin_memcpy takes an arg | |
+ of type size_t, but it can handle unsigned int. */ | |
+ | |
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ | |
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) | |
+#else /* not GNU C or C++ */ | |
+#ifndef __cplusplus | |
+ | |
+/* This is the most reliable way to avoid incompatibilities | |
+ in available built-in functions on various systems. */ | |
+static void | |
+__yy_memcpy (to, from, count) | |
+ char *to; | |
+ char *from; | |
+ unsigned int count; | |
+{ | |
+ register char *f = from; | |
+ register char *t = to; | |
+ register int i = count; | |
+ | |
+ while (i-- > 0) | |
+ *t++ = *f++; | |
+} | |
+ | |
+#else /* __cplusplus */ | |
+ | |
+/* This is the most reliable way to avoid incompatibilities | |
+ in available built-in functions on various systems. */ | |
+static void | |
+__yy_memcpy (char *to, char *from, unsigned int count) | |
+{ | |
+ register char *t = to; | |
+ register char *f = from; | |
+ register int i = count; | |
+ | |
+ while (i-- > 0) | |
+ *t++ = *f++; | |
+} | |
+ | |
+#endif | |
+#endif | |
+ | |
+#line 217 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" | |
+ | |
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed | |
+ into yyparse. The argument should have type void *. | |
+ It should actually point to an object. | |
+ Grammar actions can access the variable by casting it | |
+ to the proper pointer type. */ | |
+ | |
+#ifdef YYPARSE_PARAM | |
+#ifdef __cplusplus | |
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM | |
+#define YYPARSE_PARAM_DECL | |
+#else /* not __cplusplus */ | |
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM | |
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; | |
+#endif /* not __cplusplus */ | |
+#else /* not YYPARSE_PARAM */ | |
+#define YYPARSE_PARAM_ARG | |
+#define YYPARSE_PARAM_DECL | |
+#endif /* not YYPARSE_PARAM */ | |
+ | |
+/* Prevent warning if -Wstrict-prototypes. */ | |
+#ifdef __GNUC__ | |
+#ifdef YYPARSE_PARAM | |
+int yyparse (void *); | |
+#else | |
+int yyparse (void); | |
+#endif | |
+#endif | |
+ | |
+int | |
+yyparse(YYPARSE_PARAM_ARG) | |
+ YYPARSE_PARAM_DECL | |
+{ | |
+ register int yystate; | |
+ register int yyn; | |
+ register short *yyssp; | |
+ register YYSTYPE *yyvsp; | |
+ int yyerrstatus; /* number of tokens to shift before error messages … | |
+ int yychar1 = 0; /* lookahead token as an internal (translat… | |
+ | |
+ short yyssa[YYINITDEPTH]; /* the state stack … | |
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack … | |
+ | |
+ short *yyss = yyssa; /* refer to the stacks thru separate po… | |
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them els… | |
+ | |
+#ifdef YYLSP_NEEDED | |
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack … | |
+ YYLTYPE *yyls = yylsa; | |
+ YYLTYPE *yylsp; | |
+ | |
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) | |
+#else | |
+#define YYPOPSTACK (yyvsp--, yyssp--) | |
+#endif | |
+ | |
+ int yystacksize = YYINITDEPTH; | |
+ int yyfree_stacks = 0; | |
+ | |
+#ifdef YYPURE | |
+ int yychar; | |
+ YYSTYPE yylval; | |
+ int yynerrs; | |
+#ifdef YYLSP_NEEDED | |
+ YYLTYPE yylloc; | |
+#endif | |
+#endif | |
+ | |
+ YYSTYPE yyval; /* the variable used to return … | |
+ /* semantic values from the action */ | |
+ /* routines */ | |
+ | |
+ int yylen; | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ fprintf(stderr, "Starting parse\n"); | |
+#endif | |
+ | |
+ yystate = 0; | |
+ yyerrstatus = 0; | |
+ yynerrs = 0; | |
+ yychar = YYEMPTY; /* Cause a token to be read. */ | |
+ | |
+ /* Initialize stack pointers. | |
+ Waste one element of value and location stack | |
+ so that they stay on the same level as the state stack. | |
+ The wasted elements are never initialized. */ | |
+ | |
+ yyssp = yyss - 1; | |
+ yyvsp = yyvs; | |
+#ifdef YYLSP_NEEDED | |
+ yylsp = yyls; | |
+#endif | |
+ | |
+/* Push a new state, which is found in yystate . */ | |
+/* In all cases, when you get here, the value and location stacks | |
+ have just been pushed. so pushing a state here evens the stacks. */ | |
+yynewstate: | |
+ | |
+ *++yyssp = yystate; | |
+ | |
+ if (yyssp >= yyss + yystacksize - 1) | |
+ { | |
+ /* Give user a chance to reallocate the stack */ | |
+ /* Use copies of these so that the &'s don't force the real ones into me… | |
+ YYSTYPE *yyvs1 = yyvs; | |
+ short *yyss1 = yyss; | |
+#ifdef YYLSP_NEEDED | |
+ YYLTYPE *yyls1 = yyls; | |
+#endif | |
+ | |
+ /* Get the current used size of the three stacks, in elements. */ | |
+ int size = yyssp - yyss + 1; | |
+ | |
+#ifdef yyoverflow | |
+ /* Each stack pointer address is followed by the size of | |
+ the data in use in that stack, in bytes. */ | |
+#ifdef YYLSP_NEEDED | |
+ /* This used to be a conditional around just the two extra args, | |
+ but that might be undefined if yyoverflow is a macro. */ | |
+ yyoverflow("parser stack overflow", | |
+ &yyss1, size * sizeof (*yyssp), | |
+ &yyvs1, size * sizeof (*yyvsp), | |
+ &yyls1, size * sizeof (*yylsp), | |
+ &yystacksize); | |
+#else | |
+ yyoverflow("parser stack overflow", | |
+ &yyss1, size * sizeof (*yyssp), | |
+ &yyvs1, size * sizeof (*yyvsp), | |
+ &yystacksize); | |
+#endif | |
+ | |
+ yyss = yyss1; yyvs = yyvs1; | |
+#ifdef YYLSP_NEEDED | |
+ yyls = yyls1; | |
+#endif | |
+#else /* no yyoverflow */ | |
+ /* Extend the stack our own way. */ | |
+ if (yystacksize >= YYMAXDEPTH) | |
+ { | |
+ yyerror("parser stack overflow"); | |
+ if (yyfree_stacks) | |
+ { | |
+ free (yyss); | |
+ free (yyvs); | |
+#ifdef YYLSP_NEEDED | |
+ free (yyls); | |
+#endif | |
+ } | |
+ return 2; | |
+ } | |
+ yystacksize *= 2; | |
+ if (yystacksize > YYMAXDEPTH) | |
+ yystacksize = YYMAXDEPTH; | |
+#ifndef YYSTACK_USE_ALLOCA | |
+ yyfree_stacks = 1; | |
+#endif | |
+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); | |
+ __yy_memcpy ((char *)yyss, (char *)yyss1, | |
+ size * (unsigned int) sizeof (*yyssp)); | |
+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); | |
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1, | |
+ size * (unsigned int) sizeof (*yyvsp)); | |
+#ifdef YYLSP_NEEDED | |
+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); | |
+ __yy_memcpy ((char *)yyls, (char *)yyls1, | |
+ size * (unsigned int) sizeof (*yylsp)); | |
+#endif | |
+#endif /* no yyoverflow */ | |
+ | |
+ yyssp = yyss + size - 1; | |
+ yyvsp = yyvs + size - 1; | |
+#ifdef YYLSP_NEEDED | |
+ yylsp = yyls + size - 1; | |
+#endif | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize); | |
+#endif | |
+ | |
+ if (yyssp >= yyss + yystacksize - 1) | |
+ YYABORT; | |
+ } | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ fprintf(stderr, "Entering state %d\n", yystate); | |
+#endif | |
+ | |
+ goto yybackup; | |
+ yybackup: | |
+ | |
+/* Do appropriate processing given the current state. */ | |
+/* Read a lookahead token if we need one and don't already have one. */ | |
+/* yyresume: */ | |
+ | |
+ /* First try to decide what to do without reference to lookahead token. */ | |
+ | |
+ yyn = yypact[yystate]; | |
+ if (yyn == YYFLAG) | |
+ goto yydefault; | |
+ | |
+ /* Not known => get a lookahead token if don't already have one. */ | |
+ | |
+ /* yychar is either YYEMPTY or YYEOF | |
+ or a valid token in external form. */ | |
+ | |
+ if (yychar == YYEMPTY) | |
+ { | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ fprintf(stderr, "Reading a token: "); | |
+#endif | |
+ yychar = YYLEX; | |
+ } | |
+ | |
+ /* Convert token to internal form (in yychar1) for indexing tables with */ | |
+ | |
+ if (yychar <= 0) /* This means end of input. */ | |
+ { | |
+ yychar1 = 0; | |
+ yychar = YYEOF; /* Don't call YYLEX any more */ | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ fprintf(stderr, "Now at end of input.\n"); | |
+#endif | |
+ } | |
+ else | |
+ { | |
+ yychar1 = YYTRANSLATE(yychar); | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ { | |
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); | |
+ /* Give the individual parser a way to print the precise meaning | |
+ of a token, for further debugging info. */ | |
+#ifdef YYPRINT | |
+ YYPRINT (stderr, yychar, yylval); | |
+#endif | |
+ fprintf (stderr, ")\n"); | |
+ } | |
+#endif | |
+ } | |
+ | |
+ yyn += yychar1; | |
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) | |
+ goto yydefault; | |
+ | |
+ yyn = yytable[yyn]; | |
+ | |
+ /* yyn is what to do for this token type in this state. | |
+ Negative => reduce, -yyn is rule number. | |
+ Positive => shift, yyn is new state. | |
+ New state is final state => don't bother to shift, | |
+ just return success. | |
+ 0, or most negative number => error. */ | |
+ | |
+ if (yyn < 0) | |
+ { | |
+ if (yyn == YYFLAG) | |
+ goto yyerrlab; | |
+ yyn = -yyn; | |
+ goto yyreduce; | |
+ } | |
+ else if (yyn == 0) | |
+ goto yyerrlab; | |
+ | |
+ if (yyn == YYFINAL) | |
+ YYACCEPT; | |
+ | |
+ /* Shift the lookahead token. */ | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); | |
+#endif | |
+ | |
+ /* Discard the token being shifted unless it is eof. */ | |
+ if (yychar != YYEOF) | |
+ yychar = YYEMPTY; | |
+ | |
+ *++yyvsp = yylval; | |
+#ifdef YYLSP_NEEDED | |
+ *++yylsp = yylloc; | |
+#endif | |
+ | |
+ /* count tokens shifted since error; after three, turn off error status. */ | |
+ if (yyerrstatus) yyerrstatus--; | |
+ | |
+ yystate = yyn; | |
+ goto yynewstate; | |
+ | |
+/* Do the default action for the current state. */ | |
+yydefault: | |
+ | |
+ yyn = yydefact[yystate]; | |
+ if (yyn == 0) | |
+ goto yyerrlab; | |
+ | |
+/* Do a reduction. yyn is the number of a rule to reduce with. */ | |
+yyreduce: | |
+ yylen = yyr2[yyn]; | |
+ if (yylen > 0) | |
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */ | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ { | |
+ int i; | |
+ | |
+ fprintf (stderr, "Reducing via rule %d (line %d), ", | |
+ yyn, yyrline[yyn]); | |
+ | |
+ /* Print the symbols being reduced, and their result. */ | |
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) | |
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]); | |
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); | |
+ } | |
+#endif | |
+ | |
+ | |
+ switch (yyn) { | |
+ | |
+case 1: | |
+#line 178 "plural.y" | |
+{ | |
+ if (yyvsp[0].exp == NULL) | |
+ YYABORT; | |
+ ((struct parse_args *) arg)->res = yyvsp[0].exp; | |
+ ; | |
+ break;} | |
+case 2: | |
+#line 186 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0… | |
+ ; | |
+ break;} | |
+case 3: | |
+#line 190 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp); | |
+ ; | |
+ break;} | |
+case 4: | |
+#line 194 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp); | |
+ ; | |
+ break;} | |
+case 5: | |
+#line 198 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); | |
+ ; | |
+ break;} | |
+case 6: | |
+#line 202 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); | |
+ ; | |
+ break;} | |
+case 7: | |
+#line 206 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); | |
+ ; | |
+ break;} | |
+case 8: | |
+#line 210 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); | |
+ ; | |
+ break;} | |
+case 9: | |
+#line 214 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_1 (lnot, yyvsp[0].exp); | |
+ ; | |
+ break;} | |
+case 10: | |
+#line 218 "plural.y" | |
+{ | |
+ yyval.exp = new_exp_0 (var); | |
+ ; | |
+ break;} | |
+case 11: | |
+#line 222 "plural.y" | |
+{ | |
+ if ((yyval.exp = new_exp_0 (num)) != NULL) | |
+ yyval.exp->val.num = yyvsp[0].num; | |
+ ; | |
+ break;} | |
+case 12: | |
+#line 227 "plural.y" | |
+{ | |
+ yyval.exp = yyvsp[-1].exp; | |
+ ; | |
+ break;} | |
+} | |
+ /* the action file gets copied in in place of this dollarsign */ | |
+#line 543 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" | |
+ | |
+ yyvsp -= yylen; | |
+ yyssp -= yylen; | |
+#ifdef YYLSP_NEEDED | |
+ yylsp -= yylen; | |
+#endif | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ { | |
+ short *ssp1 = yyss - 1; | |
+ fprintf (stderr, "state stack now"); | |
+ while (ssp1 != yyssp) | |
+ fprintf (stderr, " %d", *++ssp1); | |
+ fprintf (stderr, "\n"); | |
+ } | |
+#endif | |
+ | |
+ *++yyvsp = yyval; | |
+ | |
+#ifdef YYLSP_NEEDED | |
+ yylsp++; | |
+ if (yylen == 0) | |
+ { | |
+ yylsp->first_line = yylloc.first_line; | |
+ yylsp->first_column = yylloc.first_column; | |
+ yylsp->last_line = (yylsp-1)->last_line; | |
+ yylsp->last_column = (yylsp-1)->last_column; | |
+ yylsp->text = 0; | |
+ } | |
+ else | |
+ { | |
+ yylsp->last_line = (yylsp+yylen-1)->last_line; | |
+ yylsp->last_column = (yylsp+yylen-1)->last_column; | |
+ } | |
+#endif | |
+ | |
+ /* Now "shift" the result of the reduction. | |
+ Determine what state that goes to, | |
+ based on the state we popped back to | |
+ and the rule number reduced by. */ | |
+ | |
+ yyn = yyr1[yyn]; | |
+ | |
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp; | |
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) | |
+ yystate = yytable[yystate]; | |
+ else | |
+ yystate = yydefgoto[yyn - YYNTBASE]; | |
+ | |
+ goto yynewstate; | |
+ | |
+yyerrlab: /* here on detecting error */ | |
+ | |
+ if (! yyerrstatus) | |
+ /* If not already recovering from an error, report this error. */ | |
+ { | |
+ ++yynerrs; | |
+ | |
+#ifdef YYERROR_VERBOSE | |
+ yyn = yypact[yystate]; | |
+ | |
+ if (yyn > YYFLAG && yyn < YYLAST) | |
+ { | |
+ int size = 0; | |
+ char *msg; | |
+ int x, count; | |
+ | |
+ count = 0; | |
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ | |
+ for (x = (yyn < 0 ? -yyn : 0); | |
+ x < (sizeof(yytname) / sizeof(char *)); x++) | |
+ if (yycheck[x + yyn] == x) | |
+ size += strlen(yytname[x]) + 15, count++; | |
+ msg = (char *) malloc(size + 15); | |
+ if (msg != 0) | |
+ { | |
+ strcpy(msg, "parse error"); | |
+ | |
+ if (count < 5) | |
+ { | |
+ count = 0; | |
+ for (x = (yyn < 0 ? -yyn : 0); | |
+ x < (sizeof(yytname) / sizeof(char *)); x++) | |
+ if (yycheck[x + yyn] == x) | |
+ { | |
+ strcat(msg, count == 0 ? ", expecting `" : " or `"); | |
+ strcat(msg, yytname[x]); | |
+ strcat(msg, "'"); | |
+ count++; | |
+ } | |
+ } | |
+ yyerror(msg); | |
+ free(msg); | |
+ } | |
+ else | |
+ yyerror ("parse error; also virtual memory exceeded"); | |
+ } | |
+ else | |
+#endif /* YYERROR_VERBOSE */ | |
+ yyerror("parse error"); | |
+ } | |
+ | |
+ goto yyerrlab1; | |
+yyerrlab1: /* here on error raised explicitly by an action */ | |
+ | |
+ if (yyerrstatus == 3) | |
+ { | |
+ /* if just tried and failed to reuse lookahead token after an error, dis… | |
+ | |
+ /* return failure if at end of input */ | |
+ if (yychar == YYEOF) | |
+ YYABORT; | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1… | |
+#endif | |
+ | |
+ yychar = YYEMPTY; | |
+ } | |
+ | |
+ /* Else will try to reuse lookahead token | |
+ after shifting the error token. */ | |
+ | |
+ yyerrstatus = 3; /* Each real token shifted decrements this */ | |
+ | |
+ goto yyerrhandle; | |
+ | |
+yyerrdefault: /* current state does not do anything special for the error tok… | |
+ | |
+#if 0 | |
+ /* This is wrong; only states that explicitly want error tokens | |
+ should shift them. */ | |
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Oth… | |
+ if (yyn) goto yydefault; | |
+#endif | |
+ | |
+yyerrpop: /* pop the current state because it cannot handle the error token … | |
+ | |
+ if (yyssp == yyss) YYABORT; | |
+ yyvsp--; | |
+ yystate = *--yyssp; | |
+#ifdef YYLSP_NEEDED | |
+ yylsp--; | |
+#endif | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ { | |
+ short *ssp1 = yyss - 1; | |
+ fprintf (stderr, "Error: state stack now"); | |
+ while (ssp1 != yyssp) | |
+ fprintf (stderr, " %d", *++ssp1); | |
+ fprintf (stderr, "\n"); | |
+ } | |
+#endif | |
+ | |
+yyerrhandle: | |
+ | |
+ yyn = yypact[yystate]; | |
+ if (yyn == YYFLAG) | |
+ goto yyerrdefault; | |
+ | |
+ yyn += YYTERROR; | |
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) | |
+ goto yyerrdefault; | |
+ | |
+ yyn = yytable[yyn]; | |
+ if (yyn < 0) | |
+ { | |
+ if (yyn == YYFLAG) | |
+ goto yyerrpop; | |
+ yyn = -yyn; | |
+ goto yyreduce; | |
+ } | |
+ else if (yyn == 0) | |
+ goto yyerrpop; | |
+ | |
+ if (yyn == YYFINAL) | |
+ YYACCEPT; | |
+ | |
+#if YYDEBUG != 0 | |
+ if (yydebug) | |
+ fprintf(stderr, "Shifting error token, "); | |
+#endif | |
+ | |
+ *++yyvsp = yylval; | |
+#ifdef YYLSP_NEEDED | |
+ *++yylsp = yylloc; | |
+#endif | |
+ | |
+ yystate = yyn; | |
+ goto yynewstate; | |
+ | |
+ yyacceptlab: | |
+ /* YYACCEPT comes here. */ | |
+ if (yyfree_stacks) | |
+ { | |
+ free (yyss); | |
+ free (yyvs); | |
+#ifdef YYLSP_NEEDED | |
+ free (yyls); | |
+#endif | |
+ } | |
+ return 0; | |
+ | |
+ yyabortlab: | |
+ /* YYABORT comes here. */ | |
+ if (yyfree_stacks) | |
+ { | |
+ free (yyss); | |
+ free (yyvs); | |
+#ifdef YYLSP_NEEDED | |
+ free (yyls); | |
+#endif | |
+ } | |
+ return 1; | |
+} | |
+#line 232 "plural.y" | |
+ | |
+ | |
+void | |
+internal_function | |
+FREE_EXPRESSION (exp) | |
+ struct expression *exp; | |
+{ | |
+ if (exp == NULL) | |
+ return; | |
+ | |
+ /* Handle the recursive case. */ | |
+ switch (exp->nargs) | |
+ { | |
+ case 3: | |
+ FREE_EXPRESSION (exp->val.args[2]); | |
+ /* FALLTHROUGH */ | |
+ case 2: | |
+ FREE_EXPRESSION (exp->val.args[1]); | |
+ /* FALLTHROUGH */ | |
+ case 1: | |
+ FREE_EXPRESSION (exp->val.args[0]); | |
+ /* FALLTHROUGH */ | |
+ default: | |
+ break; | |
+ } | |
+ | |
+ free (exp); | |
+} | |
+ | |
+ | |
+static int | |
+yylex (lval, pexp) | |
+ YYSTYPE *lval; | |
+ const char **pexp; | |
+{ | |
+ const char *exp = *pexp; | |
+ int result; | |
+ | |
+ while (1) | |
+ { | |
+ if (exp[0] == '\0') | |
+ { | |
+ *pexp = exp; | |
+ return YYEOF; | |
+ } | |
+ | |
+ if (exp[0] != ' ' && exp[0] != '\t') | |
+ break; | |
+ | |
+ ++exp; | |
+ } | |
+ | |
+ result = *exp++; | |
+ switch (result) | |
+ { | |
+ case '0': case '1': case '2': case '3': case '4': | |
+ case '5': case '6': case '7': case '8': case '9': | |
+ { | |
+ unsigned long int n = result - '0'; | |
+ while (exp[0] >= '0' && exp[0] <= '9') | |
+ { | |
+ n *= 10; | |
+ n += exp[0] - '0'; | |
+ ++exp; | |
+ } | |
+ lval->num = n; | |
+ result = NUMBER; | |
+ } | |
+ break; | |
+ | |
+ case '=': | |
+ if (exp[0] == '=') | |
+ { | |
+ ++exp; | |
+ lval->op = equal; | |
+ result = EQUOP2; | |
+ } | |
+ else | |
+ result = YYERRCODE; | |
+ break; | |
+ | |
+ case '!': | |
+ if (exp[0] == '=') | |
+ { | |
+ ++exp; | |
+ lval->op = not_equal; | |
+ result = EQUOP2; | |
+ } | |
+ break; | |
+ | |
+ case '&': | |
+ case '|': | |
+ if (exp[0] == result) | |
+ ++exp; | |
+ else | |
+ result = YYERRCODE; | |
+ break; | |
+ | |
+ case '<': | |
+ if (exp[0] == '=') | |
+ { | |
+ ++exp; | |
+ lval->op = less_or_equal; | |
+ } | |
+ else | |
+ lval->op = less_than; | |
+ result = CMPOP2; | |
+ break; | |
+ | |
+ case '>': | |
+ if (exp[0] == '=') | |
+ { | |
+ ++exp; | |
+ lval->op = greater_or_equal; | |
+ } | |
+ else | |
+ lval->op = greater_than; | |
+ result = CMPOP2; | |
+ break; | |
+ | |
+ case '*': | |
+ lval->op = mult; | |
+ result = MULOP2; | |
+ break; | |
+ | |
+ case '/': | |
+ lval->op = divide; | |
+ result = MULOP2; | |
+ break; | |
+ | |
+ case '%': | |
+ lval->op = module; | |
+ result = MULOP2; | |
+ break; | |
+ | |
+ case '+': | |
+ lval->op = plus; | |
+ result = ADDOP2; | |
+ break; | |
+ | |
+ case '-': | |
+ lval->op = minus; | |
+ result = ADDOP2; | |
+ break; | |
+ | |
+ case 'n': | |
+ case '?': | |
+ case ':': | |
+ case '(': | |
+ case ')': | |
+ /* Nothing, just return the character. */ | |
+ break; | |
+ | |
+ case ';': | |
+ case '\n': | |
+ case '\0': | |
+ /* Be safe and let the user call this function again. */ | |
+ --exp; | |
+ result = YYEOF; | |
+ break; | |
+ | |
+ default: | |
+ result = YYERRCODE; | |
+#if YYDEBUG != 0 | |
+ --exp; | |
+#endif | |
+ break; | |
+ } | |
+ | |
+ *pexp = exp; | |
+ | |
+ return result; | |
+} | |
+ | |
+ | |
+static void | |
+yyerror (str) | |
+ const char *str; | |
+{ | |
+ /* Do nothing. We don't print error messages here. */ | |
+} | |
diff --git a/intl/plural.y b/intl/plural.y | |
t@@ -0,0 +1,412 @@ | |
+%{ | |
+/* Expression parsing for plural form selection. | |
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc. | |
+ Written by Ulrich Drepper <[email protected]>, 2000. | |
+ | |
+ This program is free software; you can redistribute it and/or modify | |
+ it under the terms of the GNU General Public License as published by | |
+ the Free Software Foundation; either version 2, or (at your option) | |
+ any later version. | |
+ | |
+ This program is distributed in the hope that it will be useful, | |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+ GNU General Public License for more details. | |
+ | |
+ You should have received a copy of the GNU General Public License | |
+ along with this program; if not, write to the Free Software Foundation, | |
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
+ | |
+/* The bison generated parser uses alloca. AIX 3 forces us to put this | |
+ declaration at the beginning of the file. The declaration in bison's | |
+ skeleton file comes too late. This must come before <config.h> | |
+ because <config.h> may include arbitrary system headers. */ | |
+#if defined _AIX && !defined __GNUC__ | |
+ #pragma alloca | |
+#endif | |
+ | |
+#ifdef HAVE_CONFIG_H | |
+# include <config.h> | |
+#endif | |
+ | |
+#include <stdlib.h> | |
+#include "gettextP.h" | |
+ | |
+/* Names for the libintl functions are a problem. They must not clash | |
+ with existing names and they should follow ANSI C. But this source | |
+ code is also used in GNU C Library where the names have a __ | |
+ prefix. So we have to make a difference here. */ | |
+#ifdef _LIBC | |
+# define FREE_EXPRESSION __gettext_free_exp | |
+#else | |
+# define FREE_EXPRESSION gettext_free_exp__ | |
+# define __gettextparse gettextparse__ | |
+#endif | |
+ | |
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp | |
+#define YYPARSE_PARAM arg | |
+%} | |
+%pure_parser | |
+%expect 10 | |
+ | |
+%union { | |
+ unsigned long int num; | |
+ enum operator op; | |
+ struct expression *exp; | |
+} | |
+ | |
+%{ | |
+/* Prototypes for local functions. */ | |
+static struct expression *new_exp PARAMS ((int nargs, enum operator op, | |
+ struct expression * const *args)); | |
+static inline struct expression *new_exp_0 PARAMS ((enum operator op)); | |
+static inline struct expression *new_exp_1 PARAMS ((enum operator op, | |
+ struct expression *right)); | |
+static struct expression *new_exp_2 PARAMS ((enum operator op, | |
+ struct expression *left, | |
+ struct expression *right)); | |
+static inline struct expression *new_exp_3 PARAMS ((enum operator op, | |
+ struct expression *bexp, | |
+ struct expression *tbranch, | |
+ struct expression *fbranch)… | |
+static int yylex PARAMS ((YYSTYPE *lval, const char **pexp)); | |
+static void yyerror PARAMS ((const char *str)); | |
+ | |
+/* Allocation of expressions. */ | |
+ | |
+static struct expression * | |
+new_exp (nargs, op, args) | |
+ int nargs; | |
+ enum operator op; | |
+ struct expression * const *args; | |
+{ | |
+ int i; | |
+ struct expression *newp; | |
+ | |
+ /* If any of the argument could not be malloc'ed, just return NULL. */ | |
+ for (i = nargs - 1; i >= 0; i--) | |
+ if (args[i] == NULL) | |
+ goto fail; | |
+ | |
+ /* Allocate a new expression. */ | |
+ newp = (struct expression *) malloc (sizeof (*newp)); | |
+ if (newp != NULL) | |
+ { | |
+ newp->nargs = nargs; | |
+ newp->operation = op; | |
+ for (i = nargs - 1; i >= 0; i--) | |
+ newp->val.args[i] = args[i]; | |
+ return newp; | |
+ } | |
+ | |
+ fail: | |
+ for (i = nargs - 1; i >= 0; i--) | |
+ FREE_EXPRESSION (args[i]); | |
+ | |
+ return NULL; | |
+} | |
+ | |
+static inline struct expression * | |
+new_exp_0 (op) | |
+ enum operator op; | |
+{ | |
+ return new_exp (0, op, NULL); | |
+} | |
+ | |
+static inline struct expression * | |
+new_exp_1 (op, right) | |
+ enum operator op; | |
+ struct expression *right; | |
+{ | |
+ struct expression *args[1]; | |
+ | |
+ args[0] = right; | |
+ return new_exp (1, op, args); | |
+} | |
+ | |
+static struct expression * | |
+new_exp_2 (op, left, right) | |
+ enum operator op; | |
+ struct expression *left; | |
+ struct expression *right; | |
+{ | |
+ struct expression *args[2]; | |
+ | |
+ args[0] = left; | |
+ args[1] = right; | |
+ return new_exp (2, op, args); | |
+} | |
+ | |
+static inline struct expression * | |
+new_exp_3 (op, bexp, tbranch, fbranch) | |
+ enum operator op; | |
+ struct expression *bexp; | |
+ struct expression *tbranch; | |
+ struct expression *fbranch; | |
+{ | |
+ struct expression *args[3]; | |
+ | |
+ args[0] = bexp; | |
+ args[1] = tbranch; | |
+ args[2] = fbranch; | |
+ return new_exp (3, op, args); | |
+} | |
+ | |
+%} | |
+ | |
+/* This declares that all operators have the same associativity and the | |
+ precedence order as in C. See [Harbison, Steele: C, A Reference Manual]. | |
+ There is no unary minus and no bitwise operators. | |
+ Operators with the same syntactic behaviour have been merged into a single | |
+ token, to save space in the array generated by bison. */ | |
+%right '?' /* ? */ | |
+%left '|' /* || */ | |
+%left '&' /* && */ | |
+%left EQUOP2 /* == != */ | |
+%left CMPOP2 /* < > <= >= */ | |
+%left ADDOP2 /* + - */ | |
+%left MULOP2 /* * / % */ | |
+%right '!' /* ! */ | |
+ | |
+%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2 | |
+%token <num> NUMBER | |
+%type <exp> exp | |
+ | |
+%% | |
+ | |
+start: exp | |
+ { | |
+ if ($1 == NULL) | |
+ YYABORT; | |
+ ((struct parse_args *) arg)->res = $1; | |
+ } | |
+ ; | |
+ | |
+exp: exp '?' exp ':' exp | |
+ { | |
+ $$ = new_exp_3 (qmop, $1, $3, $5); | |
+ } | |
+ | exp '|' exp | |
+ { | |
+ $$ = new_exp_2 (lor, $1, $3); | |
+ } | |
+ | exp '&' exp | |
+ { | |
+ $$ = new_exp_2 (land, $1, $3); | |
+ } | |
+ | exp EQUOP2 exp | |
+ { | |
+ $$ = new_exp_2 ($2, $1, $3); | |
+ } | |
+ | exp CMPOP2 exp | |
+ { | |
+ $$ = new_exp_2 ($2, $1, $3); | |
+ } | |
+ | exp ADDOP2 exp | |
+ { | |
+ $$ = new_exp_2 ($2, $1, $3); | |
+ } | |
+ | exp MULOP2 exp | |
+ { | |
+ $$ = new_exp_2 ($2, $1, $3); | |
+ } | |
+ | '!' exp | |
+ { | |
+ $$ = new_exp_1 (lnot, $2); | |
+ } | |
+ | 'n' | |
+ { | |
+ $$ = new_exp_0 (var); | |
+ } | |
+ | NUMBER | |
+ { | |
+ if (($$ = new_exp_0 (num)) != NULL) | |
+ $$->val.num = $1; | |
+ } | |
+ | '(' exp ')' | |
+ { | |
+ $$ = $2; | |
+ } | |
+ ; | |
+ | |
+%% | |
+ | |
+void | |
+internal_function | |
+FREE_EXPRESSION (exp) | |
+ struct expression *exp; | |
+{ | |
+ if (exp == NULL) | |
+ return; | |
+ | |
+ /* Handle the recursive case. */ | |
+ switch (exp->nargs) | |
+ { | |
+ case 3: | |
+ FREE_EXPRESSION (exp->val.args[2]); | |
+ /* FALLTHROUGH */ | |
+ case 2: | |
+ FREE_EXPRESSION (exp->val.args[1]); | |
+ /* FALLTHROUGH */ | |
+ case 1: | |
+ FREE_EXPRESSION (exp->val.args[0]); | |
+ /* FALLTHROUGH */ | |
+ default: | |
+ break; | |
+ } | |
+ | |
+ free (exp); | |
+} | |
+ | |
+ | |
+static int | |
+yylex (lval, pexp) | |
+ YYSTYPE *lval; | |
+ const char **pexp; | |
+{ | |
+ const char *exp = *pexp; | |
+ int result; | |
+ | |
+ while (1) | |
+ { | |
+ if (exp[0] == '\0') | |
+ { | |
+ *pexp = exp; | |
+ return YYEOF; | |
+ } | |
+ | |
+ if (exp[0] != ' ' && exp[0] != '\t') | |
+ break; | |
+ | |
+ ++exp; | |
+ } | |
+ | |
+ result = *exp++; | |
+ switch (result) | |
+ { | |
+ case '0': case '1': case '2': case '3': case '4': | |
+ case '5': case '6': case '7': case '8': case '9': | |
+ { | |
+ unsigned long int n = result - '0'; | |
+ while (exp[0] >= '0' && exp[0] <= '9') | |
+ { | |
+ n *= 10; | |
+ n += exp[0] - '0'; | |
+ ++exp; | |
+ } | |
+ lval->num = n; | |
+ result = NUMBER; | |
+ } | |
+ break; | |
+ | |
+ case '=': | |
+ if (exp[0] == '=') | |
+ { | |
+ ++exp; | |
+ lval->op = equal; | |
+ result = EQUOP2; | |
+ } | |
+ else | |
+ result = YYERRCODE; | |
+ break; | |
+ | |
+ case '!': | |
+ if (exp[0] == '=') | |
+ { | |
+ ++exp; | |
+ lval->op = not_equal; | |
+ result = EQUOP2; | |
+ } | |
+ break; | |
+ | |
+ case '&': | |
+ case '|': | |
+ if (exp[0] == result) | |
+ ++exp; | |
+ else | |
+ result = YYERRCODE; | |
+ break; | |
+ | |
+ case '<': | |
+ if (exp[0] == '=') | |
+ { | |
+ ++exp; | |
+ lval->op = less_or_equal; | |
+ } | |
+ else | |
+ lval->op = less_than; | |
+ result = CMPOP2; | |
+ break; | |
+ | |
+ case '>': | |
+ if (exp[0] == '=') | |
+ { | |
+ ++exp; | |
+ lval->op = greater_or_equal; | |
+ } | |
+ else | |
+ lval->op = greater_than; | |
+ result = CMPOP2; | |
+ break; | |
+ | |
+ case '*': | |
+ lval->op = mult; | |
+ result = MULOP2; | |
+ break; | |
+ | |
+ case '/': | |
+ lval->op = divide; | |
+ result = MULOP2; | |
+ break; | |
+ | |
+ case '%': | |
+ lval->op = module; | |
+ result = MULOP2; | |
+ break; | |
+ | |
+ case '+': | |
+ lval->op = plus; | |
+ result = ADDOP2; | |
+ break; | |
+ | |
+ case '-': | |
+ lval->op = minus; | |
+ result = ADDOP2; | |
+ break; | |
+ | |
+ case 'n': | |
+ case '?': | |
+ case ':': | |
+ case '(': | |
+ case ')': | |
+ /* Nothing, just return the character. */ | |
+ break; | |
+ | |
+ case ';': | |
+ case '\n': | |
+ case '\0': | |
+ /* Be safe and let the user call this function again. */ | |
+ --exp; | |
+ result = YYEOF; | |
+ break; | |
+ | |
+ default: | |
+ result = YYERRCODE; | |
+#if YYDEBUG != 0 | |
+ --exp; | |
+#endif | |
+ break; | |
+ } | |
+ | |
+ *pexp = exp; | |
+ | |
+ return result; | |
+} | |
+ | |
+ | |
+static void | |
+yyerror (str) | |
+ const char *str; | |
+{ | |
+ /* Do nothing. We don't print error messages here. */ | |
+} | |
diff --git a/intl/po2tbl.sed.in b/intl/po2tbl.sed.in | |
t@@ -1,102 +0,0 @@ | |
-# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets | |
-# Copyright (C) 1995 Free Software Foundation, Inc. | |
-# Ulrich Drepper <[email protected]>, 1995. | |
-# | |
-# This program is free software; you can redistribute it and/or modify | |
-# it under the terms of the GNU General Public License as published by | |
-# the Free Software Foundation; either version 2, or (at your option) | |
-# any later version. | |
-# | |
-# This program is distributed in the hope that it will be useful, | |
-# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
-# GNU General Public License for more details. | |
-# | |
-# You should have received a copy of the GNU General Public License | |
-# along with this program; if not, write to the Free Software | |
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
-# | |
-1 { | |
- i\ | |
-/* Automatically generated by po2tbl.sed from @PACKAGE [email protected]. */\ | |
-\ | |
-#if HAVE_CONFIG_H\ | |
-# include <config.h>\ | |
-#endif\ | |
-\ | |
-#include "libgettext.h"\ | |
-\ | |
-const struct _msg_ent _msg_tbl[] = { | |
- h | |
- s/.*/0/ | |
- x | |
-} | |
-# | |
-# Write msgid entries in C array form. | |
-# | |
-/^msgid/ { | |
- s/msgid[ ]*\(".*"\)/ {\1/ | |
- tb | |
-# Append the next line | |
- :b | |
- N | |
-# Look whether second part is continuation line. | |
- s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/ | |
-# Yes, then branch. | |
- ta | |
-# Because we assume that the input file correctly formed the line | |
-# just read cannot be again be a msgid line. So it's safe to ignore | |
-# it. | |
- s/\(.*\)\n.*/\1/ | |
- bc | |
-# We found a continuation line. But before printing insert '\'. | |
- :a | |
- s/\(.*\)\(\n.*\)/\1\\\2/ | |
- P | |
-# We cannot use D here. | |
- s/.*\n\(.*\)/\1/ | |
-# Some buggy seds do not clear the `successful substitution since last ``t''' | |
-# flag on `N', so we do a `t' here to clear it. | |
- tb | |
-# Not reached | |
- :c | |
- x | |
-# The following nice solution is by | |
-# Bruno <[email protected]> | |
- td | |
-# Increment a decimal number in pattern space. | |
-# First hide trailing `9' digits. | |
- :d | |
- s/9\(_*\)$/_\1/ | |
- td | |
-# Assure at least one digit is available. | |
- s/^\(_*\)$/0\1/ | |
-# Increment the last digit. | |
- s/8\(_*\)$/9\1/ | |
- s/7\(_*\)$/8\1/ | |
- s/6\(_*\)$/7\1/ | |
- s/5\(_*\)$/6\1/ | |
- s/4\(_*\)$/5\1/ | |
- s/3\(_*\)$/4\1/ | |
- s/2\(_*\)$/3\1/ | |
- s/1\(_*\)$/2\1/ | |
- s/0\(_*\)$/1\1/ | |
-# Convert the hidden `9' digits to `0's. | |
- s/_/0/g | |
- x | |
- G | |
- s/\(.*\)\n\([0-9]*\)/\1, \2},/ | |
- s/\(.*\)"$/\1/ | |
- p | |
-} | |
-# | |
-# Last line. | |
-# | |
-$ { | |
- i\ | |
-};\ | |
- | |
- g | |
- s/0*\(.*\)/int _msg_tbl_length = \1;/p | |
-} | |
-d | |
diff --git a/intl/ref-add.sin b/intl/ref-add.sin | |
t@@ -0,0 +1,31 @@ | |
+# Add this package to a list of references stored in a text file. | |
+# | |
+# Copyright (C) 2000 Free Software Foundation, Inc. | |
+# | |
+# This program is free software; you can redistribute it and/or modify it | |
+# under the terms of the GNU Library General Public License as published | |
+# by the Free Software Foundation; either version 2, or (at your option) | |
+# any later version. | |
+# | |
+# This program is distributed in the hope that it will be useful, | |
+# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
+# Library General Public License for more details. | |
+# | |
+# You should have received a copy of the GNU Library General Public | |
+# License along with this program; if not, write to the Free Software | |
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | |
+# USA. | |
+# | |
+# Written by Bruno Haible <[email protected]>. | |
+# | |
+/^# Packages using this file: / { | |
+ s/# Packages using this file:// | |
+ ta | |
+ :a | |
+ s/ @PACKAGE@ / @PACKAGE@ / | |
+ tb | |
+ s/ $/ @PACKAGE@ / | |
+ :b | |
+ s/^/# Packages using this file:/ | |
+} | |
diff --git a/intl/ref-del.sin b/intl/ref-del.sin | |
t@@ -0,0 +1,26 @@ | |
+# Remove this package from a list of references stored in a text file. | |
+# | |
+# Copyright (C) 2000 Free Software Foundation, Inc. | |
+# | |
+# This program is free software; you can redistribute it and/or modify it | |
+# under the terms of the GNU Library General Public License as published | |
+# by the Free Software Foundation; either version 2, or (at your option) | |
+# any later version. | |
+# | |
+# This program is distributed in the hope that it will be useful, | |
+# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
+# Library General Public License for more details. | |
+# | |
+# You should have received a copy of the GNU Library General Public | |
+# License along with this program; if not, write to the Free Software | |
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | |
+# USA. | |
+# | |
+# Written by Bruno Haible <[email protected]>. | |
+# | |
+/^# Packages using this file: / { | |
+ s/# Packages using this file:// | |
+ s/ @PACKAGE@ / / | |
+ s/^/# Packages using this file:/ | |
+} | |
diff --git a/intl/textdomain.c b/intl/textdomain.c | |
t@@ -1,6 +1,5 @@ | |
/* Implementation of the textdomain(3) function. | |
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. | |
- Written by Ulrich Drepper <[email protected]>, 1995. | |
+ Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. | |
This program is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
t@@ -20,23 +19,32 @@ | |
# include <config.h> | |
#endif | |
-#if defined STDC_HEADERS || defined _LIBC | |
-# include <stdlib.h> | |
-#endif | |
+#include <stdlib.h> | |
+#include <string.h> | |
-#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC | |
-# include <string.h> | |
+#ifdef _LIBC | |
+# include <libintl.h> | |
#else | |
-# include <strings.h> | |
-# ifndef memcpy | |
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) | |
-# endif | |
+# include "libgnuintl.h" | |
#endif | |
+#include "gettextP.h" | |
#ifdef _LIBC | |
-# include <libintl.h> | |
+/* We have to handle multi-threaded applications. */ | |
+# include <bits/libc-lock.h> | |
#else | |
-# include "libgettext.h" | |
+/* Provide dummy implementation if this is outside glibc. */ | |
+# define __libc_rwlock_define(CLASS, NAME) | |
+# define __libc_rwlock_wrlock(NAME) | |
+# define __libc_rwlock_unlock(NAME) | |
+#endif | |
+ | |
+/* The internal variables in the standalone libintl.a must have different | |
+ names than the internal variables in GNU libc, otherwise programs | |
+ using libintl.a cannot be linked statically. */ | |
+#if !defined _LIBC | |
+# define _nl_default_default_domain _nl_default_default_domain__ | |
+# define _nl_current_default_domain _nl_current_default_domain__ | |
#endif | |
/* @@ end of prolog @@ */ | |
t@@ -61,6 +69,9 @@ extern const char *_nl_current_default_domain; | |
# define TEXTDOMAIN textdomain__ | |
#endif | |
+/* Lock variable to protect the global data in the gettext implementation. */ | |
+__libc_rwlock_define (extern, _nl_state_lock) | |
+ | |
/* Set the current default message catalog to DOMAINNAME. | |
If DOMAINNAME is null, return the current default. | |
If DOMAINNAME is "", reset to the default of "messages". */ | |
t@@ -68,38 +79,60 @@ char * | |
TEXTDOMAIN (domainname) | |
const char *domainname; | |
{ | |
- char *old; | |
+ char *new_domain; | |
+ char *old_domain; | |
/* A NULL pointer requests the current setting. */ | |
if (domainname == NULL) | |
return (char *) _nl_current_default_domain; | |
- old = (char *) _nl_current_default_domain; | |
+ __libc_rwlock_wrlock (_nl_state_lock); | |
+ | |
+ old_domain = (char *) _nl_current_default_domain; | |
/* If domain name is the null string set to default domain "messages". */ | |
if (domainname[0] == '\0' | |
|| strcmp (domainname, _nl_default_default_domain) == 0) | |
- _nl_current_default_domain = _nl_default_default_domain; | |
+ { | |
+ _nl_current_default_domain = _nl_default_default_domain; | |
+ new_domain = (char *) _nl_current_default_domain; | |
+ } | |
+ else if (strcmp (domainname, old_domain) == 0) | |
+ /* This can happen and people will use it to signal that some | |
+ environment variable changed. */ | |
+ new_domain = old_domain; | |
else | |
{ | |
/* If the following malloc fails `_nl_current_default_domain' | |
will be NULL. This value will be returned and so signals we | |
are out of core. */ | |
#if defined _LIBC || defined HAVE_STRDUP | |
- _nl_current_default_domain = strdup (domainname); | |
+ new_domain = strdup (domainname); | |
#else | |
size_t len = strlen (domainname) + 1; | |
- char *cp = (char *) malloc (len); | |
- if (cp != NULL) | |
- memcpy (cp, domainname, len); | |
- _nl_current_default_domain = cp; | |
+ new_domain = (char *) malloc (len); | |
+ if (new_domain != NULL) | |
+ memcpy (new_domain, domainname, len); | |
#endif | |
+ | |
+ if (new_domain != NULL) | |
+ _nl_current_default_domain = new_domain; | |
+ } | |
+ | |
+ /* We use this possibility to signal a change of the loaded catalogs | |
+ since this is most likely the case and there is no other easy we | |
+ to do it. Do it only when the call was successful. */ | |
+ if (new_domain != NULL) | |
+ { | |
+ ++_nl_msg_cat_cntr; | |
+ | |
+ if (old_domain != new_domain && old_domain != _nl_default_default_domain) | |
+ free (old_domain); | |
} | |
- if (old != _nl_default_default_domain) | |
- free (old); | |
+ __libc_rwlock_unlock (_nl_state_lock); | |
- return (char *) _nl_current_default_domain; | |
+ return new_domain; | |
} | |
#ifdef _LIBC | |
diff --git a/intl/xopen-msg.sed b/intl/xopen-msg.sed | |
t@@ -1,104 +0,0 @@ | |
-# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file | |
-# Copyright (C) 1995 Free Software Foundation, Inc. | |
-# Ulrich Drepper <[email protected]>, 1995. | |
-# | |
-# This program is free software; you can redistribute it and/or modify | |
-# it under the terms of the GNU General Public License as published by | |
-# the Free Software Foundation; either version 2, or (at your option) | |
-# any later version. | |
-# | |
-# This program is distributed in the hope that it will be useful, | |
-# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
-# GNU General Public License for more details. | |
-# | |
-# You should have received a copy of the GNU General Public License | |
-# along with this program; if not, write to the Free Software | |
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
-# | |
-# | |
-# The first directive in the .msg should be the definition of the | |
-# message set number. We use always set number 1. | |
-# | |
-1 { | |
- i\ | |
-$set 1 # Automatically created by po2msg.sed | |
- h | |
- s/.*/0/ | |
- x | |
-} | |
-# | |
-# We copy all comments into the .msg file. Perhaps they can help. | |
-# | |
-/^#/ s/^#[ ]*/$ /p | |
-# | |
-# We copy the original message as a comment into the .msg file. | |
-# | |
-/^msgid/ { | |
-# Does not work now | |
-# /"$/! { | |
-# s/\\$// | |
-# s/$/ ... (more lines following)"/ | |
-# } | |
- s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/ | |
- p | |
-} | |
-# | |
-# The .msg file contains, other then the .po file, only the translations | |
-# but each given a unique ID. Starting from 1 and incrementing by 1 for | |
-# each message we assign them to the messages. | |
-# It is important that the .po file used to generate the cat-id-tbl.c file | |
-# (with po-to-tbl) is the same as the one used here. (At least the order | |
-# of declarations must not be changed.) | |
-# | |
-/^msgstr/ { | |
- s/msgstr[ ]*"\(.*\)"/\1/ | |
- x | |
-# The following nice solution is by | |
-# Bruno <[email protected]> | |
- td | |
-# Increment a decimal number in pattern space. | |
-# First hide trailing `9' digits. | |
- :d | |
- s/9\(_*\)$/_\1/ | |
- td | |
-# Assure at least one digit is available. | |
- s/^\(_*\)$/0\1/ | |
-# Increment the last digit. | |
- s/8\(_*\)$/9\1/ | |
- s/7\(_*\)$/8\1/ | |
- s/6\(_*\)$/7\1/ | |
- s/5\(_*\)$/6\1/ | |
- s/4\(_*\)$/5\1/ | |
- s/3\(_*\)$/4\1/ | |
- s/2\(_*\)$/3\1/ | |
- s/1\(_*\)$/2\1/ | |
- s/0\(_*\)$/1\1/ | |
-# Convert the hidden `9' digits to `0's. | |
- s/_/0/g | |
- x | |
-# Bring the line in the format `<number> <message>' | |
- G | |
- s/^[^\n]*$/& / | |
- s/\(.*\)\n\([0-9]*\)/\2 \1/ | |
-# Clear flag from last substitution. | |
- tb | |
-# Append the next line. | |
- :b | |
- N | |
-# Look whether second part is a continuation line. | |
- s/\(.*\n\)"\(.*\)"/\1\2/ | |
-# Yes, then branch. | |
- ta | |
- P | |
- D | |
-# Note that `D' includes a jump to the start!! | |
-# We found a continuation line. But before printing insert '\'. | |
- :a | |
- s/\(.*\)\(\n.*\)/\1\\\2/ | |
- P | |
-# We cannot use the sed command `D' here | |
- s/.*\n\(.*\)/\1/ | |
- tb | |
-} | |
-d | |
diff --git a/src/gtkport.c b/src/gtkport.c | |
t@@ -3174,6 +3174,7 @@ GtkItemFactory *gtk_item_factory_new(GtkType container_t… | |
new_fac->path=g_strdup(path); | |
new_fac->accel_group = accel_group; | |
new_fac->top_widget=gtk_menu_bar_new(); | |
+ new_fac->translate_func=NULL; | |
return new_fac; | |
} | |
t@@ -3192,26 +3193,40 @@ static gint PathCmp(const gchar *path1,const gchar *pa… | |
return Match; | |
} | |
+static gchar *TransPath(GtkItemFactory *ifactory,gchar *path) { | |
+ gchar *transpath=NULL; | |
+ | |
+ if (ifactory->translate_func) { | |
+ transpath = (*ifactory->translate_func)(path,ifactory->translate_data); | |
+ } | |
+ | |
+ return transpath ? transpath : path; | |
+} | |
+ | |
static void gtk_item_factory_parse_path(GtkItemFactory *ifactory, | |
gchar *path, | |
GtkItemFactoryChild **parent, | |
GString *menu_title) { | |
- GSList *list; | |
- GtkItemFactoryChild *child; | |
- gchar *root,*pt; | |
- | |
- pt=strrchr(path,'/'); | |
- if (!pt) return; | |
- g_string_assign(menu_title,pt+1); | |
- root=g_strdup(path); | |
- root[pt-path]='\0'; | |
- | |
- | |
- for (list=ifactory->children;list;list=g_slist_next(list)) { | |
- child=(GtkItemFactoryChild *)list->data; | |
- if (PathCmp(child->path,root)==1) { *parent=child; break; } | |
- } | |
- g_free(root); | |
+ GSList *list; | |
+ GtkItemFactoryChild *child; | |
+ gchar *root,*pt,*transpath; | |
+ | |
+ transpath = TransPath(ifactory,path); | |
+ pt=strrchr(transpath,'/'); | |
+ if (pt) g_string_assign(menu_title,pt+1); | |
+ | |
+ pt=strrchr(path,'/'); | |
+ if (!pt) return; | |
+ root=g_strdup(path); | |
+ root[pt-path]='\0'; | |
+ | |
+ for (list=ifactory->children;list;list=g_slist_next(list)) { | |
+ child=(GtkItemFactoryChild *)list->data; | |
+ if (PathCmp(child->path,root)==1) { | |
+ *parent=child; break; | |
+ } | |
+ } | |
+ g_free(root); | |
} | |
static gboolean gtk_item_factory_parse_accel(GtkItemFactory *ifactory, | |
t@@ -3254,7 +3269,7 @@ void gtk_item_factory_create_item(GtkItemFactory *ifacto… | |
GtkWidget *menu_item,*menu; | |
ACCEL accel; | |
gboolean haveaccel; | |
- | |
+ | |
new_child=g_new0(GtkItemFactoryChild,1); | |
new_child->path=g_strdup(entry->path); | |
t@@ -3890,6 +3905,8 @@ void gtk_item_factory_set_translate_func(GtkItemFactory … | |
GtkTranslateFunc func, | |
gpointer data, | |
GtkDestroyNotify notify) { | |
+ ifactory->translate_func = func; | |
+ ifactory->translate_data = data; | |
} | |
void gtk_widget_grab_default(GtkWidget *widget) { | |
diff --git a/src/gtkport.h b/src/gtkport.h | |
t@@ -330,6 +330,8 @@ struct _GtkItemFactory { | |
gchar *path; | |
GtkAccelGroup *accel_group; | |
GtkWidget *top_widget; | |
+ GtkTranslateFunc translate_func; | |
+ gpointer translate_data; | |
}; | |
struct _GtkBoxChild { | |
diff --git a/src/nls.h b/src/nls.h | |
t@@ -23,24 +23,28 @@ | |
#define __NLS_H__ | |
#ifdef HAVE_CONFIG_H | |
-#include <config.h> | |
+# include <config.h> | |
#endif | |
#ifdef ENABLE_NLS | |
-#include <locale.h> | |
-#include <libintl.h> | |
-#define _(String) gettext (String) | |
-#ifdef gettext_noop | |
-#define N_(String) gettext_noop (String) | |
+# include <locale.h> | |
+# ifdef HAVE_GETTEXT | |
+# include <libintl.h> | |
+# else | |
+# include "../intl/libintl.h" | |
+# endif | |
+# define _(String) gettext (String) | |
+# ifdef gettext_noop | |
+# define N_(String) gettext_noop (String) | |
+# else | |
+# define N_(String) (String) | |
+# endif | |
#else | |
-#define N_(String) (String) | |
-#endif | |
-#else | |
-#define gettext(String) (String) | |
-#define dgettext(Domain,Message) (Message) | |
-#define dcgettext(Domain,Message,Type) (Message) | |
-#define _(String) (String) | |
-#define N_(String) (String) | |
+# define gettext(String) (String) | |
+# define dgettext(Domain,Message) (Message) | |
+# define dcgettext(Domain,Message,Type) (Message) | |
+# define _(String) (String) | |
+# define N_(String) (String) | |
#endif | |
#endif /* __NLS_H__ */ | |
diff --git a/src/winmain.c b/src/winmain.c | |
t@@ -93,33 +93,88 @@ static void LogFilePrintFunc(const gchar *string) { | |
} | |
} | |
-static void LogFileEnd() { | |
- if (LogFile) fclose(LogFile); | |
+static void LogFileEnd(void) { | |
+ if (LogFile) fclose(LogFile); | |
} | |
+#ifdef ENABLE_NLS | |
+static gchar *GetWindowsLocale(void) { | |
+ LCID userID; | |
+ WORD lang,sublang; | |
+ static gchar langenv[30]; /* Should only be 5 chars, so this'll be plenty */ | |
+ gchar *oldlang; | |
+ | |
+ langenv[0]='\0'; | |
+ strcpy(langenv,"LANG="); | |
+ | |
+ oldlang = getenv("LANG"); | |
+ | |
+ if (oldlang) { | |
+ g_print("Started with LANG = %s\n",oldlang); | |
+ return NULL; | |
+ } | |
+ | |
+ userID = GetUserDefaultLCID(); | |
+ lang = PRIMARYLANGID(LANGIDFROMLCID(userID)); | |
+ sublang = SUBLANGID(LANGIDFROMLCID(userID)); | |
+ | |
+ switch(lang) { | |
+ case LANG_ENGLISH: | |
+ strcat(langenv,"en"); | |
+ if (sublang==SUBLANG_ENGLISH_UK) strcat(langenv,"_gb"); | |
+ break; | |
+ case LANG_FRENCH: | |
+ strcat(langenv,"fr"); break; | |
+ case LANG_GERMAN: | |
+ strcat(langenv,"de"); break; | |
+ case LANG_POLISH: | |
+ strcat(langenv,"pl"); break; | |
+ case LANG_PORTUGUESE: | |
+ strcat(langenv,"pt"); | |
+ if (sublang==SUBLANG_PORTUGUESE_BRAZILIAN) strcat(langenv,"_br"); | |
+ break; | |
+ } | |
+ | |
+ if (strlen(langenv) > 5) { | |
+ g_print("Using Windows language %s\n",langenv); | |
+ return langenv; | |
+ } else return NULL; | |
+} | |
+#endif /* ENABLE_NLS */ | |
+ | |
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, | |
LPSTR lpszCmdParam,int nCmdShow) { | |
gchar **split; | |
int argc; | |
#ifdef ENABLE_NLS | |
- setlocale(LC_ALL,""); | |
- bindtextdomain(PACKAGE,LOCALEDIR); | |
- textdomain(PACKAGE); | |
+ gchar *winlocale; | |
#endif | |
+ | |
g_log_set_handler(NULL,LogMask()|G_LOG_LEVEL_MESSAGE|G_LOG_LEVEL_WARNING| | |
G_LOG_LEVEL_CRITICAL,LogMessage,NULL); | |
- split=g_strsplit(lpszCmdParam," ",0); | |
- argc=0; | |
- while (split[argc] && split[argc][0]) argc++; | |
LogFileStart(); | |
g_set_print_handler(LogFilePrintFunc); | |
+#ifdef ENABLE_NLS | |
+ winlocale=GetWindowsLocale(); | |
+ if (winlocale) putenv(winlocale); | |
+ | |
+ setlocale(LC_ALL,""); | |
+ bindtextdomain(PACKAGE,LOCALEDIR); | |
+ textdomain(PACKAGE); | |
+#endif | |
+ | |
/* Informational comment placed at the start of the Windows log file | |
(this is used for messages printed during processing of the config | |
files - under Unix these are just printed to stdout) */ | |
g_print(_("# This is the dopewars startup log, containing any\n" | |
"# informative messages resulting from configuration\n" | |
"# file processing and the like.\n\n")); | |
+ | |
+ split=g_strsplit(lpszCmdParam," ",0); | |
+ argc=0; | |
+ while (split[argc] && split[argc][0]) argc++; | |
+ | |
if (GeneralStartup(argc,split)==0) { | |
if (WantVersion || WantHelp) { | |
WindowPrintStart(); |