summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Bailey <jbailey@raspberryginger.com>2000-02-17 03:10:31 +0000
committerEric Blake <ebb9@byu.net>2007-10-05 16:14:54 -0600
commit9a929c868ac6fbc6afa159b42096248f25de38b5 (patch)
treefcd5d36567e32ada2c1669088aa60f7a2c93af85
parent2a43c62450a3d8ba46fc269b79d9139f90d4a199 (diff)
downloadm4-9a929c868ac6fbc6afa159b42096248f25de38b5.tar.gz
Import of m4-1.4om4-1.4o
-rw-r--r--AUTHORS4
-rw-r--r--COPYING6
-rw-r--r--ChangeLog198
-rw-r--r--INSTALL1
-rw-r--r--Makefile.am13
-rw-r--r--Makefile.in192
-rw-r--r--NEWS11
-rw-r--r--TODO68
-rw-r--r--acconfig.h5
-rw-r--r--acinclude.m4523
-rw-r--r--aclocal.m41362
-rw-r--r--acm4/Makefile.am11
-rw-r--r--acm4/Makefile.in103
-rw-r--r--acm4/gettext.m4384
-rwxr-xr-xconfig.guess256
-rw-r--r--config.h.in32
-rwxr-xr-xconfig.sub65
-rwxr-xr-xconfigure1062
-rw-r--r--configure.in28
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/Makefile.in140
-rw-r--r--doc/m4.info176
-rw-r--r--doc/m4.info-189
-rw-r--r--doc/m4.info-277
-rw-r--r--doc/m4.info-335
-rw-r--r--doc/m4.texinfo105
-rw-r--r--doc/stamp-vti6
-rw-r--r--doc/texinfo.tex148
-rw-r--r--doc/version.texi6
-rw-r--r--examples/Makefile.am2
-rw-r--r--examples/Makefile.in150
-rw-r--r--examples/WWW/bugs.htm72
-rw-r--r--examples/WWW/changelog.htm195
-rw-r--r--examples/WWW/download.htm58
-rw-r--r--examples/WWW/features.htm54
-rw-r--r--examples/WWW/feedback.htm52
-rw-r--r--examples/WWW/index.htm54
-rw-r--r--examples/WWW/lists.htm52
-rw-r--r--examples/WWW/m4lib/bugs.m41
-rw-r--r--examples/WWW/m4lib/download.m417
-rw-r--r--examples/WWW/m4lib/features.m42
-rw-r--r--examples/WWW/m4lib/html.m42
-rw-r--r--examples/WWW/m4lib/index.m42
-rw-r--r--examples/WWW/m4lib/layout.m428
-rw-r--r--examples/WWW/m4lib/menu.m47
-rw-r--r--examples/WWW/m4lib/thissite.m44
-rw-r--r--examples/WWW/m4lib/uses.m49
-rw-r--r--examples/WWW/m4lib/visions.m43
-rw-r--r--examples/WWW/m4lib/whatis.m45
-rw-r--r--examples/WWW/modules.htm52
-rw-r--r--examples/WWW/news.htm54
-rw-r--r--examples/WWW/readme.htm58
-rw-r--r--examples/WWW/thanks.htm52
-rw-r--r--examples/WWW/thissite.htm56
-rw-r--r--examples/WWW/todo.htm61
-rw-r--r--examples/WWW/uses.htm60
-rw-r--r--examples/WWW/visions.htm180
-rw-r--r--examples/WWW/whatis.htm60
-rwxr-xr-xinstall-sh1
-rw-r--r--lib/Makefile.am4
-rw-r--r--lib/Makefile.in164
-rw-r--r--lib/error.c94
-rw-r--r--lib/error.h64
-rw-r--r--lib/getopt.c205
-rw-r--r--lib/getopt.h99
-rw-r--r--lib/getopt1.c11
-rw-r--r--lib/obstack.c205
-rw-r--r--lib/obstack.h364
-rw-r--r--lib/regex.c989
-rw-r--r--lib/regex.h130
-rw-r--r--lib/strtol.c326
-rw-r--r--libltdl/COPYING.LIB481
-rw-r--r--libltdl/Makefile.am44
-rw-r--r--libltdl/Makefile.in454
-rw-r--r--libltdl/README1
-rw-r--r--libltdl/acconfig.h12
-rw-r--r--libltdl/acinclude.m4427
-rw-r--r--libltdl/aclocal.m4566
-rw-r--r--libltdl/config.h.in80
-rwxr-xr-xlibltdl/configure3077
-rw-r--r--libltdl/configure.in373
-rw-r--r--libltdl/ltdl.c1577
-rw-r--r--libltdl/ltdl.h91
-rw-r--r--libltdl/stamp-h.in1
-rwxr-xr-xltconfig1935
-rw-r--r--ltmain.sh3164
-rwxr-xr-xmissing72
-rwxr-xr-xmkinstalldirs2
-rw-r--r--modules/Makefile.am16
-rw-r--r--modules/Makefile.in168
-rw-r--r--modules/stdlib.c2
-rw-r--r--modules/test.c4
-rw-r--r--modules/time.c2
-rw-r--r--po/ChangeLog12
-rw-r--r--po/POTFILES.in4
-rw-r--r--po/cat-id-tbl.c208
-rw-r--r--po/cs.gmobin0 -> 12502 bytes
-rw-r--r--po/cs.po725
-rw-r--r--po/de.gmobin11731 -> 12494 bytes
-rw-r--r--po/de.po408
-rw-r--r--po/el.gmobin0 -> 12751 bytes
-rw-r--r--po/el.po690
-rw-r--r--po/fr.gmobin11890 -> 11831 bytes
-rw-r--r--po/fr.po322
-rw-r--r--po/it.gmobin6118 -> 6033 bytes
-rw-r--r--po/it.po322
-rw-r--r--po/ja.gmobin12649 -> 13650 bytes
-rw-r--r--po/ja.po355
-rw-r--r--po/m4.pot302
-rw-r--r--po/nl.gmobin11661 -> 11589 bytes
-rw-r--r--po/nl.po322
-rw-r--r--po/pl.gmobin11935 -> 12097 bytes
-rw-r--r--po/pl.po384
-rw-r--r--po/ru.gmobin11431 -> 13188 bytes
-rw-r--r--po/ru.po392
-rw-r--r--po/sv.gmobin334 -> 11978 bytes
-rw-r--r--po/sv.po515
-rw-r--r--src/Makefile.am8
-rw-r--r--src/Makefile.in179
-rw-r--r--src/ansi2knr.c149
-rw-r--r--src/builtin.c120
-rw-r--r--src/builtin.h10
-rw-r--r--src/debug.c11
-rw-r--r--src/format.c2
-rw-r--r--src/freeze.c20
-rw-r--r--src/input.c20
-rw-r--r--src/m4.c64
-rw-r--r--src/m4.h12
-rw-r--r--src/module.c421
-rw-r--r--src/output.c76
-rw-r--r--src/stackovf.c11
-rw-r--r--tests/Makefile.am4
-rw-r--r--tests/Makefile.in188
-rwxr-xr-xtests/generated-tests/argument.1.test2
-rwxr-xr-xtests/generated-tests/argument.2.test2
-rwxr-xr-xtests/generated-tests/argument.3.test2
-rwxr-xr-xtests/generated-tests/argument.4.test2
-rwxr-xr-xtests/generated-tests/changeco.1.test2
-rwxr-xr-xtests/generated-tests/changeco.2.test2
-rwxr-xr-xtests/generated-tests/changequ.1.test2
-rwxr-xr-xtests/generated-tests/changequ.2.test2
-rwxr-xr-xtests/generated-tests/changequ.3.test2
-rwxr-xr-xtests/generated-tests/changesy.1.test2
-rwxr-xr-xtests/generated-tests/changesy.2.test2
-rwxr-xr-xtests/generated-tests/changesy.3.test2
-rwxr-xr-xtests/generated-tests/changesy.4.test2
-rwxr-xr-xtests/generated-tests/changesy.5.test2
-rwxr-xr-xtests/generated-tests/changesy.6.test2
-rwxr-xr-xtests/generated-tests/changesy.7.test2
-rwxr-xr-xtests/generated-tests/changesy.8.test2
-rwxr-xr-xtests/generated-tests/cleardiv.1.test2
-rwxr-xr-xtests/generated-tests/cleardiv.2.test2
-rwxr-xr-xtests/generated-tests/define.1.test2
-rwxr-xr-xtests/generated-tests/define.2.test2
-rwxr-xr-xtests/generated-tests/defn.1.test2
-rwxr-xr-xtests/generated-tests/defn.2.test2
-rwxr-xr-xtests/generated-tests/divert.1.test2
-rwxr-xr-xtests/generated-tests/divert.2.test2
-rwxr-xr-xtests/generated-tests/divnum.1.test2
-rwxr-xr-xtests/generated-tests/dnl.1.test2
-rwxr-xr-xtests/generated-tests/dumpdef.1.test2
-rwxr-xr-xtests/generated-tests/errprint.1.test2
-rwxr-xr-xtests/generated-tests/errprint.2.test2
-rwxr-xr-xtests/generated-tests/esyscmd.1.test2
-rwxr-xr-xtests/generated-tests/eval.1.test2
-rwxr-xr-xtests/generated-tests/eval.2.test2
-rwxr-xr-xtests/generated-tests/format.1.test2
-rwxr-xr-xtests/generated-tests/ifdef.1.test2
-rwxr-xr-xtests/generated-tests/ifelse.1.test2
-rwxr-xr-xtests/generated-tests/ifelse.2.test2
-rwxr-xr-xtests/generated-tests/include.1.test2
-rwxr-xr-xtests/generated-tests/include.2.test2
-rwxr-xr-xtests/generated-tests/include.3.test2
-rwxr-xr-xtests/generated-tests/incr.1.test2
-rwxr-xr-xtests/generated-tests/index.1.test2
-rwxr-xr-xtests/generated-tests/indir.1.test2
-rwxr-xr-xtests/generated-tests/len.1.test2
-rwxr-xr-xtests/generated-tests/loops.1.test2
-rwxr-xr-xtests/generated-tests/loops.2.test2
-rwxr-xr-xtests/generated-tests/m4exit.1.test2
-rwxr-xr-xtests/generated-tests/m4wrap.1.test2
-rwxr-xr-xtests/generated-tests/patsubst.1.test2
-rwxr-xr-xtests/generated-tests/patsubst.2.test2
-rwxr-xr-xtests/generated-tests/pseudoar.1.test2
-rwxr-xr-xtests/generated-tests/pseudoar.2.test2
-rwxr-xr-xtests/generated-tests/pseudoar.3.test2
-rwxr-xr-xtests/generated-tests/pseudoar.4.test2
-rwxr-xr-xtests/generated-tests/pseudoar.5.test2
-rwxr-xr-xtests/generated-tests/pushdef.1.test2
-rwxr-xr-xtests/generated-tests/pushdef.2.test2
-rwxr-xr-xtests/generated-tests/regexp.1.test2
-rwxr-xr-xtests/generated-tests/regexp.2.test2
-rwxr-xr-xtests/generated-tests/substr.1.test2
-rwxr-xr-xtests/generated-tests/symbols.1.test19
-rwxr-xr-xtests/generated-tests/sysval.1.test2
-rwxr-xr-xtests/generated-tests/trace.1.test2
-rwxr-xr-xtests/generated-tests/translit.1.test2
-rwxr-xr-xtests/generated-tests/undefine.1.test2
-rwxr-xr-xtests/generated-tests/undivert.1.test2
-rwxr-xr-xtests/generated-tests/undivert.2.test2
-rwxr-xr-xtests/generated-tests/undivert.3.test2
201 files changed, 21048 insertions, 7076 deletions
diff --git a/AUTHORS b/AUTHORS
index c8e90898..26c82327 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -28,3 +28,7 @@ Disclaims changes by John Gerard Makecki.
M4 Francois Pinard Canada 1949 1996-02-01
Assigns past and future changes.
+M4 Thomas Tanner Germany 1979 1999-06-23
+Assigns past and future changes.
+tanner@ffii.org
+
diff --git a/COPYING b/COPYING
index 60549be5..d60c31a9 100644
--- a/COPYING
+++ b/COPYING
@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
+ Copyright (C) <year> <name of author>
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
@@ -313,7 +313,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
diff --git a/ChangeLog b/ChangeLog
index a6e0d0f2..365e5a9f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,201 @@
+2000-01-10 Rene' Seindal <rene@seindal.dk>
+
+ * Prerelease 1.4o.
+
+ * TODO, NEWS: Cleaned up and updated.
+
+ * src/m4.c (main): New variable exit_status for exit status in
+ case of unreadable files. Now m4 will exit with EXIT_FAILURE if a
+ file cannot be read instead of EXIT_SUCCESS.
+
+ * src/builtin.c (m4_indir): Changed error message to help
+ translators (from Akim Demaille <demaille@inf.enst.fr>).
+
+ * lib/obstack.[hc], getopt*.[ch]: Updated to newest version from
+ Cygnus.
+
+ * lib/error.[hc], lib/regex.[hc], lib/strtol.c: Updated to version
+ from glic 2.1.2.
+
+ * src/input.c (match_input): Reordering of code, to avoid multiple
+ calls to push_string_init() from obstack_grow(), which can happen
+ with some compilers (found and fixed by James Bonfield
+ <jkb@mrc-lmb.cam.ac.uk>).
+
+ * src/stackovf.c: Added prototypes for ultrix.
+ (setup_stackovf_trap): Added __P to cast.
+ (Both reported by John David Anglin <dave@hiauly1.hia.nrc.ca>)
+
+2000-01-09 Rene' Seindal <rene@seindal.dk>
+
+ * doc/m4.texinfo (Changequote): Added comment about changing
+ quotes when the old quote is a part of the new.
+
+ * src/builtin.c (expand_ranges): Added break after trailing dash.
+ This caused misbehavious on some systems (found and fixed by Akim
+ Demaille <demaille@inf.enst.fr>).
+
+ * AUTHORS: Thomas Tanner included
+
+ * acconfig.h: Added entry for ss_sp (see below).
+
+ * configure.in (use_stackovf): Added check for stack_t with member
+ ss_base instead of ss_sp (BSDI notably). (Reported by Paul Eggert
+ <eggert@twinsun.com>).
+
+ * doc/m4.texinfo (Frozen files): Added a simpler example for
+ generating frozen files from several input files.
+
+1999-11-14 Paul Eggert <eggert@twinsun.com>
+
+ * po/POTFILES.in: Add lib/getopt.c, lib/obstack.c,
+ lib/regex.c, lib/xmalloc.c.
+
+1999-11-10 Rene' Seindal <rene@seindal.dk>
+
+ * Makefile.am (ACLOCAL_AMFLAGS): Passes -I acm4 to aclocal.
+
+ * src/module.c: reindented.
+ (module_load): return if this is a repeated load of same module.
+ (module_init): slight change of logic to avoid repeated
+ initialisation debug messages.
+
+ * Makefile.am (DIST_SUBDIRS): Added to ensure modules/ is included
+ in the distribution.
+
+ * modules/Makefile.am (test_la_LDFLAGS): set to -module to silence
+ automake warnings about missing lib prefix.
+ (time_la_LDFLAGS): ditto
+ (stdlib_la_LDFLAGS): ditto
+
+1999-11-10 Paul Eggert <eggert@twinsun.com>
+
+ * src/m4.h: Include error.h, since our macros use error.
+ * src/m4.c: Don't need to include error.h.
+
+1999-11-09 Paul Eggert <eggert@twinsun.com>
+
+ * src/m4.h (voidstar): Define to void * if __STDC__ is defined
+ and zero, as Solaris 7 cc does.
+ (bcopy): Remove macro; no longer needed with new obstack.h.
+
+ * src/output.c (freeze_diversions): Don't assume that a
+ diversion size can fit in `int'. Check for diversion file
+ size too large to be printed with `unsigned long'.
+
+ * src/Makefile.am (CFLAGS): Omit -Wall.
+
+ * src/stackovf.c (setup_stackovf_trap): Remove cast to unsigned.
+
+ * src/debug.c (trace_format):
+ Use ANSI C if (defined __STDC__ && __STDC__) || defined PROTOTYPES.
+
+ * src/freeze.c (produce_frozen_state):
+ Don't assume string lengths fit in int.
+
+1999-10-13 Rene' Seindal <rene@seindal.dk>
+
+ * configure.in (ALL_LINGUAS): Added Greek translation (el).
+ (ALL_LINGUAS): Added Czech translation (cs).
+
+1999-03-30 Gary V. Vaughan <gvaughan@oranda.demon.co.uk>
+
+ * src/builtin.c: moved module loading functions into...
+ * src/module.c: entirely new implementation using libltdl.
+ * po/POTFILES.in: added src/module.c.
+ * modules/Makefile.am (LTLIBRARIES): Removed lib prefix as these
+ are modules, not linktime libraries.
+ (LDFLAGS): added -no-undefined -module and -avoid-version flags.
+ * modules/stdlib.c (m4_macro_table): use <name>_LTX collision
+ avoidance on exported symbols.
+ * modules/test.c (m4_macro_table, m4_init_module,
+ m4_finish_module): ditto.
+ * modules/time.c (m4_macro_table): ditto.
+
+ * modules/time2.m4: new file which requires command line loading
+ of modules.
+ * src/m4.c (--load-module): dynamically load named runtime module
+ into running executable before reading the source.
+ (--module-directory): prepend a directory to the module search
+ path.
+ (module_init()): Do this the first time we load a module instead;
+ if the module subsystem is broken normal m4 scripts can still run.
+ * src/m4.h (install_builtin_table): is now exported.
+
+1999-03-26 Gary V. Vaughan <gvaughan@oranda.demon.co.uk>
+
+ * src/module.c: removed. No longer required.
+ * po/POTFILES.in: removed src/module.c.
+
+ * Makefile.am (MAINTAINERCLEANFILES): Remove all the files that
+ the bootstrap script can recreate.
+ * acm4/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * doc/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * examples/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * lib/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ (AUTOMAKE_OPTIONS): reduced strictness to allow COPYING.LIB.
+ * modules/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * src/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * tests/Makefile.am (MAINTAINERCLEANFILES): ditto.
+
+ * acinclude.m4: removed. `aclocal -I acm4' handles this much
+ better.
+ * acm4/Makefile.am (ACINCLUDE_M4): ditto.
+ * acm4/gettext.m4: removed. It causes a multiple definition vs.
+ the installed gettext.m4 file when running aclocal.
+
+1999-03-25 Gary V. Vaughan <gvaughan@oranda.demon.co.uk>
+
+ * configure.in (AM_INIT_AUTOMAKE): bumped version number to
+ distinguish this from the last prerelease.
+ (AC_LIBLTDL_CONVENIENCE): build libltdl as a convenience library
+ in its own subdirectory.
+
+ * modules/Makefile.am (*_SOURCES): renamed to use libtool's "no
+ lib prefix on a module" feature.
+ (LDFLAGS): Added `-module -avoid-version' flags to build
+ versionless module libraries.
+ * src/builtin.c (m4_load_module): use libltdl.
+ (module_unload_all): use libltdl.
+ * src/m4.c (module_init): initialise module loading on demand for
+ better diagnostics, and so that m4 will still work even if
+ the module code is broken.
+ * src/m4.h (module_init): removed. No longer relevant.
+ * modules/stdlib.c (m4_macro_table): use stdlib_LTX_ prefix on
+ exported symbols for compatibility with dlpreopening.
+ * modules/test.c (m4_macro_table, m4_init_module,
+ m4_finish_module): ditto.
+ * modules/time.c (m4_macro_table): ditto.
+
+ * bootstrap: New file. Runs all the autoutils in the right order
+ after a fresh checkout, or a make maintainer-clean.
+
+1999-02-18 Akim Demaille <demaille@inf.enst.fr>
+
+ * src/builtin.c (dump_symbols): New function, factorising common
+ content of m4_dumpdef and m4_symbols.
+ (m4_dumpdef): Use it.
+ (m4_symbols): New function, implementing `symbols'. Use it.
+ * doc/m4.texinfo: Fixed missing commas after @xref, so that the
+ file compile with modern makeinfo.
+ (Symbols): New node, documenting symbols.
+ (direntry): Modernize.
+
+
+1998-12-11 Rene' Seindal <rene@seindal.dk>
+
+ * src/builtin.c (predefined_tab): New predefined macros
+ __m4_changeword__, __m4_gmp__ and __m4_modules__ for testing for
+ configure time options.
+
+1998-12-01 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
+
+ * src/module.c (module_try_load): Don't try to be clever and
+ overwrite argument string. Instead allocate all constructed
+ strings locally, since they can have arbitrary lengths. Make
+ arguments pointers to const.
+ (module_search): Simplify due to above change.
+
1998-11-29 Rene' Seindal <rene@seindal.dk>
* Prerelease 1.4n.
diff --git a/INSTALL b/INSTALL
index 50dbe439..b42a17ac 100644
--- a/INSTALL
+++ b/INSTALL
@@ -180,4 +180,3 @@ operates.
script, and exit.
`configure' also accepts some other, not widely useful, options.
-
diff --git a/Makefile.am b/Makefile.am
index 12fc9de8..a7af35dd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,8 +1,15 @@
-AUTOMAKE_OPTIONS = 1.3b gnits
+AUTOMAKE_OPTIONS = 1.4 gnits
-SUBDIRS = acm4 intl po lib src doc tests examples @MODULES_DIR@
+ACLOCAL_AMFLAGS=-I acm4
-# DIST_SUBDIRS = acm4 intl po lib src doc tests examples modules
+# A list of all the files in the current directory which can be regenerated
+MAINTAINERCLEANFILES = ABOUT-NLS COPYING INSTALL Makefile.in aclocal.m4 \
+ config.guess config.h.in config.sub configure install-sh \
+ ltconfig ltmain.sh missing mkinstalldirs stamp-h.in \
+ po/cat-id-tbl.c po/m4.pot po/stamp-cat-id
+
+SUBDIRS = acm4 intl po lib libltdl src doc tests examples @MODULES_DIR@
+DIST_SUBDIRS = acm4 intl po lib libltdl src doc tests examples modules
# Tag before making distribution. Also, don't make a distribution if
# checks fail. Also, make sure the NEWS file is up-to-date.
diff --git a/Makefile.in b/Makefile.in
index ead932e4..790ccc53 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.3b from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
-SHELL = /bin/sh
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -59,6 +59,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+AS = @AS@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -66,6 +67,7 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DLLDFLAGS = @DLLDFLAGS@
+DLLTOOL = @DLLTOOL@
GENCAT = @GENCAT@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
@@ -86,6 +88,7 @@ MODULES_DIR = @MODULES_DIR@
MODULE_PATH = @MODULE_PATH@
MSGFMT = @MSGFMT@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
@@ -99,36 +102,42 @@ VERSION = @VERSION@
l = @l@
pkglibexecdir = @pkglibexecdir@
-AUTOMAKE_OPTIONS = 1.3b gnits
+AUTOMAKE_OPTIONS = 1.4 gnits
-SUBDIRS = acm4 intl po lib src doc tests examples @MODULES_DIR@
+ACLOCAL_AMFLAGS = -I acm4
+
+# A list of all the files in the current directory which can be regenerated
+MAINTAINERCLEANFILES = ABOUT-NLS COPYING INSTALL Makefile.in aclocal.m4 config.guess config.h.in config.sub configure install-sh ltconfig ltmain.sh missing mkinstalldirs stamp-h.in po/cat-id-tbl.c po/m4.pot po/stamp-cat-id
+
+
+SUBDIRS = acm4 intl po lib libltdl src doc tests examples @MODULES_DIR@
+DIST_SUBDIRS = acm4 intl po lib libltdl src doc tests examples modules
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
-DIST_COMMON = README ABOUT-NLS AUTHORS BACKLOG COPYING ChangeLog \
-INSTALL Makefile.am Makefile.in NEWS README-alpha THANKS TODO \
-acconfig.h acinclude.m4 aclocal.m4 config.guess config.h.in config.sub \
-configure configure.in install-sh ltconfig ltmain.sh missing \
-mkinstalldirs stamp-h.in
+DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS BACKLOG COPYING \
+ChangeLog INSTALL Makefile.am Makefile.in NEWS README-alpha THANKS TODO \
+acconfig.h aclocal.m4 config.guess config.h.in config.sub configure \
+configure.in install-sh ltconfig ltmain.sh missing mkinstalldirs
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
-GZIP = --best
-all: all-recursive-am all-am
-
+GZIP_ENV = --best
+all: all-redirect
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-$(ACLOCAL_M4): configure.in acinclude.m4
- cd $(srcdir) && $(ACLOCAL)
+$(ACLOCAL_M4): configure.in acm4/error.m4 acm4/gmp.m4 acm4/modules.m4 \
+ acm4/regex.m4
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
@@ -136,16 +145,23 @@ $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCI
cd $(srcdir) && $(AUTOCONF)
config.h: stamp-h
- @:
+ @if test ! -f $@; then \
+ rm -f stamp-h; \
+ $(MAKE) stamp-h; \
+ else :; fi
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
$(SHELL) ./config.status
- @echo timestamp > stamp-h
+ @echo timestamp > stamp-h 2> /dev/null
$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
+ @if test ! -f $@; then \
+ rm -f $(srcdir)/stamp-h.in; \
+ $(MAKE) $(srcdir)/stamp-h.in; \
+ else :; fi
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
cd $(top_srcdir) && $(AUTOHEADER)
- @echo timestamp > $(srcdir)/stamp-h.in
+ @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
mostlyclean-hdr:
@@ -169,41 +185,65 @@ all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
- target=`echo $@ | sed s/-recursive//`; \
echo "Making $$target in $$subdir"; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$target) \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done && test -z "$$fail"
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
+ test "$$subdir" = "." && dot_seen=yes; \
done; \
+ test "$$dot_seen" = "no" && rev=". $$rev"; \
+ target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
- target=`echo $@ | sed s/-recursive//`; \
echo "Making $$target in $$subdir"; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$target) \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
+ && mkid -f$$here/ID $$unique $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
- test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
@@ -229,7 +269,7 @@ top_distdir = $(distdir)
# tarfile.
distcheck: dist
-rm -rf $(distdir)
- GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz
+ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
@@ -242,16 +282,18 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) dist
-rm -rf $(distdir)
- @echo "========================"; \
- echo "$(distdir).tar.gz is ready for distribution"; \
- echo "========================"
+ @banner="$(distdir).tar.gz is ready for distribution"; \
+ dashes=`echo "$$banner" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ echo "$$dashes"
dist: distdir
-chmod -R a+r $(distdir)
- GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
- GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
distdir: $(DISTFILES)
@if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" > /dev/null; then :; else \
@@ -263,42 +305,52 @@ distdir: $(DISTFILES)
-chmod 777 $(distdir)
@for file in $(DISTFILES); do \
d=$(srcdir); \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
done
- for subdir in $(SUBDIRS); do \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
- || exit 1; \
- chmod 777 $(distdir)/$$subdir; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+ for subdir in $(DIST_SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
|| exit 1; \
+ chmod 777 $(distdir)/$$subdir; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+ || exit 1; \
+ fi; \
done
+info-am:
info: info-recursive
+dvi-am:
dvi: dvi-recursive
-check: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
installcheck: installcheck-recursive
all-recursive-am: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
-all-am: Makefile config.h
-
+install-exec-am:
install-exec: install-exec-recursive
- @$(NORMAL_INSTALL)
+install-data-am:
install-data: install-data-recursive
- @$(NORMAL_INSTALL)
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-recursive
- @:
-
+uninstall-am:
uninstall: uninstall-recursive
-
+all-am: Makefile config.h
+all-redirect: all-recursive-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs: installdirs-recursive
+installdirs-am:
mostlyclean-generic:
@@ -310,26 +362,27 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
-clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
-
-distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
+mostlyclean: mostlyclean-recursive
-maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
- maintainer-clean-generic distclean-am
+clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
-mostlyclean: mostlyclean-recursive mostlyclean-am
+clean: clean-recursive
-clean: clean-recursive clean-am
+distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
+ -rm -f libtool
-distclean: distclean-recursive distclean-am
+distclean: distclean-recursive
-rm -f config.status
- -rm -f libtool
-maintainer-clean: maintainer-clean-recursive maintainer-clean-am
+maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
+ maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
-rm -f config.status
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
@@ -338,14 +391,13 @@ uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
all-recursive check-recursive installcheck-recursive info-recursive \
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
-installcheck all-recursive-am all-am install-exec install-data install \
-uninstall all installdirs mostlyclean-generic distclean-generic \
-clean-generic maintainer-clean-generic clean mostlyclean distclean \
-maintainer-clean
-
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
+install-exec-am install-exec install-data-am install-data install-am \
+install uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-# DIST_SUBDIRS = acm4 intl po lib src doc tests examples modules
# Tag before making distribution. Also, don't make a distribution if
# checks fail. Also, make sure the NEWS file is up-to-date.
diff --git a/NEWS b/NEWS
index 829d3da1..c9d38437 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,14 @@
GNU m4 NEWS - History of user-visible changes. -*-indented-text-*-
-Copyright (C) 1992, 1993, 1994, 1998 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1998, 2000 Free Software Foundation, Inc.
+
+Version beta 1.4o - January 2000, by Rene' Seindal
+
+* Modules can be loaded from the command line with --load-module
+
+* Modules now use libtool's wrapper libltdl.
+
+* Bug fixes.
+
Version beta 1.4n - November 1998, by Rene' Seindal
diff --git a/TODO b/TODO
index 01cc3abd..225bf7e7 100644
--- a/TODO
+++ b/TODO
@@ -14,6 +14,9 @@ for any of these ideas or if you have others to add.
+ The test case `other-tests/stackovf.test' does not work.
+ + Some characters, such as comma, are still hardcoded, and does not
+ follow changes in the syntax table.
+
+ sigstack/sigaltstack and ENOSYS
When sigstack or sigaltstack fail with errno == ENOSYS, m4 should
@@ -32,16 +35,17 @@ for any of these ideas or if you have others to add.
jsm28@cam.ac.uk
-
+
* FEATURES OR PROBLEMS
+ Implement discarding comment delimiters with the syntax table.
- + The module system is still rudimentary (see below)
-
+ The $ used in user defined macros cannot be changed through
changesyntax. It should be handled as a modifier.
+ + If configured --with-gmp for multiple precision arithmetic there are
+ some warnings, but it passes the tests.
+
+ Make show include dependencies like gcc so targets are updated
when their (included) input files are updated (Erick B).
@@ -52,7 +56,7 @@ for any of these ideas or if you have others to add.
+ Add support for wide character sets.
-
+
* OPTIMIZATION AND CLEAN UP
+ Have NULs go really undisturbed through GNU m4
@@ -61,63 +65,7 @@ for any of these ideas or if you have others to add.
etc.).
-
* MODULE SPECIFIC ISSUES
- + Support for other DL interfaces besides dlopen and shl_load.
- Currently it compiles and works on HPUX (v9,v10), SunOS (v5),
- Solaris (v5) and GNU/Linux (v2.0).
-
- + Modules should be loadable from the command line with something like
- `-M module.so' o `--load-module=module.so'. M4 should abort if it
- fails.
-
+ Some way of linking a module statically is needed, for systems
without support for dynamic loading.
-
-
-
-Below is the old 1.4 TODO list, several years old. Only a few points
-have been kept. Some things are fixed, many others just seem
-dated. Write me if I have been to harsh. (René Seindal)
-
-------------------------------------------------------------------------
-Tell <pinard@iro.umontreal.ca> if you feel like volunteering for any
-of these ideas, listed more or less in decreasing order of priority.
-Some TODO items are implicit from received email. See file BACKLOG.
-
-.* Features or problems
-. + Update documentation from accumulated mail about it
-. + Changeword without arguments should restore default behavior
-. + Study synclines at the very beginning of each diverted sequence
-. + Make eval work on bignums - the 32 bits limit is artificial
- From Krste Asanovic <krste@icsi.berkeley.edu>, 1993-03-20
-. + Make show include dependencies like gcc so targets are updated
- when their (included) input files are updated (Erick B).
-. + Ask FSF to create m4-bugs@gnu.org for bug reports (Erick B).
-. + m4wrap.1.test fail on Solaris 2.6 using egcs 1.1a compiler (Erick B).
-
-.* Optimization and clean up
-. + Check for memory leaks and uninitialized reads
- From Vern Paxson <vern@horse.ee.lbl.gov> on 1993-12-06
-. + Simplify format/ecvt code, together with HAVE_EFGCVT
-. + Finalize the stdarg vs varargs thing
-. + Profile GNU m4 and speed it up
- From David J. MacKenzie <djm@eng.umd.edu>, 1993-01-20
-
- GNU m4 should be sped up by a factor of three for competing
- with other versions (I think that the lexer is not agressive
- enough and too often return single characters; obstacks might
- be a little abused, too).
-. + Have NULs go really undisturbed through GNU m4
- See `dumpdef' and debugging section, which abuses %s
- From Thorsten Ohl <ohl@chico.harvard.edu>, 1992-12-21
-
- path.c (add_include_directory): Why the '\0' terminator?
-
- GNU m4 is lousy regarding NULs in streams (this would require
- maintaining the string lengths, and avoiding strlen, strcpy,
- etc.).
-. + Clean up the obstack.[ch] code
-. + Use rx.[ch] instead of regex.[ch]
- From Hal Peterson <hrp@ironwood.cray.com>, 1994-04-22
diff --git a/acconfig.h b/acconfig.h
index cf2bf514..6e5460a8 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -1,5 +1,5 @@
/* Special definitions for GNU m4, processed by autoheader.
- Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2000 Free Software Foundation, Inc.
Francois Pinard <pinard@iro.umontreal.ca>, 1993.
*/
@@ -28,6 +28,9 @@
/* Define to struct sigaltstack if stack_t is not defined in sys/signal.h */
#undef stack_t
+/* Define to ss_base if stack_t has ss_base instead of ss_sp */
+#undef ss_sp
+
/* Define to 1 if using stack overflow detection. */
#undef USE_STACKOVF
diff --git a/acinclude.m4 b/acinclude.m4
deleted file mode 100644
index 5e8f0042..00000000
--- a/acinclude.m4
+++ /dev/null
@@ -1,523 +0,0 @@
-#serial 1
-
-dnl FIXME: put these prerequisite-only *.m4 files in a separate
-dnl directory -- otherwise, they'll conflict with existing files.
-
-dnl These are the prerequisite macros for GNU's error.c file.
-AC_DEFUN(jm_PREREQ_ERROR,
-[
- AC_CHECK_FUNCS(strerror strerror_r vprintf doprnt)
- AC_HEADER_STDC
-])
-# Macro to add for using GNU gettext.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# Modified for GNU m4 by René Seindal (rene@seindal.dk)
-
-# serial 5
-
-AC_DEFUN(AM_WITH_NLS,
- [AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-
- USE_INCLUDED_LIBINTL=no
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- AC_DEFINE(ENABLE_NLS)
- AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH(included-gettext,
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If gettext or catgets are available (in this order) we
- dnl use this. Else we have to fall back to GNU NLS library.
- dnl catgets is only used if permitted by option --with-catgets.
- nls_cv_header_intl=
- nls_cv_header_libgt=
- CATOBJEXT=NONE
-
- AC_CHECK_HEADER(libintl.h,
- [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
- [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
- gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
-
- if test "$gt_cv_func_gettext_libc" != "yes"; then
- AC_CHECK_LIB(intl, bindtextdomain,
- [AC_CHECK_LIB(intl, gettext,
- [LIBS="$LIBS -lintl"
- gt_cv_func_gettext_libintl=yes],
- [gt_cv_func_gettext_libintl=no])])
- fi
-
- if test "$gt_cv_func_gettext_libc" = "yes" \
- || test "$gt_cv_func_gettext_libintl" = "yes"; then
- AC_DEFINE(HAVE_GETTEXT)
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
- if test "$MSGFMT" != "no"; then
- AC_CHECK_FUNCS(dcgettext)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
- return _nl_msg_cat_cntr],
- [CATOBJEXT=.gmo
- DATADIRNAME=share],
- [CATOBJEXT=.mo
- DATADIRNAME=lib])
- INSTOBJEXT=.mo
- fi
- fi
- ])
-
- if test "$CATOBJEXT" = "NONE"; then
- AC_MSG_CHECKING([whether catgets can be used])
- AC_ARG_WITH(catgets,
- [ --with-catgets use catgets functions if available],
- nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
- AC_MSG_RESULT($nls_cv_use_catgets)
-
- if test "$nls_cv_use_catgets" = "yes"; then
- dnl No gettext in C library. Try catgets next.
- AC_CHECK_LIB(i, main)
- AC_CHECK_FUNC(catgets,
- [AC_DEFINE(HAVE_CATGETS)
- INTLOBJS="\$(CATOBJS)"
- AC_PATH_PROG(GENCAT, gencat, no)dnl
- if test "$GENCAT" != "no"; then
- AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
- if test "$GMSGFMT" = "no"; then
- AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
- fi
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.cat
- INSTOBJEXT=.cat
- DATADIRNAME=lib
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi])
- fi
- fi
-
- if test "$CATOBJEXT" = "NONE"; then
- dnl Neither gettext nor catgets in included in the C library.
- dnl Fall back on GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- INTLOBJS="\$(GETTOBJS)"
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_SUBST(MSGFMT)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.gmo
- INSTOBJEXT=.mo
- DATADIRNAME=share
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
-
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext program is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- fi
-
- # We need to process the po/ directory.
- POSUB=po
- else
- DATADIRNAME=share
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
- AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
- AC_OUTPUT_COMMANDS(
- [case "$CONFIG_FILES" in *po/Makefile.in*)
- sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
- esac])
-
-
- # If this is used in GNU gettext we have to set USE_NLS to `yes'
- # because some of the sources are only built for this goal.
- if test "$PACKAGE" = gettext; then
- USE_NLS=yes
- USE_INCLUDED_LIBINTL=yes
- fi
-
- dnl These rules are solely for the distribution goal. While doing this
- dnl we only have to keep exactly one list of the available catalogs
- dnl in configure.in.
- for lang in $ALL_LINGUAS; do
- GMOFILES="$GMOFILES $lang.gmo"
- POFILES="$POFILES $lang.po"
- done
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATALOGS)
- AC_SUBST(CATOBJEXT)
- AC_SUBST(DATADIRNAME)
- AC_SUBST(GMOFILES)
- AC_SUBST(INSTOBJEXT)
- AC_SUBST(INTLDEPS)
- AC_SUBST(INTLLIBS)
- AC_SUBST(INTLOBJS)
- AC_SUBST(POFILES)
- AC_SUBST(POSUB)
- ])
-
-AC_DEFUN(AM_GNU_GETTEXT,
- [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
-
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
-unistd.h sys/param.h])
- AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
-strdup __argz_count __argz_stringify __argz_next])
-
- if test "${ac_cv_func_stpcpy+set}" != "set"; then
- AC_CHECK_FUNCS(stpcpy)
- fi
- if test "${ac_cv_func_stpcpy}" = "yes"; then
- AC_DEFINE(HAVE_STPCPY)
- fi
-
- AM_LC_MESSAGES
- AM_WITH_NLS
-
- if test "x$CATOBJEXT" != "x"; then
- if test "x$ALL_LINGUAS" = "x"; then
- LINGUAS=
- else
- AC_MSG_CHECKING(for catalogs to be installed)
- NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
- done
- LINGUAS=$NEW_LINGUAS
- AC_MSG_RESULT($LINGUAS)
- fi
-
- dnl Construct list of names of catalog files to be constructed.
- if test -n "$LINGUAS"; then
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
- fi
- fi
-
- dnl The reference to <locale.h> in the installed <libintl.h> file
- dnl must be resolved because we cannot expect the users of this
- dnl to define HAVE_LOCALE_H.
- if test $ac_cv_header_locale_h = yes; then
- INCLUDE_LOCALE_H="#include <locale.h>"
- else
- INCLUDE_LOCALE_H="\
-/* The system does not provide the header <locale.h>. Take care yourself. */"
- fi
- AC_SUBST(INCLUDE_LOCALE_H)
-
- dnl Determine which catalog format we have (if any is needed)
- dnl For now we know about two different formats:
- dnl Linux libc-5 and the normal X/Open format
- test -d intl || mkdir intl
- if test "$CATOBJEXT" = ".cat"; then
- AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
-
- dnl Transform the SED scripts while copying because some dumb SEDs
- dnl cannot handle comments.
- sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
- fi
- dnl po2tbl.sed is always needed.
- sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
- $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
-
- dnl In the intl/Makefile.in we have a special dependency which makes
- dnl only sense for gettext. We comment this out for non-gettext
- dnl packages.
- if test "$PACKAGE" = "gettext"; then
- GT_NO="#NO#"
- GT_YES=
- else
- GT_NO=
- GT_YES="#YES#"
- fi
- AC_SUBST(GT_NO)
- AC_SUBST(GT_YES)
-
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
- dnl Try to locate is.
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
-
- dnl *** For now the libtool support in intl/Makefile is not for real.
- l=
- AC_SUBST(l)
-
- dnl Generate list of files to be processed by xgettext which will
- dnl be included in po/Makefile.
- test -d po || mkdir po
- if test "x$srcdir" != "x."; then
- if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
- posrcprefix="$srcdir/"
- else
- posrcprefix="../$srcdir/"
- fi
- else
- posrcprefix="../"
- fi
- rm -f po/POTFILES
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
- ])
-
-# Search path for a program which passes the given test.
-# Ulrich Drepper <drepper@cygnus.com>, 1996.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# serial 1
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN(AM_PATH_PROG_WITH_TEST,
-[# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- /*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test -n "[$]$1"; then
- AC_MSG_RESULT([$]$1)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# serial 1
-
-AC_DEFUN(AM_LC_MESSAGES,
- [if test $ac_cv_header_locale_h = yes; then
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES)
- fi
- fi])
-
-#serial 2
-
-dnl Derived from code in GNU grep.
-
-AC_DEFUN(jm_WITH_REGEX,
- [
- dnl Even packages that don't use regex.c can use this macro.
- dnl Of course, for them it doesn't do anything.
-
- syscmd([test -f lib/regex.c])
- ifelse(sysval, 0,
- [
- AC_ARG_WITH(included-regex,
- [ --without-included-regex don't compile regex (use with caution)],
- jm_with_regex=$withval,
- jm_with_regex=yes)
- if test "$jm_with_regex" = yes; then
- LIBOBJS="$LIBOBJS regex.o"
- fi
- ],
- )
- ]
-)
-AC_DEFUN(AM_WITH_GMP,
- [AC_MSG_CHECKING(if extended and fractional arithmetic is wanted)
- AC_ARG_WITH(gmp,
- [ --with-gmp use gmp for extended and fractional arithmetic],
- [use_gmp=$withval], [use_gmp=no])
- AC_MSG_RESULT($use_gmp)
-
- if test "$use_gmp" = yes; then
- LIBS="$LIBS -lgmp"
- AC_CHECK_HEADER([gmp.h],
- [AC_CACHE_CHECK([for mpq_init in libgmp], ac_cv_func_mpq_init_libgmp,
- [AC_TRY_LINK([#include <gmp.h>],
- [mpq_t x; (void)mpq_init(x)],
- ac_cv_func_mpq_init_libgmp=yes,
- ac_cv_func_mpq_init_libgmp=no)])],
- ac_cv_func_mpq_init_libgmp=no)
-
- if test "$ac_cv_func_mpq_init_libgmp$ac_cv_header_gmp_h" = yesyes; then
- AC_DEFINE(WITH_GMP)
- else
- LIBS=`echo $LIBS | sed -e 's/-lgmp//'`
- AC_MSG_WARN([gmp library not found or does not appear to work])
- use_gmp=no
- fi
- fi
-
- if test "$use_gmp" != yes; then
- AC_CHECK_SIZEOF(long long int, 0)
- fi
- ])
-# Written by René Seindal (rene@seindal.dk)
-#
-# 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_WITH_MODULES,
- [AC_MSG_CHECKING(if support for dynamic modules is wanted)
- AC_ARG_WITH(modules,
- [ --with-modules add support for dynamic modules],
- [use_modules=$withval], [use_modules=no])
- AC_MSG_RESULT($use_modules)
-
- if test "$use_modules" = yes; then
- dnl We might no have it anyway, after all.
- with_modules=no
-
- dnl Test for dlopen in libc
- AC_CHECK_FUNCS(dlopen)
- if test "$ac_cv_func_dlopen" = yes; then
- with_modules=yes
- fi
-
- dnl Test for dlopen in libdl
- if test "$with_modules" = no; then
- AC_CHECK_LIB(dl, dlopen)
- if test "$ac_cv_lib_dl_dlopen" = yes; then
- with_modules=yes
-
-# LIBS="$LIBS -ldl"
- AC_DEFINE(HAVE_DLOPEN,1)
- fi
- fi
-
-# dnl Test for dld_link in libdld
-# if test "$with_modules" = no; then
-# AC_CHECK_LIB(dld, dld_link)
-# if test "$ac_cv_lib_dld_dld_link" = "yes"; then
-# with_modules=yes
-# AC_DEFINE(HAVE_DLD,1)
-# fi
-# fi
-
- dnl Test for shl_load in libdld
- if test "$with_modules" = no; then
- AC_CHECK_LIB(dld, shl_load)
- if test "$ac_cv_lib_dld_shl_load" = yes; then
- with_modules=yes
-
-# LIBS="$LIBS -ldld"
- AC_DEFINE(HAVE_SHL_LOAD,1)
- fi
- fi
-
- if test "$with_modules" = yes; then
- dnl This is for libtool
- DLLDFLAGS=-export-dynamic
-
- MODULES_DIR=modules
- MODULE_PATH="${pkglibexecdir}"
-
- AC_DEFINE(WITH_MODULES, 1)
- fi
-
- AC_SUBST(DLLDFLAGS)
- AC_SUBST(MODULES_DIR)
- AC_SUBST(MODULE_PATH)
- fi
- ])
-
-
diff --git a/aclocal.m4 b/aclocal.m4
index edf31391..7c12f596 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-dnl aclocal.m4 generated automatically by aclocal 1.3b
+dnl aclocal.m4 generated automatically by aclocal 1.4
-dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+dnl Copyright (C) 1994, 1995-8, 1999 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.
@@ -10,530 +10,6 @@ dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
-#serial 1
-
-dnl FIXME: put these prerequisite-only *.m4 files in a separate
-dnl directory -- otherwise, they'll conflict with existing files.
-
-dnl These are the prerequisite macros for GNU's error.c file.
-AC_DEFUN(jm_PREREQ_ERROR,
-[
- AC_CHECK_FUNCS(strerror strerror_r vprintf doprnt)
- AC_HEADER_STDC
-])
-# Macro to add for using GNU gettext.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# Modified for GNU m4 by René Seindal (rene@seindal.dk)
-
-# serial 5
-
-AC_DEFUN(AM_WITH_NLS,
- [AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-
- USE_INCLUDED_LIBINTL=no
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- AC_DEFINE(ENABLE_NLS)
- AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH(included-gettext,
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If gettext or catgets are available (in this order) we
- dnl use this. Else we have to fall back to GNU NLS library.
- dnl catgets is only used if permitted by option --with-catgets.
- nls_cv_header_intl=
- nls_cv_header_libgt=
- CATOBJEXT=NONE
-
- AC_CHECK_HEADER(libintl.h,
- [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
- [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
- gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
-
- if test "$gt_cv_func_gettext_libc" != "yes"; then
- AC_CHECK_LIB(intl, bindtextdomain,
- [AC_CHECK_LIB(intl, gettext,
- [LIBS="$LIBS -lintl"
- gt_cv_func_gettext_libintl=yes],
- [gt_cv_func_gettext_libintl=no])])
- fi
-
- if test "$gt_cv_func_gettext_libc" = "yes" \
- || test "$gt_cv_func_gettext_libintl" = "yes"; then
- AC_DEFINE(HAVE_GETTEXT)
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
- if test "$MSGFMT" != "no"; then
- AC_CHECK_FUNCS(dcgettext)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
- return _nl_msg_cat_cntr],
- [CATOBJEXT=.gmo
- DATADIRNAME=share],
- [CATOBJEXT=.mo
- DATADIRNAME=lib])
- INSTOBJEXT=.mo
- fi
- fi
- ])
-
- if test "$CATOBJEXT" = "NONE"; then
- AC_MSG_CHECKING([whether catgets can be used])
- AC_ARG_WITH(catgets,
- [ --with-catgets use catgets functions if available],
- nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
- AC_MSG_RESULT($nls_cv_use_catgets)
-
- if test "$nls_cv_use_catgets" = "yes"; then
- dnl No gettext in C library. Try catgets next.
- AC_CHECK_LIB(i, main)
- AC_CHECK_FUNC(catgets,
- [AC_DEFINE(HAVE_CATGETS)
- INTLOBJS="\$(CATOBJS)"
- AC_PATH_PROG(GENCAT, gencat, no)dnl
- if test "$GENCAT" != "no"; then
- AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
- if test "$GMSGFMT" = "no"; then
- AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
- fi
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.cat
- INSTOBJEXT=.cat
- DATADIRNAME=lib
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi])
- fi
- fi
-
- if test "$CATOBJEXT" = "NONE"; then
- dnl Neither gettext nor catgets in included in the C library.
- dnl Fall back on GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- INTLOBJS="\$(GETTOBJS)"
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_SUBST(MSGFMT)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.gmo
- INSTOBJEXT=.mo
- DATADIRNAME=share
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
-
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext program is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- fi
-
- # We need to process the po/ directory.
- POSUB=po
- else
- DATADIRNAME=share
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
- AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
- AC_OUTPUT_COMMANDS(
- [case "$CONFIG_FILES" in *po/Makefile.in*)
- sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
- esac])
-
-
- # If this is used in GNU gettext we have to set USE_NLS to `yes'
- # because some of the sources are only built for this goal.
- if test "$PACKAGE" = gettext; then
- USE_NLS=yes
- USE_INCLUDED_LIBINTL=yes
- fi
-
- dnl These rules are solely for the distribution goal. While doing this
- dnl we only have to keep exactly one list of the available catalogs
- dnl in configure.in.
- for lang in $ALL_LINGUAS; do
- GMOFILES="$GMOFILES $lang.gmo"
- POFILES="$POFILES $lang.po"
- done
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATALOGS)
- AC_SUBST(CATOBJEXT)
- AC_SUBST(DATADIRNAME)
- AC_SUBST(GMOFILES)
- AC_SUBST(INSTOBJEXT)
- AC_SUBST(INTLDEPS)
- AC_SUBST(INTLLIBS)
- AC_SUBST(INTLOBJS)
- AC_SUBST(POFILES)
- AC_SUBST(POSUB)
- ])
-
-AC_DEFUN(AM_GNU_GETTEXT,
- [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
-
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
-unistd.h sys/param.h])
- AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
-strdup __argz_count __argz_stringify __argz_next])
-
- if test "${ac_cv_func_stpcpy+set}" != "set"; then
- AC_CHECK_FUNCS(stpcpy)
- fi
- if test "${ac_cv_func_stpcpy}" = "yes"; then
- AC_DEFINE(HAVE_STPCPY)
- fi
-
- AM_LC_MESSAGES
- AM_WITH_NLS
-
- if test "x$CATOBJEXT" != "x"; then
- if test "x$ALL_LINGUAS" = "x"; then
- LINGUAS=
- else
- AC_MSG_CHECKING(for catalogs to be installed)
- NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
- done
- LINGUAS=$NEW_LINGUAS
- AC_MSG_RESULT($LINGUAS)
- fi
-
- dnl Construct list of names of catalog files to be constructed.
- if test -n "$LINGUAS"; then
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
- fi
- fi
-
- dnl The reference to <locale.h> in the installed <libintl.h> file
- dnl must be resolved because we cannot expect the users of this
- dnl to define HAVE_LOCALE_H.
- if test $ac_cv_header_locale_h = yes; then
- INCLUDE_LOCALE_H="#include <locale.h>"
- else
- INCLUDE_LOCALE_H="\
-/* The system does not provide the header <locale.h>. Take care yourself. */"
- fi
- AC_SUBST(INCLUDE_LOCALE_H)
-
- dnl Determine which catalog format we have (if any is needed)
- dnl For now we know about two different formats:
- dnl Linux libc-5 and the normal X/Open format
- test -d intl || mkdir intl
- if test "$CATOBJEXT" = ".cat"; then
- AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
-
- dnl Transform the SED scripts while copying because some dumb SEDs
- dnl cannot handle comments.
- sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
- fi
- dnl po2tbl.sed is always needed.
- sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
- $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
-
- dnl In the intl/Makefile.in we have a special dependency which makes
- dnl only sense for gettext. We comment this out for non-gettext
- dnl packages.
- if test "$PACKAGE" = "gettext"; then
- GT_NO="#NO#"
- GT_YES=
- else
- GT_NO=
- GT_YES="#YES#"
- fi
- AC_SUBST(GT_NO)
- AC_SUBST(GT_YES)
-
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
- dnl Try to locate is.
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
-
- dnl *** For now the libtool support in intl/Makefile is not for real.
- l=
- AC_SUBST(l)
-
- dnl Generate list of files to be processed by xgettext which will
- dnl be included in po/Makefile.
- test -d po || mkdir po
- if test "x$srcdir" != "x."; then
- if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
- posrcprefix="$srcdir/"
- else
- posrcprefix="../$srcdir/"
- fi
- else
- posrcprefix="../"
- fi
- rm -f po/POTFILES
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
- ])
-
-# Search path for a program which passes the given test.
-# Ulrich Drepper <drepper@cygnus.com>, 1996.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# serial 1
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN(AM_PATH_PROG_WITH_TEST,
-[# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- /*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test -n "[$]$1"; then
- AC_MSG_RESULT([$]$1)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# serial 1
-
-AC_DEFUN(AM_LC_MESSAGES,
- [if test $ac_cv_header_locale_h = yes; then
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES)
- fi
- fi])
-
-#serial 2
-
-dnl Derived from code in GNU grep.
-
-AC_DEFUN(jm_WITH_REGEX,
- [
- dnl Even packages that don't use regex.c can use this macro.
- dnl Of course, for them it doesn't do anything.
-
- syscmd([test -f lib/regex.c])
- ifelse(sysval, 0,
- [
- AC_ARG_WITH(included-regex,
- [ --without-included-regex don't compile regex (use with caution)],
- jm_with_regex=$withval,
- jm_with_regex=yes)
- if test "$jm_with_regex" = yes; then
- LIBOBJS="$LIBOBJS regex.o"
- fi
- ],
- )
- ]
-)
-AC_DEFUN(AM_WITH_GMP,
- [AC_MSG_CHECKING(if extended and fractional arithmetic is wanted)
- AC_ARG_WITH(gmp,
- [ --with-gmp use gmp for extended and fractional arithmetic],
- [use_gmp=$withval], [use_gmp=no])
- AC_MSG_RESULT($use_gmp)
-
- if test "$use_gmp" = yes; then
- LIBS="$LIBS -lgmp"
- AC_CHECK_HEADER([gmp.h],
- [AC_CACHE_CHECK([for mpq_init in libgmp], ac_cv_func_mpq_init_libgmp,
- [AC_TRY_LINK([#include <gmp.h>],
- [mpq_t x; (void)mpq_init(x)],
- ac_cv_func_mpq_init_libgmp=yes,
- ac_cv_func_mpq_init_libgmp=no)])],
- ac_cv_func_mpq_init_libgmp=no)
-
- if test "$ac_cv_func_mpq_init_libgmp$ac_cv_header_gmp_h" = yesyes; then
- AC_DEFINE(WITH_GMP)
- else
- LIBS=`echo $LIBS | sed -e 's/-lgmp//'`
- AC_MSG_WARN([gmp library not found or does not appear to work])
- use_gmp=no
- fi
- fi
-
- if test "$use_gmp" != yes; then
- AC_CHECK_SIZEOF(long long int, 0)
- fi
- ])
-# Written by René Seindal (rene@seindal.dk)
-#
-# 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_WITH_MODULES,
- [AC_MSG_CHECKING(if support for dynamic modules is wanted)
- AC_ARG_WITH(modules,
- [ --with-modules add support for dynamic modules],
- [use_modules=$withval], [use_modules=no])
- AC_MSG_RESULT($use_modules)
-
- if test "$use_modules" = yes; then
- dnl We might no have it anyway, after all.
- with_modules=no
-
- dnl Test for dlopen in libc
- AC_CHECK_FUNCS(dlopen)
- if test "$ac_cv_func_dlopen" = yes; then
- with_modules=yes
- fi
-
- dnl Test for dlopen in libdl
- if test "$with_modules" = no; then
- AC_CHECK_LIB(dl, dlopen)
- if test "$ac_cv_lib_dl_dlopen" = yes; then
- with_modules=yes
-
-# LIBS="$LIBS -ldl"
- AC_DEFINE(HAVE_DLOPEN,1)
- fi
- fi
-
-# dnl Test for dld_link in libdld
-# if test "$with_modules" = no; then
-# AC_CHECK_LIB(dld, dld_link)
-# if test "$ac_cv_lib_dld_dld_link" = "yes"; then
-# with_modules=yes
-# AC_DEFINE(HAVE_DLD,1)
-# fi
-# fi
-
- dnl Test for shl_load in libdld
- if test "$with_modules" = no; then
- AC_CHECK_LIB(dld, shl_load)
- if test "$ac_cv_lib_dld_shl_load" = yes; then
- with_modules=yes
-
-# LIBS="$LIBS -ldld"
- AC_DEFINE(HAVE_SHL_LOAD,1)
- fi
- fi
-
- if test "$with_modules" = yes; then
- dnl This is for libtool
- DLLDFLAGS=-export-dynamic
-
- MODULES_DIR=modules
- MODULE_PATH="${pkglibexecdir}"
-
- AC_DEFINE(WITH_MODULES, 1)
- fi
-
- AC_SUBST(DLLDFLAGS)
- AC_SUBST(MODULES_DIR)
- AC_SUBST(MODULE_PATH)
- fi
- ])
-
-
-
# Like AC_CONFIG_HEADER, but automatically create stamp file.
AC_DEFUN(AM_CONFIG_HEADER,
@@ -567,7 +43,7 @@ dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AM_PROG_INSTALL])
+[AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
@@ -577,8 +53,8 @@ if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
@@ -590,15 +66,6 @@ AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-# serial 1
-
-AC_DEFUN(AM_PROG_INSTALL,
-[AC_REQUIRE([AC_PROG_INSTALL])
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-AC_SUBST(INSTALL_SCRIPT)dnl
-])
-
#
# Check to make sure that the build environment is sane.
#
@@ -659,28 +126,66 @@ fi
AC_SUBST($1)])
-# serial 25 AM_PROG_LIBTOOL
-AC_DEFUN(AM_PROG_LIBTOOL,
-[AC_REQUIRE([AM_ENABLE_SHARED])dnl
-AC_REQUIRE([AM_ENABLE_STATIC])dnl
+# serial 39 AC_PROG_LIBTOOL
+AC_DEFUN(AC_PROG_LIBTOOL,
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+
+# Save cache, so that ltconfig can load it
+AC_CACHE_SAVE
+
+# Actually configure libtool. ac_aux_dir is where install-sh is found.
+CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
+|| AC_MSG_ERROR([libtool configure failed])
+
+# Reload cache, that may have been modified by ltconfig
+AC_CACHE_LOAD
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Redirect the config.log output again, so that the ltconfig log is not
+# clobbered by the next message.
+exec 5>>./config.log
+])
+
+AC_DEFUN(AC_LIBTOOL_SETUP,
+[AC_PREREQ(2.13)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AM_PROG_LD])dnl
-AC_REQUIRE([AM_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
# Check for any special flags to pass to ltconfig.
-libtool_flags=
+libtool_flags="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$silent" = yes && libtool_flags="$libtool_flags --silent"
+test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
+[libtool_flags="$libtool_flags --enable-dlopen"])
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[libtool_flags="$libtool_flags --enable-win32-dll"])
+AC_ARG_ENABLE(libtool-lock,
+ [ --disable-libtool-lock avoid locking (might break parallel builds)])
+test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
@@ -706,31 +211,41 @@ case "$host" in
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
;;
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+])
esac
+])
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
-|| AC_MSG_ERROR([libtool configure failed])
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
-# AM_ENABLE_SHARED - implement the --enable-shared flag
-# Usage: AM_ENABLE_SHARED[(DEFAULT)]
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
-AC_DEFUN(AM_ENABLE_SHARED,
-[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_DEFUN(AC_ENABLE_SHARED, [dnl
+define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(shared,
changequote(<<, >>)dnl
-<< --enable-shared[=PKGS] build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT],
+<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
changequote([, ])dnl
[p=${PACKAGE-default}
case "$enableval" in
@@ -748,26 +263,22 @@ no) enable_shared=no ;;
IFS="$ac_save_ifs"
;;
esac],
-enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
+enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
])
-# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
-AC_DEFUN(AM_DISABLE_SHARED,
-[AM_ENABLE_SHARED(no)])
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)])
-# AM_DISABLE_STATIC - set the default static flag to --disable-static
-AC_DEFUN(AM_DISABLE_STATIC,
-[AM_ENABLE_STATIC(no)])
-
-# AM_ENABLE_STATIC - implement the --enable-static flag
-# Usage: AM_ENABLE_STATIC[(DEFAULT)]
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
-AC_DEFUN(AM_ENABLE_STATIC,
-[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_DEFUN(AC_ENABLE_STATIC, [dnl
+define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(static,
changequote(<<, >>)dnl
-<< --enable-static[=PKGS] build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT],
+<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
changequote([, ])dnl
[p=${PACKAGE-default}
case "$enableval" in
@@ -785,28 +296,73 @@ no) enable_static=no ;;
IFS="$ac_save_ifs"
;;
esac],
-enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
+enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
])
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)])
+
-# AM_PROG_LD - find the path to the GNU or non-GNU linker
-AC_DEFUN(AM_PROG_LD,
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
+define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(fast-install,
+changequote(<<, >>)dnl
+<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+])
+
+# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
+AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)])
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+AC_DEFUN(AC_PROG_LD,
[AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
ac_prog=ld
if test "$ac_cv_prog_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
- # Accept absolute paths.
+ # Accept absolute paths.
changequote(,)dnl
- /* | [A-Za-z]:\\*)
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
changequote([,])dnl
- test -z "$LD" && LD="$ac_prog"
- ;;
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
@@ -823,10 +379,10 @@ else
fi
AC_CACHE_VAL(ac_cv_path_LD,
[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog"; then
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
@@ -834,7 +390,7 @@ AC_CACHE_VAL(ac_cv_path_LD,
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
test "$with_gnu_ld" != no && break
else
- test "$with_gnu_ld" != yes && break
+ test "$with_gnu_ld" != yes && break
fi
fi
done
@@ -850,10 +406,10 @@ else
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD)
-AM_PROG_LD_GNU
+AC_PROG_LD_GNU
])
-AC_DEFUN(AM_PROG_LD_GNU,
+AC_DEFUN(AC_PROG_LD_GNU,
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
@@ -863,29 +419,31 @@ else
fi])
])
-# AM_PROG_NM - find the path to a BSD-compatible name lister
-AC_DEFUN(AM_PROG_NM,
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+AC_DEFUN(AC_PROG_NM,
[AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM,
[if test -n "$NM"; then
# Let the user override the test.
ac_cv_path_NM="$NM"
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/nm; then
+ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -B"
+ ac_cv_path_NM="$ac_dir/nm -B"
+ break
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -p"
+ ac_cv_path_NM="$ac_dir/nm -p"
+ break
else
- ac_cv_path_NM="$ac_dir/nm"
+ ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
fi
- break
fi
done
IFS="$ac_save_ifs"
@@ -896,6 +454,80 @@ AC_MSG_RESULT([$NM])
AC_SUBST(NM)
])
+# AC_CHECK_LIBM - check for math library
+AC_DEFUN(AC_CHECK_LIBM,
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case "$host" in
+*-*-beos* | *-*-cygwin*)
+ # These system don't have libm
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, main, LIBM="-lm")
+ ;;
+esac
+])
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library, adds --enable-ltdl-convenience to
+# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
+# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
+# to be `${top_builddir}/libltdl'. Make sure you start DIR with
+# '${top_builddir}/' (note the single quotes!) if your package is not
+# flat, and, if you're not using automake, define top_builddir as
+# appropriate in the Makefiles.
+AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case "$enable_ltdl_convenience" in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
+])
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library, and adds --enable-ltdl-install to
+# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
+# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
+# to be `${top_builddir}/libltdl'. Make sure you start DIR with
+# '${top_builddir}/' (note the single quotes!) if your package is not
+# flat, and, if you're not using automake, define top_builddir as
+# appropriate in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, main,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ fi
+])
+
+dnl old names
+AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
+AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
+AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
+
+dnl This is just to quiet aclocal about the macro not being used
+if(a,b,[AC_DISABLE_FAST_INSTALL])dnl
+
# serial 1
@@ -905,7 +537,7 @@ AC_REQUIRE([AC_PROG_CPP])
AC_MSG_CHECKING([for function prototypes])
if test "$am_cv_prog_cc_stdc" != no; then
AC_MSG_RESULT(yes)
- AC_DEFINE(PROTOTYPES)
+ AC_DEFINE(PROTOTYPES,1,[Define if compiler has function prototypes])
U= ANSI2KNR=
else
AC_MSG_RESULT(no)
@@ -1006,6 +638,149 @@ case "x$am_cv_prog_cc_stdc" in
esac
])
+#serial 2
+
+dnl Derived from code in GNU grep.
+
+AC_DEFUN(jm_WITH_REGEX,
+ [
+ dnl Even packages that don't use regex.c can use this macro.
+ dnl Of course, for them it doesn't do anything.
+
+ syscmd([test -f lib/regex.c])
+ ifelse(sysval, 0,
+ [
+ AC_ARG_WITH(included-regex,
+ [ --without-included-regex don't compile regex (use with caution)],
+ jm_with_regex=$withval,
+ jm_with_regex=yes)
+ if test "$jm_with_regex" = yes; then
+ LIBOBJS="$LIBOBJS regex.o"
+ fi
+ ],
+ )
+ ]
+)
+
+#serial 1
+
+dnl FIXME: put these prerequisite-only *.m4 files in a separate
+dnl directory -- otherwise, they'll conflict with existing files.
+
+dnl These are the prerequisite macros for GNU's error.c file.
+AC_DEFUN(jm_PREREQ_ERROR,
+[
+ AC_CHECK_FUNCS(strerror strerror_r vprintf doprnt)
+ AC_HEADER_STDC
+])
+
+# Written by René Seindal (rene@seindal.dk)
+#
+# 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_WITH_MODULES,
+ [AC_MSG_CHECKING(if support for dynamic modules is wanted)
+ AC_ARG_WITH(modules,
+ [ --with-modules add support for dynamic modules],
+ [use_modules=$withval], [use_modules=no])
+ AC_MSG_RESULT($use_modules)
+
+ if test "$use_modules" = yes; then
+ dnl We might no have it anyway, after all.
+ with_modules=no
+
+ dnl Test for dlopen in libc
+ AC_CHECK_FUNCS(dlopen)
+ if test "$ac_cv_func_dlopen" = yes; then
+ with_modules=yes
+ fi
+
+ dnl Test for dlopen in libdl
+ if test "$with_modules" = no; then
+ AC_CHECK_LIB(dl, dlopen)
+ if test "$ac_cv_lib_dl_dlopen" = yes; then
+ with_modules=yes
+
+# LIBS="$LIBS -ldl"
+ AC_DEFINE(HAVE_DLOPEN,1)
+ fi
+ fi
+
+# dnl Test for dld_link in libdld
+# if test "$with_modules" = no; then
+# AC_CHECK_LIB(dld, dld_link)
+# if test "$ac_cv_lib_dld_dld_link" = "yes"; then
+# with_modules=yes
+# AC_DEFINE(HAVE_DLD,1)
+# fi
+# fi
+
+ dnl Test for shl_load in libdld
+ if test "$with_modules" = no; then
+ AC_CHECK_LIB(dld, shl_load)
+ if test "$ac_cv_lib_dld_shl_load" = yes; then
+ with_modules=yes
+
+# LIBS="$LIBS -ldld"
+ AC_DEFINE(HAVE_SHL_LOAD,1)
+ fi
+ fi
+
+ if test "$with_modules" = yes; then
+ dnl This is for libtool
+ DLLDFLAGS=-export-dynamic
+
+ MODULES_DIR=modules
+ MODULE_PATH="${pkglibexecdir}"
+
+ AC_DEFINE(WITH_MODULES, 1)
+ fi
+
+ AC_SUBST(DLLDFLAGS)
+ AC_SUBST(MODULES_DIR)
+ AC_SUBST(MODULE_PATH)
+ fi
+ ])
+
+
+
+AC_DEFUN(AM_WITH_GMP,
+ [AC_MSG_CHECKING(if extended and fractional arithmetic is wanted)
+ AC_ARG_WITH(gmp,
+ [ --with-gmp use gmp for extended and fractional arithmetic],
+ [use_gmp=$withval], [use_gmp=no])
+ AC_MSG_RESULT($use_gmp)
+
+ if test "$use_gmp" = yes; then
+ LIBS="$LIBS -lgmp"
+ AC_CHECK_HEADER([gmp.h],
+ [AC_CACHE_CHECK([for mpq_init in libgmp], ac_cv_func_mpq_init_libgmp,
+ [AC_TRY_LINK([#include <gmp.h>],
+ [mpq_t x; (void)mpq_init(x)],
+ ac_cv_func_mpq_init_libgmp=yes,
+ ac_cv_func_mpq_init_libgmp=no)])],
+ ac_cv_func_mpq_init_libgmp=no)
+
+ if test "$ac_cv_func_mpq_init_libgmp$ac_cv_header_gmp_h" = yesyes; then
+ AC_DEFINE(WITH_GMP)
+ else
+ LIBS=`echo $LIBS | sed -e 's/-lgmp//'`
+ AC_MSG_WARN([gmp library not found or does not appear to work])
+ use_gmp=no
+ fi
+ fi
+
+ if test "$use_gmp" != yes; then
+ AC_CHECK_SIZEOF(long long int, 0)
+ fi
+ ])
+
# serial 1
@@ -1016,7 +791,8 @@ AC_ARG_WITH(dmalloc,
ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz],
[if test "$withval" = yes; then
AC_MSG_RESULT(yes)
- AC_DEFINE(WITH_DMALLOC)
+ AC_DEFINE(WITH_DMALLOC,1,
+ [Define if using the dmalloc debugging malloc package])
LIBS="$LIBS -ldmalloc"
LDFLAGS="$LDFLAGS -g"
else
@@ -1024,3 +800,387 @@ else
fi], [AC_MSG_RESULT(no)])
])
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 5
+
+AC_DEFUN(AM_WITH_NLS,
+ [AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+
+ USE_INCLUDED_LIBINTL=no
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ AC_DEFINE(ENABLE_NLS)
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH(included-gettext,
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If gettext or catgets are available (in this order) we
+ dnl use this. Else we have to fall back to GNU NLS library.
+ dnl catgets is only used if permitted by option --with-catgets.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+ CATOBJEXT=NONE
+
+ AC_CHECK_HEADER(libintl.h,
+ [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
+ gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
+
+ if test "$gt_cv_func_gettext_libc" != "yes"; then
+ AC_CHECK_LIB(intl, bindtextdomain,
+ [AC_CACHE_CHECK([for gettext in libintl],
+ gt_cv_func_gettext_libintl,
+ [AC_CHECK_LIB(intl, gettext,
+ gt_cv_func_gettext_libintl=yes,
+ gt_cv_func_gettext_libintl=no)],
+ gt_cv_func_gettext_libintl=no)])
+ fi
+
+ if test "$gt_cv_func_gettext_libc" = "yes" \
+ || test "$gt_cv_func_gettext_libintl" = "yes"; then
+ AC_DEFINE(HAVE_GETTEXT)
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+ if test "$MSGFMT" != "no"; then
+ AC_CHECK_FUNCS(dcgettext)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr],
+ [CATOBJEXT=.gmo
+ DATADIRNAME=share],
+ [CATOBJEXT=.mo
+ DATADIRNAME=lib])
+ INSTOBJEXT=.mo
+ fi
+ fi
+ ])
+
+ if test "$CATOBJEXT" = "NONE"; then
+ AC_MSG_CHECKING([whether catgets can be used])
+ AC_ARG_WITH(catgets,
+ [ --with-catgets use catgets functions if available],
+ nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
+ AC_MSG_RESULT($nls_cv_use_catgets)
+
+ if test "$nls_cv_use_catgets" = "yes"; then
+ dnl No gettext in C library. Try catgets next.
+ AC_CHECK_LIB(i, main)
+ AC_CHECK_FUNC(catgets,
+ [AC_DEFINE(HAVE_CATGETS)
+ INTLOBJS="\$(CATOBJS)"
+ AC_PATH_PROG(GENCAT, gencat, no)dnl
+ if test "$GENCAT" != "no"; then
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
+ if test "$GMSGFMT" = "no"; then
+ AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
+ fi
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ USE_INCLUDED_LIBINTL=yes
+ CATOBJEXT=.cat
+ INSTOBJEXT=.cat
+ DATADIRNAME=lib
+ INTLDEPS='$(top_builddir)/intl/libintl.a'
+ INTLLIBS=$INTLDEPS
+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi])
+ fi
+ fi
+
+ if test "$CATOBJEXT" = "NONE"; then
+ dnl Neither gettext nor catgets in included in the C library.
+ dnl Fall back on GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ INTLOBJS="\$(GETTOBJS)"
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ AC_SUBST(MSGFMT)
+ USE_INCLUDED_LIBINTL=yes
+ CATOBJEXT=.gmo
+ INSTOBJEXT=.mo
+ DATADIRNAME=share
+ INTLDEPS='$(top_builddir)/intl/libintl.a'
+ INTLLIBS=$INTLDEPS
+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi
+
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ fi
+
+ # We need to process the po/ directory.
+ POSUB=po
+ else
+ DATADIRNAME=share
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi
+ AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
+ AC_OUTPUT_COMMANDS(
+ [case "$CONFIG_FILES" in *po/Makefile.in*)
+ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+ esac])
+
+
+ # If this is used in GNU gettext we have to set USE_NLS to `yes'
+ # because some of the sources are only built for this goal.
+ if test "$PACKAGE" = gettext; then
+ USE_NLS=yes
+ USE_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl These rules are solely for the distribution goal. While doing this
+ dnl we only have to keep exactly one list of the available catalogs
+ dnl in configure.in.
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(USE_INCLUDED_LIBINTL)
+ AC_SUBST(CATALOGS)
+ AC_SUBST(CATOBJEXT)
+ AC_SUBST(DATADIRNAME)
+ AC_SUBST(GMOFILES)
+ AC_SUBST(INSTOBJEXT)
+ AC_SUBST(INTLDEPS)
+ AC_SUBST(INTLLIBS)
+ AC_SUBST(INTLOBJS)
+ AC_SUBST(POFILES)
+ AC_SUBST(POSUB)
+ ])
+
+AC_DEFUN(AM_GNU_GETTEXT,
+ [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_ISC_POSIX])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_C_CONST])dnl
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
+unistd.h sys/param.h])
+ AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
+strdup __argz_count __argz_stringify __argz_next])
+
+ if test "${ac_cv_func_stpcpy+set}" != "set"; then
+ AC_CHECK_FUNCS(stpcpy)
+ fi
+ if test "${ac_cv_func_stpcpy}" = "yes"; then
+ AC_DEFINE(HAVE_STPCPY)
+ fi
+
+ AM_LC_MESSAGES
+ AM_WITH_NLS
+
+ if test "x$CATOBJEXT" != "x"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ AC_MSG_CHECKING(for catalogs to be installed)
+ NEW_LINGUAS=
+ for lang in ${LINGUAS=$ALL_LINGUAS}; do
+ case "$ALL_LINGUAS" in
+ *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+ esac
+ done
+ LINGUAS=$NEW_LINGUAS
+ AC_MSG_RESULT($LINGUAS)
+ fi
+
+ dnl Construct list of names of catalog files to be constructed.
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ dnl The reference to <locale.h> in the installed <libintl.h> file
+ dnl must be resolved because we cannot expect the users of this
+ dnl to define HAVE_LOCALE_H.
+ if test $ac_cv_header_locale_h = yes; then
+ INCLUDE_LOCALE_H="#include <locale.h>"
+ else
+ INCLUDE_LOCALE_H="\
+/* The system does not provide the header <locale.h>. Take care yourself. */"
+ fi
+ AC_SUBST(INCLUDE_LOCALE_H)
+
+ dnl Determine which catalog format we have (if any is needed)
+ dnl For now we know about two different formats:
+ dnl Linux libc-5 and the normal X/Open format
+ test -d intl || mkdir intl
+ if test "$CATOBJEXT" = ".cat"; then
+ AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
+
+ dnl Transform the SED scripts while copying because some dumb SEDs
+ dnl cannot handle comments.
+ sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
+ fi
+ dnl po2tbl.sed is always needed.
+ sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
+ $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
+
+ dnl In the intl/Makefile.in we have a special dependency which makes
+ dnl only sense for gettext. We comment this out for non-gettext
+ dnl packages.
+ if test "$PACKAGE" = "gettext"; then
+ GT_NO="#NO#"
+ GT_YES=
+ else
+ GT_NO=
+ GT_YES="#YES#"
+ fi
+ AC_SUBST(GT_NO)
+ AC_SUBST(GT_YES)
+
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
+ dnl Try to locate is.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+
+ dnl *** For now the libtool support in intl/Makefile is not for real.
+ l=
+ AC_SUBST(l)
+
+ dnl Generate list of files to be processed by xgettext which will
+ dnl be included in po/Makefile.
+ test -d po || mkdir po
+ if test "x$srcdir" != "x."; then
+ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+ posrcprefix="$srcdir/"
+ else
+ posrcprefix="../$srcdir/"
+ fi
+ else
+ posrcprefix="../"
+ fi
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+ ])
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper@cygnus.com>, 1996.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 1
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN(AM_PATH_PROG_WITH_TEST,
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ /*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test -n "[$]$1"; then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 1
+
+AC_DEFUN(AM_LC_MESSAGES,
+ [if test $ac_cv_header_locale_h = yes; then
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES)
+ fi
+ fi])
+
diff --git a/acm4/Makefile.am b/acm4/Makefile.am
index 463df185..bcd05aca 100644
--- a/acm4/Makefile.am
+++ b/acm4/Makefile.am
@@ -1,12 +1,5 @@
EXTRA_DIST = $(ACINCLUDES_M4)
-ACINCLUDES_M4 = error.m4 gettext.m4 regex.m4 gmp.m4 modules.m4
+MAINTAINERCLEANFILES = Makefile.in
-ACINCLUDE_M4 = $(top_srcdir)/acinclude.m4
-
-all: $(ACINCLUDE_M4)
-
-$(ACINCLUDE_M4): $(ACINCLUDES_M4)
- cat $(ACINCLUDES_M4) > $@
- cd $(top_srcdir) && $(ACLOCAL)
-# cd $(top_srcdir) && $(MAKE)
+ACINCLUDES_M4 = error.m4 regex.m4 gmp.m4 modules.m4
diff --git a/acm4/Makefile.in b/acm4/Makefile.in
index 1a605efc..c05d33f4 100644
--- a/acm4/Makefile.in
+++ b/acm4/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.3b from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
-SHELL = /bin/sh
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -59,6 +59,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+AS = @AS@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -66,6 +67,7 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DLLDFLAGS = @DLLDFLAGS@
+DLLTOOL = @DLLTOOL@
GENCAT = @GENCAT@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
@@ -86,6 +88,7 @@ MODULES_DIR = @MODULES_DIR@
MODULE_PATH = @MODULE_PATH@
MSGFMT = @MSGFMT@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
@@ -101,9 +104,9 @@ pkglibexecdir = @pkglibexecdir@
EXTRA_DIST = $(ACINCLUDES_M4)
-ACINCLUDES_M4 = error.m4 gettext.m4 regex.m4 gmp.m4 modules.m4
+MAINTAINERCLEANFILES = Makefile.in
-ACINCLUDE_M4 = $(top_srcdir)/acinclude.m4
+ACINCLUDES_M4 = error.m4 regex.m4 gmp.m4 modules.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
@@ -113,11 +116,10 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
-GZIP = --best
-all: Makefile
-
+GZIP_ENV = --best
+all: all-redirect
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps acm4/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -135,27 +137,37 @@ subdir = acm4
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
done
-info:
-dvi:
-check: all
-installcheck:
-install-exec:
- @$(NORMAL_INSTALL)
-
-install-data:
- @$(NORMAL_INSTALL)
-
-install: install-exec install-data all
- @:
-
-uninstall:
-
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
@@ -168,30 +180,33 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-mostlyclean: mostlyclean-generic
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
-clean: clean-generic mostlyclean
+mostlyclean: mostlyclean-am
-distclean: distclean-generic clean
- -rm -f config.status
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
-rm -f libtool
-maintainer-clean: maintainer-clean-generic distclean
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
-.PHONY: tags distdir info dvi installcheck install-exec install-data \
-install uninstall all installdirs mostlyclean-generic distclean-generic \
-clean-generic maintainer-clean-generic clean mostlyclean distclean \
-maintainer-clean
-
+maintainer-clean: maintainer-clean-am
-all: $(ACINCLUDE_M4)
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
-$(ACINCLUDE_M4): $(ACINCLUDES_M4)
- cat $(ACINCLUDES_M4) > $@
- cd $(top_srcdir) && $(ACLOCAL)
-# cd $(top_srcdir) && $(MAKE)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/acm4/gettext.m4 b/acm4/gettext.m4
deleted file mode 100644
index 969d0922..00000000
--- a/acm4/gettext.m4
+++ /dev/null
@@ -1,384 +0,0 @@
-# Macro to add for using GNU gettext.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# Modified for GNU m4 by René Seindal (rene@seindal.dk)
-
-# serial 5
-
-AC_DEFUN(AM_WITH_NLS,
- [AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-
- USE_INCLUDED_LIBINTL=no
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- AC_DEFINE(ENABLE_NLS)
- AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH(included-gettext,
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If gettext or catgets are available (in this order) we
- dnl use this. Else we have to fall back to GNU NLS library.
- dnl catgets is only used if permitted by option --with-catgets.
- nls_cv_header_intl=
- nls_cv_header_libgt=
- CATOBJEXT=NONE
-
- AC_CHECK_HEADER(libintl.h,
- [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
- [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
- gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
-
- if test "$gt_cv_func_gettext_libc" != "yes"; then
- AC_CHECK_LIB(intl, bindtextdomain,
- [AC_CHECK_LIB(intl, gettext,
- [LIBS="$LIBS -lintl"
- gt_cv_func_gettext_libintl=yes],
- [gt_cv_func_gettext_libintl=no])])
- fi
-
- if test "$gt_cv_func_gettext_libc" = "yes" \
- || test "$gt_cv_func_gettext_libintl" = "yes"; then
- AC_DEFINE(HAVE_GETTEXT)
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
- if test "$MSGFMT" != "no"; then
- AC_CHECK_FUNCS(dcgettext)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
- return _nl_msg_cat_cntr],
- [CATOBJEXT=.gmo
- DATADIRNAME=share],
- [CATOBJEXT=.mo
- DATADIRNAME=lib])
- INSTOBJEXT=.mo
- fi
- fi
- ])
-
- if test "$CATOBJEXT" = "NONE"; then
- AC_MSG_CHECKING([whether catgets can be used])
- AC_ARG_WITH(catgets,
- [ --with-catgets use catgets functions if available],
- nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
- AC_MSG_RESULT($nls_cv_use_catgets)
-
- if test "$nls_cv_use_catgets" = "yes"; then
- dnl No gettext in C library. Try catgets next.
- AC_CHECK_LIB(i, main)
- AC_CHECK_FUNC(catgets,
- [AC_DEFINE(HAVE_CATGETS)
- INTLOBJS="\$(CATOBJS)"
- AC_PATH_PROG(GENCAT, gencat, no)dnl
- if test "$GENCAT" != "no"; then
- AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
- if test "$GMSGFMT" = "no"; then
- AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
- fi
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.cat
- INSTOBJEXT=.cat
- DATADIRNAME=lib
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi])
- fi
- fi
-
- if test "$CATOBJEXT" = "NONE"; then
- dnl Neither gettext nor catgets in included in the C library.
- dnl Fall back on GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- INTLOBJS="\$(GETTOBJS)"
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_SUBST(MSGFMT)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.gmo
- INSTOBJEXT=.mo
- DATADIRNAME=share
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
-
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext program is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- fi
-
- # We need to process the po/ directory.
- POSUB=po
- else
- DATADIRNAME=share
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
- AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
- AC_OUTPUT_COMMANDS(
- [case "$CONFIG_FILES" in *po/Makefile.in*)
- sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
- esac])
-
-
- # If this is used in GNU gettext we have to set USE_NLS to `yes'
- # because some of the sources are only built for this goal.
- if test "$PACKAGE" = gettext; then
- USE_NLS=yes
- USE_INCLUDED_LIBINTL=yes
- fi
-
- dnl These rules are solely for the distribution goal. While doing this
- dnl we only have to keep exactly one list of the available catalogs
- dnl in configure.in.
- for lang in $ALL_LINGUAS; do
- GMOFILES="$GMOFILES $lang.gmo"
- POFILES="$POFILES $lang.po"
- done
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATALOGS)
- AC_SUBST(CATOBJEXT)
- AC_SUBST(DATADIRNAME)
- AC_SUBST(GMOFILES)
- AC_SUBST(INSTOBJEXT)
- AC_SUBST(INTLDEPS)
- AC_SUBST(INTLLIBS)
- AC_SUBST(INTLOBJS)
- AC_SUBST(POFILES)
- AC_SUBST(POSUB)
- ])
-
-AC_DEFUN(AM_GNU_GETTEXT,
- [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
-
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
-unistd.h sys/param.h])
- AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
-strdup __argz_count __argz_stringify __argz_next])
-
- if test "${ac_cv_func_stpcpy+set}" != "set"; then
- AC_CHECK_FUNCS(stpcpy)
- fi
- if test "${ac_cv_func_stpcpy}" = "yes"; then
- AC_DEFINE(HAVE_STPCPY)
- fi
-
- AM_LC_MESSAGES
- AM_WITH_NLS
-
- if test "x$CATOBJEXT" != "x"; then
- if test "x$ALL_LINGUAS" = "x"; then
- LINGUAS=
- else
- AC_MSG_CHECKING(for catalogs to be installed)
- NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
- done
- LINGUAS=$NEW_LINGUAS
- AC_MSG_RESULT($LINGUAS)
- fi
-
- dnl Construct list of names of catalog files to be constructed.
- if test -n "$LINGUAS"; then
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
- fi
- fi
-
- dnl The reference to <locale.h> in the installed <libintl.h> file
- dnl must be resolved because we cannot expect the users of this
- dnl to define HAVE_LOCALE_H.
- if test $ac_cv_header_locale_h = yes; then
- INCLUDE_LOCALE_H="#include <locale.h>"
- else
- INCLUDE_LOCALE_H="\
-/* The system does not provide the header <locale.h>. Take care yourself. */"
- fi
- AC_SUBST(INCLUDE_LOCALE_H)
-
- dnl Determine which catalog format we have (if any is needed)
- dnl For now we know about two different formats:
- dnl Linux libc-5 and the normal X/Open format
- test -d intl || mkdir intl
- if test "$CATOBJEXT" = ".cat"; then
- AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
-
- dnl Transform the SED scripts while copying because some dumb SEDs
- dnl cannot handle comments.
- sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
- fi
- dnl po2tbl.sed is always needed.
- sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
- $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
-
- dnl In the intl/Makefile.in we have a special dependency which makes
- dnl only sense for gettext. We comment this out for non-gettext
- dnl packages.
- if test "$PACKAGE" = "gettext"; then
- GT_NO="#NO#"
- GT_YES=
- else
- GT_NO=
- GT_YES="#YES#"
- fi
- AC_SUBST(GT_NO)
- AC_SUBST(GT_YES)
-
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
- dnl Try to locate is.
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
-
- dnl *** For now the libtool support in intl/Makefile is not for real.
- l=
- AC_SUBST(l)
-
- dnl Generate list of files to be processed by xgettext which will
- dnl be included in po/Makefile.
- test -d po || mkdir po
- if test "x$srcdir" != "x."; then
- if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
- posrcprefix="$srcdir/"
- else
- posrcprefix="../$srcdir/"
- fi
- else
- posrcprefix="../"
- fi
- rm -f po/POTFILES
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
- ])
-
-# Search path for a program which passes the given test.
-# Ulrich Drepper <drepper@cygnus.com>, 1996.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# serial 1
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN(AM_PATH_PROG_WITH_TEST,
-[# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- /*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test -n "[$]$1"; then
- AC_MSG_RESULT([$]$1)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# serial 1
-
-AC_DEFUN(AM_LC_MESSAGES,
- [if test $ac_cv_header_locale_h = yes; then
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES)
- fi
- fi])
-
diff --git a/config.guess b/config.guess
index 30230b3d..a1b76ce2 100755
--- a/config.guess
+++ b/config.guess
@@ -23,6 +23,7 @@
# Written by Per Bothner <bothner@cygnus.com>.
# The master version of this file is at the FSF in /home/gd/gnu/lib.
+# Please send patches to the Autoconf mailing list <autoconf@gnu.org>.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
@@ -35,6 +36,20 @@
# (but try to keep the structure clean).
#
+# Use $HOST_CC if defined. $CC may point to a cross-compiler
+if test x"$CC_FOR_BUILD" = x; then
+ if test x"$HOST_CC" != x; then
+ CC_FOR_BUILD="$HOST_CC"
+ else
+ if test x"$CC" != x; then
+ CC_FOR_BUILD="$CC"
+ else
+ CC_FOR_BUILD=cc
+ fi
+ fi
+fi
+
+
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 8/24/94.)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
@@ -46,7 +61,8 @@ 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
-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
+dummy=dummy-$$
+trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
# Note: order is significant - the case branches are not exclusive.
@@ -59,7 +75,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# 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
+ cat <<EOF >$dummy.s
.globl main
.ent main
main:
@@ -76,9 +92,9 @@ main:
ret \$31,(\$26),1
.end main
EOF
- ${CC-cc} dummy.s -o dummy 2>/dev/null
+ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
if test "$?" = 0 ; then
- ./dummy
+ ./$dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
@@ -97,7 +113,7 @@ EOF
;;
esac
fi
- rm -f dummy.s dummy
+ rm -f $dummy.s $dummy
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
exit 0 ;;
21064:Windows_NT:50:3)
@@ -112,6 +128,9 @@ EOF
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 ;;
@@ -139,7 +158,7 @@ EOF
SR2?01:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit 0;;
- Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
+ Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
@@ -147,9 +166,12 @@ EOF
echo pyramid-pyramid-bsd
fi
exit 0 ;;
- NILE:*:*:dcosx)
+ 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 ;;
@@ -195,6 +217,32 @@ EOF
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*:NetBSD:*:*)
echo m68k-sun-netbsd${UNAME_RELEASE}
exit 0 ;;
@@ -216,6 +264,9 @@ EOF
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
+ macppc:NetBSD:*:*)
+ echo powerpc-apple-netbsd${UNAME_RELEASE}
+ exit 0 ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit 0 ;;
@@ -225,12 +276,16 @@ EOF
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
- 2020:CLIX:*:*)
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit 0 ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- sed 's/^ //' << EOF >dummy.c
- int main (argc, argv) int argc; char **argv; {
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+ 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);
@@ -245,10 +300,10 @@ EOF
exit (-1);
}
EOF
- ${CC-cc} dummy.c -o dummy \
- && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
+ $CC_FOR_BUILD $dummy.c -o $dummy \
+ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
@@ -300,7 +355,7 @@ EOF
exit 0 ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >dummy.c
+ sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
main()
@@ -311,8 +366,8 @@ EOF
exit(0);
}
EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
+ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+ 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
@@ -321,7 +376,8 @@ EOF
fi
exit 0 ;;
*:AIX:*:4)
- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
@@ -354,18 +410,50 @@ EOF
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit 0 ;;
- 9000/[3478]??:HP-UX:*:*)
+ 9000/[34678]??:HP-UX:*:*)
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
- 9000/8?? ) HP_ARCH=hppa1.0 ;;
+ 9000/6?? | 9000/7?? | 9000/80[024] | 9000/8?[136790] | 9000/892 )
+ sed 's/^ //' << EOF >$dummy.c
+ #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
+ ($CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+ rm -f $dummy.c $dummy
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;;
3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >dummy.c
+ sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
main ()
@@ -390,8 +478,8 @@ EOF
exit (0);
}
EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
+ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -400,6 +488,9 @@ EOF
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit 0 ;;
+ *9??*:MPE*:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit 0 ;;
@@ -448,6 +539,9 @@ EOF
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE}
exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo t3e-cray-unicosmk${UNAME_RELEASE}
+ exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
exit 0 ;;
@@ -465,10 +559,22 @@ EOF
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
- i?86:BSD/386:*:* | *:BSD/OS:*:*)
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
*:FreeBSD:*:*)
+ if test -x /usr/bin/objformat; then
+ if test "elf" = "`/usr/bin/objformat`"; then
+ echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
+ exit 0
+ fi
+ fi
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit 0 ;;
*:NetBSD:*:*)
@@ -478,13 +584,13 @@ EOF
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin32
+ echo ${UNAME_MACHINE}-pc-cygwin
exit 0 ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit 0 ;;
p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin32
+ echo powerpcle-unknown-cygwin
exit 0 ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -496,12 +602,14 @@ EOF
# uname on the ARM produces all sorts of strangeness, and we need to
# filter it out.
case "$UNAME_MACHINE" in
+ armv*) UNAME_MACHINE=$UNAME_MACHINE ;;
arm* | sa110*) UNAME_MACHINE="arm" ;;
esac
# The BFD linker knows what the default object file format is, so
- # first see if it will tell us.
- ld_help_string=`ld --help 2>&1`
+ # 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_help_string=`cd /; ld --help 2>&1`
ld_supported_emulations=`echo $ld_help_string \
| sed -ne '/supported emulations:/!d
s/[ ][ ]*/ /g
@@ -518,7 +626,7 @@ EOF
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
- sed 's/^ //' <<EOF >dummy.s
+ sed 's/^ //' <<EOF >$dummy.s
.globl main
.ent main
main:
@@ -536,9 +644,9 @@ EOF
.end main
EOF
LIBC=""
- ${CC-cc} dummy.s -o dummy 2>/dev/null
+ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
if test "$?" = 0 ; then
- ./dummy
+ ./$dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
@@ -555,22 +663,23 @@ EOF
16)
UNAME_MACHINE="alphaev6"
;;
- esac
+ esac
- objdump --private-headers dummy | \
+ objdump --private-headers $dummy | \
grep ld.so.1 > /dev/null
if test "$?" = 0 ; then
LIBC="libc1"
fi
- fi
- rm -f dummy.s dummy
+ fi
+ rm -f $dummy.s $dummy
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
elif test "${UNAME_MACHINE}" = "mips" ; then
- cat >dummy.c <<EOF
-main(argc, argv)
- int argc;
- char *argv[];
-{
+ cat >$dummy.c <<EOF
+#ifdef __cplusplus
+ 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
@@ -580,8 +689,8 @@ main(argc, argv)
return 0;
}
EOF
- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
else
# Either a pre-BFD a.out linker (linux-gnuoldld)
# or one that does not give us useful --help.
@@ -600,12 +709,13 @@ EOF
;;
esac
# Determine whether the default compiler is a.out or elf
- cat >dummy.c <<EOF
+ cat >$dummy.c <<EOF
#include <features.h>
-main(argc, argv)
- int argc;
- char *argv[];
-{
+#ifdef __cplusplus
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
@@ -622,8 +732,8 @@ main(argc, argv)
return 0;
}
EOF
- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
fi ;;
# 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.
@@ -659,6 +769,13 @@ EOF
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
+ i?86:UnixWare:*:*)
+ if /bin/uname -X 2>/dev/null >/dev/null ; then
+ (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ fi
+ echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
+ exit 0 ;;
pc:*:*:*)
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
@@ -700,7 +817,7 @@ EOF
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit 0 ;;
- i?86:LynxOS:2.*:*)
+ i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.*:*)
@@ -712,6 +829,9 @@ EOF
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 ;;
@@ -742,19 +862,40 @@ EOF
news*:NEWS-OS:*:6*)
echo mips-sony-newsos6
exit 0 ;;
- R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000: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 ;;
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
+cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
@@ -792,7 +933,10 @@ main ()
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
@@ -852,8 +996,8 @@ main ()
}
EOF
-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
-rm -f dummy.c dummy
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
+rm -f $dummy.c $dummy
# Apollos put the system type in the environment.
diff --git a/config.h.in b/config.h.in
index 4ac29c6f..2936511e 100644
--- a/config.h.in
+++ b/config.h.in
@@ -82,28 +82,18 @@
/* Define to 1 if #include <signal.h> declares struct sigcontext */
#undef HAVE_SIGCONTEXT
-/* Define to the name of the distribution. */
-#undef PACKAGE
-
-/* Define to 1 if ANSI function prototypes are usable. */
-#undef PROTOTYPES
-
/* Define to int if rlim_t is not defined in sys/resource.h */
#undef rlim_t
/* Define to struct sigaltstack if stack_t is not defined in sys/signal.h */
#undef stack_t
+/* Define to ss_base if stack_t has ss_base instead of ss_sp */
+#undef ss_sp
+
/* Define to 1 if using stack overflow detection. */
#undef USE_STACKOVF
-/* Define to the version of the distribution. */
-#undef VERSION
-
-/* Define to 1 for better use of the debugging malloc library. See
- site ftp.antaire.com in antaire/src, file dmalloc/dmalloc.tar.gz. */
-#undef WITH_DMALLOC
-
/* Define to 1 if the GNU multiple precision library should be used. */
#undef WITH_GMP
@@ -131,9 +121,6 @@
/* Define to 1 if stpcpy function is available. */
#undef HAVE_STPCPY
-/* Define to 1 if ANSI function prototypes are usable. */
-#undef PROTOTYPES
-
/* The number of bytes in a long long int. */
#undef SIZEOF_LONG_LONG_INT
@@ -280,3 +267,16 @@
/* Define if you have the i library (-li). */
#undef HAVE_LIBI
+
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+
+/* Define if compiler has function prototypes */
+#undef PROTOTYPES
+
+/* Define if using the dmalloc debugging malloc package */
+#undef WITH_DMALLOC
+
diff --git a/config.sub b/config.sub
index e24b8504..692de9b6 100755
--- a/config.sub
+++ b/config.sub
@@ -150,12 +150,13 @@ case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
- | arme[lb] | pyramid | mn10200 | mn10300 \
- | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
- | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
- | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
- | mips64 | mipsel | mips64el | mips64orion | mips64orionel \
- | mipstx39 | mipstx39el \
+ | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
+ | 580 | i960 | h8300 \
+ | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w \
+ | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
+ | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
+ | 1750a | dsp16xx | pdp11 | mips64 | mipsel | mips64el \
+ | mips64orion | mips64orionel | mipstx39 | mipstx39el \
| sparc | sparclet | sparclite | sparc64 | v850)
basic_machine=$basic_machine-unknown
;;
@@ -175,14 +176,16 @@ case $basic_machine in
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
- | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \
- | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
- | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
+ | xmp-* | ymp-* \
+ | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
+ | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67] \
+ | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
+ | clipper-* | orion-* \
| sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
| sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mipstx39-* | mipstx39el-* \
- | f301-*)
+ | f301-* | armv*-*)
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@@ -345,6 +348,14 @@ case $basic_machine in
hppa-next)
os=-nextstep3
;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ os=-mpeix
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ os=-mpeix
+ ;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
os=-mvs
@@ -412,6 +423,10 @@ case $basic_machine in
basic_machine=i486-ncr
os=-sysv4
;;
+ netwinder)
+ basic_machine=armv4l-corel
+ os=-linux
+ ;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
@@ -616,6 +631,10 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
+ *mint | *MiNT)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
none)
basic_machine=none-none
os=-none
@@ -713,8 +732,9 @@ case $os in
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv*)
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -rhapsody* \
+ | -openstep* | -mpeix* | -oskit*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-linux*)
@@ -775,6 +795,9 @@ case $os in
-xenix)
os=-xenix
;;
+ -*mint | -*MiNT)
+ os=-mint
+ ;;
-none)
;;
*)
@@ -800,6 +823,9 @@ case $basic_machine in
*-acorn)
os=-riscix1.2
;;
+ arm*-corel)
+ os=-linux
+ ;;
arm*-semi)
os=-aout
;;
@@ -827,6 +853,9 @@ case $basic_machine in
sparc-* | *-sun)
os=-sunos4.1.1
;;
+ *-be)
+ os=-beos
+ ;;
*-ibm)
os=-aix
;;
@@ -893,6 +922,9 @@ case $basic_machine in
f301-fujitsu)
os=-uxpv
;;
+ *-atari*)
+ os=-mint
+ ;;
*)
os=-none
;;
@@ -917,6 +949,12 @@ case $basic_machine in
-hpux*)
vendor=hp
;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
-hiux*)
vendor=hitachi
;;
@@ -944,6 +982,9 @@ case $basic_machine in
-aux*)
vendor=apple
;;
+ -*mint | -*MiNT)
+ vendor=atari
+ ;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
diff --git a/configure b/configure
index 6708e8d1..8d1697d5 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12
+# Generated automatically using autoconf version 2.13
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
@@ -16,8 +16,12 @@ ac_help="$ac_help
ac_help="$ac_help
--enable-static[=PKGS] build static libraries [default=no]"
ac_help="$ac_help
+ --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
+ac_help="$ac_help
--with-gnu-ld assume the C compiler uses GNU ld [default=no]"
ac_help="$ac_help
+ --disable-libtool-lock avoid locking (might break parallel builds)"
+ac_help="$ac_help
--without-included-regex don't compile regex (use with caution)"
ac_help="$ac_help
--enable-changeword enable -W and changeword() builtin"
@@ -72,6 +76,7 @@ mandir='${prefix}/man'
# Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
# Maximum number of lines to put in a shell here document.
ac_max_here_lines=12
@@ -355,7 +360,7 @@ EOF
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.12"
+ echo "configure generated by autoconf version 2.13"
exit 0 ;;
-with-* | --with-*)
@@ -525,9 +530,11 @@ ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
+ac_exeext=
+ac_objext=o
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
@@ -590,28 +597,30 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# 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:598: checking for a BSD compatible install" >&5
+echo "configure:606: 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
else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
for ac_dir in $PATH; do
# Account for people who put trailing slashes in PATH elements.
case "$ac_dir/" in
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
- for ac_prog in ginstall installbsd scoinst install; do
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
if test -f $ac_dir/$ac_prog; then
if test $ac_prog = install &&
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
- # OSF/1 installbsd also uses dspmsg, but is usable.
:
else
ac_cv_path_install="$ac_dir/$ac_prog -c"
@@ -641,13 +650,12 @@ echo "$ac_t""$INSTALL" 1>&6
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:651: checking whether build environment is sane" >&5
+echo "configure:659: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@@ -685,7 +693,7 @@ fi
rm -f conftest*
echo "$ac_t""yes" 1>&6
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:689: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:697: 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"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -714,7 +722,7 @@ fi
PACKAGE=m4
-VERSION=1.4n
+VERSION=1.4o
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
@@ -731,7 +739,7 @@ EOF
missing_dir=`cd $ac_aux_dir && pwd`
echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:735: checking for working aclocal" >&5
+echo "configure:743: checking for working aclocal" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -744,7 +752,7 @@ else
fi
echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:748: checking for working autoconf" >&5
+echo "configure:756: checking for working autoconf" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -757,7 +765,7 @@ else
fi
echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:761: checking for working automake" >&5
+echo "configure:769: checking for working automake" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -770,7 +778,7 @@ else
fi
echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:774: checking for working autoheader" >&5
+echo "configure:782: checking for working autoheader" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -783,7 +791,7 @@ else
fi
echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:787: checking for working makeinfo" >&5
+echo "configure:795: checking for working makeinfo" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -796,25 +804,37 @@ else
fi
-ALL_LINGUAS="de fr it ja nl pl ru sv"
+
+ALL_LINGUAS="cs de el fr it ja nl pl ru sv"
pkglibexecdir='${libexecdir}'/$PACKAGE
+subdirs="libltdl"
+
+ case "$enable_ltdl_convenience" in
+ no) { echo "configure: error: this package needs a convenience libltdl" 1>&2; exit 1; } ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL='${top_builddir}/libltdl'/libltdlc.la
+
+
for ac_prog in mawk gawk nawk awk
do
# 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:810: checking for $ac_word" >&5
+echo "configure:829: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ 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_AWK="$ac_prog"
@@ -837,15 +857,16 @@ done
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:841: checking for $ac_word" >&5
+echo "configure:861: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ 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_CC="gcc"
@@ -866,16 +887,17 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:870: checking for $ac_word" >&5
+echo "configure:891: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
ac_prog_rejected=no
- for ac_dir in $PATH; do
+ 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 "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
@@ -910,25 +932,61 @@ else
echo "$ac_t""no" 1>&6
fi
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:942: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:918: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:974: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
-cat > conftest.$ac_ext <<EOF
-#line 928 "configure"
+cat > conftest.$ac_ext << EOF
+
+#line 985 "configure"
#include "confdefs.h"
+
main(){return(0);}
EOF
-if { (eval echo configure:932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -942,18 +1000,24 @@ else
ac_cv_prog_cc_works=no
fi
rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:952: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1016: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:957: checking whether we are using GNU C" >&5
+echo "configure:1021: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -962,7 +1026,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:966: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1030: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -973,11 +1037,15 @@ echo "$ac_t""$ac_cv_prog_gcc" 1>&6
if test $ac_cv_prog_gcc = yes; then
GCC=yes
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS=
- echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:981: checking whether ${CC-cc} accepts -g" >&5
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1049: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -992,16 +1060,20 @@ rm -f conftest*
fi
echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
- CFLAGS="-O2"
+ CFLAGS="-g"
fi
else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
fi
# Find a good install program. We prefer a C program (faster),
@@ -1011,28 +1083,30 @@ fi
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# 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:1019: checking for a BSD compatible install" >&5
+echo "configure:1092: 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
else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
for ac_dir in $PATH; do
# Account for people who put trailing slashes in PATH elements.
case "$ac_dir/" in
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
- for ac_prog in ginstall installbsd scoinst install; do
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
if test -f $ac_dir/$ac_prog; then
if test $ac_prog = install &&
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
- # OSF/1 installbsd also uses dspmsg, but is usable.
:
else
ac_cv_path_install="$ac_dir/$ac_prog -c"
@@ -1062,10 +1136,12 @@ echo "$ac_t""$INSTALL" 1>&6
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1069: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1145: 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"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1094,7 +1170,7 @@ fi
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1098: checking for $ac_word" >&5
+echo "configure:1174: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1102,9 +1178,13 @@ else
/*)
ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
;;
+ ?:/*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a dos path.
+ ;;
*)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ 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_PERL="$ac_dir/$ac_word"
@@ -1170,44 +1250,87 @@ else
fi
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+ enableval="$enable_fast_install"
+ p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_fast_install=yes
+fi
+
+
# Make sure we can run config.sub.
-if $ac_config_sub sun4 >/dev/null 2>&1; then :
+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
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1180: checking host system type" >&5
+echo "configure:1284: checking host system type" >&5
host_alias=$host
case "$host_alias" in
NONE)
case $nonopt in
NONE)
- if host_alias=`$ac_config_guess`; then :
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
fi ;;
*) host_alias=$nonopt ;;
esac ;;
esac
-host=`$ac_config_sub $host_alias`
+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
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:1305: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+esac
+
+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 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:1203: checking for $ac_word" >&5
+echo "configure:1325: 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="${IFS}:"
- for ac_dir in $PATH; do
+ 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"
@@ -1233,18 +1356,23 @@ else
with_gnu_ld=no
fi
-
ac_prog=ld
if test "$ac_cv_prog_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1242: checking for ld used by GCC" >&5
+echo "configure:1364: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
- # Accept absolute paths.
- /* | [A-Za-z]:\\*)
- test -z "$LD" && LD="$ac_prog"
- ;;
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
@@ -1256,19 +1384,19 @@ echo "configure:1242: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1260: checking for GNU ld" >&5
+echo "configure:1388: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1263: checking for non-GNU ld" >&5
+echo "configure:1391: checking for non-GNU ld" >&5
fi
if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog"; then
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
@@ -1276,7 +1404,7 @@ else
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
test "$with_gnu_ld" != no && break
else
- test "$with_gnu_ld" != yes && break
+ test "$with_gnu_ld" != yes && break
fi
fi
done
@@ -1295,7 +1423,7 @@ fi
test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1299: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1427: checking if the linker ($LD) is GNU ld" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1311,7 +1439,7 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1315: checking for BSD-compatible nm" >&5
+echo "configure:1443: checking for BSD-compatible nm" >&5
if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1319,21 +1447,23 @@ else
# Let the user override the test.
ac_cv_path_NM="$NM"
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/nm; then
+ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -B"
+ ac_cv_path_NM="$ac_dir/nm -B"
+ break
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -p"
+ ac_cv_path_NM="$ac_dir/nm -p"
+ break
else
- ac_cv_path_NM="$ac_dir/nm"
+ ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
fi
- break
fi
done
IFS="$ac_save_ifs"
@@ -1346,7 +1476,7 @@ echo "$ac_t""$NM" 1>&6
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1350: checking whether ln -s works" >&5
+echo "configure:1480: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1366,24 +1496,32 @@ else
echo "$ac_t""no" 1>&6
fi
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
# Check for any special flags to pass to ltconfig.
-libtool_flags=
+libtool_flags="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$silent" = yes && libtool_flags="$libtool_flags --silent"
+test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+libtool_flags="$libtool_flags --enable-dlopen"
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+ :
+fi
+
+test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
case "$host" in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 1386 "configure"' > conftest.$ac_ext
- if { (eval echo configure:1387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 1524 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:1525: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*32-bit*)
LD="${LD-ld} -32"
@@ -1401,24 +1539,125 @@ case "$host" in
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
+ echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
+echo "configure:1546: checking whether the C compiler needs -belf" >&5
+if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1551 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:1558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ lt_cv_cc_needs_belf=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ lt_cv_cc_needs_belf=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
;;
+
+
esac
+
+# Save cache, so that ltconfig can load it
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
+LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
+# Reload cache, that may have been modified by ltconfig
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
# Redirect the config.log output again, so that the ltconfig log is not
# clobbered by the next message.
exec 5>>./config.log
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1422: checking how to run the C preprocessor" >&5
+echo "configure:1661: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1433,14 +1672,14 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1437 "configure"
+#line 1676 "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:1443: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:1682: \"$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
:
else
@@ -1450,14 +1689,31 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1454 "configure"
+#line 1693 "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:1699: \"$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
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+#line 1710 "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:1460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:1716: \"$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
:
else
@@ -1470,6 +1726,8 @@ fi
rm -f conftest*
fi
rm -f conftest*
+fi
+rm -f conftest*
ac_cv_prog_CPP="$CPP"
fi
CPP="$ac_cv_prog_CPP"
@@ -1479,9 +1737,9 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1483: checking for AIX" >&5
+echo "configure:1741: checking for AIX" >&5
cat > conftest.$ac_ext <<EOF
-#line 1485 "configure"
+#line 1743 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
@@ -1503,7 +1761,7 @@ rm -f conftest*
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1507: checking for POSIXized ISC" >&5
+echo "configure:1765: 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
@@ -1525,18 +1783,18 @@ fi
ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1529: checking for minix/config.h" >&5
+echo "configure:1787: checking for minix/config.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 1534 "configure"
+#line 1792 "configure"
#include "confdefs.h"
#include <minix/config.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:1797: \"$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"
@@ -1576,7 +1834,7 @@ fi
echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1580: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:1838: checking for ${CC-cc} option to accept ANSI C" >&5
if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1592,7 +1850,7 @@ for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__
do
CC="$ac_save_CC $ac_arg"
cat > conftest.$ac_ext <<EOF
-#line 1596 "configure"
+#line 1854 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
@@ -1629,7 +1887,7 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
; return 0; }
EOF
-if { (eval echo configure:1633: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1891: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_prog_cc_stdc="$ac_arg"; break
else
@@ -1655,7 +1913,7 @@ esac
echo $ac_n "checking for function prototypes""... $ac_c" 1>&6
-echo "configure:1659: checking for function prototypes" >&5
+echo "configure:1917: checking for function prototypes" >&5
if test "$am_cv_prog_cc_stdc" != no; then
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
@@ -1668,12 +1926,12 @@ else
U=_ ANSI2KNR=./ansi2knr
# Ensure some checks needed by ansi2knr itself.
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1672: checking for ANSI C header files" >&5
+echo "configure:1930: 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 1677 "configure"
+#line 1935 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1681,8 +1939,8 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1685: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:1943: \"$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
@@ -1698,7 +1956,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 1702 "configure"
+#line 1960 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1716,7 +1974,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 1720 "configure"
+#line 1978 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1737,7 +1995,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 1741 "configure"
+#line 1999 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1748,7 +2006,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1775,18 +2033,18 @@ fi
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1779: checking for $ac_hdr" >&5
+echo "configure:2037: 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 1784 "configure"
+#line 2042 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:2047: \"$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"
@@ -1814,12 +2072,12 @@ done
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1818: checking for working const" >&5
+echo "configure:2076: 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 1823 "configure"
+#line 2081 "configure"
#include "confdefs.h"
int main() {
@@ -1868,7 +2126,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1872: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1893,18 +2151,18 @@ for ac_hdr in limits.h locale.h memory.h siginfo.h string.h unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1897: checking for $ac_hdr" >&5
+echo "configure:2155: 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 1902 "configure"
+#line 2160 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1907: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:2165: \"$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"
@@ -1930,12 +2188,12 @@ fi
done
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1934: checking for ANSI C header files" >&5
+echo "configure:2192: 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 1939 "configure"
+#line 2197 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1943,8 +2201,8 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1947: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:2205: \"$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
@@ -1960,7 +2218,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 1964 "configure"
+#line 2222 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1978,7 +2236,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 1982 "configure"
+#line 2240 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1999,7 +2257,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2003 "configure"
+#line 2261 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2010,7 +2268,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2034,12 +2292,12 @@ EOF
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:2038: checking return type of signal handlers" >&5
+echo "configure:2296: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2043 "configure"
+#line 2301 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -2056,7 +2314,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2318: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -2075,12 +2333,12 @@ EOF
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:2079: checking for size_t" >&5
+echo "configure:2337: 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
cat > conftest.$ac_ext <<EOF
-#line 2084 "configure"
+#line 2342 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -2089,7 +2347,7 @@ else
#endif
EOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
rm -rf conftest*
ac_cv_type_size_t=yes
else
@@ -2111,12 +2369,12 @@ fi
for ac_func in mkstemp sigaction sigaltstack sigstack sigvec strerror tmpfile
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2115: checking for $ac_func" >&5
+echo "configure:2373: 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 2120 "configure"
+#line 2378 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2139,7 +2397,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2167,19 +2425,19 @@ done
# 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:2171: checking for working alloca.h" >&5
+echo "configure:2429: 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 2176 "configure"
+#line 2434 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:2183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -2200,25 +2458,30 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:2204: checking for alloca" >&5
+echo "configure:2462: 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
cat > conftest.$ac_ext <<EOF
-#line 2209 "configure"
+#line 2467 "configure"
#include "confdefs.h"
#ifdef __GNUC__
# define alloca __builtin_alloca
#else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
# else
-# ifdef _AIX
- #pragma alloca
+# if HAVE_ALLOCA_H
+# include <alloca.h>
# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
char *alloca ();
+# endif
# endif
# endif
# endif
@@ -2228,7 +2491,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:2232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -2253,19 +2516,19 @@ if test $ac_cv_func_alloca_works = no; then
# 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.o
+ 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:2264: checking whether alloca needs Cray hooks" >&5
+echo "configure:2527: 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
cat > conftest.$ac_ext <<EOF
-#line 2269 "configure"
+#line 2532 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -2290,12 +2553,12 @@ 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:2294: checking for $ac_func" >&5
+echo "configure:2557: 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 2299 "configure"
+#line 2562 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2318,7 +2581,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2345,7 +2608,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:2349: checking stack direction for C alloca" >&5
+echo "configure:2612: 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
@@ -2353,7 +2616,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 2357 "configure"
+#line 2620 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -2372,7 +2635,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:2376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -2394,12 +2657,12 @@ EOF
fi
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2398: checking for vprintf" >&5
+echo "configure:2661: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2403 "configure"
+#line 2666 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@@ -2422,7 +2685,7 @@ vprintf();
; return 0; }
EOF
-if { (eval echo configure:2426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@@ -2446,12 +2709,12 @@ fi
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2450: checking for _doprnt" >&5
+echo "configure:2713: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2455 "configure"
+#line 2718 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@@ -2474,7 +2737,7 @@ _doprnt();
; return 0; }
EOF
-if { (eval echo configure:2478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@@ -2501,12 +2764,12 @@ fi
for ac_func in strtol obstack xmalloc xstrdup
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2505: checking for $ac_func" >&5
+echo "configure:2768: 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 2510 "configure"
+#line 2773 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2529,7 +2792,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2550,18 +2813,18 @@ EOF
else
echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.o"
+LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
fi
done
echo $ac_n "checking for getopt_long""... $ac_c" 1>&6
-echo "configure:2560: checking for getopt_long" >&5
+echo "configure:2823: checking for getopt_long" >&5
if eval "test \"`echo '$''{'ac_cv_func_getopt_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2565 "configure"
+#line 2828 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char getopt_long(); below. */
@@ -2584,7 +2847,7 @@ getopt_long();
; return 0; }
EOF
-if { (eval echo configure:2588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_getopt_long=yes"
else
@@ -2626,12 +2889,12 @@ fi
for ac_func in strerror strerror_r vprintf doprnt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2630: checking for $ac_func" >&5
+echo "configure:2893: 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 2635 "configure"
+#line 2898 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2654,7 +2917,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2679,12 +2942,12 @@ fi
done
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2683: checking for ANSI C header files" >&5
+echo "configure:2946: 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 2688 "configure"
+#line 2951 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2692,8 +2955,8 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2696: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:2959: \"$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
@@ -2709,7 +2972,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 2713 "configure"
+#line 2976 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -2727,7 +2990,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 2731 "configure"
+#line 2994 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2748,7 +3011,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2752 "configure"
+#line 3015 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2759,7 +3022,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2785,9 +3048,9 @@ fi
echo $ac_n "checking ecvt declaration""... $ac_c" 1>&6
-echo "configure:2789: checking ecvt declaration" >&5
+echo "configure:3052: checking ecvt declaration" >&5
cat > conftest.$ac_ext <<EOF
-#line 2791 "configure"
+#line 3054 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2803,12 +3066,12 @@ else
echo "$ac_t""no" 1>&6; for ac_func in ecvt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2807: checking for $ac_func" >&5
+echo "configure:3070: 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 2812 "configure"
+#line 3075 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2831,7 +3094,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2860,7 +3123,7 @@ rm -f conftest*
echo $ac_n "checking if stack overflow is detectable""... $ac_c" 1>&6
-echo "configure:2864: checking if stack overflow is detectable" >&5
+echo "configure:3127: checking if stack overflow is detectable" >&5
# Code from Jim Avera <jima@netcom.com>.
# stackovf.c requires:
# 1. Either sigaction with SA_ONSTACK, or sigvec with SV_ONSTACK
@@ -2870,7 +3133,7 @@ use_stackovf=no
if test "$ac_cv_func_sigaction" = yes || test "$ac_cv_func_sigvec" = yes; then
if test "$ac_cv_func_sigaltstack" = yes || test "$ac_cv_func_sigstack" = yes; then
cat > conftest.$ac_ext <<EOF
-#line 2874 "configure"
+#line 3137 "configure"
#include "confdefs.h"
#include <sys/time.h>
#include <sys/resource.h>
@@ -2883,7 +3146,7 @@ choke me /* SA_ONSTACK and/or SV_ONSTACK are not defined */
#endif
; return 0; }
EOF
-if { (eval echo configure:2887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
use_stackovf=yes
else
@@ -2902,7 +3165,7 @@ EOF
STACKOVF=stackovf.${U}o
cat > conftest.$ac_ext <<EOF
-#line 2906 "configure"
+#line 3169 "configure"
#include "confdefs.h"
#include <sys/resource.h>
EOF
@@ -2919,7 +3182,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 2923 "configure"
+#line 3186 "configure"
#include "confdefs.h"
#include <signal.h>
EOF
@@ -2936,7 +3199,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 2940 "configure"
+#line 3203 "configure"
#include "confdefs.h"
#include <signal.h>
EOF
@@ -2950,10 +3213,30 @@ EOF
fi
rm -f conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line 3219 "configure"
+#include "confdefs.h"
+#include <signal.h>
+int main() {
+struct sigaltstack x; x.ss_base = 0;
+; return 0; }
+EOF
+if { (eval echo configure:3226: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cat >> confdefs.h <<\EOF
+#define ss_sp ss_base
+EOF
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
fi
echo $ac_n "checking if changeword is wanted""... $ac_c" 1>&6
-echo "configure:2957: checking if changeword is wanted" >&5
+echo "configure:3240: checking if changeword is wanted" >&5
# Check whether --enable-changeword or --disable-changeword was given.
if test "${enable_changeword+set}" = set; then
enableval="$enable_changeword"
@@ -2972,7 +3255,7 @@ fi
echo $ac_n "checking if support for dynamic modules is wanted""... $ac_c" 1>&6
-echo "configure:2976: checking if support for dynamic modules is wanted" >&5
+echo "configure:3259: checking if support for dynamic modules is wanted" >&5
# Check whether --with-modules or --without-modules was given.
if test "${with_modules+set}" = set; then
withval="$with_modules"
@@ -2989,12 +3272,12 @@ fi
for ac_func in dlopen
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2993: checking for $ac_func" >&5
+echo "configure:3276: 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 2998 "configure"
+#line 3281 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3017,7 +3300,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3047,7 +3330,7 @@ done
if test "$with_modules" = no; then
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:3051: checking for dlopen in -ldl" >&5
+echo "configure:3334: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3055,7 +3338,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3059 "configure"
+#line 3342 "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
@@ -3066,7 +3349,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:3070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3115,7 +3398,7 @@ EOF
if test "$with_modules" = no; then
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:3119: checking for shl_load in -ldld" >&5
+echo "configure:3402: checking for shl_load in -ldld" >&5
ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3123,7 +3406,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3127 "configure"
+#line 3410 "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
@@ -3134,7 +3417,7 @@ int main() {
shl_load()
; return 0; }
EOF
-if { (eval echo configure:3138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3191,12 +3474,12 @@ EOF
echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:3195: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:3478: checking whether struct tm is in sys/time.h or time.h" >&5
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 3200 "configure"
+#line 3483 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <time.h>
@@ -3204,7 +3487,7 @@ int main() {
struct tm *tp; tp->tm_sec;
; return 0; }
EOF
-if { (eval echo configure:3208: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm=time.h
else
@@ -3225,12 +3508,12 @@ EOF
fi
echo $ac_n "checking for strftime""... $ac_c" 1>&6
-echo "configure:3229: checking for strftime" >&5
+echo "configure:3512: 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 3234 "configure"
+#line 3517 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char strftime(); below. */
@@ -3253,7 +3536,7 @@ strftime();
; return 0; }
EOF
-if { (eval echo configure:3257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_strftime=yes"
else
@@ -3275,7 +3558,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:3279: checking for strftime in -lintl" >&5
+echo "configure:3562: 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
@@ -3283,7 +3566,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3287 "configure"
+#line 3570 "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
@@ -3294,7 +3577,7 @@ int main() {
strftime()
; return 0; }
EOF
-if { (eval echo configure:3298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3323,12 +3606,12 @@ fi
for ac_func in getcwd gethostname mktime uname
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3327: checking for $ac_func" >&5
+echo "configure:3610: 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 3332 "configure"
+#line 3615 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3351,7 +3634,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3378,12 +3661,12 @@ done
for ac_func in setenv unsetenv putenv clearenv
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3382: checking for $ac_func" >&5
+echo "configure:3665: 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 3387 "configure"
+#line 3670 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3406,7 +3689,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3433,7 +3716,7 @@ done
echo $ac_n "checking if extended and fractional arithmetic is wanted""... $ac_c" 1>&6
-echo "configure:3437: checking if extended and fractional arithmetic is wanted" >&5
+echo "configure:3720: checking if extended and fractional arithmetic is wanted" >&5
# Check whether --with-gmp or --without-gmp was given.
if test "${with_gmp+set}" = set; then
withval="$with_gmp"
@@ -3448,18 +3731,18 @@ fi
LIBS="$LIBS -lgmp"
ac_safe=`echo "gmp.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for gmp.h""... $ac_c" 1>&6
-echo "configure:3452: checking for gmp.h" >&5
+echo "configure:3735: checking for gmp.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 3457 "configure"
+#line 3740 "configure"
#include "confdefs.h"
#include <gmp.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:3745: \"$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"
@@ -3475,19 +3758,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for mpq_init in libgmp""... $ac_c" 1>&6
-echo "configure:3479: checking for mpq_init in libgmp" >&5
+echo "configure:3762: checking for mpq_init in libgmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_mpq_init_libgmp'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3484 "configure"
+#line 3767 "configure"
#include "confdefs.h"
#include <gmp.h>
int main() {
mpq_t x; (void)mpq_init(x)
; return 0; }
EOF
-if { (eval echo configure:3491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_mpq_init_libgmp=yes
else
@@ -3520,7 +3803,7 @@ EOF
if test "$use_gmp" != yes; then
echo $ac_n "checking size of long long int""... $ac_c" 1>&6
-echo "configure:3524: checking size of long long int" >&5
+echo "configure:3807: checking size of long long int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3528,7 +3811,7 @@ else
ac_cv_sizeof_long_long_int=0
else
cat > conftest.$ac_ext <<EOF
-#line 3532 "configure"
+#line 3815 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
@@ -3539,7 +3822,7 @@ main()
exit(0);
}
EOF
-if { (eval echo configure:3543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long_long_int=`cat conftestval`
else
@@ -3562,7 +3845,7 @@ EOF
echo $ac_n "checking if malloc debugging is wanted""... $ac_c" 1>&6
-echo "configure:3566: checking if malloc debugging is wanted" >&5
+echo "configure:3849: checking if malloc debugging is wanted" >&5
# Check whether --with-dmalloc or --without-dmalloc was given.
if test "${with_dmalloc+set}" = set; then
withval="$with_dmalloc"
@@ -3583,21 +3866,21 @@ fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:3587: checking for inline" >&5
+echo "configure:3870: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+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 3594 "configure"
+#line 3877 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:3601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3884: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -3623,12 +3906,12 @@ EOF
esac
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3627: checking for off_t" >&5
+echo "configure:3910: 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 3632 "configure"
+#line 3915 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3637,7 +3920,7 @@ else
#endif
EOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ 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
@@ -3659,18 +3942,18 @@ 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:3663: checking for $ac_hdr" >&5
+echo "configure:3946: 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 3668 "configure"
+#line 3951 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:3956: \"$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"
@@ -3698,12 +3981,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3702: checking for $ac_func" >&5
+echo "configure:3985: 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 3707 "configure"
+#line 3990 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3726,7 +4009,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3751,7 +4034,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:3755: checking for working mmap" >&5
+echo "configure:4038: 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
@@ -3759,7 +4042,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 3763 "configure"
+#line 4046 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -3899,7 +4182,7 @@ main()
}
EOF
-if { (eval echo configure:3903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -3927,18 +4210,18 @@ 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:3931: checking for $ac_hdr" >&5
+echo "configure:4214: 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 3936 "configure"
+#line 4219 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:4224: \"$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"
@@ -3967,12 +4250,12 @@ done
strdup __argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3971: checking for $ac_func" >&5
+echo "configure:4254: 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 3976 "configure"
+#line 4259 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3995,7 +4278,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4024,12 +4307,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4028: checking for $ac_func" >&5
+echo "configure:4311: 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 4033 "configure"
+#line 4316 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4052,7 +4335,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4086,19 +4369,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:4090: checking for LC_MESSAGES" >&5
+echo "configure:4373: 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 4095 "configure"
+#line 4378 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:4102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@@ -4119,7 +4402,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:4123: checking whether NLS is requested" >&5
+echo "configure:4406: 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"
@@ -4139,7 +4422,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:4143: checking whether included gettext is requested" >&5
+echo "configure:4426: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@@ -4158,18 +4441,18 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:4162: checking for libintl.h" >&5
+echo "configure:4445: 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 4167 "configure"
+#line 4450 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:4455: \"$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"
@@ -4185,19 +4468,19 @@ 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:4189: checking for gettext in libc" >&5
+echo "configure:4472: 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
else
cat > conftest.$ac_ext <<EOF
-#line 4194 "configure"
+#line 4477 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:4201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libc=yes
else
@@ -4213,7 +4496,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
if test "$gt_cv_func_gettext_libc" != "yes"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:4217: checking for bindtextdomain in -lintl" >&5
+echo "configure:4500: 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
@@ -4221,7 +4504,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4225 "configure"
+#line 4508 "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
@@ -4232,7 +4515,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:4236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4247,8 +4530,13 @@ LIBS="$ac_save_LIBS"
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:4535: 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:4252: checking for gettext in -lintl" >&5
+echo "configure:4540: 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
@@ -4256,7 +4544,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4260 "configure"
+#line 4548 "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
@@ -4267,7 +4555,7 @@ int main() {
gettext()
; return 0; }
EOF
-if { (eval echo configure:4271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4282,13 +4570,15 @@ 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 -lintl"
- gt_cv_func_gettext_libintl=yes
+ gt_cv_func_gettext_libintl=yes
else
echo "$ac_t""no" 1>&6
gt_cv_func_gettext_libintl=no
fi
+fi
+
+echo "$ac_t""$gt_cv_func_gettext_libintl" 1>&6
else
echo "$ac_t""no" 1>&6
fi
@@ -4304,7 +4594,7 @@ EOF
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4308: checking for $ac_word" >&5
+echo "configure:4598: 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
@@ -4338,12 +4628,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4342: checking for $ac_func" >&5
+echo "configure:4632: 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 4347 "configure"
+#line 4637 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4366,7 +4656,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4393,7 +4683,7 @@ done
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4397: checking for $ac_word" >&5
+echo "configure:4687: 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
@@ -4401,9 +4691,13 @@ else
/*)
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 path.
+ ;;
*)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ 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"
@@ -4425,7 +4719,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4429: checking for $ac_word" >&5
+echo "configure:4723: 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
@@ -4457,7 +4751,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
-#line 4461 "configure"
+#line 4755 "configure"
#include "confdefs.h"
int main() {
@@ -4465,7 +4759,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
-if { (eval echo configure:4469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@@ -4488,7 +4782,7 @@ fi
if test "$CATOBJEXT" = "NONE"; then
echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
-echo "configure:4492: checking whether catgets can be used" >&5
+echo "configure:4786: 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"
@@ -4501,7 +4795,7 @@ fi
if test "$nls_cv_use_catgets" = "yes"; then
echo $ac_n "checking for main in -li""... $ac_c" 1>&6
-echo "configure:4505: checking for main in -li" >&5
+echo "configure:4799: 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
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4509,14 +4803,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-li $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4513 "configure"
+#line 4807 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:4520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4544,12 +4838,12 @@ else
fi
echo $ac_n "checking for catgets""... $ac_c" 1>&6
-echo "configure:4548: checking for catgets" >&5
+echo "configure:4842: checking for catgets" >&5
if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4553 "configure"
+#line 4847 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char catgets(); below. */
@@ -4572,7 +4866,7 @@ catgets();
; return 0; }
EOF
-if { (eval echo configure:4576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_catgets=yes"
else
@@ -4594,7 +4888,7 @@ EOF
# Extract the first word of "gencat", so it can be a program name with args.
set dummy gencat; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4598: checking for $ac_word" >&5
+echo "configure:4892: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4602,9 +4896,13 @@ else
/*)
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="${IFS}:"
- for ac_dir in $PATH; do
+ 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"
@@ -4626,7 +4924,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4630: checking for $ac_word" >&5
+echo "configure:4928: 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
@@ -4634,9 +4932,13 @@ else
/*)
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 path.
+ ;;
*)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ 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"
@@ -4659,7 +4961,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4663: checking for $ac_word" >&5
+echo "configure:4965: 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
@@ -4694,7 +4996,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4698: checking for $ac_word" >&5
+echo "configure:5000: 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
@@ -4752,7 +5054,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4756: checking for $ac_word" >&5
+echo "configure:5058: 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
@@ -4786,7 +5088,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4790: checking for $ac_word" >&5
+echo "configure:5092: 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
@@ -4794,9 +5096,13 @@ else
/*)
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 path.
+ ;;
*)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ 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"
@@ -4818,7 +5124,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4822: checking for $ac_word" >&5
+echo "configure:5128: 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
@@ -4911,7 +5217,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:4915: checking for catalogs to be installed" >&5
+echo "configure:5221: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@@ -4939,18 +5245,18 @@ echo "configure:4915: checking for catalogs to be installed" >&5
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:4943: checking for linux/version.h" >&5
+echo "configure:5249: checking for linux/version.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 4948 "configure"
+#line 5254 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:5259: \"$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"
@@ -5022,6 +5328,15 @@ fi
+# This no-op line works around a bug in automake 1.4:
+# it doesn't recognize the assignment to LIBOBJS
+# in acm4/malloc.m4 and acm4/realloc.m4.
+# : LIBOBJS="$LIBOBJS malloc.o realloc.o"
+
+# This is necessary so that .o files in LIBOBJS are also built via
+# the ANSI2KNR-filtering rules.
+LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
+
trap '' 1 2 15
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
@@ -5045,7 +5360,7 @@ EOF
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
- case `(ac_space=' '; set) 2>&1` in
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
*ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote substitution
# turns \\\\ into \\, and sed turns \\ into \).
@@ -5112,7 +5427,7 @@ do
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.12"
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
@@ -5133,9 +5448,11 @@ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
$ac_vpsub
$extrasub
+s%@SHELL@%$SHELL%g
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
@@ -5155,8 +5472,8 @@ s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@PACKAGE@%$PACKAGE%g
s%@VERSION@%$VERSION%g
s%@ACLOCAL@%$ACLOCAL%g
@@ -5166,6 +5483,7 @@ s%@AUTOHEADER@%$AUTOHEADER%g
s%@MAKEINFO@%$MAKEINFO%g
s%@SET_MAKE@%$SET_MAKE%g
s%@pkglibexecdir@%$pkglibexecdir%g
+s%@subdirs@%$subdirs%g
s%@AWK@%$AWK%g
s%@CC@%$CC%g
s%@PERL@%$PERL%g
@@ -5174,6 +5492,11 @@ 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%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
s%@RANLIB@%$RANLIB%g
s%@LD@%$LD%g
s%@NM@%$NM%g
@@ -5484,5 +5807,102 @@ chmod +x $CONFIG_STATUS
rm -fr confdefs* $ac_clean_files
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+if test "$no_recursion" != yes; then
+
+ # Remove --cache-file and --srcdir arguments so they do not pile up.
+ ac_sub_configure_args=
+ ac_prev=
+ for ac_arg in $ac_configure_args; do
+ if test -n "$ac_prev"; then
+ ac_prev=
+ continue
+ fi
+ case "$ac_arg" in
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ ;;
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ ;;
+ *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
+ esac
+ done
+
+ for ac_config_dir in libltdl; do
+
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ if test ! -d $srcdir/$ac_config_dir; then
+ continue
+ fi
+
+ echo configuring in $ac_config_dir
+
+ case "$srcdir" in
+ .) ;;
+ *)
+ if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
+ else
+ { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; }
+ fi
+ ;;
+ esac
+
+ ac_popdir=`pwd`
+ cd $ac_config_dir
+
+ # A "../" for each directory in /$ac_config_dir.
+ ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+
+ case "$srcdir" in
+ .) # No --srcdir option. We are building in place.
+ ac_sub_srcdir=$srcdir ;;
+ /*) # Absolute path.
+ ac_sub_srcdir=$srcdir/$ac_config_dir ;;
+ *) # Relative path.
+ ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
+ esac
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_sub_srcdir/configure; then
+ ac_sub_configure=$ac_sub_srcdir/configure
+ elif test -f $ac_sub_srcdir/configure.in; then
+ ac_sub_configure=$ac_configure
+ else
+ echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2
+ ac_sub_configure=
+ fi
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+
+ # Make the cache file name correct relative to the subdirectory.
+ case "$cache_file" in
+ /*) ac_sub_cache_file=$cache_file ;;
+ *) # Relative path.
+ ac_sub_cache_file="$ac_dots$cache_file" ;;
+ esac
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
+ # The eval makes quoting arguments work.
+ if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
+ then :
+ else
+ { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; }
+ fi
+ fi
+
+ cd $ac_popdir
+ done
+fi
+
diff --git a/configure.in b/configure.in
index 74008230..ff920bc9 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
# Configure template for GNU m4.
-# Copyright (C) 1991-1998 Free Software Foundation, Inc.
+# Copyright (C) 1991-2000 Free Software Foundation, Inc.
# Process this file with autoconf to produce a configure script.
undefine([changeword])
@@ -8,20 +8,25 @@ AC_INIT(src/m4.c)
AM_CONFIG_HEADER(config.h)
AC_ARG_PROGRAM
-AM_INIT_AUTOMAKE(m4,1.4n)
-ALL_LINGUAS="de fr it ja nl pl ru sv"
+AM_INIT_AUTOMAKE(m4,1.4o)
+
+ALL_LINGUAS="cs de el fr it ja nl pl ru sv"
pkglibexecdir='${libexecdir}'/$PACKAGE
AC_SUBST(pkglibexecdir)
+AC_CONFIG_SUBDIRS(libltdl)
+AC_LIBLTDL_CONVENIENCE
+
AC_PROG_AWK
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PATH_PROG(PERL,perl)
-AM_ENABLE_SHARED
-AM_DISABLE_STATIC
+AC_ENABLE_SHARED
+AC_DISABLE_STATIC
+AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
AC_AIX
@@ -77,6 +82,10 @@ if test "$use_stackovf" = yes; then
AC_EGREP_HEADER(rlim_t, sys/resource.h, , AC_DEFINE(rlim_t, int))
AC_EGREP_HEADER(stack_t, signal.h, , AC_DEFINE(stack_t, struct sigaltstack))
AC_EGREP_HEADER(sigcontext, signal.h, AC_DEFINE(HAVE_SIGCONTEXT))
+
+ AC_TRY_COMPILE([#include <signal.h>],
+ [struct sigaltstack x; x.ss_base = 0;],
+ AC_DEFINE(ss_sp, ss_base))
fi
AC_MSG_CHECKING(if changeword is wanted)
@@ -112,6 +121,15 @@ fi
dnl AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
+# This no-op line works around a bug in automake 1.4:
+# it doesn't recognize the assignment to LIBOBJS
+# in acm4/malloc.m4 and acm4/realloc.m4.
+# : LIBOBJS="$LIBOBJS malloc.o realloc.o"
+
+# This is necessary so that .o files in LIBOBJS are also built via
+# the ANSI2KNR-filtering rules.
+LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
+
AC_OUTPUT(Makefile acm4/Makefile intl/Makefile po/Makefile.in doc/Makefile \
lib/Makefile src/Makefile modules/Makefile tests/Makefile examples/Makefile, \
[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile; \
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 459d2b10..ab270e41 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -4,6 +4,8 @@ man_MANS = m4.1
EXTRA_DIST = helptoman.pl # $(MANS)
+MAINTAINERCLEANFILES = Makefile.in mdate-sh texinfo.tex m4.1
+
PERL = @PERL@
%.1: helptoman.pl ../src/$*
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 1af78ddb..90ab843e 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.3b from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
-SHELL = /bin/sh
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -59,6 +59,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+AS = @AS@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -66,6 +67,7 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DLLDFLAGS = @DLLDFLAGS@
+DLLTOOL = @DLLTOOL@
GENCAT = @GENCAT@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
@@ -86,6 +88,7 @@ MODULES_DIR = @MODULES_DIR@
MODULE_PATH = @MODULE_PATH@
MSGFMT = @MSGFMT@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
@@ -104,12 +107,13 @@ man_MANS = m4.1
EXTRA_DIST = helptoman.pl # $(MANS)
+MAINTAINERCLEANFILES = Makefile.in mdate-sh texinfo.tex m4.1
+
PERL = @PERL@
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi
-TEXINFO_TEX = $(srcdir)/texinfo.tex
INFO_DEPS = m4.info
DVIS = m4.dvi
TEXINFOS = m4.texinfo
@@ -124,12 +128,11 @@ version.texi
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
-GZIP = --best
-all: Makefile $(INFO_DEPS) $(MANS)
-
+GZIP_ENV = --best
+all: all-redirect
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -137,18 +140,18 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-version.texi: stamp-vti
- cp $(srcdir)/stamp-vti $(srcdir)/version.texi
+$(srcdir)/version.texi: stamp-vti
+ @:
-stamp-vti: m4.texinfo $(top_srcdir)/configure.in
- @echo "@set UPDATED `cd $(srcdir) \
- && $(SHELL) ./mdate-sh m4.texinfo`" > vti.tmp
+$(srcdir)/stamp-vti: m4.texinfo $(top_srcdir)/configure.in
+ @echo "@set UPDATED `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/m4.texinfo`" > vti.tmp
@echo "@set EDITION $(VERSION)" >> vti.tmp
@echo "@set VERSION $(VERSION)" >> vti.tmp
- @cmp -s vti.tmp $(srcdir)/stamp-vti \
- || (echo "Updating $(srcdir)/stamp-vti"; \
- cp vti.tmp $(srcdir)/stamp-vti)
+ @cmp -s vti.tmp $(srcdir)/version.texi \
+ || (echo "Updating $(srcdir)/version.texi"; \
+ cp vti.tmp $(srcdir)/version.texi)
-@rm -f vti.tmp
+ @cp $(srcdir)/version.texi $@
mostlyclean-vti:
-rm -f vti.tmp
@@ -158,7 +161,7 @@ clean-vti:
distclean-vti:
maintainer-clean-vti:
- -rm -f stamp-vti version.texi
+ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
m4.info: m4.texinfo version.texi
m4.dvi: m4.texinfo version.texi
@@ -172,7 +175,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
- TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@@ -191,7 +194,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
- TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@@ -200,7 +203,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
- TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@@ -213,7 +216,8 @@ DVIPS = dvips
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
- @for file in $(INFO_DEPS); do \
+ @list='$(INFO_DEPS)'; \
+ for file in $$list; do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
@@ -224,7 +228,8 @@ install-info-am: $(INFO_DEPS)
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
- for file in $(INFO_DEPS); do \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
@@ -235,17 +240,20 @@ uninstall-info:
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
- for file in $(INFO_DEPS); do \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
test -z "$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)
- for file in $(INFO_DEPS); do \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
done
dist-info: $(INFO_DEPS)
- for base in $(INFO_DEPS); do \
+ list='$(INFO_DEPS)'; \
+ for base in $$list; do \
d=$(srcdir); \
for file in `cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
@@ -264,7 +272,7 @@ clean-aminfo:
distclean-aminfo:
maintainer-clean-aminfo:
- for i in $(INFO_DEPS); do \
+ cd $(srcdir) && for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
@@ -320,28 +328,38 @@ subdir = doc
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
-info: $(INFO_DEPS)
-dvi: $(DVIS)
-check: all
-installcheck:
-install-exec:
- @$(NORMAL_INSTALL)
-
-install-data: install-info-am install-man
- @$(NORMAL_INSTALL)
-
-install: install-exec install-data all
- @:
-
-uninstall: uninstall-info uninstall-man
-
+info-am: $(INFO_DEPS)
+info: info-am
+dvi-am: $(DVIS)
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-info-am install-man
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-info uninstall-man
+uninstall: uninstall-am
+all-am: Makefile $(INFO_DEPS) $(MANS)
+all-redirect: all-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1
@@ -355,26 +373,36 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-mostlyclean: mostlyclean-vti mostlyclean-aminfo mostlyclean-generic
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-vti mostlyclean-aminfo mostlyclean-generic
-clean: clean-vti clean-aminfo clean-generic mostlyclean
+mostlyclean: mostlyclean-am
-distclean: distclean-vti distclean-aminfo distclean-generic clean
- -rm -f config.status
+clean-am: clean-vti clean-aminfo clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-vti distclean-aminfo distclean-generic clean-am
-rm -f libtool
-maintainer-clean: maintainer-clean-vti maintainer-clean-aminfo \
- maintainer-clean-generic distclean
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-vti maintainer-clean-aminfo \
+ maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
+maintainer-clean: maintainer-clean-am
+
.PHONY: mostlyclean-vti distclean-vti clean-vti maintainer-clean-vti \
install-info-am uninstall-info mostlyclean-aminfo distclean-aminfo \
clean-aminfo maintainer-clean-aminfo install-man1 uninstall-man1 \
-install-man uninstall-man tags distdir info dvi installcheck \
-install-exec install-data install uninstall all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+install-man uninstall-man tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
%.1: helptoman.pl ../src/$*
diff --git a/doc/m4.info b/doc/m4.info
index 1a6d6605..4ee8e02b 100644
--- a/doc/m4.info
+++ b/doc/m4.info
@@ -1,14 +1,15 @@
This is Info file m4.info, produced by Makeinfo version 1.68 from the
input file m4.texinfo.
+INFO-DIR-SECTION Text Processing Tools
START-INFO-DIR-ENTRY
* m4: (m4). A powerful macro processor.
END-INFO-DIR-ENTRY
This file documents the GNU `m4' utility.
- Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998 Free Software
-Foundation, Inc.
+ Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000
+Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -26,93 +27,94 @@ translation approved by the Foundation.

Indirect:
-m4.info-1: 973
-m4.info-2: 50410
-m4.info-3: 99746
+m4.info-1: 1024
+m4.info-2: 50285
+m4.info-3: 100109

Tag Table:
(Indirect)
-Node: Top973
-Node: Preliminaries7105
-Node: Intro7830
-Node: History9438
-Node: Invoking m410353
-Node: Bugs17466
-Node: Manual18667
-Node: Syntax20034
-Node: Names20872
-Node: Quoted strings21485
-Node: Other tokens22069
-Node: Comments22286
-Node: Input processing22973
-Node: Macros24126
-Node: Invocation24619
-Node: Inhibiting Invocation25430
-Node: Macro Arguments28575
-Node: Quoting Arguments29890
-Node: Macro expansion30695
-Node: Definitions31358
-Node: Define32135
-Node: Arguments33689
-Node: Pseudo Arguments35170
-Node: Undefine37021
-Node: Defn37683
-Node: Pushdef39153
-Node: Indir41212
-Node: Builtin41990
-Node: Conditionals42434
-Node: Ifdef43141
-Node: Ifelse43910
-Node: Loops45692
-Node: Debugging48984
-Node: Dumpdef49562
-Node: Trace50410
-Node: Debug Levels51789
-Node: Debug Output54175
-Node: Input Control54695
-Node: Dnl55308
-Node: Changequote56434
-Node: Changecom57798
-Node: Changesyntax59084
-Node: Changeword66333
-Node: M4wrap69709
-Node: File Inclusion70911
-Node: Include71227
-Node: Search Path73247
-Node: Diversions74034
-Node: Divert75271
-Node: Undivert76403
-Node: Divnum78374
-Node: Cleardiv78919
-Node: Text handling79974
-Node: Len80694
-Node: Index81092
-Node: Regexp81677
-Node: Substr82768
-Node: Translit83388
-Node: Patsubst84831
-Node: Format86922
-Node: Arithmetic88484
-Node: Incr88952
-Node: Eval89456
-Node: Mpeval92592
-Node: UNIX commands93348
-Node: Syscmd93819
-Node: Esyscmd94532
-Node: Sysval95480
-Node: Maketemp95885
-Node: Miscellaneous96943
-Node: Errprint97374
-Node: M4exit98356
-Node: Syncoutput99154
-Node: Frozen files99746
-Node: Compatibility104665
-Node: Extensions105281
-Node: Incompatibilities107751
-Node: Other Incompat108193
-Node: Experiments110358
-Node: Answers111865
-Node: Concept index112497
-Node: Macro index119918
+Node: Top1024
+Node: Preliminaries7188
+Node: Intro7913
+Node: History9522
+Node: Invoking m410437
+Node: Bugs17555
+Node: Manual18756
+Node: Syntax20123
+Node: Names20961
+Node: Quoted strings21605
+Node: Other tokens22190
+Node: Comments22407
+Node: Input processing23095
+Node: Macros24248
+Node: Invocation24741
+Node: Inhibiting Invocation25552
+Node: Macro Arguments28698
+Node: Quoting Arguments30013
+Node: Macro expansion30818
+Node: Definitions31481
+Node: Define32323
+Node: Arguments33877
+Node: Pseudo Arguments35358
+Node: Undefine37209
+Node: Defn37871
+Node: Pushdef39341
+Node: Indir41400
+Node: Builtin42178
+Node: Symbols42638
+Node: Conditionals43157
+Node: Ifdef43864
+Node: Ifelse44633
+Node: Loops46415
+Node: Debugging49707
+Node: Dumpdef50285
+Node: Trace51134
+Node: Debug Levels52514
+Node: Debug Output54900
+Node: Input Control55420
+Node: Dnl56033
+Node: Changequote57159
+Node: Changecom58746
+Node: Changesyntax60032
+Node: Changeword67280
+Node: M4wrap70663
+Node: File Inclusion71865
+Node: Include72181
+Node: Search Path74201
+Node: Diversions74988
+Node: Divert76225
+Node: Undivert77357
+Node: Divnum79328
+Node: Cleardiv79873
+Node: Text handling80928
+Node: Len81648
+Node: Index82046
+Node: Regexp82631
+Node: Substr83722
+Node: Translit84342
+Node: Patsubst85785
+Node: Format87876
+Node: Arithmetic89438
+Node: Incr89906
+Node: Eval90410
+Node: Mpeval93546
+Node: UNIX commands94302
+Node: Syscmd94773
+Node: Esyscmd95487
+Node: Sysval96435
+Node: Maketemp96840
+Node: Miscellaneous97898
+Node: Errprint98329
+Node: M4exit99311
+Node: Syncoutput100109
+Node: Frozen files100700
+Node: Compatibility105762
+Node: Extensions106378
+Node: Incompatibilities108848
+Node: Other Incompat109290
+Node: Experiments111455
+Node: Answers112962
+Node: Concept index113594
+Node: Macro index121115

End Tag Table
diff --git a/doc/m4.info-1 b/doc/m4.info-1
index 5280383b..591ea22c 100644
--- a/doc/m4.info-1
+++ b/doc/m4.info-1
@@ -1,14 +1,15 @@
This is Info file m4.info, produced by Makeinfo version 1.68 from the
input file m4.texinfo.
+INFO-DIR-SECTION Text Processing Tools
START-INFO-DIR-ENTRY
* m4: (m4). A powerful macro processor.
END-INFO-DIR-ENTRY
This file documents the GNU `m4' utility.
- Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998 Free Software
-Foundation, Inc.
+ Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000
+Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -42,7 +43,7 @@ changes by Franc,ois Pinard and other volunteers on the Internet. All
names and email addresses can be found in the file `THANKS' from the
GNU `m4' distribution.
- This is BETA release 1.4n. This is a development release, and is as
+ This is BETA release 1.4o. This is a development release, and is as
such prone to bugs, crashes, unforeseen features, incomplete
documentation, ... therefore, use at your own peril. In case of
problems, please do not hesitate to report them (see the README file in
@@ -75,7 +76,6 @@ the distribution).
* Concept index:: Index for many concepts
* Macro index:: Index for all m4 macros
- -- The Detailed Node Listing --
Introduction and preliminaries
@@ -113,6 +113,8 @@ How to define new macros
* Indir:: Indirect call of macros
* Builtin:: Indirect call of builtins
+* Symbols:: Getting the defined macro names
+
Conditionals, loops and recursion
* Ifdef:: Testing if a macro is defined
@@ -225,7 +227,7 @@ popularity of GNU Autoconf, which prerequires GNU `m4' for *generating*
the `configure' scripts, is an incentive for many to install it, while
these people will not themselves program in `m4'. GNU `m4' is mostly
compatible with the System V, Release 3 version, except for some minor
-differences. *Note Compatibility:: for more details.
+differences. *Note Compatibility::, for more details.
Some people found `m4' to be fairly addictive. They first use `m4'
for simple problems, then take bigger and bigger challenges, learning
@@ -296,24 +298,24 @@ options:
`--debug=FLAGS'
Set the debug-level according to the flags FLAGS. The debug-level
controls the format and amount of information presented by the
- debugging functions. *Note Debug Levels:: for more details on the
- format and meaning of FLAGS.
+ debugging functions. *Note Debug Levels::, for more details on
+ the format and meaning of FLAGS.
`-lNUM'
`--arglength=NUM'
Restrict the size of the output generated by macro tracing. *Note
- Debug Levels:: for more details.
+ Debug Levels::, for more details.
`-oFILE'
`--error-output=FILE'
Redirect debug and trace output to the named file. Error messages
are still printed on the standard error output. *Note Debug
- Output:: for more details.
+ Output::, for more details.
`-IDIR'
`--include=DIR'
Make `m4' search DIR for included files that are not found in the
- current working directory. *Note Search Path:: for more details.
+ current working directory. *Note Search Path::, for more details.
`-e'
`--interactive'
@@ -340,7 +342,7 @@ options:
themselves. When a synchronisation discrepancy occurs in the
middle of an output line, the associated synchronisation directive
is delayed until the beginning of the next generated line. *Note
- Syncoutput:: for runtime control.
+ Syncoutput::, for runtime control.
`-P'
`--prefix-builtins'
@@ -551,9 +553,11 @@ definition, it will be subject to macro expansion (*note Macros::.).)
Examples of legal names are: `foo', `_tmp', and `name01'.
+ Names are case-sensitive.
+
The definitions of letters, digits and other input characters can be
changed at any time, using the builtin macro `changesyntax'. *Note
-Changesyntax:: for more information.
+Changesyntax::, for more information.

File: m4.info, Node: Quoted strings, Next: Other tokens, Prev: Names, Up: Syntax
@@ -577,7 +581,7 @@ quotes stripped off. Thus
`quoted'
The quote characters can be changed at any time, using the builtin
-macro `changequote'. *Note Changequote:: for more information.
+macro `changequote'. *Note Changequote::, for more information.

File: m4.info, Node: Other tokens, Next: Comments, Prev: Quoted strings, Up: Syntax
@@ -604,7 +608,7 @@ comment. The commenting effect of the begin comment character can be
inhibited by quoting it.
The comment delimiters can be changed to any string at any time,
-using the builtin macro `changecom'. *Note Changecom:: for more
+using the builtin macro `changecom'. *Note Changecom::, for more
information.

@@ -720,8 +724,8 @@ even `m4_m4exit'.
If your version of GNU `m4' has the `changeword' feature compiled
in, there it offers far more flexibility in specifying the syntax of
-macro names, both builtin or user-defined. *Note Changeword:: for more
-information on this experimental feature.
+macro names, both builtin or user-defined. *Note Changeword::, for
+more information on this experimental feature.
Of course, the simplest way to prevent a name to be interpreted as a
call to an existing macro is to quote it. The remainder of this
@@ -870,6 +874,8 @@ previous value, which can be brought back at a later time.
* Indir:: Indirect call of macros
* Builtin:: Indirect call of builtins
+* Symbols:: Getting the defined macro names
+

File: m4.info, Node: Define, Next: Arguments, Prev: Definitions, Up: Definitions
@@ -1224,7 +1230,7 @@ macros defined, that will not be called by accident. They can *only* be
called through the builtin `indir'.

-File: m4.info, Node: Builtin, Prev: Indir, Up: Definitions
+File: m4.info, Node: Builtin, Next: Symbols, Prev: Indir, Up: Definitions
Indirect call of builtins
=========================
@@ -1240,6 +1246,23 @@ definition that has covered the original.
The macro `builtin' is recognized only with parameters.

+File: m4.info, Node: Symbols, Prev: Builtin, Up: Definitions
+
+Getting the defined macro names
+===============================
+
+ The name of the currently defined macro can be accessed by `symbols':
+ symbols
+
+which results in a sorted list of quoted strings. This contrasts with
+`dumpdef' which output can not be accessed by `m4' programs.
+
+ When given arguments, `symbols' returns the sorted subset of the
+symbols currently defined:
+ symbols(`ifndef', `ifdef', `define', `undef')
+ =>define,ifdef
+
+
File: m4.info, Node: Conditionals, Next: Debugging, Prev: Definitions, Up: Top
Conditionals, loops and recursion
@@ -1442,35 +1465,3 @@ a little support for macro debugging in `m4'.
* Debug Levels:: Controlling debugging output
* Debug Output:: Saving debugging output
-
-File: m4.info, Node: Dumpdef, Next: Trace, Prev: Debugging, Up: Debugging
-
-Displaying macro definitions
-============================
-
- If you want to see what a name expands into, you can use the builtin
-`dumpdef':
-
- dumpdef(...)
-
-which accepts any number of arguments. If called without any arguments,
-it displays the definitions of all known names, otherwise it displays
-the definitions of the names given. The output is printed directly on
-the standard error output.
-
- The expansion of `dumpdef' is void.
-
- define(`foo', `Hello world.')
- =>
- dumpdef(`foo')
- error-->foo: `Hello world.'
- =>
- dumpdef(`define')
- error-->define: <define>
- =>
-
- The last example shows how builtin macros definitions are displayed.
-
- *Note Debug Levels:: for information on controlling the details of
-the display.
-
diff --git a/doc/m4.info-2 b/doc/m4.info-2
index 39a695d0..b9568e4e 100644
--- a/doc/m4.info-2
+++ b/doc/m4.info-2
@@ -1,14 +1,15 @@
This is Info file m4.info, produced by Makeinfo version 1.68 from the
input file m4.texinfo.
+INFO-DIR-SECTION Text Processing Tools
START-INFO-DIR-ENTRY
* m4: (m4). A powerful macro processor.
END-INFO-DIR-ENTRY
This file documents the GNU `m4' utility.
- Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998 Free Software
-Foundation, Inc.
+ Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000
+Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -25,6 +26,38 @@ versions, except that this permission notice may be stated in a
translation approved by the Foundation.

+File: m4.info, Node: Dumpdef, Next: Trace, Prev: Debugging, Up: Debugging
+
+Displaying macro definitions
+============================
+
+ If you want to see what a name expands into, you can use the builtin
+`dumpdef':
+
+ dumpdef(...)
+
+which accepts any number of arguments. If called without any arguments,
+it displays the definitions of all known names, otherwise it displays
+the definitions of the names given. The output is printed directly on
+the standard error output.
+
+ The expansion of `dumpdef' is void.
+
+ define(`foo', `Hello world.')
+ =>
+ dumpdef(`foo')
+ error-->foo: `Hello world.'
+ =>
+ dumpdef(`define')
+ error-->define: <define>
+ =>
+
+ The last example shows how builtin macros definitions are displayed.
+
+ *Note Debug Levels::, for information on controlling the details of
+the display.
+
+
File: m4.info, Node: Trace, Next: Debug Levels, Prev: Dumpdef, Up: Debugging
Tracing macro calls
@@ -64,7 +97,7 @@ is printed directly on the standard error output.
most of the time, signifying an expansion at the outermost level, but it
increases when macro arguments contain unquoted macro calls.
- *Note Debug Levels:: for information on controlling the details of
+ *Note Debug Levels::, for information on controlling the details of
the display.

@@ -251,6 +284,11 @@ quoting mechanism, leaving no way to quote text.
There is no way in `m4' to quote a string containing an unmatched
left quote, except using `changequote' to change the current quotes.
+ If the quotes should be changed from, say, `[' to `[[', temporary
+quote characters have to be defined. To achieve this, two calls of
+`changequote' must be made, one for the temporary quotes and one for
+the new quotes.
+
Neither quote string should start with a letter or `_' (underscore),
as they will be confused with names in the input. Doing so disables
the quoting mechanism.
@@ -469,7 +507,7 @@ changing the syntax categories we can avoid it.
It is not yet possible to redefine the `$' used to indicate macro
arguments in user defined macros.
- Macro calls can be given a TeX- or texinfo like syntax using an
+ Macro calls can be given a TeX or Texinfo like syntax using an
escape. If one or more characters are defined as escapes macro names
are only recognised if preceded by an escape character.
@@ -503,9 +541,9 @@ They and the escape character are simply output.
\# \foo # Comment \foo
=>No comment bar # Comment \foo
- Active characters are known from TeX. In `m4' a active character is
-always seen as a one-letter word, and so, if it has a macro definition,
-the macro will be called.
+ Active characters are known from TeX. In `m4' an active character
+is always seen as a one-letter word, and so, if it has a macro
+definition, the macro will be called.
define(`@', `TEST')
=>
@@ -571,7 +609,7 @@ Note how it is possible to have both long and short quotes, if
`changequote' is used before `changesyntax'.
The syntax table is initialiased to be backwards compatible, so if
-you never calls `changesyntax', nothing will have changed.
+you never call `changesyntax', nothing will have changed.
Debugging output continue to use `(', `,' and `)' to show macro
calls.
@@ -604,8 +642,9 @@ apply translations to a file of numbers:
changeword(`[_a-zA-Z0-9]+')
define(1, 0)
- =>
1
+ =>
+ 0
=>0
The syntax for regular expressions is the same as in GNU Emacs.
@@ -1474,7 +1513,7 @@ which executes SHELL-COMMAND as a shell command.
The expansion of `syscmd' is void, *not* the output from
SHELL-COMMAND! Output or error messages from SHELL-COMMAND are not
-read by `m4'. *Note Esyscmd:: if you need to process the command
+read by `m4'. *Note Esyscmd::, if you need to process the command
output.
Prior to executing the command, `m4' flushes its output buffers.
@@ -1642,21 +1681,3 @@ is only intended for error exits, since the normal exit procedures are
not followed, e.g., diverted text is not undiverted, and saved text
(*note M4wrap::.) is not reread.
-
-File: m4.info, Node: Syncoutput, Prev: M4exit, Up: Miscellaneous
-
-Turning sync lines on and off within `m4'
-=========================================
-
- If you need to toggle sync lines on and off while processing macros,
-or to insure that they are off or on, you may do so using `syncoutput'.
-
- `syncoutput(1)', `syncoutput(on)', and `syncoutput(yes)' causes
-`m4'] to emit sync lines of the form: `#line <number> ["<filename>"]'.
-
- `syncoutput(0)', `syncoutput(off)', and `syncoutput(no)' turn them
-off.
-
- All other arguments are ignored as is `syncoutput' without
-parenthesis.
-
diff --git a/doc/m4.info-3 b/doc/m4.info-3
index c879cdf9..6622909e 100644
--- a/doc/m4.info-3
+++ b/doc/m4.info-3
@@ -1,14 +1,15 @@
This is Info file m4.info, produced by Makeinfo version 1.68 from the
input file m4.texinfo.
+INFO-DIR-SECTION Text Processing Tools
START-INFO-DIR-ENTRY
* m4: (m4). A powerful macro processor.
END-INFO-DIR-ENTRY
This file documents the GNU `m4' utility.
- Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998 Free Software
-Foundation, Inc.
+ Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000
+Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -25,6 +26,24 @@ versions, except that this permission notice may be stated in a
translation approved by the Foundation.

+File: m4.info, Node: Syncoutput, Prev: M4exit, Up: Miscellaneous
+
+Turning sync lines on and off within `m4'
+=========================================
+
+ If you need to toggle sync lines on and off while processing macros,
+or to insure that they are off or on, you may do so using `syncoutput'.
+
+ `syncoutput(1)', `syncoutput(on)', and `syncoutput(yes)' causes `m4'
+to emit sync lines of the form: `#line <number> ["<filename>"]'.
+
+ `syncoutput(0)', `syncoutput(off)', and `syncoutput(no)' turn them
+off.
+
+ All other arguments are ignored as is `syncoutput' without
+parenthesis.
+
+
File: m4.info, Node: Frozen files, Next: Compatibility, Prev: Miscellaneous, Up: Top
Fast loading of frozen states
@@ -83,6 +102,11 @@ output:
m4 -R file2.m4f -F file3.m4f file3.m4
m4 -R file3.m4f file4.m4
+ This could also be done in a simple way, if everything has been
+prepared before:
+
+ m4 -F file1.m4f file1.m4 file2.m4 file3.m4 file4.m4
+
Some care is necessary because not every effort has been made for
this to work in all cases. In particular, the trace attribute of
macros is not handled, nor the current setting of `changeword'. Also,
@@ -424,8 +448,9 @@ Concept index
* GNU extensions <9>: Changesyntax.
* GNU extensions <10>: Debug Output.
* GNU extensions <11>: Debug Levels.
-* GNU extensions <12>: Builtin.
-* GNU extensions <13>: Indir.
+* GNU extensions <12>: Symbols.
+* GNU extensions <13>: Builtin.
+* GNU extensions <14>: Indir.
* GNU extensions: Arguments.
* included files, search path for: Search Path.
* inclusion, of files <1>: Undivert.
@@ -448,6 +473,7 @@ Concept index
* macro definitions, on the command line: Invoking m4.
* macro expansion, tracing: Trace.
* macro invocation: Invocation.
+* macro names: Symbols.
* macros, arguments to <1>: Arguments.
* macros, arguments to: Macro Arguments.
* macros, displaying definitions: Dumpdef.
@@ -549,6 +575,7 @@ these characters removed in the index.
* shift: Loops.
* sinclude: Include.
* substr: Substr.
+* symbols: Symbols.
* syncoutput: Syncoutput.
* syscmd: Syscmd.
* sysval: Sysval.
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index dbad16c1..8117a05b 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -9,18 +9,15 @@
@set beta
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
+@dircategory Text Processing Tools
+@direntry
* m4: (m4). A powerful macro processor.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
+@end direntry
@ifinfo
This file documents the GNU @code{m4} utility.
-Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998 Free Software Foundation, Inc.
+Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -52,7 +49,7 @@ by the Foundation.
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1989, 90, 91, 92, 93, 94, 98 Free Software Foundation, Inc.
+Copyright @copyright{} 1989, 90, 91, 92, 93, 94, 98, 99, 2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -128,8 +125,7 @@ the distribution).
* Concept index:: Index for many concepts
* Macro index:: Index for all m4 macros
-@detailmenu
- --- The Detailed Node Listing ---
+@detailmenu --- The Detailed Node Listing ---
Introduction and preliminaries
@@ -167,6 +163,8 @@ How to define new macros
* Indir:: Indirect call of macros
* Builtin:: Indirect call of builtins
+* Symbols:: Getting the defined macro names
+
Conditionals, loops and recursion
* Ifdef:: Testing if a macro is defined
@@ -215,7 +213,7 @@ Macros for doing arithmetic
* Incr:: Decrement and increment operators
* Eval:: Evaluating integer or rational expressions
-* Mpeval::
+* Mpeval::
Running UNIX commands
@@ -280,7 +278,7 @@ popularity of GNU Autoconf, which prerequires GNU @code{m4} for
for many to install it, while these people will not themselves
program in @code{m4}. GNU @code{m4} is mostly compatible with the
System V, Release 3 version, except for some minor differences.
-@xref{Compatibility} for more details.
+@xref{Compatibility}, for more details.
Some people found @code{m4} to be fairly addictive. They first use
@code{m4} for simple problems, then take bigger and bigger challenges,
@@ -350,24 +348,24 @@ issued, considering all of them to be fatal.
@itemx --debug=@var{flags}
Set the debug-level according to the flags @var{flags}. The debug-level
controls the format and amount of information presented by the debugging
-functions. @xref{Debug Levels} for more details on the format and
+functions. @xref{Debug Levels}, for more details on the format and
meaning of @var{flags}.
@item -l@var{num}
@itemx --arglength=@var{num}
Restrict the size of the output generated by macro tracing. @xref{Debug
-Levels} for more details.
+Levels}, for more details.
@item -o@var{file}
@itemx --error-output=@var{file}
Redirect debug and trace output to the named file. Error messages are
-still printed on the standard error output. @xref{Debug Output} for
+still printed on the standard error output. @xref{Debug Output}, for
more details.
@item -I@var{dir}
@itemx --include=@var{dir}
Make @code{m4} search @var{dir} for included files that are not found in
-the current working directory. @xref{Search Path} for more details.
+the current working directory. @xref{Search Path}, for more details.
@item -e
@itemx --interactive
@@ -393,7 +391,7 @@ the file name did not change from the previous directive.
Synchronisation directives are always given on complete lines per
themselves. When a synchronisation discrepancy occurs in the middle of
an output line, the associated synchronisation directive is delayed
-until the beginning of the next generated line. @xref{Syncoutput} for
+until the beginning of the next generated line. @xref{Syncoutput}, for
runtime control.
@item -P
@@ -616,9 +614,11 @@ macro definition, it will be subject to macro expansion
Examples of legal names are: @samp{foo}, @samp{_tmp}, and @samp{name01}.
+Names are case-sensitive.
+
The definitions of letters, digits and other input characters can be
changed at any time, using the builtin macro @code{changesyntax}.
-@xref{Changesyntax} for more information.
+@xref{Changesyntax}, for more information.
@node Quoted strings, Other tokens, Names, Syntax
@section Quoted strings
@@ -649,7 +649,7 @@ is the string
@end example
The quote characters can be changed at any time, using the builtin macro
-@code{changequote}. @xref{Changequote} for more information.
+@code{changequote}. @xref{Changequote}, for more information.
@node Other tokens, Comments, Quoted strings, Syntax
@section Other tokens
@@ -671,7 +671,7 @@ the comment. The commenting effect of the begin comment character
can be inhibited by quoting it.
The comment delimiters can be changed to any string at any time, using
-the builtin macro @code{changecom}. @xref{Changecom} for more
+the builtin macro @code{changecom}. @xref{Changecom}, for more
information.
@c FIXME: more examples would be useful here --ADR
@@ -801,7 +801,7 @@ one has to write @code{m4_dnl} and even @code{m4_m4exit}.
If your version of GNU @code{m4} has the @code{changeword} feature
compiled in, there it offers far more flexibility in specifying the
-syntax of macro names, both builtin or user-defined. @xref{Changeword}
+syntax of macro names, both builtin or user-defined. @xref{Changeword},
for more information on this experimental feature.
Of course, the simplest way to prevent a name to be interpreted
@@ -978,6 +978,8 @@ value, which can be brought back at a later time.
* Indir:: Indirect call of macros
* Builtin:: Indirect call of builtins
+
+* Symbols:: Getting the defined macro names
@end menu
@node Define, Arguments, Definitions, Definitions
@@ -1397,7 +1399,7 @@ called through the builtin @code{indir}.
@c FIXME: Why indir does not require at least one parameter?
-@node Builtin, , Indir, Definitions
+@node Builtin, Symbols, Indir, Definitions
@section Indirect call of builtins
@cindex indirect call of builtins
@@ -1418,6 +1420,31 @@ another definition that has covered the original.
The macro @code{builtin} is recognized only with parameters.
+@node Symbols, , Builtin, Definitions
+@section Getting the defined macro names
+
+@cindex macro names
+@cindex GNU extensions
+@findex symbols
+
+The name of the currently defined macro can be accessed by
+@code{symbols}:
+@comment ignore
+@example
+symbols
+@end example
+@noindent
+which results in a sorted list of quoted strings. This contrasts with
+@code{dumpdef} which output can not be accessed by @code{m4} programs.
+
+When given arguments, @code{symbols} returns the sorted subset of the
+symbols currently defined:
+@example
+symbols(`ifndef', `ifdef', `define', `undef')
+@result{}define,ifdef
+@end example
+
+
@node Conditionals, Debugging, Definitions, Top
@chapter Conditionals, loops and recursion
@@ -1686,7 +1713,7 @@ dumpdef(`define')
The last example shows how builtin macros definitions are displayed.
-@xref{Debug Levels} for information on controlling the details of the
+@xref{Debug Levels}, for information on controlling the details of the
display.
@node Trace, Debug Levels, Dumpdef, Debugging
@@ -1737,7 +1764,7 @@ The number between dashes is the depth of the expansion. It is one most
of the time, signifying an expansion at the outermost level, but it
increases when macro arguments contain unquoted macro calls.
-@xref{Debug Levels} for information on controlling the details of the
+@xref{Debug Levels}, for information on controlling the details of the
display.
@node Debug Levels, Debug Output, Trace, Debugging
@@ -1947,6 +1974,11 @@ There is no way in @code{m4} to quote a string containing an unmatched
left quote, except using @code{changequote} to change the current
quotes.
+If the quotes should be changed from, say, @samp{[} to @samp{[[},
+temporary quote characters have to be defined. To achieve this, two
+calls of @code{changequote} must be made, one for the temporary quotes
+and one for the new quotes.
+
Neither quote string should start with a letter or @samp{_} (underscore),
as they will be confused with names in the input. Doing so disables
the quoting mechanism.
@@ -2192,7 +2224,7 @@ test(a, b, c)
It is not yet possible to redefine the @samp{$} used to indicate macro
arguments in user defined macros.
-Macro calls can be given a @TeX{}- or texinfo like syntax using an
+Macro calls can be given a @TeX{} or Texinfo like syntax using an
escape. If one or more characters are defined as escapes macro names
are only recognised if preceded by an escape character.
@@ -2228,7 +2260,7 @@ define(`#', `No comment')
@result{}No comment bar # Comment \foo
@end example
-Active characters are known from @TeX{}. In @code{m4} a active
+Active characters are known from @TeX{}. In @code{m4} an active
character is always seen as a one-letter word, and so, if it has a macro
definition, the macro will be called.
@@ -2309,7 +2341,7 @@ Note how it is possible to have both long and short quotes, if
@code{changequote} is used before @code{changesyntax}.
The syntax table is initialiased to be backwards compatible, so if you
-never calls @code{changesyntax}, nothing will have changed.
+never call @code{changesyntax}, nothing will have changed.
Debugging output continue to use @kbd{(}, @kbd{,} and @kbd{)} to show
macro calls.
@@ -2352,8 +2384,9 @@ apply translations to a file of numbers:
@example
changeword(`[_a-zA-Z0-9]+')
define(1, 0)
-@result{}
1
+@result{}
+0
@result{}0
@end example
@@ -3144,7 +3177,7 @@ decrement operations.
@menu
* Incr:: Decrement and increment operators
* Eval:: Evaluating integer or rational expressions
-* Mpeval::
+* Mpeval::
@end menu
@node Incr, Eval, Arithmetic, Arithmetic
@@ -3305,7 +3338,7 @@ The builtin macro @code{eval} is recognized only when given arguments.
@section Multiple precision arithmetic
When @code{m4} is compiled with a multiple precision arithmetic library
-(@pxref{Experiments}), a builtin @code{mpeval} is defined.
+(@pxref{Experiments}), a builtin @code{mpeval} is defined.
It is almost identical to @code{eval}, except the calculations are done
with infinite precision. Numbers may be of any length.
@@ -3352,7 +3385,7 @@ which executes @var{shell-command} as a shell command.
The expansion of @code{syscmd} is void, @emph{not} the output from
@var{shell-command}! Output or error messages from @var{shell-command}
-are not read by @code{m4}. @xref{Esyscmd} if you need to process the
+are not read by @code{m4}. @xref{Esyscmd}, if you need to process the
command output.
Prior to executing the command, @code{m4} flushes its output buffers.
@@ -3569,7 +3602,7 @@ to insure that they are off or on, you may do so using
@code{syncoutput}.
@code{syncoutput(1)}, @code{syncoutput(on)}, and @code{syncoutput(yes)}
-causes @code{m4}] to emit sync lines of the form: @code{#line <number>
+causes @code{m4} to emit sync lines of the form: @code{#line <number>
["<filename>"]}.
@code{syncoutput(0)}, @code{syncoutput(off)}, and @code{syncoutput(no)}
@@ -3659,6 +3692,14 @@ m4 -R file2.m4f -F file3.m4f file3.m4
m4 -R file3.m4f file4.m4
@end example
+This could also be done in a simple way, if everything has been prepared
+before:
+
+@comment ignore
+@example
+m4 -F file1.m4f file1.m4 file2.m4 file3.m4 file4.m4
+@end example
+
Some care is necessary because not every effort has been made for
this to work in all cases. In particular, the trace attribute of
macros is not handled, nor the current setting of @code{changeword}.
diff --git a/doc/stamp-vti b/doc/stamp-vti
index f7aa287b..30282fa2 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,3 +1,3 @@
-@set UPDATED 29 November 1998
-@set EDITION 1.4n
-@set VERSION 1.4n
+@set UPDATED 10 January 2000
+@set EDITION 1.4o
+@set VERSION 1.4o
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 000a8a87..aa52853e 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -1,5 +1,9 @@
% texinfo.tex -- TeX macros to handle Texinfo files.
-\def\texinfoversion{1998-09-30}%
+%
+% Load plain if necessary, i.e., if running under initex.
+\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
+%
+\def\texinfoversion{1999-01-05}%
%
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
% Free Software Foundation, Inc.
@@ -50,12 +54,6 @@
% Sometimes one run after texindex suffices, and sometimes you need more
% than two; texi2dvi does it as many times as necessary.
-
-% Make it possible to create a .fmt file just by loading this file:
-% if the underlying format is not loaded, start by loading it now.
-% Added by gildea November 1993.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-
\message{Loading texinfo [version \texinfoversion]:}
% If in a .fmt file, print the version number
@@ -189,13 +187,16 @@
\shipout\vbox{%
\ifcropmarks \vbox to \outervsize\bgroup
\hsize = \outerhsize
- \line{\ewtop\hfil\ewtop}%
- \nointerlineskip
- \line{%
- \vbox{\moveleft\cornerthick\nstop}%
- \hfill
- \vbox{\moveright\cornerthick\nstop}%
- }%
+ \vskip-\topandbottommargin
+ \vtop to0pt{%
+ \line{\ewtop\hfil\ewtop}%
+ \nointerlineskip
+ \line{%
+ \vbox{\moveleft\cornerthick\nstop}%
+ \hfill
+ \vbox{\moveright\cornerthick\nstop}%
+ }%
+ \vss}%
\vskip\topandbottommargin
\line\bgroup
\hfil % center the page within the outer (page) hsize.
@@ -218,13 +219,15 @@
\hfil\egroup % end of (centering) \line\bgroup
\vskip\topandbottommargin plus1fill minus1fill
\boxmaxdepth = \cornerthick
- \line{%
- \vbox{\moveleft\cornerthick\nsbot}%
- \hfill
- \vbox{\moveright\cornerthick\nsbot}%
+ \vbox to0pt{\vss
+ \line{%
+ \vbox{\moveleft\cornerthick\nsbot}%
+ \hfill
+ \vbox{\moveright\cornerthick\nsbot}%
+ }%
+ \nointerlineskip
+ \line{\ewbot\hfil\ewbot}%
}%
- \nointerlineskip
- \line{\ewbot\hfil\ewbot}%
\egroup % \vbox from first cropmarks clause
\fi
}% end of \shipout\vbox
@@ -846,7 +849,7 @@ where each line of input produces a line of output.}
\immediate\write16{If you are running another version of TeX, relax.}
\immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
\immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.ai.mit.edu/pub/gnu/TeX.README.)}
+ \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
\immediate\write16{If you are stuck with version 3.0, run the}
\immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
\immediate\write16{ to use a workaround.}
@@ -980,7 +983,7 @@ where each line of input produces a line of output.}
%
\def\expandablevalue#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
- {[No value for ``#1'']v}%
+ {[No value for ``#1'']}%
\else
\csname SET#1\endcsname
\fi
@@ -1536,7 +1539,7 @@ where each line of input produces a line of output.}
\newif\iffinishedtitlepage
% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @contentsaftertitlepage or @shortcontentsaftertitlepage.
+% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
%
\newif\ifsetcontentsaftertitlepage
\let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
@@ -2142,31 +2145,44 @@ July\or August\or September\or October\or November\or December\fi
\def\xcolumnfractions{\columnfractions}
\newif\ifsetpercent
-% 2/1/96, to allow fractions to be given with more than one digit.
-\def\pickupwholefraction#1 {\global\advance\colcount by1 %
-\expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
-\setuptable}
+% #1 is the part of the @columnfraction before the decimal point, which
+% is presumably either 0 or the empty string (but we don't check, we
+% just throw it away). #2 is the decimal part, which we use as the
+% percent of \hsize for this column.
+\def\pickupwholefraction#1.#2 {%
+ \global\advance\colcount by 1
+ \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}%
+ \setuptable
+}
\newcount\colcount
-\def\setuptable#1{\def\firstarg{#1}%
-\ifx\firstarg\xendsetuptable\let\go\relax%
-\else
- \ifx\firstarg\xcolumnfractions\global\setpercenttrue%
+\def\setuptable#1{%
+ \def\firstarg{#1}%
+ \ifx\firstarg\xendsetuptable
+ \let\go = \relax
\else
- \ifsetpercent
- \let\go\pickupwholefraction % In this case arg of setuptable
- % is the decimal point before the
- % number given in percent of hsize.
- % We don't need this so we don't use it.
+ \ifx\firstarg\xcolumnfractions
+ \global\setpercenttrue
\else
- \global\advance\colcount by1
- \setbox0=\hbox{#1 }% Add a normal word space as a separator;
- % typically that is always in the input, anyway.
- \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
+ \ifsetpercent
+ \let\go\pickupwholefraction
+ \else
+ \global\advance\colcount by 1
+ \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator;
+ % typically that is always in the input, anyway.
+ \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
+ \fi
+ \fi
+ \ifx\go\pickupwholefraction
+ % Put the argument back for the \pickupwholefraction call, so
+ % we'll always have a period there to be parsed.
+ \def\go{\pickupwholefraction#1}%
+ \else
+ \let\go = \setuptable
\fi%
- \fi%
-\ifx\go\pickupwholefraction\else\let\go\setuptable\fi%
-\fi\go}
+ \fi
+ \go
+}
% multitable syntax
\def\tab{&\hskip1sp\relax} % 2/2/96
@@ -2174,7 +2190,7 @@ July\or August\or September\or October\or November\or December\fi
% maintained, even if it is never used.
% @multitable ... @end multitable definitions:
-
+%
\def\multitable{\parsearg\dotable}
\def\dotable#1{\bgroup
\vskip\parskip
@@ -2385,8 +2401,11 @@ width0pt\relax} \fi
% (Must be a way to avoid doing expansion at all, and thus not have to
% laboriously list every single command here.)
\def\@{@}% will be @@ when we switch to @ as escape char.
-%\let\{ = \lbracecmd
-%\let\} = \rbracecmd
+% Need these in case \tex is in effect and \{ is a \delimiter again.
+% But can't use \lbracecmd and \rbracecmd because texindex assumes
+% braces and backslashes are used only as delimiters.
+\let\{ = \mylbrace
+\let\} = \myrbrace
\def\_{{\realbackslash _}}%
\def\w{\realbackslash w }%
\def\bf{\realbackslash bf }%
@@ -2408,6 +2427,11 @@ width0pt\relax} \fi
\def\copyright{\realbackslash copyright}%
\def\tclose##1{\realbackslash tclose {##1}}%
\def\code##1{\realbackslash code {##1}}%
+\def\uref##1{\realbackslash uref {##1}}%
+\def\url##1{\realbackslash url {##1}}%
+\def\env##1{\realbackslash env {##1}}%
+\def\command##1{\realbackslash command {##1}}%
+\def\option##1{\realbackslash option {##1}}%
\def\dotless##1{\realbackslash dotless {##1}}%
\def\samp##1{\realbackslash samp {##1}}%
\def\,##1{\realbackslash ,{##1}}%
@@ -2423,6 +2447,7 @@ width0pt\relax} \fi
\def\kbd##1{\realbackslash kbd {##1}}%
\def\dfn##1{\realbackslash dfn {##1}}%
\def\emph##1{\realbackslash emph {##1}}%
+\def\acronym##1{\realbackslash acronym {##1}}%
%
% Handle some cases of @value -- where the variable name does not
% contain - or _, and the value does not contain any
@@ -2486,6 +2511,11 @@ width0pt\relax} \fi
%\let\tt=\indexdummyfont
\let\tclose=\indexdummyfont
\let\code=\indexdummyfont
+\let\url=\indexdummyfont
+\let\uref=\indexdummyfont
+\let\env=\indexdummyfont
+\let\command=\indexdummyfont
+\let\option=\indexdummyfont
\let\file=\indexdummyfont
\let\samp=\indexdummyfont
\let\kbd=\indexdummyfont
@@ -2806,7 +2836,7 @@ width0pt\relax} \fi
\unvbox255
\kern-\topskip \kern\baselineskip
}}%
- \eject
+ \eject % run that output routine to set \partialpage
%
% Use the double-column output routine for subsequent pages.
\output = {\doublecolumnout}%
@@ -2867,7 +2897,7 @@ width0pt\relax} \fi
}
\def\enddoublecolumns{%
\output = {%
- % Split the last of the double-column material. Leave on the
+ % Split the last of the double-column material. Leave it on the
% current page, no automatic page break.
\balancecolumns
%
@@ -2879,14 +2909,15 @@ width0pt\relax} \fi
% called on to balance too much material, but if it is, this makes
% the output somewhat more palatable.)
\global\output = {\onepageout{\pagecontents\PAGE}}%
- %
- % \pagegoal was set to the doubled \vsize above, since we restarted
- % the current page. We're now back to normal single-column
- % typesetting, so reset \pagegoal to the normal \vsize.
- \pagegoal = \vsize
}%
\eject
\endgroup % started in \begindoublecolumns
+ %
+ % \pagegoal was set to the doubled \vsize above, since we restarted
+ % the current page. We're now back to normal single-column
+ % typesetting, so reset \pagegoal to the normal \vsize (after the
+ % \endgroup where \vsize got restored).
+ \pagegoal = \vsize
}
\def\balancecolumns{%
% Called at the end of the double column material.
@@ -5205,7 +5236,7 @@ width0pt\relax} \fi
\vsize = #1\relax
\advance\vsize by \topskip
\outervsize = \vsize
- \advance\outervsize by 0.6in
+ \advance\outervsize by 2\topandbottommargin
\pageheight = \vsize
%
\hsize = #2\relax
@@ -5445,10 +5476,9 @@ width0pt\relax} \fi
@rm
@c Local variables:
+@c eval: (add-hook 'write-file-hooks 'time-stamp)
@c page-delimiter: "^\\\\message"
-@c update-date-leading-regexp: "def\\texinfoversion{"
-@c update-date-date-regexp: "[-0-9.]+"
-@c update-date-format-string: "%Y-%m-%d"
-@c update-date-trailing-regexp: "}"
-@c eval: (and(load "update-date" t t)(add-hook 'write-file-hooks 'update-date))
+@c time-stamp-start: "def\\\\texinfoversion{"
+@c time-stamp-format: "%:y-%02m-%02d"
+@c time-stamp-end: "}"
@c End:
diff --git a/doc/version.texi b/doc/version.texi
index f7aa287b..30282fa2 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,3 +1,3 @@
-@set UPDATED 29 November 1998
-@set EDITION 1.4n
-@set VERSION 1.4n
+@set UPDATED 10 January 2000
+@set EDITION 1.4o
+@set VERSION 1.4o
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 9461a431..ce783950 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -1,5 +1,7 @@
EXTRA_DIST = $(pkgdata_DATA) $(TESTS) defs mktests.sh $(WEB_SITE)
+MAINTAINERCLEANFILES = Makefile.in
+
WEB_SITE = WWW/*.htm WWW/Makefile WWW/m4lib/*.m4
pkgdata_DATA = \
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 5bdf08a8..a4349ac6 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.3b from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
-SHELL = /bin/sh
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -59,6 +59,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+AS = @AS@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -66,6 +67,7 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DLLDFLAGS = @DLLDFLAGS@
+DLLTOOL = @DLLTOOL@
GENCAT = @GENCAT@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
@@ -86,6 +88,7 @@ MODULES_DIR = @MODULES_DIR@
MODULE_PATH = @MODULE_PATH@
MSGFMT = @MSGFMT@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
@@ -101,58 +104,15 @@ pkglibexecdir = @pkglibexecdir@
EXTRA_DIST = $(pkgdata_DATA) $(TESTS) defs mktests.sh $(WEB_SITE)
+MAINTAINERCLEANFILES = Makefile.in
+
WEB_SITE = WWW/*.htm WWW/Makefile WWW/m4lib/*.m4
-pkgdata_DATA = \
- capitalize.m4 \
- comments.m4 \
- ddivert.m4 \
- debug.m4 \
- esyscmd.m4 \
- exp.m4 \
- foreach.m4 \
- forloop.m4 \
- fstab.m4 \
- hanoi.m4 \
- incl-test.m4 \
- include.m4 \
- indir.m4 \
- misc.m4 \
- multiquotes.m4 \
- patsubst.m4 \
- pushpop.m4 \
- regexp.m4 \
- reverse.m4 \
- sysv-args.m4 \
- trace.m4 \
- translit.m4 \
- undivert.incl \
- undivert.m4 \
- wrap.m4
-
-TESTS = capitalize.test \
- comments.test \
- ddivert.test \
- debug.test \
- esyscmd.test \
- exp.test \
- foreach.test \
- forloop.test \
- fstab.test \
- hanoi.test \
- include.test \
- indir.test \
- misc.test \
- multiquotes.test \
- patsubst.test \
- pushpop.test \
- regexp.test \
- reverse.test \
- sysv-args.test \
- trace.test \
- translit.test \
- undivert.test \
- wrap.test
+pkgdata_DATA = capitalize.m4 comments.m4 ddivert.m4 debug.m4 esyscmd.m4 exp.m4 foreach.m4 forloop.m4 fstab.m4 hanoi.m4 incl-test.m4 include.m4 indir.m4 misc.m4 multiquotes.m4 patsubst.m4 pushpop.m4 regexp.m4 reverse.m4 sysv-args.m4 trace.m4 translit.m4 undivert.incl undivert.m4 wrap.m4
+
+
+TESTS = capitalize.test comments.test ddivert.test debug.test esyscmd.test exp.test foreach.test forloop.test fstab.test hanoi.test include.test indir.test misc.test multiquotes.test patsubst.test pushpop.test regexp.test reverse.test sysv-args.test trace.test translit.test undivert.test wrap.test
+
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
@@ -164,11 +124,10 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
-GZIP = --best
-all: Makefile $(DATA)
-
+GZIP_ENV = --best
+all: all-redirect
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps examples/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -206,9 +165,13 @@ distdir: $(DISTFILES)
$(mkinstalldirs) $(distdir)/WWW $(distdir)/WWW/m4lib
@for file in $(DISTFILES); do \
d=$(srcdir); \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
done
check-TESTS: $(TESTS)
@failed=0; all=0; \
@@ -235,24 +198,30 @@ check-TESTS: $(TESTS)
echo "$$banner"; \
echo "$$dashes"; \
test "$$failed" -eq 0
-info:
-dvi:
-check: all
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-installcheck:
-install-exec:
- @$(NORMAL_INSTALL)
-
-install-data: install-pkgdataDATA
- @$(NORMAL_INSTALL)
-
-install: install-exec install-data all
- @:
-
-uninstall: uninstall-pkgdataDATA
-
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-pkgdataDATA
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-pkgdataDATA
+uninstall: uninstall-am
+all-am: Makefile $(DATA)
+all-redirect: all-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
@@ -266,23 +235,32 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-mostlyclean: mostlyclean-generic
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
-clean: clean-generic mostlyclean
+mostlyclean: mostlyclean-am
-distclean: distclean-generic clean
- -rm -f config.status
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
-rm -f libtool
-maintainer-clean: maintainer-clean-generic distclean
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
+maintainer-clean: maintainer-clean-am
+
.PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir \
-check-TESTS info dvi installcheck install-exec install-data install \
-uninstall all installdirs mostlyclean-generic distclean-generic \
-clean-generic maintainer-clean-generic clean mostlyclean distclean \
-maintainer-clean
+check-TESTS info-am info dvi-am dvi check check-am installcheck-am \
+installcheck install-exec-am install-exec install-data-am install-data \
+install-am install uninstall-am uninstall all-redirect all-am all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
all:
diff --git a/examples/WWW/bugs.htm b/examples/WWW/bugs.htm
index 207fcc31..190e271f 100644
--- a/examples/WWW/bugs.htm
+++ b/examples/WWW/bugs.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - Known bugs in GNU m4 \__m4_version__</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -219,14 +219,10 @@
<LI> <A HREF="#undivert">undivert(0) might read from standard output.</A>
-
-
<LI> <A HREF="#sigaltstack">failure if sigaltstack or sigstack returns ENOSYS.</A>
-
-
</UL>
@@ -235,10 +231,9 @@ See also the <A HREF="todo.htm">TODO</A> file.
</P>
-
-<HR align=center width=50%><A NAME="undivert">
-<H2>undivert(0) might read from standard output</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="undivert">undivert(0) might read from standard output</A></H2>
+<P>
If calling <TT>undivert(0)</TT> when diverting to a non-zero diversion
will cause m4 to read from standard output in an attempt to bring back
diversion 0, which is not possible.
@@ -250,10 +245,9 @@ Fixed in version 1.4n
</P>
-
-<HR align=center width=50%><A NAME="sigaltstack">
-<H2>failure if sigaltstack or sigstack returns ENOSYS</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="sigaltstack">failure if sigaltstack or sigstack returns ENOSYS</A></H2>
+<P>
If stack overflow detection is configured but the system doesn't
support sigaltstack(2) or sigstack(2), m4 fails when the system call
returns ENOSYS. It should silently revert to default behaviour.
@@ -262,7 +256,7 @@ returns ENOSYS. It should silently revert to default behaviour.
<P>
A <A
-HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: failure if sigaltstack or sigstack returns ENOSYS"
+HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: "
>volunteer</A> is badly needed for this, as I have no way of testing
this myself.
</P>
diff --git a/examples/WWW/changelog.htm b/examples/WWW/changelog.htm
index 83522fb4..65da6312 100644
--- a/examples/WWW/changelog.htm
+++ b/examples/WWW/changelog.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - ChangeLog</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -206,7 +206,148 @@
<TD align=left valign=top width="90%">
-<PRE>1998-11-29 Rene' Seindal &lt;rene@seindal.dk&gt;
+<PRE>2000-01-09 Rene' Seindal &lt;rene@seindal.dk&gt;
+
+ * doc/m4.texinfo (Changequote): Added comment about changing
+ quotes when the old quote is a part of the new.
+
+ * src/builtin.c (expand_ranges): Added break after trailing dash.
+ This caused misbehavious on some systems. (Bug found and fixed by
+ Akim Demaille &lt;demaille@inf.enst.fr&gt;)
+
+ * AUTHORS: Thomas Tanner included
+
+ * acconfig.h: Added entry for ss_sp (see below).
+
+ * configure.in (use_stackovf): Added check for stack_t with member
+ ss_base instead of ss_sp (BSDI notably). NEEDS TESTING.
+
+ * doc/m4.texinfo (Frozen files): Added a simpler example for
+ generating frozen files from several input files.
+
+1999-11-10 Rene' Seindal &lt;rene@seindal.dk&gt;
+
+ * Makefile.am (ACLOCAL_AMFLAGS): Passes -I acm4 to aclocal.
+
+ * src/module.c: reindented.
+ (module_load): return if this is a repeated load of same module.
+ (module_init): slight change of logic to avoid repeated
+ initialisation debug messages.
+
+ * Makefile.am (DIST_SUBDIRS): Added to ensure modules/ is included
+ in the distribution.
+
+ * modules/Makefile.am (test_la_LDFLAGS): set to -module to silence
+ automake warnings about missing lib prefix.
+ (time_la_LDFLAGS): ditto
+ (stdlib_la_LDFLAGS): ditto
+
+1999-10-13 Rene' Seindal &lt;rene@seindal.dk&gt;
+
+ * configure.in (ALL_LINGUAS): Added Greek translation (el).
+ (ALL_LINGUAS): Added Czech translation (cs).
+
+1999-03-30 Gary V. Vaughan &lt;gvaughan@oranda.demon.co.uk&gt;
+
+ * src/builtin.c: moved module loading functions into...
+ * src/module.c: entirely new implementation using libltdl.
+ * po/POTFILES.in: added src/module.c.
+ * modules/Makefile.am (LTLIBRARIES): Removed lib prefix as these
+ are modules, not linktime libraries.
+ (LDFLAGS): added -no-undefined -module and -avoid-version flags.
+ * modules/stdlib.c (m4_macro_table): use &lt;name&gt;_LTX collision
+ avoidance on exported symbols.
+ * modules/test.c (m4_macro_table, m4_init_module,
+ m4_finish_module): ditto.
+ * modules/time.c (m4_macro_table): ditto.
+
+ * modules/time2.m4: new file which requires command line loading
+ of modules.
+ * src/m4.c (--load-module): dynamically load named runtime module
+ into running executable before reading the source.
+ (--module-directory): prepend a directory to the module search
+ path.
+ (module_init()): Do this the first time we load a module instead;
+ if the module subsystem is broken normal m4 scripts can still run.
+ * src/m4.h (install_builtin_table): is now exported.
+
+1999-03-26 Gary V. Vaughan &lt;gvaughan@oranda.demon.co.uk&gt;
+
+ * src/module.c: removed. No longer required.
+ * po/POTFILES.in: removed src/module.c.
+
+ * Makefile.am (MAINTAINERCLEANFILES): Remove all the files that
+ the bootstrap script can recreate.
+ * acm4/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * doc/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * examples/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * lib/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ (AUTOMAKE_OPTIONS): reduced strictness to allow COPYING.LIB.
+ * modules/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * src/Makefile.am (MAINTAINERCLEANFILES): ditto.
+ * tests/Makefile.am (MAINTAINERCLEANFILES): ditto.
+
+ * acinclude.m4: removed. `aclocal -I acm4' handles this much
+ better.
+ * acm4/Makefile.am (ACINCLUDE_M4): ditto.
+ * acm4/gettext.m4: removed. It causes a multiple definition vs.
+ the installed gettext.m4 file when running aclocal.
+
+1999-03-25 Gary V. Vaughan &lt;gvaughan@oranda.demon.co.uk&gt;
+
+ * configure.in (AM_INIT_AUTOMAKE): bumped version number to
+ distinguish this from the last prerelease.
+ (AC_LIBLTDL_CONVENIENCE): build libltdl as a convenience library
+ in its own subdirectory.
+
+ * modules/Makefile.am (*_SOURCES): renamed to use libtool's "no
+ lib prefix on a module" feature.
+ (LDFLAGS): Added `-module -avoid-version' flags to build
+ versionless module libraries.
+ * src/builtin.c (m4_load_module): use libltdl.
+ (module_unload_all): use libltdl.
+ * src/m4.c (module_init): initialise module loading on demand for
+ better diagnostics, and so that m4 will still work even if
+ the module code is broken.
+ * src/m4.h (module_init): removed. No longer relevant.
+ * modules/stdlib.c (m4_macro_table): use stdlib_LTX_ prefix on
+ exported symbols for compatibility with dlpreopening.
+ * modules/test.c (m4_macro_table, m4_init_module,
+ m4_finish_module): ditto.
+ * modules/time.c (m4_macro_table): ditto.
+
+ * bootstrap: New file. Runs all the autoutils in the right order
+ after a fresh checkout, or a make maintainer-clean.
+
+1999-02-18 Akim Demaille &lt;demaille@inf.enst.fr&gt;
+
+ * src/builtin.c (dump_symbols): New function, factorising common
+ content of m4_dumpdef and m4_symbols.
+ (m4_dumpdef): Use it.
+ (m4_symbols): New function, implementing `symbols'. Use it.
+ * doc/m4.texinfo: Fixed missing commas after @xref, so that the
+ file compile with modern makeinfo.
+ (Symbols): New node, documenting symbols.
+ (direntry): Modernize.
+
+
+1998-12-11 Rene' Seindal &lt;rene@seindal.dk&gt;
+
+ * src/builtin.c (predefined_tab): New predefined macros
+ __m4_changeword__, __m4_gmp__ and __m4_modules__ for testing for
+ configure time options.
+
+1998-12-01 Andreas Schwab &lt;schwab@issan.cs.uni-dortmund.de&gt;
+
+ * src/module.c (module_try_load): Don't try to be clever and
+ overwrite argument string. Instead allocate all constructed
+ strings locally, since they can have arbitrary lengths. Make
+ arguments pointers to const.
+ (module_search): Simplify due to above change.
+
+1998-11-29 Rene' Seindal &lt;rene@seindal.dk&gt;
+
+ * Prerelease 1.4n.
* tests/Makefile.am (OTHER_TESTS, OTHER_FILES): New tests.
diff --git a/examples/WWW/download.htm b/examples/WWW/download.htm
index 04a8108f..6bb945ab 100644
--- a/examples/WWW/download.htm
+++ b/examples/WWW/download.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - Download</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -229,6 +229,12 @@ latest stable version</A>.
</P>
+<P>
+<A HREF="ftp://ftp.seindal.dk/pub/rene/gnu/djgpp/">Download
+DOS/Windows port of latest stable version</A>.
+</P>
+
+
</TD>
diff --git a/examples/WWW/features.htm b/examples/WWW/features.htm
index 8281aca9..fe104f6f 100644
--- a/examples/WWW/features.htm
+++ b/examples/WWW/features.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - New feaures since version 1.4</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -296,7 +296,7 @@ See the <A HREF="modules.htm">separate README file for modules</A>
<DD>
<P>
The new build in macro 'syncoutput' allows better control of the
-generation of sync-lines.&nbsp; They can no be turned on or off at
+generation of sync-lines. They can now be turned on or off at
will.
</P>
diff --git a/examples/WWW/feedback.htm b/examples/WWW/feedback.htm
index 09fab86d..2ca769b5 100644
--- a/examples/WWW/feedback.htm
+++ b/examples/WWW/feedback.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - Feedback</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
diff --git a/examples/WWW/index.htm b/examples/WWW/index.htm
index 7a1568e4..ed0926c5 100644
--- a/examples/WWW/index.htm
+++ b/examples/WWW/index.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - Development site</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -237,7 +237,7 @@ development version contains among other things (browse the
<P>
-A new release is expected ready for December 1998.
+A new release is expected ready for Spring 2000.
</P>
diff --git a/examples/WWW/lists.htm b/examples/WWW/lists.htm
index 1b6f4550..df68f63d 100644
--- a/examples/WWW/lists.htm
+++ b/examples/WWW/lists.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - Mailing lists</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
diff --git a/examples/WWW/m4lib/bugs.m4 b/examples/WWW/m4lib/bugs.m4
index f3204317..82a12955 100644
--- a/examples/WWW/m4lib/bugs.m4
+++ b/examples/WWW/m4lib/bugs.m4
@@ -50,3 +50,4 @@ returns ENOSYS. It should silently revert to default behaviour.])
[\p([])
])
+\undivert
diff --git a/examples/WWW/m4lib/download.m4 b/examples/WWW/m4lib/download.m4
index a26eedfb..d9ee4095 100644
--- a/examples/WWW/m4lib/download.m4
+++ b/examples/WWW/m4lib/download.m4
@@ -5,16 +5,19 @@ include(`setup.m4')
\divert(1)
-\p(In the download area there are usually several version
-present. Please take only the latest.)
+\p([In the download area there are usually several version
+present. Please take only the latest.])
-\p(The files are name \tt(m4-1.4\i(X).tar.gz) where X is a letter.)
+\p([The files are name \tt(m4-1.4\i(X).tar.gz) where X is a letter.])
-\p(\link([ftp://ftp.seindal.dk/pub/rene/gnu/], [Download latest
-development version]).)
+\p([\link([ftp://ftp.seindal.dk/pub/rene/gnu/], [Download latest
+development version]).])
-\p(\link([ftp://ftp.seindal.dk/pub/rene/gnu/m4-1.4.tar.gz],[Download
-latest stable version]).)
+\p([\link([ftp://ftp.seindal.dk/pub/rene/gnu/m4-1.4.tar.gz],[Download
+latest stable version]).])
+
+\p([\link([ftp://ftp.seindal.dk/pub/rene/gnu/djgpp/],[Download
+DOS/Windows port of latest stable version]).])
\divert(0)\dnl
\DO_LAYOUT([\undivert(1)])
diff --git a/examples/WWW/m4lib/features.m4 b/examples/WWW/m4lib/features.m4
index 67bb8b2a..115a609b 100644
--- a/examples/WWW/m4lib/features.m4
+++ b/examples/WWW/m4lib/features.m4
@@ -52,7 +52,7 @@ build in macros. Modules can also override existing build in macros.)
\dt(\b(Better control of sync-lines generation.))
\dd(\p(The new build in macro 'syncoutput' allows better control of the
-generation of sync-lines.&nbsp; They can no be turned on or off at
+generation of sync-lines. They can now be turned on or off at
will.))
)
diff --git a/examples/WWW/m4lib/html.m4 b/examples/WWW/m4lib/html.m4
index 1a5eb1d5..e2d35427 100644
--- a/examples/WWW/m4lib/html.m4
+++ b/examples/WWW/m4lib/html.m4
@@ -43,7 +43,7 @@
\popdef([_tag])\dnl
])
-\define([doctype], [\simple_tag([$0], $@)])
+\define([doctype], [\simple_tag([!DOCTYPE], $@)])
\define([html], [\large_simple_container([$0], $@)])
\define([head], [\large_simple_container([$0], $@)])
diff --git a/examples/WWW/m4lib/index.m4 b/examples/WWW/m4lib/index.m4
index 043faa35..dbccc67b 100644
--- a/examples/WWW/m4lib/index.m4
+++ b/examples/WWW/m4lib/index.m4
@@ -27,7 +27,7 @@ development version contains among other things (browse the
\li Various bug-fixes.
])
-\p([A new release is expected ready for December 1998.])
+\p([A new release is expected ready for Spring 2000.])
\p([GNU \tt(m4) 1.4 is from october 1994 and can be considered stable.])
diff --git a/examples/WWW/m4lib/layout.m4 b/examples/WWW/m4lib/layout.m4
index 7d285614..ef6d6449 100644
--- a/examples/WWW/m4lib/layout.m4
+++ b/examples/WWW/m4lib/layout.m4
@@ -20,7 +20,7 @@ The semicolons are just to get GNU Emacs C mode to indent properly.
[\body([\C_TEXT \C_BG1 \C_LINK \C_VLINK \C_ALINK],
[\table([cellpadding=5 width="100%"],
[\tr([align=left valign=bottom],
- [\td([align=center valign=center colspan="3" width="100%" \C_BG2],
+ [\td([align=center valign=middle colspan="3" width="100%" \C_BG2],
[\h1([GNU m4])],
[\h2(\defn([_TITLE]))],
)],
@@ -38,7 +38,7 @@ The semicolons are just to get GNU Emacs C mode to indent properly.
);
\define([DO_LAYOUT],
- [\doctype([HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"])
+ [\doctype([html public "-//w3c//dtd html 4.0 transitional//en"])
\html([\DO_HEADER], [\DO_BODY([$*])])]
);
@@ -52,20 +52,14 @@ The semicolons are just to get GNU Emacs C mode to indent properly.
<!-- These macros are for having first a simple toc and later a more
thorough description of each item -->
-\define([_items], [])
-
-\define([register_item], [\define([H_$1], [$2])
-\define([T_$1], [$3])
-\define([_items], \defn([_items])[\print_item([$1])])])
-
-\define([print_item], [
-\define([_item], \defn([H_$1]))\dnl
-\hr([align=center width=50%])\dnl
-\target([$1], [\h2([\indir([H_$1])])])\dnl
-\indir([T_$1])\dnl
-])
-
-\define([print_items], [\indir([_items])])
+\define([print_items], [\undivert(2)])
\define([item], [\li \link([[#]$1], [$2.])
-\register_item([$1], [$2], [$3])])
+\pushdef([_div], \divnum)\dnl
+\divert(2)\dnl
+\hr([align=center width="50%"])\dnl
+\h2([\target([$1], [$2])])\dnl
+$3\dnl
+\divert(\_div)\dnl
+\popdef([_div])\dnl
+])
diff --git a/examples/WWW/m4lib/menu.m4 b/examples/WWW/m4lib/menu.m4
index 57af4f37..a68569da 100644
--- a/examples/WWW/m4lib/menu.m4
+++ b/examples/WWW/m4lib/menu.m4
@@ -12,11 +12,10 @@
$#, 3, [\_row([$1], [$2])],
[\_row([$1], [$2])\br\n\_rows(\shift(\shift($@)))])])
-\pushdef([rows], [\tr([\td([\font([size=-1],
- \p([\b([\_rows($@)])]))])])])
+\pushdef([rows], [\tr([\td([\p([\font([size=-1], [\b([\_rows($@)])])])])])])
-\table([align=left valign=top columns=1],
- [\header([Generel info])],
+\table([],
+ [\header([General info])],
[\rows(
[whatis.htm], [What is m4],
[features.htm], [Features],
diff --git a/examples/WWW/m4lib/thissite.m4 b/examples/WWW/m4lib/thissite.m4
index a8a18df3..9552f6da 100644
--- a/examples/WWW/m4lib/thissite.m4
+++ b/examples/WWW/m4lib/thissite.m4
@@ -6,7 +6,7 @@ include(`setup.m4')
\divert(1)
\p([This GNU m4 site is maintained by René Seindal,
-(\mailto(rene@seindal)).])
+(\mailto(rene@seindal.dk)).])
\p([All files are generated using GNU m4 \__m4_version__. You can view
the \link(m4lib/, source files). They are very simple. They use some
@@ -20,7 +20,7 @@ changesyntax. \i(This is a new feature in m4 1.4l).])
\p([Some fairly general macros to generate various HTML construct are
found in \showlink(m4lib/html.m4). There are macros for simple tags,
-containers with and with attributes, links and a few utility macros.])
+containers with and without attributes, links and a few utility macros.])
\p([The visual aspects of the pages are in \showlink(m4lib/layout.m4).
The macros herein generate the complete HTML structure for the pages.
diff --git a/examples/WWW/m4lib/uses.m4 b/examples/WWW/m4lib/uses.m4
index 75f7b6ae..e29acb7a 100644
--- a/examples/WWW/m4lib/uses.m4
+++ b/examples/WWW/m4lib/uses.m4
@@ -20,13 +20,20 @@ details. )
\p(Various programs uses m4 to preprocess configuration files, for
example the X11 window manager fvwm.)
-\p( There is an \link(http://www.ssc.com/lg/issue22/using_m4.html,
+\p(There is an \link(http://www.ssc.com/lg/issue22/using_m4.html,
article in the Linux Gazette) about writing HTML with GNU m4 written by
\link(mailto:bhepple@bit.net.au, Bob Hepple) . More recent versions
are kept at \link(http://www.bit.net.au/~bhepple, Bob's home site).
The macros are used to maintain a large commercial site at
\showlink(http://www.finder.com.au).)
+\p(Other examples of GNU m4 generated HTML pages, written by
+\link(mailto:max@alcyone.com, Erik Max Francis) can be found at the sites
+\showlink(http://www.alcyone.com/max/),
+\showlink(http://www.catcam.com/),
+\showlink(http://www.crank.net/) and
+\showlink(http://www.pollywannacracka.com/).
+)
\p(\link(thissite.htm, These files are created with GNU m4 \__m4_version__).)
diff --git a/examples/WWW/m4lib/visions.m4 b/examples/WWW/m4lib/visions.m4
index c644f50a..49033de4 100644
--- a/examples/WWW/m4lib/visions.m4
+++ b/examples/WWW/m4lib/visions.m4
@@ -217,6 +217,7 @@ the search path.])
\DO_LAYOUT([\undivert(1)])
\divert(-1)
+\divert(3)saljdfnaskdjfndsa\divert(-1)
@@ -227,3 +228,5 @@ the search path.])
\noone
])
+
+\undivert
diff --git a/examples/WWW/m4lib/whatis.m4 b/examples/WWW/m4lib/whatis.m4
index 506269a2..34ec149d 100644
--- a/examples/WWW/m4lib/whatis.m4
+++ b/examples/WWW/m4lib/whatis.m4
@@ -38,6 +38,11 @@ compulsive programmers.])
\p([Autoconf needs GNU m4 for generating `configure' scripts, but not for
running them.])
+\p([GNU m4 is a Unix program. It is designed to work in a Unix-like
+environment. GNU m4 1.4 has, however, been ported to DJGPP, the GNU C
+compiler for DOS/Windows. These files are present in the
+\link(download.htm, download area).])
+
\divert(0)\dnl
\DO_LAYOUT([\undivert(1)])
\divert(-1)
diff --git a/examples/WWW/modules.htm b/examples/WWW/modules.htm
index 49a31777..18ed0381 100644
--- a/examples/WWW/modules.htm
+++ b/examples/WWW/modules.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - Modules</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
diff --git a/examples/WWW/news.htm b/examples/WWW/news.htm
index 6ea55867..dbb9ba29 100644
--- a/examples/WWW/news.htm
+++ b/examples/WWW/news.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - NEWS - History of user-visible changes</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -209,6 +209,8 @@
<PRE>GNU m4 NEWS - History of user-visible changes. -*-indented-text-*-
Copyright (C) 1992, 1993, 1994, 1998 Free Software Foundation, Inc.
+Version beta 1.4o - November 1999, by Rene' Seindal
+
Version beta 1.4n - November 1998, by Rene' Seindal
* The module code has been reorganised yet again, and now compiles
diff --git a/examples/WWW/readme.htm b/examples/WWW/readme.htm
index 57c30261..d9d0906e 100644
--- a/examples/WWW/readme.htm
+++ b/examples/WWW/readme.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - README</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -215,6 +215,8 @@ running shell commands, doing arithmetic, etc. Autoconf needs GNU
GNU `m4' has been originally written by René Seindal, from Denmark.
+GNU `m4' has a web site at http://www.seindal.dk/rene/gnu/.
+
If GNU `m4' is meant to serve GNU `autoconf', beware that `m4'
should be fully installed *prior to* configuring `autoconf' itself.
@@ -230,8 +232,8 @@ See file `NEWS' for a list of major changes in the current release.
See file `THANKS' for a list of contributors.
By using `./configure --with-gmp, you get multiple precision integral
-and rational arithmetic in eval. The implementation depends on the GNU
-gmp v2 library.
+and rational arithmetic using mpeval. The implementation depends on the
+GNU gmp v2 library.
By using `./configure --with-modules, you get the possibility of using
dynamic modules. The implementation depends on dlopen(3) interface.
diff --git a/examples/WWW/thanks.htm b/examples/WWW/thanks.htm
index 26e43c30..fef1f632 100644
--- a/examples/WWW/thanks.htm
+++ b/examples/WWW/thanks.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - People who have contributed to m4</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
diff --git a/examples/WWW/thissite.htm b/examples/WWW/thissite.htm
index 640891e5..7345a103 100644
--- a/examples/WWW/thissite.htm
+++ b/examples/WWW/thissite.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - This site</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -208,7 +208,7 @@
<P>
This GNU m4 site is maintained by René Seindal,
-(<A HREF="mailto:rene@seindal">rene@seindal</A>).
+(<A HREF="mailto:rene@seindal.dk">rene@seindal.dk</A>).
</P>
@@ -231,7 +231,7 @@ changesyntax. <I>This is a new feature in m4 1.4l</I>.
<P>
Some fairly general macros to generate various HTML construct are
found in <A HREF="m4lib/html.m4">m4lib/html.m4</A>. There are macros for simple tags,
-containers with and with attributes, links and a few utility macros.
+containers with and without attributes, links and a few utility macros.
</P>
diff --git a/examples/WWW/todo.htm b/examples/WWW/todo.htm
index f11e47bf..75cae05a 100644
--- a/examples/WWW/todo.htm
+++ b/examples/WWW/todo.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - TODO - Things still to be done</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -243,13 +243,6 @@ for any of these ideas or if you have others to add.
* FEATURES OR PROBLEMS
- + GMP eval() should be enables if the library is present, maybe by
- providing two different versions of eval(). That way users can
- choose whether to use gmp on an individual basis.
-
- + There should be a way ot have m4 discard comments instead of
- outputting them.
-
+ Implement discarding comment delimiters with the syntax table.
+ The module system is still rudimentary (see below)
@@ -280,6 +273,8 @@ for any of these ideas or if you have others to add.
* MODULE SPECIFIC ISSUES
+ Support for other DL interfaces besides dlopen and shl_load.
+ Currently it compiles and works on HPUX (v9,v10), SunOS (v5),
+ Solaris (v5) and GNU/Linux (v2.0).
+ Modules should be loadable from the command line with something like
`-M module.so' o `--load-module=module.so'. M4 should abort if it
diff --git a/examples/WWW/uses.htm b/examples/WWW/uses.htm
index 403de4d0..7259aa0b 100644
--- a/examples/WWW/uses.htm
+++ b/examples/WWW/uses.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - Current uses of m4</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -242,6 +242,14 @@ The macros are used to maintain a large commercial site at
</P>
+<P>
+Other examples of GNU m4 generated HTML pages written by
+<A HREF="mailto:max@alcyone.com">Erik Max Francis</A> can be found at the sites
+<A HREF="http://www.alcyone.com/max/">http://www.alcyone.com/max/</A> <A HREF="http://www.catcam.com/">http://www.catcam.com/</A> <A HREF="http://www.crank.net/">http://www.crank.net/</A> and
+<A HREF="http://www.pollywannacracka.com/">http://www.pollywannacracka.com/</A>.
+
+</P>
+
<P>
<A HREF="thissite.htm">These files are created with GNU m4 1.4n</A>.
diff --git a/examples/WWW/visions.htm b/examples/WWW/visions.htm
index fadad4a8..88177dbf 100644
--- a/examples/WWW/visions.htm
+++ b/examples/WWW/visions.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - The Road Ahead</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -222,85 +222,61 @@ and small. The order here is fairly random.
-
-
<LI> <A HREF="#utf8">UTF-8 or wide characters.</A>
-
-
<LI> <A HREF="#pquote">Syntax: persistent quotes.</A>
-
-
<LI> <A HREF="#comment2">Syntax: removable comments.</A>
-
-
<LI> <A HREF="#comment1">Option: remove comments.</A>
-
-
<LI> <A HREF="#deps">Option: show dependencies.</A>
-
-
<LI> <A HREF="#safer">Option: render GNU m4 safer.</A>
-
-
<LI> <A HREF="#import">Option: import environment.</A>
-
-
<LI> <A HREF="#m4expand">Builtin: quote expanded text.</A>
-
-
<LI> <A HREF="#perl">Module: embedded perl.</A>
-
-
<LI> <A HREF="#output">Module: better output control.</A>
-
-
<LI> <A HREF="#require">Module: require/provide functionality.</A>
-
-
</UL>
@@ -311,10 +287,9 @@ See also the <A HREF="todo.htm">TODO</A> file.
</P>
-
-<HR align=center width=50%><A NAME="guile">
-<H2>Guile as an extension language</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="guile">Guile as an extension language</A></H2>
+<P>
<A HREF="http://www.red-bean.com/guile/">Guile</A> can be used as an
extension language so complicated macros can be written in Scheme while
still maintaining the m4 interface. It will require some changes to the
@@ -324,13 +299,12 @@ base code, as guile cannot be used from a module.
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Guile as an extension language" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([René Seindal], [rene@seindal]) -->
-
-<HR align=center width=50%><A NAME="utf8">
-<H2>UTF-8 or wide characters</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="utf8">UTF-8 or wide characters</A></H2>
+<P>
GNU m4 should be able to handle UTF-8 input or wide characters so
it can be more usable for different environments.
</P>
@@ -338,13 +312,12 @@ it can be more usable for different environments.
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: UTF-8 or wide characters" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([François Pinard]) -->
-
-<HR align=center width=50%><A NAME="pquote">
-<H2>Syntax: persistent quotes</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="pquote">Syntax: persistent quotes</A></H2>
+<P>
Persistent quotes is a way of getting text unharmed through m4's
processing. While normal quotes are stripped when a quoted string is
read, the persistent quotes are removed just before being output. This
@@ -364,13 +337,12 @@ macro.c).
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Syntax: persistent quotes" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([Keith Bostic]) -->
-
-<HR align=center width=50%><A NAME="comment2">
-<H2>Syntax: removable comments</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="comment2">Syntax: removable comments</A></H2>
+<P>
With the syntax table a category for discardable comments can be
defined, causing that type of comments to be discarded.
</P>
@@ -378,13 +350,12 @@ defined, causing that type of comments to be discarded.
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Syntax: removable comments" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
-
-<HR align=center width=50%><A NAME="comment1">
-<H2>Option: remove comments</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="comment1">Option: remove comments</A></H2>
+<P>
There should be an option (--discard-comments) to get m4 to discard
comments instead of passing them to the output.
</P>
@@ -394,10 +365,9 @@ comments instead of passing them to the output.
Done in version 1.4n
</P>
-
-<HR align=center width=50%><A NAME="deps">
-<H2>Option: show dependencies</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="deps">Option: show dependencies</A></H2>
+<P>
There should be an options to generate makefile dependencies for an
M4 input file.
</P>
@@ -419,13 +389,12 @@ generated on the fly.
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Option: show dependencies" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([Erick Branderhorst]) -->
-
-<HR align=center width=50%><A NAME="safer">
-<H2>Option: render GNU m4 safer</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="safer">Option: render GNU m4 safer</A></H2>
+<P>
There should be a --safer option that disables all functions, that
could compromise system security if used by root. It will have to
include various functions, such as file inclusion, sub shells, module
@@ -435,13 +404,12 @@ loading, ...
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Option: render GNU m4 safer" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([Santiago Vila]) -->
-
-<HR align=center width=50%><A NAME="import">
-<H2>Option: import environment</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="import">Option: import environment</A></H2>
+<P>
An option to defined each environment variable as a macro on
startup would be useful in many cases.
</P>
@@ -451,10 +419,9 @@ startup would be useful in many cases.
Done in version 1.4n
</P>
<!-- \originator([René Seindal]) -->
-
-<HR align=center width=50%><A NAME="m4expand">
-<H2>Builtin: quote expanded text</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="m4expand">Builtin: quote expanded text</A></H2>
+<P>
A builtin to quote expanded text would be useful. Now it is not
possible to quote the expansion of a macro; the macro itself has to
provide the quotes. Some builtins return quoted strings, others
@@ -475,13 +442,12 @@ It will require changes to input handling and macro expansion code.
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Builtin: quote expanded text" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([Axel Boldt]) -->
-
-<HR align=center width=50%><A NAME="perl">
-<H2>Module: embedded perl</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="perl">Module: embedded perl</A></H2>
+<P>
Perl could be embedded in m4, giving users a powerful programming
language for writing macros. A single builtin "perleval" could do the
job. First argument could be a perl function and the rest arguments.
@@ -515,13 +481,12 @@ would be minimal.
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Module: embedded perl" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([René Seindal]) -->
-
-<HR align=center width=50%><A NAME="output">
-<H2>Module: better output control</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="output">Module: better output control</A></H2>
+<P>
It has been suggested a couple of times that it should be possible
to divert to named files, in order to create several output files.
</P>
@@ -560,13 +525,12 @@ different, as it cannot be undiverted.)
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Module: better output control" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([René Seindal]) -->
-
-<HR align=center width=50%><A NAME="require">
-<H2>Module: require/provide functionality</H2>
-</A><P>
+<HR align=center width="50%">
+<H2><A NAME="require">Module: require/provide functionality</A></H2>
+<P>
Two new builtins <TT>require</TT> and <TT>provide</TT> could provide a
handy interface to include. It has proven difficult to write these
robustly as normal macros. As an example, the files <TT>test.m4</TT> and
@@ -577,7 +541,7 @@ the search path.
<P>
There is no-one working on this now. Do you want
-to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: Module: require/provide functionality" >volunteer</A>?
+to <A HREF="mailto:m4-feedback@seindal.dk?subject=GNU m4: " >volunteer</A>?
</P>
<!-- \originator([Terry Jones]) -->
diff --git a/examples/WWW/whatis.htm b/examples/WWW/whatis.htm
index 0c8386a7..0c935f7c 100644
--- a/examples/WWW/whatis.htm
+++ b/examples/WWW/whatis.htm
@@ -1,4 +1,4 @@
-<DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
<TITLE>GNU m4 - What is GNU m4</TITLE>
@@ -8,7 +8,7 @@
<BODY text="#000000" bgcolor="#FFCC99" link="#0000EF" alink="#FF0000" vlink="#51188E">
<TABLE cellpadding=5 width="100%">
<TR align=left valign=bottom>
-<TD align=center valign=center colspan="3" width="100%" bgcolor="#FF9900">
+<TD align=center valign=middle colspan="3" width="100%" bgcolor="#FF9900">
<H1>GNU m4</H1>
@@ -30,11 +30,11 @@
-<TABLE align=left valign=top columns=1>
+<TABLE >
<TR>
<TD bgcolor="#CC6600">
<P>
-<B>Generel info</B>
+<B>General info</B>
</P>
</TD>
@@ -42,13 +42,13 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="whatis.htm">What is m4</A><BR>
+<FONT size=-1><B><A HREF="whatis.htm">What is m4</A><BR>
<A HREF="features.htm">Features</A><BR>
-<A HREF="uses.htm">Uses of m4</A></B>
+<A HREF="uses.htm">Uses of m4</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -70,11 +70,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="man/m4_toc.html">Manual</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="man/m4_toc.html">Manual</A></B>
</P>
-</FONT>
</TD>
@@ -96,16 +96,16 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="readme.htm">README</A><BR>
+<FONT size=-1><B><A HREF="readme.htm">README</A><BR>
<A HREF="todo.htm">TODO</A><BR>
<A HREF="news.htm">NEWS</A><BR>
<A HREF="changelog.htm">ChangeLog</A><BR>
<A HREF="thanks.htm">Contributors</A><BR>
-<A HREF="m4/">Browse it</A></B>
+<A HREF="m4/">Browse it</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -127,12 +127,12 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="modules.htm">Modules</A><BR>
+<A HREF="visions.htm">Visions</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="modules.htm">Modules</A><BR>
-<A HREF="visions.htm">Visions</A></B>
</P>
-</FONT>
</TD>
@@ -154,14 +154,14 @@
</TR>
<TR>
<TD>
+<P>
-<FONT size=-1><P>
-<B><A HREF="lists.htm">Mailing-lists</A><BR>
+<FONT size=-1><B><A HREF="lists.htm">Mailing-lists</A><BR>
<A HREF="feedback.htm">Feedback</A><BR>
<A HREF="download.htm">Download</A><BR>
-<A HREF="bugs.htm">Known bugs</A></B>
+<A HREF="bugs.htm">Known bugs</A></B></FONT>
+
</P>
-</FONT>
</TD>
@@ -183,11 +183,11 @@
</TR>
<TR>
<TD>
+<P>
+
+<FONT size=-1><B><A HREF="thissite.htm">This site</A></B></FONT>
-<FONT size=-1><P>
-<B><A HREF="thissite.htm">This site</A></B>
</P>
-</FONT>
</TD>
@@ -254,6 +254,14 @@ running them.
</P>
+<P>
+GNU m4 is a Unix program. It is designed to work in a Unix-like
+environment. GNU m4 1.4 has, however, been ported to DJGPP, the GNU C
+compiler for DOS/Windows. These files are present in the
+<A HREF="download.htm">download area</A>.
+</P>
+
+
</TD>
diff --git a/install-sh b/install-sh
index e8436696..e9de2384 100755
--- a/install-sh
+++ b/install-sh
@@ -118,6 +118,7 @@ if [ x"$dir_arg" != x ]; then
if [ -d $dst ]; then
instcmd=:
+ chmodcmd=""
else
instcmd=mkdir
fi
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 3998d0d0..4fbd77a2 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -1,4 +1,8 @@
## Process this file with automake to produce Makefile.in
+AUTOMAKE_OPTIONS = gnu ../src/ansi2knr
+
+MAINTAINERCLEANFILES = Makefile.in
+
noinst_LIBRARIES = libm4.a
INCLUDES = @INTLINCL@
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 1e8b0f1b..c07cb84f 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.3b from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
-SHELL = /bin/sh
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -59,6 +59,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+AS = @AS@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -66,6 +67,7 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DLLDFLAGS = @DLLDFLAGS@
+DLLTOOL = @DLLTOOL@
GENCAT = @GENCAT@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
@@ -86,6 +88,7 @@ MODULES_DIR = @MODULES_DIR@
MODULE_PATH = @MODULE_PATH@
MSGFMT = @MSGFMT@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
@@ -99,6 +102,10 @@ VERSION = @VERSION@
l = @l@
pkglibexecdir = @pkglibexecdir@
+AUTOMAKE_OPTIONS = gnu ../src/ansi2knr
+
+MAINTAINERCLEANFILES = Makefile.in
+
noinst_LIBRARIES = libm4.a
INCLUDES = @INTLINCL@
@@ -118,13 +125,15 @@ DEFS = @DEFS@ -I. -I$(srcdir) -I..
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
+ANSI2KNR = ../src/ansi2knr
libm4_a_DEPENDENCIES = @LIBOBJS@
-libm4_a_OBJECTS = error.o
+libm4_a_OBJECTS = error$U.o
AR = ar
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
HEADERS = $(noinst_HEADERS)
DIST_COMMON = COPYING.LIB Makefile.am Makefile.in getopt.c getopt1.c \
@@ -134,15 +143,14 @@ obstack.c regex.c strtol.c xmalloc.c xstrdup.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
-GZIP = --best
+GZIP_ENV = --best
SOURCES = $(libm4_a_SOURCES)
OBJECTS = $(libm4_a_OBJECTS)
-all: Makefile $(LIBRARIES) $(HEADERS)
-
+all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -196,17 +204,55 @@ clean-libtool:
distclean-libtool:
maintainer-clean-libtool:
+../src/ansi2knr: ../src/ansi2knr.o
+ cd ../src && $(MAKE) $(AM_MAKEFLAGS) ansi2knr
+
+../src/ansi2knr.o:
+ cd ../src && $(MAKE) $(AM_MAKEFLAGS) ansi2knr.o
+
+
+mostlyclean-kr:
+ -rm -f *_.c
+
+clean-kr:
+
+distclean-kr:
+
+maintainer-clean-kr:
libm4.a: $(libm4_a_OBJECTS) $(libm4_a_DEPENDENCIES)
-rm -f libm4.a
$(AR) cru libm4.a $(libm4_a_OBJECTS) $(libm4_a_LIBADD)
$(RANLIB) libm4.a
+error_.c: error.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/error.c; then echo $(srcdir)/error.c; else echo error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > error_.c
+getopt_.c: getopt.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c
+getopt1_.c: getopt1.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c
+obstack_.c: obstack.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c
+regex_.c: regex.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/regex.c; then echo $(srcdir)/regex.c; else echo regex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > regex_.c
+strtol_.c: strtol.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtol.c; then echo $(srcdir)/strtol.c; else echo strtol.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtol_.c
+xmalloc_.c: xmalloc.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c
+xstrdup_.c: xstrdup.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrdup_.c
+error_.o error_.lo getopt_.o getopt_.lo getopt1_.o getopt1_.lo \
+obstack_.o obstack_.lo regex_.o regex_.lo strtol_.o strtol_.lo \
+xmalloc_.o xmalloc_.lo xstrdup_.o xstrdup_.lo : $(ANSI2KNR)
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
+ && mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
@@ -234,33 +280,38 @@ subdir = lib
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
done
-error.o: error.c ../config.h error.h
-obstack.o: obstack.c obstack.h ../config.h
-regex.o: regex.c ../config.h regex.h
-xmalloc.o: xmalloc.c ../config.h error.h
-xstrdup.o: xstrdup.c ../config.h
-
-info:
-dvi:
-check: all
-installcheck:
-install-exec:
- @$(NORMAL_INSTALL)
-
-install-data:
- @$(NORMAL_INSTALL)
-
-install: install-exec install-data all
- @:
-
-uninstall:
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LIBRARIES) $(HEADERS)
+all-redirect: all-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
@@ -273,35 +324,46 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-tags \
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-kr mostlyclean-tags \
mostlyclean-generic
-clean: clean-noinstLIBRARIES clean-compile clean-libtool clean-tags \
- clean-generic mostlyclean
+mostlyclean: mostlyclean-am
+
+clean-am: clean-noinstLIBRARIES clean-compile clean-libtool clean-kr \
+ clean-tags clean-generic mostlyclean-am
+
+clean: clean-am
-distclean: distclean-noinstLIBRARIES distclean-compile \
- distclean-libtool distclean-tags distclean-generic \
- clean
- -rm -f config.status
+distclean-am: distclean-noinstLIBRARIES distclean-compile \
+ distclean-libtool distclean-kr distclean-tags \
+ distclean-generic clean-am
-rm -f libtool
-maintainer-clean: maintainer-clean-noinstLIBRARIES \
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-tags maintainer-clean-generic \
- distclean
+ maintainer-clean-kr maintainer-clean-tags \
+ maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
+maintainer-clean: maintainer-clean-am
+
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
-installcheck install-exec install-data install uninstall all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+clean-libtool maintainer-clean-libtool mostlyclean-kr distclean-kr \
+clean-kr maintainer-clean-kr tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/lib/error.c b/lib/error.c
index e5f1daba..ca7f3b47 100644
--- a/lib/error.c
+++ b/lib/error.c
@@ -1,23 +1,27 @@
-/* error.c -- error handler for noninteractive utilities
- Copyright (C) 1990, 91, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
+/* Error handler for noninteractive utilities
+ Copyright (C) 1990,91,92,93,94,95,96,97,98 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 file is part of the GNU C Library. Its master source is NOT part of
+ the C library, however. The master source lives in /gd/gnu/lib.
- This program is distributed in the hope that it will be useful,
+ The GNU C Library 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 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library 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.
+ 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 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. */
+ 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. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
-#if HAVE_CONFIG_H
+#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
@@ -43,13 +47,12 @@
void exit ();
#endif
+#include "error.h"
+
#ifndef _
# define _(String) String
#endif
-/* Get prototypes for the functions defined here. */
-#include <error.h>
-
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
function without parameters instead. */
@@ -68,17 +71,30 @@ unsigned int error_message_count;
# define program_name program_invocation_name
# include <errno.h>
+/* In GNU libc we want do not want to use the common name `error' directly.
+ Instead make it a weak alias. */
+# define error __error
+# define error_at_line __error_at_line
+
+# ifdef USE_IN_LIBIO
+# include <libio/iolibio.h>
+# define fflush(s) _IO_fflush (s)
+# endif
+
#else /* not _LIBC */
/* The calling program should define program_name and set it to the
name of the executing program. */
extern char *program_name;
-# if HAVE_STRERROR
-# ifndef strerror /* On some systems, strerror is a macro */
-char *strerror ();
-# endif
+# ifdef HAVE_STRERROR_R
+# define __strerror_r strerror_r
# else
+# if HAVE_STRERROR
+# ifndef strerror /* On some systems, strerror is a macro */
+char *strerror ();
+# endif
+# else
static char *
private_strerror (errnum)
int errnum;
@@ -87,12 +103,12 @@ private_strerror (errnum)
extern int sys_nerr;
if (errnum > 0 && errnum <= sys_nerr)
- return sys_errlist[errnum];
+ return _(sys_errlist[errnum]);
return _("Unknown system error");
}
-# define strerror private_strerror
-# endif /* HAVE_STRERROR */
-
+# define strerror private_strerror
+# endif /* HAVE_STRERROR */
+# endif /* HAVE_STRERROR_R */
#endif /* not _LIBC */
/* Print the program name and error message MESSAGE, which is a printf-style
@@ -102,7 +118,7 @@ private_strerror (errnum)
/* VARARGS */
void
-#if defined(VA_START) && __STDC__
+#if defined VA_START && __STDC__
error (int status, int errnum, const char *message, ...)
#else
error (status, errnum, message, va_alist)
@@ -138,7 +154,14 @@ error (status, errnum, message, va_alist)
++error_message_count;
if (errnum)
- fprintf (stderr, ": %s", strerror (errnum));
+ {
+#if defined HAVE_STRERROR_R || defined _LIBC
+ char errbuf[1024];
+ fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
+#else
+ fprintf (stderr, ": %s", strerror (errnum));
+#endif
+ }
putc ('\n', stderr);
fflush (stderr);
if (status)
@@ -150,7 +173,7 @@ error (status, errnum, message, va_alist)
int error_one_per_line;
void
-#if defined(VA_START) && __STDC__
+#if defined VA_START && __STDC__
error_at_line (int status, int errnum, const char *file_name,
unsigned int line_number, const char *message, ...)
#else
@@ -206,9 +229,24 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
++error_message_count;
if (errnum)
- fprintf (stderr, ": %s", strerror (errnum));
+ {
+#if defined HAVE_STRERROR_R || defined _LIBC
+ char errbuf[1024];
+ fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
+#else
+ fprintf (stderr, ": %s", strerror (errnum));
+#endif
+ }
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (status);
}
+
+#ifdef _LIBC
+/* Make the weak alias. */
+# undef error
+# undef error_at_line
+weak_alias (__error, error)
+weak_alias (__error_at_line, error_at_line)
+#endif
diff --git a/lib/error.h b/lib/error.h
index 7a803d0c..0d3bcb7a 100644
--- a/lib/error.h
+++ b/lib/error.h
@@ -1,37 +1,45 @@
-/* error.h -- declaration for error-reporting function
- Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+/* Declaration for error-reporting function
+ Copyright (C) 1995, 1996, 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 file is part of the GNU C Library. Its master source is NOT part of
+ the C library, however. The master source lives in /gd/gnu/lib.
- This program is distributed in the hope that it will be useful,
+ The GNU C Library 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 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library 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.
+ 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 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. */
+ 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. */
-#ifndef ERROR_H_
-# define ERROR_H_
+#ifndef _ERROR_H
+#define _ERROR_H 1
-# ifndef __attribute__
+#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
-# define __attribute__(Spec) /* empty */
-# endif
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+# define __attribute__(Spec) /* empty */
+# endif
/* The __-protected variants of `format' and `printf' attributes
are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-# define __format__ format
-# define __printf__ printf
-# endif
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+# define __format__ format
+# define __printf__ printf
# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
-# if defined (__STDC__) && __STDC__
+#if defined (__STDC__) && __STDC__
/* Print a message with `fprintf (stderr, FORMAT, ...)';
if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
@@ -49,11 +57,11 @@ extern void error_at_line (int status, int errnum, const char *fname,
function without parameters instead. */
extern void (*error_print_progname) (void);
-# else
+#else
void error ();
void error_at_line ();
extern void (*error_print_progname) ();
-# endif
+#endif
/* This variable is incremented each time `error' is called. */
extern unsigned int error_message_count;
@@ -62,4 +70,8 @@ extern unsigned int error_message_count;
variable controls whether this mode is selected or not. */
extern int error_one_per_line;
-#endif /* not ERROR_H_ */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* error.h */
diff --git a/lib/getopt.c b/lib/getopt.c
index 80e8bdae..efd82235 100644
--- a/lib/getopt.c
+++ b/lib/getopt.c
@@ -1,13 +1,10 @@
/* Getopt for GNU.
NOTE: getopt is now part of the C library, so if you don't know what
- "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
+ "Keep this file name-space clean" means, talk to drepper@gnu.org
before changing it!
- Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
- Free Software Foundation, Inc.
-
- This file is part of the GNU C Library. Its master source is NOT part of
- the C library, however. The master source lives in /gd/gnu/lib.
+ Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
+ Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
@@ -27,19 +24,19 @@
/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
Ditto for AIX 3.2 and <stdlib.h>. */
#ifndef _NO_PROTO
-#define _NO_PROTO
+# define _NO_PROTO
#endif
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
-#if !defined (__STDC__) || !__STDC__
+#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
-#ifndef const
-#define const
-#endif
+# ifndef const
+# define const
+# endif
#endif
#include <stdio.h>
@@ -53,11 +50,11 @@
it is simpler to just do this in the source for each such file. */
#define GETOPT_INTERFACE_VERSION 2
-#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
-#include <gnu-versions.h>
-#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-#define ELIDE_CODE
-#endif
+#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
+# include <gnu-versions.h>
+# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
+# define ELIDE_CODE
+# endif
#endif
#ifndef ELIDE_CODE
@@ -68,32 +65,26 @@
#ifdef __GNU_LIBRARY__
/* Don't include stdlib.h for non-GNU C libraries because some of them
contain conflicting prototypes for getopt. */
-#include <stdlib.h>
-#include <unistd.h>
+# include <stdlib.h>
+# include <unistd.h>
#endif /* GNU C library. */
#ifdef VMS
-#include <unixlib.h>
-#if HAVE_STRING_H - 0
-#include <string.h>
-#endif
-#endif
-
-#if defined (WIN32) && !defined (__CYGWIN32__)
-/* It's not Unix, really. See? Capital letters. */
-#include <windows.h>
-#define getpid() GetCurrentProcessId()
+# include <unixlib.h>
+# if HAVE_STRING_H - 0
+# include <string.h>
+# endif
#endif
#ifndef _
/* This is for other GNU distributions with internationalized messages.
When compiling libc, the _ macro is predefined. */
-#ifdef HAVE_LIBINTL_H
-# include <libintl.h>
-# define _(msgid) gettext (msgid)
-#else
-# define _(msgid) (msgid)
-#endif
+# ifdef HAVE_LIBINTL_H
+# include <libintl.h>
+# define _(msgid) gettext (msgid)
+# else
+# define _(msgid) (msgid)
+# endif
#endif
/* This version of `getopt' appears to the caller like standard Unix `getopt'
@@ -118,7 +109,7 @@
Also, when `ordering' is RETURN_IN_ORDER,
each non-option ARGV-element is returned here. */
-char *optarg = NULL;
+char *optarg;
/* Index in ARGV of the next element to be scanned.
This is used for communication to and from the caller
@@ -139,7 +130,7 @@ int optind = 1;
causes problems with re-calling getopt as programs generally don't
know that. */
-int __getopt_initialized = 0;
+int __getopt_initialized;
/* The next char to be scanned in the option-element
in which the last option character we returned was found.
@@ -203,14 +194,22 @@ static char *posixly_correct;
because there are many ways it can cause trouble.
On some systems, it contains special magic macros that don't work
in GCC. */
-#include <string.h>
-#define my_index strchr
+# include <string.h>
+# define my_index strchr
#else
+# if HAVE_STRING_H
+# include <string.h>
+# else
+# include <strings.h>
+# endif
+
/* Avoid depending on library functions or files
whose names are inconsistent. */
-char *getenv ();
+#ifndef getenv
+extern char *getenv ();
+#endif
static char *
my_index (str, chr)
@@ -231,11 +230,11 @@ my_index (str, chr)
#ifdef __GNUC__
/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
That was relevant to code that was here before. */
-#if !defined (__STDC__) || !__STDC__
+# if (!defined __STDC__ || !__STDC__) && !defined strlen
/* gcc with -traditional declares the built-in strlen to return int,
and has done so at least since version 2.4.5. -- rms. */
extern int strlen (const char *);
-#endif /* not __STDC__ */
+# endif /* not __STDC__ */
#endif /* __GNUC__ */
#endif /* not __GNU_LIBRARY__ */
@@ -253,7 +252,10 @@ static int last_nonopt;
/* Bash 2.0 gives us an environment variable containing flags
indicating ARGV elements that should not be considered arguments. */
-static const char *nonoption_flags;
+/* Defined in getopt_init.c */
+extern char *__getopt_nonoption_flags;
+
+static int nonoption_flags_max_len;
static int nonoption_flags_len;
static int original_argc;
@@ -262,17 +264,29 @@ static char *const *original_argv;
/* Make sure the environment variable bash 2.0 puts in the environment
is valid for the getopt call we must make sure that the ARGV passed
to getopt is that one passed to the process. */
-static void store_args (int argc, char *const *argv) __attribute__ ((unused));
static void
-store_args (int argc, char *const *argv)
+__attribute__ ((unused))
+store_args_and_env (int argc, char *const *argv)
{
/* XXX This is no good solution. We should rather copy the args so
that we can compare them later. But we must not use malloc(3). */
original_argc = argc;
original_argv = argv;
}
-text_set_element (__libc_subinit, store_args);
-#endif
+# ifdef text_set_element
+text_set_element (__libc_subinit, store_args_and_env);
+# endif /* text_set_element */
+
+# define SWAP_FLAGS(ch1, ch2) \
+ if (nonoption_flags_len > 0) \
+ { \
+ char __tmp = __getopt_nonoption_flags[ch1]; \
+ __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \
+ __getopt_nonoption_flags[ch2] = __tmp; \
+ }
+#else /* !_LIBC */
+# define SWAP_FLAGS(ch1, ch2)
+#endif /* _LIBC */
/* Exchange two adjacent subsequences of ARGV.
One subsequence is elements [first_nonopt,last_nonopt)
@@ -283,7 +297,7 @@ text_set_element (__libc_subinit, store_args);
`first_nonopt' and `last_nonopt' are relocated so that they describe
the new indices of the non-options in ARGV after they are moved. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
static void exchange (char **);
#endif
@@ -301,6 +315,28 @@ exchange (argv)
It leaves the longer segment in the right place overall,
but it consists of two parts that need to be swapped next. */
+#ifdef _LIBC
+ /* First make sure the handling of the `__getopt_nonoption_flags'
+ string can work normally. Our top argument must be in the range
+ of the string. */
+ if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
+ {
+ /* We must extend the array. The user plays games with us and
+ presents new arguments. */
+ char *new_str = malloc (top + 1);
+ if (new_str == NULL)
+ nonoption_flags_len = nonoption_flags_max_len = 0;
+ else
+ {
+ memset (__mempcpy (new_str, __getopt_nonoption_flags,
+ nonoption_flags_max_len),
+ '\0', top + 1 - nonoption_flags_max_len);
+ nonoption_flags_max_len = top + 1;
+ __getopt_nonoption_flags = new_str;
+ }
+ }
+#endif
+
while (top > middle && middle > bottom)
{
if (top - middle > middle - bottom)
@@ -315,6 +351,7 @@ exchange (argv)
tem = argv[bottom + i];
argv[bottom + i] = argv[top - (middle - bottom) + i];
argv[top - (middle - bottom) + i] = tem;
+ SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
}
/* Exclude the moved bottom segment from further swapping. */
top -= len;
@@ -331,6 +368,7 @@ exchange (argv)
tem = argv[bottom + i];
argv[bottom + i] = argv[middle + i];
argv[middle + i] = tem;
+ SWAP_FLAGS (bottom + i, middle + i);
}
/* Exclude the moved top segment from further swapping. */
bottom += len;
@@ -345,7 +383,7 @@ exchange (argv)
/* Initialize the internal data when the first call is made. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
static const char *_getopt_initialize (int, char *const *, const char *);
#endif
static const char *
@@ -358,7 +396,7 @@ _getopt_initialize (argc, argv, optstring)
is the program name); the sequence of previously skipped
non-option ARGV-elements is empty. */
- first_nonopt = last_nonopt = optind = 1;
+ first_nonopt = last_nonopt = optind;
nextchar = NULL;
@@ -385,17 +423,27 @@ _getopt_initialize (argc, argv, optstring)
if (posixly_correct == NULL
&& argc == original_argc && argv == original_argv)
{
- /* Bash 2.0 puts a special variable in the environment for each
- command it runs, specifying which ARGV elements are the results of
- file name wildcard expansion and therefore should not be
- considered as options. */
- char var[100];
- sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ());
- nonoption_flags = getenv (var);
- if (nonoption_flags == NULL)
- nonoption_flags_len = 0;
- else
- nonoption_flags_len = strlen (nonoption_flags);
+ if (nonoption_flags_max_len == 0)
+ {
+ if (__getopt_nonoption_flags == NULL
+ || __getopt_nonoption_flags[0] == '\0')
+ nonoption_flags_max_len = -1;
+ else
+ {
+ const char *orig_str = __getopt_nonoption_flags;
+ int len = nonoption_flags_max_len = strlen (orig_str);
+ if (nonoption_flags_max_len < argc)
+ nonoption_flags_max_len = argc;
+ __getopt_nonoption_flags =
+ (char *) malloc (nonoption_flags_max_len);
+ if (__getopt_nonoption_flags == NULL)
+ nonoption_flags_max_len = -1;
+ else
+ memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
+ '\0', nonoption_flags_max_len - len);
+ }
+ }
+ nonoption_flags_len = nonoption_flags_max_len;
}
else
nonoption_flags_len = 0;
@@ -471,10 +519,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
optarg = NULL;
- if (!__getopt_initialized || optind == 0)
+ if (optind == 0 || !__getopt_initialized)
{
+ if (optind == 0)
+ optind = 1; /* Don't scan ARGV[0], the program name. */
optstring = _getopt_initialize (argc, argv, optstring);
- optind = 1; /* Don't scan ARGV[0], the program name. */
__getopt_initialized = 1;
}
@@ -483,11 +532,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
from the shell indicating it is not an option. The later information
is only used when the used in the GNU libc. */
#ifdef _LIBC
-#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
- || (optind < nonoption_flags_len \
- && nonoption_flags[optind] == '1'))
+# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
+ || (optind < nonoption_flags_len \
+ && __getopt_nonoption_flags[optind] == '1'))
#else
-#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
+# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
#endif
if (nextchar == NULL || *nextchar == '\0')
@@ -646,16 +695,18 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
else
{
if (opterr)
- if (argv[optind - 1][1] == '-')
- /* --option */
- fprintf (stderr,
- _("%s: option `--%s' doesn't allow an argument\n"),
- argv[0], pfound->name);
- else
- /* +option or -option */
- fprintf (stderr,
- _("%s: option `%c%s' doesn't allow an argument\n"),
- argv[0], argv[optind - 1][0], pfound->name);
+ {
+ if (argv[optind - 1][1] == '-')
+ /* --option */
+ fprintf (stderr,
+ _("%s: option `--%s' doesn't allow an argument\n"),
+ argv[0], pfound->name);
+ else
+ /* +option or -option */
+ fprintf (stderr,
+ _("%s: option `%c%s' doesn't allow an argument\n"),
+ argv[0], argv[optind - 1][0], pfound->name);
+ }
nextchar += strlen (nextchar);
diff --git a/lib/getopt.h b/lib/getopt.h
index 7dad11b7..12b7ad56 100644
--- a/lib/getopt.h
+++ b/lib/getopt.h
@@ -1,8 +1,6 @@
/* Declarations for getopt.
- Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library. Its master source is NOT part of
- the C library, however. The master source lives in /gd/gnu/lib.
+ Copyright (C) 1989,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
@@ -20,7 +18,21 @@
Boston, MA 02111-1307, USA. */
#ifndef _GETOPT_H
-#define _GETOPT_H 1
+
+#ifndef __need_getopt
+# define _GETOPT_H 1
+#endif
+
+/* If __GNU_LIBRARY__ is not already defined, either we are being used
+ standalone, or this is the first header included in the source file.
+ If we are being used with glibc, we need to include <features.h>, but
+ that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
+ not defined, include <ctype.h>, which will pull in <features.h> for us
+ if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
+ doesn't flood the namespace with stuff the way some other headers do.) */
+#if !defined __GNU_LIBRARY__
+# include <ctype.h>
+#endif
#ifdef __cplusplus
extern "C" {
@@ -57,6 +69,7 @@ extern int opterr;
extern int optopt;
+#ifndef __need_getopt
/* Describe the long-named options requested by the application.
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
of `struct option' terminated by an element containing a name which is
@@ -80,11 +93,11 @@ extern int optopt;
struct option
{
-#if defined (__STDC__) && __STDC__
+# if defined __STDC__ && __STDC__
const char *name;
-#else
+# else
char *name;
-#endif
+# endif
/* has_arg can't be an enum because some compilers complain about
type mismatches in all the code that assumes it is an int. */
int has_arg;
@@ -94,40 +107,74 @@ struct option
/* Names for the values of the `has_arg' field of `struct option'. */
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
+# define no_argument 0
+# define required_argument 1
+# define optional_argument 2
+#endif /* need getopt */
+
+
+/* Get definitions and prototypes for functions to process the
+ arguments in ARGV (ARGC of them, minus the program name) for
+ options given in OPTS.
-#if defined (__STDC__) && __STDC__
-#ifdef __GNU_LIBRARY__
+ Return the option character from OPTS just read. Return -1 when
+ there are no more options. For unrecognized options, or options
+ missing arguments, `optopt' is set to the option letter, and '?' is
+ returned.
+
+ The OPTS string is a list of characters which are recognized option
+ letters, optionally followed by colons, specifying that that letter
+ takes an argument, to be placed in `optarg'.
+
+ If a letter in OPTS is followed by two colons, its argument is
+ optional. This behavior is specific to the GNU `getopt'.
+
+ The argument `--' causes premature termination of argument
+ scanning, explicitly telling `getopt' that there are no more
+ options.
+
+ If OPTS begins with `--', then non-option arguments are treated as
+ arguments to the option '\0'. This behavior is specific to the GNU
+ `getopt'. */
+
+#if defined __STDC__ && __STDC__
+# ifdef __GNU_LIBRARY__
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else /* not __GNU_LIBRARY__ */
+extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
+# else /* not __GNU_LIBRARY__ */
extern int getopt ();
-#endif /* __GNU_LIBRARY__ */
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
- const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind);
+# endif /* __GNU_LIBRARY__ */
+
+# ifndef __need_getopt
+extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
+ const struct option *__longopts, int *__longind);
+extern int getopt_long_only (int __argc, char *const *__argv,
+ const char *__shortopts,
+ const struct option *__longopts, int *__longind);
/* Internal only. Users should not call this directly. */
-extern int _getopt_internal (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind,
- int long_only);
+extern int _getopt_internal (int __argc, char *const *__argv,
+ const char *__shortopts,
+ const struct option *__longopts, int *__longind,
+ int __long_only);
+# endif
#else /* not __STDC__ */
extern int getopt ();
+# ifndef __need_getopt
extern int getopt_long ();
extern int getopt_long_only ();
extern int _getopt_internal ();
+# endif
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
-#endif /* _GETOPT_H */
+/* Make sure we later can get all the definitions and declarations. */
+#undef __need_getopt
+
+#endif /* getopt.h */
diff --git a/lib/getopt1.c b/lib/getopt1.c
index 8347bb13..3d264f2d 100644
--- a/lib/getopt1.c
+++ b/lib/getopt1.c
@@ -1,8 +1,7 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
- Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library. Its master source is NOT part of
- the C library, however. The master source lives in /gd/gnu/lib.
+ Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
@@ -25,7 +24,7 @@
#include "getopt.h"
-#if !defined (__STDC__) || !__STDC__
+#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
#ifndef const
@@ -44,7 +43,7 @@
it is simpler to just do this in the source for each such file. */
#define GETOPT_INTERFACE_VERSION 2
-#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
+#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
#include <gnu-versions.h>
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
#define ELIDE_CODE
diff --git a/lib/obstack.c b/lib/obstack.c
index a5ffe9f6..17c63134 100644
--- a/lib/obstack.c
+++ b/lib/obstack.c
@@ -1,19 +1,27 @@
/* obstack.c - subroutines used implicitly by object stack macros
- Copyright (C) 1988,89,90,91,92,93,94,96 Free Software Foundation, Inc.
+ Copyright (C) 1988-1994,96,97,98,99 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 file is part of the GNU C Library. Its master source is NOT part of
+ the C library, however. The master source lives in /gd/gnu/lib.
-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.
+ The GNU C Library 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 of the
+ License, or (at your option) any later version.
-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 GNU C Library 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 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. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
#include "obstack.h"
@@ -52,7 +60,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Determine default alignment. */
struct fooalign {char x; double d;};
#define DEFAULT_ALIGNMENT \
- ((PTR_INT_TYPE) ((char *)&((struct fooalign *) 0)->d - (char *)0))
+ ((PTR_INT_TYPE) ((char *) &((struct fooalign *) 0)->d - (char *) 0))
/* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT.
But in fact it might be less smart and round addresses to as much as
DEFAULT_ROUNDING. So we prepare for it to do that. */
@@ -67,6 +75,30 @@ union fooround {long x; double d;};
#define COPYING_UNIT int
#endif
+
+/* The functions allocating more room by calling `obstack_chunk_alloc'
+ jump to the handler pointed to by `obstack_alloc_failed_handler'.
+ This can be set to a user defined function which should either
+ abort gracefully or use longjump - but shouldn't return. This
+ variable by default points to the internal function
+ `print_and_abort'. */
+#if defined (__STDC__) && __STDC__
+static void print_and_abort (void);
+void (*obstack_alloc_failed_handler) (void) = print_and_abort;
+#else
+static void print_and_abort ();
+void (*obstack_alloc_failed_handler) () = print_and_abort;
+#endif
+
+/* Exit value used when `print_and_abort' is used. */
+#if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifndef EXIT_FAILURE
+#define EXIT_FAILURE 1
+#endif
+int obstack_exit_failure = EXIT_FAILURE;
+
/* The non-GNU-C macros copy the obstack into this global variable
to avoid multiple evaluation. */
@@ -78,6 +110,20 @@ struct obstack *_obstack;
For free, do not use ?:, since some compilers, like the MIPS compilers,
do not allow (expr) ? void : void. */
+#if defined (__STDC__) && __STDC__
+#define CALL_CHUNKFUN(h, size) \
+ (((h) -> use_extra_arg) \
+ ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
+ : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
+
+#define CALL_FREEFUN(h, old_chunk) \
+ do { \
+ if ((h) -> use_extra_arg) \
+ (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
+ else \
+ (*(void (*) (void *)) (h)->freefun) ((old_chunk)); \
+ } while (0)
+#else
#define CALL_CHUNKFUN(h, size) \
(((h) -> use_extra_arg) \
? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
@@ -90,6 +136,7 @@ struct obstack *_obstack;
else \
(*(void (*) ()) (h)->freefun) ((old_chunk)); \
} while (0)
+#endif
/* Initialize an obstack H for use. Specify chunk size SIZE (0 means default).
@@ -97,22 +144,26 @@ struct obstack *_obstack;
CHUNKFUN is the function to use to allocate chunks,
and FREEFUN the function to free them.
- Return nonzero if successful, zero if out of memory.
- To recover from an out of memory error,
- free up some memory, then call this again. */
+ Return nonzero if successful, calls obstack_alloc_failed_handler if
+ allocation fails. */
int
_obstack_begin (h, size, alignment, chunkfun, freefun)
struct obstack *h;
int size;
int alignment;
+#if defined (__STDC__) && __STDC__
+ POINTER (*chunkfun) (long);
+ void (*freefun) (void *);
+#else
POINTER (*chunkfun) ();
void (*freefun) ();
+#endif
{
- register struct _obstack_chunk* chunk; /* points to new chunk */
+ register struct _obstack_chunk *chunk; /* points to new chunk */
if (alignment == 0)
- alignment = DEFAULT_ALIGNMENT;
+ alignment = (int) DEFAULT_ALIGNMENT;
if (size == 0)
/* Default size is what GNU malloc can fit in a 4096-byte block. */
{
@@ -130,25 +181,27 @@ _obstack_begin (h, size, alignment, chunkfun, freefun)
size = 4096 - extra;
}
+#if defined (__STDC__) && __STDC__
+ h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
+ h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
+#else
h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
h->freefun = freefun;
+#endif
h->chunk_size = size;
h->alignment_mask = alignment - 1;
h->use_extra_arg = 0;
chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
if (!chunk)
- {
- h->alloc_failed = 1;
- return 0;
- }
- h->alloc_failed = 0;
+ (*obstack_alloc_failed_handler) ();
h->next_free = h->object_base = chunk->contents;
h->chunk_limit = chunk->limit
= (char *) chunk + h->chunk_size;
chunk->prev = 0;
/* The initial chunk now contains no empty object. */
h->maybe_empty_object = 0;
+ h->alloc_failed = 0;
return 1;
}
@@ -157,14 +210,19 @@ _obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg)
struct obstack *h;
int size;
int alignment;
+#if defined (__STDC__) && __STDC__
+ POINTER (*chunkfun) (POINTER, long);
+ void (*freefun) (POINTER, POINTER);
+#else
POINTER (*chunkfun) ();
void (*freefun) ();
+#endif
POINTER arg;
{
- register struct _obstack_chunk* chunk; /* points to new chunk */
+ register struct _obstack_chunk *chunk; /* points to new chunk */
if (alignment == 0)
- alignment = DEFAULT_ALIGNMENT;
+ alignment = (int) DEFAULT_ALIGNMENT;
if (size == 0)
/* Default size is what GNU malloc can fit in a 4096-byte block. */
{
@@ -182,8 +240,13 @@ _obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg)
size = 4096 - extra;
}
+#if defined(__STDC__) && __STDC__
+ h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun;
+ h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
+#else
h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
h->freefun = freefun;
+#endif
h->chunk_size = size;
h->alignment_mask = alignment - 1;
h->extra_arg = arg;
@@ -191,17 +254,14 @@ _obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg)
chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
if (!chunk)
- {
- h->alloc_failed = 1;
- return 0;
- }
- h->alloc_failed = 0;
+ (*obstack_alloc_failed_handler) ();
h->next_free = h->object_base = chunk->contents;
h->chunk_limit = chunk->limit
= (char *) chunk + h->chunk_size;
chunk->prev = 0;
/* The initial chunk now contains no empty object. */
h->maybe_empty_object = 0;
+ h->alloc_failed = 0;
return 1;
}
@@ -216,12 +276,12 @@ _obstack_newchunk (h, length)
struct obstack *h;
int length;
{
- register struct _obstack_chunk* old_chunk = h->chunk;
- register struct _obstack_chunk* new_chunk;
+ register struct _obstack_chunk *old_chunk = h->chunk;
+ register struct _obstack_chunk *new_chunk;
register long new_size;
- register int obj_size = h->next_free - h->object_base;
- register int i;
- int already;
+ register long obj_size = h->next_free - h->object_base;
+ register long i;
+ long already;
/* Compute size for new chunk. */
new_size = (obj_size + length) + (obj_size >> 3) + 100;
@@ -231,11 +291,7 @@ _obstack_newchunk (h, length)
/* Allocate and initialize the new chunk. */
new_chunk = CALL_CHUNKFUN (h, new_size);
if (!new_chunk)
- {
- h->alloc_failed = 1;
- return;
- }
- h->alloc_failed = 0;
+ (*obstack_alloc_failed_handler) ();
h->chunk = new_chunk;
new_chunk->prev = old_chunk;
new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size;
@@ -290,14 +346,14 @@ _obstack_allocated_p (h, obj)
struct obstack *h;
POINTER obj;
{
- register struct _obstack_chunk* lp; /* below addr of any objects in this chunk */
- register struct _obstack_chunk* plp; /* point to previous chunk if any */
+ register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
+ register struct _obstack_chunk *plp; /* point to previous chunk if any */
lp = (h)->chunk;
/* We use >= rather than > since the object cannot be exactly at
the beginning of the chunk but might be an empty object exactly
- at the end of an adjacent chunk. */
- while (lp != 0 && ((POINTER)lp >= obj || (POINTER)(lp)->limit < obj))
+ at the end of an adjacent chunk. */
+ while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
{
plp = lp->prev;
lp = plp;
@@ -318,14 +374,14 @@ _obstack_free (h, obj)
struct obstack *h;
POINTER obj;
{
- register struct _obstack_chunk* lp; /* below addr of any objects in this chunk */
- register struct _obstack_chunk* plp; /* point to previous chunk if any */
+ register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
+ register struct _obstack_chunk *plp; /* point to previous chunk if any */
lp = h->chunk;
/* We use >= because there cannot be an object at the beginning of a chunk.
But there can be an empty object at that address
at the end of another chunk. */
- while (lp != 0 && ((POINTER)lp >= obj || (POINTER)(lp)->limit < obj))
+ while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
{
plp = lp->prev;
CALL_FREEFUN (h, lp);
@@ -336,7 +392,7 @@ _obstack_free (h, obj)
}
if (lp)
{
- h->object_base = h->next_free = (char *)(obj);
+ h->object_base = h->next_free = (char *) (obj);
h->chunk_limit = lp->limit;
h->chunk = lp;
}
@@ -352,14 +408,14 @@ obstack_free (h, obj)
struct obstack *h;
POINTER obj;
{
- register struct _obstack_chunk* lp; /* below addr of any objects in this chunk */
- register struct _obstack_chunk* plp; /* point to previous chunk if any */
+ register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
+ register struct _obstack_chunk *plp; /* point to previous chunk if any */
lp = h->chunk;
/* We use >= because there cannot be an object at the beginning of a chunk.
But there can be an empty object at that address
at the end of another chunk. */
- while (lp != 0 && ((POINTER)lp >= obj || (POINTER)(lp)->limit < obj))
+ while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
{
plp = lp->prev;
CALL_FREEFUN (h, lp);
@@ -370,7 +426,7 @@ obstack_free (h, obj)
}
if (lp)
{
- h->object_base = h->next_free = (char *)(obj);
+ h->object_base = h->next_free = (char *) (obj);
h->chunk_limit = lp->limit;
h->chunk = lp;
}
@@ -379,6 +435,44 @@ obstack_free (h, obj)
abort ();
}
+int
+_obstack_memory_used (h)
+ struct obstack *h;
+{
+ register struct _obstack_chunk* lp;
+ register int nbytes = 0;
+
+ for (lp = h->chunk; lp != 0; lp = lp->prev)
+ {
+ nbytes += lp->limit - (char *) lp;
+ }
+ return nbytes;
+}
+
+/* Define the error handler. */
+#ifndef _
+# ifdef HAVE_LIBINTL_H
+# include <libintl.h>
+# ifndef _
+# define _(Str) gettext (Str)
+# endif
+# else
+# define _(Str) (Str)
+# endif
+#endif
+#if defined _LIBC && defined USE_IN_LIBIO
+# include <libio/iolibio.h>
+# define fputs(s, f) _IO_fputs (s, f)
+#endif
+
+static void
+print_and_abort ()
+{
+ fputs (_("memory exhausted"), stderr);
+ fputc ('\n', stderr);
+ exit (obstack_exit_failure);
+}
+
#if 0
/* These are now turned off because the applications do not use it
and it uses bcopy via obstack_grow, which causes trouble on sysV. */
@@ -417,6 +511,13 @@ int (obstack_room) (obstack)
return obstack_room (obstack);
}
+int (obstack_make_room) (obstack, length)
+ struct obstack *obstack;
+ int length;
+{
+ return obstack_make_room (obstack, length);
+}
+
void (obstack_grow) (obstack, pointer, length)
struct obstack *obstack;
POINTER pointer;
diff --git a/lib/obstack.h b/lib/obstack.h
index 5dd88815..4d49ce02 100644
--- a/lib/obstack.h
+++ b/lib/obstack.h
@@ -1,19 +1,23 @@
/* obstack.h - object stack macros
- Copyright (C) 1988,89,90,91,92,93,94,96 Free Software Foundation, Inc.
+ Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99 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 file is part of the GNU C Library. Its master source is NOT part of
+ the C library, however. The master source lives in /gd/gnu/lib.
-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.
+ The GNU C Library 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 of the
+ License, or (at your option) any later version.
-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 GNU C Library 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 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. */
/* Summary:
@@ -100,57 +104,51 @@ Summary:
/* Don't do the contents of this file more than once. */
-#ifndef __OBSTACK_H__
-#define __OBSTACK_H__
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
+#ifndef _OBSTACK_H
+#define _OBSTACK_H 1
-#if !defined (HAVE_BCOPY) && defined (HAVE_MEMCPY) && !defined (bcopy)
-# define bcopy(from, to, len) memcpy ((to), (from), (len))
+#ifdef __cplusplus
+extern "C" {
#endif
-
-/* We use subtraction of (char *)0 instead of casting to int
+/* We use subtraction of (char *) 0 instead of casting to int
because on word-addressable machines a simple cast to int
may ignore the byte-within-word field of the pointer. */
#ifndef __PTR_TO_INT
-#define __PTR_TO_INT(P) ((P) - (char *)0)
+# define __PTR_TO_INT(P) ((P) - (char *) 0)
#endif
#ifndef __INT_TO_PTR
-#define __INT_TO_PTR(P) ((P) + (char *)0)
-#endif
-
-/* We need the type of the resulting object. In ANSI C it is ptrdiff_t
- but in traditional C it is usually long. If we are in ANSI C and
- don't already have ptrdiff_t get it. */
-
-#if defined (__STDC__) && __STDC__ && ! defined (offsetof)
-#if defined (__GNUC__) && defined (IN_GCC)
-/* On Next machine, the system's stddef.h screws up if included
- after we have defined just ptrdiff_t, so include all of stddef.h.
- Otherwise, define just ptrdiff_t, which is all we need. */
-#ifndef __NeXT__
-#define __need_ptrdiff_t
-#endif
-#endif
-
-#include <stddef.h>
+# define __INT_TO_PTR(P) ((P) + (char *) 0)
#endif
-#include <sys/types.h>
+/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is
+ defined, as with GNU C, use that; that way we don't pollute the
+ namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is
+ available, include it and use ptrdiff_t. In traditional C, long is
+ the best that we can do. */
-#ifndef HAVE_PTRDIFF_T
-# define ptrdiff_t off_t
+#ifdef __PTRDIFF_TYPE__
+# define PTR_INT_TYPE __PTRDIFF_TYPE__
+#else
+# ifdef HAVE_STDDEF_H
+# include <stddef.h>
+# define PTR_INT_TYPE ptrdiff_t
+# else
+# define PTR_INT_TYPE long
+# endif
#endif
-#if defined (__STDC__) && __STDC__
-#define PTR_INT_TYPE ptrdiff_t
+#if defined _LIBC || defined HAVE_STRING_H
+# include <string.h>
+# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
#else
-#define PTR_INT_TYPE long
+# ifdef memcpy
+# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
+# else
+# define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
+# endif
#endif
struct _obstack_chunk /* Lives at front of each chunk. */
@@ -163,19 +161,19 @@ struct _obstack_chunk /* Lives at front of each chunk. */
struct obstack /* control current object in current chunk */
{
long chunk_size; /* preferred size to allocate chunks in */
- struct _obstack_chunk* chunk; /* address of current struct obstack_chunk */
+ struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */
char *object_base; /* address of object we are building */
char *next_free; /* where to add next char to current object */
char *chunk_limit; /* address of char after current chunk */
PTR_INT_TYPE temp; /* Temporary for some macros. */
int alignment_mask; /* Mask of alignment for each object. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
/* These prototypes vary based on `use_extra_arg', and we use
casts to the prototypeless function type in all assignments,
but having prototypes here quiets -Wstrict-prototypes. */
struct _obstack_chunk *(*chunkfun) (void *, long);
void (*freefun) (void *, struct _obstack_chunk *);
- void *extra_arg; /* first arg for chunk alloc/dealloc funcs */
+ void *extra_arg; /* first arg for chunk alloc/dealloc funcs */
#else
struct _obstack_chunk *(*chunkfun) (); /* User's fcn to allocate a chunk. */
void (*freefun) (); /* User's function to free a chunk. */
@@ -186,12 +184,14 @@ struct obstack /* control current object in current chunk */
chunk contains a zero-length object. This
prevents freeing the chunk if we allocate
a bigger chunk to replace it. */
- unsigned alloc_failed:1; /* chunk alloc func returned 0 */
+ unsigned alloc_failed:1; /* No longer used, as we now call the failed
+ handler on error, but retained for binary
+ compatibility. */
};
/* Declare the external functions we use; they are in obstack.c. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
extern void _obstack_newchunk (struct obstack *, int);
extern void _obstack_free (struct obstack *, void *);
extern int _obstack_begin (struct obstack *, int, int,
@@ -199,14 +199,16 @@ extern int _obstack_begin (struct obstack *, int, int,
extern int _obstack_begin_1 (struct obstack *, int, int,
void *(*) (void *, long),
void (*) (void *, void *), void *);
+extern int _obstack_memory_used (struct obstack *);
#else
extern void _obstack_newchunk ();
extern void _obstack_free ();
extern int _obstack_begin ();
extern int _obstack_begin_1 ();
+extern int _obstack_memory_used ();
#endif
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
/* Do the function-declarations after the structs
but before defining the macros. */
@@ -234,6 +236,7 @@ void * obstack_finish (struct obstack *obstack);
int obstack_object_size (struct obstack *obstack);
int obstack_room (struct obstack *obstack);
+void obstack_make_room (struct obstack *obstack, int size);
void obstack_1grow_fast (struct obstack *obstack, int data_char);
void obstack_ptr_grow_fast (struct obstack *obstack, void *data);
void obstack_int_grow_fast (struct obstack *obstack, int data);
@@ -243,17 +246,31 @@ void * obstack_base (struct obstack *obstack);
void * obstack_next_free (struct obstack *obstack);
int obstack_alignment_mask (struct obstack *obstack);
int obstack_chunk_size (struct obstack *obstack);
+int obstack_memory_used (struct obstack *obstack);
#endif /* __STDC__ */
/* Non-ANSI C cannot really support alternative functions for these macros,
so we do not declare them. */
+
+/* Error handler called when `obstack_chunk_alloc' failed to allocate
+ more memory. This can be set to a user defined function which
+ should either abort gracefully or use longjump - but shouldn't
+ return. The default action is to print a message and abort. */
+#if defined __STDC__ && __STDC__
+extern void (*obstack_alloc_failed_handler) (void);
+#else
+extern void (*obstack_alloc_failed_handler) ();
+#endif
+
+/* Exit value used when `print_and_abort' is used. */
+extern int obstack_exit_failure;
/* Pointer to beginning of object being allocated or to be allocated next.
Note that this might not be the final address of the object
because a new chunk might be needed to hold the final size. */
-#define obstack_base(h) ((h)->alloc_failed ? 0 : (h)->object_base)
+#define obstack_base(h) ((h)->object_base)
/* Size for allocating ordinary chunks. */
@@ -261,7 +278,7 @@ int obstack_chunk_size (struct obstack *obstack);
/* Pointer to next byte not yet allocated in current chunk. */
-#define obstack_next_free(h) ((h)->alloc_failed ? 0 : (h)->next_free)
+#define obstack_next_free(h) ((h)->next_free)
/* Mask specifying low bits that should be clear in address of an object. */
@@ -269,52 +286,53 @@ int obstack_chunk_size (struct obstack *obstack);
/* To prevent prototype warnings provide complete argument list in
standard C version. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
-#define obstack_init(h) \
+# define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
- (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
+ (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
-#define obstack_begin(h, size) \
+# define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
- (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
+ (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
-#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
+# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
- (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun))
+ (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun))
-#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
+# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
- (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun), (arg))
+ (void *(*) (void *, long)) (chunkfun), \
+ (void (*) (void *, void *)) (freefun), (arg))
-#define obstack_chunkfun(h, newchunkfun) \
- ((h) -> chunkfun = (struct _obstack_chunk *(*)(long)) (newchunkfun))
+# define obstack_chunkfun(h, newchunkfun) \
+ ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
-#define obstack_freefun(h, newfreefun) \
- ((h) -> freefun = (void (*)(void *)) (newfreefun))
+# define obstack_freefun(h, newfreefun) \
+ ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
#else
-#define obstack_init(h) \
+# define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free)
-#define obstack_begin(h, size) \
+# define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free)
-#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
+# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), (void (*) ()) (freefun))
-#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
+# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), (void (*) ()) (freefun), (arg))
-#define obstack_chunkfun(h, newchunkfun) \
+# define obstack_chunkfun(h, newchunkfun) \
((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun))
-#define obstack_freefun(h, newfreefun) \
+# define obstack_freefun(h, newfreefun) \
((h) -> freefun = (void (*)()) (newfreefun))
#endif
@@ -322,115 +340,119 @@ int obstack_chunk_size (struct obstack *obstack);
#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
#define obstack_blank_fast(h,n) ((h)->next_free += (n))
+
+#define obstack_memory_used(h) _obstack_memory_used (h)
-#if defined (__GNUC__) && defined (__STDC__) && __STDC__
+#if defined __GNUC__ && defined __STDC__ && __STDC__
/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
does not implement __extension__. But that compiler doesn't define
__GNUC_MINOR__. */
-#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
-#define __extension__
-#endif
+# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
+# define __extension__
+# endif
/* For GNU C, if not -traditional,
we can define these macros to compute all args only once
without using a global variable.
Also, we can avoid using the `temp' slot, to make faster code. */
-#define obstack_object_size(OBSTACK) \
+# define obstack_object_size(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
- __o->alloc_failed ? 0 : \
(unsigned) (__o->next_free - __o->object_base); })
-#define obstack_room(OBSTACK) \
+# define obstack_room(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
(unsigned) (__o->chunk_limit - __o->next_free); })
-#define obstack_grow(OBSTACK,where,length) \
+# define obstack_make_room(OBSTACK,length) \
+__extension__ \
+({ struct obstack *__o = (OBSTACK); \
+ int __len = (length); \
+ if (__o->chunk_limit - __o->next_free < __len) \
+ _obstack_newchunk (__o, __len); \
+ (void) 0; })
+
+# define obstack_empty_p(OBSTACK) \
+ __extension__ \
+ ({ struct obstack *__o = (OBSTACK); \
+ (__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
+
+# define obstack_grow(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->next_free + __len > __o->chunk_limit) \
_obstack_newchunk (__o, __len); \
- if (!__o->alloc_failed) \
- { \
- bcopy ((char *) (where), __o->next_free, __len); \
- __o->next_free += __len; \
- } \
+ _obstack_memcpy (__o->next_free, (char *) (where), __len); \
+ __o->next_free += __len; \
(void) 0; })
-#define obstack_grow0(OBSTACK,where,length) \
+# define obstack_grow0(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->next_free + __len + 1 > __o->chunk_limit) \
_obstack_newchunk (__o, __len + 1); \
- if (!__o->alloc_failed) \
- { \
- bcopy ((char *) (where), __o->next_free, __len); \
- __o->next_free += __len; \
- *(__o->next_free)++ = 0; \
- } \
+ _obstack_memcpy (__o->next_free, (char *) (where), __len); \
+ __o->next_free += __len; \
+ *(__o->next_free)++ = 0; \
(void) 0; })
-#define obstack_1grow(OBSTACK,datum) \
+# define obstack_1grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + 1 > __o->chunk_limit) \
_obstack_newchunk (__o, 1); \
- if (!__o->alloc_failed) \
- *(__o->next_free)++ = (datum); \
+ *(__o->next_free)++ = (datum); \
(void) 0; })
/* These assume that the obstack alignment is good enough for pointers or ints,
and that the data added so far to the current object
shares that much alignment. */
-#define obstack_ptr_grow(OBSTACK,datum) \
+# define obstack_ptr_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (void *)); \
- if (!__o->alloc_failed) \
- *((void **)__o->next_free)++ = ((void *)datum); \
+ *((void **)__o->next_free)++ = ((void *)datum); \
(void) 0; })
-#define obstack_int_grow(OBSTACK,datum) \
+# define obstack_int_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (int) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (int)); \
- if (!__o->alloc_failed) \
- *((int *)__o->next_free)++ = ((int)datum); \
+ *((int *)__o->next_free)++ = ((int)datum); \
(void) 0; })
-#define obstack_ptr_grow_fast(h,aptr) (*((void **)(h)->next_free)++ = (void *)aptr)
-#define obstack_int_grow_fast(h,aint) (*((int *)(h)->next_free)++ = (int)aint)
+# define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
+# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
-#define obstack_blank(OBSTACK,length) \
+# define obstack_blank(OBSTACK,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->chunk_limit - __o->next_free < __len) \
_obstack_newchunk (__o, __len); \
- if (!__o->alloc_failed) \
- __o->next_free += __len; \
+ __o->next_free += __len; \
(void) 0; })
-#define obstack_alloc(OBSTACK,length) \
+# define obstack_alloc(OBSTACK,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_blank (__h, (length)); \
obstack_finish (__h); })
-#define obstack_copy(OBSTACK,where,length) \
+# define obstack_copy(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_grow (__h, (where), (length)); \
obstack_finish (__h); })
-#define obstack_copy0(OBSTACK,where,length) \
+# define obstack_copy0(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_grow0 (__h, (where), (length)); \
@@ -438,134 +460,134 @@ __extension__ \
/* The local variable is named __o1 to avoid a name conflict
when obstack_blank is called. */
-#define obstack_finish(OBSTACK) \
+# define obstack_finish(OBSTACK) \
__extension__ \
({ struct obstack *__o1 = (OBSTACK); \
void *value; \
- if (__o1->alloc_failed) \
- value = 0; \
- else \
- { \
- value = (void *) __o1->object_base; \
- if (__o1->next_free == value) \
- __o1->maybe_empty_object = 1; \
- __o1->next_free \
- = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
- & ~ (__o1->alignment_mask)); \
- if (__o1->next_free - (char *)__o1->chunk \
- > __o1->chunk_limit - (char *)__o1->chunk) \
- __o1->next_free = __o1->chunk_limit; \
- __o1->object_base = __o1->next_free; \
- } \
+ value = (void *) __o1->object_base; \
+ if (__o1->next_free == value) \
+ __o1->maybe_empty_object = 1; \
+ __o1->next_free \
+ = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
+ & ~ (__o1->alignment_mask)); \
+ if (__o1->next_free - (char *)__o1->chunk \
+ > __o1->chunk_limit - (char *)__o1->chunk) \
+ __o1->next_free = __o1->chunk_limit; \
+ __o1->object_base = __o1->next_free; \
value; })
-#define obstack_free(OBSTACK, OBJ) \
+# define obstack_free(OBSTACK, OBJ) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
void *__obj = (OBJ); \
if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \
- __o->next_free = __o->object_base = __obj; \
+ __o->next_free = __o->object_base = (char *)__obj; \
else (obstack_free) (__o, __obj); })
#else /* not __GNUC__ or not __STDC__ */
-#define obstack_object_size(h) \
- (unsigned) ((h)->alloc_failed ? 0 : (h)->next_free - (h)->object_base)
+# define obstack_object_size(h) \
+ (unsigned) ((h)->next_free - (h)->object_base)
-#define obstack_room(h) \
+# define obstack_room(h) \
(unsigned) ((h)->chunk_limit - (h)->next_free)
+# define obstack_empty_p(h) \
+ ((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
+
/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
so that we can avoid having void expressions
in the arms of the conditional expression.
Casting the third operand to void was tried before,
but some compilers won't accept it. */
-#define obstack_grow(h,where,length) \
+# define obstack_make_room(h,length) \
+( (h)->temp = (length), \
+ (((h)->next_free + (h)->temp > (h)->chunk_limit) \
+ ? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
+
+# define obstack_grow(h,where,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (bcopy ((char *) (where), (h)->next_free, (h)->temp), \
- (h)->next_free += (h)->temp)))
+ _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \
+ (h)->next_free += (h)->temp)
-#define obstack_grow0(h,where,length) \
+# define obstack_grow0(h,where,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (bcopy ((char *) (where), (h)->next_free, (h)->temp), \
+ _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \
(h)->next_free += (h)->temp, \
- *((h)->next_free)++ = 0)))
+ *((h)->next_free)++ = 0)
-#define obstack_1grow(h,datum) \
+# define obstack_1grow(h,datum) \
( (((h)->next_free + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), 1), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (*((h)->next_free)++ = (datum))))
+ (*((h)->next_free)++ = (datum)))
-#define obstack_ptr_grow(h,datum) \
+# define obstack_ptr_grow(h,datum) \
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (*((char **)(((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *)datum))))
+ (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))
-#define obstack_int_grow(h,datum) \
+# define obstack_int_grow(h,datum) \
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (*((int *)(((h)->next_free+=sizeof(int))-sizeof(int))) = ((int)datum))))
+ (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))
-#define obstack_ptr_grow_fast(h,aptr) (*((char **)(h)->next_free)++ = (char *)aptr)
-#define obstack_int_grow_fast(h,aint) (*((int *)(h)->next_free)++ = (int)aint)
+# define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
+# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
-#define obstack_blank(h,length) \
+# define obstack_blank(h,length) \
( (h)->temp = (length), \
(((h)->chunk_limit - (h)->next_free < (h)->temp) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- ((h)->next_free += (h)->temp)))
+ ((h)->next_free += (h)->temp))
-#define obstack_alloc(h,length) \
+# define obstack_alloc(h,length) \
(obstack_blank ((h), (length)), obstack_finish ((h)))
-#define obstack_copy(h,where,length) \
+# define obstack_copy(h,where,length) \
(obstack_grow ((h), (where), (length)), obstack_finish ((h)))
-#define obstack_copy0(h,where,length) \
+# define obstack_copy0(h,where,length) \
(obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
-#define obstack_finish(h) \
-( (h)->alloc_failed ? 0 : \
- (((h)->next_free == (h)->object_base \
+# define obstack_finish(h) \
+( ((h)->next_free == (h)->object_base \
? (((h)->maybe_empty_object = 1), 0) \
: 0), \
(h)->temp = __PTR_TO_INT ((h)->object_base), \
(h)->next_free \
= __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \
& ~ ((h)->alignment_mask)), \
- (((h)->next_free - (char *)(h)->chunk \
- > (h)->chunk_limit - (char *)(h)->chunk) \
+ (((h)->next_free - (char *) (h)->chunk \
+ > (h)->chunk_limit - (char *) (h)->chunk) \
? ((h)->next_free = (h)->chunk_limit) : 0), \
(h)->object_base = (h)->next_free, \
- __INT_TO_PTR ((h)->temp)))
+ __INT_TO_PTR ((h)->temp))
-#if defined (__STDC__) && __STDC__
-#define obstack_free(h,obj) \
-( (h)->temp = (char *)(obj) - (char *) (h)->chunk, \
+# if defined __STDC__ && __STDC__
+# define obstack_free(h,obj) \
+( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
? (int) ((h)->next_free = (h)->object_base \
= (h)->temp + (char *) (h)->chunk) \
: (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
-#else
-#define obstack_free(h,obj) \
-( (h)->temp = (char *)(obj) - (char *) (h)->chunk, \
+# else
+# define obstack_free(h,obj) \
+( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
? (int) ((h)->next_free = (h)->object_base \
= (h)->temp + (char *) (h)->chunk) \
: (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0)))
-#endif
+# endif
#endif /* not __GNUC__ or not __STDC__ */
-#endif /* not __OBSTACK_H__ */
+#ifdef __cplusplus
+} /* C++ */
+#endif
+
+#endif /* obstack.h */
diff --git a/lib/regex.c b/lib/regex.c
index bd91ea15..5f52deb0 100644
--- a/lib/regex.c
+++ b/lib/regex.c
@@ -1,27 +1,26 @@
/* Extended regular expression matching and search library,
version 0.12.
- (Implements POSIX draft P10003.2/D11.2, except for
+ (Implements POSIX draft P1003.2/D11.2, except for some of the
internationalization features.)
+ Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
- Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+ The GNU C Library 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 of the
+ License, or (at your option) any later version.
- 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,
+ The GNU C Library 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.
+ 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 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. */
+ 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. */
/* AIX requires this to be the first thing in the file. */
-#if defined (_AIX) && !defined (REGEX_MALLOC)
+#if defined _AIX && !defined REGEX_MALLOC
#pragma alloca
#endif
@@ -29,18 +28,61 @@
#define _GNU_SOURCE
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
-#if defined(STDC_HEADERS) && !defined(emacs)
-#include <stddef.h>
+#ifndef PARAMS
+# if defined __GNUC__ || (defined __STDC__ && __STDC__)
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif /* GCC. */
+#endif /* Not PARAMS. */
+
+#if defined STDC_HEADERS && !defined emacs
+# include <stddef.h>
#else
/* We need this for `regex.h', and perhaps for the Emacs include files. */
-#include <sys/types.h>
+# include <sys/types.h>
+#endif
+
+#define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
+
+/* For platform which support the ISO C amendement 1 functionality we
+ support user defined character classes. */
+#if defined _LIBC || WIDE_CHAR_SUPPORT
+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
+# include <wchar.h>
+# include <wctype.h>
+#endif
+
+#ifdef _LIBC
+/* We have to keep the namespace clean. */
+# define regfree(preg) __regfree (preg)
+# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef)
+# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags)
+# define regerror(errcode, preg, errbuf, errbuf_size) \
+ __regerror(errcode, preg, errbuf, errbuf_size)
+# define re_set_registers(bu, re, nu, st, en) \
+ __re_set_registers (bu, re, nu, st, en)
+# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \
+ __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
+# define re_match(bufp, string, size, pos, regs) \
+ __re_match (bufp, string, size, pos, regs)
+# define re_search(bufp, string, size, startpos, range, regs) \
+ __re_search (bufp, string, size, startpos, range, regs)
+# define re_compile_pattern(pattern, length, bufp) \
+ __re_compile_pattern (pattern, length, bufp)
+# define re_set_syntax(syntax) __re_set_syntax (syntax)
+# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \
+ __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop)
+# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
+
+#define btowc __btowc
#endif
/* This is for other GNU distributions with internationalized messages. */
-#if HAVE_LIBINTL_H || defined (_LIBC)
+#if HAVE_LIBINTL_H || defined _LIBC
# include <libintl.h>
#else
# define gettext(msgid) (msgid)
@@ -49,83 +91,87 @@
#ifndef gettext_noop
/* This define is so xgettext can find the internationalizable
strings. */
-#define gettext_noop(String) String
+# define gettext_noop(String) String
#endif
/* The `emacs' switch turns on certain matching commands
that make sense only in Emacs. */
#ifdef emacs
-#include "lisp.h"
-#include "buffer.h"
-#include "syntax.h"
+# include "lisp.h"
+# include "buffer.h"
+# include "syntax.h"
#else /* not emacs */
/* If we are not linking with Emacs proper,
we can't use the relocating allocator
even if config.h says that we can. */
-#undef REL_ALLOC
+# undef REL_ALLOC
-#if defined (STDC_HEADERS) || defined (_LIBC)
-#include <stdlib.h>
-#else
+# if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+# else
char *malloc ();
char *realloc ();
-#endif
+# endif
/* When used in Emacs's lib-src, we need to get bzero and bcopy somehow.
If nothing else has been done, use the method below. */
-#ifdef INHIBIT_STRING_HEADER
-#if !(defined (HAVE_BZERO) && defined (HAVE_BCOPY))
-#if !defined (bzero) && !defined (bcopy)
-#undef INHIBIT_STRING_HEADER
-#endif
-#endif
-#endif
+# ifdef INHIBIT_STRING_HEADER
+# if !(defined HAVE_BZERO && defined HAVE_BCOPY)
+# if !defined bzero && !defined bcopy
+# undef INHIBIT_STRING_HEADER
+# endif
+# endif
+# endif
/* This is the normal way of making sure we have a bcopy and a bzero.
This is used in most programs--a few other programs avoid this
by defining INHIBIT_STRING_HEADER. */
-#ifndef INHIBIT_STRING_HEADER
-#if defined (HAVE_STRING_H) || defined (STDC_HEADERS) || defined (_LIBC)
-#include <string.h>
-#ifndef bcmp
-#define bcmp(s1, s2, n) memcmp ((s1), (s2), (n))
-#endif
-#ifndef bcopy
-#define bcopy(s, d, n) memcpy ((d), (s), (n))
-#endif
-#ifndef bzero
-#define bzero(s, n) memset ((s), 0, (n))
-#endif
-#else
-#include <strings.h>
-#endif
-#endif
+# ifndef INHIBIT_STRING_HEADER
+# if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC
+# include <string.h>
+# ifndef bzero
+# ifndef _LIBC
+# define bzero(s, n) (memset (s, '\0', n), (s))
+# else
+# define bzero(s, n) __bzero (s, n)
+# endif
+# endif
+# else
+# include <strings.h>
+# ifndef memcmp
+# define memcmp(s1, s2, n) bcmp (s1, s2, n)
+# endif
+# ifndef memcpy
+# define memcpy(d, s, n) (bcopy (s, d, n), (d))
+# endif
+# endif
+# endif
/* Define the syntax stuff for \<, \>, etc. */
/* This must be nonzero for the wordchar and notwordchar pattern
commands in re_match_2. */
-#ifndef Sword
-#define Sword 1
-#endif
+# ifndef Sword
+# define Sword 1
+# endif
-#ifdef SWITCH_ENUM_BUG
-#define SWITCH_ENUM_CAST(x) ((int)(x))
-#else
-#define SWITCH_ENUM_CAST(x) (x)
-#endif
+# ifdef SWITCH_ENUM_BUG
+# define SWITCH_ENUM_CAST(x) ((int)(x))
+# else
+# define SWITCH_ENUM_CAST(x) (x)
+# endif
-#ifdef SYNTAX_TABLE
+/* How many characters in the character set. */
+# define CHAR_SET_SIZE 256
-extern char *re_syntax_table;
+# ifdef SYNTAX_TABLE
-#else /* not SYNTAX_TABLE */
+extern char *re_syntax_table;
-/* How many characters in the character set. */
-#define CHAR_SET_SIZE 256
+# else /* not SYNTAX_TABLE */
static char re_syntax_table[CHAR_SET_SIZE];
@@ -133,7 +179,7 @@ static void
init_syntax_once ()
{
register int c;
- static int done = 0;
+ static int done;
if (done)
return;
@@ -154,14 +200,14 @@ init_syntax_once ()
done = 1;
}
-#endif /* not SYNTAX_TABLE */
+# endif /* not SYNTAX_TABLE */
-#define SYNTAX(c) re_syntax_table[c]
+# define SYNTAX(c) re_syntax_table[c]
#endif /* not emacs */
/* Get the interface, including the syntax bits. */
-#include "regex.h"
+#include <regex.h>
/* isalpha etc. are used for the character classes. */
#include <ctype.h>
@@ -175,25 +221,28 @@ init_syntax_once ()
STDC_HEADERS is defined, then autoconf has verified that the ctype
macros don't need to be guarded with references to isascii. ...
Defining isascii to 1 should let any compiler worth its salt
- eliminate the && through constant folding." */
+ eliminate the && through constant folding."
+ Solaris defines some of these symbols so we must undefine them first. */
-#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
-#define ISASCII(c) 1
+#undef ISASCII
+#if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
+# define ISASCII(c) 1
#else
-#define ISASCII(c) isascii(c)
+# define ISASCII(c) isascii(c)
#endif
#ifdef isblank
-#define ISBLANK(c) (ISASCII (c) && isblank (c))
+# define ISBLANK(c) (ISASCII (c) && isblank (c))
#else
-#define ISBLANK(c) ((c) == ' ' || (c) == '\t')
+# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
#endif
#ifdef isgraph
-#define ISGRAPH(c) (ISASCII (c) && isgraph (c))
+# define ISGRAPH(c) (ISASCII (c) && isgraph (c))
#else
-#define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
+# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
#endif
+#undef ISPRINT
#define ISPRINT(c) (ISASCII (c) && isprint (c))
#define ISDIGIT(c) (ISASCII (c) && isdigit (c))
#define ISALNUM(c) (ISASCII (c) && isalnum (c))
@@ -205,8 +254,14 @@ init_syntax_once ()
#define ISUPPER(c) (ISASCII (c) && isupper (c))
#define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
+#ifdef _tolower
+# define TOLOWER(c) _tolower(c)
+#else
+# define TOLOWER(c) tolower(c)
+#endif
+
#ifndef NULL
-#define NULL (void *)0
+# define NULL (void *)0
#endif
/* We remove any previous definition of `SIGN_EXTEND_CHAR',
@@ -215,10 +270,10 @@ init_syntax_once ()
(Per Bothner suggested the basic approach.) */
#undef SIGN_EXTEND_CHAR
#if __STDC__
-#define SIGN_EXTEND_CHAR(c) ((signed char) (c))
+# define SIGN_EXTEND_CHAR(c) ((signed char) (c))
#else /* not __STDC__ */
/* As in Harbison and Steele. */
-#define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128)
+# define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128)
#endif
/* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we
@@ -233,74 +288,67 @@ init_syntax_once ()
#ifdef REGEX_MALLOC
-#define REGEX_ALLOCATE malloc
-#define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize)
-#define REGEX_FREE free
+# define REGEX_ALLOCATE malloc
+# define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize)
+# define REGEX_FREE free
#else /* not REGEX_MALLOC */
/* Emacs already defines alloca, sometimes. */
-#ifndef alloca
+# ifndef alloca
/* Make alloca work the best possible way. */
-#ifdef __GNUC__
-#define alloca __builtin_alloca
-#else /* not __GNUC__ */
-#if HAVE_ALLOCA_H
-#include <alloca.h>
-#else /* not __GNUC__ or HAVE_ALLOCA_H */
-#if 0 /* It is a bad idea to declare alloca. We always cast the result. */
-#ifndef _AIX /* Already did AIX, up at the top. */
-char *alloca ();
-#endif /* not _AIX */
-#endif
-#endif /* not HAVE_ALLOCA_H */
-#endif /* not __GNUC__ */
+# ifdef __GNUC__
+# define alloca __builtin_alloca
+# else /* not __GNUC__ */
+# if HAVE_ALLOCA_H
+# include <alloca.h>
+# endif /* HAVE_ALLOCA_H */
+# endif /* not __GNUC__ */
-#endif /* not alloca */
+# endif /* not alloca */
-#define REGEX_ALLOCATE alloca
+# define REGEX_ALLOCATE alloca
/* Assumes a `char *destination' variable. */
-#define REGEX_REALLOCATE(source, osize, nsize) \
+# define REGEX_REALLOCATE(source, osize, nsize) \
(destination = (char *) alloca (nsize), \
- bcopy (source, destination, osize), \
- destination)
+ memcpy (destination, source, osize))
/* No need to do anything to free, after alloca. */
-#define REGEX_FREE(arg) ((void)0) /* Do nothing! But inhibit gcc warning. */
+# define REGEX_FREE(arg) ((void)0) /* Do nothing! But inhibit gcc warning. */
#endif /* not REGEX_MALLOC */
/* Define how to allocate the failure stack. */
-#if defined (REL_ALLOC) && defined (REGEX_MALLOC)
+#if defined REL_ALLOC && defined REGEX_MALLOC
-#define REGEX_ALLOCATE_STACK(size) \
+# define REGEX_ALLOCATE_STACK(size) \
r_alloc (&failure_stack_ptr, (size))
-#define REGEX_REALLOCATE_STACK(source, osize, nsize) \
+# define REGEX_REALLOCATE_STACK(source, osize, nsize) \
r_re_alloc (&failure_stack_ptr, (nsize))
-#define REGEX_FREE_STACK(ptr) \
+# define REGEX_FREE_STACK(ptr) \
r_alloc_free (&failure_stack_ptr)
#else /* not using relocating allocator */
-#ifdef REGEX_MALLOC
+# ifdef REGEX_MALLOC
-#define REGEX_ALLOCATE_STACK malloc
-#define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize)
-#define REGEX_FREE_STACK free
+# define REGEX_ALLOCATE_STACK malloc
+# define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize)
+# define REGEX_FREE_STACK free
-#else /* not REGEX_MALLOC */
+# else /* not REGEX_MALLOC */
-#define REGEX_ALLOCATE_STACK alloca
+# define REGEX_ALLOCATE_STACK alloca
-#define REGEX_REALLOCATE_STACK(source, osize, nsize) \
+# define REGEX_REALLOCATE_STACK(source, osize, nsize) \
REGEX_REALLOCATE (source, osize, nsize)
/* No need to explicitly free anything. */
-#define REGEX_FREE_STACK(arg)
+# define REGEX_FREE_STACK(arg)
-#endif /* not REGEX_MALLOC */
+# endif /* not REGEX_MALLOC */
#endif /* not using relocating allocator */
@@ -330,7 +378,12 @@ typedef char boolean;
#define false 0
#define true 1
-static int re_match_2_internal ();
+static int re_match_2_internal PARAMS ((struct re_pattern_buffer *bufp,
+ const char *string1, int size1,
+ const char *string2, int size2,
+ int pos,
+ struct re_registers *regs,
+ int stop));
/* These are the command codes that appear in compiled regular
expressions. Some opcodes are followed by argument bytes. A
@@ -501,7 +554,7 @@ typedef enum
} while (0)
#ifdef DEBUG
-static void extract_number _RE_ARGS((int *dest, unsigned char *source));
+static void extract_number _RE_ARGS ((int *dest, unsigned char *source));
static void
extract_number (dest, source)
int *dest;
@@ -512,10 +565,10 @@ extract_number (dest, source)
*dest += temp << 8;
}
-#ifndef EXTRACT_MACROS /* To debug the macros. */
-#undef EXTRACT_NUMBER
-#define EXTRACT_NUMBER(dest, src) extract_number (&dest, src)
-#endif /* not EXTRACT_MACROS */
+# ifndef EXTRACT_MACROS /* To debug the macros. */
+# undef EXTRACT_NUMBER
+# define EXTRACT_NUMBER(dest, src) extract_number (&dest, src)
+# endif /* not EXTRACT_MACROS */
#endif /* DEBUG */
@@ -529,8 +582,8 @@ extract_number (dest, source)
} while (0)
#ifdef DEBUG
-static void extract_number_and_incr _RE_ARGS((int *destination,
- unsigned char **source));
+static void extract_number_and_incr _RE_ARGS ((int *destination,
+ unsigned char **source));
static void
extract_number_and_incr (destination, source)
int *destination;
@@ -540,11 +593,11 @@ extract_number_and_incr (destination, source)
*source += 2;
}
-#ifndef EXTRACT_MACROS
-#undef EXTRACT_NUMBER_AND_INCR
-#define EXTRACT_NUMBER_AND_INCR(dest, src) \
+# ifndef EXTRACT_MACROS
+# undef EXTRACT_NUMBER_AND_INCR
+# define EXTRACT_NUMBER_AND_INCR(dest, src) \
extract_number_and_incr (&dest, &src)
-#endif /* not EXTRACT_MACROS */
+# endif /* not EXTRACT_MACROS */
#endif /* DEBUG */
@@ -557,21 +610,21 @@ extract_number_and_incr (destination, source)
#ifdef DEBUG
/* We use standard I/O for debugging. */
-#include <stdio.h>
+# include <stdio.h>
/* It is useful to test things that ``must'' be true when debugging. */
-#include <assert.h>
+# include <assert.h>
-static int debug = 0;
+static int debug;
-#define DEBUG_STATEMENT(e) e
-#define DEBUG_PRINT1(x) if (debug) printf (x)
-#define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2)
-#define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3)
-#define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4)
-#define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) \
+# define DEBUG_STATEMENT(e) e
+# define DEBUG_PRINT1(x) if (debug) printf (x)
+# define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2)
+# define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3)
+# define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4)
+# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) \
if (debug) print_partial_compiled_pattern (s, e)
-#define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) \
+# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) \
if (debug) print_double_string (w, s1, sz1, s2, sz2)
@@ -615,6 +668,7 @@ print_partial_compiled_pattern (start, end)
unsigned char *end;
{
int mcnt, mcnt2;
+ unsigned char *p1;
unsigned char *p = start;
unsigned char *pend = end;
@@ -756,20 +810,23 @@ print_partial_compiled_pattern (start, end)
case succeed_n:
extract_number_and_incr (&mcnt, &p);
+ p1 = p + mcnt;
extract_number_and_incr (&mcnt2, &p);
- printf ("/succeed_n to %d, %d times", p + mcnt - start, mcnt2);
+ printf ("/succeed_n to %d, %d times", p1 - start, mcnt2);
break;
case jump_n:
extract_number_and_incr (&mcnt, &p);
+ p1 = p + mcnt;
extract_number_and_incr (&mcnt2, &p);
- printf ("/jump_n to %d, %d times", p + mcnt - start, mcnt2);
+ printf ("/jump_n to %d, %d times", p1 - start, mcnt2);
break;
case set_number_at:
extract_number_and_incr (&mcnt, &p);
+ p1 = p + mcnt;
extract_number_and_incr (&mcnt2, &p);
- printf ("/set_number_at location %d to %d", p + mcnt - start, mcnt2);
+ printf ("/set_number_at location %d to %d", p1 - start, mcnt2);
break;
case wordbound:
@@ -787,7 +844,7 @@ print_partial_compiled_pattern (start, end)
case wordend:
printf ("/wordend");
-#ifdef emacs
+# ifdef emacs
case before_dot:
printf ("/before_dot");
break;
@@ -811,7 +868,7 @@ print_partial_compiled_pattern (start, end)
mcnt = *p++;
printf ("/%d", mcnt);
break;
-#endif /* emacs */
+# endif /* emacs */
case wordchar:
printf ("/wordchar");
@@ -847,7 +904,8 @@ print_compiled_pattern (bufp)
unsigned char *buffer = bufp->buffer;
print_partial_compiled_pattern (buffer, buffer + bufp->used);
- printf ("%d bytes used/%d bytes allocated.\n", bufp->used, bufp->allocated);
+ printf ("%ld bytes used/%ld bytes allocated.\n",
+ bufp->used, bufp->allocated);
if (bufp->fastmap_accurate && bufp->fastmap)
{
@@ -862,7 +920,7 @@ print_compiled_pattern (bufp)
printf ("no_sub: %d\t", bufp->no_sub);
printf ("not_bol: %d\t", bufp->not_bol);
printf ("not_eol: %d\t", bufp->not_eol);
- printf ("syntax: %d\n", bufp->syntax);
+ printf ("syntax: %lx\n", bufp->syntax);
/* Perhaps we should print the translate table? */
}
@@ -875,7 +933,7 @@ print_double_string (where, string1, size1, string2, size2)
int size1;
int size2;
{
- unsigned this_char;
+ int this_char;
if (where == NULL)
printf ("(null)");
@@ -896,23 +954,23 @@ print_double_string (where, string1, size1, string2, size2)
void
printchar (c)
- int c;
+ int c;
{
- putc(c, stderr);
+ putc (c, stderr);
}
#else /* not DEBUG */
-#undef assert
-#define assert(e)
+# undef assert
+# define assert(e)
-#define DEBUG_STATEMENT(e)
-#define DEBUG_PRINT1(x)
-#define DEBUG_PRINT2(x1, x2)
-#define DEBUG_PRINT3(x1, x2, x3)
-#define DEBUG_PRINT4(x1, x2, x3, x4)
-#define DEBUG_PRINT_COMPILED_PATTERN(p, s, e)
-#define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)
+# define DEBUG_STATEMENT(e)
+# define DEBUG_PRINT1(x)
+# define DEBUG_PRINT2(x1, x2)
+# define DEBUG_PRINT3(x1, x2, x3)
+# define DEBUG_PRINT4(x1, x2, x3, x4)
+# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e)
+# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)
#endif /* not DEBUG */
@@ -946,31 +1004,88 @@ re_set_syntax (syntax)
#endif /* DEBUG */
return ret;
}
+#ifdef _LIBC
+weak_alias (__re_set_syntax, re_set_syntax)
+#endif
/* This table gives an error message for each of the error codes listed
in regex.h. Obviously the order here has to be same as there.
POSIX doesn't require that we do anything for REG_NOERROR,
but why not be nice? */
-static const char *re_error_msgid[] =
+static const char re_error_msgid[] =
{
- gettext_noop ("Success"), /* REG_NOERROR */
- gettext_noop ("No match"), /* REG_NOMATCH */
- gettext_noop ("Invalid regular expression"), /* REG_BADPAT */
- gettext_noop ("Invalid collation character"), /* REG_ECOLLATE */
- gettext_noop ("Invalid character class name"), /* REG_ECTYPE */
- gettext_noop ("Trailing backslash"), /* REG_EESCAPE */
- gettext_noop ("Invalid back reference"), /* REG_ESUBREG */
- gettext_noop ("Unmatched [ or [^"), /* REG_EBRACK */
- gettext_noop ("Unmatched ( or \\("), /* REG_EPAREN */
- gettext_noop ("Unmatched \\{"), /* REG_EBRACE */
- gettext_noop ("Invalid content of \\{\\}"), /* REG_BADBR */
- gettext_noop ("Invalid range end"), /* REG_ERANGE */
- gettext_noop ("Memory exhausted"), /* REG_ESPACE */
- gettext_noop ("Invalid preceding regular expression"), /* REG_BADRPT */
- gettext_noop ("Premature end of regular expression"), /* REG_EEND */
- gettext_noop ("Regular expression too big"), /* REG_ESIZE */
- gettext_noop ("Unmatched ) or \\)"), /* REG_ERPAREN */
+#define REG_NOERROR_IDX 0
+ gettext_noop ("Success") /* REG_NOERROR */
+ "\0"
+#define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success")
+ gettext_noop ("No match") /* REG_NOMATCH */
+ "\0"
+#define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match")
+ gettext_noop ("Invalid regular expression") /* REG_BADPAT */
+ "\0"
+#define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression")
+ gettext_noop ("Invalid collation character") /* REG_ECOLLATE */
+ "\0"
+#define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character")
+ gettext_noop ("Invalid character class name") /* REG_ECTYPE */
+ "\0"
+#define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name")
+ gettext_noop ("Trailing backslash") /* REG_EESCAPE */
+ "\0"
+#define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash")
+ gettext_noop ("Invalid back reference") /* REG_ESUBREG */
+ "\0"
+#define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference")
+ gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */
+ "\0"
+#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
+ gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
+ "\0"
+#define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
+ gettext_noop ("Unmatched \\{") /* REG_EBRACE */
+ "\0"
+#define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{")
+ gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */
+ "\0"
+#define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}")
+ gettext_noop ("Invalid range end") /* REG_ERANGE */
+ "\0"
+#define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end")
+ gettext_noop ("Memory exhausted") /* REG_ESPACE */
+ "\0"
+#define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted")
+ gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */
+ "\0"
+#define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression")
+ gettext_noop ("Premature end of regular expression") /* REG_EEND */
+ "\0"
+#define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression")
+ gettext_noop ("Regular expression too big") /* REG_ESIZE */
+ "\0"
+#define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big")
+ gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
+ };
+
+static const size_t re_error_msgid_idx[] =
+ {
+ REG_NOERROR_IDX,
+ REG_NOMATCH_IDX,
+ REG_BADPAT_IDX,
+ REG_ECOLLATE_IDX,
+ REG_ECTYPE_IDX,
+ REG_EESCAPE_IDX,
+ REG_ESUBREG_IDX,
+ REG_EBRACK_IDX,
+ REG_EPAREN_IDX,
+ REG_EBRACE_IDX,
+ REG_BADBR_IDX,
+ REG_ERANGE_IDX,
+ REG_ESPACE_IDX,
+ REG_BADRPT_IDX,
+ REG_EEND_IDX,
+ REG_ESIZE_IDX,
+ REG_ERPAREN_IDX
};
/* Avoiding alloca during matching, to placate r_alloc. */
@@ -998,7 +1113,7 @@ static const char *re_error_msgid[] =
/* When using GNU C, we are not REALLY using the C alloca, no matter
what config.h may say. So don't take precautions for it. */
#ifdef __GNUC__
-#undef C_ALLOCA
+# undef C_ALLOCA
#endif
/* The match routines may not allocate if (1) they would do it with malloc
@@ -1006,8 +1121,8 @@ static const char *re_error_msgid[] =
Note that if REL_ALLOC is defined, matching would not use malloc for the
failure stack, but we would still use it for the register vectors;
so REL_ALLOC should not affect this. */
-#if (defined (C_ALLOCA) || defined (REGEX_MALLOC)) && defined (emacs)
-#undef MATCH_MAY_ALLOCATE
+#if (defined C_ALLOCA || defined REGEX_MALLOC) && defined emacs
+# undef MATCH_MAY_ALLOCATE
#endif
@@ -1020,7 +1135,7 @@ static const char *re_error_msgid[] =
when matching. If this number is exceeded, we allocate more
space, so it is not a hard limit. */
#ifndef INIT_FAILURE_ALLOC
-#define INIT_FAILURE_ALLOC 5
+# define INIT_FAILURE_ALLOC 5
#endif
/* Roughly the maximum number of failure points on the stack. Would be
@@ -1030,18 +1145,18 @@ static const char *re_error_msgid[] =
#ifdef INT_IS_16BIT
-#if defined (MATCH_MAY_ALLOCATE)
+# if defined MATCH_MAY_ALLOCATE
/* 4400 was enough to cause a crash on Alpha OSF/1,
whose default stack limit is 2mb. */
-long re_max_failures = 4000;
-#else
-long re_max_failures = 2000;
-#endif
+long int re_max_failures = 4000;
+# else
+long int re_max_failures = 2000;
+# endif
union fail_stack_elt
{
unsigned char *pointer;
- long integer;
+ long int integer;
};
typedef union fail_stack_elt fail_stack_elt_t;
@@ -1049,19 +1164,19 @@ typedef union fail_stack_elt fail_stack_elt_t;
typedef struct
{
fail_stack_elt_t *stack;
- unsigned long size;
- unsigned long avail; /* Offset of next open position. */
+ unsigned long int size;
+ unsigned long int avail; /* Offset of next open position. */
} fail_stack_type;
#else /* not INT_IS_16BIT */
-#if defined (MATCH_MAY_ALLOCATE)
+# if defined MATCH_MAY_ALLOCATE
/* 4400 was enough to cause a crash on Alpha OSF/1,
whose default stack limit is 2mb. */
int re_max_failures = 20000;
-#else
+# else
int re_max_failures = 2000;
-#endif
+# endif
union fail_stack_elt
{
@@ -1089,10 +1204,10 @@ typedef struct
Do `return -2' if the alloc fails. */
#ifdef MATCH_MAY_ALLOCATE
-#define INIT_FAIL_STACK() \
+# define INIT_FAIL_STACK() \
do { \
fail_stack.stack = (fail_stack_elt_t *) \
- REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t)); \
+ REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t)); \
\
if (fail_stack.stack == NULL) \
return -2; \
@@ -1101,14 +1216,14 @@ typedef struct
fail_stack.avail = 0; \
} while (0)
-#define RESET_FAIL_STACK() REGEX_FREE_STACK (fail_stack.stack)
+# define RESET_FAIL_STACK() REGEX_FREE_STACK (fail_stack.stack)
#else
-#define INIT_FAIL_STACK() \
+# define INIT_FAIL_STACK() \
do { \
fail_stack.avail = 0; \
} while (0)
-#define RESET_FAIL_STACK()
+# define RESET_FAIL_STACK()
#endif
@@ -1169,11 +1284,11 @@ typedef struct
/* Used to omit pushing failure point id's when we're not debugging. */
#ifdef DEBUG
-#define DEBUG_PUSH PUSH_FAILURE_INT
-#define DEBUG_POP(item_addr) (item_addr)->integer = POP_FAILURE_INT ()
+# define DEBUG_PUSH PUSH_FAILURE_INT
+# define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_INT ()
#else
-#define DEBUG_PUSH(item)
-#define DEBUG_POP(item_addr)
+# define DEBUG_PUSH(item)
+# define DEBUG_POP(item_addr)
#endif
@@ -1181,8 +1296,8 @@ typedef struct
if we ever fail back to it.
Requires variables fail_stack, regstart, regend, reg_info, and
- num_regs be declared. DOUBLE_FAIL_STACK requires `destination' be
- declared.
+ num_regs_pushed be declared. DOUBLE_FAIL_STACK requires `destination'
+ be declared.
Does `return FAILURE_CODE' if runs out of memory. */
@@ -1191,10 +1306,10 @@ typedef struct
char *destination; \
/* Must be int, so when we don't save any registers, the arithmetic \
of 0 + -1 isn't done as unsigned. */ \
- /* Can't be int, since there is not a shred of a guarantee that int \
- is wide enough to hold a value of something to which pointer can \
+ /* Can't be int, since there is not a shred of a guarantee that int \
+ is wide enough to hold a value of something to which pointer can \
be assigned */ \
- s_reg_t this_reg; \
+ active_reg_t this_reg; \
\
DEBUG_STATEMENT (failure_id++); \
DEBUG_STATEMENT (nfailure_points_pushed++); \
@@ -1202,7 +1317,7 @@ typedef struct
DEBUG_PRINT2 (" Before push, next avail: %d\n", (fail_stack).avail);\
DEBUG_PRINT2 (" size: %d\n", (fail_stack).size);\
\
- DEBUG_PRINT2 (" slots needed: %d\n", NUM_FAILURE_ITEMS); \
+ DEBUG_PRINT2 (" slots needed: %ld\n", NUM_FAILURE_ITEMS); \
DEBUG_PRINT2 (" available: %d\n", REMAINING_AVAIL_SLOTS); \
\
/* Ensure we have enough space allocated for what we will push. */ \
@@ -1223,16 +1338,17 @@ typedef struct
for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \
this_reg++) \
{ \
- DEBUG_PRINT2 (" Pushing reg: %d\n", this_reg); \
+ DEBUG_PRINT2 (" Pushing reg: %lu\n", this_reg); \
DEBUG_STATEMENT (num_regs_pushed++); \
\
- DEBUG_PRINT2 (" start: 0x%x\n", regstart[this_reg]); \
+ DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \
PUSH_FAILURE_POINTER (regstart[this_reg]); \
\
- DEBUG_PRINT2 (" end: 0x%x\n", regend[this_reg]); \
+ DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \
PUSH_FAILURE_POINTER (regend[this_reg]); \
\
- DEBUG_PRINT2 (" info: 0x%x\n ", reg_info[this_reg]); \
+ DEBUG_PRINT2 (" info: %p\n ", \
+ reg_info[this_reg].word.pointer); \
DEBUG_PRINT2 (" match_null=%d", \
REG_MATCH_NULL_STRING_P (reg_info[this_reg])); \
DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg])); \
@@ -1244,17 +1360,17 @@ typedef struct
PUSH_FAILURE_ELT (reg_info[this_reg].word); \
} \
\
- DEBUG_PRINT2 (" Pushing low active reg: %d\n", lowest_active_reg);\
+ DEBUG_PRINT2 (" Pushing low active reg: %ld\n", lowest_active_reg);\
PUSH_FAILURE_INT (lowest_active_reg); \
\
- DEBUG_PRINT2 (" Pushing high active reg: %d\n", highest_active_reg);\
+ DEBUG_PRINT2 (" Pushing high active reg: %ld\n", highest_active_reg);\
PUSH_FAILURE_INT (highest_active_reg); \
\
- DEBUG_PRINT2 (" Pushing pattern 0x%x: ", pattern_place); \
+ DEBUG_PRINT2 (" Pushing pattern %p:\n", pattern_place); \
DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend); \
PUSH_FAILURE_POINTER (pattern_place); \
\
- DEBUG_PRINT2 (" Pushing string 0x%x: `", string_place); \
+ DEBUG_PRINT2 (" Pushing string %p: `", string_place); \
DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2, \
size2); \
DEBUG_PRINT1 ("'\n"); \
@@ -1270,9 +1386,9 @@ typedef struct
/* Individual items aside from the registers. */
#ifdef DEBUG
-#define NUM_NONREG_ITEMS 5 /* Includes failure point id. */
+# define NUM_NONREG_ITEMS 5 /* Includes failure point id. */
#else
-#define NUM_NONREG_ITEMS 4
+# define NUM_NONREG_ITEMS 4
#endif
/* We push at most this many items on the stack. */
@@ -1306,8 +1422,8 @@ typedef struct
#define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\
{ \
- DEBUG_STATEMENT (fail_stack_elt_t failure_id;) \
- s_reg_t this_reg; \
+ DEBUG_STATEMENT (unsigned failure_id;) \
+ active_reg_t this_reg; \
const unsigned char *string_temp; \
\
assert (!FAIL_STACK_EMPTY ()); \
@@ -1329,34 +1445,35 @@ typedef struct
if (string_temp != NULL) \
str = (const char *) string_temp; \
\
- DEBUG_PRINT2 (" Popping string 0x%x: `", str); \
+ DEBUG_PRINT2 (" Popping string %p: `", str); \
DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2); \
DEBUG_PRINT1 ("'\n"); \
\
pat = (unsigned char *) POP_FAILURE_POINTER (); \
- DEBUG_PRINT2 (" Popping pattern 0x%x: ", pat); \
+ DEBUG_PRINT2 (" Popping pattern %p:\n", pat); \
DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend); \
\
/* Restore register info. */ \
high_reg = (active_reg_t) POP_FAILURE_INT (); \
- DEBUG_PRINT2 (" Popping high active reg: %d\n", high_reg); \
+ DEBUG_PRINT2 (" Popping high active reg: %ld\n", high_reg); \
\
low_reg = (active_reg_t) POP_FAILURE_INT (); \
- DEBUG_PRINT2 (" Popping low active reg: %d\n", low_reg); \
+ DEBUG_PRINT2 (" Popping low active reg: %ld\n", low_reg); \
\
if (1) \
for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \
{ \
- DEBUG_PRINT2 (" Popping reg: %d\n", this_reg); \
+ DEBUG_PRINT2 (" Popping reg: %ld\n", this_reg); \
\
reg_info[this_reg].word = POP_FAILURE_ELT (); \
- DEBUG_PRINT2 (" info: 0x%x\n", reg_info[this_reg]); \
+ DEBUG_PRINT2 (" info: %p\n", \
+ reg_info[this_reg].word.pointer); \
\
regend[this_reg] = (const char *) POP_FAILURE_POINTER (); \
- DEBUG_PRINT2 (" end: 0x%x\n", regend[this_reg]); \
+ DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \
\
regstart[this_reg] = (const char *) POP_FAILURE_POINTER (); \
- DEBUG_PRINT2 (" start: 0x%x\n", regstart[this_reg]); \
+ DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \
} \
else \
{ \
@@ -1437,32 +1554,32 @@ static char reg_unset_dummy;
/* Subroutine declarations and macros for regex_compile. */
-static reg_errcode_t regex_compile _RE_ARGS((const char *pattern, size_t size,
- reg_syntax_t syntax,
- struct re_pattern_buffer *bufp));
-static void store_op1 _RE_ARGS((re_opcode_t op, unsigned char *loc, int arg));
-static void store_op2 _RE_ARGS((re_opcode_t op, unsigned char *loc,
- int arg1, int arg2));
-static void insert_op1 _RE_ARGS((re_opcode_t op, unsigned char *loc,
- int arg, unsigned char *end));
-static void insert_op2 _RE_ARGS((re_opcode_t op, unsigned char *loc,
- int arg1, int arg2, unsigned char *end));
-static boolean at_begline_loc_p _RE_ARGS((const char *pattern, const char *p,
- reg_syntax_t syntax));
-static boolean at_endline_loc_p _RE_ARGS((const char *p, const char *pend,
- reg_syntax_t syntax));
-static reg_errcode_t compile_range _RE_ARGS((const char **p_ptr,
- const char *pend,
- char *translate,
- reg_syntax_t syntax,
- unsigned char *b));
+static reg_errcode_t regex_compile _RE_ARGS ((const char *pattern, size_t size,
+ reg_syntax_t syntax,
+ struct re_pattern_buffer *bufp));
+static void store_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc, int arg));
+static void store_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
+ int arg1, int arg2));
+static void insert_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
+ int arg, unsigned char *end));
+static void insert_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
+ int arg1, int arg2, unsigned char *end));
+static boolean at_begline_loc_p _RE_ARGS ((const char *pattern, const char *p,
+ reg_syntax_t syntax));
+static boolean at_endline_loc_p _RE_ARGS ((const char *p, const char *pend,
+ reg_syntax_t syntax));
+static reg_errcode_t compile_range _RE_ARGS ((const char **p_ptr,
+ const char *pend,
+ char *translate,
+ reg_syntax_t syntax,
+ unsigned char *b));
/* Fetch the next character in the uncompiled pattern---translating it
if necessary. Also cast from a signed character in the constant
string passed to us by the user to an unsigned char that we can use
as an array index (in, e.g., `translate'). */
#ifndef PATFETCH
-#define PATFETCH(c) \
+# define PATFETCH(c) \
do {if (p == pend) return REG_EEND; \
c = (unsigned char) *p++; \
if (translate) c = (unsigned char) translate[c]; \
@@ -1485,7 +1602,7 @@ static reg_errcode_t compile_range _RE_ARGS((const char **p_ptr,
`char *', to avoid warnings when a string constant is passed. But
when we use a character as a subscript we must make it unsigned. */
#ifndef TRANSLATE
-#define TRANSLATE(d) \
+# define TRANSLATE(d) \
(translate ? (char) translate[(unsigned char) (d)] : (d))
#endif
@@ -1530,19 +1647,19 @@ static reg_errcode_t compile_range _RE_ARGS((const char **p_ptr,
/* Store a jump with opcode OP at LOC to location TO. We store a
relative address offset by the three bytes the jump itself occupies. */
#define STORE_JUMP(op, loc, to) \
- store_op1 (op, loc, (int)((to) - (loc) - 3))
+ store_op1 (op, loc, (int) ((to) - (loc) - 3))
/* Likewise, for a two-argument jump. */
#define STORE_JUMP2(op, loc, to, arg) \
- store_op2 (op, loc, (int)((to) - (loc) - 3), arg)
+ store_op2 (op, loc, (int) ((to) - (loc) - 3), arg)
/* Like `STORE_JUMP', but for inserting. Assume `b' is the buffer end. */
#define INSERT_JUMP(op, loc, to) \
- insert_op1 (op, loc, (int)((to) - (loc) - 3), b)
+ insert_op1 (op, loc, (int) ((to) - (loc) - 3), b)
/* Like `STORE_JUMP2', but for inserting. Assume `b' is the buffer end. */
#define INSERT_JUMP2(op, loc, to, arg) \
- insert_op2 (op, loc, (int)((to) - (loc) - 3), arg, b)
+ insert_op2 (op, loc, (int) ((to) - (loc) - 3), arg, b)
/* This is not an arbitrary limit: the arguments which represent offsets
@@ -1553,15 +1670,15 @@ static reg_errcode_t compile_range _RE_ARGS((const char **p_ptr,
MSC and drop MAX_BUF_SIZE a bit. Otherwise you may end up
reallocating to 0 bytes. Such thing is not going to work too well.
You have been warned!! */
-#ifdef _MSC_VER
+#if defined _MSC_VER && !defined WIN32
/* Microsoft C 16-bit versions limit malloc to approx 65512 bytes.
The REALLOC define eliminates a flurry of conversion warnings,
but is not required. */
-#define MAX_BUF_SIZE 65500L
-#define REALLOC(p,s) realloc((p), (size_t) (s))
+# define MAX_BUF_SIZE 65500L
+# define REALLOC(p,s) realloc ((p), (size_t) (s))
#else
-#define MAX_BUF_SIZE (1L << 16)
-#define REALLOC(p,s) realloc ((p), (s))
+# define MAX_BUF_SIZE (1L << 16)
+# define REALLOC(p,s) realloc ((p), (s))
#endif
/* Extend the buffer by twice its current size via realloc and
@@ -1576,7 +1693,7 @@ static reg_errcode_t compile_range _RE_ARGS((const char **p_ptr,
bufp->allocated <<= 1; \
if (bufp->allocated > MAX_BUF_SIZE) \
bufp->allocated = MAX_BUF_SIZE; \
- bufp->buffer = (unsigned char *) REALLOC(bufp->buffer, bufp->allocated);\
+ bufp->buffer = (unsigned char *) REALLOC (bufp->buffer, bufp->allocated);\
if (bufp->buffer == NULL) \
return REG_ESPACE; \
/* If the buffer moved, move all the pointers into it. */ \
@@ -1661,15 +1778,33 @@ typedef struct
} \
}
-#define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */
+#if defined _LIBC || WIDE_CHAR_SUPPORT
+/* The GNU C library provides support for user-defined character classes
+ and the functions from ISO C amendement 1. */
+# ifdef CHARCLASS_NAME_MAX
+# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX
+# else
+/* This shouldn't happen but some implementation might still have this
+ problem. Use a reasonable default value. */
+# define CHAR_CLASS_MAX_LENGTH 256
+# endif
+
+# ifdef _LIBC
+# define IS_CHAR_CLASS(string) __wctype (string)
+# else
+# define IS_CHAR_CLASS(string) wctype (string)
+# endif
+#else
+# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */
-#define IS_CHAR_CLASS(string) \
+# define IS_CHAR_CLASS(string) \
(STREQ (string, "alpha") || STREQ (string, "upper") \
|| STREQ (string, "lower") || STREQ (string, "digit") \
|| STREQ (string, "alnum") || STREQ (string, "xdigit") \
|| STREQ (string, "space") || STREQ (string, "print") \
|| STREQ (string, "punct") || STREQ (string, "graph") \
|| STREQ (string, "cntrl") || STREQ (string, "blank"))
+#endif
#ifndef MATCH_MAY_ALLOCATE
@@ -1719,9 +1854,9 @@ regex_grow_registers (num_regs)
#endif /* not MATCH_MAY_ALLOCATE */
-static boolean group_in_compile_stack _RE_ARGS((compile_stack_type
- compile_stack,
- regnum_t regnum));
+static boolean group_in_compile_stack _RE_ARGS ((compile_stack_type
+ compile_stack,
+ regnum_t regnum));
/* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX.
Returns one of error codes defined in `regex.h', or zero for success.
@@ -1834,7 +1969,7 @@ regex_compile (pattern, size, syntax, bufp)
/* Always count groups, whether or not bufp->no_sub is set. */
bufp->re_nsub = 0;
-#if !defined (emacs) && !defined (SYNTAX_TABLE)
+#if !defined emacs && !defined SYNTAX_TABLE
/* Initialize the syntax table. */
init_syntax_once ();
#endif
@@ -2135,18 +2270,54 @@ regex_compile (pattern, size, syntax, bufp)
for (;;)
{
PATFETCH (c);
- if (c == ':' || c == ']' || p == pend
- || c1 == CHAR_CLASS_MAX_LENGTH)
+ if ((c == ':' && *p == ']') || p == pend)
break;
- str[c1++] = c;
+ if (c1 < CHAR_CLASS_MAX_LENGTH)
+ str[c1++] = c;
+ else
+ /* This is in any case an invalid class name. */
+ str[0] = '\0';
}
str[c1] = '\0';
- /* If isn't a word bracketed by `[:' and:`]':
+ /* If isn't a word bracketed by `[:' and `:]':
undo the ending character, the letters, and leave
the leading `:' and `[' (but set bits for them). */
if (c == ':' && *p == ']')
{
+#if defined _LIBC || WIDE_CHAR_SUPPORT
+ boolean is_lower = STREQ (str, "lower");
+ boolean is_upper = STREQ (str, "upper");
+ wctype_t wt;
+ int ch;
+
+ wt = IS_CHAR_CLASS (str);
+ if (wt == 0)
+ FREE_STACK_RETURN (REG_ECTYPE);
+
+ /* Throw away the ] at the end of the character
+ class. */
+ PATFETCH (c);
+
+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
+
+ for (ch = 0; ch < 1 << BYTEWIDTH; ++ch)
+ {
+# ifdef _LIBC
+ if (__iswctype (__btowc (ch), wt))
+ SET_LIST_BIT (ch);
+# else
+ if (iswctype (btowc (ch), wt))
+ SET_LIST_BIT (ch);
+# endif
+
+ if (translate && (is_upper || is_lower)
+ && (ISUPPER (ch) || ISLOWER (ch)))
+ SET_LIST_BIT (ch);
+ }
+
+ had_char_class = true;
+#else
int ch;
boolean is_alnum = STREQ (str, "alnum");
boolean is_alpha = STREQ (str, "alpha");
@@ -2189,11 +2360,12 @@ regex_compile (pattern, size, syntax, bufp)
|| (is_upper && ISUPPER (ch))
|| (is_xdigit && ISXDIGIT (ch)))
SET_LIST_BIT (ch);
- if ( translate && (is_upper || is_lower)
- && (ISUPPER(ch) || ISLOWER(ch)))
+ if ( translate && (is_upper || is_lower)
+ && (ISUPPER (ch) || ISLOWER (ch)))
SET_LIST_BIT (ch);
}
had_char_class = true;
+#endif /* libc || wctype.h */
}
else
{
@@ -2319,10 +2491,12 @@ regex_compile (pattern, size, syntax, bufp)
if (syntax & RE_NO_BK_PARENS) goto normal_backslash;
if (COMPILE_STACK_EMPTY)
- if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
- goto normal_backslash;
- else
- FREE_STACK_RETURN (REG_ERPAREN);
+ {
+ if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
+ goto normal_backslash;
+ else
+ FREE_STACK_RETURN (REG_ERPAREN);
+ }
handle_close:
if (fixup_alt_jump)
@@ -2339,10 +2513,12 @@ regex_compile (pattern, size, syntax, bufp)
/* See similar code for backslashed left paren above. */
if (COMPILE_STACK_EMPTY)
- if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
- goto normal_char;
- else
- FREE_STACK_RETURN (REG_ERPAREN);
+ {
+ if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
+ goto normal_char;
+ else
+ FREE_STACK_RETURN (REG_ERPAREN);
+ }
/* Since we just checked for an empty stack above, this
``can't happen''. */
@@ -2617,54 +2793,54 @@ regex_compile (pattern, size, syntax, bufp)
case 'w':
- if (re_syntax_options & RE_NO_GNU_OPS)
- goto normal_char;
+ if (syntax & RE_NO_GNU_OPS)
+ goto normal_char;
laststart = b;
BUF_PUSH (wordchar);
break;
case 'W':
- if (re_syntax_options & RE_NO_GNU_OPS)
- goto normal_char;
+ if (syntax & RE_NO_GNU_OPS)
+ goto normal_char;
laststart = b;
BUF_PUSH (notwordchar);
break;
case '<':
- if (re_syntax_options & RE_NO_GNU_OPS)
- goto normal_char;
+ if (syntax & RE_NO_GNU_OPS)
+ goto normal_char;
BUF_PUSH (wordbeg);
break;
case '>':
- if (re_syntax_options & RE_NO_GNU_OPS)
- goto normal_char;
+ if (syntax & RE_NO_GNU_OPS)
+ goto normal_char;
BUF_PUSH (wordend);
break;
case 'b':
- if (re_syntax_options & RE_NO_GNU_OPS)
- goto normal_char;
+ if (syntax & RE_NO_GNU_OPS)
+ goto normal_char;
BUF_PUSH (wordbound);
break;
case 'B':
- if (re_syntax_options & RE_NO_GNU_OPS)
- goto normal_char;
+ if (syntax & RE_NO_GNU_OPS)
+ goto normal_char;
BUF_PUSH (notwordbound);
break;
case '`':
- if (re_syntax_options & RE_NO_GNU_OPS)
- goto normal_char;
+ if (syntax & RE_NO_GNU_OPS)
+ goto normal_char;
BUF_PUSH (begbuf);
break;
case '\'':
- if (re_syntax_options & RE_NO_GNU_OPS)
- goto normal_char;
+ if (syntax & RE_NO_GNU_OPS)
+ goto normal_char;
BUF_PUSH (endbuf);
break;
@@ -2679,7 +2855,7 @@ regex_compile (pattern, size, syntax, bufp)
FREE_STACK_RETURN (REG_ESUBREG);
/* Can't back reference to a subexpression if inside of it. */
- if (group_in_compile_stack (compile_stack, (regnum_t)c1))
+ if (group_in_compile_stack (compile_stack, (regnum_t) c1))
goto normal_char;
laststart = b;
@@ -2782,7 +2958,7 @@ regex_compile (pattern, size, syntax, bufp)
{
fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS);
-#ifdef emacs
+# ifdef emacs
if (! fail_stack.stack)
fail_stack.stack
= (fail_stack_elt_t *) xmalloc (fail_stack.size
@@ -2792,7 +2968,7 @@ regex_compile (pattern, size, syntax, bufp)
= (fail_stack_elt_t *) xrealloc (fail_stack.stack,
(fail_stack.size
* sizeof (fail_stack_elt_t)));
-#else /* not emacs */
+# else /* not emacs */
if (! fail_stack.stack)
fail_stack.stack
= (fail_stack_elt_t *) malloc (fail_stack.size
@@ -2802,7 +2978,7 @@ regex_compile (pattern, size, syntax, bufp)
= (fail_stack_elt_t *) realloc (fail_stack.stack,
(fail_stack.size
* sizeof (fail_stack_elt_t)));
-#endif /* not emacs */
+# endif /* not emacs */
}
regex_grow_registers (num_regs);
@@ -3023,8 +3199,6 @@ re_compile_fastmap (bufp)
#ifndef REGEX_MALLOC
char *destination;
#endif
- /* We don't push any register information onto the failure stack. */
- unsigned num_regs = 0;
register char *fastmap = bufp->fastmap;
unsigned char *pattern = bufp->buffer;
@@ -3303,6 +3477,9 @@ re_compile_fastmap (bufp)
RESET_FAIL_STACK ();
return 0;
} /* re_compile_fastmap */
+#ifdef _LIBC
+weak_alias (__re_compile_fastmap, re_compile_fastmap)
+#endif
/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use
@@ -3338,6 +3515,9 @@ re_set_registers (bufp, regs, num_regs, starts, ends)
regs->start = regs->end = (regoff_t *) 0;
}
}
+#ifdef _LIBC
+weak_alias (__re_set_registers, re_set_registers)
+#endif
/* Searching routines. */
@@ -3354,6 +3534,9 @@ re_search (bufp, string, size, startpos, range, regs)
return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
regs, size);
}
+#ifdef _LIBC
+weak_alias (__re_search, re_search)
+#endif
/* Using the compiled pattern in BUFP->buffer, first tries to match the
@@ -3407,7 +3590,11 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
/* If the search isn't to be a backwards one, don't waste time in a
search for a pattern that must be anchored. */
- if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0)
+ if (bufp->used > 0 && range > 0
+ && ((re_opcode_t) bufp->buffer[0] == begbuf
+ /* `begline' is like `begbuf' if it cannot match at newlines. */
+ || ((re_opcode_t) bufp->buffer[0] == begline
+ && !bufp->newline_anchor)))
{
if (startpos > 0)
return -1;
@@ -3483,9 +3670,9 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
val = re_match_2_internal (bufp, string1, size1, string2, size2,
startpos, regs, stop);
#ifndef REGEX_MALLOC
-#ifdef C_ALLOCA
+# ifdef C_ALLOCA
alloca (0);
-#endif
+# endif
#endif
if (val >= 0)
@@ -3510,6 +3697,9 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
}
return -1;
} /* re_search_2 */
+#ifdef _LIBC
+weak_alias (__re_search_2, re_search_2)
+#endif
/* This converts PTR, a pointer into one of the search strings `string1'
and `string2' into an offset from the beginning of that string. */
@@ -3562,8 +3752,8 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
/* Free everything we malloc. */
#ifdef MATCH_MAY_ALLOCATE
-#define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL
-#define FREE_VARIABLES() \
+# define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL
+# define FREE_VARIABLES() \
do { \
REGEX_FREE_STACK (fail_stack.stack); \
FREE_VAR (regstart); \
@@ -3577,7 +3767,7 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
FREE_VAR (reg_info_dummy); \
} while (0)
#else
-#define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */
+# define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */
#endif /* not MATCH_MAY_ALLOCATE */
/* These values must meet several constraints. They must not be valid
@@ -3604,26 +3794,29 @@ re_match (bufp, string, size, pos, regs)
{
int result = re_match_2_internal (bufp, NULL, 0, string, size,
pos, regs, size);
-#ifndef REGEX_MALLOC
-#ifdef C_ALLOCA
+# ifndef REGEX_MALLOC
+# ifdef C_ALLOCA
alloca (0);
-#endif
-#endif
+# endif
+# endif
return result;
}
+# ifdef _LIBC
+weak_alias (__re_match, re_match)
+# endif
#endif /* not emacs */
-static boolean group_match_null_string_p _RE_ARGS((unsigned char **p,
- unsigned char *end,
- register_info_type *reg_info));
-static boolean alt_match_null_string_p _RE_ARGS((unsigned char *p,
- unsigned char *end,
- register_info_type *reg_info));
-static boolean common_op_match_null_string_p _RE_ARGS((unsigned char **p,
- unsigned char *end,
+static boolean group_match_null_string_p _RE_ARGS ((unsigned char **p,
+ unsigned char *end,
register_info_type *reg_info));
-static int bcmp_translate _RE_ARGS((const char *s1, const char *s2,
- int len, char *translate));
+static boolean alt_match_null_string_p _RE_ARGS ((unsigned char *p,
+ unsigned char *end,
+ register_info_type *reg_info));
+static boolean common_op_match_null_string_p _RE_ARGS ((unsigned char **p,
+ unsigned char *end,
+ register_info_type *reg_info));
+static int bcmp_translate _RE_ARGS ((const char *s1, const char *s2,
+ int len, char *translate));
/* re_match_2 matches the compiled pattern in BUFP against the
the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1
@@ -3650,12 +3843,15 @@ re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
int result = re_match_2_internal (bufp, string1, size1, string2, size2,
pos, regs, stop);
#ifndef REGEX_MALLOC
-#ifdef C_ALLOCA
+# ifdef C_ALLOCA
alloca (0);
-#endif
+# endif
#endif
return result;
}
+#ifdef _LIBC
+weak_alias (__re_match_2, re_match_2)
+#endif
/* This is a separate function so that we can force an alloca cleanup
afterwards. */
@@ -3706,7 +3902,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
fail_stack_type fail_stack;
#endif
#ifdef DEBUG
- static unsigned failure_id = 0;
+ static unsigned failure_id;
unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0;
#endif
@@ -3889,7 +4085,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
dend = end_match_2;
}
- DEBUG_PRINT1 ("The compiled pattern is: ");
+ DEBUG_PRINT1 ("The compiled pattern is:\n");
DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend);
DEBUG_PRINT1 ("The string to match is: `");
DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2);
@@ -3900,7 +4096,11 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
fails at this starting point in the input data. */
for (;;)
{
+#ifdef _LIBC
+ DEBUG_PRINT2 ("\n%p: ", p);
+#else
DEBUG_PRINT2 ("\n0x%x: ", p);
+#endif
if (p == pend)
{ /* End of pattern means we might have succeeded. */
@@ -4396,7 +4596,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
past them. */
if (translate
? bcmp_translate (d, d2, mcnt, translate)
- : bcmp (d, d2, mcnt))
+ : memcmp (d, d2, mcnt))
goto fail;
d += mcnt, d2 += mcnt;
@@ -4479,7 +4679,11 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump");
EXTRACT_NUMBER_AND_INCR (mcnt, p);
+#ifdef _LIBC
+ DEBUG_PRINT3 (" %d (to %p):\n", mcnt, p + mcnt);
+#else
DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt);
+#endif
PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
break;
@@ -4502,7 +4706,11 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
DEBUG_PRINT1 ("EXECUTING on_failure_jump");
EXTRACT_NUMBER_AND_INCR (mcnt, p);
+#ifdef _LIBC
+ DEBUG_PRINT3 (" %d (to %p)", mcnt, p + mcnt);
+#else
DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt);
+#endif
/* If this on_failure_jump comes right before a group (i.e.,
the original * applied to a group), save the information
@@ -4625,26 +4833,15 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
}
else if ((re_opcode_t) *p2 == charset)
{
-#ifdef DEBUG
- register unsigned char c
- = *p2 == (unsigned char) endline ? '\n' : p2[2];
-#endif
-
-#if 0
+ /* We win if the first character of the loop is not part
+ of the charset. */
if ((re_opcode_t) p1[3] == exactn
&& ! ((int) p2[1] * BYTEWIDTH > (int) p1[5]
&& (p2[2 + p1[5] / BYTEWIDTH]
& (1 << (p1[5] % BYTEWIDTH)))))
-#else
- if ((re_opcode_t) p1[3] == exactn
- && ! ((int) p2[1] * BYTEWIDTH > (int) p1[4]
- && (p2[2 + p1[4] / BYTEWIDTH]
- & (1 << (p1[4] % BYTEWIDTH)))))
-#endif
{
p[-3] = (unsigned char) pop_failure_jump;
- DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n",
- c, p1[5]);
+ DEBUG_PRINT1 (" No match => pop_failure_jump.\n");
}
else if ((re_opcode_t) p1[3] == charset_not)
@@ -4715,16 +4912,26 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
dummy_low_reg, dummy_high_reg,
reg_dummy, reg_dummy, reg_info_dummy);
}
- /* Note fall through. */
+ /* Note fall through. */
+ unconditional_jump:
+#ifdef _LIBC
+ DEBUG_PRINT2 ("\n%p: ", p);
+#else
+ DEBUG_PRINT2 ("\n0x%x: ", p);
+#endif
+ /* Note fall through. */
/* Unconditionally jump (without popping any failure points). */
case jump:
- unconditional_jump:
EXTRACT_NUMBER_AND_INCR (mcnt, p); /* Get the amount to jump. */
DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt);
p += mcnt; /* Do the jump. */
+#ifdef _LIBC
+ DEBUG_PRINT2 ("(to %p).\n", p);
+#else
DEBUG_PRINT2 ("(to 0x%x).\n", p);
+#endif
break;
@@ -4744,7 +4951,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n");
/* It doesn't matter what we push for the string here. What
the code at `fail' tests is the value for the pattern. */
- PUSH_FAILURE_POINT (0, 0, -2);
+ PUSH_FAILURE_POINT (NULL, NULL, -2);
goto unconditional_jump;
@@ -4757,7 +4964,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n");
/* See comments just above at `dummy_failure_jump' about the
two zeroes. */
- PUSH_FAILURE_POINT (0, 0, -2);
+ PUSH_FAILURE_POINT (NULL, NULL, -2);
break;
/* Have to succeed matching what follows at least n times.
@@ -4773,11 +4980,19 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
mcnt--;
p += 2;
STORE_NUMBER_AND_INCR (p, mcnt);
- DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p, mcnt);
+#ifdef _LIBC
+ DEBUG_PRINT3 (" Setting %p to %d.\n", p - 2, mcnt);
+#else
+ DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p - 2, mcnt);
+#endif
}
else if (mcnt == 0)
{
+#ifdef _LIBC
+ DEBUG_PRINT2 (" Setting two bytes from %p to no_op.\n", p+2);
+#else
DEBUG_PRINT2 (" Setting two bytes from 0x%x to no_op.\n", p+2);
+#endif
p[2] = (unsigned char) no_op;
p[3] = (unsigned char) no_op;
goto on_failure;
@@ -4793,6 +5008,11 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
{
mcnt--;
STORE_NUMBER (p + 2, mcnt);
+#ifdef _LIBC
+ DEBUG_PRINT3 (" Setting %p to %d.\n", p + 2, mcnt);
+#else
+ DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p + 2, mcnt);
+#endif
goto unconditional_jump;
}
/* If don't have to jump any more, skip over the rest of command. */
@@ -4807,7 +5027,11 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
EXTRACT_NUMBER_AND_INCR (mcnt, p);
p1 = p + mcnt;
EXTRACT_NUMBER_AND_INCR (mcnt, p);
+#ifdef _LIBC
+ DEBUG_PRINT3 (" Setting %p to %d.\n", p1, mcnt);
+#else
DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p1, mcnt);
+#endif
STORE_NUMBER (p1, mcnt);
break;
}
@@ -5308,13 +5532,16 @@ re_compile_pattern (pattern, length, bufp)
if (!ret)
return NULL;
- return gettext (re_error_msgid[(int) ret]);
+ return gettext (re_error_msgid + re_error_msgid_idx[(int) ret]);
}
+#ifdef _LIBC
+weak_alias (__re_compile_pattern, re_compile_pattern)
+#endif
/* Entry points compatible with 4.2 BSD regex library. We don't define
them unless specifically requested. */
-#if defined (_REGEX_RE_COMP) || defined (_LIBC)
+#if defined _REGEX_RE_COMP || defined _LIBC
/* BSD has one and only one pattern buffer. */
static struct re_pattern_buffer re_comp_buf;
@@ -5342,12 +5569,14 @@ re_comp (s)
{
re_comp_buf.buffer = (unsigned char *) malloc (200);
if (re_comp_buf.buffer == NULL)
- return gettext (re_error_msgid[(int) REG_ESPACE]);
+ return (char *) gettext (re_error_msgid
+ + re_error_msgid_idx[(int) REG_ESPACE]);
re_comp_buf.allocated = 200;
re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);
if (re_comp_buf.fastmap == NULL)
- return gettext (re_error_msgid[(int) REG_ESPACE]);
+ return (char *) gettext (re_error_msgid
+ + re_error_msgid_idx[(int) REG_ESPACE]);
}
/* Since `re_exec' always passes NULL for the `regs' argument, we
@@ -5362,7 +5591,7 @@ re_comp (s)
return NULL;
/* Yes, we're discarding `const' here if !HAVE_LIBINTL. */
- return (char *) gettext (re_error_msgid[(int) ret]);
+ return (char *) gettext (re_error_msgid + re_error_msgid_idx[(int) ret]);
}
@@ -5395,7 +5624,8 @@ re_exec (s)
REG_EXTENDED bit in CFLAGS is set; otherwise, to
RE_SYNTAX_POSIX_BASIC;
`newline_anchor' to REG_NEWLINE being set in CFLAGS;
- `fastmap' and `fastmap_accurate' to zero;
+ `fastmap' to an allocated space for the fastmap;
+ `fastmap_accurate' to zero;
`re_nsub' to the number of subexpressions in PATTERN.
PATTERN is the address of the pattern string.
@@ -5434,11 +5664,8 @@ regcomp (preg, pattern, cflags)
preg->allocated = 0;
preg->used = 0;
- /* Don't bother to use a fastmap when searching. This simplifies the
- REG_NEWLINE case: if we used a fastmap, we'd have to put all the
- characters after newlines into the fastmap. This way, we just try
- every character. */
- preg->fastmap = 0;
+ /* Try to allocate space for the fastmap. */
+ preg->fastmap = (char *) malloc (1 << BYTEWIDTH);
if (cflags & REG_ICASE)
{
@@ -5452,7 +5679,7 @@ regcomp (preg, pattern, cflags)
/* Map uppercase characters to corresponding lowercase ones. */
for (i = 0; i < CHAR_SET_SIZE; i++)
- preg->translate[i] = ISUPPER (i) ? tolower (i) : i;
+ preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i;
}
else
preg->translate = NULL;
@@ -5478,8 +5705,24 @@ regcomp (preg, pattern, cflags)
unmatched close-group: both are REG_EPAREN. */
if (ret == REG_ERPAREN) ret = REG_EPAREN;
+ if (ret == REG_NOERROR && preg->fastmap)
+ {
+ /* Compute the fastmap now, since regexec cannot modify the pattern
+ buffer. */
+ if (re_compile_fastmap (preg) == -2)
+ {
+ /* Some error occured while computing the fastmap, just forget
+ about it. */
+ free (preg->fastmap);
+ preg->fastmap = NULL;
+ }
+ }
+
return (int) ret;
}
+#ifdef _LIBC
+weak_alias (__regcomp, regcomp)
+#endif
/* regexec searches for a given pattern, specified by PREG, in the
@@ -5523,10 +5766,10 @@ regexec (preg, string, nmatch, pmatch, eflags)
if (want_reg_info)
{
regs.num_regs = nmatch;
- regs.start = TALLOC (nmatch, regoff_t);
- regs.end = TALLOC (nmatch, regoff_t);
- if (regs.start == NULL || regs.end == NULL)
+ regs.start = TALLOC (nmatch * 2, regoff_t);
+ if (regs.start == NULL)
return (int) REG_NOMATCH;
+ regs.end = regs.start + nmatch;
}
/* Perform the searching operation. */
@@ -5550,12 +5793,14 @@ regexec (preg, string, nmatch, pmatch, eflags)
/* If we needed the temporary register info, free the space now. */
free (regs.start);
- free (regs.end);
}
/* We want zero return to mean success, unlike `re_search'. */
return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH;
}
+#ifdef _LIBC
+weak_alias (__regexec, regexec)
+#endif
/* Returns a message corresponding to an error code, ERRCODE, returned
@@ -5572,15 +5817,15 @@ regerror (errcode, preg, errbuf, errbuf_size)
size_t msg_size;
if (errcode < 0
- || errcode >= (int) (sizeof (re_error_msgid)
- / sizeof (re_error_msgid[0])))
+ || errcode >= (int) (sizeof (re_error_msgid_idx)
+ / sizeof (re_error_msgid_idx[0])))
/* Only error codes returned by the rest of the code should be passed
to this routine. If we are given anything else, or if other regex
code generates an invalid error code, then the program has a bug.
Dump core so we can fix it. */
abort ();
- msg = gettext (re_error_msgid[errcode]);
+ msg = gettext (re_error_msgid + re_error_msgid_idx[errcode]);
msg_size = strlen (msg) + 1; /* Includes the null. */
@@ -5588,15 +5833,22 @@ regerror (errcode, preg, errbuf, errbuf_size)
{
if (msg_size > errbuf_size)
{
- strncpy (errbuf, msg, errbuf_size - 1);
+#if defined HAVE_MEMPCPY || defined _LIBC
+ *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
+#else
+ memcpy (errbuf, msg, errbuf_size - 1);
errbuf[errbuf_size - 1] = 0;
+#endif
}
else
- strcpy (errbuf, msg);
+ memcpy (errbuf, msg, msg_size);
}
return msg_size;
}
+#ifdef _LIBC
+weak_alias (__regerror, regerror)
+#endif
/* Free dynamically allocated space used by PREG. */
@@ -5621,13 +5873,8 @@ regfree (preg)
free (preg->translate);
preg->translate = NULL;
}
+#ifdef _LIBC
+weak_alias (__regfree, regfree)
+#endif
#endif /* not emacs */
-
-/*
-Local variables:
-make-backup-files: t
-version-control: t
-trim-versions-without-asking: nil
-End:
-*/
diff --git a/lib/regex.h b/lib/regex.h
index 28bb5038..d88ab92b 100644
--- a/lib/regex.h
+++ b/lib/regex.h
@@ -1,53 +1,59 @@
/* Definitions for data structures and routines for the regular
expression library, version 0.12.
+ Copyright (C) 1985,89,90,91,92,93,95,96,97,98 Free Software Foundation, Inc.
- Copyright (C) 1985, 89,90,91,92,93,95,96,97 Free Software Foundation, Inc.
+ This file is part of the GNU C Library. Its master source is NOT part of
+ the C library, however. The master source lives in /gd/gnu/lib.
- 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.
+ The GNU C Library 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 of the
+ License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
+ The GNU C Library 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.
+ 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 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. */
+ 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. */
-#ifndef __REGEXP_LIBRARY_H__
-#define __REGEXP_LIBRARY_H__
+#ifndef _REGEX_H
+#define _REGEX_H 1
+
+/* Allow the use in C++ code. */
+#ifdef __cplusplus
+extern "C" {
+#endif
/* POSIX says that <sys/types.h> must be included (by the caller) before
<regex.h>. */
-#if !defined (_POSIX_C_SOURCE) && !defined (_POSIX_SOURCE) && defined (VMS)
+#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
should be there. */
-#include <stddef.h>
+# include <stddef.h>
#endif
-
/* The following two types have to be signed and unsigned integer type
wide enough to hold a value of a pointer. For most ANSI compilers
ptrdiff_t and size_t should be likely OK. Still size of these two
types is 2 for Microsoft C. Ugh... */
-typedef long s_reg_t;
-typedef unsigned long active_reg_t;
+typedef long int s_reg_t;
+typedef unsigned long int active_reg_t;
/* The following bits are used to determine the regexp syntax we
recognize. The set/not-set meanings are chosen so that Emacs syntax
remains the value 0. The bits are given in alphabetical order, and
the definitions shifted by one from the previous bit; thus, when we
add or remove a bit, only one other definition need change. */
-typedef unsigned long reg_syntax_t;
+typedef unsigned long int reg_syntax_t;
/* If this bit is not set, then \ inside a bracket expression is literal.
If set, then such a \ quotes the following character. */
-#define RE_BACKSLASH_ESCAPE_IN_LISTS (1L)
+#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
/* If this bit is not set, then + and ? are operators, and \+ and \? are
literals.
@@ -138,13 +144,13 @@ typedef unsigned long reg_syntax_t;
If not set, then an unmatched ) is invalid. */
#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
-/* If this bit is set, do not process the GNU regex operators.
- IF not set, then the GNU regex operators are recognized. */
-#define RE_NO_GNU_OPS (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
-
/* If this bit is set, succeed as soon as we match the whole pattern,
without further backtracking. */
-#define RE_NO_POSIX_BACKTRACKING (RE_NO_GNU_OPS << 1)
+#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
+
+/* If this bit is set, do not process the GNU regex operators.
+ If not set, then the GNU regex operators are recognized. */
+#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
/* If this bit is set, turn on internal regex debugging.
If not set, and debugging was on, turn it off.
@@ -152,7 +158,7 @@ typedef unsigned long reg_syntax_t;
We define this bit always, so that all that's needed to turn on
debugging is to recompile regex.c; the calling code can always have
this bit set, and it won't affect anything in the normal case. */
-#define RE_DEBUG (RE_NO_POSIX_BACKTRACKING << 1)
+#define RE_DEBUG (RE_NO_GNU_OPS << 1)
/* This global variable defines the particular regexp syntax to use (for
some interfaces). When a regexp is compiled, the syntax used is
@@ -167,15 +173,15 @@ extern reg_syntax_t re_syntax_options;
#define RE_SYNTAX_EMACS 0
#define RE_SYNTAX_AWK \
- (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
- | RE_NO_BK_PARENS | RE_NO_BK_REFS \
- | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
- | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \
+ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
+ | RE_NO_BK_PARENS | RE_NO_BK_REFS \
+ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
+ | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \
| RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
-#define RE_SYNTAX_GNU_AWK \
- ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \
- & ~(RE_DOT_NOT_NULL|RE_INTERVALS|RE_CONTEXT_INDEP_OPS))
+#define RE_SYNTAX_GNU_AWK \
+ ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \
+ & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS))
#define RE_SYNTAX_POSIX_AWK \
(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \
@@ -233,10 +239,10 @@ extern reg_syntax_t re_syntax_options;
(erroneously) define this in other header files, but we want our
value, so remove any previous define. */
#ifdef RE_DUP_MAX
-#undef RE_DUP_MAX
+# undef RE_DUP_MAX
#endif
-/* if sizeof(int) == 2, then ((1 << 15) - 1) overflows */
-#define RE_DUP_MAX (0x7fff)
+/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */
+#define RE_DUP_MAX (0x7fff)
/* POSIX `cflags' bits (i.e., information for `regcomp'). */
@@ -276,6 +282,10 @@ extern reg_syntax_t re_syntax_options;
`re_error_msg' table in regex.c. */
typedef enum
{
+#ifdef _XOPEN_SOURCE
+ REG_ENOSYS = -1, /* This will never happen for this implementation. */
+#endif
+
REG_NOERROR = 0, /* Success. */
REG_NOMATCH, /* Didn't find a match (for regexec). */
@@ -307,7 +317,7 @@ typedef enum
private to the regex routines. */
#ifndef RE_TRANSLATE_TYPE
-#define RE_TRANSLATE_TYPE char *
+# define RE_TRANSLATE_TYPE char *
#endif
struct re_pattern_buffer
@@ -319,10 +329,10 @@ struct re_pattern_buffer
unsigned char *buffer;
/* Number of bytes to which `buffer' points. */
- unsigned long allocated;
+ unsigned long int allocated;
/* Number of bytes actually used in `buffer'. */
- unsigned long used;
+ unsigned long int used;
/* Syntax setting with which the pattern was compiled. */
reg_syntax_t syntax;
@@ -398,7 +408,7 @@ struct re_registers
`re_match_2' returns information about at least this many registers
the first time a `regs' structure is passed. */
#ifndef RE_NREGS
-#define RE_NREGS 30
+# define RE_NREGS 30
#endif
@@ -421,11 +431,11 @@ typedef struct
#if __STDC__
-#define _RE_ARGS(args) args
+# define _RE_ARGS(args) args
#else /* not __STDC__ */
-#define _RE_ARGS(args) ()
+# define _RE_ARGS(args) ()
#endif /* not __STDC__ */
@@ -495,25 +505,33 @@ extern void re_set_registers
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
unsigned num_regs, regoff_t *starts, regoff_t *ends));
-#ifdef _REGEX_RE_COMP
-#ifndef _CRAY
+#if defined _REGEX_RE_COMP || defined _LIBC
+# ifndef _CRAY
/* 4.2 bsd compatibility. */
extern char *re_comp _RE_ARGS ((const char *));
extern int re_exec _RE_ARGS ((const char *));
-#endif
+# endif
#endif
/* POSIX compatibility. */
-extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
-extern int regexec
- _RE_ARGS ((const regex_t *preg, const char *string, size_t nmatch,
- regmatch_t pmatch[], int eflags));
-extern size_t regerror
- _RE_ARGS ((int errcode, const regex_t *preg, char *errbuf,
- size_t errbuf_size));
-extern void regfree _RE_ARGS ((regex_t *preg));
-
-#endif /* not __REGEXP_LIBRARY_H__ */
+extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
+ int __cflags));
+
+extern int regexec _RE_ARGS ((const regex_t *__preg,
+ const char *__string, size_t __nmatch,
+ regmatch_t __pmatch[], int __eflags));
+
+extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
+ char *__errbuf, size_t __errbuf_size));
+
+extern void regfree _RE_ARGS ((regex_t *__preg));
+
+
+#ifdef __cplusplus
+}
+#endif /* C++ */
+
+#endif /* regex.h */
/*
Local variables:
diff --git a/lib/strtol.c b/lib/strtol.c
index 025287a3..42da792c 100644
--- a/lib/strtol.c
+++ b/lib/strtol.c
@@ -1,21 +1,21 @@
-/* strtol - Convert string representation of a number into an integer value.
- Copyright (C) 1991, 92, 94, 95, 96 Free Software Foundation, Inc.
- NOTE: The canonical source of this file is maintained with the GNU C
- Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+/* Convert string representation of a number into an integer value.
+ Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
- 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.
+ The GNU C Library 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 of the
+ License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
+ The GNU C Library 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.
+ 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 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. */
+ 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. */
#if HAVE_CONFIG_H
# include <config.h>
@@ -54,7 +54,7 @@ extern int errno;
# include "../locale/localeinfo.h"
#endif
-/* Nonzero if we are defining `strtoul' or `strtouq', operating on
+/* Nonzero if we are defining `strtoul' or `strtoull', operating on
unsigned integers. */
#ifndef UNSIGNED
# define UNSIGNED 0
@@ -64,77 +64,145 @@ extern int errno;
#endif
/* Determine the name. */
-#if UNSIGNED
-# ifdef USE_WIDE_CHAR
-# ifdef QUAD
-# define strtol wcstouq
+#ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# if UNSIGNED
+# ifdef USE_WIDE_CHAR
+# ifdef QUAD
+# define strtol __wcstoull_l
+# else
+# define strtol __wcstoul_l
+# endif
# else
-# define strtol wcstoul
+# ifdef QUAD
+# define strtol __strtoull_l
+# else
+# define strtol __strtoul_l
+# endif
# endif
# else
-# ifdef QUAD
-# define strtol strtouq
+# ifdef USE_WIDE_CHAR
+# ifdef QUAD
+# define strtol __wcstoll_l
+# else
+# define strtol __wcstol_l
+# endif
# else
-# define strtol strtoul
+# ifdef QUAD
+# define strtol __strtoll_l
+# else
+# define strtol __strtol_l
+# endif
# endif
# endif
#else
-# ifdef USE_WIDE_CHAR
-# ifdef QUAD
-# define strtol wcstoq
+# if UNSIGNED
+# ifdef USE_WIDE_CHAR
+# ifdef QUAD
+# define strtol wcstoull
+# else
+# define strtol wcstoul
+# endif
# else
-# define strtol wcstol
+# ifdef QUAD
+# define strtol strtoull
+# else
+# define strtol strtoul
+# endif
# endif
# else
-# ifdef QUAD
-# define strtol strtoq
+# ifdef USE_WIDE_CHAR
+# ifdef QUAD
+# define strtol wcstoll
+# else
+# define strtol wcstol
+# endif
+# else
+# ifdef QUAD
+# define strtol strtoll
+# endif
# endif
# endif
#endif
-/* If QUAD is defined, we are defining `strtoq' or `strtouq',
+/* If QUAD is defined, we are defining `strtoll' or `strtoull',
operating on `long long int's. */
#ifdef QUAD
# define LONG long long
-# undef LONG_MIN
-# define LONG_MIN LONG_LONG_MIN
-# undef LONG_MAX
-# define LONG_MAX LONG_LONG_MAX
-# undef ULONG_MAX
-# define ULONG_MAX ULONG_LONG_MAX
+# define STRTOL_LONG_MIN LONG_LONG_MIN
+# define STRTOL_LONG_MAX LONG_LONG_MAX
+# define STRTOL_ULONG_MAX ULONG_LONG_MAX
# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
/* Work around gcc bug with using this constant. */
static const unsigned long long int maxquad = ULONG_LONG_MAX;
-# undef ULONG_MAX
-# define ULONG_MAX maxquad
+# undef STRTOL_ULONG_MAX
+# define STRTOL_ULONG_MAX maxquad
# endif
#else
# define LONG long
-#ifndef ULONG_MAX
-# define ULONG_MAX ((unsigned long) ~(unsigned long) 0)
+# ifndef ULONG_MAX
+# define ULONG_MAX ((unsigned long) ~(unsigned long) 0)
+# endif
+# ifndef LONG_MAX
+# define LONG_MAX ((long int) (ULONG_MAX >> 1))
+# endif
+# define STRTOL_LONG_MIN LONG_MIN
+# define STRTOL_LONG_MAX LONG_MAX
+# define STRTOL_ULONG_MAX ULONG_MAX
#endif
-#ifndef LONG_MAX
-# define LONG_MAX ((long int) (ULONG_MAX >> 1))
+
+
+/* We use this code also for the extended locale handling where the
+ function gets as an additional argument the locale which has to be
+ used. To access the values we have to redefine the _NL_CURRENT
+ macro. */
+#ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# undef _NL_CURRENT
+# define _NL_CURRENT(category, item) \
+ (current->values[_NL_ITEM_INDEX (item)].string)
+# define LOCALE_PARAM , loc
+# define LOCALE_PARAM_DECL __locale_t loc;
+#else
+# define LOCALE_PARAM
+# define LOCALE_PARAM_DECL
#endif
+
+#if defined _LIBC || defined HAVE_WCHAR_H
+# include <wchar.h>
#endif
#ifdef USE_WIDE_CHAR
-# include <wchar.h>
# include <wctype.h>
# define L_(Ch) L##Ch
# define UCHAR_TYPE wint_t
# define STRING_TYPE wchar_t
-# define ISSPACE(Ch) iswspace (Ch)
-# define ISALPHA(Ch) iswalpha (Ch)
-# define TOUPPER(Ch) towupper (Ch)
-#else
-# define L_(Ch) Ch
-# define UCHAR_TYPE unsigned char
-# define STRING_TYPE char
-# define ISSPACE(Ch) isspace (Ch)
-# define ISALPHA(Ch) isalpha (Ch)
-# define TOUPPER(Ch) toupper (Ch)
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# define ISSPACE(Ch) __iswspace_l ((Ch), loc)
+# define ISALPHA(Ch) __iswalpha_l ((Ch), loc)
+# define TOUPPER(Ch) __towupper_l ((Ch), loc)
+# else
+# define ISSPACE(Ch) iswspace (Ch)
+# define ISALPHA(Ch) iswalpha (Ch)
+# define TOUPPER(Ch) towupper (Ch)
+# endif
+# else
+# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
+# define IN_CTYPE_DOMAIN(c) 1
+# else
+# define IN_CTYPE_DOMAIN(c) isascii(c)
+# endif
+# define L_(Ch) Ch
+# define UCHAR_TYPE unsigned char
+# define STRING_TYPE char
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# define ISSPACE(Ch) __isspace_l ((Ch), loc)
+# define ISALPHA(Ch) __isalpha_l ((Ch), loc)
+# define TOUPPER(Ch) __toupper_l ((Ch), loc)
+# else
+# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch))
+# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch))
+# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch))
+# endif
#endif
#ifdef __STDC__
@@ -151,6 +219,7 @@ extern int errno;
#endif
+
/* Convert NPTR to an `unsigned long int' or `long int' in base BASE.
If BASE is 0 the base is determined by the presence of a leading
zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal.
@@ -159,11 +228,12 @@ extern int errno;
one converted is stored in *ENDPTR. */
INT
-INTERNAL (strtol) (nptr, endptr, base, group)
+INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
int base;
int group;
+ LOCALE_PARAM_DECL
{
int negative;
register unsigned LONG int cutoff;
@@ -175,8 +245,11 @@ INTERNAL (strtol) (nptr, endptr, base, group)
int overflow;
#ifdef USE_NUMBER_GROUPING
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+ struct locale_data *current = loc->__locales[LC_NUMERIC];
+# endif
/* The thousands character of the current locale. */
- wchar_t thousands;
+ wchar_t thousands = L'\0';
/* The numeric grouping specification of the current locale,
in the format described in <locale.h>. */
const char *grouping;
@@ -189,9 +262,11 @@ INTERNAL (strtol) (nptr, endptr, base, group)
else
{
/* Figure out the thousands separator character. */
- if (mbtowc (&thousands, _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP),
- strlen (_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP))) <= 0)
- thousands = (wchar_t) *_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
+# if defined _LIBC || defined _HAVE_BTOWC
+ thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP));
+ if (thousands == WEOF)
+ thousands = L'\0';
+# endif
if (thousands == L'\0')
grouping = NULL;
}
@@ -201,7 +276,10 @@ INTERNAL (strtol) (nptr, endptr, base, group)
#endif
if (base < 0 || base == 1 || base > 36)
- base = 10;
+ {
+ __set_errno (EINVAL);
+ return 0;
+ }
save = s = nptr;
@@ -225,23 +303,19 @@ INTERNAL (strtol) (nptr, endptr, base, group)
else
negative = 0;
- if (base == 16 && s[0] == L_('0') && TOUPPER (s[1]) == L_('X'))
- s += 2;
-
- /* If BASE is zero, figure it out ourselves. */
- if (base == 0)
- if (*s == L_('0'))
- {
- if (TOUPPER (s[1]) == L_('X'))
- {
- s += 2;
- base = 16;
- }
- else
- base = 8;
- }
- else
- base = 10;
+ /* Recognize number prefix and if BASE is zero, figure it out ourselves. */
+ if (*s == L_('0'))
+ {
+ if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X'))
+ {
+ s += 2;
+ base = 16;
+ }
+ else if (base == 0)
+ base = 8;
+ }
+ else if (base == 0)
+ base = 10;
/* Save the pointer so we can check later if anything happened. */
save = s;
@@ -265,32 +339,65 @@ INTERNAL (strtol) (nptr, endptr, base, group)
#endif
end = NULL;
- cutoff = ULONG_MAX / (unsigned LONG int) base;
- cutlim = ULONG_MAX % (unsigned LONG int) base;
+ cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base;
+ cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base;
overflow = 0;
i = 0;
- for (c = *s; c != L_('\0'); c = *++s)
+ c = *s;
+ if (sizeof (long int) != sizeof (LONG int))
{
- if (s == end)
- break;
- if (c >= L_('0') && c <= L_('9'))
- c -= L_('0');
- else if (ISALPHA (c))
- c = TOUPPER (c) - L_('A') + 10;
- else
- break;
- if ((int) c >= base)
- break;
- /* Check for overflow. */
- if (i > cutoff || (i == cutoff && c > cutlim))
- overflow = 1;
- else
+ unsigned long int j = 0;
+ unsigned long int jmax = ULONG_MAX / base;
+
+ for (;c != L_('\0'); c = *++s)
{
- i *= (unsigned LONG int) base;
- i += c;
+ if (s == end)
+ break;
+ if (c >= L_('0') && c <= L_('9'))
+ c -= L_('0');
+ else if (ISALPHA (c))
+ c = TOUPPER (c) - L_('A') + 10;
+ else
+ break;
+ if ((int) c >= base)
+ break;
+ /* Note that we never can have an overflow. */
+ else if (j >= jmax)
+ {
+ /* We have an overflow. Now use the long representation. */
+ i = (unsigned LONG int) j;
+ goto use_long;
+ }
+ else
+ j = j * (unsigned long int) base + c;
}
+
+ i = (unsigned LONG int) j;
}
+ else
+ for (;c != L_('\0'); c = *++s)
+ {
+ if (s == end)
+ break;
+ if (c >= L_('0') && c <= L_('9'))
+ c -= L_('0');
+ else if (ISALPHA (c))
+ c = TOUPPER (c) - L_('A') + 10;
+ else
+ break;
+ if ((int) c >= base)
+ break;
+ /* Check for overflow. */
+ if (i > cutoff || (i == cutoff && c > cutlim))
+ overflow = 1;
+ else
+ {
+ use_long:
+ i *= (unsigned LONG int) base;
+ i += c;
+ }
+ }
/* Check if anything actually happened. */
if (s == save)
@@ -306,8 +413,8 @@ INTERNAL (strtol) (nptr, endptr, base, group)
`unsigned LONG int', but outside the range of `LONG int'. */
if (overflow == 0
&& i > (negative
- ? -((unsigned LONG int) (LONG_MIN + 1)) + 1
- : (unsigned LONG int) LONG_MAX))
+ ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1
+ : (unsigned LONG int) STRTOL_LONG_MAX))
overflow = 1;
#endif
@@ -315,14 +422,14 @@ INTERNAL (strtol) (nptr, endptr, base, group)
{
__set_errno (ERANGE);
#if UNSIGNED
- return ULONG_MAX;
+ return STRTOL_ULONG_MAX;
#else
- return negative ? LONG_MIN : LONG_MAX;
+ return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX;
#endif
}
/* Return the result of the appropriate sign. */
- return (negative ? -i : i);
+ return negative ? -i : i;
noconv:
/* We must handle a special case here: the base is 0 or 16 and the
@@ -330,12 +437,14 @@ noconv:
hexadecimal digits. This is no error case. We return 0 and
ENDPTR points to the `x`. */
if (endptr != NULL)
- if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
- && save[-2] == L_('0'))
- *endptr = (STRING_TYPE *) &save[-1];
- else
- /* There was no number to convert. */
- *endptr = (STRING_TYPE *) nptr;
+ {
+ if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
+ && save[-2] == L_('0'))
+ *endptr = (STRING_TYPE *) &save[-1];
+ else
+ /* There was no number to convert. */
+ *endptr = (STRING_TYPE *) nptr;
+ }
return 0L;
}
@@ -359,10 +468,11 @@ INT
#ifdef weak_function
weak_function
#endif
-strtol (nptr, endptr, base)
+strtol (nptr, endptr, base LOCALE_PARAM)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
int base;
+ LOCALE_PARAM_DECL
{
- return INTERNAL (strtol) (nptr, endptr, base, 0);
+ return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM);
}
diff --git a/libltdl/COPYING.LIB b/libltdl/COPYING.LIB
new file mode 100644
index 00000000..eb685a5e
--- /dev/null
+++ b/libltdl/COPYING.LIB
@@ -0,0 +1,481 @@
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library 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 of the License, or (at your option) any later version.
+
+ This library 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 library; if not, write to the Free
+ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/libltdl/Makefile.am b/libltdl/Makefile.am
new file mode 100644
index 00000000..12bdcbbf
--- /dev/null
+++ b/libltdl/Makefile.am
@@ -0,0 +1,44 @@
+## Process this file with automake to produce Makefile.in
+
+AUTOMAKE_OPTIONS = no-dependencies foreign
+
+if INSTALL_LTDL
+include_HEADERS = ltdl.h
+lib_LTLIBRARIES = libltdl.la
+else
+noinst_HEADERS = ltdl.h
+endif
+
+if CONVENIENCE_LTDL
+noinst_LTLIBRARIES = libltdlc.la
+endif
+
+libltdl_la_SOURCES = ltdl.c
+libltdl_la_LDFLAGS = -version-info 1:1:1
+libltdl_la_LIBADD = $(LIBADD_DL)
+
+libltdlc_la_SOURCES = ltdl.c
+libltdlc_la_LIBADD = $(LIBADD_DL)
+
+## Because we do not have automatic dependency tracking:
+ltdl.lo: ltdl.h config.h
+
+$(OBJECTS): libtool
+libtool: $(LIBTOOL_DEPS)
+ $(SHELL) ./config.status --recheck
+
+## This allows us to install libltdl without using ln and without creating
+## a world writeable directory.
+## FIXME: Removed this rule once automake can do this properly by itself.
+local-install-files: $(DISTFILES)
+ -rm -rf $(DESTDIR)$(datadir)/libtool/libltdl
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \
+ else \
+ test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \
+ || cp -p $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \
+ fi; \
+ done
diff --git a/libltdl/Makefile.in b/libltdl/Makefile.in
new file mode 100644
index 00000000..6d4c93b2
--- /dev/null
+++ b/libltdl/Makefile.in
@@ -0,0 +1,454 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = .
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+DLLTOOL = @DLLTOOL@
+LD = @LD@
+LIBADD_DL = @LIBADD_DL@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+NM = @NM@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+
+AUTOMAKE_OPTIONS = no-dependencies foreign
+
+@INSTALL_LTDL_TRUE@include_HEADERS = ltdl.h
+@INSTALL_LTDL_TRUE@lib_LTLIBRARIES = libltdl.la
+@INSTALL_LTDL_FALSE@noinst_HEADERS = ltdl.h
+
+@CONVENIENCE_LTDL_TRUE@noinst_LTLIBRARIES = libltdlc.la
+
+libltdl_la_SOURCES = ltdl.c
+libltdl_la_LDFLAGS = -version-info 1:1:1
+libltdl_la_LIBADD = $(LIBADD_DL)
+
+libltdlc_la_SOURCES = ltdl.c
+libltdlc_la_LIBADD = $(LIBADD_DL)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I.
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libltdl_la_DEPENDENCIES =
+libltdl_la_OBJECTS = ltdl.lo
+libltdlc_la_LDFLAGS =
+libltdlc_la_DEPENDENCIES =
+libltdlc_la_OBJECTS = ltdl.lo
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+HEADERS = $(include_HEADERS) $(noinst_HEADERS)
+
+DIST_COMMON = README ./stamp-h.in COPYING.LIB Makefile.am Makefile.in \
+acconfig.h acinclude.m4 aclocal.m4 config.h.in configure configure.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libltdl_la_SOURCES) $(libltdlc_la_SOURCES)
+OBJECTS = $(libltdl_la_OBJECTS) $(libltdlc_la_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
+ cd $(srcdir) && $(ACLOCAL)
+
+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+config.h: stamp-h
+ @if test ! -f $@; then \
+ rm -f stamp-h; \
+ $(MAKE) stamp-h; \
+ else :; fi
+stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES= CONFIG_HEADERS=config.h \
+ $(SHELL) ./config.status
+ @echo timestamp > stamp-h 2> /dev/null
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in
+ @if test ! -f $@; then \
+ rm -f $(srcdir)/stamp-h.in; \
+ $(MAKE) $(srcdir)/stamp-h.in; \
+ else :; fi
+$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
+ cd $(top_srcdir) && $(AUTOHEADER)
+ @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
+
+mostlyclean-hdr:
+
+clean-hdr:
+
+distclean-hdr:
+ -rm -f config.h
+
+maintainer-clean-hdr:
+
+mostlyclean-libLTLIBRARIES:
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+
+distclean-libLTLIBRARIES:
+
+maintainer-clean-libLTLIBRARIES:
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(libdir)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
+ $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
+ else :; fi; \
+ done
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+ done
+
+mostlyclean-noinstLTLIBRARIES:
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+
+distclean-noinstLTLIBRARIES:
+
+maintainer-clean-noinstLTLIBRARIES:
+
+.c.o:
+ $(COMPILE) -c $<
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES)
+ $(LINK) -rpath $(libdir) $(libltdl_la_LDFLAGS) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS)
+
+libltdlc.la: $(libltdlc_la_OBJECTS) $(libltdlc_la_DEPENDENCIES)
+ $(LINK) $(libltdlc_la_LDFLAGS) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS)
+
+install-includeHEADERS: $(include_HEADERS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(includedir)
+ @list='$(include_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
+ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
+ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
+ done
+
+uninstall-includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ list='$(include_HEADERS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(includedir)/$$p; \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ -rm -rf $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
+ mkdir $(distdir)/=build
+ mkdir $(distdir)/=inst
+ dc_install_base=`cd $(distdir)/=inst && pwd`; \
+ cd $(distdir)/=build \
+ && ../configure --srcdir=.. --prefix=$$dc_install_base \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) dist
+ -rm -rf $(distdir)
+ @banner="$(distdir).tar.gz is ready for distribution"; \
+ dashes=`echo "$$banner" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ echo "$$dashes"
+dist: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+dist-all: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+distdir: $(DISTFILES)
+ -rm -rf $(distdir)
+ mkdir $(distdir)
+ -chmod 777 $(distdir)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+all-recursive-am: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+install-exec-am: install-libLTLIBRARIES
+install-exec: install-exec-am
+
+install-data-am: install-includeHEADERS
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-libLTLIBRARIES uninstall-includeHEADERS
+uninstall: uninstall-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-hdr mostlyclean-libLTLIBRARIES \
+ mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-hdr clean-libLTLIBRARIES clean-noinstLTLIBRARIES \
+ clean-compile clean-libtool clean-tags clean-generic \
+ mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-hdr distclean-libLTLIBRARIES \
+ distclean-noinstLTLIBRARIES distclean-compile \
+ distclean-libtool distclean-tags distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+ -rm -f config.status
+
+maintainer-clean-am: maintainer-clean-hdr \
+ maintainer-clean-libLTLIBRARIES \
+ maintainer-clean-noinstLTLIBRARIES \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+ -rm -f config.status
+
+.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
+mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
+clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
+uninstall-libLTLIBRARIES install-libLTLIBRARIES \
+mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
+clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool uninstall-includeHEADERS \
+install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \
+maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck all-recursive-am install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+ltdl.lo: ltdl.h config.h
+
+$(OBJECTS): libtool
+libtool: $(LIBTOOL_DEPS)
+ $(SHELL) ./config.status --recheck
+
+local-install-files: $(DISTFILES)
+ -rm -rf $(DESTDIR)$(datadir)/libtool/libltdl
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \
+ else \
+ test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \
+ || cp -p $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \
+ fi; \
+ done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libltdl/README b/libltdl/README
new file mode 100644
index 00000000..0b08ae28
--- /dev/null
+++ b/libltdl/README
@@ -0,0 +1 @@
+This is GNU libltdl, a system independent dlopen wrapper for GNU libtool.
diff --git a/libltdl/acconfig.h b/libltdl/acconfig.h
new file mode 100644
index 00000000..15f115c7
--- /dev/null
+++ b/libltdl/acconfig.h
@@ -0,0 +1,12 @@
+/* Some of these are defined here, not in configure.in, because
+ they're AC_DEFINEd in two different places, which causes two
+ defines to appear. Some C compilers might now appreciate it... */
+
+/* Define if you have the libdl library or equivalent. */
+#undef HAVE_LIBDL
+
+/* Define if you have the GNU dld library. */
+#undef HAVE_DLD
+
+/* Define if you have the shl_load function. */
+#undef HAVE_SHL_LOAD
diff --git a/libltdl/acinclude.m4 b/libltdl/acinclude.m4
new file mode 100644
index 00000000..2ad32064
--- /dev/null
+++ b/libltdl/acinclude.m4
@@ -0,0 +1,427 @@
+## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
+## Copyright (C) 1996-1999 Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+##
+## 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 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.
+
+# serial 40 AC_PROG_LIBTOOL
+AC_DEFUN(AC_PROG_LIBTOOL,
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+
+# Save cache, so that ltconfig can load it
+AC_CACHE_SAVE
+
+# Actually configure libtool. ac_aux_dir is where install-sh is found.
+CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
+|| AC_MSG_ERROR([libtool configure failed])
+
+# Reload cache, that may have been modified by ltconfig
+AC_CACHE_LOAD
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Redirect the config.log output again, so that the ltconfig log is not
+# clobbered by the next message.
+exec 5>>./config.log
+])
+
+AC_DEFUN(AC_LIBTOOL_SETUP,
+[AC_PREREQ(2.13)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_RANLIB])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+dnl
+
+# Check for any special flags to pass to ltconfig.
+libtool_flags="--cache-file=$cache_file"
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
+test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
+test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
+test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
+[libtool_flags="$libtool_flags --enable-dlopen"])
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[libtool_flags="$libtool_flags --enable-win32-dll"])
+AC_ARG_ENABLE(libtool-lock,
+ [ --disable-libtool-lock avoid locking (might break parallel builds)])
+test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case "$host" in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+])
+esac
+])
+
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
+
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
+
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_SHARED, [dnl
+define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)])
+
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_STATIC, [dnl
+define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
+])
+
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)])
+
+
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
+define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(fast-install,
+changequote(<<, >>)dnl
+<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+])
+
+# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
+AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)])
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+AC_DEFUN(AC_PROG_LD,
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$ac_cv_prog_gcc" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ ac_prog=`($CC -print-prog-name=ld) 2>&5`
+ case "$ac_prog" in
+ # Accept absolute paths.
+changequote(,)dnl
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+changequote([,])dnl
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(ac_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ ac_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ ac_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$ac_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_SUBST(LD)
+AC_PROG_LD_GNU
+])
+
+AC_DEFUN(AC_PROG_LD_GNU,
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ ac_cv_prog_gnu_ld=yes
+else
+ ac_cv_prog_gnu_ld=no
+fi])
+])
+
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+AC_DEFUN(AC_PROG_NM,
+[AC_MSG_CHECKING([for BSD-compatible nm])
+AC_CACHE_VAL(ac_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ ac_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ ac_cv_path_NM="$ac_dir/nm -B"
+ break
+ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ ac_cv_path_NM="$ac_dir/nm -p"
+ break
+ else
+ ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
+fi])
+NM="$ac_cv_path_NM"
+AC_MSG_RESULT([$NM])
+AC_SUBST(NM)
+])
+
+# AC_CHECK_LIBM - check for math library
+AC_DEFUN(AC_CHECK_LIBM,
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case "$host" in
+*-*-beos* | *-*-cygwin*)
+ # These system don't have libm
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, main, LIBM="-lm")
+ ;;
+esac
+])
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library, adds --enable-ltdl-convenience to
+# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
+# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
+# to be `${top_builddir}/libltdl'. Make sure you start DIR with
+# '${top_builddir}/' (note the single quotes!) if your package is not
+# flat, and, if you're not using automake, define top_builddir as
+# appropriate in the Makefiles.
+AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case "$enable_ltdl_convenience" in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
+ INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
+])
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library, and adds --enable-ltdl-install to
+# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
+# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
+# to be `${top_builddir}/libltdl'. Make sure you start DIR with
+# '${top_builddir}/' (note the single quotes!) if your package is not
+# flat, and, if you're not using automake, define top_builddir as
+# appropriate in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, main,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
+ INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ INCLTDL=
+ fi
+])
+
+dnl old names
+AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
+AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
+AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
+
+dnl This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])dnl
diff --git a/libltdl/aclocal.m4 b/libltdl/aclocal.m4
new file mode 100644
index 00000000..7ade1e6e
--- /dev/null
+++ b/libltdl/aclocal.m4
@@ -0,0 +1,566 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4
+
+dnl Copyright (C) 1994, 1995-8, 1999 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.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+
+# serial 40 AC_PROG_LIBTOOL
+AC_DEFUN(AC_PROG_LIBTOOL,
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+
+# Save cache, so that ltconfig can load it
+AC_CACHE_SAVE
+
+# Actually configure libtool. ac_aux_dir is where install-sh is found.
+CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
+|| AC_MSG_ERROR([libtool configure failed])
+
+# Reload cache, that may have been modified by ltconfig
+AC_CACHE_LOAD
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Redirect the config.log output again, so that the ltconfig log is not
+# clobbered by the next message.
+exec 5>>./config.log
+])
+
+AC_DEFUN(AC_LIBTOOL_SETUP,
+[AC_PREREQ(2.13)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_RANLIB])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+dnl
+
+# Check for any special flags to pass to ltconfig.
+libtool_flags="--cache-file=$cache_file"
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
+test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
+test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
+test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
+[libtool_flags="$libtool_flags --enable-dlopen"])
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[libtool_flags="$libtool_flags --enable-win32-dll"])
+AC_ARG_ENABLE(libtool-lock,
+ [ --disable-libtool-lock avoid locking (might break parallel builds)])
+test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case "$host" in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+])
+esac
+])
+
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
+
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
+
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_SHARED, [dnl
+define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)])
+
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_STATIC, [dnl
+define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
+])
+
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)])
+
+
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
+define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(fast-install,
+changequote(<<, >>)dnl
+<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+])
+
+# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
+AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)])
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+AC_DEFUN(AC_PROG_LD,
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$ac_cv_prog_gcc" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ ac_prog=`($CC -print-prog-name=ld) 2>&5`
+ case "$ac_prog" in
+ # Accept absolute paths.
+changequote(,)dnl
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+changequote([,])dnl
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(ac_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ ac_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ ac_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$ac_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_SUBST(LD)
+AC_PROG_LD_GNU
+])
+
+AC_DEFUN(AC_PROG_LD_GNU,
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ ac_cv_prog_gnu_ld=yes
+else
+ ac_cv_prog_gnu_ld=no
+fi])
+])
+
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+AC_DEFUN(AC_PROG_NM,
+[AC_MSG_CHECKING([for BSD-compatible nm])
+AC_CACHE_VAL(ac_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ ac_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ ac_cv_path_NM="$ac_dir/nm -B"
+ break
+ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ ac_cv_path_NM="$ac_dir/nm -p"
+ break
+ else
+ ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
+fi])
+NM="$ac_cv_path_NM"
+AC_MSG_RESULT([$NM])
+AC_SUBST(NM)
+])
+
+# AC_CHECK_LIBM - check for math library
+AC_DEFUN(AC_CHECK_LIBM,
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case "$host" in
+*-*-beos* | *-*-cygwin*)
+ # These system don't have libm
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, main, LIBM="-lm")
+ ;;
+esac
+])
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library, adds --enable-ltdl-convenience to
+# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
+# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
+# to be `${top_builddir}/libltdl'. Make sure you start DIR with
+# '${top_builddir}/' (note the single quotes!) if your package is not
+# flat, and, if you're not using automake, define top_builddir as
+# appropriate in the Makefiles.
+AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case "$enable_ltdl_convenience" in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
+ INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
+])
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library, and adds --enable-ltdl-install to
+# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
+# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
+# to be `${top_builddir}/libltdl'. Make sure you start DIR with
+# '${top_builddir}/' (note the single quotes!) if your package is not
+# flat, and, if you're not using automake, define top_builddir as
+# appropriate in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, main,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
+ INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ INCLTDL=
+ fi
+])
+
+dnl old names
+AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
+AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
+AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
+
+dnl This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])dnl
+
+# Do all the work for Automake. This macro actually does too much --
+# some checks are only needed if your package does certain things.
+# But this isn't really a big deal.
+
+# serial 1
+
+dnl Usage:
+dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+
+AC_DEFUN(AM_INIT_AUTOMAKE,
+[AC_REQUIRE([AC_PROG_INSTALL])
+PACKAGE=[$1]
+AC_SUBST(PACKAGE)
+VERSION=[$2]
+AC_SUBST(VERSION)
+dnl test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+ifelse([$3],,
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir && pwd`
+AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
+AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+AC_REQUIRE([AC_PROG_MAKE_SET])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+AC_DEFUN(AM_SANITY_CHECK,
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "[$]*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "[$]*" != "X $srcdir/configure conftestfile" \
+ && test "[$]*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "[$]2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+rm -f conftest*
+AC_MSG_RESULT(yes)])
+
+dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
+dnl The program must properly implement --version.
+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.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if ($2 --version) < /dev/null > /dev/null 2>&1; then
+ $1=$2
+ AC_MSG_RESULT(found)
+else
+ $1="$3/missing $2"
+ AC_MSG_RESULT(missing)
+fi
+AC_SUBST($1)])
+
+# Like AC_CONFIG_HEADER, but automatically create stamp file.
+
+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.
+dnl This file resides in the same directory as the config header
+dnl that is generated. We must strip everything past the first ":",
+dnl and everything past the last "/".
+AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
+ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
+<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
+<<am_indx=1
+for am_file in <<$1>>; do
+ case " <<$>>CONFIG_HEADERS " in
+ *" <<$>>am_file "*<<)>>
+ echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
+ ;;
+ esac
+ am_indx=`expr "<<$>>am_indx" + 1`
+done<<>>dnl>>)
+changequote([,]))])
+
+# Add --enable-maintainer-mode option to configure.
+# From Jim Meyering
+
+# serial 1
+
+AC_DEFUN(AM_MAINTAINER_MODE,
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode is disabled by default
+ AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+ AC_MSG_RESULT($USE_MAINTAINER_MODE)
+ AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST(MAINT)dnl
+]
+)
+
+# Define a conditional.
+
+AC_DEFUN(AM_CONDITIONAL,
+[AC_SUBST($1_TRUE)
+AC_SUBST($1_FALSE)
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi])
+
diff --git a/libltdl/config.h.in b/libltdl/config.h.in
new file mode 100644
index 00000000..1e7613ef
--- /dev/null
+++ b/libltdl/config.h.in
@@ -0,0 +1,80 @@
+/* config.h.in. Generated automatically from configure.in by autoheader. */
+
+/* Define to empty if the keyword does not work. */
+#undef const
+
+/* Define as __inline if that's what the C compiler calls it. */
+#undef inline
+
+/* Define if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define if you have the libdl library or equivalent. */
+#undef HAVE_LIBDL
+
+/* Define if you have the GNU dld library. */
+#undef HAVE_DLD
+
+/* Define if you have the shl_load function. */
+#undef HAVE_SHL_LOAD
+
+/* Define if you have the dlerror function. */
+#undef HAVE_DLERROR
+
+/* Define if you have the index function. */
+#undef HAVE_INDEX
+
+/* Define if you have the rindex function. */
+#undef HAVE_RINDEX
+
+/* Define if you have the strchr function. */
+#undef HAVE_STRCHR
+
+/* Define if you have the strrchr function. */
+#undef HAVE_STRRCHR
+
+/* Define if you have the <ctype.h> header file. */
+#undef HAVE_CTYPE_H
+
+/* Define if you have the <dl.h> header file. */
+#undef HAVE_DL_H
+
+/* Define if you have the <dld.h> header file. */
+#undef HAVE_DLD_H
+
+/* Define if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
+/* Define if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
+/* Define if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to the extension used for shared libraries, say, .so. */
+#undef LTDL_SHLIB_EXT
+
+/* Define to the name of the environment variable that determines the dynamic library search path. */
+#undef LTDL_SHLIBPATH_VAR
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries. */
+#undef LTDL_OBJDIR
+
+/* Define if libtool can extract symbol lists from object files. */
+#undef HAVE_PRELOADED_SYMBOLS
+
+/* Define if dlsym() requires a leading underscode in symbol names. */
+#undef NEED_USCORE
+
diff --git a/libltdl/configure b/libltdl/configure
new file mode 100755
index 00000000..91329a88
--- /dev/null
+++ b/libltdl/configure
@@ -0,0 +1,3077 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer"
+ac_help="$ac_help
+ --enable-shared[=PKGS] build shared libraries [default=yes]"
+ac_help="$ac_help
+ --enable-static[=PKGS] build static libraries [default=yes]"
+ac_help="$ac_help
+ --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
+ac_help="$ac_help
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]"
+ac_help="$ac_help
+ --disable-libtool-lock avoid locking (might break parallel builds)"
+ac_help="$ac_help
+ --enable-ltdl-install install libltdl"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=ltdl.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+if test -z "$enable_ltdl_install$enable_ltdl_convenience"; then
+ if test -f ${srcdir}/ltconfig && test -f ${srcdir}/ltmain.sh; then
+ # if libltdl is libtoolized, it is assumed to be stand-alone and
+ # installed unless the command line overrides it (tested above)
+ enable_ltdl_install=yes
+ else
+ echo "configure: warning: *** The top-level configure must select either" 1>&2
+ echo "configure: warning: *** A""C_LIBLTDL_INSTALLABLE or A""C_LIBLTDL_CONVENIENCE." 1>&2
+ { echo "configure: error: *** Maybe you want to --enable-ltdl-install?" 1>&2; exit 1; }
+ fi
+fi
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# 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:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# 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:584: 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
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:637: checking whether build environment is sane" >&5
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "$*" != "X $srcdir/configure conftestfile" \
+ && test "$*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+ fi
+
+ test "$2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1>&2; exit 1; }
+fi
+rm -f conftest*
+echo "$ac_t""yes" 1>&6
+if test "$program_transform_name" = s,x,x,; then
+ program_transform_name=
+else
+ # Double any \ or $. echo might interpret backslashes.
+ cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+ rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+ program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:694: 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"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+PACKAGE=libltdl
+
+VERSION=1.0
+
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
+fi
+
+
+
+missing_dir=`cd $ac_aux_dir && pwd`
+echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+echo "configure:733: checking for working aclocal" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+ ACLOCAL=aclocal
+ echo "$ac_t""found" 1>&6
+else
+ ACLOCAL="$missing_dir/missing aclocal"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+echo "configure:746: checking for working autoconf" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (autoconf --version) < /dev/null > /dev/null 2>&1; then
+ AUTOCONF=autoconf
+ echo "$ac_t""found" 1>&6
+else
+ AUTOCONF="$missing_dir/missing autoconf"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working automake""... $ac_c" 1>&6
+echo "configure:759: checking for working automake" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (automake --version) < /dev/null > /dev/null 2>&1; then
+ AUTOMAKE=automake
+ echo "$ac_t""found" 1>&6
+else
+ AUTOMAKE="$missing_dir/missing automake"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+echo "configure:772: checking for working autoheader" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (autoheader --version) < /dev/null > /dev/null 2>&1; then
+ AUTOHEADER=autoheader
+ echo "$ac_t""found" 1>&6
+else
+ AUTOHEADER="$missing_dir/missing autoheader"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+echo "configure:785: checking for working makeinfo" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
+ MAKEINFO=makeinfo
+ echo "$ac_t""found" 1>&6
+else
+ MAKEINFO="$missing_dir/missing makeinfo"
+ echo "$ac_t""missing" 1>&6
+fi
+
+
+
+
+
+echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
+echo "configure:802: checking whether to enable maintainer-specific portions of Makefiles" >&5
+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+ enableval="$enable_maintainer_mode"
+ USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
+
+
+if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:828: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:858: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ 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 "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:909: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:941: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 952 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:983: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:988: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:997: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1016: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:1048: 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 1053 "configure"
+#include "confdefs.h"
+
+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;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:1102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_const=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+ cat >> confdefs.h <<\EOF
+#define const
+EOF
+
+fi
+
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:1123: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+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 1130 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:1137: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_inline=$ac_kw; break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+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
+EOF
+ ;;
+esac
+
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_shared=yes
+fi
+
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+ enableval="$enable_static"
+ p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_static=yes
+fi
+
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+ enableval="$enable_fast_install"
+ p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_fast_install=yes
+fi
+
+
+# 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
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:1238: checking host system type" >&5
+
+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 one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+esac
+
+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
+
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:1259: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+esac
+
+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 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:1279: 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
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval="$with_gnu_ld"
+ test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$ac_cv_prog_gcc" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
+echo "configure:1318: checking for ld used by GCC" >&5
+ ac_prog=`($CC -print-prog-name=ld) 2>&5`
+ case "$ac_prog" in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
+echo "configure:1342: checking for GNU ld" >&5
+else
+ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+echo "configure:1345: checking for non-GNU ld" >&5
+fi
+if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ ac_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ ac_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$ac_cv_path_LD"
+if test -n "$LD"; then
+ echo "$ac_t""$LD" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
+
+echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
+echo "configure:1381: checking if the linker ($LD) is GNU ld" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ ac_cv_prog_gnu_ld=yes
+else
+ ac_cv_prog_gnu_ld=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
+
+
+echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
+echo "configure:1397: checking for BSD-compatible nm" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ ac_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ ac_cv_path_NM="$ac_dir/nm -B"
+ break
+ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ ac_cv_path_NM="$ac_dir/nm -p"
+ break
+ else
+ ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
+fi
+fi
+
+NM="$ac_cv_path_NM"
+echo "$ac_t""$NM" 1>&6
+
+
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:1434: checking whether ln -s works" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ rm -f conftestdata
+if ln -s X conftestdata 2>/dev/null
+then
+ rm -f conftestdata
+ ac_cv_prog_LN_S="ln -s"
+else
+ ac_cv_prog_LN_S=ln
+fi
+fi
+LN_S="$ac_cv_prog_LN_S"
+if test "$ac_cv_prog_LN_S" = "ln -s"; then
+ echo "$ac_t""yes" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+# Check for any special flags to pass to ltconfig.
+libtool_flags="--cache-file=$cache_file"
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
+test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
+test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
+test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+ :
+fi
+
+test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case "$host" in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line 1478 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:1479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
+echo "configure:1500: checking whether the C compiler needs -belf" >&5
+if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1505 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:1512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ lt_cv_cc_needs_belf=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ lt_cv_cc_needs_belf=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+
+esac
+
+
+# Save cache, so that ltconfig can load it
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+
+# Actually configure libtool. ac_aux_dir is where install-sh is found.
+CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
+|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
+
+# Reload cache, that may have been modified by ltconfig
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Redirect the config.log output again, so that the ltconfig log is not
+# clobbered by the next message.
+exec 5>>./config.log
+
+
+
+# Check whether --enable-ltdl-install or --disable-ltdl-install was given.
+if test "${enable_ltdl_install+set}" = set; then
+ enableval="$enable_ltdl_install"
+ :
+fi
+
+
+
+
+if test x"${enable_ltdl_install-no}" != xno; then
+ INSTALL_LTDL_TRUE=
+ INSTALL_LTDL_FALSE='#'
+else
+ INSTALL_LTDL_TRUE='#'
+ INSTALL_LTDL_FALSE=
+fi
+
+
+if test x"${enable_ltdl_convenience-no}" != xno; then
+ CONVENIENCE_LTDL_TRUE=
+ CONVENIENCE_LTDL_FALSE='#'
+else
+ CONVENIENCE_LTDL_TRUE='#'
+ CONVENIENCE_LTDL_FALSE=
+fi
+
+rm -f conftest
+./libtool --config > conftest
+. ./conftest
+rm -f conftest
+
+echo $ac_n "checking which extension is used for shared libraries""... $ac_c" 1>&6
+echo "configure:1647: checking which extension is used for shared libraries" >&5
+if eval "test \"`echo '$''{'libltdl_cv_shlibext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ (
+ last=
+ for spec in $library_names_spec; do
+ last="$spec"
+ done
+
+ echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest
+
+)
+libltdl_cv_shlibext=`cat conftest`
+rm -f conftest
+
+fi
+
+echo "$ac_t""$libltdl_cv_shlibext" 1>&6
+if test -n "$libltdl_cv_shlibext"; then
+ cat >> confdefs.h <<EOF
+#define LTDL_SHLIB_EXT "$libltdl_cv_shlibext"
+EOF
+
+fi
+
+echo $ac_n "checking which variable specifies run-time library path""... $ac_c" 1>&6
+echo "configure:1674: checking which variable specifies run-time library path" >&5
+if eval "test \"`echo '$''{'libltdl_cv_shlibpath_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ libltdl_cv_shlibpath_var="$shlibpath_var"
+fi
+
+echo "$ac_t""$libltdl_cv_shlibpath_var" 1>&6
+if test -n "$libltdl_cv_shlibpath_var"; then
+ cat >> confdefs.h <<EOF
+#define LTDL_SHLIBPATH_VAR "$libltdl_cv_shlibpath_var"
+EOF
+
+fi
+
+echo $ac_n "checking for objdir""... $ac_c" 1>&6
+echo "configure:1690: checking for objdir" >&5
+if eval "test \"`echo '$''{'libltdl_cv_objdir'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ libltdl_cv_objdir="$objdir"
+fi
+
+echo "$ac_t""$libltdl_cv_objdir" 1>&6
+test -z "$libltdl_cv_objdir" && libltdl_cv_objdir=".libs"
+cat >> confdefs.h <<EOF
+#define LTDL_OBJDIR "$libltdl_cv_objdir/"
+EOF
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1705: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # This must be in double quotes, not single quotes, because CPP may get
+ # substituted into the Makefile and "${CC-cc}" will confuse make.
+ CPP="${CC-cc} -E"
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+#line 1720 "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:1726: \"$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
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+#line 1737 "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:1743: \"$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
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+#line 1754 "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:1760: \"$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
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+ ac_cv_prog_CPP="$CPP"
+fi
+ CPP="$ac_cv_prog_CPP"
+else
+ ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:1785: 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 1790 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1798: \"$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
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+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 1815 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "memchr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=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 1833 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+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
+fi
+rm -f conftest*
+
+fi
+
+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
+ :
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1854 "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); }
+
+EOF
+if { (eval echo configure:1865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+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
+
+fi
+
+for ac_hdr in malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:1892: 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 1897 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1902: \"$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./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_hdr in string.h strings.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:1932: 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 1937 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1942: \"$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./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ break
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in strchr index
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1971: 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 1976 "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:1999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ 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
+
+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' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ break
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in strrchr rindex
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2026: 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 2031 "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:2054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ 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
+
+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' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ break
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+echo $ac_n "checking whether libtool supports -dlopen/-dlpreopen""... $ac_c" 1>&6
+echo "configure:2080: checking whether libtool supports -dlopen/-dlpreopen" >&5
+if eval "test \"`echo '$''{'libltdl_cv_preloaded_symbols'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$global_symbol_pipe"; then
+ libltdl_cv_preloaded_symbols=yes
+ else
+ libltdl_cv_preloaded_symbols=no
+ fi
+
+fi
+
+echo "$ac_t""$libltdl_cv_preloaded_symbols" 1>&6
+if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_PRELOADED_SYMBOLS 1
+EOF
+
+fi
+
+LIBADD_DL=
+echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+echo "configure:2102: checking for dlopen in -ldl" >&5
+ac_lib_var=`echo dl'_'dlopen | 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="-ldl $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2110 "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 dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo configure:2121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ 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
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBDL 1
+EOF
+ LIBADD_DL="-ldl"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+echo "configure:2143: checking for dlopen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2148 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen(); 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 dlopen();
+
+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_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+dlopen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBDL 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+echo "configure:2196: checking for shl_load" >&5
+if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2201 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load(); 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 shl_load();
+
+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_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+shl_load();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_SHL_LOAD 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+echo "configure:2245: checking for shl_load in -ldld" >&5
+ac_lib_var=`echo dld'_'shl_load | 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="-ldld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2253 "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 shl_load();
+
+int main() {
+shl_load()
+; return 0; }
+EOF
+if { (eval echo configure:2264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ 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
+ cat >> confdefs.h <<\EOF
+#define HAVE_SHL_LOAD 1
+EOF
+ LIBADD_DL="$LIBADD_DL -ldld"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
+echo "configure:2290: checking for dld_link in -ldld" >&5
+ac_lib_var=`echo dld'_'dld_link | 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="-ldld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2298 "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 dld_link();
+
+int main() {
+dld_link()
+; return 0; }
+EOF
+if { (eval echo configure:2309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ 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
+ cat >> confdefs.h <<\EOF
+#define HAVE_DLD 1
+EOF
+test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+
+if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then
+ LIBS_SAVE="$LIBS"
+ LIBS="$LIBS $LIBADD_DL"
+ for ac_func in dlerror
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2340: 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 2345 "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:2368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ 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
+
+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' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ LIBS="$LIBS_SAVE"
+fi
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6
+echo "configure:2397: checking command to parse $NM output" >&5
+if eval "test \"`echo '$''{'ac_cv_sys_global_symbol_pipe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # These are sane defaults that work on at least a few old systems.
+# {They come from Ultrix. What could be older than Ultrix?!! ;)}
+
+# Character class describing NM global symbol codes.
+ac_symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+ac_symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Define system-specific variables.
+case "$host_os" in
+aix*)
+ ac_symcode='[BCDT]'
+ ;;
+cygwin* | mingw*)
+ ac_symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
+ ;;
+irix*)
+ ac_symcode='[BCDEGRST]'
+ ;;
+solaris*)
+ ac_symcode='[BDT]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+ ac_symcode='[ABCDGISTW]'
+fi
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.* \($ac_symcode\) *\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ ac_pipe_works=no
+ rm -f conftest.$ac_ext
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func;return 0;}
+EOF
+
+ if { (eval echo configure:2460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ # Now try to grab the symbols.
+ ac_nlist=conftest.nm
+
+ if { (eval echo configure:2464: \"$NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5; } && test -s "$ac_nlist"; then
+
+ # Try sorting and uniquifying the output.
+ if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
+ mv -f "$ac_nlist"T "$ac_nlist"
+ else
+ rm -f "$ac_nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then
+ cat <<EOF > conftest.c
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c'
+
+ cat <<EOF >> conftest.c
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+ sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
+ cat <<\EOF >> conftest.c
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ ac_save_LIBS="$LIBS"
+ ac_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if { (eval echo configure:2516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ ac_pipe_works=yes
+ else
+ echo "configure: failed program was:" >&5
+ cat conftest.c >&5
+ fi
+ LIBS="$ac_save_LIBS"
+ CFLAGS="$ac_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $ac_nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $ac_nlist" >&5
+ fi
+ else
+ echo "cannot run $ac_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.c >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$ac_pipe_works" = yes; then
+ if test x"$ac_symprfx" = x"_"; then
+ ac_cv_sys_symbol_underscore=yes
+ else
+ ac_cv_sys_symbol_underscore=no
+ fi
+ break
+ else
+ ac_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+
+ac_result=yes
+if test -z "$ac_cv_sys_global_symbol_pipe"; then
+ ac_result=no
+fi
+echo "$ac_t""$ac_result" 1>&6
+
+echo $ac_n "checking for _ prefix in compiled symbols""... $ac_c" 1>&6
+echo "configure:2562: checking for _ prefix in compiled symbols" >&5
+if eval "test \"`echo '$''{'ac_cv_sys_symbol_underscore'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_cv_sys_symbol_underscore=no
+cat > conftest.$ac_ext <<EOF
+void nm_test_func(){}
+int main(){nm_test_func;return 0;}
+EOF
+if { (eval echo configure:2571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ # Now try to grab the symbols.
+ ac_nlist=conftest.nm
+ if { (eval echo configure:2574: \"$NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5; } && test -s "$ac_nlist"; then
+ # See whether the symbols have a leading underscore.
+ if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
+ ac_cv_sys_symbol_underscore=yes
+ else
+ if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
+ :
+ else
+ echo "configure: cannot find nm_test_func in $ac_nlist" >&5
+ fi
+ fi
+ else
+ echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&5
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.c >&5
+fi
+rm -rf conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_sys_symbol_underscore" 1>&6
+
+if test x"$ac_cv_sys_symbol_underscore" = xyes; then
+ if test x"$ac_cv_func_dlopen" = xyes ||
+ test x"$ac_cv_lib_dl_dlopen" = xyes ; then
+ echo $ac_n "checking whether we have to add an underscore for dlsym""... $ac_c" 1>&6
+echo "configure:2602: checking whether we have to add an underscore for dlsym" >&5
+if eval "test \"`echo '$''{'libltdl_cv_need_uscore'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ libltdl_cv_need_uscore=cross
+
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2611 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LTDL_GLOBAL DL_GLOBAL
+# else
+# define LTDL_GLOBAL 0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LTDL_LAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LTDL_LAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LTDL_LAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LTDL_LAZY_OR_NOW DL_NOW
+# else
+# define LTDL_LAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+ if(ptr1 && !ptr2) exit(0); } exit(1); }
+
+EOF
+if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ libltdl_cv_need_uscore=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ libltdl_cv_need_uscore=yes
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$libltdl_cv_need_uscore" 1>&6
+ fi
+fi
+
+if test x"$libltdl_cv_need_uscore" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define NEED_USCORE 1
+EOF
+
+fi
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
+s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
+s%@MAINT@%$MAINT%g
+s%@CC@%$CC%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%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
+s%@RANLIB@%$RANLIB%g
+s%@LD@%$LD%g
+s%@NM@%$NM%g
+s%@LN_S@%$LN_S%g
+s%@LIBTOOL@%$LIBTOOL%g
+s%@LIBTOOL_DEPS@%$LIBTOOL_DEPS%g
+s%@INSTALL_LTDL_TRUE@%$INSTALL_LTDL_TRUE%g
+s%@INSTALL_LTDL_FALSE@%$INSTALL_LTDL_FALSE%g
+s%@CONVENIENCE_LTDL_TRUE@%$CONVENIENCE_LTDL_TRUE%g
+s%@CONVENIENCE_LTDL_FALSE@%$CONVENIENCE_LTDL_FALSE%g
+s%@CPP@%$CPP%g
+s%@LIBADD_DL@%$LIBADD_DL%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='\([ ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+ CONFIG_HEADERS="config.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ echo creating $ac_file
+
+ rm -f conftest.frag conftest.in conftest.out
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h. And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+ ac_lines=`grep -c . conftest.vals`
+ # grep -c gives empty output for an empty file on some AIX systems.
+ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+ # Write a limited-size here document to conftest.frag.
+ echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+ echo 'CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+ rm -f conftest.vals
+ mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+ rm -f conftest.frag conftest.h
+ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
+ cat conftest.in >> conftest.h
+ rm -f conftest.in
+ if cmp -s $ac_file conftest.h 2>/dev/null; then
+ echo "$ac_file is unchanged"
+ rm -f conftest.h
+ else
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ fi
+ rm -f $ac_file
+ mv conftest.h $ac_file
+ fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/libltdl/configure.in b/libltdl/configure.in
new file mode 100644
index 00000000..10233c6c
--- /dev/null
+++ b/libltdl/configure.in
@@ -0,0 +1,373 @@
+dnl Process this file with autoconf to create configure.
+
+AC_INIT(ltdl.c)
+
+if test -z "$enable_ltdl_install$enable_ltdl_convenience"; then
+ if test -f ${srcdir}/ltconfig && test -f ${srcdir}/ltmain.sh; then
+ # if libltdl is libtoolized, it is assumed to be stand-alone and
+ # installed unless the command line overrides it (tested above)
+ enable_ltdl_install=yes
+ else
+ AC_MSG_WARN([*** The top-level configure must select either])
+ AC_MSG_WARN([*** [A""C_LIBLTDL_INSTALLABLE] or [A""C_LIBLTDL_CONVENIENCE].])
+ AC_MSG_ERROR([*** Maybe you want to --enable-ltdl-install?])
+ fi
+fi
+
+AM_INIT_AUTOMAKE(libltdl,1.0,-)
+AM_CONFIG_HEADER(config.h)
+AM_MAINTAINER_MODE
+
+AC_PROG_CC
+AC_C_CONST
+AC_C_INLINE
+AM_PROG_LIBTOOL
+AC_SUBST(LIBTOOL_DEPS)
+
+AC_ARG_ENABLE(ltdl-install,
+[ --enable-ltdl-install install libltdl])
+
+AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno)
+AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno)
+
+dnl Read the libtool configuration
+rm -f conftest
+./libtool --config > conftest
+. ./conftest
+rm -f conftest
+
+AC_CACHE_CHECK([which extension is used for shared libraries],
+ libltdl_cv_shlibext, [dnl
+(
+ last=
+ for spec in $library_names_spec; do
+ last="$spec"
+ done
+changequote(, )
+ echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest
+changequote([, ])
+)
+libltdl_cv_shlibext=`cat conftest`
+rm -f conftest
+])
+if test -n "$libltdl_cv_shlibext"; then
+ AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext",
+ [Define to the extension used for shared libraries, say, ".so". ])
+fi
+
+AC_CACHE_CHECK([which variable specifies run-time library path],
+ libltdl_cv_shlibpath_var, [libltdl_cv_shlibpath_var="$shlibpath_var"])
+if test -n "$libltdl_cv_shlibpath_var"; then
+ AC_DEFINE_UNQUOTED(LTDL_SHLIBPATH_VAR, "$libltdl_cv_shlibpath_var",
+ [Define to the name of the environment variable that determines the dynamic library search path. ])
+fi
+
+AC_CACHE_CHECK([for objdir],
+ libltdl_cv_objdir, [libltdl_cv_objdir="$objdir"])
+test -z "$libltdl_cv_objdir" && libltdl_cv_objdir=".libs"
+AC_DEFINE_UNQUOTED(LTDL_OBJDIR, "$libltdl_cv_objdir/",
+ [Define to the sub-directory in which libtool stores uninstalled libraries. ])
+
+AC_HEADER_STDC
+AC_CHECK_HEADERS(malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h)
+AC_CHECK_HEADERS(string.h strings.h, break)
+AC_CHECK_FUNCS(strchr index, break)
+AC_CHECK_FUNCS(strrchr rindex, break)
+
+AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen],
+ libltdl_cv_preloaded_symbols, [dnl
+ if test -n "$global_symbol_pipe"; then
+ libltdl_cv_preloaded_symbols=yes
+ else
+ libltdl_cv_preloaded_symbols=no
+ fi
+])
+if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then
+ AC_DEFINE(HAVE_PRELOADED_SYMBOLS, 1,
+ [Define if libtool can extract symbol lists from object files. ])
+fi
+
+LIBADD_DL=
+AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1) LIBADD_DL="-ldl"],
+[AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1)])])
+AC_CHECK_FUNC(shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1)],
+[AC_CHECK_LIB(dld, shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1) LIBADD_DL="$LIBADD_DL -ldld"])])
+AC_CHECK_LIB(dld, dld_link, [AC_DEFINE(HAVE_DLD, 1)dnl
+test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"])
+AC_SUBST(LIBADD_DL)
+
+if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then
+ LIBS_SAVE="$LIBS"
+ LIBS="$LIBS $LIBADD_DL"
+ AC_CHECK_FUNCS(dlerror)
+ LIBS="$LIBS_SAVE"
+fi
+
+dnl Check for command to grab the raw symbol name followed
+dnl by C symbol name from nm.
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output])
+AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
+[# These are sane defaults that work on at least a few old systems.
+# {They come from Ultrix. What could be older than Ultrix?!! ;)}
+
+changequote(,)dnl
+# Character class describing NM global symbol codes.
+ac_symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+ac_symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Define system-specific variables.
+case "$host_os" in
+aix*)
+ ac_symcode='[BCDT]'
+ ;;
+cygwin* | mingw*)
+ ac_symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
+ ;;
+irix*)
+ ac_symcode='[BCDEGRST]'
+ ;;
+solaris*)
+ ac_symcode='[BDT]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+ ac_symcode='[ABCDGISTW]'
+fi
+changequote([,])dnl
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($ac_symcode\)[ ][ ]*\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ ac_pipe_works=no
+ rm -f conftest.$ac_ext
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func;return 0;}
+EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ ac_nlist=conftest.nm
+
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
+
+ # Try sorting and uniquifying the output.
+ if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
+ mv -f "$ac_nlist"T "$ac_nlist"
+ else
+ rm -f "$ac_nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then
+ cat <<EOF > conftest.c
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c'
+
+ cat <<EOF >> conftest.c
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+changequote(,)dnl
+lt_preloaded_symbols[] =
+changequote([,])dnl
+{
+EOF
+ sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
+ cat <<\EOF >> conftest.c
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ ac_save_LIBS="$LIBS"
+ ac_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if AC_TRY_EVAL(ac_link) && test -s conftest; then
+ ac_pipe_works=yes
+ else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat conftest.c >&AC_FD_CC
+ fi
+ LIBS="$ac_save_LIBS"
+ CFLAGS="$ac_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
+ fi
+ else
+ echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC
+ fi
+ else
+ echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
+ fi
+ else
+ echo "$progname: failed program was:" >&AC_FD_CC
+ cat conftest.c >&AC_FD_CC
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$ac_pipe_works" = yes; then
+ if test x"$ac_symprfx" = x"_"; then
+ ac_cv_sys_symbol_underscore=yes
+ else
+ ac_cv_sys_symbol_underscore=no
+ fi
+ break
+ else
+ ac_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+
+ac_result=yes
+if test -z "$ac_cv_sys_global_symbol_pipe"; then
+ ac_result=no
+fi
+AC_MSG_RESULT($ac_result)
+
+dnl does the compiler prefix global symbols with an underscore?
+AC_MSG_CHECKING([for _ prefix in compiled symbols])
+AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
+[ac_cv_sys_symbol_underscore=no
+cat > conftest.$ac_ext <<EOF
+void nm_test_func(){}
+int main(){nm_test_func;return 0;}
+EOF
+if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ ac_nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
+ # See whether the symbols have a leading underscore.
+ if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
+ ac_cv_sys_symbol_underscore=yes
+ else
+ if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
+ :
+ else
+ echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
+ fi
+ fi
+ else
+ echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
+ fi
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat conftest.c >&AC_FD_CC
+fi
+rm -rf conftest*
+])
+AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
+
+if test x"$ac_cv_sys_symbol_underscore" = xyes; then
+ if test x"$ac_cv_func_dlopen" = xyes ||
+ test x"$ac_cv_lib_dl_dlopen" = xyes ; then
+ AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
+ libltdl_cv_need_uscore, [dnl
+ AC_TRY_RUN([
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LTDL_GLOBAL DL_GLOBAL
+# else
+# define LTDL_GLOBAL 0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LTDL_LAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LTDL_LAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LTDL_LAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LTDL_LAZY_OR_NOW DL_NOW
+# else
+# define LTDL_LAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+ if(ptr1 && !ptr2) exit(0); } exit(1); }
+], libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes,
+ libltdl_cv_need_uscore=cross
+)])
+ fi
+fi
+
+if test x"$libltdl_cv_need_uscore" = xyes; then
+ AC_DEFINE(NEED_USCORE, 1,
+ [Define if dlsym() requires a leading underscode in symbol names. ])
+fi
+
+dnl Output the makefile
+AC_OUTPUT(Makefile)
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c
new file mode 100644
index 00000000..ce37e27e
--- /dev/null
+++ b/libltdl/ltdl.c
@@ -0,0 +1,1577 @@
+/* ltdl.c -- system independent dlopen wrapper
+ Copyright (C) 1998-1999 Free Software Foundation, Inc.
+ Originally by Thomas Tanner <tanner@gmx.de>
+ This file is part of GNU Libtool.
+
+This library 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 of the License, or (at your option) any later version.
+
+As a special exception to the GNU Library General Public License,
+if you distribute this file as part of a program that uses GNU libtool
+to create libraries and programs, you may include it under the same
+distribution terms that you use for the rest of that program.
+
+This library 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 library; if not, write to the Free
+Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#define _LTDL_COMPILE_
+
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#if HAVE_STRING_H
+#include <string.h>
+#endif
+
+#if HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#if HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+
+#if HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+
+#if HAVE_MEMORY_H
+#include <memory.h>
+#endif
+
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#if HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#include "ltdl.h"
+
+/* max. filename length */
+#ifndef LTDL_FILENAME_MAX
+#define LTDL_FILENAME_MAX 1024
+#endif
+
+#undef LTDL_READTEXT_MODE
+/* fopen() mode flags for reading a text file */
+#ifdef _WIN32
+#define LTDL_READTEXT_MODE "rt"
+#else
+#define LTDL_READTEXT_MODE "r"
+#endif
+
+#undef LTDL_SYMBOL_LENGTH
+/* This is the maximum symbol size that won't require malloc/free */
+#define LTDL_SYMBOL_LENGTH 128
+
+#undef LTDL_SYMBOL_OVERHEAD
+/* This accounts for the _LTX_ separator */
+#define LTDL_SYMBOL_OVERHEAD 5
+
+static const char objdir[] = LTDL_OBJDIR;
+#ifdef LTDL_SHLIB_EXT
+static const char shlib_ext[] = LTDL_SHLIB_EXT;
+#endif
+
+static const char unknown_error[] = "unknown error";
+static const char dlopen_not_supported_error[] = "dlopen support not available";
+static const char file_not_found_error[] = "file not found";
+static const char no_symbols_error[] = "no symbols defined";
+static const char cannot_open_error[] = "can't open the module";
+static const char cannot_close_error[] = "can't close the module";
+static const char symbol_error[] = "symbol not found";
+static const char memory_error[] = "not enough memory";
+static const char invalid_handle_error[] = "invalid handle";
+static const char buffer_overflow_error[] = "internal buffer overflow";
+static const char shutdown_error[] = "library already shutdown";
+
+#ifndef HAVE_PRELOADED_SYMBOLS
+/* If libtool won't define it, we'd better do */
+const lt_dlsymlist lt_preloaded_symbols[1] = { { 0, 0 } };
+#endif
+
+static const char *last_error = 0;
+
+lt_ptr_t (*lt_dlmalloc) LTDL_PARAMS((size_t size)) = (lt_ptr_t(*)LTDL_PARAMS((size_t)))malloc;
+void (*lt_dlfree) LTDL_PARAMS((lt_ptr_t ptr)) = (void(*)LTDL_PARAMS((lt_ptr_t)))free;
+
+typedef struct lt_dltype_t {
+ struct lt_dltype_t *next;
+ const char *sym_prefix; /* prefix for symbols */
+ int (*mod_init) LTDL_PARAMS((void));
+ int (*mod_exit) LTDL_PARAMS((void));
+ int (*lib_open) LTDL_PARAMS((lt_dlhandle handle, const char *filename));
+ int (*lib_close) LTDL_PARAMS((lt_dlhandle handle));
+ lt_ptr_t (*find_sym) LTDL_PARAMS((lt_dlhandle handle, const char *symbol));
+} lt_dltype_t;
+
+#define LTDL_TYPE_TOP 0
+
+typedef struct lt_dlhandle_t {
+ struct lt_dlhandle_t *next;
+ lt_dltype_t *type; /* dlopening interface */
+ char *filename; /* file name */
+ char *name; /* module name */
+ int usage; /* usage */
+ int depcount; /* number of dependencies */
+ lt_dlhandle *deplibs; /* dependencies */
+ lt_ptr_t handle; /* system handle */
+ lt_ptr_t system; /* system specific data */
+} lt_dlhandle_t;
+
+#undef strdup
+#define strdup xstrdup
+
+static inline char *
+strdup(str)
+ const char *str;
+{
+ char *tmp;
+
+ if (!str)
+ return 0;
+ tmp = (char*) lt_dlmalloc(strlen(str)+1);
+ if (tmp)
+ strcpy(tmp, str);
+ return tmp;
+}
+
+#if ! HAVE_STRCHR
+
+# if HAVE_INDEX
+
+# define strchr index
+
+# else
+
+# define strchr xstrchr
+
+static inline const char*
+strchr(str, ch)
+ const char *str;
+ int ch;
+{
+ const char *p;
+
+ for (p = str; *p != (char)ch && p != '\0'; p++)
+ /*NOWORK*/;
+
+ return (*p == (char)ch) ? p : 0;
+}
+
+# endif
+
+#endif
+
+#if ! HAVE_STRRCHR
+
+# if HAVE_RINDEX
+
+# define strrchr rindex
+
+# else
+
+# define strrchr xstrrchr
+
+static inline const char*
+strrchr(str, ch)
+ const char *str;
+ int ch;
+{
+ const char *p;
+
+ for (p = str; p != '\0'; p++)
+ /*NOWORK*/;
+
+ while (*p != (char)ch && p >= str)
+ p--;
+
+ return (*p == (char)ch) ? p : 0;
+}
+
+# endif
+
+#endif
+
+#if HAVE_LIBDL
+
+/* dynamic linking with dlopen/dlsym */
+
+#if HAVE_DLFCN_H
+# include <dlfcn.h>
+#endif
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LTDL_GLOBAL DL_GLOBAL
+# else
+# define LTDL_GLOBAL 0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LTDL_LAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LTDL_LAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LTDL_LAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LTDL_LAZY_OR_NOW DL_NOW
+# else
+# define LTDL_LAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+static int
+sys_dl_init LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_dl_exit LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_dl_open (handle, filename)
+ lt_dlhandle handle;
+ const char *filename;
+{
+ handle->handle = dlopen(filename, LTDL_GLOBAL | LTDL_LAZY_OR_NOW);
+ if (!handle->handle) {
+#if HAVE_DLERROR
+ last_error = dlerror();
+#else
+ last_error = cannot_open_error;
+#endif
+ return 1;
+ }
+ return 0;
+}
+
+static int
+sys_dl_close (handle)
+ lt_dlhandle handle;
+{
+ if (dlclose(handle->handle) != 0) {
+#if HAVE_DLERROR
+ last_error = dlerror();
+#else
+ last_error = cannot_close_error;
+#endif
+ return 1;
+ }
+ return 0;
+}
+
+static lt_ptr_t
+sys_dl_sym (handle, symbol)
+ lt_dlhandle handle;
+ const char *symbol;
+{
+ lt_ptr_t address = dlsym(handle->handle, symbol);
+
+ if (!address)
+#if HAVE_DLERROR
+ last_error = dlerror();
+#else
+ last_error = symbol_error;
+#endif
+ return address;
+}
+
+static
+lt_dltype_t
+#ifdef NEED_USCORE
+sys_dl = { LTDL_TYPE_TOP, "_", sys_dl_init, sys_dl_exit,
+ sys_dl_open, sys_dl_close, sys_dl_sym };
+#else
+sys_dl = { LTDL_TYPE_TOP, 0, sys_dl_init, sys_dl_exit,
+ sys_dl_open, sys_dl_close, sys_dl_sym };
+#endif
+
+#undef LTDL_TYPE_TOP
+#define LTDL_TYPE_TOP &sys_dl
+
+#endif
+
+#if HAVE_SHL_LOAD
+
+/* dynamic linking with shl_load (HP-UX) (comments from gmodule) */
+
+#ifdef HAVE_DL_H
+#include <dl.h>
+#endif
+
+/* some flags are missing on some systems, so we provide
+ * harmless defaults.
+ *
+ * Mandatory:
+ * BIND_IMMEDIATE - Resolve symbol references when the library is loaded.
+ * BIND_DEFERRED - Delay code symbol resolution until actual reference.
+ *
+ * Optionally:
+ * BIND_FIRST - Place the library at the head of the symbol search order.
+ * BIND_NONFATAL - The default BIND_IMMEDIATE behavior is to treat all unsatisfied
+ * symbols as fatal. This flag allows binding of unsatisfied code
+ * symbols to be deferred until use.
+ * [Perl: For certain libraries, like DCE, deferred binding often
+ * causes run time problems. Adding BIND_NONFATAL to BIND_IMMEDIATE
+ * still allows unresolved references in situations like this.]
+ * BIND_NOSTART - Do not call the initializer for the shared library when the
+ * library is loaded, nor on a future call to shl_unload().
+ * BIND_VERBOSE - Print verbose messages concerning possible unsatisfied symbols.
+ *
+ * hp9000s700/hp9000s800:
+ * BIND_RESTRICTED - Restrict symbols visible by the library to those present at
+ * library load time.
+ * DYNAMIC_PATH - Allow the loader to dynamically search for the library specified
+ * by the path argument.
+ */
+
+#ifndef DYNAMIC_PATH
+#define DYNAMIC_PATH 0
+#endif /* DYNAMIC_PATH */
+#ifndef BIND_RESTRICTED
+#define BIND_RESTRICTED 0
+#endif /* BIND_RESTRICTED */
+
+#define LTDL_BIND_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | BIND_VERBOSE | DYNAMIC_PATH)
+
+static int
+sys_shl_init LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_shl_exit LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_shl_open (handle, filename)
+ lt_dlhandle handle;
+ const char *filename;
+{
+ handle->handle = shl_load(filename, LTDL_BIND_FLAGS, 0L);
+ if (!handle->handle) {
+ last_error = cannot_open_error;
+ return 1;
+ }
+ return 0;
+}
+
+static int
+sys_shl_close (handle)
+ lt_dlhandle handle;
+{
+ if (shl_unload((shl_t) (handle->handle)) != 0) {
+ last_error = cannot_close_error;
+ return 1;
+ }
+ return 0;
+}
+
+static lt_ptr_t
+sys_shl_sym (handle, symbol)
+ lt_dlhandle handle;
+ const char *symbol;
+{
+ lt_ptr_t address;
+
+ if (handle->handle && shl_findsym((shl_t*) &(handle->handle),
+ symbol, TYPE_UNDEFINED, &address) == 0)
+ if (address)
+ return address;
+ last_error = symbol_error;
+ return 0;
+}
+
+static
+lt_dltype_t
+sys_shl = { LTDL_TYPE_TOP, 0, sys_shl_init, sys_shl_exit,
+ sys_shl_open, sys_shl_close, sys_shl_sym };
+
+#undef LTDL_TYPE_TOP
+#define LTDL_TYPE_TOP &sys_shl
+
+#endif
+
+#if HAVE_DLD
+
+/* dynamic linking with dld */
+
+#if HAVE_DLD_H
+#include <dld.h>
+#endif
+
+static int
+sys_dld_init LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_dld_exit LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_dld_open (handle, filename)
+ lt_dlhandle handle;
+ const char *filename;
+{
+ handle->handle = strdup(filename);
+ if (!handle->handle) {
+ last_error = memory_error;
+ return 1;
+ }
+ if (dld_link(filename) != 0) {
+ last_error = cannot_open_error;
+ lt_dlfree(handle->handle);
+ return 1;
+ }
+ return 0;
+}
+
+static int
+sys_dld_close (handle)
+ lt_dlhandle handle;
+{
+ if (dld_unlink_by_file((char*)(handle->handle), 1) != 0) {
+ last_error = cannot_close_error;
+ return 1;
+ }
+ lt_dlfree(handle->filename);
+ return 0;
+}
+
+static lt_ptr_t
+sys_dld_sym (handle, symbol)
+ lt_dlhandle handle;
+ const char *symbol;
+{
+ lt_ptr_t address = dld_get_func(symbol);
+
+ if (!address)
+ last_error = symbol_error;
+ return address;
+}
+
+static
+lt_dltype_t
+sys_dld = { LTDL_TYPE_TOP, 0, sys_dld_init, sys_dld_exit,
+ sys_dld_open, sys_dld_close, sys_dld_sym };
+
+#undef LTDL_TYPE_TOP
+#define LTDL_TYPE_TOP &sys_dld
+
+#endif
+
+#ifdef _WIN32
+
+/* dynamic linking for Win32 */
+
+#include <windows.h>
+
+static int
+sys_wll_init LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_wll_exit LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_wll_open (handle, filename)
+ lt_dlhandle handle;
+ const char *filename;
+{
+ handle->handle = LoadLibrary(filename);
+ if (!handle->handle) {
+ last_error = cannot_open_error;
+ return 1;
+ }
+ return 0;
+}
+
+static int
+sys_wll_close (handle)
+ lt_dlhandle handle;
+{
+ if (FreeLibrary(handle->handle) != 0) {
+ last_error = cannot_close_error;
+ return 1;
+ }
+ return 0;
+}
+
+static lt_ptr_t
+sys_wll_sym (handle, symbol)
+ lt_dlhandle handle;
+ const char *symbol;
+{
+ lt_ptr_t address = GetProcAddress(handle->handle, symbol);
+
+ if (!address)
+ last_error = symbol_error;
+ return address;
+}
+
+static
+lt_dltype_t
+sys_wll = { LTDL_TYPE_TOP, 0, sys_wll_init, sys_wll_exit,
+ sys_wll_open, sys_wll_close, sys_wll_sym };
+
+#undef LTDL_TYPE_TOP
+#define LTDL_TYPE_TOP &sys_wll
+
+#endif
+
+#ifdef __BEOS__
+
+/* dynamic linking for BeOS */
+
+#include <kernel/image.h>
+
+static int
+sys_bedl_init LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_bedl_exit LTDL_PARAMS((void))
+{
+ return 0;
+}
+
+static int
+sys_bedl_open (handle, filename)
+ lt_dlhandle handle;
+ const char *filename;
+{
+ image_id image = 0;
+
+ if (filename) {
+ image = load_add_on(filename);
+ } else {
+ image_info info;
+ int32 cookie = 0;
+ if (get_next_image_info(0, &cookie, &info) == B_OK)
+ image = load_add_on(info.name);
+ }
+ if (image <= 0) {
+ last_error = cannot_open_error;
+ return 1;
+ }
+ handle->handle = (void*) image;
+ return 0;
+}
+
+static int
+sys_bedl_close (handle)
+ lt_dlhandle handle;
+{
+ if (unload_add_on((image_id)handle->handle) != B_OK) {
+ last_error = cannot_close_error;
+ return 1;
+ }
+ return 0;
+}
+
+static lt_ptr_t
+sys_bedl_sym (handle, symbol)
+ lt_dlhandle handle;
+ const char *symbol;
+{
+ lt_ptr_t address = 0;
+ image_id image = (image_id)handle->handle;
+
+ if (get_image_symbol(image, symbol, B_SYMBOL_TYPE_ANY,
+ &address) != B_OK) {
+ last_error = symbol_error;
+ return 0;
+ }
+ return address;
+}
+
+static
+lt_dltype_t
+sys_bedl = { LTDL_TYPE_TOP, 0, sys_bedl_init, sys_bedl_exit,
+ sys_bedl_open, sys_bedl_close, sys_bedl_sym };
+
+#undef LTDL_TYPE_TOP
+#define LTDL_TYPE_TOP &sys_bedl
+
+#endif
+
+/* emulate dynamic linking using preloaded_symbols */
+
+typedef struct lt_dlsymlists_t {
+ struct lt_dlsymlists_t *next;
+ const lt_dlsymlist *syms;
+} lt_dlsymlists_t;
+
+static const lt_dlsymlist *default_preloaded_symbols = 0;
+static lt_dlsymlists_t *preloaded_symbols = 0;
+
+static int
+presym_init LTDL_PARAMS((void))
+{
+ preloaded_symbols = 0;
+ if (default_preloaded_symbols)
+ return lt_dlpreload(default_preloaded_symbols);
+ return 0;
+}
+
+static int
+presym_free_symlists LTDL_PARAMS((void))
+{
+ lt_dlsymlists_t *lists = preloaded_symbols;
+
+ while (lists) {
+ lt_dlsymlists_t *tmp = lists;
+
+ lists = lists->next;
+ lt_dlfree(tmp);
+ }
+ preloaded_symbols = 0;
+ return 0;
+}
+
+static int
+presym_exit LTDL_PARAMS((void))
+{
+ presym_free_symlists();
+ return 0;
+}
+
+static int
+presym_add_symlist (preloaded)
+ const lt_dlsymlist *preloaded;
+{
+ lt_dlsymlists_t *tmp;
+ lt_dlsymlists_t *lists = preloaded_symbols;
+
+ while (lists) {
+ if (lists->syms == preloaded)
+ return 0;
+ lists = lists->next;
+ }
+
+ tmp = (lt_dlsymlists_t*) lt_dlmalloc(sizeof(lt_dlsymlists_t));
+ if (!tmp) {
+ last_error = memory_error;
+ return 1;
+ }
+ tmp->syms = preloaded;
+ tmp->next = 0;
+ if (!preloaded_symbols)
+ preloaded_symbols = tmp;
+ else {
+ /* append to the end */
+ lists = preloaded_symbols;
+ while (lists->next)
+ lists = lists->next;
+ lists->next = tmp;
+ }
+ return 0;
+}
+
+static int
+presym_open (handle, filename)
+ lt_dlhandle handle;
+ const char *filename;
+{
+ lt_dlsymlists_t *lists = preloaded_symbols;
+
+ if (!lists) {
+ last_error = no_symbols_error;
+ return 1;
+ }
+ if (!filename)
+ filename = "@PROGRAM@";
+ while (lists) {
+ const lt_dlsymlist *syms = lists->syms;
+
+ while (syms->name) {
+ if (!syms->address &&
+ strcmp(syms->name, filename) == 0) {
+ handle->handle = (lt_ptr_t) syms;
+ return 0;
+ }
+ syms++;
+ }
+ lists = lists->next;
+ }
+ last_error = file_not_found_error;
+ return 1;
+}
+
+static int
+presym_close (handle)
+ lt_dlhandle handle;
+{
+ /* Just to silence gcc -Wall */
+ handle = 0;
+ return 0;
+}
+
+static lt_ptr_t
+presym_sym (handle, symbol)
+ lt_dlhandle handle;
+ const char *symbol;
+{
+ lt_dlsymlist *syms = (lt_dlsymlist*)(handle->handle);
+
+ syms++;
+ while (syms->address) {
+ if (strcmp(syms->name, symbol) == 0)
+ return syms->address;
+ syms++;
+ }
+ last_error = symbol_error;
+ return 0;
+}
+
+static
+lt_dltype_t
+presym = { LTDL_TYPE_TOP, 0, presym_init, presym_exit,
+ presym_open, presym_close, presym_sym };
+
+#undef LTDL_TYPE_TOP
+#define LTDL_TYPE_TOP &presym
+
+static char *user_search_path = 0;
+static lt_dlhandle handles = 0;
+static int initialized = 0;
+
+static lt_dltype_t *types = LTDL_TYPE_TOP;
+#undef LTDL_TYPE_TOP
+
+int
+lt_dlinit LTDL_PARAMS((void))
+{
+ /* initialize libltdl */
+ lt_dltype_t **type = &types;
+ int typecount = 0;
+
+ if (initialized) { /* Initialize only at first call. */
+ initialized++;
+ return 0;
+ }
+ handles = 0;
+ user_search_path = 0; /* empty search path */
+
+ while (*type) {
+ if ((*type)->mod_init())
+ *type = (*type)->next; /* Remove it from the list */
+ else {
+ type = &(*type)->next; /* Keep it */
+ typecount++;
+ }
+ }
+ if (typecount == 0) {
+ last_error = dlopen_not_supported_error;
+ return 1;
+ }
+ last_error = 0;
+ initialized = 1;
+ return 0;
+}
+
+int
+lt_dlpreload (preloaded)
+ const lt_dlsymlist *preloaded;
+{
+ if (preloaded)
+ return presym_add_symlist(preloaded);
+ presym_free_symlists();
+ if (default_preloaded_symbols)
+ return lt_dlpreload(default_preloaded_symbols);
+ return 0;
+}
+
+int
+lt_dlpreload_default (preloaded)
+ const lt_dlsymlist *preloaded;
+{
+ default_preloaded_symbols = preloaded;
+ return 0;
+}
+
+int
+lt_dlexit LTDL_PARAMS((void))
+{
+ /* shut down libltdl */
+ lt_dltype_t *type = types;
+ int errors;
+
+ if (!initialized) {
+ last_error = shutdown_error;
+ return 1;
+ }
+ if (initialized != 1) { /* shut down only at last call. */
+ initialized--;
+ return 0;
+ }
+ /* close all modules */
+ errors = 0;
+ while (handles) {
+ /* FIXME: what if a module depends on another one? */
+ if (lt_dlclose(handles))
+ errors++;
+ }
+ initialized = 0;
+ while (type) {
+ if (type->mod_exit())
+ errors++;
+ type = type->next;
+ }
+ return errors;
+}
+
+static int
+tryall_dlopen (handle, filename)
+ lt_dlhandle *handle;
+ const char *filename;
+{
+ lt_dlhandle cur;
+ lt_dltype_t *type = types;
+ const char *saved_error = last_error;
+
+ /* check whether the module was already opened */
+ cur = handles;
+ while (cur) {
+ if (!cur->filename && !filename)
+ break;
+ if (cur->filename && filename &&
+ strcmp(cur->filename, filename) == 0)
+ break;
+ cur = cur->next;
+ }
+ if (cur) {
+ cur->usage++;
+ *handle = cur;
+ return 0;
+ }
+
+ cur = *handle;
+ if (filename) {
+ cur->filename = strdup(filename);
+ if (!cur->filename) {
+ last_error = memory_error;
+ return 1;
+ }
+ } else
+ cur->filename = 0;
+ while (type) {
+ if (type->lib_open(cur, filename) == 0)
+ break;
+ type = type->next;
+ }
+ if (!type) {
+ if (cur->filename)
+ lt_dlfree(cur->filename);
+ return 1;
+ }
+ cur->type = type;
+ last_error = saved_error;
+ return 0;
+}
+
+static int
+find_module (handle, dir, libdir, dlname, old_name, installed)
+ lt_dlhandle *handle;
+ const char *dir;
+ const char *libdir;
+ const char *dlname;
+ const char *old_name;
+ int installed;
+{
+ int error;
+ char *filename;
+ /* try to open the old library first; if it was dlpreopened,
+ we want the preopened version of it, even if a dlopenable
+ module is available */
+ if (old_name && tryall_dlopen(handle, old_name) == 0)
+ return 0;
+ /* try to open the dynamic library */
+ if (dlname) {
+ /* try to open the installed module */
+ if (installed && libdir) {
+ filename = (char*)
+ lt_dlmalloc(strlen(libdir)+1+strlen(dlname)+1);
+ if (!filename) {
+ last_error = memory_error;
+ return 1;
+ }
+ strcpy(filename, libdir);
+ strcat(filename, "/");
+ strcat(filename, dlname);
+ error = tryall_dlopen(handle, filename) == 0;
+ lt_dlfree(filename);
+ if (error)
+ return 0;
+ }
+ /* try to open the not-installed module */
+ if (!installed) {
+ filename = (char*)
+ lt_dlmalloc((dir ? strlen(dir) : 0)
+ + strlen(objdir) + strlen(dlname) + 1);
+ if (!filename) {
+ last_error = memory_error;
+ return 1;
+ }
+ if (dir)
+ strcpy(filename, dir);
+ else
+ *filename = 0;
+ strcat(filename, objdir);
+ strcat(filename, dlname);
+
+ error = tryall_dlopen(handle, filename) == 0;
+ lt_dlfree(filename);
+ if (error)
+ return 0;
+ }
+ /* hmm, maybe it was moved to another directory */
+ {
+ filename = (char*)
+ lt_dlmalloc((dir ? strlen(dir) : 0)
+ + strlen(dlname) + 1);
+ if (dir)
+ strcpy(filename, dir);
+ else
+ *filename = 0;
+ strcat(filename, dlname);
+ error = tryall_dlopen(handle, filename) == 0;
+ lt_dlfree(filename);
+ if (error)
+ return 0;
+ }
+ }
+ last_error = file_not_found_error;
+ return 1;
+}
+
+static lt_ptr_t
+find_file (basename, search_path, pdir, handle)
+ const char *basename;
+ const char *search_path;
+ char **pdir;
+ lt_dlhandle *handle;
+{
+ /* when handle != NULL search a library, otherwise a file */
+ /* return NULL on failure, otherwise the file/handle */
+
+ char *filename = 0;
+ int filenamesize = 0;
+ const char *next = search_path;
+ int lenbase = strlen(basename);
+
+ if (!next || !*next) {
+ last_error = file_not_found_error;
+ return 0;
+ }
+ while (next) {
+ int lendir;
+ const char *cur = next;
+
+ next = strchr(cur, ':');
+ if (!next)
+ next = cur + strlen(cur);
+ lendir = next - cur;
+ if (*next == ':')
+ ++next;
+ else
+ next = 0;
+ if (lendir == 0)
+ continue;
+ if (lendir + 1 + lenbase >= filenamesize) {
+ if (filename)
+ lt_dlfree(filename);
+ filenamesize = lendir + 1 + lenbase + 1;
+ filename = (char*) lt_dlmalloc(filenamesize);
+ if (!filename) {
+ last_error = memory_error;
+ return 0;
+ }
+ }
+ strncpy(filename, cur, lendir);
+ if (filename[lendir-1] != '/')
+ filename[lendir++] = '/';
+ strcpy(filename+lendir, basename);
+ if (handle) {
+ if (tryall_dlopen(handle, filename) == 0) {
+ lt_dlfree(filename);
+ return (lt_ptr_t) handle;
+ }
+ } else {
+ FILE *file = fopen(filename, LTDL_READTEXT_MODE);
+ if (file) {
+ if (*pdir)
+ lt_dlfree(*pdir);
+ filename[lendir] = '\0';
+ *pdir = strdup(filename);
+ if (!*pdir) {
+ /* We could have even avoided the
+ strdup, but there would be some
+ memory overhead. */
+ *pdir = filename;
+ } else
+ lt_dlfree(filename);
+ return (lt_ptr_t) file;
+ }
+ }
+ }
+ if (filename)
+ lt_dlfree(filename);
+ last_error = file_not_found_error;
+ return 0;
+}
+
+static int
+load_deplibs(handle, deplibs)
+ lt_dlhandle handle;
+ const char *deplibs;
+{
+ /* FIXME: load deplibs */
+ handle->depcount = 0;
+ handle->deplibs = 0;
+ /* Just to silence gcc -Wall */
+ deplibs = 0;
+ return 0;
+}
+
+static int
+unload_deplibs(handle)
+ lt_dlhandle handle;
+{
+ /* FIXME: unload deplibs */
+ /* Just to silence gcc -Wall */
+ handle = 0;
+ return 0;
+}
+
+static inline int
+trim (dest, str)
+ char **dest;
+ const char *str;
+{
+ /* remove the leading and trailing "'" from str
+ and store the result in dest */
+ char *tmp;
+ char *end = strrchr(str, '\'');
+ int len = strlen(str);
+
+ if (*dest)
+ lt_dlfree(*dest);
+ if (len > 3 && str[0] == '\'') {
+ tmp = (char*) lt_dlmalloc(end - str);
+ if (!tmp) {
+ last_error = memory_error;
+ return 1;
+ }
+ strncpy(tmp, &str[1], (end - str) - 1);
+ tmp[len-3] = '\0';
+ *dest = tmp;
+ } else
+ *dest = 0;
+ return 0;
+}
+
+static inline int
+free_vars(dir, name, dlname, oldname, libdir, deplibs)
+ char *dir;
+ char *name;
+ char *dlname;
+ char *oldname;
+ char *libdir;
+ char *deplibs;
+{
+ if (dir)
+ lt_dlfree(dir);
+ if (name)
+ lt_dlfree(name);
+ if (dlname)
+ lt_dlfree(dlname);
+ if (oldname)
+ lt_dlfree(oldname);
+ if (libdir)
+ lt_dlfree(libdir);
+ if (deplibs)
+ lt_dlfree(deplibs);
+ return 0;
+}
+
+lt_dlhandle
+lt_dlopen (filename)
+ const char *filename;
+{
+ lt_dlhandle handle, newhandle;
+ const char *basename, *ext;
+ const char *saved_error = last_error;
+ char *dir = 0, *name = 0;
+
+ if (!filename) {
+ handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t));
+ if (!handle) {
+ last_error = memory_error;
+ return 0;
+ }
+ handle->usage = 0;
+ handle->depcount = 0;
+ handle->deplibs = 0;
+ newhandle = handle;
+ if (tryall_dlopen(&newhandle, 0) != 0) {
+ lt_dlfree(handle);
+ return 0;
+ }
+ goto register_handle;
+ }
+ basename = strrchr(filename, '/');
+ if (basename) {
+ basename++;
+ dir = (char*) lt_dlmalloc(basename - filename + 1);
+ if (!dir) {
+ last_error = memory_error;
+ return 0;
+ }
+ strncpy(dir, filename, basename - filename);
+ dir[basename - filename] = '\0';
+ } else
+ basename = filename;
+ /* check whether we open a libtool module (.la extension) */
+ ext = strrchr(basename, '.');
+ if (ext && strcmp(ext, ".la") == 0) {
+ /* this seems to be a libtool module */
+ FILE *file;
+ int i;
+ char *dlname = 0, *old_name = 0;
+ char *libdir = 0, *deplibs = 0;
+ char *line;
+ int error = 0;
+ /* if we can't find the installed flag, it is probably an
+ installed libtool archive, produced with an old version
+ of libtool */
+ int installed = 1;
+
+ /* extract the module name from the file name */
+ name = (char*) lt_dlmalloc(ext - basename + 1);
+ if (!name) {
+ last_error = memory_error;
+ if (dir)
+ lt_dlfree(dir);
+ return 0;
+ }
+ /* canonicalize the module name */
+ for (i = 0; i < ext - basename; i++)
+ if (isalnum((int)(basename[i])))
+ name[i] = basename[i];
+ else
+ name[i] = '_';
+ name[ext - basename] = '\0';
+ /* now try to open the .la file */
+ file = fopen(filename, LTDL_READTEXT_MODE);
+ if (!file)
+ last_error = file_not_found_error;
+ if (!file && !dir) {
+ /* try other directories */
+ file = (FILE*) find_file(basename,
+ user_search_path,
+ &dir, 0);
+ if (!file)
+ file = (FILE*) find_file(basename,
+ getenv("LTDL_LIBRARY_PATH"),
+ &dir, 0);
+#ifdef LTDL_SHLIBPATH_VAR
+ if (!file)
+ file = (FILE*) find_file(basename,
+ getenv(LTDL_SHLIBPATH_VAR),
+ &dir, 0);
+#endif
+ }
+ if (!file) {
+ if (name)
+ lt_dlfree(name);
+ if (dir)
+ lt_dlfree(dir);
+ return 0;
+ }
+ line = (char*) lt_dlmalloc(LTDL_FILENAME_MAX);
+ if (!line) {
+ fclose(file);
+ last_error = memory_error;
+ return 0;
+ }
+ /* read the .la file */
+ while (!feof(file)) {
+ if (!fgets(line, LTDL_FILENAME_MAX, file))
+ break;
+ if (line[0] == '\n' || line[0] == '#')
+ continue;
+# undef STR_DLNAME
+# define STR_DLNAME "dlname="
+ if (strncmp(line, STR_DLNAME,
+ sizeof(STR_DLNAME) - 1) == 0)
+ error = trim(&dlname,
+ &line[sizeof(STR_DLNAME) - 1]);
+ else
+# undef STR_OLD_LIBRARY
+# define STR_OLD_LIBRARY "old_library="
+ if (strncmp(line, STR_OLD_LIBRARY,
+ sizeof(STR_OLD_LIBRARY) - 1) == 0)
+ error = trim(&old_name,
+ &line[sizeof(STR_OLD_LIBRARY) - 1]);
+ else
+# undef STR_LIBDIR
+# define STR_LIBDIR "libdir="
+ if (strncmp(line, STR_LIBDIR,
+ sizeof(STR_LIBDIR) - 1) == 0)
+ error = trim(&libdir,
+ &line[sizeof(STR_LIBDIR) - 1]);
+ else
+# undef STR_DL_DEPLIBS
+# define STR_DL_DEPLIBS "dl_dependency_libs="
+ if (strncmp(line, STR_DL_DEPLIBS,
+ sizeof(STR_DL_DEPLIBS) - 1) == 0)
+ error = trim(&deplibs,
+ &line[sizeof(STR_DL_DEPLIBS) - 1]);
+ else
+ if (strcmp(line, "installed=yes\n") == 0)
+ installed = 1;
+ else
+ if (strcmp(line, "installed=no\n") == 0)
+ installed = 0;
+ if (error)
+ break;
+ }
+ fclose(file);
+ lt_dlfree(line);
+ /* allocate the handle */
+ handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t));
+ if (!handle || error) {
+ if (handle)
+ lt_dlfree(handle);
+ if (!error)
+ last_error = memory_error;
+ free_vars(name, dir, dlname, old_name, libdir, deplibs);
+ return 0;
+ }
+ handle->usage = 0;
+ if (load_deplibs(handle, deplibs) == 0) {
+ newhandle = handle;
+ /* find_module may replace newhandle */
+ if (find_module(&newhandle, dir, libdir,
+ dlname, old_name, installed)) {
+ unload_deplibs(handle);
+ error = 1;
+ }
+ } else
+ error = 1;
+ if (error) {
+ lt_dlfree(handle);
+ free_vars(name, dir, dlname, old_name, libdir, deplibs);
+ return 0;
+ }
+ if (handle != newhandle) {
+ unload_deplibs(handle);
+ }
+ } else {
+ /* not a libtool module */
+ handle = (lt_dlhandle) lt_dlmalloc(sizeof(lt_dlhandle_t));
+ if (!handle) {
+ last_error = memory_error;
+ if (dir)
+ lt_dlfree(dir);
+ return 0;
+ }
+ handle->usage = 0;
+ /* non-libtool modules don't have dependencies */
+ handle->depcount = 0;
+ handle->deplibs = 0;
+ newhandle = handle;
+ if (tryall_dlopen(&newhandle, filename)
+ && (!dir
+ || (!find_file(basename, user_search_path,
+ 0, &newhandle)
+ && !find_file(basename,
+ getenv("LTDL_LIBRARY_PATH"),
+ 0, &newhandle)
+#ifdef LTDL_SHLIBPATH_VAR
+ && !find_file(basename,
+ getenv(LTDL_SHLIBPATH_VAR),
+ 0, &newhandle)
+#endif
+ ))) {
+ lt_dlfree(handle);
+ if (dir)
+ lt_dlfree(dir);
+ return 0;
+ }
+ }
+register_handle:
+ if (newhandle != handle) {
+ lt_dlfree(handle);
+ handle = newhandle;
+ }
+ if (!handle->usage) {
+ handle->usage = 1;
+ handle->name = name;
+ handle->next = handles;
+ handles = handle;
+ } else if (name)
+ lt_dlfree(name);
+ if (dir)
+ lt_dlfree(dir);
+ last_error = saved_error;
+ return handle;
+}
+
+lt_dlhandle
+lt_dlopenext (filename)
+ const char *filename;
+{
+ lt_dlhandle handle;
+ char *tmp;
+ int len;
+ const char *saved_error = last_error;
+
+ if (!filename)
+ return lt_dlopen(filename);
+ len = strlen(filename);
+ if (!len) {
+ last_error = file_not_found_error;
+ return 0;
+ }
+ /* try the normal file name */
+ handle = lt_dlopen(filename);
+ if (handle)
+ return handle;
+ /* try "filename.la" */
+ tmp = (char*) lt_dlmalloc(len+4);
+ if (!tmp) {
+ last_error = memory_error;
+ return 0;
+ }
+ strcpy(tmp, filename);
+ strcat(tmp, ".la");
+ handle = lt_dlopen(tmp);
+ if (handle) {
+ last_error = saved_error;
+ lt_dlfree(tmp);
+ return handle;
+ }
+#ifdef LTDL_SHLIB_EXT
+ /* try "filename.EXT" */
+ if (strlen(shlib_ext) > 3) {
+ lt_dlfree(tmp);
+ tmp = (char*) lt_dlmalloc(len + strlen(shlib_ext) + 1);
+ if (!tmp) {
+ last_error = memory_error;
+ return 0;
+ }
+ strcpy(tmp, filename);
+ } else
+ tmp[len] = '\0';
+ strcat(tmp, shlib_ext);
+ handle = lt_dlopen(tmp);
+ if (handle) {
+ last_error = saved_error;
+ lt_dlfree(tmp);
+ return handle;
+ }
+#endif
+ last_error = file_not_found_error;
+ lt_dlfree(tmp);
+ return 0;
+}
+
+int
+lt_dlclose (handle)
+ lt_dlhandle handle;
+{
+ lt_dlhandle cur, last;
+
+ /* check whether the handle is valid */
+ last = cur = handles;
+ while (cur && handle != cur) {
+ last = cur;
+ cur = cur->next;
+ }
+ if (!cur) {
+ last_error = invalid_handle_error;
+ return 1;
+ }
+ handle->usage--;
+ if (!handle->usage) {
+ int error;
+
+ if (handle != handles)
+ last->next = handle->next;
+ else
+ handles = handle->next;
+ error = handle->type->lib_close(handle);
+ error += unload_deplibs(handle);
+ if (handle->filename)
+ lt_dlfree(handle->filename);
+ if (handle->name)
+ lt_dlfree(handle->name);
+ lt_dlfree(handle);
+ return error;
+ }
+ return 0;
+}
+
+lt_ptr_t
+lt_dlsym (handle, symbol)
+ lt_dlhandle handle;
+ const char *symbol;
+{
+ int lensym;
+ char lsym[LTDL_SYMBOL_LENGTH];
+ char *sym;
+ lt_ptr_t address;
+
+ if (!handle) {
+ last_error = invalid_handle_error;
+ return 0;
+ }
+ if (!symbol) {
+ last_error = symbol_error;
+ return 0;
+ }
+ lensym = strlen(symbol);
+ if (handle->type->sym_prefix)
+ lensym += strlen(handle->type->sym_prefix);
+ if (handle->name)
+ lensym += strlen(handle->name);
+ if (lensym + LTDL_SYMBOL_OVERHEAD < LTDL_SYMBOL_LENGTH)
+ sym = lsym;
+ else
+ sym = (char*) lt_dlmalloc(lensym + LTDL_SYMBOL_OVERHEAD + 1);
+ if (!sym) {
+ last_error = buffer_overflow_error;
+ return 0;
+ }
+ if (handle->name) {
+ /* this is a libtool module */
+ if (handle->type->sym_prefix) {
+ strcpy(sym, handle->type->sym_prefix);
+ strcat(sym, handle->name);
+ } else
+ strcpy(sym, handle->name);
+ strcat(sym, "_LTX_");
+ strcat(sym, symbol);
+ /* try "modulename_LTX_symbol" */
+ address = handle->type->find_sym(handle, sym);
+ if (address) {
+ if (sym != lsym)
+ lt_dlfree(sym);
+ return address;
+ }
+ }
+ /* otherwise try "symbol" */
+ if (handle->type->sym_prefix) {
+ strcpy(sym, handle->type->sym_prefix);
+ strcat(sym, symbol);
+ } else
+ strcpy(sym, symbol);
+ address = handle->type->find_sym(handle, sym);
+ if (sym != lsym)
+ lt_dlfree(sym);
+ return address;
+}
+
+const char *
+lt_dlerror LTDL_PARAMS((void))
+{
+ const char *error = last_error;
+
+ last_error = 0;
+ return error;
+}
+
+int
+lt_dladdsearchdir (search_dir)
+ const char *search_dir;
+{
+ if (!search_dir || !strlen(search_dir))
+ return 0;
+ if (!user_search_path) {
+ user_search_path = strdup(search_dir);
+ if (!user_search_path) {
+ last_error = memory_error;
+ return 1;
+ }
+ } else {
+ char *new_search_path = (char*)
+ lt_dlmalloc(strlen(user_search_path) +
+ strlen(search_dir) + 2); /* ':' + '\0' == 2 */
+ if (!new_search_path) {
+ last_error = memory_error;
+ return 1;
+ }
+ strcpy(new_search_path, user_search_path);
+ strcat(new_search_path, ":");
+ strcat(new_search_path, search_dir);
+ lt_dlfree(user_search_path);
+ user_search_path = new_search_path;
+ }
+ return 0;
+}
+
+int
+lt_dlsetsearchpath (search_path)
+ const char *search_path;
+{
+ if (user_search_path)
+ lt_dlfree(user_search_path);
+ user_search_path = 0; /* reset the search path */
+ if (!search_path || !strlen(search_path))
+ return 0;
+ user_search_path = strdup(search_path);
+ if (!user_search_path)
+ return 1;
+ return 0;
+}
+
+const char *
+lt_dlgetsearchpath LTDL_PARAMS((void))
+{
+ return user_search_path;
+}
diff --git a/libltdl/ltdl.h b/libltdl/ltdl.h
new file mode 100644
index 00000000..bebbc6d2
--- /dev/null
+++ b/libltdl/ltdl.h
@@ -0,0 +1,91 @@
+/* ltdl.h -- generic dlopen functions
+ Copyright (C) 1998-1999 Free Software Foundation, Inc.
+ Originally by Thomas Tanner <tanner@gmx.de>
+ This file is part of GNU Libtool.
+
+This library 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 of the License, or (at your option) any later version.
+
+As a special exception to the GNU Library General Public License,
+if you distribute this file as part of a program that uses GNU libtool
+to create libraries and programs, you may include it under the same
+distribution terms that you use for the rest of that program.
+
+This library 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 library; if not, write to the Free
+Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+/* Only include this header file once. */
+#ifndef _LTDL_H_
+#define _LTDL_H_ 1
+
+/* __BEGIN_DECLS should be used at the beginning of your declarations,
+ so that C++ compilers don't mangle their names. Use __END_DECLS at
+ the end of C declarations. */
+#undef __BEGIN_DECLS
+#undef __END_DECLS
+#ifdef __cplusplus
+# define __BEGIN_DECLS extern "C" {
+# define __END_DECLS }
+#else
+# define __BEGIN_DECLS /* empty */
+# define __END_DECLS /* empty */
+#endif
+
+/* LTDL_PARAMS is a macro used to wrap function prototypes, so that compilers
+ that don't understand ANSI C prototypes still work, and ANSI C
+ compilers can issue warnings about type mismatches. */
+#undef LTDL_PARAMS
+#undef lt_ptr_t
+#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(WIN32) || defined(__cplusplus)
+# define LTDL_PARAMS(protos) protos
+# define lt_ptr_t void*
+#else
+# define LTDL_PARAMS(protos) ()
+# define lt_ptr_t char*
+#endif
+
+#include <stdlib.h>
+
+#ifdef _LTDL_COMPILE_
+typedef struct lt_dlhandle_t *lt_dlhandle;
+#else
+typedef lt_ptr_t lt_dlhandle;
+#endif
+
+typedef struct {
+ const char *name;
+ lt_ptr_t address;
+} lt_dlsymlist;
+
+__BEGIN_DECLS
+extern int lt_dlinit LTDL_PARAMS((void));
+extern int lt_dlpreload LTDL_PARAMS((const lt_dlsymlist *preloaded));
+extern int lt_dlpreload_default LTDL_PARAMS((const lt_dlsymlist *preloaded));
+extern int lt_dlexit LTDL_PARAMS((void));
+extern lt_dlhandle lt_dlopen LTDL_PARAMS((const char *filename));
+extern lt_dlhandle lt_dlopenext LTDL_PARAMS((const char *filename));
+extern int lt_dlclose LTDL_PARAMS((lt_dlhandle handle));
+extern lt_ptr_t lt_dlsym LTDL_PARAMS((lt_dlhandle handle, const char *name));
+extern const char *lt_dlerror LTDL_PARAMS((void));
+extern int lt_dladdsearchdir LTDL_PARAMS((const char *search_dir));
+extern int lt_dlsetsearchpath LTDL_PARAMS((const char *search_path));
+extern const char *lt_dlgetsearchpath LTDL_PARAMS((void));
+
+extern const lt_dlsymlist lt_preloaded_symbols[];
+#define LTDL_SET_PRELOADED_SYMBOLS() lt_dlpreload_default(lt_preloaded_symbols)
+
+extern lt_ptr_t (*lt_dlmalloc)LTDL_PARAMS((size_t size));
+extern void (*lt_dlfree)LTDL_PARAMS((lt_ptr_t ptr));
+
+__END_DECLS
+
+#endif /* !_LTDL_H_ */
diff --git a/libltdl/stamp-h.in b/libltdl/stamp-h.in
new file mode 100644
index 00000000..9788f702
--- /dev/null
+++ b/libltdl/stamp-h.in
@@ -0,0 +1 @@
+timestamp
diff --git a/ltconfig b/ltconfig
index 527af3fb..e3c5a954 100755
--- a/ltconfig
+++ b/ltconfig
@@ -1,8 +1,8 @@
#! /bin/sh
# ltconfig - Create a system-specific libtool.
-# Copyright (C) 1996-1998 Free Software Foundation, Inc.
-# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# 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
@@ -31,6 +31,9 @@ echo=echo
if test "X$1" = X--no-reexec; then
# Discard the --no-reexec flag, and continue.
shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
# Yippee, $echo works!
:
@@ -39,19 +42,54 @@ else
exec "$SHELL" "$0" --no-reexec ${1+"$@"}
fi
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit 0
+fi
+
+# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != "Xset"; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) PATH_SEPARATOR=';' ;;
+ *) PATH_SEPARATOR=':' ;;
+ esac
+fi
+
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
-if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then
+if test "X${echo_test_string+set}" != "Xset"; then
+ # find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
+ test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
# The Solaris, AIX, and Digital Unix default echo programs unquote
# backslashes. This makes it impossible to quote backslashes using
# echo "$something" | sed 's/\\/\\\\/g'
#
# So, first we look for a working echo in the user's PATH.
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
+
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
for dir in $PATH /usr/ucb; do
- if test -f $dir/echo && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t'; then
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
echo="$dir/echo"
break
fi
@@ -60,20 +98,54 @@ if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then
if test "X$echo" = Xecho; then
# We didn't find a better echo, so look for alternatives.
- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t'; then
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
# This shell has a builtin print -r that does the trick.
echo='print -r'
- elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
# If we have ksh, try running ltconfig again with it.
+ ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
+ export ORIGINAL_CONFIG_SHELL
CONFIG_SHELL=/bin/ksh
export CONFIG_SHELL
exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
else
# Try using printf.
- echo='printf %s\n'
- if test "X`($echo '\t') 2>/dev/null`" != 'X\t'; then
- # Oops. We lost completely, so just stick with echo.
- echo=echo
+ echo='printf "%s\n"'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+ CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+ test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
fi
fi
fi
@@ -87,13 +159,18 @@ sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
# Same as above, but do not quote variable references.
double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
# The name of this program.
progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
-VERSION=1.2b
+VERSION=1.3
+TIMESTAMP=" (1.385.2.117 1999/04/29 13:07:13)"
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
rm="rm -f"
@@ -106,6 +183,9 @@ can_build_shared=yes
enable_shared=yes
# All known linkers require a `.a' archive for static linking.
enable_static=yes
+enable_fast_install=yes
+enable_dlopen=unknown
+enable_win32_dll=no
ltmain=
silent=
srcdir=
@@ -117,15 +197,25 @@ ofile="$default_ofile"
verify_host=yes
with_gcc=no
with_gnu_ld=no
+need_locks=yes
+ac_ext=c
+objext=o
+libext=a
+cache_file=
old_AR="$AR"
old_CC="$CC"
old_CFLAGS="$CFLAGS"
old_CPPFLAGS="$CPPFLAGS"
+old_LDFLAGS="$LDFLAGS"
old_LD="$LD"
old_LN_S="$LN_S"
+old_LIBS="$LIBS"
old_NM="$NM"
old_RANLIB="$RANLIB"
+old_DLLTOOL="$DLLTOOL"
+old_OBJDUMP="$OBJDUMP"
+old_AS="$AS"
# Parse the command line options.
args=
@@ -146,13 +236,16 @@ do
case "$option" in
--help) cat <<EOM
-Usage: $progname [OPTION]... LTMAIN [HOST]
+Usage: $progname [OPTION]... [HOST [LTMAIN]]
Generate a system-specific libtool script.
--debug enable verbose shell tracing
--disable-shared do not build shared libraries
--disable-static do not build static libraries
+ --disable-fast-install do not optimize for fast installation
+ --enable-dlopen enable dlopen support
+ --enable-win32-dll enable building dlls on win32 hosts
--help display this help and exit
--no-verify do not verify that HOST is a valid host type
-o, --output=FILE specify the output file [default=$default_ofile]
@@ -162,9 +255,11 @@ Generate a system-specific libtool script.
--version output version information and exit
--with-gcc assume that the GNU C compiler will be used
--with-gnu-ld assume that the C compiler uses the GNU linker
+ --disable-lock disable file locking
+ --cache-file=FILE configure cache file
-LTMAIN is the \`ltmain.sh' shell script fragment that provides basic libtool
-functionality.
+LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
+that provides basic libtool functionality.
HOST is the canonical host system name [default=guessed].
EOM
@@ -180,6 +275,12 @@ EOM
--disable-static) enable_static=no ;;
+ --disable-fast-install) enable_fast_install=no ;;
+
+ --enable-dlopen) enable_dlopen=yes ;;
+
+ --enable-win32-dll) enable_win32_dll=yes ;;
+
--quiet | --silent) silent=yes ;;
--srcdir) prev=srcdir ;;
@@ -190,11 +291,15 @@ EOM
--output | -o) prev=ofile ;;
--output=*) ofile="$optarg" ;;
- --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION"; exit 0 ;;
+ --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
--with-gcc) with_gcc=yes ;;
--with-gnu-ld) with_gnu_ld=yes ;;
+ --disable-lock) need_locks=no ;;
+
+ --cache-file=*) cache_file="$optarg" ;;
+
-*)
echo "$progname: unrecognized option \`$option'" 1>&2
echo "$help" 1>&2
@@ -265,6 +370,11 @@ exec 5>>./config.log
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test -n "$cache_file" && test -r "$cache_file"; then
+ echo "loading cache $cache_file within ltconfig"
+ . $cache_file
+fi
+
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
@@ -278,8 +388,8 @@ else
fi
if test -z "$srcdir"; then
- # Assume the source directory is the same one as the path to ltmain.sh.
- srcdir=`$echo "$ltmain" | $Xsed -e 's%/[^/]*$%%'`
+ # Assume the source directory is the same one as the path to LTMAIN.
+ srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
test "$srcdir" = "$ltmain" && srcdir=.
fi
@@ -365,15 +475,18 @@ old_postuninstall_cmds=
# Set a sane default for `AR'.
test -z "$AR" && AR=ar
+# Set a sane default for `OBJDUMP'.
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
# If RANLIB is not set, then run the test.
if test "${RANLIB+set}" != "set"; then
result=no
echo $ac_n "checking for ranlib... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
for dir in $PATH; do
test -z "$dir" && dir=.
- if test -f $dir/ranlib; then
+ if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
RANLIB="ranlib"
result="ranlib"
break
@@ -385,20 +498,24 @@ if test "${RANLIB+set}" != "set"; then
fi
if test -n "$RANLIB"; then
- old_archive_cmds="$old_archive_cmds;\$RANLIB \$oldlib"
- old_postinstall_cmds="\$RANLIB \$oldlib;$old_postinstall_cmds"
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
fi
+# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$AS" && AS=as
+
# Check to see if we are using GCC.
if test "$with_gcc" != yes || test -z "$CC"; then
# If CC is not set, then try to find GCC or a usable CC.
if test -z "$CC"; then
echo $ac_n "checking for gcc... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
for dir in $PATH; do
- IFS="$save_ifs"
test -z "$dir" && dir=.
- if test -f $dir/gcc; then
+ if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
CC="gcc"
break
fi
@@ -415,11 +532,11 @@ if test "$with_gcc" != yes || test -z "$CC"; then
# Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
if test -z "$CC"; then
echo $ac_n "checking for cc... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
cc_rejected=no
for dir in $PATH; do
test -z "$dir" && dir=.
- if test -f $dir/cc; then
+ if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
if test "$dir/cc" = "/usr/ucb/cc"; then
cc_rejected=yes
continue
@@ -459,7 +576,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
# Now see if the compiler is really GCC.
with_gcc=no
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
- echo "$progname:462: checking whether we are using GNU C" >&5
+ echo "$progname:579: checking whether we are using GNU C" >&5
$rm conftest.c
cat > conftest.c <<EOF
@@ -467,7 +584,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
yes;
#endif
EOF
- if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:587: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
with_gcc=yes
fi
$rm conftest.c
@@ -478,6 +595,28 @@ fi
set dummy $CC
compiler="$2"
+echo $ac_n "checking for object suffix... $ac_c" 1>&6
+$rm conftest*
+echo 'int i = 1;' > conftest.c
+echo "$progname:601: checking for object suffix" >& 5
+if { (eval echo $progname:602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
+ # Append any warnings to the config.log.
+ cat conftest.err 1>&5
+
+ for ac_file in conftest.*; do
+ case $ac_file in
+ *.c) ;;
+ *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
+ esac
+ done
+else
+ cat conftest.err 1>&5
+ echo "$progname: failed program was:" >&5
+ cat conftest.c >&5
+fi
+$rm conftest*
+echo "$ac_t$objext" 1>&6
+
echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
pic_flag=
special_shlib_compile_flags=
@@ -488,13 +627,21 @@ no_builtin_flag=
if test "$with_gcc" = yes; then
wl='-Wl,'
link_static_flag='-static'
- no_builtin_flag=' -fno-builtin'
case "$host_os" in
- aix3* | aix4* | irix5* | irix6* | osf3* | osf4*)
+ beos* | irix5* | irix6* | osf3* | osf4*)
# PIC is the default for these OSes.
;;
- os2*)
+ aix*)
+ # Below there is a dirty hack to force normal static linking with -ldl
+ # The problem is because libdl dynamically linked with both libc and
+ # libC (AIX C++ library), which obviously doesn't included in libraries
+ # list by gcc. This cause undefined symbols with -static flags.
+ # This hack allows C programs to be linked with "-static -ldl", but
+ # we not sure about C++ programs.
+ link_static_flag="$link_static_flag ${wl}-lC"
+ ;;
+ cygwin* | mingw* | os2*)
# We can build DLLs from non-PIC.
;;
amigaos*)
@@ -528,7 +675,7 @@ else
# PIC (with -KPIC) is the default.
;;
- os2*)
+ cygwin* | mingw* | os2*)
# We can build DLLs from non-PIC.
;;
@@ -544,7 +691,7 @@ else
special_shlib_compile_flags='-belf'
;;
- solaris2*)
+ solaris*)
pic_flag='-KPIC'
link_static_flag='-Bstatic'
wl='-Wl,'
@@ -556,7 +703,7 @@ else
wl='-Qoption ld '
;;
- sysv4.2uw2*)
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
pic_flag='-KPIC'
link_static_flag='-Bstatic'
wl='-Wl,'
@@ -582,22 +729,30 @@ if test -n "$pic_flag"; then
echo "int some_variable = 0;" > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
- echo "$progname:585: checking if $compiler PIC flag $pic_flag works" >&5
- if { (eval echo $progname:586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+ echo "$progname:732: checking if $compiler PIC flag $pic_flag works" >&5
+ if { (eval echo $progname:733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
# Append any warnings to the config.log.
cat conftest.err 1>&5
-
- # On HP-UX, both CC and GCC only warn that PIC is supported... then they
- # create non-PIC objects. So, if there were any warnings, we assume that
- # PIC is not supported.
- if test -s conftest.err; then
- echo "$ac_t"no 1>&6
- can_build_shared=no
- pic_flag=
- else
+
+ case "$host_os" in
+ hpux9* | hpux10* | hpux11*)
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then they
+ # create non-PIC objects. So, if there were any warnings, we assume that
+ # PIC is not supported.
+ if test -s conftest.err; then
+ echo "$ac_t"no 1>&6
+ can_build_shared=no
+ pic_flag=
+ else
+ echo "$ac_t"yes 1>&6
+ pic_flag=" $pic_flag"
+ fi
+ ;;
+ *)
echo "$ac_t"yes 1>&6
pic_flag=" $pic_flag"
- fi
+ ;;
+ esac
else
# Append any errors to the config.log.
cat conftest.err 1>&5
@@ -611,6 +766,136 @@ else
echo "$ac_t"none 1>&6
fi
+# Check to see if options -o and -c are simultaneously supported by compiler
+echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
+$rm -r conftest 2>/dev/null
+mkdir conftest
+cd conftest
+$rm conftest*
+echo "int some_variable = 0;" > conftest.c
+mkdir out
+# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+# that will create temporary files in the current directory regardless of
+# the output directory. Thus, making CWD read-only will cause this test
+# to fail, enabling locking or at least warning the user not to do parallel
+# builds.
+chmod -w .
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -o out/conftest2.o"
+echo "$progname:785: checking if $compiler supports -c -o file.o" >&5
+if { (eval echo $progname:786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
+
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s out/conftest.err; then
+ echo "$ac_t"no 1>&6
+ compiler_c_o=no
+ else
+ echo "$ac_t"yes 1>&6
+ compiler_c_o=yes
+ fi
+else
+ # Append any errors to the config.log.
+ cat out/conftest.err 1>&5
+ compiler_c_o=no
+ echo "$ac_t"no 1>&6
+fi
+CFLAGS="$save_CFLAGS"
+chmod u+w .
+$rm conftest* out/*
+rmdir out
+cd ..
+rmdir conftest
+$rm -r conftest 2>/dev/null
+
+if test x"$compiler_c_o" = x"yes"; then
+ # Check to see if we can write to a .lo
+ echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
+ $rm conftest*
+ echo "int some_variable = 0;" > conftest.c
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -c -o conftest.lo"
+ echo "$progname:818: checking if $compiler supports -c -o file.lo" >&5
+if { (eval echo $progname:819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
+
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ echo "$ac_t"no 1>&6
+ compiler_o_lo=no
+ else
+ echo "$ac_t"yes 1>&6
+ compiler_o_lo=yes
+ fi
+ else
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ compiler_o_lo=no
+ echo "$ac_t"no 1>&6
+ fi
+ CFLAGS="$save_CFLAGS"
+ $rm conftest*
+else
+ compiler_o_lo=no
+fi
+
+# Check to see if we can do hard links to lock some files if needed
+hard_links="nottested"
+if test "$compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$ac_t$hard_links" 1>&6
+ $rm conftest*
+ if test "$hard_links" = no; then
+ echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+if test "$with_gcc" = yes; then
+ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
+ $rm conftest*
+ echo "int some_variable = 0;" > conftest.c
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
+ echo "$progname:870: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+ if { (eval echo $progname:871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ echo "$ac_t"no 1>&6
+ compiler_rtti_exceptions=no
+ else
+ echo "$ac_t"yes 1>&6
+ compiler_rtti_exceptions=yes
+ fi
+ else
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ compiler_rtti_exceptions=no
+ echo "$ac_t"no 1>&6
+ fi
+ CFLAGS="$save_CFLAGS"
+ $rm conftest*
+
+ if test "$compiler_rtti_exceptions" = "yes"; then
+ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+ else
+ no_builtin_flag=' -fno-builtin'
+ fi
+
+fi
+
# Check for any special shared library compilation flags.
if test -n "$special_shlib_compile_flags"; then
echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
@@ -626,8 +911,8 @@ $rm conftest*
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
-echo "$progname:629: checking if $compiler static flag $link_static_flag works" >&5
-if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+echo "$progname:914: checking if $compiler static flag $link_static_flag works" >&5
+if { (eval echo $progname:915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$ac_t$link_static_flag" 1>&6
else
echo "$ac_t"none 1>&6
@@ -639,9 +924,9 @@ $rm conftest*
if test -z "$LN_S"; then
# Check to see if we can use ln -s, or we need hard links.
echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
- $rm conftestdata
- if ln -s X conftestdata 2>/dev/null; then
- $rm conftestdata
+ $rm conftest.dat
+ if ln -s X conftest.dat 2>/dev/null; then
+ $rm conftest.dat
LN_S="ln -s"
else
LN_S=ln
@@ -659,11 +944,17 @@ if test -z "$LD"; then
if test "$with_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
- echo "$progname:662: checking for ld used by GCC" >&5
+ echo "$progname:947: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
- /* | [A-Za-z]:[/\\]*)
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
test -z "$LD" && LD="$ac_prog"
;;
"")
@@ -677,17 +968,17 @@ if test -z "$LD"; then
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld... $ac_c" 1>&6
- echo "$progname:680: checking for GNU ld" >&5
+ echo "$progname:971: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
- echo "$progname:683: checking for non-GNU ld" >&5
+ echo "$progname:974: checking for non-GNU ld" >&5
fi
if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog"; then
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
@@ -729,38 +1020,148 @@ echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c
allow_undefined_flag=
no_undefined_flag=
+need_lib_prefix=unknown
+need_version=unknown
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
archive_cmds=
+archive_expsym_cmds=
old_archive_from_new_cmds=
export_dynamic_flag_spec=
whole_archive_flag_spec=
+thread_safe_flag_spec=
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
hardcode_shlibpath_var=unsupported
runpath_var=
+always_export_symbols=no
+export_symbols_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+# include_expsyms should be a list of space-separated symbols to be *always*
+# included in the symbol list
+include_expsyms=
+# exclude_expsyms can be an egrep regular expression of symbols to exclude
+# it will be wrapped by ` (' and `)$', so one must not match beginning or
+# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+# as well as any symbol that contains `d'.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+# platforms (ab)use it in PIC code, but their linkers get confused if
+# the symbol is explicitly referenced. Since portable code cannot
+# rely on this symbol name, it's probably fine to never include it in
+# preloaded symbol tables.
+
+case "$host_os" in
+cygwin* | mingw*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$with_gcc" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+
+esac
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
# See if GNU ld supports shared libraries.
case "$host_os" in
+ aix3* | aix4*)
+ # On AIX, the GNU linker is very broken
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ ;;
+
amigaos*)
- archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)'
+ archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+
+ # Extract the symbol export list from an `--export-all' def file,
+ # then regenerate the def file from the symbol export list, so that
+ # the compiled dll only exports the symbol export list.
+ export_symbols_cmds='rm -f $objdir/$soname-ltdll.c~
+ sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+ (cd $objdir && $CC -c $soname-ltdll.c)~
+ $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs~
+ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols'
+
+ archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
+ _lt_hint=1;
+ for symbol in `cat $export_symbols`; do
+ echo " \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def;
+ _lt_hint=`expr 1 + \$_lt_hint`;
+ done~
+ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+ $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
+
+ old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
+ ;;
+
+ netbsd*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
+ # can we support soname and/or expsyms with a.out? -oliva
+ fi
;;
sunos4*)
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts'
+ wlarc=
hardcode_direct=yes
- hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs'
+ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
else
ld_shlibs=no
fi
@@ -771,14 +1172,15 @@ if test "$with_gnu_ld" = yes; then
runpath_var=LD_RUN_PATH
hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
export_dynamic_flag_spec='${wl}--export-dynamic'
- whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
case "$host_os" in
aix3*)
allow_undefined_flag=unsupported
- archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname'
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
@@ -790,16 +1192,67 @@ else
;;
aix4*)
- allow_undefined_flag=unsupported
- archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname'
- hardcode_direct=yes
- hardcode_minus_L=yes
- ;;
+ hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
+ hardcode_libdir_separator=':'
+ if test "$with_gcc" = yes; then
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ shared_flag='-shared'
+ else
+ shared_flag='${wl}-bM:SRE'
+ hardcode_direct=yes
+ fi
+ allow_undefined_flag=' ${wl}-berok'
+ archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
+ archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
+ case "$host_os" in aix4.[01]|aix4.[01].*)
+ # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
+ always_export_symbols=yes ;;
+ esac
+ ;;
amigaos*)
- archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)'
+ archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ cygwin* | mingw*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs'
+ fix_srcfile_path='`cygpath -w $srcfile`'
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
;;
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
@@ -807,65 +1260,64 @@ else
# does not break anything, and helps significantly (at the cost of a little
# extra space).
freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o'
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
- hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
- archive_cmds='$LD -Bshareable -o $lib$libobjs'
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
- # FreeBSD 3, at last, uses gcc -shared to do shared libraries.
- freebsd3*)
- archive_cmds='$CC -shared -o $lib$libobjs'
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
- hardcode_minus_L=no
hardcode_shlibpath_var=no
;;
- hpux9*)
- archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib'
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10* | hpux11*)
- archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs'
+ hpux9* | hpux10* | hpux11*)
+ case "$host_os" in
+ hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
+ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;;
+ esac
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
hardcode_direct=yes
- hardcode_minus_L=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
export_dynamic_flag_spec='${wl}-E'
;;
irix5* | irix6*)
if test "$with_gcc" = yes; then
- archive_cmds='$CC -shared -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring$libobjs'
+ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
else
- archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs'
+ archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
fi
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
;;
netbsd*)
- # Tested with NetBSD 1.2 ld
- archive_cmds='$LD -Bshareable -o $lib$libobjs'
- hardcode_libdir_flag_spec='-R$libdir'
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF
+ fi
+ hardcode_libdir_flag_spec='${wl}-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
openbsd*)
- archive_cmds='$LD -Bshareable -o $lib$libobjs'
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
@@ -875,80 +1327,108 @@ else
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
allow_undefined_flag=unsupported
- archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;$echo DATA >> $objdir/$libname.def;$echo " SINGLE NONSHARED" >> $objdir/$libname.def;$echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def'
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
;;
osf3* | osf4*)
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs$deplibs'
+ if test "$with_gcc" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ fi
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
sco3.2v5*)
- archive_cmds='$LD -G -o $lib$libobjs'
- hardcode_direct=yes
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
;;
- solaris2*)
+ solaris*)
no_undefined_flag=' -z text'
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib$libobjs'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_shlibpath_var=no
-
- # Solaris 2 before 2.5 hardcodes -L paths.
case "$host_os" in
- solaris2.[0-4]*)
- hardcode_minus_L=yes
- ;;
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
esac
;;
sunos4*)
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
+ sysv4)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
uts4*)
- archive_cmds='$LD -G -h $soname -o $lib$libobjs'
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=no
- hardcode_minus_L=no
hardcode_shlibpath_var=no
;;
*)
ld_shlibs=no
- can_build_shared=no
;;
esac
fi
echo "$ac_t$ld_shlibs" 1>&6
+test "$ld_shlibs" = no && can_build_shared=no
if test -z "$NM"; then
echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
case "$NM" in
- /* | [A-Za-z]:[/\\]*) ;; # Let the user override the test with a path.
+ [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
*)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+ for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/nm; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- NM="$ac_dir/nm -B"
- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- NM="$ac_dir/nm -p"
+ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ NM="$ac_dir/nm -B"
+ break
+ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ NM="$ac_dir/nm -p"
+ break
else
- NM="$ac_dir/nm"
+ NM=${NM="$ac_dir/nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
fi
- break
fi
done
IFS="$ac_save_ifs"
@@ -965,40 +1445,54 @@ echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
# [They come from Ultrix. What could be older than Ultrix?!! ;)]
# Character class describing NM global symbol codes.
-symcode='[BCDEGRSTU]'
+symcode='[BCDEGRST]'
# Regexp to match symbols that can be accessed directly from C.
sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \1'
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
# Define system-specific variables.
case "$host_os" in
aix*)
- symcode='[BCDTU]'
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
;;
irix*)
- # Cannot use undefined symbols on IRIX because inlined functions mess us up.
symcode='[BCDEGRST]'
;;
-solaris2*)
- symcode='[BDTU]'
+solaris*)
+ symcode='[BDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
;;
esac
# If we're using GNU nm, then use its standard symbol codes.
if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
- symcode='[ABCDGISTUW]'
+ symcode='[ABCDGISTW]'
fi
-# Write the raw and C identifiers.
-global_symbol_pipe="sed -n -e 's/^.* $symcode $sympat$/$symxfrm/p'"
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
-# Check to see that the pipe works correctly.
-pipe_works=no
-$rm conftest*
-cat > conftest.c <<EOF
+ # Write the raw and C identifiers.
+ global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+ $rm conftest*
+ cat > conftest.c <<EOF
#ifdef __cplusplus
extern "C" {
#endif
@@ -1010,93 +1504,100 @@ void nm_test_func(){}
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
-echo "$progname:1013: checking if global_symbol_pipe works" >&5
-if { (eval echo $progname:1014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { echo "$progname:1017: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
-
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- wcout=`wc "$nlist" 2>/dev/null`
- count=`$echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'`
- (test "$count" -ge 0) 2>/dev/null || count=-1
- else
- rm -f "$nlist"T
- count=-1
- fi
+ echo "$progname:1507: checking if global_symbol_pipe works" >&5
+ if { (eval echo $progname:1508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { echo "$progname:1511: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
- # Make sure that we snagged all the symbols we need.
- if egrep ' nm_test_var$' "$nlist" >/dev/null; then
- if egrep ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<EOF > conftest.c
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.c
#ifdef __cplusplus
extern "C" {
#endif
EOF
- # Now generate the symbol file.
- sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> conftest.c
+ # Now generate the symbol file.
+ eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
- cat <<EOF >> conftest.c
+ cat <<EOF >> conftest.c
#if defined (__STDC__) && __STDC__
-# define __ptr_t void *
+# define lt_ptr_t void *
#else
-# define __ptr_t char *
+# define lt_ptr_t char *
+# define const
#endif
-/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
-int dld_preloaded_symbol_count = $count;
-
/* The mapping between symbol names and symbols. */
-struct {
- char *name;
- __ptr_t address;
+const struct {
+ const char *name;
+ lt_ptr_t address;
}
-dld_preloaded_symbols[] =
+lt_preloaded_symbols[] =
{
EOF
- sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c
- cat <<\EOF >> conftest.c
- {0, (__ptr_t) 0}
+ sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
+ cat <<\EOF >> conftest.c
+ {0, (lt_ptr_t) 0}
};
#ifdef __cplusplus
}
#endif
EOF
- # Now try linking the two files.
- mv conftest.o conftestm.o
- save_LIBS="$LIBS"
- save_CFLAGS="$CFLAGS"
- LIBS='conftestm.o'
- CFLAGS="$CFLAGS$no_builtin_flag"
- if { (eval echo $progname:1075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- pipe_works=yes
- else
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
- fi
- LIBS="$save_LIBS"
+ # Now try linking the two files.
+ mv conftest.$objext conftstm.$objext
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if { (eval echo $progname:1563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ pipe_works=yes
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.c >&5
+ fi
+ LIBS="$save_LIBS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
else
- echo "cannot find nm_test_func in $nlist" >&5
+ echo "cannot find nm_test_var in $nlist" >&5
fi
else
- echo "cannot find nm_test_var in $nlist" >&5
+ echo "cannot run $global_symbol_pipe" >&5
fi
else
- echo "cannot run $global_symbol_pipe" >&5
+ echo "$progname: failed program was:" >&5
+ cat conftest.c >&5
+ fi
+ $rm conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ global_symbol_pipe=
fi
+done
+if test "$pipe_works" = yes; then
+ echo "${ac_t}ok" 1>&6
else
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
+ echo "${ac_t}failed" 1>&6
fi
-$rm conftest*
-# Do not use the global_symbol_pipe unless it works.
-echo "$ac_t$pipe_works" 1>&6
-test "$pipe_works" = yes || global_symbol_pipe=
+if test -z "$global_symbol_pipe"; then
+ global_symbol_to_cdecl=
+fi
# Check hardcoding attributes.
echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
@@ -1105,10 +1606,12 @@ if test -n "$hardcode_libdir_flag_spec" || \
test -n "$runpath_var"; then
# We can hardcode non-existant directories.
- if test "$hardcode_direct" != no && \
- test "$hardcode_minus_L" != no && \
- test "$hardcode_shlibpath_var" != no; then
-
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$hardcode_shlibpath_var" != no &&
+ test "$hardcode_minus_L" != no; then
# Linking always hardcodes the temporary library directory.
hardcode_action=relink
else
@@ -1140,12 +1643,27 @@ postuninstall_cmds=
finish_cmds=
finish_eval=
shlibpath_var=
+shlibpath_overrides_runpath=unknown
version_type=none
dynamic_linker="$host_os ld.so"
-
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+file_magic_cmd=
+file_magic_test_file=
+deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [regex]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
case "$host_os" in
-aix3* | aix4*)
+aix3*)
version_type=linux
library_names_spec='${libname}${release}.so$versuffix $libname.a'
shlibpath_var=LIBPATH
@@ -1154,16 +1672,89 @@ aix3* | aix4*)
soname_spec='${libname}${release}.so$major'
;;
+aix4*)
+ version_type=linux
+ # AIX has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ # We preserve .a as extension for shared libraries though AIX4.2
+ # and later linker supports .so
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
+ shlibpath_var=LIBPATH
+ deplibs_check_method=pass_all
+ ;;
+
amigaos*)
library_names_spec='$libname.ixlibrary $libname.a'
# Create ${libname}_ixlibrary.a entries in /sys/libs.
finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
;;
-freebsd2* | freebsd3*)
- version_type=sunos
- library_names_spec='${libname}${release}.so$versuffix $libname.so'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+beos*)
+ library_names_spec='${libname}.so'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+bsdi4*)
+ version_type=linux
+ library_names_spec='${libname}.so$major ${libname}.so'
+ soname_spec='${libname}.so'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ deplibs_check_method='file_magic ELF 32-bit LSB shared object'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=/shlib/libc.so
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw*)
+ version_type=windows
+ if test "$with_gcc" = yes; then
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
+ else
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
+ fi
+ dynamic_linker='Win32 ld.exe'
+ deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ file_magic_cmd='${OBJDUMP} -f'
+ need_lib_prefix=no
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd*)
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case "$version_type" in
+ freebsd-elf*)
+ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=`echo /usr/lib/libc.so*`
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ deplibs_check_method=unknown
+ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+ need_version=yes
+ ;;
+ esac
+ finish_cmds='PATH="\$PATH:/sbin" OBJFORMAT="'"$objformat"'" ldconfig -m $libdir'
shlibpath_var=LD_LIBRARY_PATH
;;
@@ -1178,7 +1769,10 @@ hpux9* | hpux10* | hpux11*)
# link against other versions.
dynamic_linker="$host_os dld.sl"
version_type=sunos
+ need_lib_prefix=no
+ need_version=no
shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
soname_spec='${libname}${release}.sl$major'
# HP-UX runs *really* slowly unless shared libraries are mode 555.
@@ -1186,10 +1780,35 @@ hpux9* | hpux10* | hpux11*)
;;
irix5* | irix6*)
- version_type=osf
- soname_spec='${libname}${release}.so'
- library_names_spec='${libname}${release}.so$versuffix $libname.so'
- shlibpath_var=LD_LIBRARY_PATH
+ version_type=irix
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}.so.$major'
+ library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
+ case "$host_os" in
+ irix5*)
+ libsuff= shlibsuff=
+ # this will be overridden with pass_all, but let us keep it just in case
+ deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+ ;;
+ *)
+ case "$LD" in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ # this will be overridden with pass_all, but let us keep it just in case
+ deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+ deplibs_check_method='pass_all'
;;
# No shared lib support for Linux oldld, aout, or coff.
@@ -1200,10 +1819,16 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
# This must be Linux ELF.
linux-gnu*)
version_type=linux
+ need_lib_prefix=no
+ need_version=no
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
soname_spec='${libname}${release}.so$major'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
if test -f /lib/ld.so.1; then
dynamic_linker='GNU ld.so'
@@ -1216,15 +1841,34 @@ linux-gnu*)
fi
;;
-netbsd* | openbsd*)
+netbsd*)
version_type=sunos
- library_names_spec='${libname}${release}.so$versuffix'
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+openbsd*)
+ version_type=sunos
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ need_version=no
+ fi
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
shlibpath_var=LD_LIBRARY_PATH
;;
os2*)
libname_spec='$name'
+ need_lib_prefix=no
library_names_spec='$libname.dll $libname.a'
dynamic_linker='OS/2 ld.exe'
shlibpath_var=LIBPATH
@@ -1232,9 +1876,17 @@ os2*)
osf3* | osf4*)
version_type=osf
+ need_version=no
soname_spec='${libname}${release}.so'
- library_names_spec='${libname}${release}.so$versuffix $libname.so'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
shlibpath_var=LD_LIBRARY_PATH
+ # this will be overridden with pass_all, but let us keep it just in case
+ deplibs_check_method='file_magic COFF format alpha shared library'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=/shlib/libc.so
+ deplibs_check_method='pass_all'
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
;;
sco3.2v5*)
@@ -1244,27 +1896,52 @@ sco3.2v5*)
shlibpath_var=LD_LIBRARY_PATH
;;
-solaris2*)
+solaris*)
version_type=linux
+ need_lib_prefix=no
+ need_version=no
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
soname_spec='${libname}${release}.so$major'
shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
# ldd complains unless libraries are executable
postinstall_cmds='chmod +x $lib'
+ deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=/lib/libc.so
;;
sunos4*)
version_type=sunos
- library_names_spec='${libname}${release}.so$versuffix'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
;;
-sysv4.2uw2*)
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
version_type=linux
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
soname_spec='${libname}${release}.so$major'
shlibpath_var=LD_LIBRARY_PATH
+ case "$host_vendor" in
+ ncr)
+ deplibs_check_method='pass_all'
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ file_magic_cmd=/usr/bin/file
+ file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ esac
;;
uts4*)
@@ -1274,29 +1951,77 @@ uts4*)
shlibpath_var=LD_LIBRARY_PATH
;;
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
*)
dynamic_linker=no
;;
esac
-echo "$ac_t$dynamic_linker"
+echo "$ac_t$dynamic_linker" 1>&6
test "$dynamic_linker" = no && can_build_shared=no
# Report the final consequences.
echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
+# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
+# configure.in, otherwise build static only libraries.
+case "$host_os" in
+cygwin* | mingw* | os2*)
+ if test x$can_build_shared = xyes; then
+ test x$enable_win32_dll = xno && can_build_shared=no
+ echo "checking if package supports dlls... $can_build_shared" 1>&6
+ fi
+;;
+esac
+
+if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
+ case "$deplibs_check_method" in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+fi
+
echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
test "$can_build_shared" = "no" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC.
case "$host_os" in
-aix*)
+aix3*)
test "$enable_shared" = yes && enable_static=no
if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds;\$RANLIB \$lib"
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
postinstall_cmds='$RANLIB $lib'
fi
;;
+
+aix4*)
+ test "$enable_shared" = yes && enable_static=no
+ ;;
esac
echo "$ac_t$enable_shared" 1>&6
@@ -1306,6 +2031,15 @@ test "$enable_shared" = yes || enable_static=yes
echo "checking whether to build static libraries... $enable_static" 1>&6
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
echo $ac_n "checking for objdir... $ac_c" 1>&6
rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
@@ -1318,45 +2052,497 @@ fi
rmdir .libs 2>/dev/null
echo "$ac_t$objdir" 1>&6
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
+ lt_cv_dlopen=no lt_cv_dlopen_libs=
+echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+echo "$progname:2063: checking for dlopen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2068 "ltconfig"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen(); 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 dlopen();
+
+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_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+dlopen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo $progname:2090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=yes"
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+echo "$progname:2108: checking for dlopen in -ldl" >&5
+ac_lib_var=`echo dl'_'dlopen | 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="-ldl $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2116 "ltconfig"
+/* 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 dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo $progname:2126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "$progname: 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
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
+echo "$progname:2145: checking for dld_link in -ldld" >&5
+ac_lib_var=`echo dld'_'dld_link | 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="-ldld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2153 "ltconfig"
+/* 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 dld_link();
+
+int main() {
+dld_link()
+; return 0; }
+EOF
+if { (eval echo $progname:2163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "$progname: 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
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+echo "$progname:2182: checking for shl_load" >&5
+if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2187 "ltconfig"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load(); 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 shl_load();
+
+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_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+shl_load();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo $progname:2209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=yes"
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="shl_load"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+echo "$progname:2227: checking for shl_load in -ldld" >&5
+ac_lib_var=`echo dld'_'shl_load | 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="-ldld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2235 "ltconfig"
+#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 shl_load();
+
+int main() {
+shl_load()
+; return 0; }
+EOF
+if { (eval echo $progname:2246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "$progname: 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
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+fi
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ fi
+
+ case "$lt_cv_dlopen" in
+ dlopen)
+for ac_hdr in dlfcn.h; do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "$progname:2289: 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 2294 "ltconfig"
+#include <$ac_hdr>
+int fnord = 0;
+EOF
+ac_try="$ac_compile conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo $progname:2299: \"$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 "$progname: 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
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ if test "x$ac_cv_header_dlfcn_h" = xyes; then
+ CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+ fi
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
+echo "$progname:2327: checking whether a program can dlopen itself" >&5
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ lt_cv_dlopen_self=cross
+ else
+ cat > conftest.c <<EOF
+#line 2335 "ltconfig"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LTDL_GLOBAL DL_GLOBAL
+# else
+# define LTDL_GLOBAL 0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LTDL_LAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LTDL_LAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LTDL_LAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LTDL_LAZY_OR_NOW DL_NOW
+# else
+# define LTDL_LAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+ if(ptr1 || ptr2) exit(0); } exit(1); }
+
+EOF
+if { (eval echo $progname:2381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ lt_cv_dlopen_self=yes
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ lt_cv_dlopen_self=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self" 1>&6
+
+ if test "$lt_cv_dlopen_self" = yes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
+echo "$progname:2400: checking whether a statically linked program can dlopen itself" >&5
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ lt_cv_dlopen_self_static=cross
+ else
+ cat > conftest.c <<EOF
+#line 2408 "ltconfig"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LTDL_GLOBAL DL_GLOBAL
+# else
+# define LTDL_GLOBAL 0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LTDL_LAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LTDL_LAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LTDL_LAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LTDL_LAZY_OR_NOW DL_NOW
+# else
+# define LTDL_LAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+ if(ptr1 || ptr2) exit(0); } exit(1); }
+
+EOF
+if { (eval echo $progname:2454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ lt_cv_dlopen_self_static=yes
+else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ lt_cv_dlopen_self_static=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
+fi
+ ;;
+ esac
+
+ case "$lt_cv_dlopen_self" in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case "$lt_cv_dlopen_self_static" in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
# Copy echo and quote the copy, instead of the original, because it is
# used later.
ltecho="$echo"
+if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ ltecho="$CONFIG_SHELL \$0 --fallback-echo"
+fi
+LTSHELL="$SHELL"
-# Now quote all the things that may contain metacharacters.
-for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
- old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \
- link_static_flag no_builtin_flag export_dynamic_flag_spec \
- whole_archive_flag_spec libname_spec library_names_spec soname_spec RANLIB \
- old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
- old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \
- allow_undefined_flag no_undefined_flag \
- finish_cmds finish_eval global_symbol_pipe \
- hardcode_libdir_flag_spec hardcode_libdir_separator; do
-
- case "$var" in
- reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \
- postinstall_cmds | postuninstall_cmds | finish_cmds)
- # Double-quote double-evaled strings.
- eval "$var=\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`"
- ;;
- *)
- eval "$var=\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`"
+LTCONFIG_VERSION="$VERSION"
+
+# Only quote variables if we're using ltmain.sh.
+case "$ltmain" in
+*.sh)
+ # Now quote all the things that may contain metacharacters.
+ for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
+ old_LD old_LDFLAGS old_LIBS \
+ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
+ AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
+ reload_flag reload_cmds wl \
+ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+ library_names_spec soname_spec \
+ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
+ file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
+ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+ hardcode_libdir_flag_spec hardcode_libdir_separator \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+
+ case "$var" in
+ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case "$ltecho" in
+ *'\$0 --fallback-echo"')
+ ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
;;
esac
-done
-trap "$rm \"$ofile\"; exit 1" 1 2 15
-echo "creating $ofile"
-$rm "$ofile"
-cat <<EOF > "$ofile"
+ trap "$rm \"$ofile\"; exit 1" 1 2 15
+ echo "creating $ofile"
+ $rm "$ofile"
+ cat <<EOF > "$ofile"
#! $SHELL
# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM - GNU $PACKAGE $VERSION
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
#
-# Copyright (C) 1996-1998 Free Software Foundation, Inc.
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# This program is free software; you can redistribute it and/or modify
@@ -1386,20 +2572,47 @@ Xsed="sed -e s/^X//"
if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
### BEGIN LIBTOOL CONFIG
+EOF
+ cfgfile="$ofile"
+ ;;
+
+*)
+ # Double-quote the variables that need it (for aesthetics).
+ for var in old_CC old_CFLAGS old_CPPFLAGS \
+ old_LD old_LDFLAGS old_LIBS \
+ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
+ eval "$var=\\\"\$var\\\""
+ done
+
+ # Just create a config file.
+ cfgfile="$ofile.cfg"
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+ echo "creating $cfgfile"
+ $rm "$cfgfile"
+ cat <<EOF > "$cfgfile"
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+EOF
+ ;;
+esac
+
+cat <<EOF >> "$cfgfile"
# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
#
-# CC="$old_CC" CFLAGS="$old_CFLAGS" CPPFLAGS="$old_CPPFLAGS" \\
-# LD="$old_LD" NM="$old_NM" RANLIB="$old_RANLIB" LN_S="$old_LN_S" \\
+# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
+# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
+# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
+# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
# $0$ltconfig_args
#
# Compiler and other test output produced by $progname, useful for
# debugging $progname, is in ./config.log if it exists.
# The version of $progname that generated this script.
-LTCONFIG_VERSION="$VERSION"
+LTCONFIG_VERSION=$LTCONFIG_VERSION
# Shell to use when invoking shell scripts.
-SHELL="$SHELL"
+SHELL=$LTSHELL
# Whether or not to build shared libraries.
build_libtool_libs=$enable_shared
@@ -1407,94 +2620,149 @@ build_libtool_libs=$enable_shared
# Whether or not to build static libraries.
build_old_libs=$enable_static
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
# The host system.
-host_alias="$host_alias"
-host="$host"
+host_alias=$host_alias
+host=$host
# An echo program that does not interpret backslashes.
-echo="$ltecho"
+echo=$ltecho
# The archiver.
-AR="$AR"
+AR=$AR
# The default C compiler.
-CC="$CC"
+CC=$CC
# The linker used to build libraries.
-LD="$LD"
+LD=$LD
# Whether we need hard or soft links.
-LN_S="$LN_S"
+LN_S=$LN_S
# A BSD-compatible nm program.
-NM="$NM"
+NM=$NM
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
# The name of the directory that contains temporary libtool files.
-objdir="$objdir"
+objdir=$objdir
# How to create reloadable object files.
-reload_flag="$reload_flag"
-reload_cmds="$reload_cmds"
+reload_flag=$reload_flag
+reload_cmds=$reload_cmds
# How to pass a linker flag through the compiler.
-wl="$wl"
+wl=$wl
+
+# Object file suffix (normally "o").
+objext="$objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
# Additional compiler flags for building library objects.
-pic_flag="$pic_flag"
+pic_flag=$pic_flag
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$compiler_c_o
+
+# Can we write directly to a .lo ?
+compiler_o_lo=$compiler_o_lo
+
+# Must we lock files when doing compilation ?
+need_locks=$need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
# Compiler flag to prevent dynamic linking.
-link_static_flag="$link_static_flag"
+link_static_flag=$link_static_flag
# Compiler flag to turn off builtin functions.
-no_builtin_flag="$no_builtin_flag"
+no_builtin_flag=$no_builtin_flag
# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec="$export_dynamic_flag_spec"
+export_dynamic_flag_spec=$export_dynamic_flag_spec
# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec="$whole_archive_flag_spec"
+whole_archive_flag_spec=$whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$thread_safe_flag_spec
# Library versioning type.
version_type=$version_type
# Format of library name prefix.
-libname_spec="$libname_spec"
+libname_spec=$libname_spec
# List of archive names. First name is the real one, the rest are links.
# The last name is the one that the linker finds with -lNAME.
-library_names_spec="$library_names_spec"
+library_names_spec=$library_names_spec
# The coded name of the library, if different from the real name.
-soname_spec="$soname_spec"
+soname_spec=$soname_spec
# Commands used to build and install an old-style archive.
-RANLIB="$RANLIB"
-old_archive_cmds="$old_archive_cmds"
-old_postinstall_cmds="$old_postinstall_cmds"
-old_postuninstall_cmds="$old_postuninstall_cmds"
+RANLIB=$RANLIB
+old_archive_cmds=$old_archive_cmds
+old_postinstall_cmds=$old_postinstall_cmds
+old_postuninstall_cmds=$old_postuninstall_cmds
# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds="$old_archive_from_new_cmds"
+old_archive_from_new_cmds=$old_archive_from_new_cmds
# Commands used to build and install a shared archive.
-archive_cmds="$archive_cmds"
-postinstall_cmds="$postinstall_cmds"
-postuninstall_cmds="$postuninstall_cmds"
+archive_cmds=$archive_cmds
+archive_expsym_cmds=$archive_expsym_cmds
+postinstall_cmds=$postinstall_cmds
+postuninstall_cmds=$postuninstall_cmds
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$file_magic_cmd
# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag="$allow_undefined_flag"
+allow_undefined_flag=$allow_undefined_flag
# Flag that forces no undefined symbols.
-no_undefined_flag="$no_undefined_flag"
+no_undefined_flag=$no_undefined_flag
# Commands used to finish a libtool library installation in a directory.
-finish_cmds="$finish_cmds"
+finish_cmds=$finish_cmds
# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval="$finish_eval"
+finish_eval=$finish_eval
# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe="$global_symbol_pipe"
+global_symbol_pipe=$global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$global_symbol_to_cdecl
# This is the shared library runtime path variable.
runpath_var=$runpath_var
@@ -1502,15 +2770,18 @@ runpath_var=$runpath_var
# This is the shared library path variable.
shlibpath_var=$shlibpath_var
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
# How to hardcode a shared library path into an executable.
hardcode_action=$hardcode_action
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec="$hardcode_libdir_flag_spec"
+hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator="$hardcode_libdir_separator"
+hardcode_libdir_separator=$hardcode_libdir_separator
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
# resulting binary.
@@ -1523,11 +2794,37 @@ hardcode_minus_L=$hardcode_minus_L
# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
# the resulting binary.
hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$include_expsyms
+
EOF
-case "$host_os" in
-aix3*)
- cat <<\EOF >> "$ofile"
+case "$ltmain" in
+*.sh)
+ echo '### END LIBTOOL CONFIG' >> "$ofile"
+ echo >> "$ofile"
+ case "$host_os" in
+ aix3*)
+ cat <<\EOF >> "$ofile"
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
@@ -1537,16 +2834,72 @@ if test "${COLLECT_NAMES+set}" != set; then
export COLLECT_NAMES
fi
EOF
+ ;;
+ esac
+
+ # Append the ltmain.sh script.
+ cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
+
+ chmod +x "$ofile"
+ ;;
+
+*)
+ # Compile the libtool program.
+ echo "FIXME: would compile $ltmain"
;;
esac
-echo '### END LIBTOOL CONFIG' >> "$ofile"
-echo >> "$ofile"
+test -n "$cache_file" || exit 0
-# Append the ltmain.sh script.
-cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
+# AC_CACHE_SAVE
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
-chmod +x "$ofile"
exit 0
# Local Variables:
diff --git a/ltmain.sh b/ltmain.sh
index cb817471..f1b99861 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,8 +1,8 @@
# ltmain.sh - Provide generalized library-building support services.
# NOTE: Changing this file will not affect anything until you rerun ltconfig.
#
-# Copyright (C) 1996-1998 Free Software Foundation, Inc.
-# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# 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
@@ -27,6 +27,9 @@
if test "X$1" = X--no-reexec; then
# Discard the --no-reexec flag, and continue.
shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
# Yippee, $echo works!
:
@@ -35,6 +38,15 @@ else
exec $SHELL "$0" --no-reexec ${1+"$@"}
fi
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit 0
+fi
+
# The name of this program.
progname=`$echo "$0" | sed 's%^.*/%%'`
modename="$progname"
@@ -42,7 +54,8 @@ modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
-VERSION=1.2b
+VERSION=1.3
+TIMESTAMP=" (1.385.2.117 1999/04/29 13:07:13)"
default_mode=
help="Try \`$progname --help' for more information."
@@ -53,8 +66,10 @@ rm="rm -f"
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
+Xsed='sed -e 1s/^X//'
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+SP2NL='tr \040 \012'
+NL2SP='tr \012 \040'
# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
@@ -89,6 +104,8 @@ run=
show="$echo"
show_help=
execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
# Parse our command line options once, thoroughly.
while test $# -gt 0
@@ -124,7 +141,7 @@ do
;;
--version)
- echo "$PROGRAM (GNU $PACKAGE) $VERSION"
+ echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
exit 0
;;
@@ -199,12 +216,12 @@ if test -z "$show_help"; then
mode=link
for arg
do
- case "$arg" in
- -c)
- mode=compile
- break
- ;;
- esac
+ case "$arg" in
+ -c)
+ mode=compile
+ break
+ ;;
+ esac
done
;;
*db | *dbx | *strace | *truss)
@@ -222,11 +239,11 @@ if test -z "$show_help"; then
# Just use the default operation mode.
if test -z "$mode"; then
- if test -n "$nonopt"; then
- $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
- else
- $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
- fi
+ if test -n "$nonopt"; then
+ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+ else
+ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+ fi
fi
;;
esac
@@ -254,14 +271,17 @@ if test -z "$show_help"; then
srcfile="$nonopt"
suppress_output=
+ user_target=no
for arg
do
# Accept any command-line options.
case "$arg" in
-o)
- $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
- $echo "$help" 1>&2
- exit 1
+ if test "$user_target" != "no"; then
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+ exit 1
+ fi
+ user_target=next
;;
-static)
@@ -270,6 +290,20 @@ if test -z "$show_help"; then
;;
esac
+ case "$user_target" in
+ next)
+ # The next one is the -o target name
+ user_target=yes
+ continue
+ ;;
+ yes)
+ # We got the output file
+ user_target=set
+ libobj="$arg"
+ continue
+ ;;
+ esac
+
# Accept the current argument as the source file.
lastarg="$srcfile"
srcfile="$arg"
@@ -298,11 +332,22 @@ if test -z "$show_help"; then
fi
done
- # Get the name of the library object.
- libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ case "$user_target" in
+ set)
+ ;;
+ no)
+ # Get the name of the library object.
+ libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ ;;
+ *)
+ $echo "$modename: you must specify a target with \`-o'" 1>&2
+ exit 1
+ ;;
+ esac
# Recognize several different file suffixes.
- xform='[cCFSfms]'
+ # If the user specifies -o file.o, it is replaced with file.lo
+ xform='[cCFSfmso]'
case "$libobj" in
*.ada) xform=ada ;;
*.adb) xform=adb ;;
@@ -319,9 +364,9 @@ if test -z "$show_help"; then
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
case "$libobj" in
- *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;;
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
*)
- $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
+ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
exit 1
;;
esac
@@ -334,11 +379,54 @@ if test -z "$show_help"; then
# Delete any leftover library objects.
if test "$build_old_libs" = yes; then
- $run $rm $obj $libobj
- trap "$run $rm $obj $libobj; exit 1" 1 2 15
+ removelist="$obj $libobj"
else
- $run $rm $libobj
- trap "$run $rm $libobj; exit 1" 1 2 15
+ removelist="$libobj"
+ fi
+
+ $run $rm $removelist
+ trap "$run $rm $removelist; exit 1" 1 2 15
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ removelist="$removelist $output_obj $lockfile"
+ trap "$run $rm $removelist; exit 1" 1 2 15
+ else
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until ln "$0" "$lockfile" 2>/dev/null; do
+ $show "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+ echo $srcfile > "$lockfile"
+ fi
+
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
fi
# Only build a PIC object if we are building libtool libraries.
@@ -347,23 +435,101 @@ if test -z "$show_help"; then
fbsd_hideous_sh_bug=$base_compile
# All platforms use -DPIC, to notify preprocessed assembler code.
- $show "$base_compile$pic_flag -DPIC $srcfile"
- if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then :
+ command="$base_compile $pic_flag -DPIC $srcfile"
+ if test "$build_old_libs" = yes; then
+ lo_libobj="$libobj"
+ dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$libobj"; then
+ dir="$objdir"
+ else
+ dir="$dir/$objdir"
+ fi
+ libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
+
+ if test -d "$dir"; then
+ $show "$rm $libobj"
+ $run $rm $libobj
+ else
+ $show "$mkdir $dir"
+ $run $mkdir $dir
+ status=$?
+ if test $status -ne 0 && test ! -d $dir; then
+ exit $status
+ fi
+ fi
+ fi
+ if test "$compiler_o_lo" = yes; then
+ output_obj="$libobj"
+ command="$command -o $output_obj"
+ elif test "$compiler_c_o" = yes; then
+ output_obj="$obj"
+ command="$command -o $output_obj"
+ fi
+
+ $show "$command"
+ if $run eval "$command"; then :
else
- test -n "$obj" && $run $rm $obj
- exit 1
+ test -n "$output_obj" && $run $rm $removelist
+ exit 1
fi
- # If we have no pic_flag, then copy the object into place and finish.
- if test -z "$pic_flag"; then
- $show "$LN_S $obj $libobj"
- $run $LN_S $obj $libobj
- exit $?
+ if test "$need_locks" = warn &&
+ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
+ echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test x"$output_obj" != x"$libobj"; then
+ $show "$mv $output_obj $libobj"
+ if $run $mv $output_obj $libobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
fi
- # Just move the object, then go on to compile the next one
- $show "$mv $obj $libobj"
- $run $mv $obj $libobj || exit $?
+ # If we have no pic_flag, then copy the object into place and finish.
+ if test -z "$pic_flag" && test "$build_old_libs" = yes; then
+ # Rename the .lo from within objdir to obj
+ if test -f $obj; then
+ $show $rm $obj
+ $run $rm $obj
+ fi
+
+ $show "$mv $libobj $obj"
+ if $run $mv $libobj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+
+ # Now arrange that obj and lo_libobj become the same file
+ $show "$LN_S $obj $lo_libobj"
+ if $run $LN_S $obj $lo_libobj; then
+ exit 0
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
# Allow error messages only from the first compilation.
suppress_output=' >/dev/null 2>&1'
@@ -371,20 +537,72 @@ if test -z "$show_help"; then
# Only build a position-dependent object if we build old libraries.
if test "$build_old_libs" = yes; then
+ command="$base_compile $srcfile"
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+ output_obj="$obj"
+ fi
+
# Suppress compiler output if we already did a PIC compilation.
- $show "$base_compile $srcfile$suppress_output"
- if $run eval "$base_compile \$srcfile$suppress_output"; then :
+ command="$command$suppress_output"
+ $show "$command"
+ if $run eval "$command"; then :
else
- $run $rm $obj $libobj
- exit 1
+ $run $rm $removelist
+ exit 1
+ fi
+
+ if test "$need_locks" = warn &&
+ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
+ echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+
+ # Just move the object if needed
+ if test x"$output_obj" != x"$obj"; then
+ $show "$mv $output_obj $obj"
+ if $run $mv $output_obj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we do not
+ # accidentally link it into a program.
+ if test "$build_libtool_libs" != yes; then
+ $show "echo timestamp > $libobj"
+ $run eval "echo timestamp > \$libobj" || exit $?
+ else
+ # Move the .lo from within objdir
+ $show "$mv $libobj $lo_libobj"
+ if $run $mv $libobj $lo_libobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
fi
fi
- # Create an invalid libtool object if no PIC, so that we do not
- # accidentally link it into a program.
- if test "$build_libtool_libs" != yes; then
- $show "echo timestamp > $libobj"
- $run eval "echo timestamp > \$libobj" || exit $?
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ $rm "$lockfile"
fi
exit 0
@@ -393,31 +611,232 @@ if test -z "$show_help"; then
# libtool link mode
link)
modename="$modename: link"
+ C_compiler="$CC" # save it, to compile generated C sources
CC="$nonopt"
- allow_undefined=yes
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invokation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+
+ # This is a source program that is used to create dlls on Windows
+ # Don't remove nor modify the starting and closing comments
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+ # This is a source program that is used to create import libraries
+ # on Windows for dlls which lack them. Don't remove nor modify the
+ # starting and closing comments
+# /* impgen.c starts here */
+# /* Copyright (C) 1999 Free Software Foundation, Inc.
+#
+# This file is part of GNU libtool.
+#
+# 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 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.
+# */
+#
+# #include <stdio.h> /* for printf() */
+# #include <unistd.h> /* for open(), lseek(), read() */
+# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
+# #include <string.h> /* for strdup() */
+#
+# static unsigned int
+# pe_get16 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[2];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 2);
+# return b[0] + (b[1]<<8);
+# }
+#
+# static unsigned int
+# pe_get32 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[4];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 4);
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# static unsigned int
+# pe_as32 (ptr)
+# void *ptr;
+# {
+# unsigned char *b = ptr;
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# int
+# main (argc, argv)
+# int argc;
+# char *argv[];
+# {
+# int dll;
+# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
+# unsigned long export_rva, export_size, nsections, secptr, expptr;
+# unsigned long name_rvas, nexp;
+# unsigned char *expdata, *erva;
+# char *filename, *dll_name;
+#
+# filename = argv[1];
+#
+# dll = open(filename, O_RDONLY|O_BINARY);
+# if (!dll)
+# return 1;
+#
+# dll_name = filename;
+#
+# for (i=0; filename[i]; i++)
+# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
+# dll_name = filename + i +1;
+#
+# pe_header_offset = pe_get32 (dll, 0x3c);
+# opthdr_ofs = pe_header_offset + 4 + 20;
+# num_entries = pe_get32 (dll, opthdr_ofs + 92);
+#
+# if (num_entries < 1) /* no exports */
+# return 1;
+#
+# export_rva = pe_get32 (dll, opthdr_ofs + 96);
+# export_size = pe_get32 (dll, opthdr_ofs + 100);
+# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
+# secptr = (pe_header_offset + 4 + 20 +
+# pe_get16 (dll, pe_header_offset + 4 + 16));
+#
+# expptr = 0;
+# for (i = 0; i < nsections; i++)
+# {
+# char sname[8];
+# unsigned long secptr1 = secptr + 40 * i;
+# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
+# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
+# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
+# lseek(dll, secptr1, SEEK_SET);
+# read(dll, sname, 8);
+# if (vaddr <= export_rva && vaddr+vsize > export_rva)
+# {
+# expptr = fptr + (export_rva - vaddr);
+# if (export_rva + export_size > vaddr + vsize)
+# export_size = vsize - (export_rva - vaddr);
+# break;
+# }
+# }
+#
+# expdata = (unsigned char*)malloc(export_size);
+# lseek (dll, expptr, SEEK_SET);
+# read (dll, expdata, export_size);
+# erva = expdata - export_rva;
+#
+# nexp = pe_as32 (expdata+24);
+# name_rvas = pe_as32 (expdata+32);
+#
+# printf ("EXPORTS\n");
+# for (i = 0; i<nexp; i++)
+# {
+# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
+# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
+# }
+#
+# return 0;
+# }
+# /* impgen.c ends here */
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
compile_command="$CC"
finalize_command="$CC"
+ compile_rpath=
+ finalize_rpath=
compile_shlibpath=
finalize_shlibpath=
convenience=
old_convenience=
deplibs=
+ linkopts=
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+ else
+ lib_search_path=
+ fi
+ # now prepend the system-specific ones
+ eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ avoid_version=no
dlfiles=
dlprefiles=
+ dlself=no
export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
generated=
- hardcode_libdirs=
libobjs=
link_against_libtool_libs=
ltlibs=
+ module=no
objs=
+ prefer_static_libs=no
+ preload=no
prev=
prevarg=
release=
rpath=
+ xrpath=
perm_rpath=
temp_rpath=
+ thread_safe=no
vinfo=
# We need to know -static, to get the right output filenames.
@@ -425,13 +844,23 @@ if test -z "$show_help"; then
do
case "$arg" in
-all-static | -static)
- if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+ if test "X$arg" = "X-all-static"; then
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
- fi
- build_libtool_libs=no
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ else
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ fi
+ build_libtool_libs=no
build_old_libs=yes
- break
- ;;
+ prefer_static_libs=yes
+ break
+ ;;
esac
done
@@ -445,40 +874,93 @@ if test -z "$show_help"; then
# If the previous option needs an argument, assign it.
if test -n "$prev"; then
- case "$prev" in
- output)
- compile_command="$compile_command @OUTPUT@"
- finalize_command="$finalize_command @OUTPUT@"
- ;;
- esac
-
- case "$prev" in
- dlfiles|dlprefiles)
- case "$arg" in
- *.la | *.lo) ;; # We handle these cases below.
- *)
- dlprefiles="$dlprefiles $arg"
- test "$prev" = dlfiles && dlfiles="$dlfiles $arg"
- prev=
- ;;
- esac
- ;;
+ case "$prev" in
+ output)
+ compile_command="$compile_command @OUTPUT@"
+ finalize_command="$finalize_command @OUTPUT@"
+ ;;
+ esac
+
+ case "$prev" in
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ compile_command="$compile_command @SYMFILE@"
+ finalize_command="$finalize_command @SYMFILE@"
+ preload=yes
+ fi
+ case "$arg" in
+ *.la | *.lo) ;; # We handle these cases below.
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ else
+ dlprefiles="$dlprefiles $arg"
+ fi
+ prev=
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+ exit 1
+ fi
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
release)
release="-$arg"
prev=
continue
;;
- rpath)
- rpath="$rpath $arg"
+ rpath | xrpath)
+ # We need an absolute path.
+ case "$arg" in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit 1
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) rpath="$rpath $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) xrpath="$xrpath $arg" ;;
+ esac
+ fi
prev=
continue
;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
fi
prevarg="$arg"
@@ -486,10 +968,10 @@ if test -z "$show_help"; then
case "$arg" in
-all-static)
if test -n "$link_static_flag"; then
- compile_command="$compile_command $link_static_flag"
+ compile_command="$compile_command $link_static_flag"
finalize_command="$finalize_command $link_static_flag"
- fi
- continue
+ fi
+ continue
;;
-allow-undefined)
@@ -498,46 +980,96 @@ if test -z "$show_help"; then
continue
;;
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
-dlopen)
- prev=dlfiles
- continue
- ;;
+ prev=dlfiles
+ continue
+ ;;
-dlpreopen)
- prev=dlprefiles
- continue
- ;;
+ prev=dlprefiles
+ continue
+ ;;
-export-dynamic)
- if test "$export_dynamic" != yes; then
- export_dynamic=yes
- if test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- else
- arg=
- fi
+ export_dynamic=yes
+ continue
+ ;;
- # Add the symbol object into the linking commands.
- compile_command="$compile_command @SYMFILE@"
- finalize_command="$finalize_command @SYMFILE@"
- fi
- ;;
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: not more than one -exported-symbols argument allowed"
+ exit 1
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
-L*)
- dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
- case "$dir" in
- /* | [A-Za-z]:[/\\]*)
- # Add the corresponding hardcode_libdir_flag, if it is not identical.
- ;;
- *)
- $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
- exit 1
- ;;
- esac
- deplibs="$deplibs $arg"
- ;;
-
- -l*) deplibs="$deplibs $arg" ;;
+ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+ # We need an absolute path.
+ case "$dir" in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+ exit 1
+ fi
+ dir="$absdir"
+ ;;
+ esac
+ case " $deplibs " in
+ *" $arg "*) ;;
+ *) deplibs="$deplibs $arg";;
+ esac
+ case " $lib_search_path " in
+ *" $dir "*) ;;
+ *) lib_search_path="$lib_search_path $dir";;
+ esac
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2*)
+ dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
+ case ":$dllsearchpath:" in
+ ::) dllsearchpath="$dllsearchdir";;
+ *":$dllsearchdir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
+ esac
+ ;;
+ esac
+ ;;
+
+ -l*)
+ if test "$arg" = "-lc"; then
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
+ # These systems don't actually have c library (as such)
+ continue
+ ;;
+ esac
+ elif test "$arg" = "-lm"; then
+ case "$host" in
+ *-*-cygwin* | *-*-beos*)
+ # These systems don't actually have math library (as such)
+ continue
+ ;;
+ esac
+ fi
+ deplibs="$deplibs $arg"
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
-no-undefined)
allow_undefined=no
@@ -552,23 +1084,50 @@ if test -z "$show_help"; then
;;
-rpath)
- prev=rpath
- continue
- ;;
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+ # We need an absolute path.
+ case "$dir" in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit 1
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ continue
+ ;;
-static)
# If we have no pic_flag, then this is the same as -all-static.
if test -z "$pic_flag" && test -n "$link_static_flag"; then
- compile_command="$compile_command $link_static_flag"
+ compile_command="$compile_command $link_static_flag"
finalize_command="$finalize_command $link_static_flag"
- fi
+ fi
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
continue
;;
-version-info)
- prev=vinfo
- continue
- ;;
+ prev=vinfo
+ continue
+ ;;
# Some other compiler flag.
-* | +*)
@@ -580,18 +1139,18 @@ if test -z "$show_help"; then
arg="\"$arg\""
;;
esac
- ;;
+ ;;
- *.o | *.a)
- # A standard object.
- objs="$objs $arg"
- ;;
+ *.o | *.obj | *.a | *.lib)
+ # A standard object.
+ objs="$objs $arg"
+ ;;
*.lo)
- # A library object.
+ # A library object.
if test "$prev" = dlfiles; then
dlfiles="$dlfiles $arg"
- if test "$build_libtool_libs" = yes; then
+ if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
prev=
continue
else
@@ -602,204 +1161,270 @@ if test -z "$show_help"; then
if test "$prev" = dlprefiles; then
# Preload the old-style object.
- dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/.o/'`
+ dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
prev=
fi
libobjs="$libobjs $arg"
- ;;
+ ;;
*.la)
- # A libtool-controlled library.
-
- dlname=
- libdir=
- library_names=
- old_library=
-
- # Check to see that this really is a libtool archive.
- if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
- exit 1
- fi
-
- # If there is no directory component, then add one.
- case "$arg" in
- */* | *\\*) . $arg ;;
- *) . ./$arg ;;
- esac
-
- # Get the name of the library we link against.
- linklib=
- for l in $old_library $library_names; do
- linklib="$l"
- done
-
- if test -z "$linklib"; then
- $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
- exit 1
- fi
-
- # Find the relevant object directory and library name.
- name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
- dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$dir" = "X$arg"; then
- dir="$objdir"
- else
- dir="$dir/$objdir"
- fi
-
- if test -z "$libdir"; then
+ # A libtool-controlled library.
+
+ dlname=
+ libdir=
+ library_names=
+ old_library=
+
+ # Check to see that this really is a libtool archive.
+ if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
+ exit 1
+ fi
+
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variable installed.
+ installed=yes
+
+ # Read the .la file
+ # If there is no directory component, then add one.
+ case "$arg" in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ # Get the name of the library we link against.
+ linklib=
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+
+ if test -z "$linklib"; then
+ $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
+ exit 1
+ fi
+
+ # Find the relevant object directory and library name.
+ name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
+
+ if test "X$installed" = Xyes; then
+ dir="$libdir"
+ else
+ dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$arg"; then
+ dir="$objdir"
+ else
+ dir="$dir/$objdir"
+ fi
+ fi
+
+ if test -n "$dependency_libs"; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for deplib in $dependency_libs; do
+ case "$deplib" in
+ -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+ case " $rpath $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) xrpath="$xrpath $temp_xrpath";;
+ esac;;
+ -L*) case "$compile_command $temp_deplibs " in
+ *" $deplib "*) ;;
+ *) temp_deplibs="$temp_deplibs $deplib";;
+ esac;;
+ *) temp_deplibs="$temp_deplibs $deplib";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ if test -z "$libdir"; then
# It is a libtool convenience library, so add in its objects.
- convenience="$convenience $dir/$old_library"l
+ convenience="$convenience $dir/$old_library"
old_convenience="$old_convenience $dir/$old_library"
- compile_command="$compile_command $dir/$old_library"
- finalize_command="$finalize_command $dir/$old_library"
+ deplibs="$deplibs$dependency_libs"
+ compile_command="$compile_command $dir/$old_library$dependency_libs"
+ finalize_command="$finalize_command $dir/$old_library$dependency_libs"
continue
fi
- # This library was specified with -dlopen.
- if test "$prev" = dlfiles; then
- dlfiles="$dlfiles $arg"
- if test -z "$dlname"; then
- # If there is no dlname, we need to preload.
- prev=dlprefiles
- else
- # We should not create a dependency on this library, but we
+ # This library was specified with -dlopen.
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking statically,
+ # we need to preload.
+ prev=dlprefiles
+ else
+ # We should not create a dependency on this library, but we
# may need any libraries it requires.
compile_command="$compile_command$dependency_libs"
finalize_command="$finalize_command$dependency_libs"
- prev=
- continue
- fi
- fi
-
- # The library was specified with -dlpreopen.
- if test "$prev" = dlprefiles; then
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- dlprefiles="$dlprefiles $dir/$old_library"
- else
- dlprefiles="$dlprefiles $dir/$linklib"
- fi
- prev=
- fi
-
- if test "$build_libtool_libs" = yes && test -n "$library_names"; then
- link_against_libtool_libs="$link_against_libtool_libs $arg"
- if test -n "$shlibpath_var"; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath " in
- *" $dir "*) ;;
- *) temp_rpath="$temp_rpath $dir" ;;
- esac
- fi
+ prev=
+ continue
+ fi
+ fi
+
+ # The library was specified with -dlpreopen.
+ if test "$prev" = dlprefiles; then
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ dlprefiles="$dlprefiles $dir/$old_library"
+ else
+ dlprefiles="$dlprefiles $dir/$linklib"
+ fi
+ prev=
+ fi
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ link_against_libtool_libs="$link_against_libtool_libs $arg"
+ if test -n "$shlibpath_var"; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath " in
+ *" $dir "*) ;;
+ *) temp_rpath="$temp_rpath $dir" ;;
+ esac
+ fi
+
+ # We need an absolute path.
+ case "$dir" in
+ [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+ exit 1
+ fi
+ ;;
+ esac
+
# This is the magic to use -rpath.
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- # Put the magic libdir with the hardcode flag.
- hardcode_libdirs="$libdir"
- libdir="@HARDCODE_LIBDIRS@"
- else
- # Just accumulate the unique libdirs.
- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- libdir=
- fi
- fi
-
- if test -n "$libdir"; then
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- compile_command="$compile_command $flag"
- finalize_command="$finalize_command $flag"
- fi
- elif test -n "$runpath_var"; then
- # Do the same for the permanent run path.
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
+ # Skip directories that are in the system default run-time
+ # search path, unless they have been requested with -R.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
lib_linked=yes
- case "$hardcode_action" in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- compile_command="$compile_command $dir/$linklib"
- elif test "$hardcode_minus_L" = no; then
- compile_command="$compile_command -L$dir -l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- compile_shlibpath="$compile_shlibpath$dir:"
- compile_command="$compile_command -l$name"
+ case "$hardcode_action" in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ compile_command="$compile_command $dir/$linklib"
+ deplibs="$deplibs $dir/$linklib"
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2*)
+ dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
+ if test -n "$dllsearchpath"; then
+ dllsearchpath="$dllsearchpath:$dllsearchdir"
+ else
+ dllsearchpath="$dllsearchdir"
+ fi
+ ;;
+ esac
+ elif test "$hardcode_minus_L" = no; then
+ case "$host" in
+ *-*-sunos*)
+ compile_shlibpath="$compile_shlibpath$dir:"
+ ;;
+ esac
+ case "$compile_command " in
+ *" -L$dir "*) ;;
+ *) compile_command="$compile_command -L$dir";;
+ esac
+ compile_command="$compile_command -l$name"
+ deplibs="$deplibs -L$dir -l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ case ":$compile_shlibpath:" in
+ *":$dir:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$dir:";;
+ esac
+ compile_command="$compile_command -l$name"
+ deplibs="$deplibs -l$name"
else
lib_linked=no
- fi
- ;;
-
- relink)
- # We need an absolute path.
- case "$dir" in
- /* | [A-Za-z]:[/\\]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
- exit 1
- fi
- dir="$absdir"
- ;;
- esac
-
- if test "$hardcode_direct" = yes; then
- compile_command="$compile_command $dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- compile_command="$compile_command -L$dir -l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- compile_shlibpath="$compile_shlibpath$dir:"
- compile_command="$compile_command -l$name"
+ fi
+ ;;
+
+ relink)
+ if test "$hardcode_direct" = yes; then
+ compile_command="$compile_command $absdir/$linklib"
+ deplibs="$deplibs $absdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ case "$compile_command " in
+ *" -L$absdir "*) ;;
+ *) compile_command="$compile_command -L$absdir";;
+ esac
+ compile_command="$compile_command -l$name"
+ deplibs="$deplibs -L$absdir -l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case ":$compile_shlibpath:" in
+ *":$absdir:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$absdir:";;
+ esac
+ compile_command="$compile_command -l$name"
+ deplibs="$deplibs -l$name"
else
lib_linked=no
- fi
- ;;
+ fi
+ ;;
*)
lib_linked=no
;;
- esac
+ esac
if test "$lib_linked" != yes; then
$echo "$modename: configuration error: unsupported hardcode properties"
exit 1
fi
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes; then
- finalize_command="$finalize_command $libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- finalize_command="$finalize_command -L$libdir -l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- finalize_shlibpath="$finalize_shlibpath$libdir:"
- finalize_command="$finalize_command -l$name"
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- finalize_command="$finalize_command -L$libdir -l$name"
- fi
- else
- # Transform directly to old archives if we don't build new libraries.
- if test -n "$pic_flag" && test -z "$old_library"; then
- $echo "$modename: cannot find static library for \`$arg'" 1>&2
- exit 1
- fi
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes; then
+ finalize_command="$finalize_command $libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ case "$finalize_command " in
+ *" -L$libdir "*) ;;
+ *) finalize_command="$finalize_command -L$libdir";;
+ esac
+ finalize_command="$finalize_command -l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case ":$finalize_shlibpath:" in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
+ esac
+ finalize_command="$finalize_command -l$name"
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ case "$finalize_command " in
+ *" -L$dir "*) ;;
+ *) finalize_command="$finalize_command -L$libdir";;
+ esac
+ finalize_command="$finalize_command -l$name"
+ fi
+ else
+ # Transform directly to old archives if we don't build new libraries.
+ if test -n "$pic_flag" && test -z "$old_library"; then
+ $echo "$modename: cannot find static library for \`$arg'" 1>&2
+ exit 1
+ fi
# Here we assume that one of hardcode_direct or hardcode_minus_L
# is not unsupported. This is valid on all known static and
@@ -809,16 +1434,24 @@ if test -z "$show_help"; then
compile_command="$compile_command $dir/$linklib"
finalize_command="$finalize_command $dir/$linklib"
else
- compile_command="$compile_command -L$dir -l$name"
- finalize_command="$finalize_command -L$dir -l$name"
+ case "$compile_command " in
+ *" -L$dir "*) ;;
+ *) compile_command="$compile_command -L$dir";;
+ esac
+ compile_command="$compile_command -l$name"
+ case "$finalize_command " in
+ *" -L$dir "*) ;;
+ *) finalize_command="$finalize_command -L$dir";;
+ esac
+ finalize_command="$finalize_command -l$name"
fi
- fi
+ fi
# Add in any libraries that this one depends upon.
compile_command="$compile_command$dependency_libs"
finalize_command="$finalize_command$dependency_libs"
continue
- ;;
+ ;;
# Some other compiler argument.
*)
@@ -830,7 +1463,7 @@ if test -z "$show_help"; then
arg="\"$arg\""
;;
esac
- ;;
+ ;;
esac
# Now actually substitute the argument into the commands.
@@ -846,7 +1479,17 @@ if test -z "$show_help"; then
exit 1
fi
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+
oldlibs=
+ # calculate the name of the file, without its directory
+ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+ libobjs_save="$libobjs"
+
case "$output" in
"")
$echo "$modename: you must specify an output file" 1>&2
@@ -854,36 +1497,38 @@ if test -z "$show_help"; then
exit 1
;;
- */* | *\\*)
- $echo "$modename: output file \`$output' must have no directory components" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
-
- *.a)
+ *.a | *.lib)
if test -n "$link_against_libtool_libs"; then
- $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
- exit 1
+ $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
+ exit 1
fi
if test -n "$deplibs"; then
- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
fi
- if test -n "$dlfiles$dlprefiles"; then
- $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
fi
if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
fi
if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
+ $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
fi
if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
fi
# Now set the variables for building old libraries.
@@ -893,36 +1538,47 @@ if test -z "$show_help"; then
*.la)
# Make sure we only generate libraries of the form `libNAME.la'.
- case "$output" in
- lib*) ;;
+ case "$outputname" in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+ eval libname=\"$libname_spec\"
+ ;;
*)
- $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
- $echo "$help" 1>&2
- exit 1
+ if test "$module" = no; then
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ fi
;;
esac
- name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
- eval libname=\"$libname_spec\"
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
+ else
+ output_objdir="$output_objdir/$objdir"
+ fi
if test -n "$objs"; then
- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
- exit 1
+ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
+ exit 1
fi
# How the heck are we supposed to write a wrapper for a shared library?
if test -n "$link_against_libtool_libs"; then
- $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
- exit 1
+ $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
+ exit 1
fi
- if test -n "$dlfiles$dlprefiles"; then
- $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
fi
set dummy $rpath
@@ -931,12 +1587,16 @@ if test -z "$show_help"; then
fi
install_libdir="$2"
- # Now set the variables for building old libraries.
- oldlibs="$objdir/$libname.a"
+ oldlibs=
if test -z "$rpath"; then
- # Building a libtool convenience library.
- oldlibs="$objdir/$libname.al $oldlibs"
- build_libtool_libs=convenience
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ libext=al
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+ dependency_libs="$deplibs"
if test -n "$vinfo"; then
$echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
@@ -1003,6 +1663,20 @@ if test -z "$show_help"; then
case "$version_type" in
none) ;;
+ irix)
+ major=`expr $current - $age + 1`
+ versuffix="$major.$revision"
+ verstring="sgi$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test $loop != 0; do
+ iface=`expr $revision - $loop`
+ loop=`expr $loop - 1`
+ verstring="sgi$major.$iface:$verstring"
+ done
+ ;;
+
linux)
major=.`expr $current - $age`
versuffix="$major.$age.$revision"
@@ -1030,6 +1704,23 @@ if test -z "$show_help"; then
versuffix=".$current.$revision"
;;
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current";
+ ;;
+
+ windows)
+ # Like Linux, but with '-' rather than '.', since we only
+ # want one extension on Windows 95.
+ major=`expr $current - $age`
+ versuffix="-$major-$age-$revision"
+ ;;
+
*)
$echo "$modename: unknown library version type \`$version_type'" 1>&2
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
@@ -1040,10 +1731,21 @@ if test -z "$show_help"; then
# Clear the version info if we defaulted, and they specified a release.
if test -z "$vinfo" && test -n "$release"; then
major=
- versuffix=
verstring="0.0"
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
fi
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
# Check to see if the archive will have undefined symbols.
if test "$allow_undefined" = yes; then
if test "$allow_undefined_flag" = unsupported; then
@@ -1056,25 +1758,250 @@ if test -z "$show_help"; then
allow_undefined_flag="$no_undefined_flag"
fi
- # Add libc to deplibs on all systems.
dependency_libs="$deplibs"
- deplibs="$deplibs -lc"
+ case "$host" in
+ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *)
+ # Add libc to deplibs on all other systems.
+ deplibs="$deplibs -lc"
+ ;;
+ esac
fi
# Create the output directory, or remove our outputs if we need to.
- if test -d $objdir; then
- $show "${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
- $run ${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
+ if test -d $output_objdir; then
+ $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
+ $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
else
- $show "$mkdir $objdir"
- $run $mkdir $objdir
- status=$?
- if test $status -ne 0 && test ! -d $objdir; then
- exit $status
- fi
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ status=$?
+ if test $status -ne 0 && test ! -d $output_objdir; then
+ exit $status
+ fi
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
fi
if test "$build_libtool_libs" = yes; then
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case "$deplibs_check_method" in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behaviour.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $rm conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $rm conftest
+ $C_compiler -o conftest conftest.c $deplibs
+ if test $? -eq 0 ; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ echo
+ echo "*** Warning: This library needs some functionality provided by $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ else
+ # Error occured in the first compile. Let's try to salvage the situation:
+ # Compile a seperate program for each library.
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" ; then
+ $rm conftest
+ $C_compiler -o conftest conftest.c $i
+ # Did it work?
+ if test $? -eq 0 ; then
+ ldd_output=`ldd conftest`
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ echo
+ echo "*** Warning: This library needs some functionality provided by $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ fi
+ else
+ droppeddeps=yes
+ echo
+ echo "*** Warning! Library $i is needed by this library but I was not able to"
+ echo "*** make it link in! You will probably need to install it or some"
+ echo "*** library that it depends on before this library will be fully"
+ echo "*** functional. Installing it before continuing would be even better."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potlib" 2>/dev/null \
+ | grep " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | sed 's/.* -> //'`
+ case "$potliblink" in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+ | sed 10q \
+ | egrep "$file_magic_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ echo
+ echo "*** Warning: This library needs some functionality provided by $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
+ grep . >/dev/null; then
+ echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ fi
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ echo
+ echo "*** Warning: libtool could not satisfy all declared inter-library"
+ echo "*** dependencies of module $libname. Therefore, libtool will create"
+ echo "*** a static module, that should work as long as the dlopening"
+ echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ echo "*** The inter-library dependencies that have been dropped here will be"
+ echo "*** automatically added whenever a program is linked with this library"
+ echo "*** or is declared to -dlopen it."
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
# Get the real and link names of the library.
eval library_names=\"$library_names_spec\"
set dummy $library_names
@@ -1087,28 +2014,49 @@ if test -z "$show_help"; then
soname="$realname"
fi
- lib="$objdir/$realname"
+ lib="$output_objdir/$realname"
for link
do
linknames="$linknames $link"
done
- # Use standard objects if they are PIC.
- test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
+ # Ensure that we have .o objects for linkers which dislike .lo
+ # (e.g. aix) incase we are running --disable-static
+ for obj in $libobjs; do
+ oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
+ if test ! -f $oldobj; then
+ $show "${LN_S} $obj $oldobj"
+ $run ${LN_S} $obj $oldobj || exit $?
+ fi
+ done
- # Transform .lo files to .o files.
- test "$build_old_libs" = yes && oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
if test -n "$whole_archive_flag_spec"; then
if test -n "$convenience"; then
eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
fi
else
+ gentop="$output_objdir/${outputname}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
for xlib in $convenience; do
# Extract the objects.
- xdir="$xlib"x
- generated="$generated $xdir"
- xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
+ case "$xlib" in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
$show "${rm}r $xdir"
$run ${rm}r "$xdir"
@@ -1118,16 +2066,52 @@ if test -z "$show_help"; then
if test $status -ne 0 && test ! -d "$xdir"; then
exit $status
fi
- $show "(cd $xdir && $AR x ../$xlib)"
- $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
- libobjs="$libobjs `echo $xdir/*`"
+ libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
done
fi
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linkopts="$linkopts $flag"
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ eval cmds=\"$export_symbols_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex"; then
+ $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+ $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+ $run eval '$mv "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+ fi
+
# Do each of the archive commands.
- eval cmds=\"$archive_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval cmds=\"$archive_expsym_cmds\"
+ else
+ eval cmds=\"$archive_cmds\"
+ fi
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
@@ -1138,73 +2122,77 @@ if test -z "$show_help"; then
# Create links to the real library.
for linkname in $linknames; do
if test "$realname" != "$linkname"; then
- $show "(cd $objdir && $LN_S $realname $linkname)"
- $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
+ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
fi
done
- # If -export-dynamic was specified, set the dlname.
- if test "$export_dynamic" = yes; then
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
# On all known operating systems, these are identical.
dlname="$soname"
fi
fi
;;
- *.lo | *.o)
+ *.lo | *.o | *.obj)
if test -n "$link_against_libtool_libs"; then
- $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
- exit 1
+ $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
+ exit 1
fi
if test -n "$deplibs"; then
- $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
fi
- if test -n "$dlfiles$dlprefiles"; then
- $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
fi
if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
fi
if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
fi
if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
fi
case "$output" in
*.lo)
- if test -n "$objs"; then
- $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
- exit 1
- fi
- libobj="$output"
- obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'`
- ;;
+ if test -n "$objs"; then
+ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+ exit 1
+ fi
+ libobj="$output"
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+ ;;
*)
- libobj=
- obj="$output"
- ;;
+ libobj=
+ obj="$output"
+ ;;
esac
# Delete the old objects.
$run $rm $obj $libobj
# Create the old-style object.
- reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
+ reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
output="$obj"
eval cmds=\"$reload_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
done
IFS="$save_ifs"
@@ -1212,339 +2200,497 @@ if test -z "$show_help"; then
test -z "$libobj" && exit 0
if test "$build_libtool_libs" != yes; then
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- $show "echo timestamp > $libobj"
- $run eval "echo timestamp > $libobj" || exit $?
- exit 0
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ $show "echo timestamp > $libobj"
+ $run eval "echo timestamp > $libobj" || exit $?
+ exit 0
fi
if test -n "$pic_flag"; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs"
- output="$libobj"
- eval cmds=\"$reload_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs"
+ output="$libobj"
+ eval cmds=\"$reload_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
else
- # Just create a symlink.
- $show "$LN_S $obj $libobj"
- $run $LN_S $obj $libobj || exit $?
+ # Just create a symlink.
+ $show $rm $libobj
+ $run $rm $libobj
+ $show "$LN_S $obj $libobj"
+ $run $LN_S $obj $libobj || exit $?
fi
exit 0
;;
+ # Anything else should be a program.
*)
if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
fi
if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
fi
- if test -n "$rpath"; then
+ if test "$preload" = yes; then
+ if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
+ test "$dlopen_self_static" = unknown; then
+ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+ fi
+ fi
+
+ if test -n "$rpath$xrpath"; then
# If the user specified any rpath flags, then add them.
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- # Put the magic libdir with the hardcode flag.
- hardcode_libdirs="$libdir"
- libdir="@HARDCODE_LIBDIRS@"
- else
- # Just accumulate the unique libdirs.
- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- libdir=
- fi
- fi
-
- if test -n "$libdir"; then
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- compile_command="$compile_command $flag"
- finalize_command="$finalize_command $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$compile_rpath " in
+ *" $libdir "*) ;;
+ *) compile_rpath="$compile_rpath $libdir" ;;
+ esac
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
done
fi
- # Substitute the hardcoded libdirs into the compile commands.
- if test -n "$hardcode_libdir_separator"; then
- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
fi
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
- finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
fi
+ finalize_rpath="$rpath"
- if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
- dlsyms="${output}S.c"
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
else
- dlsyms=
+ output_objdir="$output_objdir/$objdir"
fi
- if test -n "$dlsyms"; then
- # Add our own program objects to the preloaded list.
- dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
+ # Create the binary in the object directory, then wrap it.
+ if test ! -d $output_objdir; then
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ status=$?
+ if test $status -ne 0 && test ! -d $output_objdir; then
+ exit $status
+ fi
+ fi
- # Discover the nlist of each of the dlfiles.
- nlist="$objdir/${output}.nm"
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ fi
- if test -d $objdir; then
- $show "$rm $nlist ${nlist}T"
- $run $rm "$nlist" "${nlist}T"
+ dlsyms=
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" = yes; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ dlsyms="${outputname}S.c"
else
- $show "$mkdir $objdir"
- $run $mkdir $objdir
- status=$?
- if test $status -ne 0 && test ! -d $objdir; then
- exit $status
- fi
+ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
fi
+ fi
- for arg in $dlprefiles; do
- $show "extracting global C symbols from \`$arg'"
- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
- done
+ if test -n "$dlsyms"; then
+ case "$dlsyms" in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${outputname}.nm"
- # Parse the name list into a source file.
- $show "creating $objdir/$dlsyms"
- if test -z "$run"; then
- # Make sure we at least have an empty file.
- test -f "$nlist" || : > "$nlist"
+ $show "$rm $nlist ${nlist}S ${nlist}T"
+ $run $rm "$nlist" "${nlist}S" "${nlist}T"
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- wcout=`wc "$nlist" 2>/dev/null`
- count=`echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'`
- (test "$count" -ge 0) 2>/dev/null || count=-1
- else
- $rm "$nlist"T
- count=-1
- fi
+ # Parse the name list into a source file.
+ $show "creating $output_objdir/$dlsyms"
- case "$dlsyms" in
- "") ;;
- *.c)
- $echo > "$objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
+ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
#ifdef __cplusplus
extern \"C\" {
#endif
/* Prevent the only kind of declaration conflicts we can make. */
-#define dld_preloaded_symbol_count some_other_symbol
-#define dld_preloaded_symbols some_other_symbol
+#define lt_preloaded_symbols some_other_symbol
/* External symbol declarations for the compiler. */\
"
- if test -f "$nlist"; then
- sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
+ if test "$dlself" = yes; then
+ $show "generating symbol list for \`$output'"
+
+ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ for arg in $progfiles; do
+ $show "extracting global C symbols from \`$arg'"
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$output.exp"
+ $run $rm $export_symbols
+ $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ else
+ $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
+ $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
+ $run eval 'mv "$nlist"T "$nlist"'
+ fi
+ fi
+
+ for arg in $dlprefiles; do
+ $show "extracting global C symbols from \`$arg'"
+ name=`echo "$arg" | sed -e 's%^.*/%%'`
+ $run eval 'echo ": $name " >> "$nlist"'
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -z "$run"; then
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $mv "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
+ :
+ else
+ grep -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
else
- echo '/* NONE */' >> "$objdir/$dlsyms"
+ echo '/* NONE */' >> "$output_objdir/$dlsyms"
fi
- $echo >> "$objdir/$dlsyms" "\
+ $echo >> "$output_objdir/$dlsyms" "\
-#undef dld_preloaded_symbol_count
-#undef dld_preloaded_symbols
+#undef lt_preloaded_symbols
#if defined (__STDC__) && __STDC__
-# define __ptr_t void *
+# define lt_ptr_t void *
#else
-# define __ptr_t char *
+# define lt_ptr_t char *
+# define const
#endif
-/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
-int dld_preloaded_symbol_count = $count;
-
/* The mapping between symbol names and symbols. */
-struct {
- char *name;
- __ptr_t address;
+const struct {
+ const char *name;
+ lt_ptr_t address;
}
-dld_preloaded_symbols[] =
+lt_preloaded_symbols[] =
{\
"
- if test -f "$nlist"; then
- sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
- fi
+ sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
+ -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
+ < "$nlist" >> "$output_objdir/$dlsyms"
- $echo >> "$objdir/$dlsyms" "\
- {0, (__ptr_t) 0}
+ $echo >> "$output_objdir/$dlsyms" "\
+ {0, (lt_ptr_t) 0}
};
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_preloaded_symbols;
+}
+#endif
+
#ifdef __cplusplus
}
#endif\
"
- ;;
+ fi
- *)
- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
- exit 1
- ;;
+ pic_flag_for_symtable=
+ case "$host" in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2*|*-*-freebsd3.0*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
+ esac
esac
- fi
- # Now compile the dynamic symbol file.
- $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")"
- $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?
+ # Now compile the dynamic symbol file.
+ $show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+ $run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
- # Transform the symbol file into the correct name.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
- elif test "$export_dynamic" != yes; then
- test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
+ # Clean up the generated files.
+ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+ exit 1
+ ;;
+ esac
else
- # We keep going just in case the user didn't refer to
- # dld_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
- $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
- # Nullify the symbol file.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+ # Nullify the symbol file.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
fi
if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
- # Replace the output file specification.
- compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-
- # We have no uninstalled library dependencies, so finalize right now.
- $show "$compile_command"
- $run eval "$compile_command"
- exit $?
- fi
-
- # Replace the output file specification.
- compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
+ # Replace the output file specification.
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
- # Create the binary in the object directory, then wrap it.
- if test ! -d $objdir; then
- $show "$mkdir $objdir"
- $run $mkdir $objdir
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
status=$?
- if test $status -ne 0 && test ! -d $objdir; then
- exit $status
+
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+ $show "$rm $output_objdir/${outputname}S.${objext}"
+ $run $rm "$output_objdir/${outputname}S.${objext}"
fi
+
+ exit $status
fi
if test -n "$shlibpath_var"; then
- # We should set the shlibpath_var
- rpath=
- for dir in $temp_rpath; do
- case "$dir" in
- /* | [A-Za-z]:[/\\]*)
- # Absolute path.
- rpath="$rpath$dir:"
- ;;
- *)
- # Relative path: add a thisdir entry.
- rpath="$rpath\$thisdir/$dir:"
- ;;
- esac
- done
- temp_rpath="$rpath"
- fi
-
- # Delete the old output file.
- $run $rm $output
-
- if test -n "$compile_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command"
+ # We should set the shlibpath_var
+ rpath=
+ for dir in $temp_rpath; do
+ case "$dir" in
+ [\\/]* | [A-Za-z]:[\\/]*)
+ # Absolute path.
+ rpath="$rpath$dir:"
+ ;;
+ *)
+ # Relative path: add a thisdir entry.
+ rpath="$rpath\$thisdir/$dir:"
+ ;;
+ esac
+ done
+ temp_rpath="$rpath"
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
fi
if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- rpath="$rpath$dir:"
- done
- compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command"
- finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
fi
if test "$hardcode_action" = relink; then
- # AGH! Flame the AIX and HP-UX people for me, will ya?
- $echo "$modename: warning: using a buggy system linker" 1>&2
- $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+ $echo "$modename: \`$output' will be relinked during installation" 1>&2
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
fi
- $show "$compile_command"
- $run eval "$compile_command" || exit $?
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
# Now create the wrapper script.
$show "creating $output"
- # Quote the finalize command for shipping.
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"`
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ fi
# Quote $echo for shipping.
- qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+ if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
+ case "$0" in
+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
+ *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
+ esac
+ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+ else
+ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+ fi
# Only actually do things if our run command is non-null.
if test -z "$run"; then
- $rm $output
- trap "$rm $output; exit 1" 1 2 15
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
+ esac
+ $rm $output
+ trap "$rm $output; exit 1" 1 2 15
- $echo > $output "\
+ $echo > $output "\
#! $SHELL
-# $output - temporary wrapper script for $objdir/$output
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
#
# The $output program cannot be directly executed until all the libtool
# libraries that it depends on are installed.
#
-# This wrapper script should never be moved out of \``pwd`'.
+# This wrapper script should never be moved out of the build directory.
# If it is, it will not operate correctly.
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
+Xsed='sed -e 1s/^X//'
sed_quote_subst='$sed_quote_subst'
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
+relink_command=\"$relink_command\"
+
# This environment variable determines our operation mode.
if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
+ # install mode needs the following variable:
link_against_libtool_libs='$link_against_libtool_libs'
- finalize_command=\"$finalize_command\"
else
# When we are sourced in execute mode, \$file and \$echo are already set.
if test \"\$libtool_execute_magic\" != \"$magic\"; then
@@ -1563,7 +2709,7 @@ else
fi
fi\
"
- $echo >> $output "\
+ $echo >> $output "\
# Find the directory that this script lives in.
thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
@@ -1577,7 +2723,7 @@ else
# If there was a directory component, then change thisdir.
if test \"x\$destdir\" != \"x\$file\"; then
case \"\$destdir\" in
- /* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;;
+ [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
*) thisdir=\"\$thisdir/\$destdir\" ;;
esac
fi
@@ -1589,35 +2735,97 @@ else
# Try to get the absolute directory name.
absdir=\`cd \"\$thisdir\" && pwd\`
test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+ if test "$fast_install" = yes; then
+ echo >> $output "\
+ program=lt-'$outputname'
progdir=\"\$thisdir/$objdir\"
- program='$output'
+
+ if test ! -f \"\$progdir/\$program\" || \\
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $mkdir \"\$progdir\"
+ else
+ $rm \"\$progdir/\$file\"
+ fi"
+
+ echo >> $output "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if (cd \"\$thisdir\" && eval \$relink_command); then :
+ else
+ $rm \"\$progdir/\$file\"
+ exit 1
+ fi
+ fi
+
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $rm \"\$progdir/\$program\";
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $rm \"\$progdir/\$file\"
+ fi"
+ else
+ echo >> $output "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ echo >> $output "\
if test -f \"\$progdir/\$program\"; then"
- # Export our shlibpath_var if we have one.
- if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $echo >> $output "\
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $echo >> $output "\
# Add our own library path to $shlibpath_var
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
# Some systems cannot cope with colon-terminated $shlibpath_var
- $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\`
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
export $shlibpath_var
"
- fi
+ fi
+
+ # fixup the dll searchpath if we need to.
+ if test -n "$dllsearchpath"; then
+ $echo >> $output "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
- $echo >> $output "\
+ $echo >> $output "\
if test \"\$libtool_execute_magic\" != \"$magic\"; then
# Run the actual program with our arguments.
-
+"
+ case $host in
+ *-*-cygwin* | *-*-mingw | *-*-os2*)
+ # win32 systems need to use the prog path for dll
+ # lookup to work
+ $echo >> $output "\
+ exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+ ;;
+ *)
+ $echo >> $output "\
# Export the path to the program.
PATH=\"\$progdir:\$PATH\"
export PATH
exec \$program \${1+\"\$@\"}
-
+"
+ ;;
+ esac
+ $echo >> $output "\
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
exit 1
fi
@@ -1630,7 +2838,7 @@ else
fi
fi\
"
- chmod +x $output
+ chmod +x $output
fi
exit 0
;;
@@ -1640,45 +2848,78 @@ fi\
for oldlib in $oldlibs; do
if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs"
+ oldobjs="$libobjs_save"
addlibs="$convenience"
build_libtool_libs=no
else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
+ fi
addlibs="$old_convenience"
fi
- # Add in members from convenience archives.
- for xlib in $addlibs; do
- # Extract the objects.
- xdir="$xlib"x
- generated="$generated $xdir"
- xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "mkdir $xdir"
- $run mkdir "$xdir"
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
status=$?
- if test $status -ne 0 && test ! -d "$xdir"; then
+ if test $status -ne 0 && test ! -d "$gentop"; then
exit $status
fi
- $show "(cd $xdir && $AR x ../$xlib)"
- $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
+ generated="$generated $gentop"
+
+ # Add in members from convenience archives.
+ for xlib in $addlibs; do
+ # Extract the objects.
+ case "$xlib" in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
- oldobjs="$oldobjs `echo $xdir/*`"
- done
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
# Do each command in the archive commands.
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
eval cmds=\"$old_archive_from_new_cmds\"
else
+ # Ensure that we have .o objects in place incase we decided
+ # not to build a shared library, and have fallen back to building
+ # static libs even though --disable-static was passed!
+ for oldobj in $oldobjs; do
+ if test ! -f $oldobj; then
+ obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
+ $show "${LN_S} $obj $oldobj"
+ $run ${LN_S} $obj $oldobj || exit $?
+ fi
+ done
+
eval cmds=\"$old_archive_cmds\"
fi
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
done
IFS="$save_ifs"
done
@@ -1692,14 +2933,33 @@ fi\
case "$output" in
*.la)
old_library=
- test "$build_old_libs" = yes && old_library="$libname.a"
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
$show "creating $output"
+ if test -n "$xrpath"; then
+ temp_xrpath=
+ for libdir in $xrpath; do
+ temp_xrpath="$temp_xrpath -R$libdir"
+ done
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+
# Only create the output if not a dry run.
if test -z "$run"; then
- $echo > $output "\
-# $output - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ fi
+ $rm $output
+ $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname='$dlname'
@@ -1718,15 +2978,19 @@ current=$current
age=$age
revision=$revision
+# Is this an already installed library?
+installed=$installed
+
# Directory that this library needs to be installed in:
libdir='$install_libdir'\
"
+ done
fi
# Do a symbolic link so that the libtool archive can be found in
# LD_LIBRARY_PATH before the program is installed.
- $show "(cd $objdir && $LN_S ../$output $output)"
- $run eval "(cd $objdir && $LN_S ../$output $output)" || exit $?
+ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+ $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
;;
esac
exit 0
@@ -1738,7 +3002,7 @@ libdir='$install_libdir'\
# There may be an optional sh(1) argument at the beginning of
# install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL"; then
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
# Aesthetically quote it.
arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
@@ -1775,9 +3039,9 @@ libdir='$install_libdir'\
for arg
do
if test -n "$dest"; then
- files="$files $dest"
- dest="$arg"
- continue
+ files="$files $dest"
+ dest="$arg"
+ continue
fi
case "$arg" in
@@ -1787,20 +3051,20 @@ libdir='$install_libdir'\
-m) prev="-m" ;;
-o) prev="-o" ;;
-s)
- stripme=" -s"
- continue
- ;;
+ stripme=" -s"
+ continue
+ ;;
-*) ;;
*)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- prev=
- else
- dest="$arg"
- continue
- fi
- ;;
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+ dest="$arg"
+ continue
+ fi
+ ;;
esac
# Aesthetically quote the argument.
@@ -1827,9 +3091,9 @@ libdir='$install_libdir'\
if test -z "$files"; then
if test -z "$dest"; then
- $echo "$modename: no file or destination specified" 1>&2
+ $echo "$modename: no file or destination specified" 1>&2
else
- $echo "$modename: you must specify a destination" 1>&2
+ $echo "$modename: you must specify a destination" 1>&2
fi
$echo "$help" 1>&2
exit 1
@@ -1851,23 +3115,23 @@ libdir='$install_libdir'\
# Not a directory, so check to see that there is only one file specified.
set dummy $files
if test $# -gt 2; then
- $echo "$modename: \`$dest' is not a directory" 1>&2
- $echo "$help" 1>&2
- exit 1
+ $echo "$modename: \`$dest' is not a directory" 1>&2
+ $echo "$help" 1>&2
+ exit 1
fi
fi
case "$destdir" in
- /* | [A-Za-z]:[/\\]*) ;;
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
*)
for file in $files; do
- case "$file" in
- *.lo) ;;
- *)
- $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- esac
+ case "$file" in
+ *.lo) ;;
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+ esac
done
;;
esac
@@ -1883,214 +3147,222 @@ libdir='$install_libdir'\
# Do each installation.
case "$file" in
- *.a)
- # Do the static libraries later.
- staticlibs="$staticlibs $file"
- ;;
+ *.a | *.lib)
+ # Do the static libraries later.
+ staticlibs="$staticlibs $file"
+ ;;
*.la)
- # Check to see that this really is a libtool archive.
- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- library_names=
- old_library=
- # If there is no directory component, then add one.
- case "$file" in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) current_libdirs="$current_libdirs $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) future_libdirs="$future_libdirs $libdir" ;;
- esac
- fi
-
- dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
- test "X$dir" = "X$file/" && dir=
- dir="$dir$objdir"
-
- # See the names of the shared library.
- set dummy $library_names
- if test -n "$2"; then
- realname="$2"
- shift
- shift
-
- # Install the shared library and build the symlinks.
- $show "$install_prog $dir/$realname $destdir/$realname"
- $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
- test "X$dlname" = "X$realname" && dlname=
-
- if test $# -gt 0; then
- # Delete the old symlinks.
- rmcmd="$rm"
- for linkname
- do
- rmcmd="$rmcmd $destdir/$linkname"
- done
- $show "$rmcmd"
- $run $rmcmd
-
- # ... and create new ones.
- for linkname
- do
- test "X$dlname" = "X$linkname" && dlname=
- $show "(cd $destdir && $LN_S $realname $linkname)"
- $run eval "(cd $destdir && $LN_S $realname $linkname)"
- done
- fi
-
- if test -n "$dlname"; then
- # Install the dynamically-loadable library.
- $show "$install_prog $dir/$dlname $destdir/$dlname"
- $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- eval cmds=\"$postinstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
-
- # Install the pseudo-library for information purposes.
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- $show "$install_prog $file $destdir/$name"
- $run eval "$install_prog $file $destdir/$name" || exit $?
-
- # Maybe install the static library, too.
- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
- ;;
+ # Check to see that this really is a libtool archive.
+ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ library_names=
+ old_library=
+ # If there is no directory component, then add one.
+ case "$file" in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) current_libdirs="$current_libdirs $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) future_libdirs="$future_libdirs $libdir" ;;
+ esac
+ fi
+
+ dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
+ test "X$dir" = "X$file/" && dir=
+ dir="$dir$objdir"
+
+ # See the names of the shared library.
+ set dummy $library_names
+ if test -n "$2"; then
+ realname="$2"
+ shift
+ shift
+
+ # Install the shared library and build the symlinks.
+ $show "$install_prog $dir/$realname $destdir/$realname"
+ $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
+ test "X$dlname" = "X$realname" && dlname=
+
+ if test $# -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ for linkname
+ do
+ test "X$dlname" = "X$linkname" && dlname=
+ if test "$linkname" != "$realname"; then
+ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ fi
+ done
+ fi
+
+ if test -n "$dlname"; then
+ # Install the dynamically-loadable library.
+ $show "$install_prog $dir/$dlname $destdir/$dlname"
+ $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ eval cmds=\"$postinstall_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Install the pseudo-library for information purposes.
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ instname="$dir/$name"i
+ $show "$install_prog $instname $destdir/$name"
+ $run eval "$install_prog $instname $destdir/$name" || exit $?
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+ ;;
*.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case "$destfile" in
- *.lo)
- staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/.o/'`
- ;;
- *.o)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- esac
-
- # Install the libtool object if requested.
- if test -n "$destfile"; then
- $show "$install_prog $file $destfile"
- $run eval "$install_prog $file $destfile" || exit $?
- fi
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/.o/'`
-
- $show "$install_prog $staticobj $staticdest"
- $run eval "$install_prog \$staticobj \$staticdest" || exit $?
- fi
- exit 0
- ;;
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case "$destfile" in
+ *.lo)
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+ ;;
+ *.o | *.obj)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ if test -n "$destfile"; then
+ $show "$install_prog $file $destfile"
+ $run eval "$install_prog $file $destfile" || exit $?
+ fi
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+ exit 0
+ ;;
*)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- destfile="$destdir/$destfile"
- fi
-
- # Do a test to see if this is really a libtool program.
- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- link_against_libtool_libs=
- finalize_command=
-
- # If there is no directory component, then add one.
- case "$file" in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Check the variables that should have been set.
- if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
- $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
- exit 1
- fi
-
- finalize=yes
- for lib in $link_against_libtool_libs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- # If there is no directory component, then add one.
- case "$lib" in
- */* | *\\*) . $lib ;;
- *) . ./$lib ;;
- esac
- fi
- libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
- if test -n "$libdir" && test ! -f "$libfile"; then
- $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
- finalize=no
- fi
- done
-
- if test "$hardcode_action" = relink; then
- if test "$finalize" = yes; then
- $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
- $show "$finalize_command"
- if $run eval "$finalize_command"; then :
- else
- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
- continue
- fi
- file="$objdir/$file"T
- else
- $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
- fi
- else
- # Install the binary that we compiled earlier.
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Do a test to see if this is really a libtool program.
+ if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ link_against_libtool_libs=
+ relink_command=
+
+ # If there is no directory component, then add one.
+ case "$file" in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Check the variables that should have been set.
+ if test -z "$link_against_libtool_libs"; then
+ $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
+ exit 1
+ fi
+
+ finalize=yes
+ for lib in $link_against_libtool_libs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ # If there is no directory component, then add one.
+ case "$lib" in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ fi
+ libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+ finalize=no
+ fi
+ done
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+ tmpdir="/tmp"
+ test -n "$TMPDIR" && tmpdir="$TMPDIR"
+ tmpdir="$tmpdir/libtool-$$"
+ if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
+ else
+ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+ continue
+ fi
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ ${rm}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ $echo "$modename: warning: cannot relink \`$file'" 1>&2
+ fi
+ else
+ # Install the binary that we compiled earlier.
file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
+ fi
+ fi
- $show "$install_prog$stripme $file $destfile"
- $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
- ;;
+ $show "$install_prog$stripme $file $destfile"
+ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+ test -n "$outputname" && ${rm}r "$tmpdir"
+ ;;
esac
done
@@ -2105,11 +3377,11 @@ libdir='$install_libdir'\
# Do each command in the postinstall commands.
eval cmds=\"$old_postinstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
done
IFS="$save_ifs"
done
@@ -2137,21 +3409,21 @@ libdir='$install_libdir'\
if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
for dir
do
- libdirs="$libdirs $dir"
+ libdirs="$libdirs $dir"
done
for libdir in $libdirs; do
if test -n "$finish_cmds"; then
# Do each command in the finish commands.
eval cmds=\"$finish_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || admincmds="$admincmds
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || admincmds="$admincmds
$cmd"
- done
- IFS="$save_ifs"
+ done
+ IFS="$save_ifs"
fi
if test -n "$finish_eval"; then
# Do the single finish_eval.
@@ -2162,16 +3434,19 @@ libdir='$install_libdir'\
done
fi
+ # Exit here if they wanted silent mode.
+ test "$show" = : && exit 0
+
echo "----------------------------------------------------------------------"
echo "Libraries have been installed in:"
for libdir in $libdirs; do
echo " $libdir"
done
echo
- echo "To link against installed libraries in a given directory, LIBDIR,"
- echo "you must use the \`-LLIBDIR' flag during linking."
- echo
- echo " You will also need to do at least one of the following:"
+ echo "If you ever happen to want to link against installed libraries"
+ echo "in a given directory, LIBDIR, you must either use libtool, and"
+ echo "specify the full pathname of the library, or use \`-LLIBDIR'"
+ echo "flag during linking and do at least one of the following:"
if test -n "$shlibpath_var"; then
echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
echo " during execution"
@@ -2222,22 +3497,22 @@ libdir='$install_libdir'\
dir=
case "$file" in
*.la)
- # Check to see that this really is a libtool archive.
- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
+ # Check to see that this really is a libtool archive.
+ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
# Read the libtool library.
dlname=
library_names=
- # If there is no directory component, then add one.
+ # If there is no directory component, then add one.
case "$file" in
*/* | *\\*) . $file ;;
- *) . ./$file ;;
+ *) . ./$file ;;
esac
# Skip this library if it cannot be dlopened.
@@ -2266,7 +3541,7 @@ libdir='$install_libdir'\
*)
$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
- continue
+ continue
;;
esac
@@ -2293,8 +3568,8 @@ libdir='$install_libdir'\
case "$file" in
-*) ;;
*)
- # Do a test to see if this is really a libtool program.
- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ # Do a test to see if this is really a libtool program.
+ if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
# If there is no directory component, then add one.
case "$file" in
*/* | *\\*) . $file ;;
@@ -2304,7 +3579,7 @@ libdir='$install_libdir'\
# Transform arg to wrapped name.
file="$progdir/$program"
fi
- ;;
+ ;;
esac
# Quote arguments (to preserve shell metacharacters).
file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
@@ -2317,10 +3592,10 @@ libdir='$install_libdir'\
# Restore saved enviroment variables
if test "${save_LC_ALL+set}" = set; then
- LC_ALL="$save_LC_ALL"; export LC_ALL
+ LC_ALL="$save_LC_ALL"; export LC_ALL
fi
if test "${save_LANG+set}" = set; then
- LANG="$save_LANG"; export LANG
+ LANG="$save_LANG"; export LANG
fi
# Now actually exec the command.
@@ -2366,17 +3641,17 @@ libdir='$install_libdir'\
case "$name" in
*.la)
- # Possibly a libtool archive, so verify it.
- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- . $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- rmfiles="$rmfiles $dir/$n"
- test "X$n" = "X$dlname" && dlname=
- done
- test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
- test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
+ # Possibly a libtool archive, so verify it.
+ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ . $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ rmfiles="$rmfiles $dir/$n"
+ test "X$n" = "X$dlname" && dlname=
+ done
+ test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
+ test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
$show "$rm $rmfiles"
$run $rm $rmfiles
@@ -2384,7 +3659,7 @@ libdir='$install_libdir'\
if test -n "$library_names"; then
# Do each command in the postuninstall commands.
eval cmds=\"$postuninstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
@@ -2393,10 +3668,10 @@ libdir='$install_libdir'\
IFS="$save_ifs"
fi
- if test -n "$old_library"; then
+ if test -n "$old_library"; then
# Do each command in the old_postuninstall commands.
eval cmds=\"$old_postuninstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
@@ -2405,21 +3680,21 @@ libdir='$install_libdir'\
IFS="$save_ifs"
fi
- # FIXME: should reinstall the best remaining shared library.
- fi
- ;;
+ # FIXME: should reinstall the best remaining shared library.
+ fi
+ ;;
*.lo)
- if test "$build_old_libs" = yes; then
- oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/.o/'`
- rmfiles="$rmfiles $dir/$oldobj"
- fi
+ if test "$build_old_libs" = yes; then
+ oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
+ rmfiles="$rmfiles $dir/$oldobj"
+ fi
$show "$rm $rmfiles"
$run $rm $rmfiles
- ;;
+ ;;
*)
- $show "$rm $rmfiles"
+ $show "$rm $rmfiles"
$run $rm $rmfiles
;;
esac
@@ -2479,6 +3754,7 @@ Compile a source file into a libtool library object.
This mode accepts the following additional options:
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
-static always build a \`.o' file suitable for static linking
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
@@ -2547,18 +3823,25 @@ a program from several object files.
The following components of LINK-COMMAND are treated specially:
-all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
-dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
-LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
-no-undefined declare that a library does not refer to external symbols
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects
-release RELEASE specify package release information
-rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
-static do not do any dynamic linking of libtool libraries
-version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
+ specify library version info [each variable defaults to 0]
All other options (arguments beginning with \`-') are ignored.
@@ -2566,18 +3849,19 @@ Every other argument is treated as a filename. Files ending in \`.la' are
treated as uninstalled libtool libraries, other files are standard or library
object files.
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only
-library objects (\`.lo' files) may be specified, and \`-rpath' is required.
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
-If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar'
-and \`ranlib'.
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
-If OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is
-created, otherwise an executable program is created."
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
;;
uninstall)
- $echo
+ $echo \
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
Remove libraries from an installation directory.
diff --git a/missing b/missing
index 5441d42f..7789652e 100755
--- a/missing
+++ b/missing
@@ -41,9 +41,11 @@ Supported PROGRAM values:
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
- bison touch file \`y.tab.c'
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
- yacc touch file \`y.tab.c'"
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
@@ -80,7 +82,17 @@ WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`configure.in'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
- touch config.h.in
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case "$f" in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
;;
automake)
@@ -89,18 +101,62 @@ WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print \
- | sed 's/^\(.*\).am$/touch \1.in/' \
- | sh
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
- your modified a \`.y' file. You may need the \`Bison' package
+ you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
- touch y.tab.c
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
;;
makeinfo)
diff --git a/mkinstalldirs b/mkinstalldirs
index d0fd194f..6b3b5fc5 100755
--- a/mkinstalldirs
+++ b/mkinstalldirs
@@ -22,7 +22,7 @@ do
esac
if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
+ echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
diff --git a/modules/Makefile.am b/modules/Makefile.am
index 8aedea96..b7a4211a 100644
--- a/modules/Makefile.am
+++ b/modules/Makefile.am
@@ -2,18 +2,24 @@
# to pretend we are compiling shared libraries (which we are) and then
# change the names when installing.
-pkglibexec_LTLIBRARIES = libtest.la libtime.la libstdlib.la
+MAINTAINERCLEANFILES = Makefile.in
+
+pkglibexec_LTLIBRARIES = test.la time.la stdlib.la
EXTRA_DIST = test.m4 time.m4 stdlib.m4
INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib @INTLINCL@
-libtest_la_SOURCES = test.c
-libtime_la_SOURCES = time.c
-libstdlib_la_SOURCES = stdlib.c
+test_la_SOURCES = test.c
+time_la_SOURCES = time.c
+stdlib_la_SOURCES = stdlib.c
+
+test_la_LDFLAGS = -module
+time_la_LDFLAGS = -module
+stdlib_la_LDFLAGS = -module
LIBS =
-LDFLAGS = @DLLDFLAGS@
+LDFLAGS = -no-undefined -module -avoid-version @DLLDFLAGS@
# libperl_la_SOURCES = perl.c perlxsi.c
libperl_la_OBJECTS = perl.lo
diff --git a/modules/Makefile.in b/modules/Makefile.in
index bc6ec4c6..c1f827ca 100644
--- a/modules/Makefile.in
+++ b/modules/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.3b from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,7 +15,7 @@
# change the names when installing.
-SHELL = /bin/sh
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -50,7 +50,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -63,6 +63,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+AS = @AS@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -70,6 +71,7 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DLLDFLAGS = @DLLDFLAGS@
+DLLTOOL = @DLLTOOL@
GENCAT = @GENCAT@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
@@ -90,6 +92,7 @@ MODULES_DIR = @MODULES_DIR@
MODULE_PATH = @MODULE_PATH@
MSGFMT = @MSGFMT@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
@@ -103,18 +106,24 @@ VERSION = @VERSION@
l = @l@
pkglibexecdir = @pkglibexecdir@
-pkglibexec_LTLIBRARIES = libtest.la libtime.la libstdlib.la
+MAINTAINERCLEANFILES = Makefile.in
+
+pkglibexec_LTLIBRARIES = test.la time.la stdlib.la
EXTRA_DIST = test.m4 time.m4 stdlib.m4
INCLUDES = -I$(srcdir)/../src -I$(srcdir)/../lib @INTLINCL@
-libtest_la_SOURCES = test.c
-libtime_la_SOURCES = time.c
-libstdlib_la_SOURCES = stdlib.c
+test_la_SOURCES = test.c
+time_la_SOURCES = time.c
+stdlib_la_SOURCES = stdlib.c
+
+test_la_LDFLAGS = -module
+time_la_LDFLAGS = -module
+stdlib_la_LDFLAGS = -module
LIBS =
-LDFLAGS = @DLLDFLAGS@
+LDFLAGS = -no-undefined -module -avoid-version @DLLDFLAGS@
# libperl_la_SOURCES = perl.c perlxsi.c
libperl_la_OBJECTS = perl.lo
@@ -129,34 +138,31 @@ LTLIBRARIES = $(pkglibexec_LTLIBRARIES)
DEFS = @DEFS@ -I. -I$(srcdir) -I..
CPPFLAGS = @CPPFLAGS@
-libtest_la_LDFLAGS =
-libtest_la_LIBADD =
-libtest_la_OBJECTS = test.lo
-libtime_la_LDFLAGS =
-libtime_la_LIBADD =
-libtime_la_OBJECTS = time.lo
-libstdlib_la_LDFLAGS =
-libstdlib_la_LIBADD =
-libstdlib_la_OBJECTS = stdlib.lo
+test_la_LIBADD =
+test_la_OBJECTS = test.lo
+time_la_LIBADD =
+time_la_OBJECTS = time.lo
+stdlib_la_LIBADD =
+stdlib_la_OBJECTS = stdlib.lo
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = README Makefile.am Makefile.in TODO
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
-GZIP = --best
-SOURCES = $(libtest_la_SOURCES) $(libtime_la_SOURCES) $(libstdlib_la_SOURCES)
-OBJECTS = $(libtest_la_OBJECTS) $(libtime_la_OBJECTS) $(libstdlib_la_OBJECTS)
-
-all: Makefile $(LTLIBRARIES)
+GZIP_ENV = --best
+SOURCES = $(test_la_SOURCES) $(time_la_SOURCES) $(stdlib_la_SOURCES)
+OBJECTS = $(test_la_OBJECTS) $(time_la_OBJECTS) $(stdlib_la_OBJECTS)
+all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps modules/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -178,8 +184,8 @@ install-pkglibexecLTLIBRARIES: $(pkglibexec_LTLIBRARIES)
$(mkinstalldirs) $(DESTDIR)$(pkglibexecdir)
@list='$(pkglibexec_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- echo "$(LIBTOOL) --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(pkglibexecdir)/$$p"; \
- $(LIBTOOL) --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(pkglibexecdir)/$$p; \
+ echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(pkglibexecdir)/$$p"; \
+ $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(pkglibexecdir)/$$p; \
else :; fi; \
done
@@ -227,20 +233,24 @@ distclean-libtool:
maintainer-clean-libtool:
-libtest.la: $(libtest_la_OBJECTS) $(libtest_la_DEPENDENCIES)
- $(LINK) -rpath $(pkglibexecdir) $(libtest_la_LDFLAGS) $(libtest_la_OBJECTS) $(libtest_la_LIBADD) $(LIBS)
+test.la: $(test_la_OBJECTS) $(test_la_DEPENDENCIES)
+ $(LINK) -rpath $(pkglibexecdir) $(test_la_LDFLAGS) $(test_la_OBJECTS) $(test_la_LIBADD) $(LIBS)
-libtime.la: $(libtime_la_OBJECTS) $(libtime_la_DEPENDENCIES)
- $(LINK) -rpath $(pkglibexecdir) $(libtime_la_LDFLAGS) $(libtime_la_OBJECTS) $(libtime_la_LIBADD) $(LIBS)
+time.la: $(time_la_OBJECTS) $(time_la_DEPENDENCIES)
+ $(LINK) -rpath $(pkglibexecdir) $(time_la_LDFLAGS) $(time_la_OBJECTS) $(time_la_LIBADD) $(LIBS)
-libstdlib.la: $(libstdlib_la_OBJECTS) $(libstdlib_la_DEPENDENCIES)
- $(LINK) -rpath $(pkglibexecdir) $(libstdlib_la_LDFLAGS) $(libstdlib_la_OBJECTS) $(libstdlib_la_LIBADD) $(LIBS)
+stdlib.la: $(stdlib_la_OBJECTS) $(stdlib_la_DEPENDENCIES)
+ $(LINK) -rpath $(pkglibexecdir) $(stdlib_la_LDFLAGS) $(stdlib_la_OBJECTS) $(stdlib_la_LIBADD) $(LIBS)
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
+ && mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
@@ -268,37 +278,38 @@ subdir = modules
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
done
-perl.lo perl.o: perl.c perlxsi.c ../src/m4.h ../config.h \
- ../lib/obstack.h ../src/builtin.h
-perlxsi.lo perlxsi.o: perlxsi.c
-stdlib.lo stdlib.o: stdlib.c ../src/m4.h ../config.h ../lib/obstack.h \
- ../src/builtin.h
-test.lo test.o: test.c ../src/m4.h ../config.h ../lib/obstack.h \
- ../src/builtin.h
-time.lo time.o: time.c ../src/m4.h ../config.h ../lib/obstack.h \
- ../src/builtin.h
-
-info:
-dvi:
-check: all
-installcheck:
-install-exec: install-pkglibexecLTLIBRARIES
- @$(NORMAL_INSTALL)
-
-install-data:
- @$(NORMAL_INSTALL)
-
-install: install-exec install-data all
- @:
-
-uninstall: uninstall-pkglibexecLTLIBRARIES
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-pkglibexecLTLIBRARIES
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-pkglibexecLTLIBRARIES
+uninstall: uninstall-am
+all-am: Makefile $(LTLIBRARIES)
+all-redirect: all-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(pkglibexecdir)
@@ -312,26 +323,34 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-mostlyclean: mostlyclean-pkglibexecLTLIBRARIES mostlyclean-compile \
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-pkglibexecLTLIBRARIES mostlyclean-compile \
mostlyclean-libtool mostlyclean-tags \
mostlyclean-generic
-clean: clean-pkglibexecLTLIBRARIES clean-compile clean-libtool \
- clean-tags clean-generic mostlyclean
+mostlyclean: mostlyclean-am
-distclean: distclean-pkglibexecLTLIBRARIES distclean-compile \
+clean-am: clean-pkglibexecLTLIBRARIES clean-compile clean-libtool \
+ clean-tags clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-pkglibexecLTLIBRARIES distclean-compile \
distclean-libtool distclean-tags distclean-generic \
- clean
- -rm -f config.status
+ clean-am
-rm -f libtool
-maintainer-clean: maintainer-clean-pkglibexecLTLIBRARIES \
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-pkglibexecLTLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-tags maintainer-clean-generic \
- distclean
+ distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
+maintainer-clean: maintainer-clean-am
+
.PHONY: mostlyclean-pkglibexecLTLIBRARIES \
distclean-pkglibexecLTLIBRARIES clean-pkglibexecLTLIBRARIES \
maintainer-clean-pkglibexecLTLIBRARIES uninstall-pkglibexecLTLIBRARIES \
@@ -339,10 +358,11 @@ install-pkglibexecLTLIBRARIES mostlyclean-compile distclean-compile \
clean-compile maintainer-clean-compile mostlyclean-libtool \
distclean-libtool clean-libtool maintainer-clean-libtool tags \
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
-distdir info dvi installcheck install-exec install-data install \
-uninstall all installdirs mostlyclean-generic distclean-generic \
-clean-generic maintainer-clean-generic clean mostlyclean distclean \
-maintainer-clean
+distdir info-am info dvi-am dvi check check-am installcheck-am \
+installcheck install-exec-am install-exec install-data-am install-data \
+install-am install uninstall-am uninstall all-redirect all-am all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
perlxsi.c:
diff --git a/modules/stdlib.c b/modules/stdlib.c
index 1b6bee0d..ecec727c 100644
--- a/modules/stdlib.c
+++ b/modules/stdlib.c
@@ -30,6 +30,8 @@
#include <sys/utsname.h>
#include <sys/types.h>
+#define m4_macro_table stdlib_LTX_m4_macro_table
+
DECLARE(m4_getcwd);
DECLARE(m4_getlogin);
DECLARE(m4_getpid);
diff --git a/modules/test.c b/modules/test.c
index 1a8a8092..bd8d05b2 100644
--- a/modules/test.c
+++ b/modules/test.c
@@ -19,6 +19,10 @@
#include <m4.h> /* These are obligatory */
#include <builtin.h>
+#define m4_macro_table test_LTX_m4_macro_table
+#define m4_init_module test_LTX_m4_init_module
+#define m4_finish_module test_LTX_m4_finish_module
+
module_init_t m4_init_module; /* initialisation function */
module_finish_t m4_finish_module; /* cleanup function */
diff --git a/modules/time.c b/modules/time.c
index 8a986b3c..29628e91 100644
--- a/modules/time.c
+++ b/modules/time.c
@@ -25,6 +25,8 @@
#include <time.h>
#endif /* TM_IN_SYS_TIME */
+#define m4_macro_table time_LTX_m4_macro_table
+
DECLARE(m4_currenttime);
DECLARE(m4_ctime);
DECLARE(m4_gmtime);
diff --git a/po/ChangeLog b/po/ChangeLog
index caaa2cad..944b2d8d 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,15 @@
+1999-10-13 Rene' Seindal <rene@seindal.dk>
+
+ * cs.po: Czech translation added.
+
+ * sv.po: Updated Swedish translation.
+
+ * ru.po: Updated Russian translation.
+
+ * pl.po: Updated Polish translation.
+
+ * el.po: Greek translation added.
+
1998-10-04 Rene' Seindal <rene@seindal.dk>
* pl.po: Polish translation added.
diff --git a/po/POTFILES.in b/po/POTFILES.in
index f72955e0..5ed31afe 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,3 +1,7 @@
+lib/getopt.c
+lib/obstack.c
+lib/regex.c
+lib/xmalloc.c
src/builtin.c
src/debug.c
src/eval.c
diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c
index 09c1d0e6..e125f80c 100644
--- a/po/cat-id-tbl.c
+++ b/po/cat-id-tbl.c
@@ -8,57 +8,87 @@
const struct _msg_ent _msg_tbl[] = {
{"", 1},
- {"Warning: Too few arguments to built-in `%s'", 2},
- {"Warning: Excess arguments to built-in `%s' ignored", 3},
- {"Non-numeric argument to built-in `%s'", 4},
- {"INTERNAL ERROR: Bad token data type in define_macro ()", 5},
- {"Undefined name %s", 6},
- {"INTERNAL ERROR: Builtin not found in builtin table!", 7},
- {"INTERNAL ERROR: Bad token data type in m4_dumpdef ()", 8},
- {"Undefined macro `%s'", 9},
- {"INTERNAL ERROR: Bad symbol type in m4_defn ()", 10},
- {"Cannot open pipe to command `%s'", 11},
- {"Radix in eval out of range (radix = %d)", 12},
- {"Negative width to eval", 13},
- {"Non-numeric argument to %s", 14},
- {"Cannot undivert %s", 15},
- {"Undefined syntax code %c", 16},
- {"Cannot open %s", 17},
- {"Debugmode: bad debug flags: `%s'", 18},
- {"Cannot set error file: %s", 19},
- {"WARNING: \\0 will disappear, use \\& instead in replacements", 20},
- {"Bad regular expression `%s': %s", 21},
- {"Error matching regular expression `%s'", 22},
- {"INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())", 23},
- {"INTERNAL ERROR: Bad token data type (trace_pre ())", 24},
- {"Bad expression in eval (missing right parenthesis): %s", 25},
- {"Bad expression in eval: %s", 26},
- {"Bad expression in eval (bad input): %s", 27},
- {"Bad expression in eval (excess input): %s", 28},
- {"Divide by zero in eval: %s", 29},
- {"Modulo by zero in eval: %s", 30},
- {"INTERNAL ERROR: Bad error code in evaluate ()", 31},
- {"INTERNAL ERROR: Bad comparison operator in cmp_term ()", 32},
- {"INTERNAL ERROR: Bad shift operator in shift_term ()", 33},
- {"INTERNAL ERROR: Bad operator in mult_term ()", 34},
- {"INTERNAL ERROR: Built-in not found in builtin table!", 35},
- {"INTERNAL ERROR: Bad token data type in freeze_one_symbol ()", 36},
- {"Expecting line feed in frozen file", 37},
- {"Expecting character `%c' in frozen file", 38},
- {"Ill-formated frozen file", 39},
- {"Premature end of frozen file", 40},
- {"`%s' from frozen file not found in builtin table!", 41},
- {"Input reverted to %s, line %d", 42},
- {"Input read from %s", 43},
- {"INTERNAL ERROR: Recursive push_string!", 44},
- {"INTERNAL ERROR: Bad call to init_macro_token ()", 45},
- {"INTERNAL ERROR: Input stack botch in next_char ()", 46},
- {"INTERNAL ERROR: Input stack botch in peek_input ()", 47},
- {"NONE", 48},
- {"ERROR: EOF in string", 49},
- {"ERROR: Stack overflow. (Infinite define recursion?)", 50},
- {"Try `%s --help' for more information.\n", 51},
- {"Usage: %s [OPTION]... [FILE]...\n", 52},
+ {"%s: option `%s' is ambiguous\n", 2},
+ {"%s: option `--%s' doesn't allow an argument\n", 3},
+ {"%s: option `%c%s' doesn't allow an argument\n", 4},
+ {"%s: option `%s' requires an argument\n", 5},
+ {"%s: unrecognized option `--%s'\n", 6},
+ {"%s: unrecognized option `%c%s'\n", 7},
+ {"%s: illegal option -- %c\n", 8},
+ {"%s: invalid option -- %c\n", 9},
+ {"%s: option requires an argument -- %c\n", 10},
+ {"%s: option `-W %s' is ambiguous\n", 11},
+ {"%s: option `-W %s' doesn't allow an argument\n", 12},
+ {"memory exhausted", 13},
+ {"Success", 14},
+ {"No match", 15},
+ {"Invalid regular expression", 16},
+ {"Invalid collation character", 17},
+ {"Invalid character class name", 18},
+ {"Trailing backslash", 19},
+ {"Invalid back reference", 20},
+ {"Unmatched [ or [^", 21},
+ {"Unmatched ( or \\(", 22},
+ {"Unmatched \\{", 23},
+ {"Invalid content of \\{\\}", 24},
+ {"Invalid range end", 25},
+ {"Memory exhausted", 26},
+ {"Invalid preceding regular expression", 27},
+ {"Premature end of regular expression", 28},
+ {"Regular expression too big", 29},
+ {"Unmatched ) or \\)", 30},
+ {"No previous regular expression", 31},
+ {"Warning: Too few arguments to built-in `%s'", 32},
+ {"Warning: Excess arguments to built-in `%s' ignored", 33},
+ {"Non-numeric argument to built-in `%s'", 34},
+ {"INTERNAL ERROR: Bad token data type in define_macro ()", 35},
+ {"Undefined name %s", 36},
+ {"INTERNAL ERROR: Builtin not found in builtin table!", 37},
+ {"INTERNAL ERROR: Bad token data type in m4_dumpdef ()", 38},
+ {"Undefined name `%s'", 39},
+ {"INTERNAL ERROR: Bad symbol type in m4_defn ()", 40},
+ {"Cannot open pipe to command `%s'", 41},
+ {"Radix in eval out of range (radix = %d)", 42},
+ {"Negative width to eval", 43},
+ {"Non-numeric argument to %s", 44},
+ {"Cannot undivert %s", 45},
+ {"Undefined syntax code %c", 46},
+ {"Cannot open %s", 47},
+ {"Debugmode: bad debug flags: `%s'", 48},
+ {"Cannot set error file: %s", 49},
+ {"WARNING: \\0 will disappear, use \\& instead in replacements", 50},
+ {"Bad regular expression `%s': %s", 51},
+ {"Error matching regular expression `%s'", 52},
+ {"INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())", 53},
+ {"INTERNAL ERROR: Bad token data type (trace_pre ())", 54},
+ {"Bad expression in eval (missing right parenthesis): %s", 55},
+ {"Bad expression in eval: %s", 56},
+ {"Bad expression in eval (bad input): %s", 57},
+ {"Bad expression in eval (excess input): %s", 58},
+ {"Divide by zero in eval: %s", 59},
+ {"Modulo by zero in eval: %s", 60},
+ {"INTERNAL ERROR: Bad error code in evaluate ()", 61},
+ {"INTERNAL ERROR: Bad comparison operator in cmp_term ()", 62},
+ {"INTERNAL ERROR: Bad shift operator in shift_term ()", 63},
+ {"INTERNAL ERROR: Bad operator in mult_term ()", 64},
+ {"INTERNAL ERROR: Built-in not found in builtin table!", 65},
+ {"INTERNAL ERROR: Bad token data type in freeze_one_symbol ()", 66},
+ {"Expecting line feed in frozen file", 67},
+ {"Expecting character `%c' in frozen file", 68},
+ {"Ill-formated frozen file", 69},
+ {"Premature end of frozen file", 70},
+ {"`%s' from frozen file not found in builtin table!", 71},
+ {"Input reverted to %s, line %d", 72},
+ {"Input read from %s", 73},
+ {"INTERNAL ERROR: Recursive push_string!", 74},
+ {"INTERNAL ERROR: Bad call to init_macro_token ()", 75},
+ {"INTERNAL ERROR: Input stack botch in next_char ()", 76},
+ {"INTERNAL ERROR: Input stack botch in peek_input ()", 77},
+ {"NONE", 78},
+ {"ERROR: EOF in string", 79},
+ {"ERROR: Stack overflow. (Infinite define recursion?)", 80},
+ {"Try `%s --help' for more information.\n", 81},
+ {"Usage: %s [OPTION]... [FILE]...\n", 82},
{"\
Mandatory or optional arguments to long options are mandatory or optional\n\
for short options too.\n\
@@ -69,33 +99,38 @@ Operation modes:\n\
-e, --interactive unbuffer output, ignore interrupts\n\
-E, --fatal-warnings stop execution after first warning\n\
-Q, --quiet, --silent suppress some warnings for builtins\n\
- -P, --prefix-builtins force a `m4_' prefix to all builtins\n", 53},
- {" -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n", 54},
+ -P, --prefix-builtins force a `m4_' prefix to all builtins\n", 83},
+ {" -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n", 84},
+ {"\
+\n\
+Dynamic loading features:\n\
+ -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n\
+ -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n", 85},
{"\
\n\
Preprocessor features:\n\
-I, --include=DIRECTORY search this directory second for includes\n\
-D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n\
-U, --undefine=NAME delete builtin NAME\n\
- -s, --synclines generate `#line NO \"FILE\"' lines\n", 55},
+ -s, --synclines generate `#line NO \"FILE\"' lines\n", 86},
{"\
\n\
Limits control:\n\
-G, --traditional suppress all GNU extensions\n\
-H, --hashsize=PRIME set symbol lookup hash table size\n\
- -L, --nesting-limit=NUMBER change artificial nesting limit\n", 56},
+ -L, --nesting-limit=NUMBER change artificial nesting limit\n", 87},
{"\
\n\
Frozen state files:\n\
-F, --freeze-state=FILE produce a frozen state on FILE at end\n\
- -R, --reload-state=FILE reload a frozen state from FILE at start\n", 57},
+ -R, --reload-state=FILE reload a frozen state from FILE at start\n", 88},
{"\
\n\
Debugging:\n\
-d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n\
-t, --trace=NAME trace NAME when it will be defined\n\
-l, --arglength=NUM restrict macro tracing size\n\
- -o, --error-output=FILE redirect debug and trace output\n", 58},
+ -o, --error-output=FILE redirect debug and trace output\n", 89},
{"\
\n\
FLAGS is any of:\n\
@@ -109,37 +144,44 @@ FLAGS is any of:\n\
l say current input line number\n\
p show results of path searches\n\
i show changes in input files\n\
- V shorthand for all of the above flags\n", 59},
+ V shorthand for all of the above flags\n", 90},
{"\
\n\
-If no FILE or if FILE is `-', standard input is read.\n", 60},
+If no FILE or if FILE is `-', standard input is read.\n", 91},
{"\
\n\
-Report bugs to <bug-m4@gnu.org>.\n", 61},
- {"Bad debug flags: `%s'", 62},
- {" (options:", 63},
- {"INTERNAL ERROR: Bad code in deferred arguments", 64},
- {"INTERNAL ERROR: Bad token type in expand_token ()", 65},
- {"ERROR: EOF in argument list", 66},
- {"INTERNAL ERROR: Bad token type in expand_argument ()", 67},
- {"INTERNAL ERROR: Bad symbol type in call_macro ()", 68},
- {"ERROR: Recursion limit of %d exceeded, use -L<N> to change it", 69},
- {"Module search for `%s' found `%s'", 70},
- {"ERROR: cannot find module `%s': %s", 71},
- {"ERROR: cannot find module `%s'", 72},
- {"ERROR: Cannot create temporary file for diversion", 73},
- {"ERROR: Cannot flush diversion to temporary file", 74},
- {"ERROR: Copying inserted file", 75},
- {"ERROR: Reading inserted file", 76},
- {"Cannot stat diversion", 77},
- {"Path search for `%s' found `%s'", 78},
- {"VMEM limit exceeded?\n", 79},
+Report bugs to <bug-m4@gnu.org>.\n", 92},
+ {"Bad debug flags: `%s'", 93},
+ {"ERROR: failed to add search directory `%s'", 94},
+ {"ERROR: failed to add search directory `%s': %s", 95},
+ {" (options:", 96},
+ {"INTERNAL ERROR: Bad code in deferred arguments", 97},
+ {"INTERNAL ERROR: Bad token type in expand_token ()", 98},
+ {"ERROR: EOF in argument list", 99},
+ {"INTERNAL ERROR: Bad token type in expand_argument ()", 100},
+ {"INTERNAL ERROR: Bad symbol type in call_macro ()", 101},
+ {"ERROR: Recursion limit of %d exceeded, use -L<N> to change it", 102},
+ {"ERROR: failed to initialise modules: %s", 103},
+ {"ERROR: cannot find module: `%s'", 104},
+ {"ERROR: cannot find module: `%s': %s", 105},
+ {"ERROR: cannot close modules", 106},
+ {"ERROR: cannot cannot close modules: %s", 107},
+ {"ERROR: cannot close module: `%s'", 108},
+ {"ERROR: cannot cannot close module: `%s': %s", 109},
+ {"ERROR: Cannot create temporary file for diversion", 110},
+ {"ERROR: Cannot flush diversion to temporary file", 111},
+ {"ERROR: Copying inserted file", 112},
+ {"ERROR: Reading inserted file", 113},
+ {"Cannot stat diversion", 114},
+ {"Diversion too large", 115},
+ {"Path search for `%s' found `%s'", 116},
+ {"VMEM limit exceeded?\n", 117},
{"\
Memory bounds violation detected (SIGSEGV). Either a stack overflow\n\
-occurred, or there is a bug in ", 80},
- {". Check for possible infinite recursion.\n", 81},
- {"INTERNAL ERROR: Illegal mode to symbol_lookup ()", 82},
- {"Name `%s' is unknown\n", 83},
+occurred, or there is a bug in ", 118},
+ {". Check for possible infinite recursion.\n", 119},
+ {"INTERNAL ERROR: Illegal mode to symbol_lookup ()", 120},
+ {"Name `%s' is unknown\n", 121},
};
-int _msg_tbl_length = 83;
+int _msg_tbl_length = 121;
diff --git a/po/cs.gmo b/po/cs.gmo
new file mode 100644
index 00000000..69918181
--- /dev/null
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 00000000..5e355a64
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,725 @@
+# Czech translation of the GNU m4.
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Jiøí Pavlovský <pavlovsk@ff.cuni.cz>, 1998.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: m4 1.4n\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
+"PO-Revision-Date: 1998-12-07 22:02+01:00\n"
+"Last-Translator: Jiøí Pavlovský <pavlovsk@ff.cuni.cz>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+# , c-format
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "©patný regulární výraz `%s': %s"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+# , c-format
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "Chyba pøi porovnávání regulárního výrazu `%s'"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "Pøedèasný konec zmrazeného souboru"
+
+# , c-format
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "©patný regulární výraz `%s': %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+# , c-format
+#: lib/regex.c:5564
+#, fuzzy
+msgid "No previous regular expression"
+msgstr "Chyba pøi porovnávání regulárního výrazu `%s'"
+
+# , c-format
+#: src/builtin.c:349
+#, c-format
+msgid "Warning: Too few arguments to built-in `%s'"
+msgstr "Varování: pøíli¹ málo argumentù pro vestavìné makro `%s'"
+
+# , c-format
+#: src/builtin.c:355
+#, c-format
+msgid "Warning: Excess arguments to built-in `%s' ignored"
+msgstr ""
+"Varování: pøíli¹ mnoho argumentù pro vestavìné makro `%s' - budou ignorovány"
+
+# , c-format
+#: src/builtin.c:383
+#, c-format
+msgid "Non-numeric argument to built-in `%s'"
+msgstr "Neèíselný argument pro vestavìné makro `%s'"
+
+#: src/builtin.c:494
+msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
+msgstr "VNITØNÍ CHYBA: ¹patný typ tokenu v define_macro ()"
+
+# , c-format
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
+#, c-format
+msgid "Undefined name %s"
+msgstr "Jméno %s není definováno"
+
+#: src/builtin.c:721
+msgid "INTERNAL ERROR: Builtin not found in builtin table!"
+msgstr "VNITØNÍ CHYBA: Vestavìné makro nenalezeno v tabulce vestavìných maker!"
+
+#: src/builtin.c:729
+msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
+msgstr "VNITØNÍ CHYBA: ¹patný typ tokenu v m4_dumpdef ()"
+
+# , c-format
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "Jméno %s není definováno"
+
+#: src/builtin.c:842
+msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
+msgstr "VNITØNÍ CHYBA: ¹patný typ symbolu v m4_defn ()"
+
+# , c-format
+#: src/builtin.c:908
+#, c-format
+msgid "Cannot open pipe to command `%s'"
+msgstr "Rouru do pøíkazu `%s' nelze otevøít"
+
+# , c-format
+#: src/builtin.c:948
+#, c-format
+msgid "Radix in eval out of range (radix = %d)"
+msgstr "Základ v makru eval je mimo rozsah (základ = %d)"
+
+#: src/builtin.c:957
+msgid "Negative width to eval"
+msgstr "Záporná ¹íøka v makru eval"
+
+# , c-format
+#: src/builtin.c:1063
+#, c-format
+msgid "Non-numeric argument to %s"
+msgstr "Neèíselný argument pro %s"
+
+# , c-format
+#: src/builtin.c:1075
+#, c-format
+msgid "Cannot undivert %s"
+msgstr "Chyba pøi volání makra undivert pro %s"
+
+# , c-format
+#: src/builtin.c:1223
+#, c-format
+msgid "Undefined syntax code %c"
+msgstr "Syntaktický kód %c není definován"
+
+# , c-format
+#: src/builtin.c:1274 src/freeze.c:211
+#, c-format
+msgid "Cannot open %s"
+msgstr "%s nelze otevøít"
+
+# , c-format
+#: src/builtin.c:1483
+#, c-format
+msgid "Debugmode: bad debug flags: `%s'"
+msgstr "Ladící mód: ¹patné ladící volby: `%s'"
+
+# , c-format
+#: src/builtin.c:1519
+#, c-format
+msgid "Cannot set error file: %s"
+msgstr "Chybový soubor %s nelze pou¾ít"
+
+#: src/builtin.c:1740
+msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
+msgstr "VAROVÁNÍ: \\0 zmizí, pøi nahrazování pou¾ijte \\&"
+
+# , c-format
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
+#, c-format
+msgid "Bad regular expression `%s': %s"
+msgstr "©patný regulární výraz `%s': %s"
+
+# , c-format
+#: src/builtin.c:1812 src/builtin.c:1885
+#, c-format
+msgid "Error matching regular expression `%s'"
+msgstr "Chyba pøi porovnávání regulárního výrazu `%s'"
+
+#: src/debug.c:380
+msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
+msgstr ""
+"VNITØNÍ CHYBA: vestavìné makro nenalezeno v tabulce vestavìných maker\n"
+"(trace_pre ())!"
+
+#: src/debug.c:388
+msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
+msgstr "VNITØNÍ CHYBA: ¹patný typ tokenu (trace_pre ())"
+
+# , c-format
+#: src/eval.c:309
+#, c-format
+msgid "Bad expression in eval (missing right parenthesis): %s"
+msgstr "©patný výraz v makru eval (chybí pravá závorka): %s"
+
+# , c-format
+#: src/eval.c:315
+#, c-format
+msgid "Bad expression in eval: %s"
+msgstr "©patný výraz v makru eval: %s"
+
+# , c-format
+#: src/eval.c:320
+#, c-format
+msgid "Bad expression in eval (bad input): %s"
+msgstr "©patný výraz v makru eval (¹patný vstup): %s"
+
+# , c-format
+#: src/eval.c:325
+#, c-format
+msgid "Bad expression in eval (excess input): %s"
+msgstr "©patný výraz v makru eval (nadbyteèný vstup): %s"
+
+# , c-format
+#: src/eval.c:330
+#, c-format
+msgid "Divide by zero in eval: %s"
+msgstr "Dìlení nulou v makru eval: %s"
+
+# , c-format
+#: src/eval.c:335
+#, c-format
+msgid "Modulo by zero in eval: %s"
+msgstr "Modulo nulou v makru eval: %s"
+
+#: src/eval.c:340
+msgid "INTERNAL ERROR: Bad error code in evaluate ()"
+msgstr "VNITØNÍ CHYBA: ¹patný chybový kód v evaluate ()"
+
+#: src/eval.c:594
+msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()"
+msgstr "VNITØNÍ CHYBA: ¹patný operátor porovnání v cmp_term ()"
+
+#: src/eval.c:639
+msgid "INTERNAL ERROR: Bad shift operator in shift_term ()"
+msgstr "VNITØNÍ CHYBA: ¹patný operátor posunu v shift_term ()"
+
+#: src/eval.c:738
+msgid "INTERNAL ERROR: Bad operator in mult_term ()"
+msgstr "VNITØNÍ CHYBA: ¹patný operátor v mult_term ()"
+
+#: src/freeze.c:119
+msgid "INTERNAL ERROR: Built-in not found in builtin table!"
+msgstr "VNITØNÍ CHYBA: Vestavìné makro nenalezeno v tabulce vestavìných maker!"
+
+#: src/freeze.c:132
+msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
+msgstr "VNITØNÍ CHYBA: ¹patný typ tokenu ve freeze_one_symbol ()"
+
+#: src/freeze.c:163
+msgid "Expecting line feed in frozen file"
+msgstr "Ve zmrazeném souboru oèekáván LF"
+
+# , c-format
+#: src/freeze.c:165
+#, c-format
+msgid "Expecting character `%c' in frozen file"
+msgstr "Ve zmrazeném souboru oèekáván znak `%c'"
+
+#: src/freeze.c:222
+msgid "Ill-formated frozen file"
+msgstr "©patný formát zmrazeného souboru"
+
+#: src/freeze.c:277 src/freeze.c:293
+msgid "Premature end of frozen file"
+msgstr "Pøedèasný konec zmrazeného souboru"
+
+# , c-format
+#: src/freeze.c:327
+#, c-format
+msgid "`%s' from frozen file not found in builtin table!"
+msgstr "`%s' ze zmrazeného souboru nenalezeno v tabulce vestavìných maker!"
+
+# , c-format
+#: src/input.c:318
+#, c-format
+msgid "Input reverted to %s, line %d"
+msgstr "Vstup èten z %s, øádku %d"
+
+# , c-format
+#: src/input.c:346
+#, c-format
+msgid "Input read from %s"
+msgstr "Vstup èten z %s"
+
+#: src/input.c:506
+msgid "INTERNAL ERROR: Recursive push_string!"
+msgstr "VNITØNÍ CHYBA: rekurzivní push_string!"
+
+#: src/input.c:623
+msgid "INTERNAL ERROR: Bad call to init_macro_token ()"
+msgstr "VNITØNÍ CHYBA: ¹patné volání init_macro_token ()"
+
+#: src/input.c:663
+msgid "INTERNAL ERROR: Input stack botch in next_char ()"
+msgstr "VNITØNÍ CHYBA: chyba vstupního zásobníku v next_char ()"
+
+#: src/input.c:700
+msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
+msgstr "VNITØNÍ CHYBA: chyba vstupního zásobníku v peek_input ()"
+
+#: src/input.c:805
+msgid "NONE"
+msgstr "®ÁDNÝ"
+
+#: src/input.c:1199 src/input.c:1226
+msgid "ERROR: EOF in string"
+msgstr "CHYBA: EOF v øetìzci"
+
+#: src/m4.c:119
+msgid "ERROR: Stack overflow. (Infinite define recursion?)"
+msgstr "CHYBA: Pøeteèení zásobníku. (nekoneèná rekurze makra define?)"
+
+# , c-format
+#: src/m4.c:146
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Více informací získáte pøíkazem `%s --help'.\n"
+
+# , c-format
+#: src/m4.c:150
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]...\n"
+msgstr "Pou¾ití: %s [PØEPÍNAÈ]... [SOUBOR]...\n"
+
+#: src/m4.c:151
+msgid ""
+"Mandatory or optional arguments to long options are mandatory or optional\n"
+"for short options too.\n"
+"\n"
+"Operation modes:\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+" -e, --interactive unbuffer output, ignore interrupts\n"
+" -E, --fatal-warnings stop execution after first warning\n"
+" -Q, --quiet, --silent suppress some warnings for builtins\n"
+" -P, --prefix-builtins force a `m4_' prefix to all builtins\n"
+msgstr ""
+"Povinné èi volitelné argumenty pro dlouhé pøepínaèe jsou povinné respektive\n"
+"volitelné i pro odpovídající pøepínaèe krátké.\n"
+"\n"
+"Chování programu:\n"
+" --help vypí¹e tuto nápovìdu a skonèí\n"
+" --version vypí¹e oznaèení verze a skonèí\n"
+" -e, --interactive nebufferovaný výstup, ignoruje pøeru¹ení\n"
+" -E, --fatal-warnings skonèí po prvním varování\n"
+" -Q, --quiet, --silent potlaèí nìkterá varování týkající se\n"
+" vestavìných maker\n"
+" -P, --prefix-builtins v¹echna vestavìná makra budou mít prefix "
+"`m4_'\n"
+
+#: src/m4.c:164
+msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
+msgstr ""
+" -W, --word-regexp=REGVÝR syntaxe jmen maker bude urèena pomocí REGVÝR\n"
+
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
+msgid ""
+"\n"
+"Preprocessor features:\n"
+" -I, --include=DIRECTORY search this directory second for includes\n"
+" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
+" -U, --undefine=NAME delete builtin NAME\n"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
+msgstr ""
+"\n"
+"Nastavení preprocesoru:\n"
+" -I, --include=ADRESÁØ ADRESÁØ bude druhý v poøadí pøi hledání\n"
+" vlo¾ených souborù\n"
+" -D, --define=MAKRO[=HODNOTA] definuje MAKRO mající HODNOTU, mù¾e být\n"
+" i prázdné\n"
+" -U, --undefine=MAKRO sma¾e vestavìné MAKRO\n"
+" -s, --synclines vlo¾í øádky tvaru `#line ÈÍSLO \"SOUBOR\"'\n"
+
+#: src/m4.c:184
+msgid ""
+"\n"
+"Limits control:\n"
+" -G, --traditional suppress all GNU extensions\n"
+" -H, --hashsize=PRIME set symbol lookup hash table size\n"
+" -L, --nesting-limit=NUMBER change artificial nesting limit\n"
+msgstr ""
+"\n"
+"Nastavení limitù:\n"
+" -G, --traditional vypne roz¹íøení GNU\n"
+" -H, --hashsize=PRVOÈÍSLO velikost hash tabulky pro vyhledávání "
+"symbolù\n"
+" -L, --nesting-limit=ÈÍSLO nastaví limit pro vnoøená volání maker\n"
+
+#: src/m4.c:191
+msgid ""
+"\n"
+"Frozen state files:\n"
+" -F, --freeze-state=FILE produce a frozen state on FILE at end\n"
+" -R, --reload-state=FILE reload a frozen state from FILE at start\n"
+msgstr ""
+"\n"
+"Zmrazené soubory:\n"
+" -F, --freeze-state=SOUBOR pøi ukonèení ulo¾í zmrazený stav do SOUBORU\n"
+" -R, --reload-state=SOUBOR pøi startu naète zmrazený stav ze SOUBORU\n"
+
+#: src/m4.c:197
+msgid ""
+"\n"
+"Debugging:\n"
+" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n"
+" -t, --trace=NAME trace NAME when it will be defined\n"
+" -l, --arglength=NUM restrict macro tracing size\n"
+" -o, --error-output=FILE redirect debug and trace output\n"
+msgstr ""
+"\n"
+"Ladìní:\n"
+" -d, --debug=[VOLBY] nastaví úroveò ladìní (pokud nejsou VOLBY\n"
+" zadány, pak implicitnì `aeq')\n"
+" -t, --trace=MAKRO sleduje MAKRO, kdy¾ je definováno\n"
+" -l, --arglength=POÈET reguluje poèet výstupních informací\n"
+" ze sledování maker\n"
+" -o, --error-output=SOUBOR pøesmìruje výstup ladìní a sledování do "
+"SOUBORU\n"
+
+#: src/m4.c:205
+msgid ""
+"\n"
+"FLAGS is any of:\n"
+" t trace for all macro calls, not only traceon'ed\n"
+" a show actual arguments\n"
+" e show expansion\n"
+" q quote values as necessary, with a or e flag\n"
+" c show before collect, after collect and after call\n"
+" x add a unique macro call id, useful with c flag\n"
+" f say current input file name\n"
+" l say current input line number\n"
+" p show results of path searches\n"
+" i show changes in input files\n"
+" V shorthand for all of the above flags\n"
+msgstr ""
+"\n"
+"VOLBOU mù¾e být cokoliv z:\n"
+" t sleduje v¹echna makra, nejenom ta urèená pomocí traceon\n"
+" a vypí¹e aktuální argumenty\n"
+" e vypí¹e expanzi\n"
+" q dle potøeby uzavøe hodnoty mezi apostrofy, s volbami a nebo e\n"
+" c vypí¹e hodnoty pøed a po vyhodnocení argumentù a po volání makra\n"
+" x bude vypisovat jedineèné ID volání makra, u¾iteèné s volbou c\n"
+" f bude vypisovat jméno vstupního souboru\n"
+" l bude vypisovat èíslo vstupního øádku\n"
+" p vypí¹e informace o nalezení zadaného souboru\n"
+" i vypí¹e informace o ka¾dé zmìnì vstupního souboru\n"
+" V zkratka pro v¹echny vý¹e uvedené volby\n"
+
+#: src/m4.c:220
+msgid ""
+"\n"
+"If no FILE or if FILE is `-', standard input is read.\n"
+msgstr ""
+"\n"
+"Jestli¾e SOUBOR není zadán, nebo je SOUBOR `-', pak je èten standardní "
+"vstup.\n"
+
+#: src/m4.c:225
+msgid ""
+"\n"
+"Report bugs to <bug-m4@gnu.org>.\n"
+msgstr ""
+"\n"
+"Chyby v programu oznamujte na adrese <bug-m4@gnu.org> (anglicky).\n"
+"Pøipomínky k pøekladu zasílejte na adresu <cs@li.org> (èesky).\n"
+
+# , c-format
+#: src/m4.c:414
+#, c-format
+msgid "Bad debug flags: `%s'"
+msgstr "©patné ladící volby: `%s'"
+
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
+msgstr ""
+
+#: src/m4.c:460
+msgid " (options:"
+msgstr " (pøelo¾eno s volbami:"
+
+#: src/m4.c:542
+msgid "INTERNAL ERROR: Bad code in deferred arguments"
+msgstr "VNITØNÍ CHYBA: ¹patný kód v odlo¾ených argumentech"
+
+#: src/macro.c:97
+msgid "INTERNAL ERROR: Bad token type in expand_token ()"
+msgstr "VNITØNÍ CHYBA: ¹patný typ tokenu v expand_token ()"
+
+#: src/macro.c:163
+msgid "ERROR: EOF in argument list"
+msgstr "CHYBA: EOF v seznamu argumentù"
+
+#: src/macro.c:182
+msgid "INTERNAL ERROR: Bad token type in expand_argument ()"
+msgstr "VNITØNÍ CHYBA: ¹patný typ tokenu v expand_argument ()"
+
+#: src/macro.c:259
+msgid "INTERNAL ERROR: Bad symbol type in call_macro ()"
+msgstr "VNITØNÍ CHYBA: ¹patný typ symbolu v call_macro ()"
+
+# , c-format
+#: src/macro.c:288
+#, c-format
+msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
+msgstr "CHYBA: pøekroèen limit pro rekurzi (%d), zmìòte jej pomocí -L<N>"
+
+# , c-format
+#: src/module.c:123
+#, fuzzy, c-format
+msgid "ERROR: failed to initialise modules: %s"
+msgstr "CHYBA: modul `%s' nelze nalézt: %s"
+
+# , c-format
+#: src/module.c:221
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr "CHYBA: modul `%s' nelze nalézt"
+
+# , c-format
+#: src/module.c:224
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr "CHYBA: modul `%s' nelze nalézt: %s"
+
+# , c-format
+#: src/module.c:274
+#, fuzzy
+msgid "ERROR: cannot close modules"
+msgstr "CHYBA: modul `%s' nelze nalézt"
+
+# , c-format
+#: src/module.c:277
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close modules: %s"
+msgstr "CHYBA: modul `%s' nelze nalézt: %s"
+
+# , c-format
+#: src/module.c:284
+#, fuzzy, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr "CHYBA: modul `%s' nelze nalézt"
+
+# , c-format
+#: src/module.c:288
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr "CHYBA: modul `%s' nelze nalézt: %s"
+
+#: src/output.c:262
+msgid "ERROR: Cannot create temporary file for diversion"
+msgstr "CHYBA: doèasný soubor pro ulo¾ení odlo¾eného výstupu nelze vytvoøit"
+
+#: src/output.c:272
+msgid "ERROR: Cannot flush diversion to temporary file"
+msgstr "CHYBA: odlo¾ený výstup nelze zapsat do doèasného souboru"
+
+#: src/output.c:356
+msgid "ERROR: Copying inserted file"
+msgstr "CHYBA: pøi zapisování vlo¾eného souboru"
+
+#: src/output.c:537
+msgid "ERROR: Reading inserted file"
+msgstr "CHYBA: pøi ètení vlo¾eného souboru"
+
+#: src/output.c:636
+msgid "Cannot stat diversion"
+msgstr "Chyba pøi volání funkce stat pro soubor obsahující odlo¾ený výstup"
+
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
+# , c-format
+#: src/path.c:157
+#, c-format
+msgid "Path search for `%s' found `%s'"
+msgstr "Hledán soubor `%s', nalezen soubor `%s'"
+
+#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
+#. if the stack limit has not been reached.
+#: src/stackovf.c:175
+msgid "VMEM limit exceeded?\n"
+msgstr "Pøekroèen VMEM limit?\n"
+
+#: src/stackovf.c:197
+msgid ""
+"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
+"occurred, or there is a bug in "
+msgstr ""
+"Neoprávnìný pøístup do pamìti (SIGSEGV). Jedná se buï o pøeteèení "
+"zásobníku,\n"
+"nebo o chybu "
+
+#: src/stackovf.c:202
+msgid ". Check for possible infinite recursion.\n"
+msgstr ". Provìøte, zda se nejedná o nekoneènou rekurzi.\n"
+
+#: src/symtab.c:190
+msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()"
+msgstr "VNITØNÍ CHYBA: ¹patný mód pro symbol_lookup ()"
+
+# , c-format
+#: src/symtab.c:243
+#, c-format
+msgid "Name `%s' is unknown\n"
+msgstr "Jméno `%s' není známo\n"
+
+# , c-format
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "Makro `%s' není definováno"
+
+# , c-format
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "Hledán modul `%s', nalezen modul `%s'"
diff --git a/po/de.gmo b/po/de.gmo
index 70605e66..eba5711b 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 0530938b..657089ac 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,126 +1,266 @@
# German translation for the GNU m4 messages
-# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+# Copyright (C) 1995, 1996, 1999 Free Software Foundation, Inc.
# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995
-# Martin von Löwis <martin@mira.isdn.cs.tu-berlin.de>, 1996
+# Martin von Löwis <martin@mira.isdn.cs.tu-berlin.de>, 1996, 1999
#
msgid ""
msgstr ""
-"Project-Id-Version: m4 1.4.3\n"
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
-"PO-Revision-Date: 1996-09-30 10:38 GMT+0100\n"
+"Project-Id-Version: m4 1.4n\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
+"PO-Revision-Date: 1999-03-20 00:46+01:00\n"
"Last-Translator: Martin von Löwis <martin@mira.isdn.cs.tu-berlin.de>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:337
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "Falscher regulärer Ausdruck »%s«: %s"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "Fehler beim Erkennen des regulären Ausdrucks »%s«"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "Vorzeitiges Ende der eingefrorenen Datei"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "Falscher regulärer Ausdruck »%s«: %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+#, fuzzy
+msgid "No previous regular expression"
+msgstr "Fehler beim Erkennen des regulären Ausdrucks »%s«"
+
+#: src/builtin.c:349
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
-msgstr "Warnung: Zu wenig Argumente für eingebaute Funktion `%s'"
+msgstr "Warnung: Zu wenig Argumente für eingebaute Funktion »%s«"
-#: src/builtin.c:343
+#: src/builtin.c:355
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
-"Warnung: Überschüssige Argumente für eingebaute Funktion `%s' ignoriert"
+"Warnung: Überschüssige Argumente für eingebaute Funktion »%s« ignoriert"
-#: src/builtin.c:371
+#: src/builtin.c:383
#, c-format
msgid "Non-numeric argument to built-in `%s'"
-msgstr "Nicht-numerisches Argument in eingebauter Funktion `%s'"
+msgstr "Nicht-numerisches Argument in eingebauter Funktion »%s«"
-#: src/builtin.c:482
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in define_macro ()"
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
#, c-format
msgid "Undefined name %s"
msgstr "Name %s nicht definiert"
-#: src/builtin.c:705
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "INTERNER FEHLER: Eingebaute Funktion nicht in Tabelle gefunden!"
-#: src/builtin.c:713
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in m4_dumpdef ()"
-#: src/builtin.c:764
-#, c-format
-msgid "Undefined macro `%s'"
-msgstr "Makro `%s' nicht definiert"
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "Name %s nicht definiert"
-#: src/builtin.c:802
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "INTERNER FEHLER: Falscher Symboltyp in m4_defn ()"
-#: src/builtin.c:868
+#: src/builtin.c:908
#, c-format
msgid "Cannot open pipe to command `%s'"
-msgstr "Kann keine `pipe' für Kommando `%s' öffnen"
+msgstr "Kann keine `pipe' für Kommando »%s« öffnen"
-#: src/builtin.c:908
+#: src/builtin.c:948
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Basis in `eval' nicht in den Grenzen (Basis = %d)"
-#: src/builtin.c:917
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr "Negative Breite in `eval'"
-#: src/builtin.c:1023
+#: src/builtin.c:1063
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Nicht-numerisches Argument in %s"
-#: src/builtin.c:1035
+#: src/builtin.c:1075
#, c-format
msgid "Cannot undivert %s"
msgstr "Kann Umleitung %s nicht aufheben"
-#: src/builtin.c:1183
-#, fuzzy, c-format
+#: src/builtin.c:1223
+#, c-format
msgid "Undefined syntax code %c"
-msgstr "Name %s nicht definiert"
+msgstr "Syntaxzeichen %c nicht definiert."
-#: src/builtin.c:1234 src/freeze.c:207
+#: src/builtin.c:1274 src/freeze.c:211
#, c-format
msgid "Cannot open %s"
msgstr "Kann %s nicht öffnen"
-#: src/builtin.c:1443
+#: src/builtin.c:1483
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
-msgstr "Debug Modus: falsche Debug Flags: `%s'"
+msgstr "Debugmodus: falsche Debug Flags: »%s«"
-#: src/builtin.c:1479
+#: src/builtin.c:1519
#, c-format
msgid "Cannot set error file: %s"
msgstr "Kann Fehlerdatei nicht vorbereiten: %s"
-#: src/builtin.c:1696
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "WARNUNG: \\0 wird wegfallen, benutze \\& stattdessen"
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
#, c-format
msgid "Bad regular expression `%s': %s"
-msgstr "Falscher regulärer Ausdruck `%s': %s"
+msgstr "Falscher regulärer Ausdruck »%s«: %s"
-#: src/builtin.c:1768 src/builtin.c:1841
+#: src/builtin.c:1812 src/builtin.c:1885
#, c-format
msgid "Error matching regular expression `%s'"
-msgstr "Fehler beim Erkennen des regulären Ausdrucks `%s'"
+msgstr "Fehler beim Erkennen des regulären Ausdrucks »%s«"
-#: src/debug.c:379
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr ""
"INTERNER FEHLER: Eingebaute Funktion nicht in Tabelle gefunden! (trace_pre "
"())"
-#: src/debug.c:387
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens (trace_pre ())"
@@ -170,36 +310,36 @@ msgstr "INTERNER FEHLER: Falscher Shift-Operator in shift_term ()"
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr "INTERNER FEHLER: Falscher Operator in mult_term ()"
-#: src/freeze.c:115
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr "INTERNER FEHLER: Eingebaute Funktion nicht in Tabelle gefunden!"
-#: src/freeze.c:128
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr "INTERNER FEHLER: Falscher Datentyp des Tokens in freeze_one_symbol ()"
-#: src/freeze.c:159
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
msgstr "Erwarte Zeilenumbruch in eingefrorener Datei"
-#: src/freeze.c:161
+#: src/freeze.c:165
#, c-format
msgid "Expecting character `%c' in frozen file"
-msgstr "Erwarte Zeichen `%c' in eingefrorener Datei"
+msgstr "Erwarte Zeichen »%c« in eingefrorener Datei"
-#: src/freeze.c:218
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr "Fehlerhafte eingefrorene Datei"
-#: src/freeze.c:273 src/freeze.c:289
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr "Vorzeitiges Ende der eingefrorenen Datei"
-#: src/freeze.c:323
+#: src/freeze.c:327
#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr ""
-"`%s' aus eingefrorener Datei nicht in Tabelle der eingebauten Funktionen "
+"»%s« aus eingefrorener Datei nicht in Tabelle der eingebauten Funktionen "
"gefunden!"
#: src/input.c:318
@@ -232,29 +372,29 @@ msgstr ""
# This is the name of the input file when there is no current input file.
# Is this ever printed in a message?
-#: src/input.c:803
+#: src/input.c:805
msgid "NONE"
msgstr "NONE"
-#: src/input.c:1197 src/input.c:1224
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr "FEHLER: Dateiende in Zeichenkette"
-#: src/m4.c:117
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "FEHLER: Keller voll. (Unendliche `define' Rekursion?)"
-#: src/m4.c:144
+#: src/m4.c:146
#, c-format
msgid "Try `%s --help' for more information.\n"
-msgstr "`%s --help' zeigt weitere Informationen.\n"
+msgstr "»%s --help« zeigt weitere Informationen.\n"
-#: src/m4.c:148
+#: src/m4.c:150
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Aufruf: %s [OPTION]... [DATEI]...\n"
-#: src/m4.c:149
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -280,12 +420,19 @@ msgstr ""
" -P, --prefix-builtins erzwinge `m4_' Präfix für eingebaute "
"Funktionen\n"
-#: src/m4.c:162
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr " -W, --word-regexp=REGEXP benutze REGEXP für Makronamensyntax\n"
-#: src/m4.c:166
-#, fuzzy
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
msgid ""
"\n"
"Preprocessor features:\n"
@@ -302,7 +449,7 @@ msgstr ""
" -U, --undefine=NAME lösche eingebaute Funktion NAME\n"
" -s, --synclines erzeuge `#line NR \"DATEI\"' Zeilen\n"
-#: src/m4.c:174
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -317,7 +464,7 @@ msgstr ""
" -L, --nesting-limit=NUMMER setze künstliche Grenze für "
"Schachtelungstiefe\n"
-#: src/m4.c:181
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -331,7 +478,7 @@ msgstr ""
" -R, --reload-state=DATEI lade zu Beginn Zustand von eingefrorener "
"DATEI\n"
-#: src/m4.c:187
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -349,7 +496,7 @@ msgstr ""
" -o, --error-output=DATEI leite Debug- und Verfolgungsausgaben nach "
"DATEI\n"
-#: src/m4.c:195
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -379,7 +526,7 @@ msgstr ""
" i gebe Veränderungen der Eingabedatei aus\n"
" V Kurzform für alle Flags oben zusammen\n"
-#: src/m4.c:210
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -387,22 +534,34 @@ msgstr ""
"\n"
"Ohne DATEI oder wenn DATEI `-' ist, wird die Standardeingabe gelesen\n"
-#: src/m4.c:215
+#: src/m4.c:225
msgid ""
"\n"
"Report bugs to <bug-m4@gnu.org>.\n"
msgstr ""
+"\n"
+"Probleme und Fehler an <bug-m4@gnu.org>.\n"
-#: src/m4.c:388
+#: src/m4.c:414
#, c-format
msgid "Bad debug flags: `%s'"
-msgstr "Falsche Debug Flags: `%s'"
+msgstr "Falsche Debug Flags: »%s«"
-#: src/m4.c:417
-msgid " (options:"
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
msgstr ""
-#: src/m4.c:500
+#: src/m4.c:460
+msgid " (options:"
+msgstr "(Optionen:"
+
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "INTERNER FEHLER: Falscher Kode in zurückgestellten Argumenten"
@@ -428,53 +587,77 @@ msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
msgstr ""
"FEHLER: Grenze der Rekursion von %d überschritten, benutze -L<N> zur Änderung"
-#: src/module.c:312
+#: src/module.c:123
#, fuzzy, c-format
-msgid "Module search for `%s' found `%s'"
-msgstr "Pfad für Suche nach `%s' hat `%s' gefunden"
+msgid "ERROR: failed to initialise modules: %s"
+msgstr "FEHLER: Kann Modul »%s« nicht finden: %s"
-#: src/module.c:349
-#, c-format
-msgid "ERROR: cannot find module `%s': %s"
-msgstr ""
+#: src/module.c:221
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr "FEHLER: Kann Module »%s« nicht finden."
-#: src/module.c:353
-#, c-format
-msgid "ERROR: cannot find module `%s'"
-msgstr ""
+#: src/module.c:224
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr "FEHLER: Kann Modul »%s« nicht finden: %s"
+
+#: src/module.c:274
+#, fuzzy
+msgid "ERROR: cannot close modules"
+msgstr "FEHLER: Kann Module »%s« nicht finden."
+
+#: src/module.c:277
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close modules: %s"
+msgstr "FEHLER: Kann Modul »%s« nicht finden: %s"
+
+#: src/module.c:284
+#, fuzzy, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr "FEHLER: Kann Module »%s« nicht finden."
-#: src/output.c:198
+#: src/module.c:288
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr "FEHLER: Kann Modul »%s« nicht finden: %s"
+
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
msgstr "FEHLER: Kann keine temporäre Datei für Umleitung erzeugen"
-#: src/output.c:208
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
msgstr "FEHLER: Kann Umleitung nicht in temporäre Datei ausgeben"
-#: src/output.c:292
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr "FEHLER: Während Kopieren einer eingefügten Datei"
-#: src/output.c:473
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr "FEHLER: Während Lesen einer eingefügten Datei"
-#: src/output.c:572
+#: src/output.c:636
msgid "Cannot stat diversion"
msgstr "Kann `stat' nicht auf Umleitung anwenden"
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
#: src/path.c:157
#, c-format
msgid "Path search for `%s' found `%s'"
-msgstr "Pfad für Suche nach `%s' hat `%s' gefunden"
+msgstr "Pfad für Suche nach »%s« hat »%s« gefunden"
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr "VMEM Beschränkung überschritten?\n"
-#: src/stackovf.c:190
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
@@ -482,7 +665,7 @@ msgstr ""
"Verletzung der Speichergrenzen festgestellt (SIGSEGV). Entweder ist ein\n"
"Stacküberlauf aufgetreten, oder es gibt einen Fehler in "
-#: src/stackovf.c:195
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ". Untersuche auf mögliche unendliche Rekursion.\n"
@@ -493,45 +676,10 @@ msgstr "INTERNER FEHLER: Illegaler Modus bei symbol_lookup ()"
#: src/symtab.c:243
#, c-format
msgid "Name `%s' is unknown\n"
-msgstr "Name `%s' ist unbekannt\n"
-
-#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
-#~ msgstr ""
-#~ "INTERNER FEHLER: Kellerspeicher der Eingabe durcheinander in pop_input ()"
-
-#~ msgid "Bad regular expression: `%s': %s"
-#~ msgstr "Falscher regulärer Ausdruck: `%s': %s"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: Option `%s' ist mehrdeutig\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: Option `--%s' erlaubt kein Argument\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: Option `%c%s' erlaubt kein Argument\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: Option `%s' verlangt ein Argument\n"
-
-#~ msgid "%s: unrecognized option `--%s'\n"
-#~ msgstr "%s: nicht erkannte Option `--%s'\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: nicht erkannte Option `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: illegale Option -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: ungültige Options -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: Option verlangt ein Argument -- %c\n"
+msgstr "Name »%s« ist unbekannt\n"
-# Der aktuelle Ausdruck ist NULL und vorher gab es auch noch keinen.
-#~ msgid "No previous regular expression"
-#~ msgstr "Regulärer Ausdruck fehlt"
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "Makro »%s« nicht definiert"
-#~ msgid "Memory exhausted"
-#~ msgstr "Speicher voll"
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "Suche nach »%s« hat »%s« gefunden."
diff --git a/po/el.gmo b/po/el.gmo
new file mode 100644
index 00000000..479d0010
--- /dev/null
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 00000000..4dd6ed1d
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,690 @@
+# Greek messages for GNU m4.
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Simos Xenitellis <S.Xenitellis@rhbnc.ac.uk>, 1999.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU m4 1.4n\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
+"PO-Revision-Date: 1999-06-24 00:25+0000\n"
+"Last-Translator: Simos Xenitellis <S.Xenitellis@rhbnc.ac.uk>\n"
+"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-7\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "ËÜèïò êáíïíéêÞ Ýêöñáóç `%s': %s"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "ÓöÜëìá óôï ôáßñéáóìá óôçí êáíïíéêÞ Ýêöñáóç `%s'"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "Ðñüùñï ôÝëïò ðáãùìÝíïõ áñ÷åßïõ"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "ËÜèïò êáíïíéêÞ Ýêöñáóç `%s': %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+#, fuzzy
+msgid "No previous regular expression"
+msgstr "ÓöÜëìá óôï ôáßñéáóìá óôçí êáíïíéêÞ Ýêöñáóç `%s'"
+
+#: src/builtin.c:349
+#, c-format
+msgid "Warning: Too few arguments to built-in `%s'"
+msgstr "Ðñïåéäïðïßçóç: Ðïëý ëßãá ïñßóìáôá óôï åóùäïìçìÝíï `%s'"
+
+#: src/builtin.c:355
+#, c-format
+msgid "Warning: Excess arguments to built-in `%s' ignored"
+msgstr "Ðñïåéäïðïßçóç: ÅðéðëÝïí ïñßóìáôá óôï åóùäïìçìÝíï `%s' áãíïÞèçêáí"
+
+#: src/builtin.c:383
+#, c-format
+msgid "Non-numeric argument to built-in `%s'"
+msgstr "Ìç-áñèìçôéêü üñéóìá óôï åóùäïìçìÝíï `%s'"
+
+#: src/builtin.c:494
+msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
+msgstr ""
+"ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò ôýðïò äåäïìÝíïõ áíôéêåéìÝíïõ óôï define_macro ()"
+
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
+#, c-format
+msgid "Undefined name %s"
+msgstr "Ìç ïñéóìÝíï üíïìá %s"
+
+#: src/builtin.c:721
+msgid "INTERNAL ERROR: Builtin not found in builtin table!"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ÅóùäïìçìÝíï äå âñÝèçêå óôï ðßíáêá åóùäïìçìÝíùí!"
+
+#: src/builtin.c:729
+msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò ôýðïò äåäïìÝíïõ áíôéêåéìÝíïõ óôï m4_dumpdef ()"
+
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "Ìç ïñéóìÝíï üíïìá %s"
+
+#: src/builtin.c:842
+msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò ôýðïò óõìâüëïõ óôï m4_defn ()"
+
+#: src/builtin.c:908
+#, c-format
+msgid "Cannot open pipe to command `%s'"
+msgstr "Áäõíáìßá áíïßãìáôïò óùëÞíùóçò óôçí åíôïëÞ `%s'"
+
+#: src/builtin.c:948
+#, c-format
+msgid "Radix in eval out of range (radix = %d)"
+msgstr "Ç âÜóç óôçí áðïôßìçóç åßíáé åêôüò ïñßïõ (âÜóç = %d)"
+
+#: src/builtin.c:957
+msgid "Negative width to eval"
+msgstr "Áñíçôéêü ðëÜôïò óôçí áðïôßìçóç"
+
+#: src/builtin.c:1063
+#, c-format
+msgid "Non-numeric argument to %s"
+msgstr "Ìç áñéèìçôéêü üñéóìá óôï %s"
+
+#: src/builtin.c:1075
+#, c-format
+msgid "Cannot undivert %s"
+msgstr "Áäõíáìßá åðáíáöïñÜò ôïõ %s"
+
+#: src/builtin.c:1223
+#, c-format
+msgid "Undefined syntax code %c"
+msgstr "Ìç ïñéóìÝíïò êþäéêáò óýíôáîçò %c"
+
+#: src/builtin.c:1274 src/freeze.c:211
+#, c-format
+msgid "Cannot open %s"
+msgstr "Áäõíáìßá áíïßãìáôïò ôïõ %s"
+
+#: src/builtin.c:1483
+#, c-format
+msgid "Debugmode: bad debug flags: `%s'"
+msgstr "ÊáôÜóôáóç áðïóöáëìÜôùóçò: ëÜèïò óçìáßåò áðïóöáëìÜôùóçò: `%s'"
+
+#: src/builtin.c:1519
+#, c-format
+msgid "Cannot set error file: %s"
+msgstr "Áäõíáìßá ñýèìéóçò ôïõ áñ÷åßïõ óöáëìÜôùí: %s"
+
+#: src/builtin.c:1740
+msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
+msgstr ""
+"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Ôï \\0 èá åîáöáíéóôåß, êÜíåôå ÷ñÞóç ôïõ \\& áíôßèåôá óôéò "
+"áíôéêáôáóôÜóåéò"
+
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
+#, c-format
+msgid "Bad regular expression `%s': %s"
+msgstr "ËÜèïò êáíïíéêÞ Ýêöñáóç `%s': %s"
+
+#: src/builtin.c:1812 src/builtin.c:1885
+#, c-format
+msgid "Error matching regular expression `%s'"
+msgstr "ÓöÜëìá óôï ôáßñéáóìá óôçí êáíïíéêÞ Ýêöñáóç `%s'"
+
+#: src/debug.c:380
+msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
+msgstr ""
+"ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ÅóùäïìçìÝíï äåí âñÝèçêå óôï ðßíáêá åóùäïìçìÝíùí! "
+"(trace_pre ())"
+
+#: src/debug.c:388
+msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò ôýðïò äåäïìÝíïõ áíôéêåéìÝíïõ (trace_pre ())"
+
+#: src/eval.c:309
+#, c-format
+msgid "Bad expression in eval (missing right parenthesis): %s"
+msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç (ëåßðåé äåîéÜ ðáñÝíèåóç): %s"
+
+#: src/eval.c:315
+#, c-format
+msgid "Bad expression in eval: %s"
+msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s"
+
+#: src/eval.c:320
+#, c-format
+msgid "Bad expression in eval (bad input): %s"
+msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç (ëÜèïò åßóïäïò): %s"
+
+#: src/eval.c:325
+#, c-format
+msgid "Bad expression in eval (excess input): %s"
+msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç (õðåñâïëéêÞ åßóïäïò): %s"
+
+#: src/eval.c:330
+#, c-format
+msgid "Divide by zero in eval: %s"
+msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s"
+
+#: src/eval.c:335
+#, c-format
+msgid "Modulo by zero in eval: %s"
+msgstr "Õðüëïéðï ìå ìçäÝí óôçí áðïôßìçóç: %s"
+
+#: src/eval.c:340
+msgid "INTERNAL ERROR: Bad error code in evaluate ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò êþäéêáò óöÜëìáôïò óôçí evaluate ()"
+
+#: src/eval.c:594
+msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò ôåëåóôÞò óýãêñéóçò óôï cmp_term ()"
+
+#: src/eval.c:639
+msgid "INTERNAL ERROR: Bad shift operator in shift_term ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò ôåëåóôÞò ïëßóèçóçò óôï shift_term ()"
+
+#: src/eval.c:738
+msgid "INTERNAL ERROR: Bad operator in mult_term ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò ôåëåóôÞò óôï mult_term ()"
+
+#: src/freeze.c:119
+msgid "INTERNAL ERROR: Built-in not found in builtin table!"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ÅóùäïìçìÝíï äå âñÝèçêå óôï ðßíáêá åóùäïìçìÝíùí!"
+
+#: src/freeze.c:132
+msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
+msgstr ""
+"ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò ôýðïò äåäïìÝíïõ áíôéêåéìÝíïõ óôï freeze_one_symbol ()"
+
+#: src/freeze.c:163
+msgid "Expecting line feed in frozen file"
+msgstr "Áíáìåíüôáí `line feed' óôï ðáãùìÝíï áñ÷åßï"
+
+#: src/freeze.c:165
+#, c-format
+msgid "Expecting character `%c' in frozen file"
+msgstr "Áíáìåíüôáí ÷áñáêôÞñáò `%c' óôï ðáãùìÝíï áñ÷åßï"
+
+#: src/freeze.c:222
+msgid "Ill-formated frozen file"
+msgstr "Êáêü-ìïñöïðïéçìÝíï ðáãùìÝíï áñ÷åßï"
+
+#: src/freeze.c:277 src/freeze.c:293
+msgid "Premature end of frozen file"
+msgstr "Ðñüùñï ôÝëïò ðáãùìÝíïõ áñ÷åßïõ"
+
+#: src/freeze.c:327
+#, c-format
+msgid "`%s' from frozen file not found in builtin table!"
+msgstr "ôï `%s' áðü ðáãùìÝíï áñ÷åßï äå âñÝèçêå óôïí ðßíáêá åóùäïìçìÝíùí"
+
+#: src/input.c:318
+#, c-format
+msgid "Input reverted to %s, line %d"
+msgstr "Ç åßóïäïò åðáíáöÝñèçêå óôï %s, ãñáììÞ %d"
+
+#: src/input.c:346
+#, c-format
+msgid "Input read from %s"
+msgstr "Ç åßóïäïò áíáãíþóôçêå áðü ôï %s"
+
+#: src/input.c:506
+msgid "INTERNAL ERROR: Recursive push_string!"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: Áíáäñïìéêü push_string!"
+
+#: src/input.c:623
+msgid "INTERNAL ERROR: Bad call to init_macro_token ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ÊáêÞ êëÞóç óôï init_macro_token ()"
+
+#: src/input.c:663
+msgid "INTERNAL ERROR: Input stack botch in next_char ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: Áëëïßùóç óôïßâáò åéóüäïõ óôï next_char ()"
+
+#: src/input.c:700
+msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: Áëëïßùóç óôïßâáò åéóüäïõ óôï peek_input ()"
+
+#: src/input.c:805
+msgid "NONE"
+msgstr "ÊÁÍÅÍÁ"
+
+#: src/input.c:1199 src/input.c:1226
+msgid "ERROR: EOF in string"
+msgstr "ÓÖÁËÌÁ: EOF óôï áëöáñéèìçôéêü"
+
+#: src/m4.c:119
+msgid "ERROR: Stack overflow. (Infinite define recursion?)"
+msgstr "ÓÖÁËÌÁ: Õðåñ÷åßëçóç óôïßâáò. (ÁíáäñïìÞ áðåßñïõ âÜèïõò;)"
+
+#: src/m4.c:146
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "ÄïêéìÜóôå `%s --help' ãéá ðåñéóóüôåñç âïÞèåéá.\n"
+
+#: src/m4.c:150
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]...\n"
+msgstr "×ñÞóç: %s [ÅÐÉËÏÃÇ]... [ÁÑ×ÅÉÏ]...\n"
+
+#: src/m4.c:151
+msgid ""
+"Mandatory or optional arguments to long options are mandatory or optional\n"
+"for short options too.\n"
+"\n"
+"Operation modes:\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+" -e, --interactive unbuffer output, ignore interrupts\n"
+" -E, --fatal-warnings stop execution after first warning\n"
+" -Q, --quiet, --silent suppress some warnings for builtins\n"
+" -P, --prefix-builtins force a `m4_' prefix to all builtins\n"
+msgstr ""
+"Õðï÷ñåùôéêÜ Þ ðñïáéñåôéêÜ ïñßóìáôá óå ìáêñÝò åðéëïãÝò åßíáé õðï÷ñåùôéêÜ Þ "
+"ðñïáéñåôéêÜ\n"
+"êáé ãéá ôçò óýíôïìåò åðéëïãÝò åðßóåéò.\n"
+"\n"
+"ÊáôáóôÜóåéò ëåéôïõñãßáò:\n"
+" --help åìöÜíéóç áõôÞò ôçò âïÞèåéáò êáé Ýîïäïò\n"
+" --version åìöÜíéóç ðëçñïöïñéþí Ýêäïóçò êáé Ýîïäïò\n"
+" -e, --interactive Ýîïäïò ÷ùñßò åíôáìéåõôÞ, áãíüçóç äéáêïðþí\n"
+" -E, --fatal-warnings äéáêïðÞ åêôÝëåóçò ìåôÜ áðü ôç ðñþôç "
+"ðñïåéäïðïßçóç\n"
+" -Q, --quiet, --silent áðüêñõøç ìåñéêþí ðñïåéäïðïéÞóåùí óôá "
+"åóùäïìçìÝíá\n"
+" -P, --prefix-builtins åðéâïëÞ ðñïèÝìáôïò `m4_' óå üëá ôá "
+"åóùäïìçìÝíá\n"
+
+#: src/m4.c:164
+msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
+msgstr ""
+" -W --word-regexp=ÊÁÍÅÊÖ ÷ñÞóç ÊÁÍïíéêÞò ¸ÊÖñáóçò óôï óõíôáêôéêü ôçò "
+"ìáêñïåíôïëÞò\n"
+
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
+msgid ""
+"\n"
+"Preprocessor features:\n"
+" -I, --include=DIRECTORY search this directory second for includes\n"
+" -D, --define=NAME[=VALUE] enter NAME has having VALUE, or empty\n"
+" -U, --undefine=NAME delete builtin NAME\n"
+" -s, --synclines generate `#line NO \"FILE\"' lines\n"
+msgstr ""
+"\n"
+"×áñáêôçñéóôéêÜ ðñïåðåîåñãáóôÞ:\n"
+" -I, --include=ÊÁÔÁËÏÃÏÓ øÜîéìï ìåôÜ êáé óôï êáôÜëïãï áõôü ãéá "
+"ðåñéëáìâáíüìåíá\n"
+" -D, --define=ÏÍÏÌÁ[=ÔÉÌÇ] åéóáãùãÞ Ïͼìáôïò ìå ÔÉÌÇ, Þ êåíü\n"
+" -U, --undefine=ÏÍÏÌÁ äéáãñáöÞ åóùäïìçìÝíïõ ÏͼÌÁôïò\n"
+" -s, --synclines äçìéïõñãßá ãñáììþí `#line ÁÑÉÈÌÏÓ "
+"\"ÁÑ×ÅÉÏ\"'\n"
+
+#: src/m4.c:184
+msgid ""
+"\n"
+"Limits control:\n"
+" -G, --traditional suppress all GNU extensions\n"
+" -H, --hashsize=PRIME set symbol lookup hash table size\n"
+" -L, --nesting-limit=NUMBER change artificial nesting limit\n"
+msgstr ""
+"\n"
+"¸ëåã÷ïò ðåñéïñéóìþí:\n"
+" -G, --traditional áðüêñõøç üëùí ôùí åðåêôÜóåùí GNU\n"
+" -H, --hashsize=ÐÑÙÔÏÓ ïñéóìüò ìåãÝèïõò ðßíáêá áíáæÞôçóçò óõìâüëïõ\n"
+" -L, --nesting-limit=ÁÑÉÈÌÏÓ áëëáãÞ ôå÷íçôïý ïñßïõ öùëéáóìþí\n"
+
+#: src/m4.c:191
+msgid ""
+"\n"
+"Frozen state files:\n"
+" -F, --freeze-state=FILE produce a frozen state on FILE at end\n"
+" -R, --reload-state=FILE reload a frozen state from FILE at start\n"
+msgstr ""
+"\n"
+"Áñ÷åßá ðáãùìÝíçò êáôÜóôáóçò:\n"
+" -F, --freeze-state=ARXEIO äçìéïõñãßá ðáãùìÝíçò êáôÜóôáóçò óôï ÁÑ×ÅÉÏ "
+"óôï ôÝëïò\n"
+" -R, --reload-state=ARXEIO öüñôùìá îáíÜ ðáãùìÝíçò êáôÜóôáóçò áðü ÁÑ×ÅÉÏ "
+"óôçí åêêßíçóç\n"
+
+#: src/m4.c:197
+msgid ""
+"\n"
+"Debugging:\n"
+" -d, --debug=[FLAGS] set debug level (no FLAGS implies `aeq')\n"
+" -t, --trace=NAME trace NAME when it will be defined\n"
+" -l, --arglength=NUM restrict macro tracing size\n"
+" -o, --error-output=FILE redirect debug and trace output\n"
+msgstr ""
+"\n"
+"ÅêóöáëìÜôùóç:\n"
+" -d, --debug=[ÓÇÌÁÉÅÓ] ïñéóìüò åðéðÝäïõ åêóöáëìÜôùóçò (÷ùñßò ÓÇÌÁÉÅÓ "
+"õðïíïåß `aeq')\n"
+" -t, --trace=ONOMA áíß÷íåõóç ÏͼÌÁôïò üôáí áõôü èá ïñéóôåß\n"
+" -l, --arglength=ÁÑÉÈÌ ðåñéïñéóìüò ìåãÝèïõò áíß÷íåõóçò ìáêñïåíôïëÞò\n"
+" -o, --error-output=ÁÑ×ÅÉÏ åðáíáêáôåýèõíóç åîüäïõ åêóöáëìÜôùóçò êáé "
+"áíß÷íåõóçò\n"
+
+#: src/m4.c:205
+msgid ""
+"\n"
+"FLAGS is any of:\n"
+" t trace for all macro calls, not only traceon'ed\n"
+" a show actual arguments\n"
+" e show expansion\n"
+" q quote values as necessary, with a or e flag\n"
+" c show before collect, after collect and after call\n"
+" x add a unique macro call id, useful with c flag\n"
+" f say current input file name\n"
+" l say current input line number\n"
+" p show results of path searches\n"
+" i show changes in input files\n"
+" V shorthand for all of the above flags\n"
+msgstr ""
+"\n"
+"ÓÇÌÁÉÅÓ ìðïñåß íá åßíáé ïðïéäÞðïôå áðü:\n"
+" t áíß÷íåõóç üëùí ôùí êëÞóåùí ôùí ìáêñïåíôïëþí, ü÷é ìüíï áõôÝò ðïõ Ý÷ïõí "
+"ïñéóôåß\n"
+" a åìöÜíéóç ðñáãìáôéêþí ïñéóìÜôùí\n"
+" e åìöÜíéóç áíÜðôõîçò\n"
+" q ðáñÜèåóå ôéìÝò üðùò ÷ñåéÜæåôáé, ìå ôéò óçìáßåò a Þ e\n"
+" c åìöÜíéóç ðñéí ôç óõëëïãÞ, ìåôÜ ôç óõëëïãÞ êáé ìåôÜ ôç êëÞóç\n"
+" x ðñüóèåóç ìïíáäéêÞò ôáõôüôçôáò êëÞóçò ìáêñïåíôïëÞò, ÷ñÞóéìï ìå ôç "
+"óçìáßá c\n"
+" f åìöÜíéóç ôñÝ÷ïíôïò ïíüìáôïò áñ÷åßïõ åéóüäïõ\n"
+" l åìöÜíéóç áñéèìü ôñå÷ïýóçò ãñáììÞò åéóüäïõ\n"
+" p åìöÜíéóç áðïôåëåóìÜôùí áðü Ýñåõíåò óôï ìïíïðÜôé\n"
+" i åìöÜíéóç áëëáãþí óôá áñ÷åßá åéóüäïõ\n"
+" V óõíôïìïãñáößá ãéá üëåò ôéò ðáñáðÜíù óçìáßåò\n"
+
+#: src/m4.c:220
+msgid ""
+"\n"
+"If no FILE or if FILE is `-', standard input is read.\n"
+msgstr ""
+"\n"
+"×ùñßò ÁÑ×ÅÉÏ, Þ üôáí ôï áñ÷åßï åßíáé ôï -, áíÜãíùóç áðü ôçí êáíïíéêÞ "
+"åßóïäï.\n"
+
+#: src/m4.c:225
+msgid ""
+"\n"
+"Report bugs to <bug-m4@gnu.org>.\n"
+msgstr ""
+"\n"
+"ÁíáöÝñáôå óöÜëìáôá óôï <bug-m4@gnu.org>.\n"
+
+#: src/m4.c:414
+#, c-format
+msgid "Bad debug flags: `%s'"
+msgstr "ËÜèïò óçìáßåò åêóöáëìÜôùóçò: `%s'"
+
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
+msgstr ""
+
+#: src/m4.c:460
+msgid " (options:"
+msgstr " (åðéëïãÝò:"
+
+#: src/m4.c:542
+msgid "INTERNAL ERROR: Bad code in deferred arguments"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò êùäéêüò óôá áíáöåñüìåíá ïñßóìáôá"
+
+#: src/macro.c:97
+msgid "INTERNAL ERROR: Bad token type in expand_token ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò åßäïò áíôéêåéìÝíïõ óôï expand_token ()"
+
+#: src/macro.c:163
+msgid "ERROR: EOF in argument list"
+msgstr "ÓÖÁËÌÁ: EOF óôç ëßóôá ïñéóìÜôùí"
+
+#: src/macro.c:182
+msgid "INTERNAL ERROR: Bad token type in expand_argument ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò åßäïò áíôéêåéìÝíïõ óôï expand_argument ()"
+
+#: src/macro.c:259
+msgid "INTERNAL ERROR: Bad symbol type in call_macro ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò åßäïò óõìâüëïõ óôï call_macro ()"
+
+#: src/macro.c:288
+#, c-format
+msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
+msgstr ""
+"ÓÖÁËÌÁ: Ôï üñéï áíáäñïìÞò %d îåðåñÜóôçêå, êÜíôå ÷ñÞóç ôïõ -L<N> ãéá íá ôï "
+"áëëÜîåôå"
+
+#: src/module.c:123
+#, fuzzy, c-format
+msgid "ERROR: failed to initialise modules: %s"
+msgstr "ÓÖÁËÌÁ: áäõíáìßá åýñåóçò Üñèñùóçò `%s': %s"
+
+#: src/module.c:221
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr "ÓÖÁËÌÁ: áäõíáìßá åýñåóçò Üñèñùóçò `%s'"
+
+#: src/module.c:224
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr "ÓÖÁËÌÁ: áäõíáìßá åýñåóçò Üñèñùóçò `%s': %s"
+
+#: src/module.c:274
+#, fuzzy
+msgid "ERROR: cannot close modules"
+msgstr "ÓÖÁËÌÁ: áäõíáìßá åýñåóçò Üñèñùóçò `%s'"
+
+#: src/module.c:277
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close modules: %s"
+msgstr "ÓÖÁËÌÁ: áäõíáìßá åýñåóçò Üñèñùóçò `%s': %s"
+
+#: src/module.c:284
+#, fuzzy, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr "ÓÖÁËÌÁ: áäõíáìßá åýñåóçò Üñèñùóçò `%s'"
+
+#: src/module.c:288
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr "ÓÖÁËÌÁ: áäõíáìßá åýñåóçò Üñèñùóçò `%s': %s"
+
+#: src/output.c:262
+msgid "ERROR: Cannot create temporary file for diversion"
+msgstr "ÓÖÁËÌÁ: Áäõíáìßá äçìéïõñãßáò ðñïóùñéíïý áñ÷åßïõ ãéá áëëáãÞ"
+
+#: src/output.c:272
+msgid "ERROR: Cannot flush diversion to temporary file"
+msgstr "ÓÖÁËÌÁ: Áäõíáìßá áðïóôïëÞò áëëáãÞò óôï ðñïóùñéíü áñ÷åßï"
+
+#: src/output.c:356
+msgid "ERROR: Copying inserted file"
+msgstr "ÓÖÁËÌÁ: ÁíôéãñáãÞ åéóåñ÷ïìÝíïõ áñ÷åßïõ"
+
+#: src/output.c:537
+msgid "ERROR: Reading inserted file"
+msgstr "ÓÖÁËÌÁ: ÁíÜãíùóç åéóåñ÷ïìÝíïõ áñ÷åßïõ"
+
+#: src/output.c:636
+msgid "Cannot stat diversion"
+msgstr "Áäõíáìßá ðñïóðÝëáóçò ôïõ áñ÷åßïõ ôçò áëëáãÞò"
+
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
+#: src/path.c:157
+#, c-format
+msgid "Path search for `%s' found `%s'"
+msgstr "Ï Ýëåã÷ïò ìïíïðáôéïý ãéá ôï `%s' âñÞêå `%s'"
+
+#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
+#. if the stack limit has not been reached.
+#: src/stackovf.c:175
+msgid "VMEM limit exceeded?\n"
+msgstr "Ôï üñéï ôçò åéêïíéêÞ ìíÞìçò åîáíôëÞèçêå;\n"
+
+#: src/stackovf.c:197
+msgid ""
+"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
+"occurred, or there is a bug in "
+msgstr ""
+"Åíôïðßóôçêå ðáñÜâáóç ôùí ïñßùí ìíÞìçò (SIGSEGV). Åßôå Ýãéíå õðÝñâáóç "
+"óôïßâáò\n"
+"åßôå õðÜñ÷åé óöÜëìá ðñïãñÜììáôïò óôï "
+
+#: src/stackovf.c:202
+msgid ". Check for possible infinite recursion.\n"
+msgstr ". ÅëÝãîáôå ãéá ðéèáíÞ åð'Üðåéñï áíáäñïìÞ.\n"
+
+#: src/symtab.c:190
+msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()"
+msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ÁíôéêáíïíéêÞ êáôÜóôáóç óôï symbol_lookup ()"
+
+#: src/symtab.c:243
+#, c-format
+msgid "Name `%s' is unknown\n"
+msgstr "Ôï üíïìá `%s' åßíáé Üãíùóôï\n"
+
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "Ìç ïñéóìÝíç ìáêñïåíôïëÞ `%s'"
+
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "Ç Ýñåõíá Üñèñùóçò ãéá `%s' âñÞêå `%s'"
diff --git a/po/fr.gmo b/po/fr.gmo
index 3f314817..64ca06ae 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 8e1f50b2..7a489a29 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: m4 1.4d\n"
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
"PO-Revision-Date: 1998-05-23 11:53+02:00\n"
"Last-Translator: Erick Branderhorst <Erick.Branderhorst@asml.nl>\n"
"Language-Team: dutch <nl@li.org>\n"
@@ -15,113 +15,253 @@ msgstr ""
"Content-Type: text/plain; charset=\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:337
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "Mauvaise expression régulière «%s»: %s"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "Erreur d'appariement pour l'expressio régulière «%s»"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "Fin prématurée de fichier figé"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "Mauvaise expression régulière «%s»: %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+#, fuzzy
+msgid "No previous regular expression"
+msgstr "Erreur d'appariement pour l'expressio régulière «%s»"
+
+#: src/builtin.c:349
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Attention: Trop peu d'arguments pour «%s» prédéfini"
-#: src/builtin.c:343
+#: src/builtin.c:355
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr "Attention: Les arguments superflus pour «%s» prédéfini sont ignorés"
-#: src/builtin.c:371
+#: src/builtin.c:383
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Argument non-numérique pour «%s» prédéfini"
-#: src/builtin.c:482
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "ERREUR INTERNE: Mauvais type de lexème dans define_macro ()"
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
#, c-format
msgid "Undefined name %s"
msgstr "Nom «%s» non-défini"
-#: src/builtin.c:705
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "ERREUR INTERNE: Prédéfini introuvable dans la table des prédéfinis!"
-#: src/builtin.c:713
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "ERREUR INTERNE: Mauvais type de données pour lexème dans m4_dumpdef ()"
-#: src/builtin.c:764
-#, c-format
-msgid "Undefined macro `%s'"
-msgstr "Macro «%s» non-défini"
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "Nom «%s» non-défini"
-#: src/builtin.c:802
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "ERREUR INTERNE: Mauvais type de symbole dans m4_defn ()"
-#: src/builtin.c:868
+#: src/builtin.c:908
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Incapable d'ouvrir un «pipe» pour la commande «%s»"
-#: src/builtin.c:908
+#: src/builtin.c:948
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Base hors intervalle dans «eval» (base = %d)"
-#: src/builtin.c:917
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr "Largeur négative dans «eval»"
-#: src/builtin.c:1023
+#: src/builtin.c:1063
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Argument non-numérique pour %s"
-#: src/builtin.c:1035
+#: src/builtin.c:1075
#, c-format
msgid "Cannot undivert %s"
msgstr "Incapble de ramener la diversion %s"
-#: src/builtin.c:1183
+#: src/builtin.c:1223
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "Nom «%s» non-défini"
-#: src/builtin.c:1234 src/freeze.c:207
+#: src/builtin.c:1274 src/freeze.c:211
#, c-format
msgid "Cannot open %s"
msgstr "Incapable d'ouvrir %s"
-#: src/builtin.c:1443
+#: src/builtin.c:1483
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Debugmode: mauvais indicateurs de mise-au-point: «%s»"
-#: src/builtin.c:1479
+#: src/builtin.c:1519
#, c-format
msgid "Cannot set error file: %s"
msgstr "Incapable de préparer le fichier d'erreurs: %s"
-#: src/builtin.c:1696
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr ""
"ATTENTION: \\\\0 disparaîtra, utiliser \\\\& plutôt pour les remplacements"
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Mauvaise expression régulière «%s»: %s"
-#: src/builtin.c:1768 src/builtin.c:1841
+#: src/builtin.c:1812 src/builtin.c:1885
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Erreur d'appariement pour l'expressio régulière «%s»"
-#: src/debug.c:379
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr ""
"ERREUR INTERNE: Prédéfini introuvable dans la table des prédéfinis! "
"(trace_pre ())"
-#: src/debug.c:387
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr "ERREUR INTERNE: Mauvais type de donnée pour de lexème (trace_pre ())"
@@ -171,33 +311,33 @@ msgstr "ERREUR INTERNE: Mauvais opérateur de décalage dans shift_term ()"
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr "ERREUR INTERNE: Mauvais opérateur dans mult_term ()"
-#: src/freeze.c:115
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr "ERREUR INTERNE: Prédéfini introuvable dans la table des prédéfinis!"
-#: src/freeze.c:128
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr ""
"ERREUR INTERNE: Mauvais type de donnée pour lexème dans freeze_one_symbol ()"
-#: src/freeze.c:159
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
msgstr "Fin-de-ligne attendue du fichier figé"
-#: src/freeze.c:161
+#: src/freeze.c:165
#, c-format
msgid "Expecting character `%c' in frozen file"
msgstr "Caractère «%c» attendu du fichier figé"
-#: src/freeze.c:218
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr "Fichier figé difforme"
-#: src/freeze.c:273 src/freeze.c:289
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr "Fin prématurée de fichier figé"
-#: src/freeze.c:323
+#: src/freeze.c:327
#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr ""
@@ -229,29 +369,29 @@ msgstr "ERREUR INTERNE: Pile d'entrée douteuse dans next_char ()"
msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
msgstr "ERREUR INTERNE: Pile d'entrée douteuse dans peek_input ()"
-#: src/input.c:803
+#: src/input.c:805
msgid "NONE"
msgstr "AUCUN"
-#: src/input.c:1197 src/input.c:1224
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr "ERREUR: Fin-de-fichier dans la chaîne"
-#: src/m4.c:117
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "ERREUR INTERNE: Mauvais type de lexème dans expand_token ()"
-#: src/m4.c:144
+#: src/m4.c:146
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Pour plus d'information, essayez «%s --help».\\n\n"
-#: src/m4.c:148
+#: src/m4.c:150
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Usage: %s [OPTION]... [FICHIER]...\\n\n"
-#: src/m4.c:149
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -277,12 +417,20 @@ msgstr ""
" -Q, --quiet, --silent inhiber certains diagnostics prédéfinis\n"
" -P, --prefix-builtins préfixer tous les prédéfinis par «m4_»\n"
-#: src/m4.c:162
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
" -W, --word-regexp=REGEXP utiliser REGEXP pour les noms de macro\n"
-#: src/m4.c:166
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
#, fuzzy
msgid ""
"\n"
@@ -300,7 +448,7 @@ msgstr ""
" -s, --synclines engendrer des lignes «#line NNN "
"\\\"FICHIER\\\"»\n"
-#: src/m4.c:174
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -315,7 +463,7 @@ msgstr ""
" -L, --nesting-limit=NOMBRE modifier la limite artificielle "
"d'imbrication\n"
-#: src/m4.c:181
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -327,7 +475,7 @@ msgstr ""
" -F, --freeze-state=FICHIER produire un FICHIER figé à la fin\n"
" -R, --reload-state=FICHIER recharger un FICHIER figé au départ\n"
-#: src/m4.c:187
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -345,7 +493,7 @@ msgstr ""
" -o, --error-output=FICHIER rediriger la sortie de trace et "
"mise-au-point\n"
-#: src/m4.c:195
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -375,7 +523,7 @@ msgstr ""
" i afficher les modifications dans les fichiers d'entrée\n"
" V abbréviation commode pour toutes les options précédentes à la fois\n"
-#: src/m4.c:210
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -383,22 +531,32 @@ msgstr ""
"\n"
"Si aucun FICHIER ou si FICHIER vaut «-», lit l'entrée standard.\n"
-#: src/m4.c:215
+#: src/m4.c:225
msgid ""
"\n"
"Report bugs to <bug-m4@gnu.org>.\n"
msgstr ""
-#: src/m4.c:388
+#: src/m4.c:414
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "Mauvais indicateurs de mise-au-point: «%s»"
-#: src/m4.c:417
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
+msgstr ""
+
+#: src/m4.c:460
msgid " (options:"
msgstr ""
-#: src/m4.c:500
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "ERREUR INTERNE: Mauvais code dans les arguments différés"
@@ -424,41 +582,64 @@ msgstr "ERREUR INTERNE: Mauvais type de symbole dans call_macro ()"
msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
msgstr "ERREUR: Limite de récursion %d dépassée, la changer par -L<N>"
-#: src/module.c:312
-#, fuzzy, c-format
-msgid "Module search for `%s' found `%s'"
-msgstr "La fouille du chemin pour «%s» trouve «%s»"
+#: src/module.c:123
+#, c-format
+msgid "ERROR: failed to initialise modules: %s"
+msgstr ""
-#: src/module.c:349
+#: src/module.c:221
#, c-format
-msgid "ERROR: cannot find module `%s': %s"
+msgid "ERROR: cannot find module: `%s'"
msgstr ""
-#: src/module.c:353
+#: src/module.c:224
#, c-format
-msgid "ERROR: cannot find module `%s'"
+msgid "ERROR: cannot find module: `%s': %s"
msgstr ""
-#: src/output.c:198
+#: src/module.c:274
+msgid "ERROR: cannot close modules"
+msgstr ""
+
+#: src/module.c:277
+#, c-format
+msgid "ERROR: cannot cannot close modules: %s"
+msgstr ""
+
+#: src/module.c:284
+#, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr ""
+
+#: src/module.c:288
+#, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr ""
+
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
msgstr "ERREUR: Incapable de créer un fichier temporaire pour la diversion"
-#: src/output.c:208
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
msgstr "ERREUR: Incapable de vider la diversion sur un fichier temporaire"
-#: src/output.c:292
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr "ERREUR: Pendant la copie du fichier inséré"
-#: src/output.c:473
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr "ERREUR: Pendant la lecture d'un fichier inséré"
-#: src/output.c:572
+#: src/output.c:636
msgid "Cannot stat diversion"
msgstr "Incapable d'opérer «stat» pour la diversion"
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
#: src/path.c:157
#, c-format
msgid "Path search for `%s' found `%s'"
@@ -466,11 +647,11 @@ msgstr "La fouille du chemin pour «%s» trouve «%s»"
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr "Limit VMEM outrepassée?\n"
-#: src/stackovf.c:190
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
@@ -478,7 +659,7 @@ msgstr ""
"Les violations de mémoire sont détectées (SIGSEGV). Ou bien la pile a\n"
"débordé, ou bien il y a un problème dans "
-#: src/stackovf.c:195
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ". Vérifier une récursion hors contrôle.\n"
@@ -491,6 +672,13 @@ msgstr "ERREUR INTERNE: Mode illégal dans symbol_lookup ()"
msgid "Name `%s' is unknown\n"
msgstr "Le nom «%s» est inconnu\n"
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "Macro «%s» non-défini"
+
+#, fuzzy
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "La fouille du chemin pour «%s» trouve «%s»"
+
#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
#~ msgstr "ERREUR INTERNE: Pile d'entrée douteuse dans pop_input ()"
diff --git a/po/it.gmo b/po/it.gmo
index 6f353644..e43acac1 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 96911fcf..39bb583f 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
"Version: \n"
"Date: 1995-06-30 21:00:12+0200\n"
"From: Ulrich Drepper <drepper@myware>\n"
@@ -12,112 +12,252 @@ msgstr ""
"Files: ../lib/regex.c ../lib/xmalloc.c\n"
"Update on Fri Jun 30 21:00:27 MET 1995 \n"
-#: src/builtin.c:337
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "Espressione regolare errata `%s': %s"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "Errore nel confronto dell' espressione regolare `%s'"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "Fine prematura dell' archivio congelato"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "Espressione regolare errata `%s': %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+#, fuzzy
+msgid "No previous regular expression"
+msgstr "Errore nel confronto dell' espressione regolare `%s'"
+
+#: src/builtin.c:349
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Attenzione: Troppo pochi argomenti per la funzione predefinita `%s'"
-#: src/builtin.c:343
+#: src/builtin.c:355
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
"Attenzione: Gli argumenti in eccesso alla funzione predefinita `%s' sono "
"ignorati"
-#: src/builtin.c:371
+#: src/builtin.c:383
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Argumento non numerico a funzione predefinita `%s'"
-#: src/builtin.c:482
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "ERRORE INTERNO: Tipo dato `token' errato in define_macro ()"
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
#, c-format
msgid "Undefined name %s"
msgstr "Nome `%s' non definito"
-#: src/builtin.c:705
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr ""
-#: src/builtin.c:713
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr ""
-#: src/builtin.c:764
-#, c-format
-msgid "Undefined macro `%s'"
-msgstr "Macro `%s' non definita"
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "Nome `%s' non definito"
-#: src/builtin.c:802
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "ERRORE INTERNO: Tipo simbolo errato in m4_defn ()"
-#: src/builtin.c:868
+#: src/builtin.c:908
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Impossibile aprire una `pipe' per il comando `%s'"
-#: src/builtin.c:908
+#: src/builtin.c:948
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Base fuori intervallo in `eval' (base = %d)"
-#: src/builtin.c:917
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr "Larghezza negativa in `eval'"
-#: src/builtin.c:1023
+#: src/builtin.c:1063
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Argumento non numerico a %s"
-#: src/builtin.c:1035
+#: src/builtin.c:1075
#, c-format
msgid "Cannot undivert %s"
msgstr "Impossibile ripristinare la deviazione %s"
-#: src/builtin.c:1183
+#: src/builtin.c:1223
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "Nome `%s' non definito"
-#: src/builtin.c:1234 src/freeze.c:207
+#: src/builtin.c:1274 src/freeze.c:211
#, c-format
msgid "Cannot open %s"
msgstr "Impossibile aprire %s"
-#: src/builtin.c:1443
+#: src/builtin.c:1483
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Modalità di debug: indicatori di debug errati: `%s'"
-#: src/builtin.c:1479
+#: src/builtin.c:1519
#, c-format
msgid "Cannot set error file: %s"
msgstr "Impossibile aprire l' archivio di errore: %s"
-#: src/builtin.c:1696
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr ""
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Espressione regolare errata `%s': %s"
-#: src/builtin.c:1768 src/builtin.c:1841
+#: src/builtin.c:1812 src/builtin.c:1885
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Errore nel confronto dell' espressione regolare `%s'"
-#: src/debug.c:379
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr ""
-#: src/debug.c:387
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr ""
@@ -167,32 +307,32 @@ msgstr ""
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr "ERRORE INTERNO: Operatore errato in mult_term ()"
-#: src/freeze.c:115
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr ""
-#: src/freeze.c:128
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr ""
-#: src/freeze.c:159
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
msgstr "Atteso il carattere di fine linea in archivio congelato"
-#: src/freeze.c:161
+#: src/freeze.c:165
#, c-format
msgid "Expecting character `%c' in frozen file"
msgstr "Atteso il carattere `%c' in archivio congelato"
-#: src/freeze.c:218
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr "Archivio congelato malformato"
-#: src/freeze.c:273 src/freeze.c:289
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr "Fine prematura dell' archivio congelato"
-#: src/freeze.c:323
+#: src/freeze.c:327
#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr ""
@@ -223,29 +363,29 @@ msgstr "ERRORE INTERNO: Stack di ingresso corrotto in next_char ()"
msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
msgstr "ERRORE INTERNO: Stack di ingresso corrotto in peek_input ()"
-#: src/input.c:803
+#: src/input.c:805
msgid "NONE"
msgstr "NESSUNO"
-#: src/input.c:1197 src/input.c:1224
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr "ERRORE: Fine prematura di una stringa"
-#: src/m4.c:117
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "ERRORE: Stack overflow. (Ricorsione infinita in `define'?)"
-#: src/m4.c:144
+#: src/m4.c:146
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Per ulteriori informazioni provare `%s --help'.\n"
-#: src/m4.c:148
+#: src/m4.c:150
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Usage: %s [OPZIONE]... [ARCHIVIO]...\n"
-#: src/m4.c:149
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -259,11 +399,19 @@ msgid ""
" -P, --prefix-builtins force a `m4_' prefix to all builtins\n"
msgstr ""
-#: src/m4.c:162
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
-#: src/m4.c:166
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
msgid ""
"\n"
"Preprocessor features:\n"
@@ -273,7 +421,7 @@ msgid ""
" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
-#: src/m4.c:174
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -282,7 +430,7 @@ msgid ""
" -L, --nesting-limit=NUMBER change artificial nesting limit\n"
msgstr ""
-#: src/m4.c:181
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -290,7 +438,7 @@ msgid ""
" -R, --reload-state=FILE reload a frozen state from FILE at start\n"
msgstr ""
-#: src/m4.c:187
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -300,7 +448,7 @@ msgid ""
" -o, --error-output=FILE redirect debug and trace output\n"
msgstr ""
-#: src/m4.c:195
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -317,28 +465,38 @@ msgid ""
" V shorthand for all of the above flags\n"
msgstr ""
-#: src/m4.c:210
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
msgstr ""
-#: src/m4.c:215
+#: src/m4.c:225
msgid ""
"\n"
"Report bugs to <bug-m4@gnu.org>.\n"
msgstr ""
-#: src/m4.c:388
+#: src/m4.c:414
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "Indicatori di debug errati: `%s'"
-#: src/m4.c:417
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
+msgstr ""
+
+#: src/m4.c:460
msgid " (options:"
msgstr ""
-#: src/m4.c:500
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "ERRORE INTERNO: Codice errato in argomenti differiti"
@@ -363,41 +521,64 @@ msgstr "ERRORE INTERNO: Tipo simbolo errato in call_macro ()"
msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
msgstr ""
-#: src/module.c:312
-#, fuzzy, c-format
-msgid "Module search for `%s' found `%s'"
-msgstr "La ricerca del percorso per `%s' ha trovato `%s'"
+#: src/module.c:123
+#, c-format
+msgid "ERROR: failed to initialise modules: %s"
+msgstr ""
+
+#: src/module.c:221
+#, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr ""
-#: src/module.c:349
+#: src/module.c:224
#, c-format
-msgid "ERROR: cannot find module `%s': %s"
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr ""
+
+#: src/module.c:274
+msgid "ERROR: cannot close modules"
msgstr ""
-#: src/module.c:353
+#: src/module.c:277
#, c-format
-msgid "ERROR: cannot find module `%s'"
+msgid "ERROR: cannot cannot close modules: %s"
msgstr ""
-#: src/output.c:198
+#: src/module.c:284
+#, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr ""
+
+#: src/module.c:288
+#, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr ""
+
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
msgstr "ERRORE: Impossibile creare un archivio temporaneo per la deviazione"
-#: src/output.c:208
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
msgstr "ERRORE: Impossibile terminare la deviazione su file temporaneo"
-#: src/output.c:292
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr "ERRORE: Copiando archivio inserito"
-#: src/output.c:473
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr "ERRORE: Leggendo archivio inserito"
-#: src/output.c:572
+#: src/output.c:636
msgid "Cannot stat diversion"
msgstr "Impossibile effettuare la `stat' per la deviazione"
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
#: src/path.c:157
#, c-format
msgid "Path search for `%s' found `%s'"
@@ -405,17 +586,17 @@ msgstr "La ricerca del percorso per `%s' ha trovato `%s'"
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr "Limite di VMEM superato?\n"
-#: src/stackovf.c:190
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
msgstr ""
-#: src/stackovf.c:195
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ". Controllare una possibile ricorsione infinita.\n"
@@ -428,6 +609,13 @@ msgstr "ERRORE INTERNO: Modo illegale in symbol_lookup ()"
msgid "Name `%s' is unknown\n"
msgstr "Il nome `%s' è sconosciuto\n"
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "Macro `%s' non definita"
+
+#, fuzzy
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "La ricerca del percorso per `%s' ha trovato `%s'"
+
#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
#~ msgstr "ERRORE INTERNO: Stack di ingresso corrotto in pop_input ()"
diff --git a/po/ja.gmo b/po/ja.gmo
index 4b0747eb..23bb516f 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index bdcf6f6d..274ead60 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU m4 1.4.3\n"
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
"PO-Revision-Date: 1996-03-28 11:52 EST\n"
"Last-Translator: Akiko Matsushita <matusita@sra.co.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
@@ -13,112 +13,252 @@ msgstr ""
"Content-Type: text/plain; charset=EUC\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:337
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: `%s' ¤ÏÉÔÌÀÎƤʥª¥×¥·¥ç¥ó̾¤Ç¤¹¡£\n"
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `--%s' ¤Ï°ú¿ô¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `%c%s' ¤Ï°ú¿ô¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï°ú¿ô¤òɬÍפȤ·¤Þ¤¹¡£\n"
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: --%s ¤Ïǧ¼±¤µ¤ì¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n"
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: %c%s ¤Ïǧ¼±¤µ¤ì¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: %c ¤ÏÉÔÀµ¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n"
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: %c ¤Ï̵¸ú¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: %c ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹¡£\n"
+
+#: lib/getopt.c:864
+#, fuzzy, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `%s' ¤ÏÉÔÌÀÎƤʥª¥×¥·¥ç¥ó̾¤Ç¤¹¡£\n"
+
+#: lib/getopt.c:882
+#, fuzzy, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `--%s' ¤Ï°ú¿ô¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: lib/obstack.c:471
+#, fuzzy
+msgid "memory exhausted"
+msgstr "¥á¥â¥ê¤¬»Ä¤Ã¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "Àµµ¬É½¸½¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr "¥á¥â¥ê¤¬»Ä¤Ã¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "Àµµ¬É½¸½¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "Àµµ¬É½¸½¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "`%s' : %s ¤Ï¡¢ÉÔÀµ¤ÊÀµµ¬É½¸½¤Ç¤¹¡£"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+msgid "No previous regular expression"
+msgstr "Àµµ¬É½¸½¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: src/builtin.c:349
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "·Ù¹ð¡§%s ¤Ø¤Î°ú¿ô¤¬ÉÔ­¤·¤Æ¤¤¤Þ¤¹¡£"
-#: src/builtin.c:343
+#: src/builtin.c:355
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr "·Ù¹ð¡§%s ¤Ø¤Î°ú¿ô¤¬Â¿²á¤®¤Þ¤¹ (Ķ¤¨¤¿Ê¬¤Ï̵»ë¤µ¤ì¤Þ¤¹)¡£"
-#: src/builtin.c:371
+#: src/builtin.c:383
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "`%s' ¤Ë¿ô»ú¤Ç¤Ê¤¤°ú¿ô¤¬ÅϤµ¤ì¤Æ¤¤¤Þ¤¹¡£"
-#: src/builtin.c:482
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô define_macro () Æâ¤Î¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£"
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
#, c-format
msgid "Undefined name %s"
msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-#: src/builtin.c:705
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "ÆâÉô¥¨¥é¡¼¡§`Built-in' ¤È¤¤¤¦¥Ó¥ë¥È¥¤¥ó¥Þ¥¯¥í¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
-#: src/builtin.c:713
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô m4_dumpdef () ¤Î¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£"
-#: src/builtin.c:764
-#, c-format
-msgid "Undefined macro `%s'"
-msgstr "¥Þ¥¯¥í `%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-#: src/builtin.c:802
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô m4_defn () Æâ¤Î¥·¥ó¥Ü¥ë¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£"
-#: src/builtin.c:868
+#: src/builtin.c:908
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "¥³¥Þ¥ó¥É `%s' ¤Ø¤Î¥Ñ¥¤¥×¤¬¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó¡£"
-#: src/builtin.c:908
+#: src/builtin.c:948
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "eval ¤Î´ð¿ô ( %d ¿ÊË¡) ¤Î·å¿ô¤¬µöÍÆÈϰϳ°¤Ë¤¢¤ê¤Þ¤¹¡£"
-#: src/builtin.c:917
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr "eval ¤Î½ÐÎÏ·å¿ô¤¬Éé¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
-#: src/builtin.c:1023
+#: src/builtin.c:1063
#, c-format
msgid "Non-numeric argument to %s"
msgstr "`%s' ¤Ë¿ô»ú¤Ç¤Ê¤¤°ú¿ô¤¬ÅϤµ¤ì¤Æ¤¤¤Þ¤¹¡£"
-#: src/builtin.c:1035
+#: src/builtin.c:1075
#, c-format
msgid "Cannot undivert %s"
msgstr "`%s' ¤ò undivert ¤Ç¤­¤Þ¤»¤ó¡£"
-#: src/builtin.c:1183
+#: src/builtin.c:1223
#, fuzzy, c-format
msgid "Undefined syntax code %c"
msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-#: src/builtin.c:1234 src/freeze.c:207
+#: src/builtin.c:1274 src/freeze.c:211
#, c-format
msgid "Cannot open %s"
msgstr "`%s' ¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó¡£"
-#: src/builtin.c:1443
+#: src/builtin.c:1483
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "debugmode ¥Þ¥¯¥í¤Ë¤ª¤¤¤Æ %s ¤ÏÉÔÀµ¤Ê¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£"
-#: src/builtin.c:1479
+#: src/builtin.c:1519
#, c-format
msgid "Cannot set error file: %s"
msgstr "`%s' ¤ò¥¨¥é¡¼¥í¥°¥Õ¥¡¥¤¥ë¤È¤·¤Æ¥»¥Ã¥È¤Ç¤­¤Þ¤»¤ó¡£"
-#: src/builtin.c:1696
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "·Ù¹ð¡§\\0 ¤Ïµì¼°¤ÎÍÑË¡¤Ç¤¹¡£\\& ¤òÂå¤ï¤ê¤Ë»È¤Ã¤Æ²¼¤µ¤¤¡£"
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "`%s' : %s ¤Ï¡¢ÉÔÀµ¤ÊÀµµ¬É½¸½¤Ç¤¹¡£"
-#: src/builtin.c:1768 src/builtin.c:1841
+#: src/builtin.c:1812 src/builtin.c:1885
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Àµµ¬É½¸½ %s ¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"
-#: src/debug.c:379
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr ""
"ÆâÉô¥¨¥é¡¼¡§`Builtin' ¤È¤¤¤¦¥Ó¥ë¥È¥¤¥ó¥Þ¥¯¥í¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
" (´Ø¿ô trace_pre () ¤¬¤³¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤Æ¤¤¤Þ¤¹¡£) "
-#: src/debug.c:387
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr ""
"ÆâÉô¥¨¥é¡¼¡§¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£\n"
@@ -172,33 +312,33 @@ msgstr "ÆâÉô¥¨¥é¡¼¡§shift_term () ¤Î¥·¥Õ¥È±é»»»Ò¤¬ÉÔÀµ¤Ç¤¹¡£"
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô mult_term () Æâ¤Î±é»»»Ò¤¬ÉÔÀµ¤Ç¤¹¡£"
-#: src/freeze.c:115
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr "ÆâÉô¥¨¥é¡¼¡§`Built-in' ¤È¤¤¤¦¥Ó¥ë¥È¥¤¥ó¥Þ¥¯¥í¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
-#: src/freeze.c:128
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr ""
"ÆâÉô¥¨¥é¡¼¡§´Ø¿ô freeze_one_symbol () ¤Î¥È¡¼¥¯¥ó¥Ç¡¼¥¿¤Î¼ïÎबÉÔÀµ¤Ç¤¹¡£"
-#: src/freeze.c:159
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
msgstr "Åà·ë¥Õ¥¡¥¤¥ëÆâ¤Ç²þ¹Ô¥³¡¼¥É¤ò´üÂÔ¤·¤Æ¤¤¤Þ¤¹¡£"
-#: src/freeze.c:161
+#: src/freeze.c:165
#, c-format
msgid "Expecting character `%c' in frozen file"
msgstr "Åà·ë¥Õ¥¡¥¤¥ëÆâ¤Çʸ»ú `%c' ¤ò´üÂÔ¤·¤Æ¤¤¤Þ¤¹¡£"
-#: src/freeze.c:218
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr "ÆâÉô¥¨¥é¡¼¡§Åà·ë¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤¬ÉÔÀµ¤Ç¤¹¡£"
-#: src/freeze.c:273 src/freeze.c:289
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr "Åà·ë¥Õ¥¡¥¤¥ë¤Î EOF ¤¬Á᤯Íè²á¤®¤Æ¤¤¤Þ¤¹¡£"
-#: src/freeze.c:323
+#: src/freeze.c:327
#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr "Åà·ë¥Õ¥¡¥¤¥ë¤Î %s ¤Ï¥Ó¥ë¥È¥¤¥ó¥³¥Þ¥ó¥É¤Î¥Æ¡¼¥Ö¥ë¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
@@ -229,31 +369,31 @@ msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô next_char () Æâ¤Ç¥¹¥¿¥Ã¥¯¤ÎÆþÎϤ˼ºÇÔ¤·¤Æ¤¤¤Þ¤¹¡£"
msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô peek_input () Æâ¤Ç¥¹¥¿¥Ã¥¯¤ÎÆþÎϤ˼ºÇÔ¤·¤Æ¤¤¤Þ¤¹¡£"
-#: src/input.c:803
+#: src/input.c:805
msgid "NONE"
msgstr "¤Ê¤·"
-#: src/input.c:1197 src/input.c:1224
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr "¥¨¥é¡¼: ʸ»úÎóÆâ¤Ë¥Õ¥¡¥¤¥ë¤Î½ªÃ¼µ­¹æ¤¬¤¢¤ê¤Þ¤¹¡£"
-#: src/m4.c:117
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr ""
"¥¨¥é¡¼: ¥¹¥¿¥Ã¥¯¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤Æ¤¤¤Þ¤¹¡£\n"
" (̵¸Â¤ËºÆµ¢ÅªÄêµÁ¤ò¤·¤Æ¤¤¤Þ¤»¤ó¤«¡©)"
-#: src/m4.c:144
+#: src/m4.c:146
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "¾Ü¤·¤¯¤Ï `%s --help' ¤Î½ÐÎϤò¸æÍ÷²¼¤µ¤¤¡£\n"
-#: src/m4.c:148
+#: src/m4.c:150
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "»ÈÍÑÊýË¡: %s [¥ª¥×¥·¥ç¥ó]...[¥Õ¥¡¥¤¥ë̾]\n"
-#: src/m4.c:149
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -279,13 +419,21 @@ msgstr ""
" -P, --prefix-builtins Á´¤Æ¤Î¥Ó¥ë¥È¥¤¥ó¥Þ¥¯¥í¤Ë `m4_' ¤È¤¤¤¦ÀÜƬ¼­¤ò "
" ¶¯À©Åª¤ËÄɲä·¤Þ¤¹¡£\n"
-#: src/m4.c:162
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
"-W, --word-regexp=REGEXP ¥Þ¥¯¥í̾¤Î¥·¥ó¥¿¥Ã¥¯¥¹¤Ë REGEXP ¤ò "
" Àµµ¬É½¸½¤È¤·¤ÆÍѤ¤¤Þ¤¹¡£\n"
-#: src/m4.c:166
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
#, fuzzy
msgid ""
"\n"
@@ -305,7 +453,7 @@ msgstr ""
" -U, --undefine=NAME NAME ¤ÎÄêµÁ¤ò¼è¤ê¾Ã¤·¤Þ¤¹¡£\n"
" -s, --synclines ¹ÔÈÖ¹æ¤È¥Õ¥¡¥¤¥ë̾¤Î¹Ô¤òÀ¸À®¤·¤Þ¤¹¡£\n"
-#: src/m4.c:174
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -321,7 +469,7 @@ msgstr ""
" -L, --nesting-limit=NUNBER "
"¥Þ¥¯¥í¤Î¥Í¥¹¥È²ó¿ô¤Î¾å¸ÂÃͤò¿Í°ÙŪ¤ËÊѹ¹¤·¤Þ¤¹¡£\n"
-#: src/m4.c:181
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -334,7 +482,7 @@ msgstr ""
" -R, --reload-state=FILE ºÇ½é¤Ë»ØÄꤵ¤ì¤¿ FILE ¤«¤é\n"
" Åà·ë¤µ¤ì¤¿ÄêµÁ¤ò¥í¡¼¥É¤·¤Þ¤¹\n"
-#: src/m4.c:187
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -352,7 +500,7 @@ msgstr ""
" -o, --error-output=FILE ¥Ç¥Ð¥Ã¥°¤È¥È¥ì¡¼¥¹¤Î½ÐÎϤò FILE ¤Ë\n"
" ¥ê¥À¥¤¥ì¥¯¥È¤·¤Þ¤¹¡£\n"
-#: src/m4.c:195
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -384,7 +532,7 @@ msgstr ""
" i ÆþÎÏ¥Õ¥¡¥¤¥ë¤ËÀ¸¤¸¤¿ÊѲ½¤òɽ¼¨¤·¤Þ¤¹¡£\n"
" V ¾åµ­¤ÎÁ´¤Æ¤Î FLAG ¤ò»ØÄꤹ¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£\n"
-#: src/m4.c:210
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -393,22 +541,32 @@ msgstr ""
"FILE ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ª¤è¤Ó»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬ `-' ¤Î¾ì¹ç¤Ï\n"
" ɸ½àÆþÎϤ¬Æɤ߹þ¤Þ¤ì¤Þ¤¹¡£\n"
-#: src/m4.c:215
+#: src/m4.c:225
msgid ""
"\n"
"Report bugs to <bug-m4@gnu.org>.\n"
msgstr ""
-#: src/m4.c:388
+#: src/m4.c:414
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "`%s' ¤ÏÉÔÀµ¤Ê¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó°ú¿ô¤Ç¤¹¡£"
-#: src/m4.c:417
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
+msgstr ""
+
+#: src/m4.c:460
msgid " (options:"
msgstr ""
-#: src/m4.c:500
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "ÆâÉô¥¨¥é¡¼¡§¥ª¥×¥·¥ç¥ó¤Î¸å½èÍý¤Ç¡¢ÉÔÀµ¥³¡¼¥É¤¬¸¡½Ð¤µ¤ì¤Þ¤·¤¿¡£"
@@ -435,43 +593,66 @@ msgstr ""
"¥¨¥é¡¼¡§ºÆµ¢ÅªÄêµÁ¤Î¥Í¥¹¥È¤¬»ØÄꤵ¤ì¤¿ÃÍ %d ¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£\n"
" -L<¿ô»ú> ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥Í¥¹¥È¿ô¤Î¾å¸Â¤òÁý¤ä¤·¤Æ²¼¤µ¤¤¡£"
-#: src/module.c:312
-#, fuzzy, c-format
-msgid "Module search for `%s' found `%s'"
-msgstr "`%s' ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤«¤é `%s' ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤Þ¤·¤¿¡£"
+#: src/module.c:123
+#, c-format
+msgid "ERROR: failed to initialise modules: %s"
+msgstr ""
+
+#: src/module.c:221
+#, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr ""
+
+#: src/module.c:224
+#, c-format
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr ""
+
+#: src/module.c:274
+msgid "ERROR: cannot close modules"
+msgstr ""
-#: src/module.c:349
+#: src/module.c:277
#, c-format
-msgid "ERROR: cannot find module `%s': %s"
+msgid "ERROR: cannot cannot close modules: %s"
msgstr ""
-#: src/module.c:353
+#: src/module.c:284
#, c-format
-msgid "ERROR: cannot find module `%s'"
+msgid "ERROR: cannot close module: `%s'"
msgstr ""
-#: src/output.c:198
+#: src/module.c:288
+#, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr ""
+
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
msgstr "¥¨¥é¡¼: divert ¤Î¤¿¤á¤Î¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤Ç¤­¤Þ¤»¤ó¡£"
-#: src/output.c:208
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
msgstr "¥¨¥é¡¼: ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤Ë divert ¤¹¤Ù¤­ÆâÍƤò write ¤Ç¤­¤Þ¤»¤ó¡£"
-#: src/output.c:292
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr "¥¨¥é¡¼: ÁÞÆþ¤µ¤ì¤ë¤Ù¤­¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼Ãæ¤Ç¤¹¡£"
-#: src/output.c:473
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr "¥¨¥é¡¼: ÁÞÆþ¤µ¤ì¤ë¤Ù¤­¥Õ¥¡¥¤¥ë¤ò¥ê¡¼¥ÉÃæ¤Ç¤¹¡£"
-#: src/output.c:572
+#: src/output.c:636
msgid "Cannot stat diversion"
msgstr ""
"divert ¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤Î¥¹¥Æ¡¼¥¿¥¹¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
" (stat ¤Ç¤­¤Þ¤»¤ó¡£)"
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
#: src/path.c:157
#, c-format
msgid "Path search for `%s' found `%s'"
@@ -479,11 +660,11 @@ msgstr "`%s' ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤«¤é `%s' ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤Þ¤·¤¿¡£"
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr "¥ê¥½¡¼¥¹ÃÍ RLIMIT_VMEM ¤òĶ¤¨¤Æ¤¤¤Þ¤»¤ó¤«¡©\n"
-#: src/stackovf.c:190
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
@@ -492,7 +673,7 @@ msgstr ""
" ¥¹¥¿¥Ã¥¯¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Æ¤¤¤ë¡¢¤¢¤ë¤¤¤Ï¥Ð¥°¤¬Â¸ºß¤¹¤ë\n"
" ²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£"
-#: src/stackovf.c:195
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ". ̵¸Â¤ÎºÆµ¢¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£\n"
@@ -505,41 +686,15 @@ msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô symbol_lookup () ¤Ø¤Î°ú¿ô mode ¤¬ÉÔÀµ¤Ç¤¹¡£"
msgid "Name `%s' is unknown\n"
msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "¥Þ¥¯¥í `%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#, fuzzy
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "`%s' ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤«¤é `%s' ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤Þ¤·¤¿¡£"
+
#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
#~ msgstr "ÆâÉô¥¨¥é¡¼¡§´Ø¿ô pop_input () Æâ¤Ç¥¹¥¿¥Ã¥¯¤ÎÆþÎϤ˼ºÇÔ¤·¤Æ¤¤¤Þ¤¹¡£"
#~ msgid "Bad regular expression: `%s': %s"
#~ msgstr "`%s' : %s ¤Ï¡¢ÉÔÀµ¤ÊÀµµ¬É½¸½¤Ç¤¹¡£"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: `%s' ¤ÏÉÔÌÀÎƤʥª¥×¥·¥ç¥ó̾¤Ç¤¹¡£\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: ¥ª¥×¥·¥ç¥ó `--%s' ¤Ï°ú¿ô¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: ¥ª¥×¥·¥ç¥ó `%c%s' ¤Ï°ú¿ô¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï°ú¿ô¤òɬÍפȤ·¤Þ¤¹¡£\n"
-
-#~ msgid "%s: unrecognized option `--%s'\n"
-#~ msgstr "%s: --%s ¤Ïǧ¼±¤µ¤ì¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: %c%s ¤Ïǧ¼±¤µ¤ì¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: %c ¤ÏÉÔÀµ¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: %c ¤Ï̵¸ú¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: %c ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹¡£\n"
-
-#~ msgid "No previous regular expression"
-#~ msgstr "Àµµ¬É½¸½¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-
-#~ msgid "Memory exhausted"
-#~ msgstr "¥á¥â¥ê¤¬»Ä¤Ã¤Æ¤¤¤Þ¤»¤ó¡£"
diff --git a/po/m4.pot b/po/m4.pot
index e41b4572..f43f6b55 100644
--- a/po/m4.pot
+++ b/po/m4.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -14,110 +14,245 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
-#: src/builtin.c:337
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1058
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regex.c:1061
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regex.c:1064
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+msgid "No previous regular expression"
+msgstr ""
+
+#: src/builtin.c:349
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr ""
-#: src/builtin.c:343
+#: src/builtin.c:355
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
-#: src/builtin.c:371
+#: src/builtin.c:383
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr ""
-#: src/builtin.c:482
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr ""
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
#, c-format
msgid "Undefined name %s"
msgstr ""
-#: src/builtin.c:705
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr ""
-#: src/builtin.c:713
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr ""
-#: src/builtin.c:764
+#: src/builtin.c:804
#, c-format
-msgid "Undefined macro `%s'"
+msgid "Undefined name `%s'"
msgstr ""
-#: src/builtin.c:802
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr ""
-#: src/builtin.c:868
+#: src/builtin.c:908
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr ""
-#: src/builtin.c:908
+#: src/builtin.c:948
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr ""
-#: src/builtin.c:917
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr ""
-#: src/builtin.c:1023
+#: src/builtin.c:1063
#, c-format
msgid "Non-numeric argument to %s"
msgstr ""
-#: src/builtin.c:1035
+#: src/builtin.c:1075
#, c-format
msgid "Cannot undivert %s"
msgstr ""
-#: src/builtin.c:1183
+#: src/builtin.c:1223
#, c-format
msgid "Undefined syntax code %c"
msgstr ""
-#: src/builtin.c:1234 src/freeze.c:207
+#: src/builtin.c:1274 src/freeze.c:211
#, c-format
msgid "Cannot open %s"
msgstr ""
-#: src/builtin.c:1443
+#: src/builtin.c:1483
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr ""
-#: src/builtin.c:1479
+#: src/builtin.c:1519
#, c-format
msgid "Cannot set error file: %s"
msgstr ""
-#: src/builtin.c:1696
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr ""
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr ""
-#: src/builtin.c:1768 src/builtin.c:1841
+#: src/builtin.c:1812 src/builtin.c:1885
#, c-format
msgid "Error matching regular expression `%s'"
msgstr ""
-#: src/debug.c:379
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr ""
-#: src/debug.c:387
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr ""
@@ -167,32 +302,32 @@ msgstr ""
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr ""
-#: src/freeze.c:115
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr ""
-#: src/freeze.c:128
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr ""
-#: src/freeze.c:159
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
msgstr ""
-#: src/freeze.c:161
+#: src/freeze.c:165
#, c-format
msgid "Expecting character `%c' in frozen file"
msgstr ""
-#: src/freeze.c:218
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr ""
-#: src/freeze.c:273 src/freeze.c:289
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr ""
-#: src/freeze.c:323
+#: src/freeze.c:327
#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr ""
@@ -223,29 +358,29 @@ msgstr ""
msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
msgstr ""
-#: src/input.c:803
+#: src/input.c:805
msgid "NONE"
msgstr ""
-#: src/input.c:1197 src/input.c:1224
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr ""
-#: src/m4.c:117
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr ""
-#: src/m4.c:144
+#: src/m4.c:146
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: src/m4.c:148
+#: src/m4.c:150
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr ""
-#: src/m4.c:149
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -259,11 +394,19 @@ msgid ""
" -P, --prefix-builtins force a `m4_' prefix to all builtins\n"
msgstr ""
-#: src/m4.c:162
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
-#: src/m4.c:166
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
msgid ""
"\n"
"Preprocessor features:\n"
@@ -273,7 +416,7 @@ msgid ""
" -s, --synclines generate `#line NO \"FILE\"' lines\n"
msgstr ""
-#: src/m4.c:174
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -282,7 +425,7 @@ msgid ""
" -L, --nesting-limit=NUMBER change artificial nesting limit\n"
msgstr ""
-#: src/m4.c:181
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -290,7 +433,7 @@ msgid ""
" -R, --reload-state=FILE reload a frozen state from FILE at start\n"
msgstr ""
-#: src/m4.c:187
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -300,7 +443,7 @@ msgid ""
" -o, --error-output=FILE redirect debug and trace output\n"
msgstr ""
-#: src/m4.c:195
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -317,28 +460,38 @@ msgid ""
" V shorthand for all of the above flags\n"
msgstr ""
-#: src/m4.c:210
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
msgstr ""
-#: src/m4.c:215
+#: src/m4.c:225
msgid ""
"\n"
"Report bugs to <bug-m4@gnu.org>.\n"
msgstr ""
-#: src/m4.c:388
+#: src/m4.c:414
#, c-format
msgid "Bad debug flags: `%s'"
msgstr ""
-#: src/m4.c:417
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
+msgstr ""
+
+#: src/m4.c:460
msgid " (options:"
msgstr ""
-#: src/m4.c:500
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr ""
@@ -363,41 +516,64 @@ msgstr ""
msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
msgstr ""
-#: src/module.c:312
+#: src/module.c:123
+#, c-format
+msgid "ERROR: failed to initialise modules: %s"
+msgstr ""
+
+#: src/module.c:221
+#, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr ""
+
+#: src/module.c:224
+#, c-format
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr ""
+
+#: src/module.c:274
+msgid "ERROR: cannot close modules"
+msgstr ""
+
+#: src/module.c:277
#, c-format
-msgid "Module search for `%s' found `%s'"
+msgid "ERROR: cannot cannot close modules: %s"
msgstr ""
-#: src/module.c:349
+#: src/module.c:284
#, c-format
-msgid "ERROR: cannot find module `%s': %s"
+msgid "ERROR: cannot close module: `%s'"
msgstr ""
-#: src/module.c:353
+#: src/module.c:288
#, c-format
-msgid "ERROR: cannot find module `%s'"
+msgid "ERROR: cannot cannot close module: `%s': %s"
msgstr ""
-#: src/output.c:198
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
msgstr ""
-#: src/output.c:208
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
msgstr ""
-#: src/output.c:292
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr ""
-#: src/output.c:473
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr ""
-#: src/output.c:572
+#: src/output.c:636
msgid "Cannot stat diversion"
msgstr ""
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
#: src/path.c:157
#, c-format
msgid "Path search for `%s' found `%s'"
@@ -405,17 +581,17 @@ msgstr ""
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr ""
-#: src/stackovf.c:190
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
msgstr ""
-#: src/stackovf.c:195
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ""
diff --git a/po/nl.gmo b/po/nl.gmo
index 6cfd3a65..1c43c5f7 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index dbe1e72b..c7d94921 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: m4 1.4d\n"
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
"PO-Revision-Date: 1998-05-23 09:27+02:00\n"
"Last-Translator: Erick Branderhorst <Erick.Branderhorst@asml.nl>\n"
"Language-Team: dutch <nl@li.org>\n"
@@ -13,113 +13,253 @@ msgstr ""
"Content-Type: text/plain; charset=\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:337
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "Onjuiste reguliere expressie `%s': %s"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "Fout overeenkomen reguliere expressies `%s'"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "Voorbarig einde van gefixeerd bestand"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "Onjuiste reguliere expressie `%s': %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+#, fuzzy
+msgid "No previous regular expression"
+msgstr "Fout overeenkomen reguliere expressies `%s'"
+
+#: src/builtin.c:349
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Let op: Te weinig argument voor ingebouwde functie `%s'"
-#: src/builtin.c:343
+#: src/builtin.c:355
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
"Let op: Overbodige argumenten voor ingebouwde functie `%s' worden genegeerd"
-#: src/builtin.c:371
+#: src/builtin.c:383
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Niet numeriek argument voor ingebouwde functie `%s'"
-#: src/builtin.c:482
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "INTERNE FOUT: Onjuist teken data type in define_macro ()"
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
#, c-format
msgid "Undefined name %s"
msgstr "Ongedefinieerde naam %s"
-#: src/builtin.c:705
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "INTERNE FOUT: Ingebouwde functie niet gevonden in functie tabel!"
-#: src/builtin.c:713
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "INTERNE FOUT: Onjuist teken data type in m4_dumpdef ()"
-#: src/builtin.c:764
-#, c-format
-msgid "Undefined macro `%s'"
-msgstr "Ongedefinieerde macro `%s'"
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "Ongedefinieerde naam %s"
-#: src/builtin.c:802
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "INTERNE FOUT: Onjuist symbool type in m4_defn ()"
-#: src/builtin.c:868
+#: src/builtin.c:908
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Kan geen pijp openen voor commando `%s'"
-#: src/builtin.c:908
+#: src/builtin.c:948
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Radix in evaluatie buiten bereik (radix = %d)"
-#: src/builtin.c:917
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr "Negatieve breedte te evalueren"
-#: src/builtin.c:1023
+#: src/builtin.c:1063
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Niet numeriek argument voor %s"
-#: src/builtin.c:1035
+#: src/builtin.c:1075
#, c-format
msgid "Cannot undivert %s"
msgstr "Cannot undivert %s"
-#: src/builtin.c:1183
+#: src/builtin.c:1223
#, c-format
msgid "Undefined syntax code %c"
msgstr "Ongedefinieerde syntax code %c"
-#: src/builtin.c:1234 src/freeze.c:207
+#: src/builtin.c:1274 src/freeze.c:211
#, c-format
msgid "Cannot open %s"
msgstr "Kan %s niet openen"
-#: src/builtin.c:1443
+#: src/builtin.c:1483
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Debugmode: onjuiste debug vlaggen: `%s'"
-#: src/builtin.c:1479
+#: src/builtin.c:1519
#, c-format
msgid "Cannot set error file: %s"
msgstr "Kan fout bestand niet instellen: %s"
-#: src/builtin.c:1696
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "LET OP: \\0 zal verdwijnen, gebruik hiervoor \\& als vervanging"
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Onjuiste reguliere expressie `%s': %s"
-#: src/builtin.c:1768 src/builtin.c:1841
+#: src/builtin.c:1812 src/builtin.c:1885
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "Fout overeenkomen reguliere expressies `%s'"
-#: src/debug.c:379
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr ""
"INTERNE FOUT: Ingebouwde functie niet gevonden in functie tabel! (trace_pre "
"())"
-#: src/debug.c:387
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr "INTERNE FOUT: Onjuiste teken data type (trace_pre ())"
@@ -169,32 +309,32 @@ msgstr "INTERNE FOUT: Onjuiste schuif operator in shift_term ()"
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr "INTERNE FOUT: Onjuiste operator in mult_term ()"
-#: src/freeze.c:115
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr "INTERNE FOUT: Ingebouwde functie niet gevonden in functie tabel!"
-#: src/freeze.c:128
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr "INTERNE FOUT: Onjuist teken data type in freeze_one_symbol ()"
-#: src/freeze.c:159
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
msgstr "Verwacht nieuwe regel in gefixeerd bestand"
-#: src/freeze.c:161
+#: src/freeze.c:165
#, c-format
msgid "Expecting character `%c' in frozen file"
msgstr "Verwacht karakter `%c' in gefixeerd bestand"
-#: src/freeze.c:218
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr "Slecht geformateerd gefixeerd bestand"
-#: src/freeze.c:273 src/freeze.c:289
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr "Voorbarig einde van gefixeerd bestand"
-#: src/freeze.c:323
+#: src/freeze.c:327
#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr "`%s' van gefixeerd bestand niet gevonden in functie tabel!"
@@ -225,29 +365,29 @@ msgstr "INTERNE FOUT: Invoer stapel botch in next_char ()"
msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
msgstr "INTERNE FOUT: Invoer stapel botch in peek_input ()"
-#: src/input.c:803
+#: src/input.c:805
msgid "NONE"
msgstr "GEEN"
-#: src/input.c:1197 src/input.c:1224
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr "FOUT: Einde van bestand teken in string"
-#: src/m4.c:117
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "FOUT: Stapel overflow. (Infinite define recursion?)"
-#: src/m4.c:144
+#: src/m4.c:146
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Probeer `%s --help' voor meer informatie.\n"
-#: src/m4.c:148
+#: src/m4.c:150
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Gebruik: %s [OPTIE]... [BESTAND]...\n"
-#: src/m4.c:149
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -273,11 +413,19 @@ msgstr ""
" -P, --prefix-builtins forceer een `m4_' voorvoegsel voor alle \n"
" ingebouwde functies\n"
-#: src/m4.c:162
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr " -W, --word-regexp=REGEXP gebruik REGEXP voor macro naam syntax\n"
-#: src/m4.c:166
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
#, fuzzy
msgid ""
"\n"
@@ -296,7 +444,7 @@ msgstr ""
" -U, --undefine=NAME verwijder ingebouwde functie NAME\n"
" -s, --synclines genereer `#line NO \"FILE\"' regel\n"
-#: src/m4.c:174
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -310,7 +458,7 @@ msgstr ""
" -H, --hashsize=PRIME stel symbolen opzoek hash tabel grootte\n"
" -L, --nesting-limit=NUMBER verander kunstmatige nesting limiet\n"
-#: src/m4.c:181
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -324,7 +472,7 @@ msgstr ""
" -R, --reload-state=FILE herlaad een gefixeerde staat van BESTAND\n"
" aan het begin\n"
-#: src/m4.c:187
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -341,7 +489,7 @@ msgstr ""
" -l, --arglength=NUM restrict macro traceer grootte\n"
" -o, --error-output=FILE redirect debug en traceer uitvoer\n"
-#: src/m4.c:195
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -371,7 +519,7 @@ msgstr ""
" i show changes in input files\n"
" V shorthand for all of the above flags\n"
-#: src/m4.c:210
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -379,7 +527,7 @@ msgstr ""
"\n"
"Als geen BESTAND of als BESTAND `-' is, standaard invoer wordt gelezen.\n"
-#: src/m4.c:215
+#: src/m4.c:225
#, fuzzy
msgid ""
"\n"
@@ -388,16 +536,26 @@ msgstr ""
"\n"
"Meld fouten via <m4-bugs@gnu.org>.\n"
-#: src/m4.c:388
+#: src/m4.c:414
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "Onjuiste debug vlaggen: `%s'"
-#: src/m4.c:417
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
+msgstr ""
+
+#: src/m4.c:460
msgid " (options:"
msgstr ""
-#: src/m4.c:500
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "INTERNE FOUT: Onjuiste code in afgeleide argumenten"
@@ -423,41 +581,64 @@ msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
msgstr ""
"FOUT: Recursie limiet of %d overschreden, gebruik -L<N> om dit te wijzigen"
-#: src/module.c:312
-#, fuzzy, c-format
-msgid "Module search for `%s' found `%s'"
-msgstr "Zoeken naar `%s' via PATH levert `%s'"
+#: src/module.c:123
+#, c-format
+msgid "ERROR: failed to initialise modules: %s"
+msgstr ""
-#: src/module.c:349
+#: src/module.c:221
#, c-format
-msgid "ERROR: cannot find module `%s': %s"
+msgid "ERROR: cannot find module: `%s'"
msgstr ""
-#: src/module.c:353
+#: src/module.c:224
#, c-format
-msgid "ERROR: cannot find module `%s'"
+msgid "ERROR: cannot find module: `%s': %s"
msgstr ""
-#: src/output.c:198
+#: src/module.c:274
+msgid "ERROR: cannot close modules"
+msgstr ""
+
+#: src/module.c:277
+#, c-format
+msgid "ERROR: cannot cannot close modules: %s"
+msgstr ""
+
+#: src/module.c:284
+#, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr ""
+
+#: src/module.c:288
+#, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr ""
+
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
msgstr "FOUT: Kan geen tijdelijk bestand aanmaken voor diversion"
-#: src/output.c:208
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
msgstr "FOUT: Kan diversion niet flushen naar tijdelijk bestand"
-#: src/output.c:292
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr "FOUT: Kopieren ingevoegde bestanden"
-#: src/output.c:473
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr "FOUT: Lezen ingevoegd bestand"
-#: src/output.c:572
+#: src/output.c:636
msgid "Cannot stat diversion"
msgstr "Cannot stat diversion"
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
#: src/path.c:157
#, c-format
msgid "Path search for `%s' found `%s'"
@@ -465,11 +646,11 @@ msgstr "Zoeken naar `%s' via PATH levert `%s'"
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr "VMEM limiet overschreden?\n"
-#: src/stackovf.c:190
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
@@ -477,7 +658,7 @@ msgstr ""
"Geheugen bounds violation gedetecteerd (SIGSEGV). Een stack overflow \n"
"is opgetreden, of er is een fout in "
-#: src/stackovf.c:195
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ". Kontroleer voor mogelijk oneindige recusie.\n"
@@ -489,3 +670,10 @@ msgstr "INTERNE FOUT: Ongeldige mode voor symbol_lookup ()"
#, c-format
msgid "Name `%s' is unknown\n"
msgstr "Naam `%s' is niet bekend\n"
+
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "Ongedefinieerde macro `%s'"
+
+#, fuzzy
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "Zoeken naar `%s' via PATH levert `%s'"
diff --git a/po/pl.gmo b/po/pl.gmo
index 33fb0a5f..3860756e 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 62d59ae2..e600b9c2 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,124 +1,265 @@
# Polish translations for the GNU m4 messages.
-# Copyright (C) 1998 Free Software Foundation, Inc.
-# Rafa³ Maszkowski <rzm@icm.edu.pl>, 1998.
+# Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+# Rafa³ Maszkowski <rzm@icm.edu.pl>, 1998-1999.
#
msgid ""
msgstr ""
-"Project-Id-Version: m4 1.4.3\n"
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
-"PO-Revision-Date: 1998-08-05 17:30+0200\n"
+"Project-Id-Version: m4 1.4n\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
+"PO-Revision-Date: 1999-05-03 19:47+0200\n"
"Last-Translator: Rafa³ Maszkowski <rzm@icm.edu.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:337
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "B³êdne wyra¿enie regularne `%s': %s"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "B³±d dopasowania do wyra¿enia regularnego `%s'"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "Przedwczesny koniec pliku zamro¿onego"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "B³êdne wyra¿enie regularne `%s': %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+#, fuzzy
+msgid "No previous regular expression"
+msgstr "B³±d dopasowania do wyra¿enia regularnego `%s'"
+
+#: src/builtin.c:349
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
-msgstr "Uwaga: Za ma³o argumentów dla wbodowanego `%s'"
+msgstr "Uwaga: Za ma³o argumentów dla wbudowanego `%s'"
-#: src/builtin.c:343
+#: src/builtin.c:355
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr "Uwaga: Nadmiarowe argumenty do built-in `%s' zosta³y zignorowane"
-#: src/builtin.c:371
+#: src/builtin.c:383
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Nienumeryczny argument do built-in `%s'"
-#: src/builtin.c:482
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "B£¡D WEWNÊTRZNY: Z³y typ danych tokenu w define_macro ()"
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
#, c-format
msgid "Undefined name %s"
msgstr "Niezdefiniowana nazwa %s"
-#: src/builtin.c:705
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "B£¡D WEWNÊTRZNY: Wbudowane nie znalezione w tablicy wbudowanych!"
-#: src/builtin.c:713
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "B£¡D WEWNÊTRZNY: Z³y typ danych tokenu w m4_dumpref ()"
-#: src/builtin.c:764
-#, c-format
-msgid "Undefined macro `%s'"
-msgstr "Niezdefiniowane makro `%s'"
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "Niezdefiniowana nazwa %s"
-#: src/builtin.c:802
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "B£¡D WEWNETRZNY: Z³y typ symbolu w m4_defn ()"
-#: src/builtin.c:868
+#: src/builtin.c:908
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Nie mogê otworzyæ potoku do komendy `%s'"
-#: src/builtin.c:908
+#: src/builtin.c:948
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Baza w eval poza zakresem (radix = %d)"
-#: src/builtin.c:917
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr "Ujemna d³ugo¶æ w eval"
-#: src/builtin.c:1023
+#: src/builtin.c:1063
#, c-format
msgid "Non-numeric argument to %s"
msgstr "Nienumeryczny argument dla %s"
-#: src/builtin.c:1035
+#: src/builtin.c:1075
#, c-format
msgid "Cannot undivert %s"
msgstr "Nie mogê przetowrzyæ z powrotem %s"
-#: src/builtin.c:1183
-#, fuzzy, c-format
+# hm - rzm
+#: src/builtin.c:1223
+#, c-format
msgid "Undefined syntax code %c"
-msgstr "Niezdefiniowana nazwa %s"
+msgstr "Niezdefiniowany kod sk³adniowy %c"
-#: src/builtin.c:1234 src/freeze.c:207
+#: src/builtin.c:1274 src/freeze.c:211
#, c-format
msgid "Cannot open %s"
msgstr "Nie mogê otworzyæ %s"
-#: src/builtin.c:1443
+#: src/builtin.c:1483
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Tryb debugowania: z³e flagi debugowania: `%s'"
-#: src/builtin.c:1479
+#: src/builtin.c:1519
#, c-format
msgid "Cannot set error file: %s"
msgstr "Nie mogê ustawiæ pliku b³êdów: %s"
-#: src/builtin.c:1696
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "UWAGA: \\0 zniknie, w podstawieniach u¿yj zamiast tego \\&"
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "B³êdne wyra¿enie regularne `%s': %s"
-#: src/builtin.c:1768 src/builtin.c:1841
+#: src/builtin.c:1812 src/builtin.c:1885
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "B³±d dopasowania do wyra¿enia regularnego `%s'"
-#: src/debug.c:379
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr ""
"B£¡D WEWNÊTRZNY: Wbudowane nie znalezione w tablicy wbudowanych! (trace_pre "
"())"
-#: src/debug.c:387
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr "B£¡D WEWNÊTRZNY: Z³y typ danych tokenu (trace_pre ())"
@@ -168,32 +309,32 @@ msgstr "B£¡D WEWNÊTRZNY: B³êdny operator przesuniêcia w shift_term ()"
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr "B£¡D WEWNÊTRZNY: B³êdny opertaotr w mult_term ()"
-#: src/freeze.c:115
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr "B£¡D WEWNÊTRZNY: Wbudowane nie znalezione w tablicy wbudowanych!"
-#: src/freeze.c:128
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr "B£¡D WEWNÊTRZNY: B³êdny typ danych tokenu w freeze_one_symbol ()"
-#: src/freeze.c:159
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
msgstr "Oczekiwany line fedd w pliku zamro¿onym"
-#: src/freeze.c:161
+#: src/freeze.c:165
#, c-format
msgid "Expecting character `%c' in frozen file"
msgstr "Oczekiwany znak `%c' w pliku zamro¿onym"
-#: src/freeze.c:218
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr "¬le sformatowy plik zamro¿ony"
-#: src/freeze.c:273 src/freeze.c:289
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr "Przedwczesny koniec pliku zamro¿onego"
-#: src/freeze.c:323
+#: src/freeze.c:327
#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr "`%s' z pliku zamro¿onego nie znalezione w tablicy wbudowanych!"
@@ -224,29 +365,29 @@ msgstr "B£¡D WEWNÊTRZNY: B³±d stosu wej¶ciowego w next_char ()"
msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
msgstr "B£¡D WEWNÊTRZNY: B³±d stosu wej¶ciowego w peek_input ()"
-#: src/input.c:803
+#: src/input.c:805
msgid "NONE"
msgstr "¯ADEN"
-#: src/input.c:1197 src/input.c:1224
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr "B£¡D: EOF w ³añcuchu"
-#: src/m4.c:117
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "B£¡D: Przepe³nienie stosu. (Nieskoñczona rekursja definicji?)"
-#: src/m4.c:144
+#: src/m4.c:146
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Spróbuj `%s --help' ¿eby dowiedzieæ siê wiêcej.\n"
-#: src/m4.c:148
+#: src/m4.c:150
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
-msgstr "U¿ycie: %s [OPCJA]... [PLIK]...\n"
+msgstr "Sk³adnia: %s [OPCJA]... [PLIK]...\n"
-#: src/m4.c:149
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -272,11 +413,19 @@ msgstr ""
" -P, --prefix-builtins dodaj zawsze `m4_' przez wszystkimi "
"wbudowanymi\n"
-#: src/m4.c:162
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr " -W, --word-regexp=WYR_REGUL u¿yj WYR_REGUL w sk³adni nazw makr\n"
-#: src/m4.c:166
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
msgid ""
"\n"
"Preprocessor features:\n"
@@ -292,7 +441,7 @@ msgstr ""
" -U, --undefine=NAZWA skasuj wbudowan± NAZWÊ\n"
" -s, --synclines generuj linie `#line NR \"PLIK\"\n"
-#: src/m4.c:174
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -307,7 +456,7 @@ msgstr ""
"symboli\n"
" -L, --nesting-limit=LICZBA zmieñ sztuczny limit zag³ebieñ\n"
-#: src/m4.c:181
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -319,7 +468,7 @@ msgstr ""
" -F, --freeze-state=PLIK zapisz zamro¿ony PLIK stanu na koñcu\n"
" -R, --reload-state=PLIK za³aduj zamro¿ony PLIK stanu na pocz±tku\n"
-#: src/m4.c:187
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -335,7 +484,7 @@ msgstr ""
" -l, --arglength=ILE ogranicz rozmiar ¶ledzenia makr\n"
" -o, --error-output=PLIK przekieruj wyniki debugowania i ¶ledzenia\n"
-#: src/m4.c:195
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -365,7 +514,7 @@ msgstr ""
" i poka¿ zmiany plików wej¶ciowych\n"
" V skrót do wszystkich powy¿szych flag\n"
-#: src/m4.c:210
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -373,22 +522,34 @@ msgstr ""
"\n"
"Je¿eli brak PLIKu lub PLIK to `-', czytane jest std. wej¶cie.\n"
-#: src/m4.c:215
+#: src/m4.c:225
msgid ""
"\n"
"Report bugs to <bug-m4@gnu.org>.\n"
msgstr ""
+"\n"
+"Raporty o b³êdach wysy³aj do bug-m4@gnu.org.\n"
-#: src/m4.c:388
+#: src/m4.c:414
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "B³êdne flagi debugowania: `%s'"
-#: src/m4.c:417
-msgid " (options:"
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
msgstr ""
-#: src/m4.c:500
+#: src/m4.c:460
+msgid " (options:"
+msgstr " (opcje:"
+
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "B£¡D WEWNÊTRZNY: B³êdny kod w od³o¿onych argumentach"
@@ -413,41 +574,65 @@ msgstr "B£¡D WEWNÊTRZNY: B³êdny symbol w call_macro ()"
msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
msgstr "B£¡D: Osi±gniêty limit rekursji %d, u¿yj -L<N> ¿eby go zmieniæ"
-#: src/module.c:312
+#: src/module.c:123
#, fuzzy, c-format
-msgid "Module search for `%s' found `%s'"
-msgstr "Przeszukanie ¶cie¿ki dla `%s' znalaz³o `%s'"
+msgid "ERROR: failed to initialise modules: %s"
+msgstr "B£¡D: nie mo¿na znale¿æ modu³u `%s': %s"
-#: src/module.c:349
-#, c-format
-msgid "ERROR: cannot find module `%s': %s"
-msgstr ""
+#: src/module.c:221
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr "B£¡D: nie mo¿na znale¼æ modu³u `%s'"
-#: src/module.c:353
-#, c-format
-msgid "ERROR: cannot find module `%s'"
-msgstr ""
+#: src/module.c:224
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr "B£¡D: nie mo¿na znale¿æ modu³u `%s': %s"
+
+#: src/module.c:274
+#, fuzzy
+msgid "ERROR: cannot close modules"
+msgstr "B£¡D: nie mo¿na znale¼æ modu³u `%s'"
+
+#: src/module.c:277
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close modules: %s"
+msgstr "B£¡D: nie mo¿na znale¿æ modu³u `%s': %s"
-#: src/output.c:198
+#: src/module.c:284
+#, fuzzy, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr "B£¡D: nie mo¿na znale¼æ modu³u `%s'"
+
+#: src/module.c:288
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr "B£¡D: nie mo¿na znale¿æ modu³u `%s': %s"
+
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
msgstr "B£¡D: Nie mogê utworzyæ plików tymczasowych dla przetwarzania"
-#: src/output.c:208
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
msgstr "B£¡D: Nie mogê zapisac zmian przetwarzania do pliku tymczasowego"
-#: src/output.c:292
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr "B£¡D: Kopiowanie w³o¿onego pliku"
-#: src/output.c:473
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr "B£¡D: Czytanie w³o¿onego pliku"
-#: src/output.c:572
+#: src/output.c:636
msgid "Cannot stat diversion"
msgstr "Nie mogê zrobiæ stat na danych przetwarzanych"
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
#: src/path.c:157
#, c-format
msgid "Path search for `%s' found `%s'"
@@ -455,11 +640,11 @@ msgstr "Przeszukanie ¶cie¿ki dla `%s' znalaz³o `%s'"
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr "przekroczony limit VMEM\n"
-#: src/stackovf.c:190
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
@@ -467,7 +652,7 @@ msgstr ""
"Wykryto pogwa³cenie ograniczeñ adresów pamiêci (SIGSEGV). Albo dosz³o do\n"
"przepe³nienia stosu albo jest b³±d w "
-#: src/stackovf.c:195
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ". Sprawd¼ czy nie dosz³o do nieskoñczonej rekursji.\n"
@@ -480,41 +665,8 @@ msgstr "B£¡D WEWNÊTRZNY: Nielegalny tryb w symbol_lookup ()"
msgid "Name `%s' is unknown\n"
msgstr "Nazwa `%s' jest nieznana\n"
-#~ msgid "Bad regular expression: `%s': %s"
-#~ msgstr "Z³e wyra¿enie regularne: `%s': %s"
-
-#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
-#~ msgstr "B£¡D WEWNÊTRZNY: B³±d stosu wej¶ciowego w pop_input ()"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: opcja `%s' jest niejednoznaczna\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja `--%s' nie mo¿e mieæ argumentu\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja `%c%s' nie mo¿e mieæ argumentu\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: opcja `%s' wymaga argumentu\n"
-
-#~ msgid "%s: unrecognized option `--%s'\n"
-#~ msgstr "%s: nierozpoznana opcja --%s'\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: nierozpoznana opcja %c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: nielegalna opcja -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: b³êdna opcja -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: opcja wymaga argumentu -- %c\n"
-
-#~ msgid "No previous regular expression"
-#~ msgstr "Brak uprzedniego wyra¿enia regularnego"
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "Niezdefiniowane makro `%s'"
-#~ msgid "Memory exhausted"
-#~ msgstr "Pamiêæ wyczerpana"
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "Wyszukiwanie modu³u `%s' - znaleziony `%s'"
diff --git a/po/ru.gmo b/po/ru.gmo
index 234e432d..b12bb2dc 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index dd98b8c5..7f8f81c0 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,123 +1,264 @@
-# ìÏËÁÌÉÚÁÃÉÑ m4-1.4.3
-# Copyright (C) 1997 Free Software Foundation, Inc.
-# Denis Y. Pershin <dyp@siblug.org>, 1997.
+# ìÏËÁÌÉÚÁÃÉÑ m4-1.4n
+# Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+# Denis Y. Pershin <dyp@siblug.org>, 1997, 1998, 1999.
+#
msgid ""
msgstr ""
-"Project-Id-Version: m4 1.4.3\n"
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
-"PO-Revision-Date: 1997-07-12 20:58\n"
+"Project-Id-Version: m4 1.4n\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
+"PO-Revision-Date: 1999-04-17 20:58\n"
"Last-Translator: Denis Y. Pershin <dyp@siblug.org>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/builtin.c:337
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: ÏÐÃÉÑ `%s' ÎÅÏÄÎÏÚÎÁÞÎÁ\n"
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Õ ÏÐÃÉÉ `--%s' ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÁÒÇÕÍÅÎÔÏ×\n"
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Õ ÏÐÃÉÉ `%c%s' ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÁÒÇÕÍÅÎÔÏ×\n"
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Õ ÏÐÃÉÉ `%s' ÄÏÌÖÅÎ ÂÙÔØ ÁÒÇÕÍÅÎÔ\n"
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ÎÅÉÚ×ÅÓÔÎÁÑ ÏÐÃÉÑ `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ÎÅÉÚ×ÅÓÔÎÁÑ ÏÐÃÉÑ '%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ÚÁÐÒÅÝÅÎÎÁÑ ÏÐÃÉÑ -- %c\n"
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ÎÅ×ÅÒÎÁÑ ÏÐÃÉÑ -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ÏÐÃÉÉ ÎÅÏÂÈÏÄÉÍ ÁÒÇÕÍÅÎÔ -- %c\n"
+
+#: lib/getopt.c:864
+#, fuzzy, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: ÏÐÃÉÑ `%s' ÎÅÏÄÎÏÚÎÁÞÎÁ\n"
+
+#: lib/getopt.c:882
+#, fuzzy, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Õ ÏÐÃÉÉ `--%s' ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÁÒÇÕÍÅÎÔÏ×\n"
+
+#: lib/obstack.c:471
+#, fuzzy
+msgid "memory exhausted"
+msgstr "ðÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ"
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "îÅÔ ÐÒÅÄÛÅÄÓÔ×ÕÀÝÅÇÏ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr "ðÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ"
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "îÅÔ ÐÒÅÄÛÅÄÓÔ×ÕÀÝÅÇÏ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "îÅÔ ÐÒÅÄÛÅÄÓÔ×ÕÀÝÅÇÏ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ: '%s': %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+msgid "No previous regular expression"
+msgstr "îÅÔ ÐÒÅÄÛÅÄÓÔ×ÕÀÝÅÇÏ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ"
+
+#: src/builtin.c:349
#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: óÌÉÛËÏÍ ÍÁÌÏ ÁÒÇÕÍÅÎÔÏ× ÄÌÑ ×ÓÔÒÏÅÎÎÏÊ ÌÅËÓÅÍÙ '%s'"
-#: src/builtin.c:343
+#: src/builtin.c:355
#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr ""
"ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: éÚÂÙÔÏÞÎÙÅ ÁÒÇÕÍÅÎÔÙ ÄÌÑ ×ÓÔÒÏÅÎÎÏÊ ÌÅËÓÅÍÙ '%s' "
"ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ"
-#: src/builtin.c:371
+#: src/builtin.c:383
#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "îÅ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ×ÓÔÒÏÅÎÎÏÊ ÌÅËÓÅÍÙ '%s'"
-#: src/builtin.c:482
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÌÅËÓÅÍÙ × define_macro ()"
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
#, c-format
msgid "Undefined name %s"
msgstr "éÍÑ %s ÎÅÏÐÒÅÄÅÌÅÎÏ"
-#: src/builtin.c:705
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "÷îõôòåîîññ ïûéâëá: ÷ÓÔÒÏÅÎÎÁÑ ÌÅËÓÅÍÁ ÎÅ ÎÁÊÄÅÎÁ!"
-#: src/builtin.c:713
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÌÅËÓÅÍÙ × m4_dumpdef ()"
-#: src/builtin.c:764
-#, c-format
-msgid "Undefined macro `%s'"
-msgstr "îÅÏÐÒÅÄÅÌÅÎÎÙÊ ÍÁËÒÏÓ '%s'"
+#: src/builtin.c:804
+#, fuzzy, c-format
+msgid "Undefined name `%s'"
+msgstr "éÍÑ %s ÎÅÏÐÒÅÄÅÌÅÎÏ"
-#: src/builtin.c:802
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÓÉÍ×ÏÌÁ × m4_defn ()"
-#: src/builtin.c:868
+#: src/builtin.c:908
#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÁÎÁÌ ÄÌÑ ËÏÍÍÁÎÄÙ '%s'"
-#: src/builtin.c:908
+#: src/builtin.c:948
#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "òÁÄÉËÓ × ×ÙÒÁÖÅÎÉÉ ×ÙÈÏÄÉÔ ÚÁ ÐÒÅÄÅÌÙ (radix = %d)"
-#: src/builtin.c:917
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr "ïÔÒÉÃÁÔÅÌØÎÁÑ ÛÉÒÉÎÁ"
-#: src/builtin.c:1023
+#: src/builtin.c:1063
#, c-format
msgid "Non-numeric argument to %s"
-msgstr "îÅ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ %s"
+msgstr "îÅÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ %s"
-#: src/builtin.c:1035
+#: src/builtin.c:1075
#, c-format
msgid "Cannot undivert %s"
msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÅÒÎÕÔØ ×Ù×ÏÄ ÉÚ %s"
-#: src/builtin.c:1183
-#, fuzzy, c-format
+#: src/builtin.c:1223
+#, c-format
msgid "Undefined syntax code %c"
-msgstr "éÍÑ %s ÎÅÏÐÒÅÄÅÌÅÎÏ"
+msgstr "îÅÏÐÒÅÄÅÌÅÎÎÙÊ ÓÉÎÔÁËÓÉÞÅÓËÉÊ ËÏÄ %c"
-#: src/builtin.c:1234 src/freeze.c:207
+#: src/builtin.c:1274 src/freeze.c:211
#, c-format
msgid "Cannot open %s"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ %s"
-#: src/builtin.c:1443
+#: src/builtin.c:1483
#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "òÅÖÉÍ ÏÔÌÁÄËÉ: ÎÅ×ÅÒÎÙÊ ÆÌÁÇ ÏÔÌÁÄËÉ: '%s'"
-#: src/builtin.c:1479
+#: src/builtin.c:1519
#, c-format
msgid "Cannot set error file: %s"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÚÎÁÞÉÔØ ÆÁÊÌ ÏÛÉÂÏË %s"
-#: src/builtin.c:1696
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "ðòåäõðòåöäåîéå: \\0 ÉÓÞÅÚÎÅÔ, ÉÓÐÏÌØÚÕÊÔÅ \\& × ÚÁÍÅÎÁÈ"
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ: '%s': %s"
-#: src/builtin.c:1768 src/builtin.c:1841
+#: src/builtin.c:1812 src/builtin.c:1885
#, c-format
msgid "Error matching regular expression `%s'"
msgstr "ïÛÉÂËÁ ÓÏÐÏÓÔÁ×ÌÅÎÉÑ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ '%s'"
-#: src/debug.c:379
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr "÷îõôòåîîññ ïûéâëá: ÷ÓÔÒÏÅÎÎÁÑ ÌÅËÓÅÍÁ ÎÅ ÎÁÊÄÅÎÁ! (trace_pre ())"
-#: src/debug.c:387
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÌÅËÓÅÍÙ (trace_pre ())"
@@ -167,32 +308,32 @@ msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÏÐÅÒÁÔÏÒ ÓÄ×ÉÇÁ × shift_term ()"
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÏÐÅÒÁÔÏÒ × mult_term ()"
-#: src/freeze.c:115
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr "÷îõôòåîîññ ïûéâëá: ÷ÓÔÒÏÅÎÎÁÑ ÌÅËÓÅÍÁ ÎÅ ÎÁÊÄÅÎÁ!"
-#: src/freeze.c:128
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ÔÉÐ ÌÅËÓÅÍÙ × freeze_one_symbol ()"
-#: src/freeze.c:159
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
msgstr "ïÖÉÄÁÅÔÓÑ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ÆÁÊÌÅ-ÏÂÒÁÚÅ ÐÁÍÑÔÉ"
-#: src/freeze.c:161
+#: src/freeze.c:165
#, c-format
msgid "Expecting character `%c' in frozen file"
msgstr "ïÖÉÄÁÅÔÓÑ ÓÉÍ×ÏÌ '%c' × ÆÁÊÌÅ-ÏÂÒÁÚÅ ÐÁÍÑÔÉ"
-#: src/freeze.c:218
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr "îÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÆÁÊÌÁ-ÏÂÒÁÚÁ ÐÁÍÑÔÉ"
-#: src/freeze.c:273 src/freeze.c:289
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ-ÏÂÒÁÚÁ ÐÁÍÑÔÉ"
-#: src/freeze.c:323
+#: src/freeze.c:327
#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr "'%s' ÉÚ ÆÁÊÌÁ-ÏÂÒÁÚÁ ÐÁÍÑÔÉ ÎÅ ÎÁÊÄÅÎÁ ×Ï ×ÓÔÒÏÅÎÎÏÊ ÔÁÂÌÉÃÅ!"
@@ -223,29 +364,29 @@ msgstr "÷îõôòåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × next_char ()"
msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
msgstr "÷îõôòåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × peek_input ()"
-#: src/input.c:803
+#: src/input.c:805
msgid "NONE"
msgstr "îéþåçï"
-#: src/input.c:1197 src/input.c:1224
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr "ïûéâëá: ëÏÎÅà ÆÁÊÌÁ × ÓÔÒÏËÅ"
-#: src/m4.c:117
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
msgstr "ïûéâëá: ðÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ. (âÅÓËÏÎÅÞÎÏÅ ÒÅËÕÒÓÉ×ÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ?)"
-#: src/m4.c:144
+#: src/m4.c:146
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "ðÏÐÒÏÂÕÊÔÅ '%s --help' ÄÌÑ ÉÎÆÏÒÍÁÃÉÉ.\n"
-#: src/m4.c:148
+#: src/m4.c:150
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [OPTION]... [FILE]...\n"
-#: src/m4.c:149
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -272,14 +413,21 @@ msgstr ""
" -P, --prefix-builtins ÄÏÂÁ×ÌÑÔØ ÐÒÅÆÉËÓ `m4_' ÄÌÑ ×ÓÅÈ ×ÓÔÒÏÅÎÎÙÈ "
"ÆÕÎËÃÉÊ\n"
-#: src/m4.c:162
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr ""
" -W, --word-regexp=REGEXP ÉÓÐÏÌØÚÏ×ÁÔØ REGEXP ÄÌÑ ÓÉÎÔÁËÓÉÓÁ ÉÍÅÎ "
"ÍÁËÒÏÓÏ×\n"
-#: src/m4.c:166
-#, fuzzy
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
msgid ""
"\n"
"Preprocessor features:\n"
@@ -295,7 +443,7 @@ msgstr ""
" -U, --undefine=NAME ÕÄÁÌÉÔØ ×ÓÔÒÏÅÎÎÕÀ ÆÕÎËÃÉÀ NAME\n"
" -s, --synclines ÇÅÎÅÒÉÒÏ×ÁÔØ ÓÔÒÏËÉ `#line NO \"FILE\"'\n"
-#: src/m4.c:174
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -311,7 +459,7 @@ msgstr ""
" -L, --nesting-limit=NUMBER ÉÚÍÅÎÉÔØ ÐÒÅÄÅÌ ÇÌÕÂÉÎÙ ÉÎÔÅÌÅËÔÕÁÌØÎÏÇÏ "
"ÐÏÉÓËÁ\n"
-#: src/m4.c:181
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -323,7 +471,7 @@ msgstr ""
" -F, --freeze-state=FILE × ËÏÎÃÅ ÓÏÚÄÁÔØ ÏÂÒÁÚ ÐÁÍÑÔÉ ÄÌÑ FILE\n"
" -R, --reload-state=FILE × ÎÁÞÁÌÅ ÚÁÇÒÕÖÁÔØ ÏÂÒÁÚ ÐÁÍÑÔÉ ÄÌÑ FILE\n"
-#: src/m4.c:187
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -341,7 +489,7 @@ msgstr ""
" -o, --error-output=FILE ÐÅÒÅÎÁÐÒÁ×ÉÔØ ÏÔÌÁÄÏÞÎÙÊ É ÔÒÁÓÓÉÒÏ×ÏÞÎÙÊ "
"×Ù×ÏÄ × ÆÁÊÌ FILE\n"
-#: src/m4.c:195
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -372,7 +520,7 @@ msgstr ""
" i ÐÏËÁÚÙ×ÁÔØ ÉÚÍÅÎÅÎÉÑ ×Ï ×ÈÏÄÎÙÈ ÆÁÊÌÁÈ\n"
" V ÓÏËÒÁÝÅÎÉÅ ÄÌÑ ×ÓÅÈ ÆÌÁÇÏ× ×ÍÅÓÔÅ\n"
-#: src/m4.c:210
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -380,22 +528,34 @@ msgstr ""
"\n"
"åÓÌÉ FILE ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÉÌÉ FILE ÜÔÏ `-', ÉÓÐÏÌØÚÕÅÔÓÑ ÓÔÁÎÄÁÒÔÎÙÊ ×ÈÏÄ.\n"
-#: src/m4.c:215
+#: src/m4.c:225
msgid ""
"\n"
"Report bugs to <bug-m4@gnu.org>.\n"
msgstr ""
+"\n"
+"ðÏÓÙÌÁÊÔÅ ÏÔÞÅÔÙ Ï ÏÛÉÂËÁÈ ÎÁ <bug-m4@gnu.org>.\n"
-#: src/m4.c:388
+#: src/m4.c:414
#, c-format
msgid "Bad debug flags: `%s'"
msgstr "îÅ×ÅÒÎÙÊ ÆÌÁÇ ÏÔÌÁÄËÉ: '%s'"
-#: src/m4.c:417
-msgid " (options:"
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
+msgstr ""
+
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
msgstr ""
-#: src/m4.c:500
+#: src/m4.c:460
+msgid " (options:"
+msgstr " (ËÌÀÞÉ:"
+
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "÷îõôòåîîññ ïûéâëá: îÅ×ÅÒÎÙÊ ËÏÄ × ËÏÓ×ÅÎÎÙÈ ÁÒÇÕÍÅÎÔÁÈ"
@@ -421,40 +581,65 @@ msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
msgstr ""
"ïûéâëá: ìÉÍÉÔ ÒÅËÕÒÓÉÉ %d ÉÓÞÅÒÐÁÎ, ÉÓÐÏÌØÚÕÊÔÅ -L<N> ÞÔÏÂÙ ÉÚÍÅÎÉÔØ ÅÇÏ"
-#: src/module.c:312
+#: src/module.c:123
#, fuzzy, c-format
-msgid "Module search for `%s' found `%s'"
-msgstr "ðÕÔØ ÐÏÉÓËÁ ÄÌÑ `%s' ÎÁÊÄÅÎ `%s'"
+msgid "ERROR: failed to initialise modules: %s"
+msgstr "ïûéâëá: ÍÏÄÕÌØ `%s' ÎÅ ÎÁÊÄÅÎ: %s"
-#: src/module.c:349
-#, c-format
-msgid "ERROR: cannot find module `%s': %s"
-msgstr ""
+#: src/module.c:221
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr "ïûéâëá: ÍÏÄÕÌØ `%s' ÎÅ ÎÁÊÄÅÎ"
-#: src/module.c:353
-#, c-format
-msgid "ERROR: cannot find module `%s'"
-msgstr ""
+#: src/module.c:224
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr "ïûéâëá: ÍÏÄÕÌØ `%s' ÎÅ ÎÁÊÄÅÎ: %s"
+
+#: src/module.c:274
+#, fuzzy
+msgid "ERROR: cannot close modules"
+msgstr "ïûéâëá: ÍÏÄÕÌØ `%s' ÎÅ ÎÁÊÄÅÎ"
+
+#: src/module.c:277
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close modules: %s"
+msgstr "ïûéâëá: ÍÏÄÕÌØ `%s' ÎÅ ÎÁÊÄÅÎ: %s"
+
+#: src/module.c:284
+#, fuzzy, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr "ïûéâëá: ÍÏÄÕÌØ `%s' ÎÅ ÎÁÊÄÅÎ"
+
+#: src/module.c:288
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr "ïûéâëá: ÍÏÄÕÌØ `%s' ÎÅ ÎÁÊÄÅÎ: %s"
-#: src/output.c:198
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
-msgstr "ïûéâëá: îÅ ÍÏÇÕ ÓÏÚÄÁÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ ÄÌÑ ÒÁÚ×ÅÔ×ÌÅÎÉÑ ÍÁËÒÏÏÂÒÁÂÏÔËÉ"
+msgstr ""
+"ïûéâëá: ïÛÉÂËÁ ÓÏÚÄÁÎÉÑ ×ÒÅÍÅÎÎÏÇÏ ÆÁÊÌÁ ÄÌÑ ÒÁÚ×ÅÔ×ÌÅÎÉÑ ÍÁËÒÏÏÂÒÁÂÏÔËÉ"
-#: src/output.c:208
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
-msgstr "ïûéâëá: îÅ ÍÏÇÕ ÚÁÐÉÓÁÔØ ÒÁÚ×ÅÔ×ÌÅÎÉÅ ×Ï ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ"
+msgstr "ïûéâëá: ïÛÉÂËÁ ÚÁÐÉÓÉ ÒÁÚ×ÅÔ×ÌÅÎÉÑ ×Ï ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ"
-#: src/output.c:292
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr "ïûéâëá: ëÏÐÉÒÕÀ ×ÓÔÁ×ÌÅÎÎÙÊ ÆÁÊÌ"
-#: src/output.c:473
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr "ïûéâëá: þÉÔÁÀ ×ÓÔÁ×ÌÅÎÎÙÊ ÆÁÊÌ"
-#: src/output.c:572
+#: src/output.c:636
msgid "Cannot stat diversion"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÏÄÓÞÉÔÁÔØ ÒÁÚ×ÅÔ×ÌÅÎÉÅ"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÏÄÓÞÉÔÁÔØ ÒÁÚ×ÅÔ×ÌÅÎÉÑ"
+
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
#: src/path.c:157
#, c-format
@@ -463,11 +648,11 @@ msgstr "ðÕÔØ ÐÏÉÓËÁ ÄÌÑ `%s' ÎÁÊÄÅÎ `%s'"
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr "ëÏÎÞÉÌÁÓØ ×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ?\n"
-#: src/stackovf.c:190
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
@@ -475,7 +660,7 @@ msgstr ""
"ïÂÎÁÒÕÖÅÎ ×ÙÈÏÄ ÚÁ ÇÒÁÎÉÃÕ ÐÁÍÑÔÉ (SIGSEGV). üÔÏ ÌÉÂÏ ÐÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ\n"
"ÉÌÉ ÏÛÉÂËÁ × "
-#: src/stackovf.c:195
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ". ðÒÏ×ÅÒËÁ ÎÁ ×ÏÚÍÏÖÎÕÀ ÂÅÓËÏÎÅÞÎÕÀ ÒÅËÕÒÓÉÀ.\n"
@@ -488,41 +673,14 @@ msgstr "÷îõôòåîîññ ïûéâëá: ÎÅ×ÅÒÎÙÊ ÒÅÖÉÍ ÄÌÑ symbol_lookup ()"
msgid "Name `%s' is unknown\n"
msgstr "éÍÑ `%s' ÎÅÉÚ×ÅÓÔÎÏ\n"
-#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
-#~ msgstr "÷îõôòåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × pop_input ()"
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "îÅÏÐÒÅÄÅÌÅÎÎÙÊ ÍÁËÒÏÓ '%s'"
+
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "ðÏÉÓË ÍÏÄÕÌÑ `%s' ÎÁÊÄÅÎ `%s'"
#~ msgid "Bad regular expression: `%s': %s"
#~ msgstr "îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ: '%s': %s"
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: ÏÐÃÉÑ `%s' ÎÅÏÄÎÏÚÎÁÞÎÁ\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: Õ ÏÐÃÉÉ `--%s' ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÁÒÇÕÍÅÎÔÏ×\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: Õ ÏÐÃÉÉ `%c%s' ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÁÒÇÕÍÅÎÔÏ×\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: Õ ÏÐÃÉÉ `%s' ÄÏÌÖÅÎ ÂÙÔØ ÁÒÇÕÍÅÎÔ\n"
-
-#~ msgid "%s: unrecognized option `--%s'\n"
-#~ msgstr "%s: ÎÅÉÚ×ÅÓÔÎÁÑ ÏÐÃÉÑ `--%s'\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: ÎÅÉÚ×ÅÓÔÎÁÑ ÏÐÃÉÑ '%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: ÚÁÐÒÅÝÅÎÎÁÑ ÏÐÃÉÑ -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: ÎÅ×ÅÒÎÁÑ ÏÐÃÉÑ -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: ÏÐÃÉÉ ÎÅÏÂÈÏÄÉÍ ÁÒÇÕÍÅÎÔ -- %c\n"
-
-#~ msgid "No previous regular expression"
-#~ msgstr "îÅÔ ÐÒÅÄÛÅÄÓÔ×ÕÀÝÅÇÏ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ"
-
-#~ msgid "Memory exhausted"
-#~ msgstr "ðÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ"
+#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
+#~ msgstr "÷îõôòåîîññ ïûéâëá: ïÛÉÂËÁ ×ÈÏÄÎÏÇÏ ÓÔÅËÁ × pop_input ()"
diff --git a/po/sv.gmo b/po/sv.gmo
index 0c3910aa..f230b6d1 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 1da3458c..b156a781 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,276 +1,391 @@
# Swedish messages for m4
-# Copyright (C) 1996 Free Software Foundation, Inc.
-# <Jan.Djarv@mbox200.swipnet.se>, 1996.
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Jan Djärv <Jan.Djarv@mbox200.swipnet.se>, 1999
# $Revision$
#
msgid ""
msgstr ""
-"Project-Id-Version: m4 1.4.3\n"
-"POT-Creation-Date: 1998-11-29 04:20+0100\n"
-"PO-Revision-Date: $Date$\n"
+"Project-Id-Version: m4 1.4n\n"
+"POT-Creation-Date: 2000-01-10 05:27+0100\n"
+"PO-Revision-Date: 1999-03-28 18:56 +02:00\n"
"Last-Translator: Jan Djärv <Jan.Djarv@mbox200.swipnet.se>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
-#: src/builtin.c:337
-#, fuzzy, c-format
+#: lib/getopt.c:677
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:702
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:707
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:725 lib/getopt.c:898
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:784
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:787
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:817 lib/getopt.c:947
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:864
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:882
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/obstack.c:471
+msgid "memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1019
+msgid "Success"
+msgstr ""
+
+#: lib/regex.c:1022
+msgid "No match"
+msgstr ""
+
+#: lib/regex.c:1025
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "Otillåtet reguljäruttryck \"%s\": %s"
+
+#: lib/regex.c:1028
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regex.c:1031
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regex.c:1034
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regex.c:1037
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regex.c:1040
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regex.c:1043
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regex.c:1046
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regex.c:1049
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regex.c:1052
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regex.c:1055 lib/xmalloc.c:82
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regex.c:1058
+#, fuzzy
+msgid "Invalid preceding regular expression"
+msgstr "Fel när reguljäruttrycket \"%s\" matchades"
+
+#: lib/regex.c:1061
+#, fuzzy
+msgid "Premature end of regular expression"
+msgstr "För tidigt filslut i fryst fil"
+
+#: lib/regex.c:1064
+#, fuzzy
+msgid "Regular expression too big"
+msgstr "Otillåtet reguljäruttryck \"%s\": %s"
+
+#: lib/regex.c:1067
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regex.c:5564
+#, fuzzy
+msgid "No previous regular expression"
+msgstr "Fel när reguljäruttrycket \"%s\" matchades"
+
+#: src/builtin.c:349
+#, c-format
msgid "Warning: Too few arguments to built-in `%s'"
msgstr "Varning: För få argument till inbyggt makro \"%s\""
-#: src/builtin.c:343
-#, fuzzy, c-format
+#: src/builtin.c:355
+#, c-format
msgid "Warning: Excess arguments to built-in `%s' ignored"
msgstr "Varning: Överskottsargument till inbyggt makro \"%s\" ignorerade"
-#: src/builtin.c:371
-#, fuzzy, c-format
+#: src/builtin.c:383
+#, c-format
msgid "Non-numeric argument to built-in `%s'"
msgstr "Ickenumeriskt argument till inbyggt makro \"%s\""
-#: src/builtin.c:482
-#, fuzzy
+#: src/builtin.c:494
msgid "INTERNAL ERROR: Bad token data type in define_macro ()"
msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i define_macro ()"
-#: src/builtin.c:677 src/builtin.c:740 src/builtin.c:1383 src/builtin.c:1407
-#, fuzzy, c-format
+#: src/builtin.c:681 src/builtin.c:780 src/builtin.c:1423 src/builtin.c:1447
+#, c-format
msgid "Undefined name %s"
msgstr "Odefinierat namn \"%s\""
-#: src/builtin.c:705
-#, fuzzy
+#: src/builtin.c:721
msgid "INTERNAL ERROR: Builtin not found in builtin table!"
msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen!"
-#: src/builtin.c:713
-#, fuzzy
+#: src/builtin.c:729
msgid "INTERNAL ERROR: Bad token data type in m4_dumpdef ()"
msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i m4_dumpdef ()"
-#: src/builtin.c:764
+#: src/builtin.c:804
#, fuzzy, c-format
-msgid "Undefined macro `%s'"
-msgstr "Odefinierat makro \"%s\""
+msgid "Undefined name `%s'"
+msgstr "Odefinierat namn \"%s\""
-#: src/builtin.c:802
-#, fuzzy
+#: src/builtin.c:842
msgid "INTERNAL ERROR: Bad symbol type in m4_defn ()"
msgstr "INTERNT FEL: Otillåten symboltyp i m4_defn ()"
-#: src/builtin.c:868
-#, fuzzy, c-format
+#: src/builtin.c:908
+#, c-format
msgid "Cannot open pipe to command `%s'"
msgstr "Kan inte skapa rör till kommandot \"%s\""
-#: src/builtin.c:908
-#, fuzzy, c-format
+#: src/builtin.c:948
+#, c-format
msgid "Radix in eval out of range (radix = %d)"
msgstr "Otillåten bas i \"eval\" (bas = %d)"
-#: src/builtin.c:917
-#, fuzzy
+#: src/builtin.c:957
msgid "Negative width to eval"
msgstr "Negativ bredd till \"eval\""
-#: src/builtin.c:1023
-#, fuzzy, c-format
+#: src/builtin.c:1063
+#, c-format
msgid "Non-numeric argument to %s"
msgstr "Ickenumeriskt argument till %s"
-#: src/builtin.c:1035
-#, fuzzy, c-format
+#: src/builtin.c:1075
+#, c-format
msgid "Cannot undivert %s"
msgstr "Kan inte återleda %s"
-#: src/builtin.c:1183
-#, fuzzy, c-format
+#: src/builtin.c:1223
+#, c-format
msgid "Undefined syntax code %c"
-msgstr "Odefinierat namn \"%s\""
+msgstr "Odefinierad syntaxkod %c"
-#: src/builtin.c:1234 src/freeze.c:207
-#, fuzzy, c-format
+#: src/builtin.c:1274 src/freeze.c:211
+#, c-format
msgid "Cannot open %s"
msgstr "Kan inte öppna %s"
-#: src/builtin.c:1443
-#, fuzzy, c-format
+#: src/builtin.c:1483
+#, c-format
msgid "Debugmode: bad debug flags: `%s'"
msgstr "Felsökningsläge: okänd flagga: \"%s\""
-#: src/builtin.c:1479
-#, fuzzy, c-format
+#: src/builtin.c:1519
+#, c-format
msgid "Cannot set error file: %s"
msgstr "Kan inte sätta felutskriftsfil: %s"
-#: src/builtin.c:1696
-#, fuzzy
+#: src/builtin.c:1740
msgid "WARNING: \\0 will disappear, use \\& instead in replacements"
msgstr "VARNING: \\0 kommer att försvinna, använd \\& i ersättningar"
-#: src/builtin.c:1757 src/builtin.c:1817 src/input.c:1012
-#, fuzzy, c-format
+#: src/builtin.c:1801 src/builtin.c:1861 src/input.c:1014
+#, c-format
msgid "Bad regular expression `%s': %s"
msgstr "Otillåtet reguljäruttryck \"%s\": %s"
-#: src/builtin.c:1768 src/builtin.c:1841
-#, fuzzy, c-format
+#: src/builtin.c:1812 src/builtin.c:1885
+#, c-format
msgid "Error matching regular expression `%s'"
-msgstr "Reguljäruttrycket \"%s\" matchar inte"
+msgstr "Fel när reguljäruttrycket \"%s\" matchades"
-#: src/debug.c:379
-#, fuzzy
+#: src/debug.c:380
msgid "INTERNAL ERROR: Builtin not found in builtin table! (trace_pre ())"
msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen (trace_pre ())"
-#: src/debug.c:387
-#, fuzzy
+#: src/debug.c:388
msgid "INTERNAL ERROR: Bad token data type (trace_pre ())"
msgstr "INTERNT FEL: Otillåten lexikalisk datatyp (trace_pre ())"
#: src/eval.c:309
-#, fuzzy, c-format
+#, c-format
msgid "Bad expression in eval (missing right parenthesis): %s"
msgstr "Otillåtet uttryck i \"eval\" (högerparentes saknas): %s"
#: src/eval.c:315
-#, fuzzy, c-format
+#, c-format
msgid "Bad expression in eval: %s"
msgstr "Otillåtet uttryck i \"eval\": %s"
#: src/eval.c:320
-#, fuzzy, c-format
+#, c-format
msgid "Bad expression in eval (bad input): %s"
msgstr "Otillåtet uttryck i \"eval\" (otillåtet indata): %s"
#: src/eval.c:325
-#, fuzzy, c-format
+#, c-format
msgid "Bad expression in eval (excess input): %s"
msgstr "Otillåtet uttryck i \"eval\" (för mycket indata): %s"
#: src/eval.c:330
-#, fuzzy, c-format
+#, c-format
msgid "Divide by zero in eval: %s"
msgstr "Division med noll i \"eval\": %s"
#: src/eval.c:335
-#, fuzzy, c-format
+#, c-format
msgid "Modulo by zero in eval: %s"
msgstr "Modulo med noll i \"eval\": %s"
#: src/eval.c:340
-#, fuzzy
msgid "INTERNAL ERROR: Bad error code in evaluate ()"
msgstr "INTERNT FEL: Otillåten felkod i evaluate ()"
#: src/eval.c:594
-#, fuzzy
msgid "INTERNAL ERROR: Bad comparison operator in cmp_term ()"
msgstr "INTERNT FEL: Otillåten jämförelseoperator i cmp_term ()"
#: src/eval.c:639
-#, fuzzy
msgid "INTERNAL ERROR: Bad shift operator in shift_term ()"
msgstr "INTERNT FEL: Otillåten skiftoperator i shift_term ()"
#: src/eval.c:738
-#, fuzzy
msgid "INTERNAL ERROR: Bad operator in mult_term ()"
msgstr "INTERNT FEL: Otillåten operator i mult_term ()"
-#: src/freeze.c:115
-#, fuzzy
+#: src/freeze.c:119
msgid "INTERNAL ERROR: Built-in not found in builtin table!"
msgstr "INTERNT FEL: Inbyggt makro finns inte i tabellen!"
-#: src/freeze.c:128
-#, fuzzy
+#: src/freeze.c:132
msgid "INTERNAL ERROR: Bad token data type in freeze_one_symbol ()"
msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i freeze_one_symbol ()"
-#: src/freeze.c:159
-#, fuzzy
+#: src/freeze.c:163
msgid "Expecting line feed in frozen file"
-msgstr "Förväntar nyrad i fryst fil"
+msgstr "Nyrad förväntas i fryst fil"
-#: src/freeze.c:161
-#, fuzzy, c-format
+#: src/freeze.c:165
+#, c-format
msgid "Expecting character `%c' in frozen file"
-msgstr "Förväntar tecknet \"%c\" i fryst fil"
+msgstr "Tecknet \"%c\" förväntas i fryst fil"
-#: src/freeze.c:218
-#, fuzzy
+#: src/freeze.c:222
msgid "Ill-formated frozen file"
msgstr "Korrupt fryst fil"
-#: src/freeze.c:273 src/freeze.c:289
-#, fuzzy
+#: src/freeze.c:277 src/freeze.c:293
msgid "Premature end of frozen file"
msgstr "För tidigt filslut i fryst fil"
-#: src/freeze.c:323
-#, fuzzy, c-format
+#: src/freeze.c:327
+#, c-format
msgid "`%s' from frozen file not found in builtin table!"
msgstr "\"%s\" från fryst fil hittades inte i tabellen för inbyggda makron!"
#: src/input.c:318
-#, fuzzy, c-format
+#, c-format
msgid "Input reverted to %s, line %d"
msgstr "Indata återgår till %s, rad %d"
#: src/input.c:346
-#, fuzzy, c-format
+#, c-format
msgid "Input read from %s"
msgstr "Indata läses från %s"
#: src/input.c:506
-#, fuzzy
msgid "INTERNAL ERROR: Recursive push_string!"
msgstr "INTERNT FEL: Rekursiv push_string!"
#: src/input.c:623
-#, fuzzy
msgid "INTERNAL ERROR: Bad call to init_macro_token ()"
msgstr "INTERNT FEL: Otillåtet anrop till init_macro_token ()"
#: src/input.c:663
-#, fuzzy
msgid "INTERNAL ERROR: Input stack botch in next_char ()"
msgstr "INTERNT FEL: Instacken havererade i next_char ()"
#: src/input.c:700
-#, fuzzy
msgid "INTERNAL ERROR: Input stack botch in peek_input ()"
msgstr "INTERNT FEL: Instacken havererade i peek_input ()"
-#: src/input.c:803
-#, fuzzy
+#: src/input.c:805
msgid "NONE"
msgstr "INGET"
-#: src/input.c:1197 src/input.c:1224
-#, fuzzy
+#: src/input.c:1199 src/input.c:1226
msgid "ERROR: EOF in string"
msgstr "FEL: Filslut i sträng"
-#: src/m4.c:117
-#, fuzzy
+#: src/m4.c:119
msgid "ERROR: Stack overflow. (Infinite define recursion?)"
-msgstr "FEL: Stacken flödar över. (Oändlig rekursion?)"
+msgstr "FEL: Stacken flödar över. (Oändlig definitionsrekursion?)"
-#: src/m4.c:144
-#, fuzzy, c-format
+#: src/m4.c:146
+#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Försök med \"%s --help\" för mer information.\n"
-#: src/m4.c:148
-#, fuzzy, c-format
+#: src/m4.c:150
+#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Användning: %s [FLAGGA]... [FIL]...\n"
-#: src/m4.c:149
-#, fuzzy
+#: src/m4.c:151
msgid ""
"Mandatory or optional arguments to long options are mandatory or optional\n"
"for short options too.\n"
@@ -284,24 +399,30 @@ msgid ""
" -P, --prefix-builtins force a `m4_' prefix to all builtins\n"
msgstr ""
"Obligatoriska respektive valfria argument för långa flaggor är\n"
-"obligatoriska respektive valfria även för korta flaggor.\n"
+"obligatoriska respektive valfria även för korta.\n"
"\n"
"Körlägen:\n"
" --help visa denna hjälptext och avsluta\n"
" --version visa versionsinformation och avsluta\n"
" -e, --interactive obuffrad utskrift, ignorera avbrott\n"
" -E, --fatal-warnings avsluta exekvering efter första varningen\n"
-" -Q, --quiet, --silent undertryck vissa varningar för inbyggda "
+" -Q, --quiet, --silent undertryck vissa varningar om inbyggda "
"makron\n"
" -P, --prefix-builtins alla inbyggda makron börjar med `m4_'\n"
-#: src/m4.c:162
-#, fuzzy
+#: src/m4.c:164
msgid " -W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"
msgstr " -W, --word-regexp=REGEXP använd REGEXP som makronamnsyntax\n"
-#: src/m4.c:166
-#, fuzzy
+#: src/m4.c:169
+msgid ""
+"\n"
+"Dynamic loading features:\n"
+" -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n"
+" -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"
+msgstr ""
+
+#: src/m4.c:176
msgid ""
"\n"
"Preprocessor features:\n"
@@ -317,8 +438,7 @@ msgstr ""
" -U, --undefine=NAMN ta bort inbyggt makro\n"
" -s, --synclines generera `#line NNN \"FIL\"' rader\n"
-#: src/m4.c:174
-#, fuzzy
+#: src/m4.c:184
msgid ""
"\n"
"Limits control:\n"
@@ -330,10 +450,9 @@ msgstr ""
"Begränsningskontroll:\n"
" -G, --traditional undertryck alla extra GNU tillägg\n"
" -H, --hashsize=PRIMTAL sätt storlek på symboltabellen\n"
-" -L, --nesting-limit=NUMMER ändra artificiell nästningsnivå\n"
+" -L, --nesting-limit=ANTAL ändra artificiell nästningsnivå\n"
-#: src/m4.c:181
-#, fuzzy
+#: src/m4.c:191
msgid ""
"\n"
"Frozen state files:\n"
@@ -342,11 +461,10 @@ msgid ""
msgstr ""
"\n"
"Frysta tillståndsfiler:\n"
-" -F, --freeze-state=FIL spara fryst tillstånd i FIL i slutet\n"
-" -R, --reload-state=FIL läs fryst tillstånd från FIL i början\n"
+" -F, --freeze-state=FIL spara fryst tillstånd i FIL vid avslut\n"
+" -R, --reload-state=FIL läs fryst tillstånd från FIL vid start\n"
-#: src/m4.c:187
-#, fuzzy
+#: src/m4.c:197
msgid ""
"\n"
"Debugging:\n"
@@ -360,12 +478,11 @@ msgstr ""
" -d, --debug=[FLAGGOR] sätt felsökningsnivå\n"
" (inga FLAGGOR tolkas som \"aeq\")\n"
" -t, --trace=NAMN spåra NAMN när den blir definierad\n"
-" -l, --arglength=NUMMER begränsa makrospårningsstorleken\n"
+" -l, --arglength=ANTAL begränsa makrospårningsstorleken\n"
" -o, --error-output=FIL avled felsöknings och spårutskrifter till "
"FIL\n"
-#: src/m4.c:195
-#, fuzzy
+#: src/m4.c:205
msgid ""
"\n"
"FLAGS is any of:\n"
@@ -395,8 +512,7 @@ msgstr ""
" i visa byten av infil\n"
" V förkortning för alla ovanstående flaggor\n"
-#: src/m4.c:210
-#, fuzzy
+#: src/m4.c:220
msgid ""
"\n"
"If no FILE or if FILE is `-', standard input is read.\n"
@@ -404,105 +520,130 @@ msgstr ""
"\n"
"Om ingen FIL anges eller om FIL är `-', så läses standard in.\n"
-#: src/m4.c:215
+#: src/m4.c:225
msgid ""
"\n"
"Report bugs to <bug-m4@gnu.org>.\n"
msgstr ""
+"\n"
+"Rapportera fel till <bug-m4@gnu.org>.\n"
+"Rapportera fel på översättningen till <sv@li.org>.\n"
-#: src/m4.c:388
-#, fuzzy, c-format
+#: src/m4.c:414
+#, c-format
msgid "Bad debug flags: `%s'"
msgstr "Okänd felsökningsflagga \"%s\""
-#: src/m4.c:417
-msgid " (options:"
+#: src/m4.c:436
+#, c-format
+msgid "ERROR: failed to add search directory `%s'"
msgstr ""
-#: src/m4.c:500
-#, fuzzy
+#: src/m4.c:440
+#, c-format
+msgid "ERROR: failed to add search directory `%s': %s"
+msgstr ""
+
+#: src/m4.c:460
+msgid " (options:"
+msgstr " (tillägg:"
+
+#: src/m4.c:542
msgid "INTERNAL ERROR: Bad code in deferred arguments"
msgstr "INTERNT FEL: Otillåten kod i argument"
#: src/macro.c:97
-#, fuzzy
msgid "INTERNAL ERROR: Bad token type in expand_token ()"
msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i expand_token ()"
#: src/macro.c:163
-#, fuzzy
msgid "ERROR: EOF in argument list"
msgstr "FEL: Filslut i argumentlistan"
#: src/macro.c:182
-#, fuzzy
msgid "INTERNAL ERROR: Bad token type in expand_argument ()"
msgstr "INTERNT FEL: Otillåten lexikalisk datatyp i expand_argument ()"
#: src/macro.c:259
-#, fuzzy
msgid "INTERNAL ERROR: Bad symbol type in call_macro ()"
msgstr "INTERNT FEL: Otillåten symboltyp i call_macro ()"
#: src/macro.c:288
-#, fuzzy, c-format
+#, c-format
msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
msgstr "FEL: Rekursionsgräns %d överskriden, använd -L<N> för att ändra"
-#: src/module.c:312
+#: src/module.c:123
#, fuzzy, c-format
-msgid "Module search for `%s' found `%s'"
-msgstr "\"%s\" hittades som \"%s\" i sökvägen"
+msgid "ERROR: failed to initialise modules: %s"
+msgstr "FEL: kan inte hitta modul \"%s\": %s"
-#: src/module.c:349
-#, c-format
-msgid "ERROR: cannot find module `%s': %s"
-msgstr ""
+#: src/module.c:221
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s'"
+msgstr "FEL: kan inte hitta modul \"%s\""
-#: src/module.c:353
-#, c-format
-msgid "ERROR: cannot find module `%s'"
-msgstr ""
+#: src/module.c:224
+#, fuzzy, c-format
+msgid "ERROR: cannot find module: `%s': %s"
+msgstr "FEL: kan inte hitta modul \"%s\": %s"
-#: src/output.c:198
+#: src/module.c:274
#, fuzzy
+msgid "ERROR: cannot close modules"
+msgstr "FEL: kan inte hitta modul \"%s\""
+
+#: src/module.c:277
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close modules: %s"
+msgstr "FEL: kan inte hitta modul \"%s\": %s"
+
+#: src/module.c:284
+#, fuzzy, c-format
+msgid "ERROR: cannot close module: `%s'"
+msgstr "FEL: kan inte hitta modul \"%s\""
+
+#: src/module.c:288
+#, fuzzy, c-format
+msgid "ERROR: cannot cannot close module: `%s': %s"
+msgstr "FEL: kan inte hitta modul \"%s\": %s"
+
+#: src/output.c:262
msgid "ERROR: Cannot create temporary file for diversion"
msgstr "FEL: Kan inte skapa temporär fil för avledning"
-#: src/output.c:208
-#, fuzzy
+#: src/output.c:272
msgid "ERROR: Cannot flush diversion to temporary file"
msgstr "FEL: Kan inte skriva avledningen till temporär fil"
-#: src/output.c:292
-#, fuzzy
+#: src/output.c:356
msgid "ERROR: Copying inserted file"
msgstr "FEL: Kopiering av insatt fil"
-#: src/output.c:473
-#, fuzzy
+#: src/output.c:537
msgid "ERROR: Reading inserted file"
msgstr "FEL: Läsning av insatt fil"
-#: src/output.c:572
-#, fuzzy
+#: src/output.c:636
msgid "Cannot stat diversion"
msgstr "Kan inte ta status på avledningen"
+#: src/output.c:639
+msgid "Diversion too large"
+msgstr ""
+
#: src/path.c:157
-#, fuzzy, c-format
+#, c-format
msgid "Path search for `%s' found `%s'"
msgstr "\"%s\" hittades som \"%s\" i sökvägen"
#. sbrk failed. Assume the RLIMIT_VMEM prevents expansion even
#. if the stack limit has not been reached.
-#: src/stackovf.c:168
-#, fuzzy
+#: src/stackovf.c:175
msgid "VMEM limit exceeded?\n"
msgstr "VMEM begränsning överskriden?\n"
-#: src/stackovf.c:190
-#, fuzzy
+#: src/stackovf.c:197
msgid ""
"Memory bounds violation detected (SIGSEGV). Either a stack overflow\n"
"occurred, or there is a bug in "
@@ -510,69 +651,21 @@ msgstr ""
"Otillåten referens utanför minnesgränserna har upptäckts (SIGSEGV).\n"
"Antingen flödade stacken över eller så är det ett fel i "
-#: src/stackovf.c:195
-#, fuzzy
+#: src/stackovf.c:202
msgid ". Check for possible infinite recursion.\n"
msgstr ". Kontrollera om oändlig rekursion förekommer.\n"
#: src/symtab.c:190
-#, fuzzy
msgid "INTERNAL ERROR: Illegal mode to symbol_lookup ()"
msgstr "INTERNT FEL: Otillåtet läge till symbol_lookup ()"
#: src/symtab.c:243
-#, fuzzy, c-format
+#, c-format
msgid "Name `%s' is unknown\n"
msgstr "Namnet \"%s\" är okänt\n"
-#, fuzzy
-#~ msgid "INTERNAL ERROR: Input stack botch in pop_input ()"
-#~ msgstr "INTERNT FEL: Instacken havererade i pop_input ()"
-
-#, fuzzy
-#~ msgid "Bad regular expression: `%s': %s"
-#~ msgstr "Otillåtet reguljäruttryck \"%s\": %s"
+#~ msgid "Undefined macro `%s'"
+#~ msgstr "Odefinierat makro \"%s\""
-#, fuzzy
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: flaggan \"%s\" är tvetydig\n"
-
-#, fuzzy
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: flaggan \"--%s\" tar inget argument\n"
-
-#, fuzzy
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
-
-#, fuzzy
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: flaggan \"%s\" behöver ett argument\n"
-
-#, fuzzy
-#~ msgid "%s: unrecognized option `--%s'\n"
-#~ msgstr "%s: okänd flagga \"--%s\"\n"
-
-#, fuzzy
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: okänd flagga \"%c%s\"\n"
-
-#, fuzzy
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: otillåten flagga -- %c\n"
-
-#, fuzzy
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: ogiltig flagga -- %c\n"
-
-#, fuzzy
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: flaggan behöver ett argument -- %c\n"
-
-#, fuzzy
-#~ msgid "No previous regular expression"
-#~ msgstr "Inget föregående reguljäruttryck"
-
-#, fuzzy
-#~ msgid "Memory exhausted"
-#~ msgstr "Minnet slut"
+#~ msgid "Module search for `%s' found `%s'"
+#~ msgstr "Sökning av modul \"%s\" hittade \"%s\""
diff --git a/src/Makefile.am b/src/Makefile.am
index 91966697..6b3989f0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,14 +1,16 @@
AUTOMAKE_OPTIONS = ansi2knr
+MAINTAINERCLEANFILES = Makefile.in ansi2knr.c ansi2knr.1 pathconf.h
+
LIBS = @LIBS@
-CFLAGS = -Wall @CFLAGS@
+CFLAGS = @CFLAGS@
MODULE_PATH=@MODULE_PATH@
bin_PROGRAMS = m4
-INCLUDES = -I$(top_srcdir)/lib @INTLINCL@
+INCLUDES = -I$(top_srcdir)/libltdl -I$(top_srcdir)/lib @INTLINCL@
m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c evalmp.c \
format.c freeze.c input.c macro.c output.c path.c symtab.c \
@@ -16,7 +18,7 @@ m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c evalmp.c \
EXTRA_m4_SOURCES = numb.c numb.h
-m4_LDADD = ../lib/libm4.a @INTLLIBS@
+m4_LDADD = ../libltdl/libltdlc.la ../lib/libm4.a @INTLLIBS@
m4_LDFLAGS = @DLLDFLAGS@
path.o: path.c pathconf.h
diff --git a/src/Makefile.in b/src/Makefile.in
index a2bcb465..fb2846fa 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.3b from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
-SHELL = /bin/sh
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -59,6 +59,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+AS = @AS@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -66,6 +67,7 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DLLDFLAGS = @DLLDFLAGS@
+DLLTOOL = @DLLTOOL@
GENCAT = @GENCAT@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
@@ -85,6 +87,7 @@ MKINSTALLDIRS = @MKINSTALLDIRS@
MODULES_DIR = @MODULES_DIR@
MSGFMT = @MSGFMT@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
@@ -100,23 +103,24 @@ pkglibexecdir = @pkglibexecdir@
AUTOMAKE_OPTIONS = ansi2knr
+MAINTAINERCLEANFILES = Makefile.in ansi2knr.c ansi2knr.1 pathconf.h
+
LIBS = @LIBS@
-CFLAGS = -Wall @CFLAGS@
+CFLAGS = @CFLAGS@
-MODULE_PATH=@MODULE_PATH@
+MODULE_PATH = @MODULE_PATH@
bin_PROGRAMS = m4
-INCLUDES = -I$(top_srcdir)/lib @INTLINCL@
+INCLUDES = -I$(top_srcdir)/libltdl -I$(top_srcdir)/lib @INTLINCL@
+
+m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c evalmp.c format.c freeze.c input.c macro.c output.c path.c symtab.c stackovf.c module.c
-m4_SOURCES = m4.c m4.h builtin.c builtin.h debug.c eval.c evalmp.c \
- format.c freeze.c input.c macro.c output.c path.c symtab.c \
- stackovf.c module.c
EXTRA_m4_SOURCES = numb.c numb.h
-m4_LDADD = ../lib/libm4.a @INTLLIBS@
+m4_LDADD = ../libltdl/libltdlc.la ../lib/libm4.a @INTLLIBS@
m4_LDFLAGS = @DLLDFLAGS@
EXTRA_DIST =
@@ -133,25 +137,25 @@ ANSI2KNR = @ANSI2KNR@
m4_OBJECTS = m4$U.o builtin$U.o debug$U.o eval$U.o evalmp$U.o \
format$U.o freeze$U.o input$U.o macro$U.o output$U.o path$U.o \
symtab$U.o stackovf$U.o module$U.o
-m4_DEPENDENCIES = ../lib/libm4.a
+m4_DEPENDENCIES = ../libltdl/libltdlc.la ../lib/libm4.a
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = Makefile.am Makefile.in ansi2knr.1 ansi2knr.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
-GZIP = --best
+GZIP_ENV = --best
SOURCES = $(m4_SOURCES) $(EXTRA_m4_SOURCES)
OBJECTS = $(m4_OBJECTS)
-all: Makefile $(ANSI2KNR) $(PROGRAMS)
-
+all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -248,35 +252,35 @@ m4: $(m4_OBJECTS) $(m4_DEPENDENCIES)
@rm -f m4
$(LINK) $(m4_LDFLAGS) $(m4_OBJECTS) $(m4_LDADD) $(LIBS)
builtin_.c: builtin.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/builtin.c; then echo $(srcdir)/builtin.c; else echo builtin.c; fi` | $(ANSI2KNR) > builtin_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/builtin.c; then echo $(srcdir)/builtin.c; else echo builtin.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > builtin_.c
debug_.c: debug.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/debug.c; then echo $(srcdir)/debug.c; else echo debug.c; fi` | $(ANSI2KNR) > debug_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/debug.c; then echo $(srcdir)/debug.c; else echo debug.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > debug_.c
eval_.c: eval.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/eval.c; then echo $(srcdir)/eval.c; else echo eval.c; fi` | $(ANSI2KNR) > eval_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/eval.c; then echo $(srcdir)/eval.c; else echo eval.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > eval_.c
evalmp_.c: evalmp.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/evalmp.c; then echo $(srcdir)/evalmp.c; else echo evalmp.c; fi` | $(ANSI2KNR) > evalmp_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/evalmp.c; then echo $(srcdir)/evalmp.c; else echo evalmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > evalmp_.c
format_.c: format.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/format.c; then echo $(srcdir)/format.c; else echo format.c; fi` | $(ANSI2KNR) > format_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/format.c; then echo $(srcdir)/format.c; else echo format.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > format_.c
freeze_.c: freeze.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/freeze.c; then echo $(srcdir)/freeze.c; else echo freeze.c; fi` | $(ANSI2KNR) > freeze_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/freeze.c; then echo $(srcdir)/freeze.c; else echo freeze.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > freeze_.c
input_.c: input.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/input.c; then echo $(srcdir)/input.c; else echo input.c; fi` | $(ANSI2KNR) > input_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/input.c; then echo $(srcdir)/input.c; else echo input.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > input_.c
m4_.c: m4.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/m4.c; then echo $(srcdir)/m4.c; else echo m4.c; fi` | $(ANSI2KNR) > m4_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/m4.c; then echo $(srcdir)/m4.c; else echo m4.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > m4_.c
macro_.c: macro.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/macro.c; then echo $(srcdir)/macro.c; else echo macro.c; fi` | $(ANSI2KNR) > macro_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/macro.c; then echo $(srcdir)/macro.c; else echo macro.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > macro_.c
module_.c: module.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/module.c; then echo $(srcdir)/module.c; else echo module.c; fi` | $(ANSI2KNR) > module_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/module.c; then echo $(srcdir)/module.c; else echo module.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > module_.c
numb_.c: numb.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/numb.c; then echo $(srcdir)/numb.c; else echo numb.c; fi` | $(ANSI2KNR) > numb_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/numb.c; then echo $(srcdir)/numb.c; else echo numb.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > numb_.c
output_.c: output.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/output.c; then echo $(srcdir)/output.c; else echo output.c; fi` | $(ANSI2KNR) > output_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/output.c; then echo $(srcdir)/output.c; else echo output.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > output_.c
path_.c: path.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/path.c; then echo $(srcdir)/path.c; else echo path.c; fi` | $(ANSI2KNR) > path_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/path.c; then echo $(srcdir)/path.c; else echo path.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > path_.c
stackovf_.c: stackovf.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stackovf.c; then echo $(srcdir)/stackovf.c; else echo stackovf.c; fi` | $(ANSI2KNR) > stackovf_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stackovf.c; then echo $(srcdir)/stackovf.c; else echo stackovf.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stackovf_.c
symtab_.c: symtab.c $(ANSI2KNR)
- $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/symtab.c; then echo $(srcdir)/symtab.c; else echo symtab.c; fi` | $(ANSI2KNR) > symtab_.c
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/symtab.c; then echo $(srcdir)/symtab.c; else echo symtab.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > symtab_.c
builtin_.o builtin_.lo debug_.o debug_.lo eval_.o eval_.lo evalmp_.o \
evalmp_.lo format_.o format_.lo freeze_.o freeze_.lo input_.o input_.lo \
m4_.o m4_.lo macro_.o macro_.lo module_.o module_.lo numb_.o numb_.lo \
@@ -286,8 +290,12 @@ symtab_.o symtab_.lo : $(ANSI2KNR)
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
+ && mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
@@ -315,48 +323,38 @@ subdir = src
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
done
-builtin.o: builtin.c m4.h ../config.h ../lib/obstack.h builtin.h \
- ../lib/regex.h
-debug.o: debug.c m4.h ../config.h ../lib/obstack.h
-eval.o: eval.c m4.h ../config.h ../lib/obstack.h numb.c numb.h
-evalmp.o: evalmp.c m4.h ../config.h ../lib/obstack.h eval.c numb.c \
- numb.h
-format.o: format.c m4.h ../config.h ../lib/obstack.h
-freeze.o: freeze.c m4.h ../config.h ../lib/obstack.h
-input.o: input.c m4.h ../config.h ../lib/obstack.h
-m4.o: m4.c m4.h ../config.h ../lib/obstack.h ../lib/getopt.h \
- ../lib/error.h
-macro.o: macro.c m4.h ../config.h ../lib/obstack.h
-module.o: module.c m4.h ../config.h ../lib/obstack.h pathconf.h
-mpeval.o: mpeval.c m4.h ../config.h ../lib/obstack.h eval.c numb.c \
- numb.h
-numb.o: numb.c m4.h ../config.h ../lib/obstack.h numb.h
-output.o: output.c m4.h ../config.h ../lib/obstack.h
-path.o: path.c m4.h ../config.h ../lib/obstack.h
-stackovf.o: stackovf.c m4.h ../config.h ../lib/obstack.h
-symtab.o: symtab.c m4.h ../config.h ../lib/obstack.h
-
-info:
-dvi:
-check: all
-installcheck:
-install-exec: install-binPROGRAMS
- @$(NORMAL_INSTALL)
-
-install-data:
- @$(NORMAL_INSTALL)
-
-install: install-exec install-data all
- @:
-
-uninstall: uninstall-binPROGRAMS
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(ANSI2KNR) $(PROGRAMS)
+all-redirect: all-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir)
@@ -370,26 +368,35 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-mostlyclean: mostlyclean-binPROGRAMS mostlyclean-compile \
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
mostlyclean-libtool mostlyclean-krextra mostlyclean-kr \
mostlyclean-tags mostlyclean-generic
-clean: clean-binPROGRAMS clean-compile clean-libtool clean-krextra \
- clean-kr clean-tags clean-generic mostlyclean
+mostlyclean: mostlyclean-am
-distclean: distclean-binPROGRAMS distclean-compile distclean-libtool \
+clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-krextra \
+ clean-kr clean-tags clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \
distclean-krextra distclean-kr distclean-tags \
- distclean-generic clean
- -rm -f config.status
+ distclean-generic clean-am
-rm -f libtool
-maintainer-clean: maintainer-clean-binPROGRAMS maintainer-clean-compile \
- maintainer-clean-libtool maintainer-clean-krextra \
- maintainer-clean-kr maintainer-clean-tags \
- maintainer-clean-generic distclean
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-krextra maintainer-clean-kr \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
+maintainer-clean: maintainer-clean-am
+
.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \
@@ -397,9 +404,11 @@ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
clean-libtool maintainer-clean-libtool mostlyclean-krextra \
distclean-krextra clean-krextra maintainer-clean-krextra mostlyclean-kr \
distclean-kr clean-kr maintainer-clean-kr tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
-installcheck install-exec install-data install uninstall all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
diff --git a/src/ansi2knr.c b/src/ansi2knr.c
index 64a4578a..196ba08e 100644
--- a/src/ansi2knr.c
+++ b/src/ansi2knr.c
@@ -1,4 +1,6 @@
-/* ansi2knr.c */
+/* Copyright (C) 1989, 1997, 1998 Aladdin Enterprises. All rights reserved. */
+
+/*$Id$*/
/* Convert ANSI C function definitions to K&R ("traditional C") syntax */
/*
@@ -11,9 +13,10 @@ License (the "GPL") for full details.
Everyone is granted permission to copy, modify and redistribute ansi2knr,
but only under the conditions described in the GPL. A copy of this license
is supposed to have been given to you along with ansi2knr so you can know
-your rights and responsibilities. It should be in a file named COPYLEFT.
-Among other things, the copyright notice and this notice must be preserved
-on all copies.
+your rights and responsibilities. It should be in a file named COPYLEFT,
+or, if there is no file named COPYLEFT, a file named COPYING. Among other
+things, the copyright notice and this notice must be preserved on all
+copies.
We explicitly state here what we believe is already implied by the GPL: if
the ansi2knr program is distributed as a separate set of sources and a
@@ -26,7 +29,10 @@ program under the GPL.
/*
* Usage:
- ansi2knr input_file [output_file]
+ ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]
+ * --filename provides the file name for the #line directive in the output,
+ * overriding input_file (if present).
+ * If no input_file is supplied, input is read from stdin.
* If no output_file is supplied, output goes to stdout.
* There are no error messages.
*
@@ -34,9 +40,12 @@ program under the GPL.
* identifier at the left margin, followed by a left parenthesis,
* with a right parenthesis as the last character on the line,
* and with a left brace as the first token on the following line
- * (ignoring possible intervening comments).
- * It will recognize a multi-line header provided that no intervening
- * line ends with a left or right brace or a semicolon.
+ * (ignoring possible intervening comments), except that a line
+ * consisting of only
+ * identifier1(identifier2)
+ * will not be considered a function definition unless identifier2 is
+ * the word "void". ansi2knr will recognize a multi-line header provided
+ * that no intervening line ends with a left or right brace or a semicolon.
* These algorithms ignore whitespace and comments, except that
* the function name must be the first thing on the line.
* The following constructs will confuse it:
@@ -49,30 +58,39 @@ program under the GPL.
* The original and principal author of ansi2knr is L. Peter Deutsch
* <ghost@aladdin.com>. Other authors are noted in the change history
* that follows (in reverse chronological order):
- lpd 96-01-21 added code to cope with not HAVE_CONFIG_H and with
+ lpd 1998-11-09 added further hack to recognize identifier(void)
+ as being a procedure
+ lpd 1998-10-23 added hack to recognize lines consisting of
+ identifier1(identifier2) as *not* being procedures
+ lpd 1997-12-08 made input_file optional; only closes input and/or
+ output file if not stdin or stdout respectively; prints
+ usage message on stderr rather than stdout; adds
+ --filename switch (changes suggested by
+ <ceder@lysator.liu.se>)
+ lpd 1996-01-21 added code to cope with not HAVE_CONFIG_H and with
compilers that don't understand void, as suggested by
Tom Lane
- lpd 96-01-15 changed to require that the first non-comment token
+ lpd 1996-01-15 changed to require that the first non-comment token
on the line following a function header be a left brace,
to reduce sensitivity to macros, as suggested by Tom Lane
<tgl@sss.pgh.pa.us>
- lpd 95-06-22 removed #ifndefs whose sole purpose was to define
+ lpd 1995-06-22 removed #ifndefs whose sole purpose was to define
undefined preprocessor symbols as 0; changed all #ifdefs
for configuration symbols to #ifs
- lpd 95-04-05 changed copyright notice to make it clear that
+ lpd 1995-04-05 changed copyright notice to make it clear that
including ansi2knr in a program does not bring the entire
program under the GPL
- lpd 94-12-18 added conditionals for systems where ctype macros
+ lpd 1994-12-18 added conditionals for systems where ctype macros
don't handle 8-bit characters properly, suggested by
Francois Pinard <pinard@iro.umontreal.ca>;
removed --varargs switch (this is now the default)
- lpd 94-10-10 removed CONFIG_BROKETS conditional
- lpd 94-07-16 added some conditionals to help GNU `configure',
+ lpd 1994-10-10 removed CONFIG_BROKETS conditional
+ lpd 1994-07-16 added some conditionals to help GNU `configure',
suggested by Francois Pinard <pinard@iro.umontreal.ca>;
properly erase prototype args in function parameters,
contributed by Jim Avera <jima@netcom.com>;
correct error in writeblanks (it shouldn't erase EOLs)
- lpd 89-xx-xx original version
+ lpd 1989-xx-xx original version
*/
/* Most of the conditionals here are to make ansi2knr work with */
@@ -169,11 +187,15 @@ int
main(argc, argv)
int argc;
char *argv[];
-{ FILE *in, *out;
+{ FILE *in = stdin;
+ FILE *out = stdout;
+ char *filename = 0;
#define bufsize 5000 /* arbitrary size */
char *buf;
char *line;
char *more;
+ char *usage =
+ "Usage: ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]\n";
/*
* In previous versions, ansi2knr recognized a --varargs switch.
* If this switch was supplied, ansi2knr would attempt to convert
@@ -184,38 +206,49 @@ main(argc, argv)
*/
int convert_varargs = 1;
- if ( argc > 1 && argv[1][0] == '-' )
- { if ( !strcmp(argv[1], "--varargs") )
- { convert_varargs = 1;
- argc--;
- argv++;
- }
- else
- { fprintf(stderr, "Unrecognized switch: %s\n", argv[1]);
- exit(1);
- }
+ while ( argc > 1 && argv[1][0] == '-' ) {
+ if ( !strcmp(argv[1], "--varargs") ) {
+ convert_varargs = 1;
+ argc--;
+ argv++;
+ continue;
+ }
+ if ( !strcmp(argv[1], "--filename") && argc > 2 ) {
+ filename = argv[2];
+ argc -= 2;
+ argv += 2;
+ continue;
}
+ fprintf(stderr, "Unrecognized switch: %s\n", argv[1]);
+ fprintf(stderr, usage);
+ exit(1);
+ }
switch ( argc )
{
default:
- printf("Usage: ansi2knr input_file [output_file]\n");
+ fprintf(stderr, usage);
exit(0);
- case 2:
- out = stdout;
- break;
case 3:
out = fopen(argv[2], "w");
- if ( out == NULL )
- { fprintf(stderr, "Cannot open output file %s\n", argv[2]);
- exit(1);
- }
- }
- in = fopen(argv[1], "r");
- if ( in == NULL )
- { fprintf(stderr, "Cannot open input file %s\n", argv[1]);
- exit(1);
+ if ( out == NULL ) {
+ fprintf(stderr, "Cannot open output file %s\n", argv[2]);
+ exit(1);
+ }
+ /* falls through */
+ case 2:
+ in = fopen(argv[1], "r");
+ if ( in == NULL ) {
+ fprintf(stderr, "Cannot open input file %s\n", argv[1]);
+ exit(1);
+ }
+ if ( filename == 0 )
+ filename = argv[1];
+ /* falls through */
+ case 1:
+ break;
}
- fprintf(out, "#line 1 \"%s\"\n", argv[1]);
+ if ( filename )
+ fprintf(out, "#line 1 \"%s\"\n", filename);
buf = malloc(bufsize);
line = buf;
while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL )
@@ -267,8 +300,10 @@ wl: fputs(buf, out);
if ( line != buf )
fputs(buf, out);
free(buf);
- fclose(out);
- fclose(in);
+ if ( out != stdout )
+ fclose(out);
+ if ( in != stdin )
+ fclose(in);
return 0;
}
@@ -369,6 +404,34 @@ test1(buf)
key++;
}
}
+ {
+ char *id = p;
+ int len;
+ /*
+ * Check for identifier1(identifier2) and not
+ * identifier1(void).
+ */
+
+ while ( isidchar(*p) )
+ p++;
+ len = p - id;
+ p = skipspace(p, 1);
+ if ( *p == ')' && (len != 4 || strncmp(id, "void", 4)) )
+ return 0; /* not a function */
+ }
+ /*
+ * If the last significant character was a ), we need to count
+ * parentheses, because it might be part of a formal parameter
+ * that is a procedure.
+ */
+ if (contin > 0) {
+ int level = 0;
+
+ for (p = skipspace(buf, 1); *p; p = skipspace(p + 1, 1))
+ level += (*p == '(' ? 1 : *p == ')' ? -1 : 0);
+ if (level > 0)
+ contin = -1;
+ }
return contin;
}
diff --git a/src/builtin.c b/src/builtin.c
index 1e09ff8d..1b868ef4 100644
--- a/src/builtin.c
+++ b/src/builtin.c
@@ -1,5 +1,5 @@
/* GNU m4 -- A simple macro processor
- Copyright (C) 1989, 90, 91, 92, 93, 94, 98 Free Software Foundation, Inc.
+ Copyright (C) 1989, 90, 91, 92, 93, 94, 98, 99, 2000 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
@@ -75,6 +75,7 @@ DECLARE (m4_regexp);
DECLARE (m4_shift);
DECLARE (m4_sinclude);
DECLARE (m4_substr);
+DECLARE (m4_symbols);
DECLARE (m4_syncoutput);
DECLARE (m4_syscmd);
DECLARE (m4_sysval);
@@ -137,7 +138,8 @@ builtin_tab[] =
{ "shift", FALSE, FALSE, FALSE, m4_shift },
{ "sinclude", FALSE, FALSE, TRUE, m4_sinclude },
{ "substr", FALSE, FALSE, TRUE, m4_substr },
- { "syncoutput", TRUE, FALSE, TRUE, m4_syncoutput },
+ { "symbols", TRUE, FALSE, FALSE, m4_symbols },
+ { "syncoutput", TRUE, FALSE, TRUE, m4_syncoutput },
{ "syscmd", FALSE, FALSE, TRUE, m4_syscmd },
{ "sysval", FALSE, FALSE, FALSE, m4_sysval },
{ "traceoff", FALSE, FALSE, FALSE, m4_traceoff },
@@ -156,6 +158,16 @@ predefined_tab[] =
{ NULL, "__gnu__", "" },
{ NULL, "__m4_version__", VERSION },
+#ifdef ENABLE_CHANGEWORD
+ { NULL, "__m4_changeword__", "" },
+#endif /* ENABLE_CHANGEWORD */
+#ifdef WITH_GMP
+ { NULL, "__m4_gmp__", "" },
+#endif /* WITH_GMP */
+#ifdef WITH_MODULES
+ { NULL, "__m4_modules__", "" },
+#endif /* WITH_MODULES */
+
{ NULL, NULL, NULL },
};
@@ -249,7 +261,7 @@ define_builtin (const char *name, const builtin *bp, symbol_lookup mode,
| Install a new builtin_table. |
`------------------------------*/
-static void
+void
install_builtin_table (builtin *table)
{
const builtin *bp;
@@ -514,26 +526,20 @@ m4_popdef (struct obstack *obs, int argc, token_data **argv)
}
+#ifdef WITH_MODULES
+
/*-------------------------------------.
| Loading external module at runtime. |
`-------------------------------------*/
-#ifdef WITH_MODULES
-
static void
m4_loadmodule (struct obstack *obs, int argc, token_data **argv)
{
- builtin *bp;
-
if (bad_argc (argv[0], argc, 2, 2))
return;
- bp = module_load (ARG (1), obs);
-
- if (bp != NULL)
- install_builtin_table(bp);
-}
-
+ module_load (ARG(1), obs);
+}
#endif /* WITH_MODULES */
@@ -644,45 +650,55 @@ dumpdef_cmp (const voidstar s1, const voidstar s2)
SYMBOL_NAME (* (symbol *const *) s2));
}
-/*-------------------------------------------------------------------------.
-| Implementation of "dumpdef" itself. It builds up a table of pointers to |
-| symbols, sorts it and prints the sorted table. |
-`-------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------.
+| If there are no arguments, build a sorted list of all defined, |
+| un-shadowed, symbols, otherwise, only the specified symbols. |
+`------------------------------------------------------------------------*/
static void
-m4_dumpdef (struct obstack *obs, int argc, token_data **argv)
+dump_symbols (struct dump_symbol_data *data, int argc, token_data **argv,
+ boolean complain)
{
- symbol *s;
- int i;
- struct dump_symbol_data data;
- const builtin *bp;
-
- data.obs = obs;
- data.base = (symbol **) obstack_base (obs);
- data.size = 0;
+ data->base = (symbol **) obstack_base (data->obs);
+ data->size = 0;
if (argc == 1)
{
- hack_all_symbols (dump_symbol, (char *) &data);
+ hack_all_symbols (dump_symbol, (char *) data);
}
else
{
+ int i;
+ symbol *s;
+
for (i = 1; i < argc; i++)
{
s = lookup_symbol (TOKEN_DATA_TEXT (argv[i]), SYMBOL_LOOKUP);
if (s != NULL && SYMBOL_TYPE (s) != TOKEN_VOID)
- dump_symbol (s, &data);
- else
+ dump_symbol (s, data);
+ else if (complain)
M4ERROR ((warning_status, 0,
_("Undefined name %s"), TOKEN_DATA_TEXT (argv[i])));
}
}
- /* Make table of symbols invisible to expand_macro (). */
+ obstack_finish (data->obs);
+ qsort ((char *) data->base, data->size, sizeof (symbol *), dumpdef_cmp);
+}
- (void) obstack_finish (obs);
+/*-------------------------------------------------------------------------.
+| Implementation of "dumpdef" itself. It builds up a table of pointers to |
+| symbols, sorts it and prints the sorted table. |
+`-------------------------------------------------------------------------*/
- qsort ((char *) data.base, data.size, sizeof (symbol *), dumpdef_cmp);
+static void
+m4_dumpdef (struct obstack *obs, int argc, token_data **argv)
+{
+ struct dump_symbol_data data;
+ const builtin *bp;
+
+ data.obs = obs;
+ dump_symbols (&data, argc, argv, TRUE);
for (; data.size > 0; --data.size, data.base++)
{
@@ -718,6 +734,30 @@ INTERNAL ERROR: Bad token data type in m4_dumpdef ()")));
}
}
+/*-------------------------------------------------------------------------.
+| Implementation of "symbols" itself. It builds up a table of pointers to |
+| symbols, sorts it and ships out the symbols name. |
+`-------------------------------------------------------------------------*/
+
+static void
+m4_symbols (struct obstack *obs, int argc, token_data **argv)
+{
+ struct dump_symbol_data data;
+ struct obstack data_obs;
+
+ obstack_init (&data_obs);
+ data.obs = &data_obs;
+ dump_symbols (&data, argc, argv, FALSE);
+
+ for (; data.size > 0; --data.size, data.base++)
+ {
+ shipout_string (obs, SYMBOL_NAME (data.base[0]), 0, TRUE);
+ if (data.size > 1)
+ obstack_1grow (obs, ',');
+ }
+ obstack_free (&data_obs, NULL);
+}
+
/*---------------------------------------------------------------------.
| The builtin "builtin" allows calls to builtin macros, even if their |
| definition has been overridden or shadowed. It is thus possible to |
@@ -761,7 +801,7 @@ m4_indir (struct obstack *obs, int argc, token_data **argv)
s = lookup_symbol (name, SYMBOL_LOOKUP);
if (s == NULL)
M4ERROR ((warning_status, 0,
- _("Undefined macro `%s'"), name));
+ _("Undefined name `%s'"), name));
else
call_macro (s, argc - 1, argv + 1, obs);
}
@@ -769,7 +809,7 @@ m4_indir (struct obstack *obs, int argc, token_data **argv)
/*-------------------------------------------------------------------------.
| The macro "defn" returns the quoted definition of the macro named by the |
| first argument. If the macro is builtin, it will push a special |
-| macro-definition token on ht input stack. |
+| macro-definition token on the input stack. |
`-------------------------------------------------------------------------*/
static void
@@ -887,8 +927,8 @@ m4_sysval (struct obstack *obs, int argc, token_data **argv)
| actual work is done in the function evaluate (), which lives in eval.c. |
`-------------------------------------------------------------------------*/
-typedef boolean (*eval_func)(struct obstack *obs, const char *expr,
- const int radix, int min);
+typedef boolean (*eval_func) __P ((struct obstack *obs, const char *expr,
+ const int radix, int min));
static void
do_eval (struct obstack *obs, int argc, token_data **argv, eval_func func)
@@ -1109,7 +1149,7 @@ m4_changecom (struct obstack *obs, int argc, token_data **argv)
`-------------------------------------------------------------------*/
/* expand_ranges () from m4_translit () are used here. */
-static const char *expand_ranges (const char *s, struct obstack *obs);
+static const char *expand_ranges __P ((const char *s, struct obstack *obs));
static void
m4_changesyntax (struct obstack *obs, int argc, token_data **argv)
@@ -1576,7 +1616,11 @@ expand_ranges (const char *s, struct obstack *obs)
{
to = *++s;
if (to == '\0')
- obstack_1grow (obs, '-'); /* trailing dash */
+ {
+ /* trailing dash */
+ obstack_1grow (obs, '-');
+ break;
+ }
else if (from <= to)
{
while (from++ < to)
diff --git a/src/builtin.h b/src/builtin.h
index 9c7b260b..f232e919 100644
--- a/src/builtin.h
+++ b/src/builtin.h
@@ -30,11 +30,11 @@
-boolean bad_argc (token_data *name, int argc, int min, int max);
-const char *skip_space (const char *arg);
+boolean bad_argc __P ((token_data *name, int argc, int min, int max));
+const char *skip_space __P ((const char *arg));
-boolean numeric_arg (token_data *macro, const char *arg, int *valuep);
-void shipout_int (struct obstack *obs, int val);
-void shipout_string (struct obstack *obs, const char *s, int len, boolean quoted);
+boolean numeric_arg __P ((token_data *macro, const char *arg, int *valuep));
+void shipout_int __P ((struct obstack *obs, int val));
+void shipout_string __P ((struct obstack *obs, const char *s, int len, boolean quoted));
#endif /* BUILTIN_H */
diff --git a/src/debug.c b/src/debug.c
index ba01e1e4..b1e68f78 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -20,7 +20,7 @@
#include <sys/stat.h>
-#if __STDC__
+#if (defined __STDC__ && __STDC__) || defined PROTOTYPES
#include <stdarg.h>
#else
#include <varargs.h>
@@ -220,15 +220,16 @@ debug_message_prefix (void)
| left quote) and %r (optional right quote). |
`---------------------------------------------------------------------*/
-#if __STDC__
+#if (defined __STDC__ && __STDC__) || defined PROTOTYPES
static void
trace_format (const char *fmt, ...)
#else
static void
-trace_format (...)
+trace_format (va_alist)
+ va_dcl
#endif
{
-#if ! __STDC__
+#if ! ((defined __STDC__ && __STDC__) || defined PROTOTYPES)
const char *fmt;
#endif
va_list args;
@@ -240,7 +241,7 @@ trace_format (...)
int slen;
int maxlen;
-#if __STDC__
+#if (defined __STDC__ && __STDC__) || defined PROTOTYPES
va_start (args, fmt);
#else
va_start (args);
diff --git a/src/format.c b/src/format.c
index b7af604a..88b56b1b 100644
--- a/src/format.c
+++ b/src/format.c
@@ -39,7 +39,9 @@ extern long atol ();
extern double atof ();
#endif /* STDC_HEADERS */
+#ifndef min
#define min(a, b) ((a) < (b) ? (a) : (b))
+#endif
static char const digits[] = "0123456789abcdef";
static char const Digits[] = "0123456789ABCDEF";
diff --git a/src/freeze.c b/src/freeze.c
index 50fb0d1b..e2fa1e74 100644
--- a/src/freeze.c
+++ b/src/freeze.c
@@ -69,7 +69,9 @@ produce_frozen_state (const char *name)
if (strcmp (lquote.string, DEF_LQUOTE) || strcmp (rquote.string, DEF_RQUOTE))
{
- fprintf (file, "Q%d,%d\n", (int) lquote.length, (int) rquote.length);
+ fprintf (file, "Q%lu,%lu\n",
+ (unsigned long) lquote.length,
+ (unsigned long) rquote.length);
fputs (lquote.string, file);
fputs (rquote.string, file);
fputc ('\n', file);
@@ -79,7 +81,9 @@ produce_frozen_state (const char *name)
if (strcmp (bcomm.string, DEF_BCOMM) || strcmp (ecomm.string, DEF_ECOMM))
{
- fprintf (file, "C%d,%d\n", (int) bcomm.length, (int) ecomm.length);
+ fprintf (file, "C%lu,%lu\n",
+ (unsigned long) bcomm.length,
+ (unsigned long) ecomm.length);
fputs (bcomm.string, file);
fputs (ecomm.string, file);
fputc ('\n', file);
@@ -100,9 +104,9 @@ produce_frozen_state (const char *name)
switch (SYMBOL_TYPE (sym))
{
case TOKEN_TEXT:
- fprintf (file, "T%d,%d\n",
- (int) strlen (SYMBOL_NAME (sym)),
- (int) strlen (SYMBOL_TEXT (sym)));
+ fprintf (file, "T%lu,%lu\n",
+ (unsigned long) strlen (SYMBOL_NAME (sym)),
+ (unsigned long) strlen (SYMBOL_TEXT (sym)));
fputs (SYMBOL_NAME (sym), file);
fputs (SYMBOL_TEXT (sym), file);
fputc ('\n', file);
@@ -116,9 +120,9 @@ produce_frozen_state (const char *name)
INTERNAL ERROR: Built-in not found in builtin table!")));
abort ();
}
- fprintf (file, "F%d,%d\n",
- (int) strlen (SYMBOL_NAME (sym)),
- (int) strlen (bp->name));
+ fprintf (file, "F%lu,%lu\n",
+ (unsigned long) strlen (SYMBOL_NAME (sym)),
+ (unsigned long) strlen (bp->name));
fputs (SYMBOL_NAME (sym), file);
fputs (bp->name, file);
fputc ('\n', file);
diff --git a/src/input.c b/src/input.c
index bed8d9e6..93da8ea3 100644
--- a/src/input.c
+++ b/src/input.c
@@ -140,10 +140,10 @@
struct input_funcs
{
- int (*peek_func)(void); /* function to peek input */
- int (*read_func)(void); /* function to read input */
- void (*unget_func)(int); /* function to unread input */
- void (*clean_func)(void); /* function to clean up */
+ int (*peek_func) __P((void)); /* function to peek input */
+ int (*read_func) __P((void)); /* function to read input */
+ void (*unget_func) __P((int)); /* function to unread input */
+ void (*clean_func) __P((void)); /* function to clean up */
};
struct input_block
@@ -641,7 +641,7 @@ static int
next_char (void)
{
int ch;
- int (*f)(void);
+ int (*f) __P ((void));
while (1)
{
@@ -679,7 +679,7 @@ int
peek_input (void)
{
int ch;
- int (*f)(void);
+ int (*f) __P((void));
while (1)
{
@@ -752,6 +752,7 @@ match_input (const unsigned char *s)
int n; /* number of characters matched */
int ch; /* input character */
const unsigned char *t;
+ struct obstack *st;
ch = peek_input ();
if (ch != *s)
@@ -769,7 +770,8 @@ match_input (const unsigned char *s)
}
/* Failed, push back input. */
- obstack_grow (push_string_init (), t, n);
+ st = push_string_init ();
+ obstack_grow (st, t, n);
push_string_finish ();
return 0;
}
@@ -792,8 +794,8 @@ match_input (const unsigned char *s)
| Inititialise input stacks, and quote/comment characters. |
`----------------------------------------------------------*/
-static void set_syntax_internal (int code, int ch);
-static void unset_syntax_attribute (int code, int ch);
+static void set_syntax_internal __P ((int code, int ch));
+static void unset_syntax_attribute __P ((int code, int ch));
void
input_init (void)
diff --git a/src/m4.c b/src/m4.c
index f44d7444..2b0d21ba 100644
--- a/src/m4.c
+++ b/src/m4.c
@@ -21,6 +21,10 @@
#include <getopt.h>
#include <signal.h>
+#ifdef WITH_MODULES
+#include "ltdl.h"
+#endif /* WITH_MODULES */
+
/* Operate interactively (-e). */
int interactive = 0;
@@ -92,8 +96,6 @@ typedef struct macro_definition macro_definition;
| error, as a prefix for error messages. Flush standard output first. |
`----------------------------------------------------------------------*/
-#include <error.h>
-
void
print_program_name (void)
{
@@ -163,6 +165,14 @@ Operation modes:\n\
-W, --word-regexp=REGEXP use REGEXP for macro name syntax\n"),
stdout);
#endif
+#ifdef WITH_MODULES
+ fputs (_("\
+\n\
+Dynamic loading features:\n\
+ -m, --module-directory=DIRECTORY add DIRECTORY to the module search path\n\
+ -M, --load-module=MODULE load dynamic MODULE from M4MODPATH\n"),
+ stdout);
+#endif
fputs (_("\
\n\
Preprocessor features:\n\
@@ -235,6 +245,7 @@ static const struct option long_options[] =
{"interactive", no_argument, NULL, 'e'},
#ifdef WITH_MODULES
{"load-module", required_argument, NULL, 'M'},
+ {"module-directory", required_argument, NULL, 'm'},
#endif /* WITH_MODULES */
{"nesting-limit", required_argument, NULL, 'L'},
{"prefix-builtins", no_argument, NULL, 'P'},
@@ -259,10 +270,19 @@ static const struct option long_options[] =
};
#ifdef ENABLE_CHANGEWORD
-#define OPTSTRING "B:D:EF:GH:I:L:N:PQR:S:T:U:W:cd::el:o:st:"
+# define CHANGEWORD_SHORTOPT "W:"
#else
-#define OPTSTRING "B:D:EF:GH:I:L:N:PQR:S:T:U:cd::el:o:st:"
+# define CHANGEWORD_SHORTOPT ""
#endif
+#ifdef WITH_MODULES
+# define MODULE_SHORTOPT "M:"
+# define MODULEPATH_SHORTOPT "m:"
+#else
+# define MODULE_SHORTOPT ""
+# define MODULEPATH_SHORTOPT ""
+#endif
+
+#define OPTSTRING "B:D:EF:GH:I:L:"/**/MODULE_SHORTOPT/**/"N:PQR:S:T:U:"/**/CHANGEWORD_SHORTOPT/**/":cd::el:"/**/MODULEPATH_SHORTOPT/**/"o:st:"
int
main (int argc, char *const *argv, char *const *envp)
@@ -276,6 +296,8 @@ main (int argc, char *const *argv, char *const *envp)
FILE *fp;
char *filename;
+ int exit_status;
+
program_name = argv[0];
error_print_progname = print_program_name;
@@ -286,10 +308,7 @@ main (int argc, char *const *argv, char *const *envp)
debug_init ();
include_init ();
-
-#ifdef WITH_MODULES
- module_init ();
-#endif /* WITH_MODULES */
+ symtab_init ();
#ifdef USE_STACKOVF
setup_stackovf_trap (argv, envp, stackovf_handler);
@@ -355,10 +374,17 @@ main (int argc, char *const *argv, char *const *envp)
case 'I':
add_include_directory (optarg);
break;
+
case 'L':
nesting_limit = atoi (optarg);
break;
+#ifdef WITH_MODULES
+ case 'M':
+ module_load (optarg, NULL);
+ break;
+#endif /* WITH_MODULES */
+
case 'P':
prefix_all_builtins = 1;
break;
@@ -400,6 +426,23 @@ main (int argc, char *const *argv, char *const *envp)
max_debug_argument_length = 0;
break;
+#ifdef WITH_MODULES
+ case 'm':
+ if (lt_dladdsearchdir (optarg) != 0)
+ {
+ const char *dlerror = lt_dlerror();
+ if (dlerror == NULL)
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: failed to add search directory `%s'"),
+ optarg));
+ else
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: failed to add search directory `%s': %s"),
+ optarg, dlerror));
+ }
+ break;
+#endif /* WITH_MODULES */
+
case 'o':
if (!debug_set_output (optarg))
error (0, errno, optarg);
@@ -437,7 +480,6 @@ main (int argc, char *const *argv, char *const *envp)
input_init ();
output_init ();
- symtab_init ();
include_env_init ();
if (frozen_file_to_read)
@@ -517,6 +559,7 @@ main (int argc, char *const *argv, char *const *envp)
/* Handle the various input files. Each file is pushed on the input,
and the input read. Wrapup text is handled separately later. */
+ exit_status = EXIT_SUCCESS;
if (optind == argc)
{
push_file (stdin, "stdin");
@@ -533,6 +576,7 @@ main (int argc, char *const *argv, char *const *envp)
if (fp == NULL)
{
error (0, errno, argv[optind]);
+ exit_status = EXIT_FAILURE;
continue;
}
else
@@ -562,5 +606,5 @@ main (int argc, char *const *argv, char *const *envp)
module_unload_all();
#endif /* WITH_MODULES */
- exit (EXIT_SUCCESS);
+ exit (exit_status);
}
diff --git a/src/m4.h b/src/m4.h
index 8838343d..8d2b4bfe 100644
--- a/src/m4.h
+++ b/src/m4.h
@@ -25,7 +25,7 @@
#include <sys/types.h>
-#if __STDC__
+#ifdef __STDC__
# define voidstar void *
#else
# define voidstar char *
@@ -43,10 +43,6 @@
# if !defined (STDC_HEADERS) && defined (HAVE_MEMORY_H)
# include <memory.h>
# endif
-/* This is for obstack code -- should live in obstack.h. */
-# ifndef bcopy
-# define bcopy(S, D, N) memcpy ((D), (S), (N))
-# endif
#else
# include <strings.h>
# ifndef memcpy
@@ -169,6 +165,7 @@ extern const char *user_word_regexp; /* -W */
#endif
/* Error handling. */
+#include "error.h"
#define M4ERROR(Arglist) (error Arglist)
#ifdef USE_STACKOVF
@@ -510,6 +507,7 @@ void define_user_macro __P ((const char *, const char *, symbol_lookup));
void undivert_all __P ((void));
void expand_user_macro __P ((struct obstack *, symbol *, int, token_data **));
+void install_builtin_table (builtin *table);
const builtin *find_builtin_by_addr __P ((builtin_func *));
const builtin *find_builtin_by_name __P ((const char *));
@@ -577,11 +575,9 @@ typedef void module_finish_t (void);
typedef voidstar module_func (const char *);
-void module_init (void);
+void module_load (const char *modname, struct obstack *obs);
void module_unload_all (void);
-builtin *module_load (const char *modname, struct obstack *obs);
-
#endif /* WITH_MODULES */
diff --git a/src/module.c b/src/module.c
index 970866db..9bd06b32 100644
--- a/src/module.c
+++ b/src/module.c
@@ -1,26 +1,30 @@
/* GNU m4 -- A simple macro processor
- Copyright (C) 1998 Free Software Foundation, Inc.
-
+ Copyright (C) 1989, 90, 91, 92, 93, 94, 98 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "m4.h"
+#include "builtin.h"
#ifdef WITH_MODULES
+#define MODULES_UNINITIALISED -4444
+
#include "pathconf.h"
+#include "ltdl.h"
#define DEBUG_MODULES
#undef DEBUG_MODULES
@@ -71,140 +75,13 @@
* safe to load the same module several times, it has no effect.
**/
-static const char *dynamic_error_message = NULL;
-
-static const char *
-dynamic_error ()
-{
- return dynamic_error_message;
-}
-
-
-#if defined (HAVE_SHL_LOAD)
-
-#include <dl.h>
-
-static voidstar
-dynamic_load (const char *modname)
-{
- voidstar handle;
-
- dynamic_error_message = NULL;
-
- handle = shl_load (modname, BIND_IMMEDIATE, 0L);
- if (handle == NULL)
- dynamic_error_message = strerror (errno);
-
- return handle;
-}
-
-static void
-dynamic_unload (voidstar handle)
-{
- shl_unload ((shl_t)handle);
-}
-
-static voidstar
-dynamic_find_data (voidstar handle, const char *symbol)
-{
- voidstar addr;
- shl_t *hp = (shl_t *)&handle;
-
- dynamic_error_message = NULL;
-
- if (!shl_findsym (hp, symbol, TYPE_DATA, (voidstar)&addr))
- {
- dynamic_error_message = strerror (errno);
- return addr;
- }
- else
- return NULL;
-}
-
-static voidstar
-dynamic_find_func (voidstar handle, const char *symbol)
-{
- voidstar addr;
- shl_t *hp = (shl_t *)&handle;
-
- dynamic_error_message = NULL;
-
- if (!shl_findsym (hp, symbol, TYPE_PROCEDURE, (voidstar)&addr))
- {
- dynamic_error_message = strerror (errno);
- return addr;
- }
- else
- return NULL;
-}
-
-#else /* HAVE_DLOPEN */
-
-#include <dlfcn.h>
-
-static voidstar
-dynamic_load (const char *modname)
-{
- voidstar handle;
-
- dynamic_error_message = NULL;
-
- handle = dlopen (modname, RTLD_NOW);
- if (handle == NULL)
- dynamic_error_message = dlerror ();
-
- return handle;
-}
-
-static void
-dynamic_unload(voidstar handle)
-{
- dlclose (handle);
-}
-
-static voidstar
-dynamic_find_data (voidstar handle, const char *symbol)
-{
- voidstar sym;
-
- dynamic_error_message = NULL;
-
- sym = dlsym (handle, symbol);
- if (sym == NULL)
- dynamic_error_message = dlerror ();
-
- return sym;
-}
-
-static voidstar
-dynamic_find_func (voidstar handle, const char *symbol)
-{
- return dynamic_find_data (handle, symbol);
-}
-
-#endif /* HAVE_DLOPEN */
-
-
-
-
-/*
- * The rest of the code should be common for all interfaces.
- */
-
-/* module search path */
-
-static struct search_path_info *modpath; /* the list of module directories */
-
-
/* This list is used to check for repeated loading of the same modules. */
-struct module_list {
+typedef struct module_list {
struct module_list *next;
char *modname;
void *handle;
-};
-
-typedef struct module_list module_list;
+} module_list;
static module_list *modules;
@@ -214,201 +91,153 @@ static module_list *modules;
* prevent the path search of the dlopen library from finding wrong
* files.
*/
-void
+static void
module_init (void)
{
- char *path;
+ static int errors = MODULES_UNINITIALISED;
- modpath = search_path_info_new ();
-
- if (no_gnu_extensions)
+ /* Do this only once! */
+ if (errors != MODULES_UNINITIALISED)
return;
- path = getenv ("M4MODPATH");
- if (path == NULL)
- search_path_add (modpath, MODULE_PATH);
- else
- search_path_env_init (modpath, path, TRUE);
-
-}
-
-/*
- * This function will try to find the .la file which libtool have made
- * for the library, lookup the dlname='xxx' line and load that file from
- * the same directory. The argument FILE is a pointer to the file name
- * part of the PATH buffer. The PATH buffer should be large enough for
- * file name changes needed to find the library file. These are:
- * MODNAME -> libMODNAME.la -> dlname from file.
- */
-
-static voidstar
-module_try_load (char *path, char *file)
-{
- FILE *fp;
- char buf[1024];
- char *tmp;
-
- /* Find libFILE.la file by libtool */
- sprintf (buf, "lib%s.la", file);
- strcpy (file, buf);
-
- fp = fopen (path, "r");
- if (fp == NULL)
- return NULL;
+ errors = lt_dlinit();
- /* Search file for true library name */
- while (fgets (buf, sizeof buf, fp) != NULL)
+ /* If the user set M4MODPATH, then use that as the start of libltdls
+ * module search path, else fall back on the default.
+ */
+ if (errors == 0)
{
- if (strncmp (buf, "dlname='", 8) == 0)
- {
- tmp = strrchr (buf, '\'');
- if (tmp != NULL) {
- *tmp = '\0';
- strcpy (file, buf+8);
-
- fclose (fp);
- return dynamic_load (path);
- }
- }
+ char *path = getenv("M4MODPATH");
+ if (path != NULL)
+ errors = lt_dladdsearchdir(path);
}
+
+ if (errors == 0)
+ errors = lt_dladdsearchdir(MODULE_PATH);
- fclose (fp);
- return NULL;
-}
-
-static voidstar
-module_search (const char *modname)
-{
- voidstar value = NULL;
- struct search_path *incl;
- char *name; /* buffer for constructed name */
-
- /* If absolute, modname is a filename. */
- if (*modname == '/')
+ if (errors != 0)
{
- name = xstrdup (modname);
- value = module_try_load (name, strrchr (name, '/')+1);
- xfree (name);
- return value;
+ /* Couldn't initialise the module system; diagnose and exit. */
+ const char *dlerror = lt_dlerror();
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: failed to initialise modules: %s"), dlerror));
}
- /* Allocate buffer for mangling path, extra for shlib naming conventions */
- name = (char *) xmalloc (modpath->max_length + 1 + strlen (modname) +1+64);
-
- for (incl = modpath->list; incl != NULL; incl = incl->next)
- {
- strncpy (name, incl->dir, incl->len);
- name[incl->len] = '/';
- strcpy (name + incl->len + 1, modname);
-
-#ifdef DEBUG_MODULE
- fprintf (stderr, "module_search (%s) -- trying %s\n", modname, name);
-#endif
-
- value = module_try_load (name, name + incl->len + 1);
- if (value != NULL)
- {
- if (debug_level & DEBUG_TRACE_PATH)
- DEBUG_MESSAGE2 (_("Module search for `%s' found `%s'"),
- modname, name);
- break;
- }
- }
- xfree (name);
- return value;
-}
-
-static void
-module_unload(voidstar handle)
-{
- dynamic_unload (handle);
+#ifdef DEBUG_MODULES
+ DEBUG_MESSAGE("Module system initialised.");
+#endif /* DEBUG_MODULES */
}
/*
- * Load a module. Modname can be a absolute file name or, if relative,
- * is is searched in the module path. Return value is the value of the
- * symbol `m4_macro_table' in the module. The module is unloaded in
+ * Load a module. MODNAME can be a absolute file name or, if relative,
+ * it is searched for in the module path. The module is unloaded in
* case of error. The builtins from the module are installed in the
- * symbol table by the caller, m4_loadmodule() in builtin.c.
+ * symbol table.
*/
-struct builtin *
+void
module_load (const char *modname, struct obstack *obs)
{
- void *handle;
- struct module_list *list;
-
- builtin *btab;
module_init_t *init_func;
+ lt_dlhandle module;
+ module_list *list;
+ builtin *bp;
- handle = module_search (modname);
- if (handle == NULL)
- {
- if (dynamic_error ())
- M4ERROR ((EXIT_FAILURE, 0,
- _("ERROR: cannot find module `%s': %s"),
- modname, dynamic_error ()));
- else
- M4ERROR ((EXIT_FAILURE, 0,
- _("ERROR: cannot find module `%s'"), modname));
- }
+ module_init();
+
+ /* Dynamically load the named module. */
+ module = lt_dlopenext(modname);
- for (list = modules; list != NULL; list = list->next)
- if (list->handle == handle)
- {
+ if (module != NULL)
+ {
+ for (list = modules; list != NULL; list = list->next)
+ if (list->handle == module)
+ {
#ifdef DEBUG_MODULES
- DEBUG_MESSAGE1("module %s handle already seen", modname);
+ DEBUG_MESSAGE1("module %s handle already seen", modname);
#endif /* DEBUG_MODULES */
- module_unload(handle);
- return NULL;
- }
+ lt_dlclose(module); /* close the duplicate copy */
+ return;
+ }
+ }
- btab = (builtin *) dynamic_find_data (handle, "m4_macro_table");
- if (btab == NULL) {
+ /* Find the initialising table in the loaded module. */
+ if (module != NULL)
+ {
+ bp = (builtin*)lt_dlsym(module, "m4_macro_table");
+ if (bp == NULL)
+ {
#ifdef DEBUG_MODULES
- DEBUG_MESSAGE1("module %s no symbol m4_macro_table", modname);
+ DEBUG_MESSAGE1("module %s: no symbol m4_macro_table", modname);
#endif /* DEBUG_MODULES */
- module_unload(handle);
- return NULL;
- }
+ lt_dlclose(module);
+ module = NULL;
+ }
+ }
- list = xmalloc (sizeof (struct module_list));
- list->next = modules;
- list->modname = xstrdup(modname);
- list->handle = handle;
- modules = list;
+ /* Find and run the initialising function in the loaded module
+ * (if any).
+ */
+ if (module != NULL)
+ {
+ init_func = (module_init_t*)lt_dlsym(module, "m4_init_module");
+ if (init_func != NULL)
+ {
+ (*init_func)(obs);
+ }
#ifdef DEBUG_MODULES
- DEBUG_MESSAGE1("module %s loaded ok", modname);
+ else
+ DEBUG_MESSAGE1("module %s: no symbol m4_init_module", modname);
#endif /* DEBUG_MODULES */
+ }
- init_func = (module_init_t *)
- dynamic_find_func (handle, "m4_init_module");
-
- if (init_func != NULL)
+ /* If the module was correctly loaded and has the necessary
+ * symbols, then update our internal tables to remember the
+ * new module.
+ */
+ if (module != NULL)
{
- (*init_func)(obs);
-
#ifdef DEBUG_MODULES
- DEBUG_MESSAGE1("module %s init hook called", modname);
+ DEBUG_MESSAGE1("module %s: loaded ok", modname);
#endif /* DEBUG_MODULES */
- }
- return btab;
+ list = xmalloc (sizeof (struct module_list));
+ list->next = modules;
+ list->modname = xstrdup(modname);
+ list->handle = module;
+ modules = list;
+
+ install_builtin_table(bp);
+ }
+ else
+ {
+ /* Couldn't load the module; diagnose and exit. */
+ const char *dlerror = lt_dlerror();
+ if (dlerror == NULL)
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: cannot find module: `%s'"), modname));
+ else
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: cannot find module: `%s': %s"),
+ modname, dlerror));
+ }
}
void
module_unload_all(void)
{
+ int errors = 0;
struct module_list *next;
module_finish_t *finish_func;
+ /* Find and run the finishing function for each loaded module. */
while (modules != NULL)
{
- finish_func = (module_finish_t *)
- dynamic_find_func (modules->handle, "m4_finish_module");
+ finish_func = (module_finish_t*)
+ lt_dlsym(modules->handle, "m4_finish_module");
if (finish_func != NULL)
{
@@ -419,7 +248,9 @@ module_unload_all(void)
#endif /* DEBUG_MODULES */
}
- module_unload (modules->handle);
+ errors = lt_dlclose (modules->handle);
+ if (errors != 0)
+ break;
#ifdef DEBUG_MODULES
DEBUG_MESSAGE1("module %s unloaded", modules->modname);
@@ -429,9 +260,35 @@ module_unload_all(void)
xfree(modules);
modules = next;
}
-}
+ if (errors != 0)
+ errors = lt_dlexit();
+ if (errors != 0)
+ {
+ const char *dlerror = lt_dlerror();
+ if (modules == NULL)
+ {
+ if (dlerror == NULL)
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: cannot close modules")));
+ else
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: cannot cannot close modules: %s"),
+ dlerror));
+ }
+ else
+ {
+ if (dlerror == NULL)
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: cannot close module: `%s'"),
+ modules->modname));
+ else
+ M4ERROR ((EXIT_FAILURE, 0,
+ _("ERROR: cannot cannot close module: `%s': %s"),
+ modules->modname, dlerror));
+ }
+ }
+}
#endif /* WITH_MODULES */
-
diff --git a/src/output.c b/src/output.c
index b0c5d14a..e3ab5058 100644
--- a/src/output.c
+++ b/src/output.c
@@ -1,5 +1,5 @@
/* GNU m4 -- A simple macro processor
- Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
+ Copyright (C) 1989, 90, 91, 92, 93, 94, 98 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
@@ -100,8 +100,7 @@ output_init (void)
output_unused = 0;
}
-#ifndef HAVE_TMPFILE
-
+#ifdef HAVE_MKTEMP
#ifndef HAVE_MKSTEMP
/* This implementation of mkstemp(3) does not avoid any races, but its
@@ -118,6 +117,71 @@ mkstemp (const char *tmpl)
#endif /* not HAVE_MKSTEMP */
+#else /* not HAVE_MKTEMP */
+
+/*
+ * Here's a quick implementation of mkstemp() for systems that don't have mktemp()
+ * such as QNX 4. Also included is a mktemp() impl. It's vulnerable to races, just
+ * like the real thing.
+ */
+#include <fcntl.h>
+
+int
+mkstemp (char *tmpl)
+{
+ char *xes;
+ pid_t pid;
+ char uniq;
+ int fd;
+
+ if ((xes = strstr (tmpl, "XXXXXX")) == NULL) {
+ errno = EINVAL; /* no Xes found */
+ return -1;
+ }
+
+ pid = getpid(); if (pid > 99999) { pid = pid % 100000; }
+ uniq = 'a';
+
+ while (1) {
+ sprintf (xes, "%05d%d", pid, uniq);
+ fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, 0600);
+ if (fd >= 0) {
+ return fd; /* got it */
+ }
+
+ /* this will ensure we cover a-zA-Z0-9 before giving up */
+ if (uniq == 'z') {
+ uniq = 'A';
+ } else if (uniq == 'Z') {
+ uniq = '0';
+ } else if (uniq == '9') {
+ errno = EEXIST; /* couldn't find one */
+ return -1;
+ } else {
+ uniq++;
+ }
+ }
+}
+
+char *
+mktemp (char *tmpl)
+{
+ int fd;
+
+ fd = mkstemp (tmpl);
+ if (fd > 0) {
+ close (fd);
+ unlink (tmpl);
+ return tmpl;
+ } else {
+ return NULL;
+ }
+}
+
+#endif /* not HAVE_MKTEMP */
+
+#ifndef HAVE_TMPFILE
+
/* Implement tmpfile(3) for non-USG systems. */
static FILE *
@@ -570,7 +634,11 @@ freeze_diversions (FILE *file)
fflush (diversion->file);
if (fstat (fileno (diversion->file), &file_stat) < 0)
M4ERROR ((EXIT_FAILURE, errno, _("Cannot stat diversion")));
- fprintf (file, "D%d,%d", divnum, (int) file_stat.st_size);
+ if (file_stat.st_size < 0
+ || file_stat.st_size != (unsigned long) file_stat.st_size)
+ M4ERROR ((EXIT_FAILURE, errno, _("Diversion too large")));
+ fprintf (file, "D%d,%lu", divnum,
+ (unsigned long) file_stat.st_size);
}
else
fprintf (file, "D%d,%d\n", divnum, diversion->used);
diff --git a/src/stackovf.c b/src/stackovf.c
index ec8078ae..7d9a44b6 100644
--- a/src/stackovf.c
+++ b/src/stackovf.c
@@ -110,6 +110,13 @@
/* Giving a hand to ansi2knr... */
typedef void (*handler_t) __P ((void));
+#if defined(__ultrix) && defined(__vax)
+extern char *sbrk __P ((int));
+extern int getrlimit __P ((int, struct rlimit *));
+extern int sigstack __P ((struct sigstack *, struct sigstack *));
+extern int sigvec __P ((int, struct sigvec *, struct sigvec *));
+#endif
+
static const char *stackbot;
static const char *stackend;
static const char *arg0;
@@ -328,7 +335,7 @@ setup_stackovf_trap (char *const *argv, char *const *envp, handler_t handler)
stack_t ss;
ss.ss_size = SIGSTKSZ;
- ss.ss_sp = xmalloc ((unsigned) ss.ss_size);
+ ss.ss_sp = xmalloc (ss.ss_size);
ss.ss_flags = 0;
if (sigaltstack (&ss, (stack_t *) 0) < 0)
error (1, errno, "sigaltstack");
@@ -375,7 +382,7 @@ Error - Do not know how to set up stack-ovf trap handler...
#else /* not HAVE_SIGACTION */
#if HAVE_SIGVEC && defined(SV_ONSTACK)
- vec.sv_handler = (RETSIGTYPE (*)_ ((int))) sigsegv_handler;
+ vec.sv_handler = (RETSIGTYPE (*) __P ((int))) sigsegv_handler;
vec.sv_mask = 0;
vec.sv_flags = (SV_ONSTACK
#ifdef SV_RESETHAND
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 926aee94..6451795c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -5,6 +5,9 @@
EXTRA_DIST = get-them run-test mkconfig.sh foo incl.m4 stamp-TESTS \
defs $(TESTS) $(OTHER_FILES)
+MAINTAINERCLEANFILES = Makefile.in $(GENERATED_TESTS) config.m4 config.sh \
+ stamp-TESTS
+
TESTS = $(GENERATED_TESTS) $(OTHER_TESTS)
GENERATED_TESTS = \
@@ -68,6 +71,7 @@ GENERATED_TESTS = \
generated-tests/regexp.1.test \
generated-tests/regexp.2.test \
generated-tests/substr.1.test \
+ generated-tests/symbols.1.test \
generated-tests/sysval.1.test \
generated-tests/trace.1.test \
generated-tests/translit.1.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 60747f25..690f7fbf 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.3b from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,7 +15,7 @@
# The previous line is needed by `./esyscmd.1.test'
-SHELL = /bin/sh
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -50,7 +50,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -63,6 +63,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+AS = @AS@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@@ -70,6 +71,7 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DLLDFLAGS = @DLLDFLAGS@
+DLLTOOL = @DLLTOOL@
GENCAT = @GENCAT@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
@@ -90,6 +92,7 @@ MODULES_DIR = @MODULES_DIR@
MODULE_PATH = @MODULE_PATH@
MSGFMT = @MSGFMT@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
@@ -103,94 +106,22 @@ VERSION = @VERSION@
l = @l@
pkglibexecdir = @pkglibexecdir@
-EXTRA_DIST = get-them run-test mkconfig.sh foo incl.m4 stamp-TESTS \
- defs $(TESTS) $(OTHER_FILES)
+EXTRA_DIST = get-them run-test mkconfig.sh foo incl.m4 stamp-TESTS defs $(TESTS) $(OTHER_FILES)
+
+
+MAINTAINERCLEANFILES = Makefile.in $(GENERATED_TESTS) config.m4 config.sh stamp-TESTS
+
TESTS = $(GENERATED_TESTS) $(OTHER_TESTS)
-GENERATED_TESTS = \
- generated-tests/argument.1.test \
- generated-tests/argument.2.test \
- generated-tests/argument.3.test \
- generated-tests/argument.4.test \
- generated-tests/changeco.1.test \
- generated-tests/changeco.2.test \
- generated-tests/changequ.1.test \
- generated-tests/changequ.2.test \
- generated-tests/changequ.3.test \
- generated-tests/changesy.1.test \
- generated-tests/changesy.2.test \
- generated-tests/changesy.3.test \
- generated-tests/changesy.4.test \
- generated-tests/changesy.5.test \
- generated-tests/changesy.6.test \
- generated-tests/changesy.7.test \
- generated-tests/changesy.8.test \
- generated-tests/cleardiv.1.test \
- generated-tests/cleardiv.2.test \
- generated-tests/define.1.test \
- generated-tests/define.2.test \
- generated-tests/defn.1.test \
- generated-tests/defn.2.test \
- generated-tests/divert.1.test \
- generated-tests/divert.2.test \
- generated-tests/divnum.1.test \
- generated-tests/dnl.1.test \
- generated-tests/dumpdef.1.test \
- generated-tests/errprint.1.test \
- generated-tests/errprint.2.test \
- generated-tests/esyscmd.1.test \
- generated-tests/eval.1.test \
- generated-tests/eval.2.test \
- generated-tests/format.1.test \
- generated-tests/ifdef.1.test \
- generated-tests/ifelse.1.test \
- generated-tests/ifelse.2.test \
- generated-tests/include.1.test \
- generated-tests/include.2.test \
- generated-tests/include.3.test \
- generated-tests/incr.1.test \
- generated-tests/index.1.test \
- generated-tests/indir.1.test \
- generated-tests/len.1.test \
- generated-tests/loops.1.test \
- generated-tests/loops.2.test \
- generated-tests/m4exit.1.test \
- generated-tests/m4wrap.1.test \
- generated-tests/patsubst.1.test \
- generated-tests/patsubst.2.test \
- generated-tests/pseudoar.1.test \
- generated-tests/pseudoar.2.test \
- generated-tests/pseudoar.3.test \
- generated-tests/pseudoar.4.test \
- generated-tests/pseudoar.5.test \
- generated-tests/pushdef.1.test \
- generated-tests/pushdef.2.test \
- generated-tests/regexp.1.test \
- generated-tests/regexp.2.test \
- generated-tests/substr.1.test \
- generated-tests/sysval.1.test \
- generated-tests/trace.1.test \
- generated-tests/translit.1.test \
- generated-tests/undefine.1.test \
- generated-tests/undivert.1.test \
- generated-tests/undivert.2.test \
- generated-tests/undivert.3.test
-
-OTHER_TESTS = \
- other-tests/gmp.test \
- other-tests/iso8859.test \
- other-tests/sync-lines.test \
- other-tests/import-environment.test \
- other-tests/discard-comments.test \
- other-tests/stackovf.test
-
-OTHER_FILES = \
- other-tests/gmp.m4 \
- other-tests/iso8859.m4 \
- other-tests/import-environment.m4 \
- other-tests/discard-comments.m4 \
- other-tests/sync-lines.m4
+GENERATED_TESTS = generated-tests/argument.1.test generated-tests/argument.2.test generated-tests/argument.3.test generated-tests/argument.4.test generated-tests/changeco.1.test generated-tests/changeco.2.test generated-tests/changequ.1.test generated-tests/changequ.2.test generated-tests/changequ.3.test generated-tests/changesy.1.test generated-tests/changesy.2.test generated-tests/changesy.3.test generated-tests/changesy.4.test generated-tests/changesy.5.test generated-tests/changesy.6.test generated-tests/changesy.7.test generated-tests/changesy.8.test generated-tests/cleardiv.1.test generated-tests/cleardiv.2.test generated-tests/define.1.test generated-tests/define.2.test generated-tests/defn.1.test generated-tests/defn.2.test generated-tests/divert.1.test generated-tests/divert.2.test generated-tests/divnum.1.test generated-tests/dnl.1.test generated-tests/dumpdef.1.test generated-tests/errprint.1.test generated-tests/errprint.2.test generated-tests/esyscmd.1.test generated-tests/eval.1.test generated-tests/eval.2.test generated-tests/format.1.test generated-tests/ifdef.1.test generated-tests/ifelse.1.test generated-tests/ifelse.2.test generated-tests/include.1.test generated-tests/include.2.test generated-tests/include.3.test generated-tests/incr.1.test generated-tests/index.1.test generated-tests/indir.1.test generated-tests/len.1.test generated-tests/loops.1.test generated-tests/loops.2.test generated-tests/m4exit.1.test generated-tests/m4wrap.1.test generated-tests/patsubst.1.test generated-tests/patsubst.2.test generated-tests/pseudoar.1.test generated-tests/pseudoar.2.test generated-tests/pseudoar.3.test generated-tests/pseudoar.4.test generated-tests/pseudoar.5.test generated-tests/pushdef.1.test generated-tests/pushdef.2.test generated-tests/regexp.1.test generated-tests/regexp.2.test generated-tests/substr.1.test generated-tests/symbols.1.test generated-tests/sysval.1.test generated-tests/trace.1.test generated-tests/translit.1.test generated-tests/undefine.1.test generated-tests/undivert.1.test generated-tests/undivert.2.test generated-tests/undivert.3.test
+
+
+OTHER_TESTS = other-tests/gmp.test other-tests/iso8859.test other-tests/sync-lines.test other-tests/import-environment.test other-tests/discard-comments.test other-tests/stackovf.test
+
+
+OTHER_FILES = other-tests/gmp.m4 other-tests/iso8859.m4 other-tests/import-environment.m4 other-tests/discard-comments.m4 other-tests/sync-lines.m4
+
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
@@ -200,11 +131,10 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
-GZIP = --best
-all: Makefile
-
+GZIP_ENV = --best
+all: all-redirect
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps tests/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -223,9 +153,13 @@ distdir: $(DISTFILES)
$(mkinstalldirs) $(distdir)/generated-tests $(distdir)/other-tests
@for file in $(DISTFILES); do \
d=$(srcdir); \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
done
check-TESTS: $(TESTS)
@failed=0; all=0; \
@@ -252,24 +186,30 @@ check-TESTS: $(TESTS)
echo "$$banner"; \
echo "$$dashes"; \
test "$$failed" -eq 0
-info:
-dvi:
-check: all
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-installcheck:
-install-exec:
- @$(NORMAL_INSTALL)
-
-install-data:
- @$(NORMAL_INSTALL)
-
-install: install-exec install-data all
- @:
-
-uninstall:
-
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
@@ -282,20 +222,30 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-mostlyclean: mostlyclean-generic
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
-clean: clean-generic mostlyclean
+mostlyclean: mostlyclean-am
-distclean: distclean-generic clean
- -rm -f config.status
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
-rm -f libtool
-maintainer-clean: maintainer-clean-generic distclean
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
-.PHONY: tags distdir check-TESTS info dvi installcheck install-exec \
-install-data install uninstall all installdirs mostlyclean-generic \
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir check-TESTS info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
diff --git a/tests/generated-tests/argument.1.test b/tests/generated-tests/argument.1.test
index 8ae02f63..58a2c109 100755
--- a/tests/generated-tests/argument.1.test
+++ b/tests/generated-tests/argument.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/argument.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1052
+# generated from example in ../doc/m4.texinfo line 1054
. ${srcdir}/defs
diff --git a/tests/generated-tests/argument.2.test b/tests/generated-tests/argument.2.test
index 66c5a0bc..de268796 100755
--- a/tests/generated-tests/argument.2.test
+++ b/tests/generated-tests/argument.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/argument.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1062
+# generated from example in ../doc/m4.texinfo line 1064
. ${srcdir}/defs
diff --git a/tests/generated-tests/argument.3.test b/tests/generated-tests/argument.3.test
index 1a4f5997..4fae4d65 100755
--- a/tests/generated-tests/argument.3.test
+++ b/tests/generated-tests/argument.3.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/argument.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1082
+# generated from example in ../doc/m4.texinfo line 1084
. ${srcdir}/defs
diff --git a/tests/generated-tests/argument.4.test b/tests/generated-tests/argument.4.test
index dc0d79d4..ef6c1dbd 100755
--- a/tests/generated-tests/argument.4.test
+++ b/tests/generated-tests/argument.4.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/argument.4.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1092
+# generated from example in ../doc/m4.texinfo line 1094
. ${srcdir}/defs
diff --git a/tests/generated-tests/changeco.1.test b/tests/generated-tests/changeco.1.test
index 08267455..b941bdbf 100755
--- a/tests/generated-tests/changeco.1.test
+++ b/tests/generated-tests/changeco.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changeco.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1975
+# generated from example in ../doc/m4.texinfo line 2007
. ${srcdir}/defs
diff --git a/tests/generated-tests/changeco.2.test b/tests/generated-tests/changeco.2.test
index 07a4ca11..0906377d 100755
--- a/tests/generated-tests/changeco.2.test
+++ b/tests/generated-tests/changeco.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changeco.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1996
+# generated from example in ../doc/m4.texinfo line 2028
. ${srcdir}/defs
diff --git a/tests/generated-tests/changequ.1.test b/tests/generated-tests/changequ.1.test
index 8704aa2e..ed4f4531 100755
--- a/tests/generated-tests/changequ.1.test
+++ b/tests/generated-tests/changequ.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changequ.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1911
+# generated from example in ../doc/m4.texinfo line 1938
. ${srcdir}/defs
diff --git a/tests/generated-tests/changequ.2.test b/tests/generated-tests/changequ.2.test
index 5897c1de..3b1e9b0d 100755
--- a/tests/generated-tests/changequ.2.test
+++ b/tests/generated-tests/changequ.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changequ.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1923
+# generated from example in ../doc/m4.texinfo line 1950
. ${srcdir}/defs
diff --git a/tests/generated-tests/changequ.3.test b/tests/generated-tests/changequ.3.test
index 9dcbccba..16ccb0bb 100755
--- a/tests/generated-tests/changequ.3.test
+++ b/tests/generated-tests/changequ.3.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changequ.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1935
+# generated from example in ../doc/m4.texinfo line 1962
. ${srcdir}/defs
diff --git a/tests/generated-tests/changesy.1.test b/tests/generated-tests/changesy.1.test
index 84a0b0b2..bc6841cd 100755
--- a/tests/generated-tests/changesy.1.test
+++ b/tests/generated-tests/changesy.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changesy.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2147
+# generated from example in ../doc/m4.texinfo line 2179
. ${srcdir}/defs
diff --git a/tests/generated-tests/changesy.2.test b/tests/generated-tests/changesy.2.test
index 7aa20c67..826e1462 100755
--- a/tests/generated-tests/changesy.2.test
+++ b/tests/generated-tests/changesy.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changesy.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2163
+# generated from example in ../doc/m4.texinfo line 2195
. ${srcdir}/defs
diff --git a/tests/generated-tests/changesy.3.test b/tests/generated-tests/changesy.3.test
index 4cdc7c32..3016274d 100755
--- a/tests/generated-tests/changesy.3.test
+++ b/tests/generated-tests/changesy.3.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changesy.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2180
+# generated from example in ../doc/m4.texinfo line 2212
. ${srcdir}/defs
diff --git a/tests/generated-tests/changesy.4.test b/tests/generated-tests/changesy.4.test
index 765eb1a3..bd511116 100755
--- a/tests/generated-tests/changesy.4.test
+++ b/tests/generated-tests/changesy.4.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changesy.4.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2206
+# generated from example in ../doc/m4.texinfo line 2238
. ${srcdir}/defs
diff --git a/tests/generated-tests/changesy.5.test b/tests/generated-tests/changesy.5.test
index 2e0cd315..be0e2370 100755
--- a/tests/generated-tests/changesy.5.test
+++ b/tests/generated-tests/changesy.5.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changesy.5.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2235
+# generated from example in ../doc/m4.texinfo line 2267
. ${srcdir}/defs
diff --git a/tests/generated-tests/changesy.6.test b/tests/generated-tests/changesy.6.test
index 7a3b90ed..c9f1031e 100755
--- a/tests/generated-tests/changesy.6.test
+++ b/tests/generated-tests/changesy.6.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changesy.6.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2259
+# generated from example in ../doc/m4.texinfo line 2291
. ${srcdir}/defs
diff --git a/tests/generated-tests/changesy.7.test b/tests/generated-tests/changesy.7.test
index 50dac458..40a283fc 100755
--- a/tests/generated-tests/changesy.7.test
+++ b/tests/generated-tests/changesy.7.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changesy.7.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2281
+# generated from example in ../doc/m4.texinfo line 2313
. ${srcdir}/defs
diff --git a/tests/generated-tests/changesy.8.test b/tests/generated-tests/changesy.8.test
index 201285b4..4aa150e3 100755
--- a/tests/generated-tests/changesy.8.test
+++ b/tests/generated-tests/changesy.8.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/changesy.8.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2292
+# generated from example in ../doc/m4.texinfo line 2324
. ${srcdir}/defs
diff --git a/tests/generated-tests/cleardiv.1.test b/tests/generated-tests/cleardiv.1.test
index d3af45e3..2a030969 100755
--- a/tests/generated-tests/cleardiv.1.test
+++ b/tests/generated-tests/cleardiv.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/cleardiv.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2802
+# generated from example in ../doc/m4.texinfo line 2835
. ${srcdir}/defs
diff --git a/tests/generated-tests/cleardiv.2.test b/tests/generated-tests/cleardiv.2.test
index cfc78e0d..cf7a6a13 100755
--- a/tests/generated-tests/cleardiv.2.test
+++ b/tests/generated-tests/cleardiv.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/cleardiv.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2817
+# generated from example in ../doc/m4.texinfo line 2850
. ${srcdir}/defs
diff --git a/tests/generated-tests/define.1.test b/tests/generated-tests/define.1.test
index a8a8463b..d7d2296e 100755
--- a/tests/generated-tests/define.1.test
+++ b/tests/generated-tests/define.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/define.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1003
+# generated from example in ../doc/m4.texinfo line 1005
. ${srcdir}/defs
diff --git a/tests/generated-tests/define.2.test b/tests/generated-tests/define.2.test
index 3c04ee6c..43675300 100755
--- a/tests/generated-tests/define.2.test
+++ b/tests/generated-tests/define.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/define.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1023
+# generated from example in ../doc/m4.texinfo line 1025
. ${srcdir}/defs
diff --git a/tests/generated-tests/defn.1.test b/tests/generated-tests/defn.1.test
index 2042b105..d075fc7e 100755
--- a/tests/generated-tests/defn.1.test
+++ b/tests/generated-tests/defn.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/defn.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1246
+# generated from example in ../doc/m4.texinfo line 1248
. ${srcdir}/defs
diff --git a/tests/generated-tests/defn.2.test b/tests/generated-tests/defn.2.test
index 45821db0..b686d617 100755
--- a/tests/generated-tests/defn.2.test
+++ b/tests/generated-tests/defn.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/defn.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1266
+# generated from example in ../doc/m4.texinfo line 1268
. ${srcdir}/defs
diff --git a/tests/generated-tests/divert.1.test b/tests/generated-tests/divert.1.test
index 07fe3288..b448f15b 100755
--- a/tests/generated-tests/divert.1.test
+++ b/tests/generated-tests/divert.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/divert.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2644
+# generated from example in ../doc/m4.texinfo line 2677
. ${srcdir}/defs
diff --git a/tests/generated-tests/divert.2.test b/tests/generated-tests/divert.2.test
index aa96473b..fe20d6e6 100755
--- a/tests/generated-tests/divert.2.test
+++ b/tests/generated-tests/divert.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/divert.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2664
+# generated from example in ../doc/m4.texinfo line 2697
. ${srcdir}/defs
diff --git a/tests/generated-tests/divnum.1.test b/tests/generated-tests/divnum.1.test
index 4765a0ab..7888fd46 100755
--- a/tests/generated-tests/divnum.1.test
+++ b/tests/generated-tests/divnum.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/divnum.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2771
+# generated from example in ../doc/m4.texinfo line 2804
. ${srcdir}/defs
diff --git a/tests/generated-tests/dnl.1.test b/tests/generated-tests/dnl.1.test
index c1ee4a39..f6125536 100755
--- a/tests/generated-tests/dnl.1.test
+++ b/tests/generated-tests/dnl.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/dnl.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1873
+# generated from example in ../doc/m4.texinfo line 1900
. ${srcdir}/defs
diff --git a/tests/generated-tests/dumpdef.1.test b/tests/generated-tests/dumpdef.1.test
index f00fdcb4..f8493a8e 100755
--- a/tests/generated-tests/dumpdef.1.test
+++ b/tests/generated-tests/dumpdef.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/dumpdef.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1676
+# generated from example in ../doc/m4.texinfo line 1703
. ${srcdir}/defs
diff --git a/tests/generated-tests/errprint.1.test b/tests/generated-tests/errprint.1.test
index 42655a8f..0c1399d0 100755
--- a/tests/generated-tests/errprint.1.test
+++ b/tests/generated-tests/errprint.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/errprint.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3501
+# generated from example in ../doc/m4.texinfo line 3534
. ${srcdir}/defs
diff --git a/tests/generated-tests/errprint.2.test b/tests/generated-tests/errprint.2.test
index 3b8f0afd..e4ea48e5 100755
--- a/tests/generated-tests/errprint.2.test
+++ b/tests/generated-tests/errprint.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/errprint.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3526
+# generated from example in ../doc/m4.texinfo line 3559
. ${srcdir}/defs
diff --git a/tests/generated-tests/esyscmd.1.test b/tests/generated-tests/esyscmd.1.test
index b448131a..1b0140e6 100755
--- a/tests/generated-tests/esyscmd.1.test
+++ b/tests/generated-tests/esyscmd.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/esyscmd.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3390
+# generated from example in ../doc/m4.texinfo line 3423
. ${srcdir}/defs
diff --git a/tests/generated-tests/eval.1.test b/tests/generated-tests/eval.1.test
index e2d82923..cb417584 100755
--- a/tests/generated-tests/eval.1.test
+++ b/tests/generated-tests/eval.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/eval.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3255
+# generated from example in ../doc/m4.texinfo line 3288
. ${srcdir}/defs
diff --git a/tests/generated-tests/eval.2.test b/tests/generated-tests/eval.2.test
index 376cef73..747f9c56 100755
--- a/tests/generated-tests/eval.2.test
+++ b/tests/generated-tests/eval.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/eval.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3286
+# generated from example in ../doc/m4.texinfo line 3319
. ${srcdir}/defs
diff --git a/tests/generated-tests/format.1.test b/tests/generated-tests/format.1.test
index 78d07aa7..f703e561 100755
--- a/tests/generated-tests/format.1.test
+++ b/tests/generated-tests/format.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/format.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3099
+# generated from example in ../doc/m4.texinfo line 3132
. ${srcdir}/defs
diff --git a/tests/generated-tests/ifdef.1.test b/tests/generated-tests/ifdef.1.test
index 5841b3d3..848081b4 100755
--- a/tests/generated-tests/ifdef.1.test
+++ b/tests/generated-tests/ifdef.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/ifdef.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1456
+# generated from example in ../doc/m4.texinfo line 1483
. ${srcdir}/defs
diff --git a/tests/generated-tests/ifelse.1.test b/tests/generated-tests/ifelse.1.test
index e4d5b9bd..eb6af2c6 100755
--- a/tests/generated-tests/ifelse.1.test
+++ b/tests/generated-tests/ifelse.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/ifelse.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1494
+# generated from example in ../doc/m4.texinfo line 1521
. ${srcdir}/defs
diff --git a/tests/generated-tests/ifelse.2.test b/tests/generated-tests/ifelse.2.test
index ff0dd68c..081263fb 100755
--- a/tests/generated-tests/ifelse.2.test
+++ b/tests/generated-tests/ifelse.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/ifelse.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1513
+# generated from example in ../doc/m4.texinfo line 1540
. ${srcdir}/defs
diff --git a/tests/generated-tests/include.1.test b/tests/generated-tests/include.1.test
index 2cad5c51..5c887b43 100755
--- a/tests/generated-tests/include.1.test
+++ b/tests/generated-tests/include.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/include.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2518
+# generated from example in ../doc/m4.texinfo line 2551
. ${srcdir}/defs
diff --git a/tests/generated-tests/include.2.test b/tests/generated-tests/include.2.test
index 44816a1f..350f4805 100755
--- a/tests/generated-tests/include.2.test
+++ b/tests/generated-tests/include.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/include.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2538
+# generated from example in ../doc/m4.texinfo line 2571
. ${srcdir}/defs
diff --git a/tests/generated-tests/include.3.test b/tests/generated-tests/include.3.test
index f3e1ddf7..3113671f 100755
--- a/tests/generated-tests/include.3.test
+++ b/tests/generated-tests/include.3.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/include.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2553
+# generated from example in ../doc/m4.texinfo line 2586
. ${srcdir}/defs
diff --git a/tests/generated-tests/incr.1.test b/tests/generated-tests/incr.1.test
index 6236037d..51191f15 100755
--- a/tests/generated-tests/incr.1.test
+++ b/tests/generated-tests/incr.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/incr.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3170
+# generated from example in ../doc/m4.texinfo line 3203
. ${srcdir}/defs
diff --git a/tests/generated-tests/index.1.test b/tests/generated-tests/index.1.test
index b0e219b6..a771d39c 100755
--- a/tests/generated-tests/index.1.test
+++ b/tests/generated-tests/index.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/index.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2885
+# generated from example in ../doc/m4.texinfo line 2918
. ${srcdir}/defs
diff --git a/tests/generated-tests/indir.1.test b/tests/generated-tests/indir.1.test
index 5e34d09c..15222156 100755
--- a/tests/generated-tests/indir.1.test
+++ b/tests/generated-tests/indir.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/indir.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1385
+# generated from example in ../doc/m4.texinfo line 1387
. ${srcdir}/defs
diff --git a/tests/generated-tests/len.1.test b/tests/generated-tests/len.1.test
index 6a98c578..fd34aba2 100755
--- a/tests/generated-tests/len.1.test
+++ b/tests/generated-tests/len.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/len.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2859
+# generated from example in ../doc/m4.texinfo line 2892
. ${srcdir}/defs
diff --git a/tests/generated-tests/loops.1.test b/tests/generated-tests/loops.1.test
index b02e5cd7..847eed89 100755
--- a/tests/generated-tests/loops.1.test
+++ b/tests/generated-tests/loops.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/loops.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1550
+# generated from example in ../doc/m4.texinfo line 1577
. ${srcdir}/defs
diff --git a/tests/generated-tests/loops.2.test b/tests/generated-tests/loops.2.test
index 324dab33..f2eeb32c 100755
--- a/tests/generated-tests/loops.2.test
+++ b/tests/generated-tests/loops.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/loops.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1562
+# generated from example in ../doc/m4.texinfo line 1589
. ${srcdir}/defs
diff --git a/tests/generated-tests/m4exit.1.test b/tests/generated-tests/m4exit.1.test
index 215547f5..fb9846f9 100755
--- a/tests/generated-tests/m4exit.1.test
+++ b/tests/generated-tests/m4exit.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/m4exit.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3549
+# generated from example in ../doc/m4.texinfo line 3582
. ${srcdir}/defs
diff --git a/tests/generated-tests/m4wrap.1.test b/tests/generated-tests/m4wrap.1.test
index 789ef3ef..d2d9666b 100755
--- a/tests/generated-tests/m4wrap.1.test
+++ b/tests/generated-tests/m4wrap.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/m4wrap.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2459
+# generated from example in ../doc/m4.texinfo line 2492
. ${srcdir}/defs
diff --git a/tests/generated-tests/patsubst.1.test b/tests/generated-tests/patsubst.1.test
index 6ef7f289..d2f8ace0 100755
--- a/tests/generated-tests/patsubst.1.test
+++ b/tests/generated-tests/patsubst.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/patsubst.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3047
+# generated from example in ../doc/m4.texinfo line 3080
. ${srcdir}/defs
diff --git a/tests/generated-tests/patsubst.2.test b/tests/generated-tests/patsubst.2.test
index 364747ab..4f439e43 100755
--- a/tests/generated-tests/patsubst.2.test
+++ b/tests/generated-tests/patsubst.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/patsubst.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3064
+# generated from example in ../doc/m4.texinfo line 3097
. ${srcdir}/defs
diff --git a/tests/generated-tests/pseudoar.1.test b/tests/generated-tests/pseudoar.1.test
index c51261c7..7d2d1aa8 100755
--- a/tests/generated-tests/pseudoar.1.test
+++ b/tests/generated-tests/pseudoar.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/pseudoar.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1116
+# generated from example in ../doc/m4.texinfo line 1118
. ${srcdir}/defs
diff --git a/tests/generated-tests/pseudoar.2.test b/tests/generated-tests/pseudoar.2.test
index 3c13006e..d0e2e78d 100755
--- a/tests/generated-tests/pseudoar.2.test
+++ b/tests/generated-tests/pseudoar.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/pseudoar.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1130
+# generated from example in ../doc/m4.texinfo line 1132
. ${srcdir}/defs
diff --git a/tests/generated-tests/pseudoar.3.test b/tests/generated-tests/pseudoar.3.test
index aea8bba2..c13c91b4 100755
--- a/tests/generated-tests/pseudoar.3.test
+++ b/tests/generated-tests/pseudoar.3.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/pseudoar.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1141
+# generated from example in ../doc/m4.texinfo line 1143
. ${srcdir}/defs
diff --git a/tests/generated-tests/pseudoar.4.test b/tests/generated-tests/pseudoar.4.test
index ed9f5961..35671d67 100755
--- a/tests/generated-tests/pseudoar.4.test
+++ b/tests/generated-tests/pseudoar.4.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/pseudoar.4.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1151
+# generated from example in ../doc/m4.texinfo line 1153
. ${srcdir}/defs
diff --git a/tests/generated-tests/pseudoar.5.test b/tests/generated-tests/pseudoar.5.test
index 3bee239f..f4f536fe 100755
--- a/tests/generated-tests/pseudoar.5.test
+++ b/tests/generated-tests/pseudoar.5.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/pseudoar.5.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1171
+# generated from example in ../doc/m4.texinfo line 1173
. ${srcdir}/defs
diff --git a/tests/generated-tests/pushdef.1.test b/tests/generated-tests/pushdef.1.test
index eef2f717..db1e128c 100755
--- a/tests/generated-tests/pushdef.1.test
+++ b/tests/generated-tests/pushdef.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/pushdef.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1310
+# generated from example in ../doc/m4.texinfo line 1312
. ${srcdir}/defs
diff --git a/tests/generated-tests/pushdef.2.test b/tests/generated-tests/pushdef.2.test
index e352b05c..a1d55d76 100755
--- a/tests/generated-tests/pushdef.2.test
+++ b/tests/generated-tests/pushdef.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/pushdef.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1334
+# generated from example in ../doc/m4.texinfo line 1336
. ${srcdir}/defs
diff --git a/tests/generated-tests/regexp.1.test b/tests/generated-tests/regexp.1.test
index 40def4e8..cc02bfe4 100755
--- a/tests/generated-tests/regexp.1.test
+++ b/tests/generated-tests/regexp.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/regexp.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2917
+# generated from example in ../doc/m4.texinfo line 2950
. ${srcdir}/defs
diff --git a/tests/generated-tests/regexp.2.test b/tests/generated-tests/regexp.2.test
index 5509bbe5..c03d17b1 100755
--- a/tests/generated-tests/regexp.2.test
+++ b/tests/generated-tests/regexp.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/regexp.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2929
+# generated from example in ../doc/m4.texinfo line 2962
. ${srcdir}/defs
diff --git a/tests/generated-tests/substr.1.test b/tests/generated-tests/substr.1.test
index fabd9a90..8221ec2d 100755
--- a/tests/generated-tests/substr.1.test
+++ b/tests/generated-tests/substr.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/substr.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2955
+# generated from example in ../doc/m4.texinfo line 2988
. ${srcdir}/defs
diff --git a/tests/generated-tests/symbols.1.test b/tests/generated-tests/symbols.1.test
new file mode 100755
index 00000000..4414ee13
--- /dev/null
+++ b/tests/generated-tests/symbols.1.test
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# generated-tests/symbols.1.test is part of the GNU m4 testsuite
+# generated from example in ../doc/m4.texinfo line 1442
+
+. ${srcdir}/defs
+
+cat <<\EOF >in
+symbols(`ifndef', `ifdef', `define', `undef')
+EOF
+
+cat <<\EOF >ok
+define,ifdef
+EOF
+
+$M4 -d in >out
+
+$CMP -s out ok
+
diff --git a/tests/generated-tests/sysval.1.test b/tests/generated-tests/sysval.1.test
index 1728e2e4..1edbbb39 100755
--- a/tests/generated-tests/sysval.1.test
+++ b/tests/generated-tests/sysval.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/sysval.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 3421
+# generated from example in ../doc/m4.texinfo line 3454
. ${srcdir}/defs
diff --git a/tests/generated-tests/trace.1.test b/tests/generated-tests/trace.1.test
index 155f0569..74255193 100755
--- a/tests/generated-tests/trace.1.test
+++ b/tests/generated-tests/trace.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/trace.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1721
+# generated from example in ../doc/m4.texinfo line 1748
. ${srcdir}/defs
diff --git a/tests/generated-tests/translit.1.test b/tests/generated-tests/translit.1.test
index af9db4ba..d49ebb9d 100755
--- a/tests/generated-tests/translit.1.test
+++ b/tests/generated-tests/translit.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/translit.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2996
+# generated from example in ../doc/m4.texinfo line 3029
. ${srcdir}/defs
diff --git a/tests/generated-tests/undefine.1.test b/tests/generated-tests/undefine.1.test
index 955a96fc..8aa8cf7a 100755
--- a/tests/generated-tests/undefine.1.test
+++ b/tests/generated-tests/undefine.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/undefine.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 1202
+# generated from example in ../doc/m4.texinfo line 1204
. ${srcdir}/defs
diff --git a/tests/generated-tests/undivert.1.test b/tests/generated-tests/undivert.1.test
index 47dd99bf..f9f1be1a 100755
--- a/tests/generated-tests/undivert.1.test
+++ b/tests/generated-tests/undivert.1.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/undivert.1.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2695
+# generated from example in ../doc/m4.texinfo line 2728
. ${srcdir}/defs
diff --git a/tests/generated-tests/undivert.2.test b/tests/generated-tests/undivert.2.test
index 753dd707..9f11d80c 100755
--- a/tests/generated-tests/undivert.2.test
+++ b/tests/generated-tests/undivert.2.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/undivert.2.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2719
+# generated from example in ../doc/m4.texinfo line 2752
. ${srcdir}/defs
diff --git a/tests/generated-tests/undivert.3.test b/tests/generated-tests/undivert.3.test
index cca0a7c1..372497ce 100755
--- a/tests/generated-tests/undivert.3.test
+++ b/tests/generated-tests/undivert.3.test
@@ -1,7 +1,7 @@
#!/bin/sh
# generated-tests/undivert.3.test is part of the GNU m4 testsuite
-# generated from example in ../doc/m4.texinfo line 2745
+# generated from example in ../doc/m4.texinfo line 2778
. ${srcdir}/defs