[yocto] [meta-security][PATCH] clamav: update to 0.99.1

Armin Kuster akuster808 at gmail.com
Mon Mar 21 20:00:39 PDT 2016


removed debian patches
brut force remove rpaths

Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 ...paths-in-sample-conf-file-to-match-Debian.patch |    40 -
 ...itional-n-after-the-number-in-the-pidfile.patch |    56 -
 ...increment-test-timeout-from-40secs-to-5mi.patch |    30 -
 .../clamav-0.98.5/0004-Fix-compiling-on-Hurd.patch |    50 -
 .../0005-Workaround-a-bug-in-libc-on-Hurd.patch    |    35 -
 ...necessary-harmful-flags-from-libclamav.pc.patch |    22 -
 .../0007-libclamav-use-libmspack.patch             |  4042 --
 ...m-systemd-support-for-clamav-daemon-and-c.patch |   655 -
 ...-fix-ssize_t-size_t-off_t-printf-modifier.patch |   478 -
 ...VM-linker-flag-because-llvm-config-return.patch |    26 -
 ...ck-library-from-upstream-without-unnecess.patch | 56090 -------------------
 ...e-internal-libmspack-if-the-external-is-n.patch |   106 -
 ...13-fix-autoreconf-with-embedded-libmspack.patch |    27 -
 ...ONFIG_SRCDIR-llvm-configure-from-libclama.patch |    23 -
 ...low-to-specificy-a-group-for-the-socket-o.patch |   229 -
 ...er-add-additinal-SMFIF_-flags-before-invo.patch |    86 -
 .../0017-Bump-.so-version-number.patch             |    22 -
 .../0018-llvm-don-t-use-system-libs.patch          |    26 -
 .../clamav-0.98.5/clamav-0001-clamdscan.patch      |    21 -
 .../clamav/clamav-0.98.5/clamav-freshclam.service  |    12 -
 .../clamav/clamav-0.98.5/clamav-milter.conf.sample |   293 -
 .../clamav/clamav-0.98.5/clamav.service            |    17 -
 recipes-security/clamav/clamav-0.98.5/clamd.conf   |   595 -
 .../clamav/clamav-0.98.5/freshclam.conf            |   224 -
 recipes-security/clamav/clamav-0.98.5/series       |    18 -
 .../clamav/clamav-0.98.5/volatiles.03_clamav       |     3 -
 .../clamav/clamav-0.99.1/clamav-freshclam.service  |    12 +
 .../clamav/clamav-0.99.1/clamav-milter.conf.sample |   293 +
 .../clamav/clamav-0.99.1/clamav.service            |    17 +
 recipes-security/clamav/clamav-0.99.1/clamd.conf   |   595 +
 .../clamav/clamav-0.99.1/freshclam.conf            |   224 +
 .../clamav/clamav-0.99.1/mempool_build_fix.patch   |    14 +
 .../clamav/clamav-0.99.1/remove_rpath_chk.patch    |    16 +
 .../clamav/clamav-0.99.1/rpath_rmove.patch         |    44 +
 .../clamav/clamav-0.99.1/volatiles.03_clamav       |     3 +
 recipes-security/clamav/clamav_0.98.5.bb           |   132 -
 recipes-security/clamav/clamav_0.99.1.bb           |   139 +
 37 files changed, 1357 insertions(+), 63358 deletions(-)
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0001-Change-paths-in-sample-conf-file-to-match-Debian.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0002-Add-an-additional-n-after-the-number-in-the-pidfile.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0003-unit_tests-increment-test-timeout-from-40secs-to-5mi.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0004-Fix-compiling-on-Hurd.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0005-Workaround-a-bug-in-libc-on-Hurd.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0006-remove-unnecessary-harmful-flags-from-libclamav.pc.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0007-libclamav-use-libmspack.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0008-Add-upstream-systemd-support-for-clamav-daemon-and-c.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0009-fix-ssize_t-size_t-off_t-printf-modifier.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0010-hardcode-LLVM-linker-flag-because-llvm-config-return.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0011-Add-libmspack-library-from-upstream-without-unnecess.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0012-allow-to-use-internal-libmspack-if-the-external-is-n.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0013-fix-autoreconf-with-embedded-libmspack.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0014-remove-AC_CONFIG_SRCDIR-llvm-configure-from-libclama.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0015-bb-10731-Allow-to-specificy-a-group-for-the-socket-o.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0016-clamav-milter-add-additinal-SMFIF_-flags-before-invo.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0017-Bump-.so-version-number.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/0018-llvm-don-t-use-system-libs.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/clamav-0001-clamdscan.patch
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/clamav-freshclam.service
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/clamav-milter.conf.sample
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/clamav.service
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/clamd.conf
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/freshclam.conf
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/series
 delete mode 100644 recipes-security/clamav/clamav-0.98.5/volatiles.03_clamav
 create mode 100644 recipes-security/clamav/clamav-0.99.1/clamav-freshclam.service
 create mode 100644 recipes-security/clamav/clamav-0.99.1/clamav-milter.conf.sample
 create mode 100644 recipes-security/clamav/clamav-0.99.1/clamav.service
 create mode 100644 recipes-security/clamav/clamav-0.99.1/clamd.conf
 create mode 100644 recipes-security/clamav/clamav-0.99.1/freshclam.conf
 create mode 100644 recipes-security/clamav/clamav-0.99.1/mempool_build_fix.patch
 create mode 100644 recipes-security/clamav/clamav-0.99.1/remove_rpath_chk.patch
 create mode 100644 recipes-security/clamav/clamav-0.99.1/rpath_rmove.patch
 create mode 100644 recipes-security/clamav/clamav-0.99.1/volatiles.03_clamav
 delete mode 100644 recipes-security/clamav/clamav_0.98.5.bb
 create mode 100644 recipes-security/clamav/clamav_0.99.1.bb

diff --git a/recipes-security/clamav/clamav-0.98.5/0001-Change-paths-in-sample-conf-file-to-match-Debian.patch b/recipes-security/clamav/clamav-0.98.5/0001-Change-paths-in-sample-conf-file-to-match-Debian.patch
deleted file mode 100644
index afbd402..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0001-Change-paths-in-sample-conf-file-to-match-Debian.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From a6d6189e25d0a1053dc1aaff1b4c71f84b4599cf Mon Sep 17 00:00:00 2001
-From: Scott Kitterman <scott at kitterman.com>
-Date: Mon, 10 Mar 2014 19:20:18 -0400
-Subject: Change paths in sample conf file to match Debian
-
----
- etc/clamav-milter.conf.sample | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/etc/clamav-milter.conf.sample b/etc/clamav-milter.conf.sample
-index b7d66a4f9641..ed0d519ffb9b 100644
---- a/etc/clamav-milter.conf.sample
-+++ b/etc/clamav-milter.conf.sample
-@@ -64,7 +64,7 @@ Example
- # daemon (main thread).
- #
- # Default: disabled
--#PidFile /var/run/clamav-milter.pid
-+#PidFile /var/run/clamav/clamav-milter.pid
- 
- # Optional path to the global temporary directory.
- # Default: system specific (usually /tmp or /var/tmp).
-@@ -90,7 +90,7 @@ Example
- # with the same socket: clamd servers will be selected in a round-robin fashion.
- #
- # Default: no default
--#ClamdSocket tcp:scanner.mydomain:7357
-+ClamdSocket /var/run/clamav/clamd
- 
- 
- ##
-@@ -212,7 +212,7 @@ Example
- # A full path is required.
- #
- # Default: disabled
--#LogFile /tmp/clamav-milter.log
-+#LogFile /var/log/clamav/clamav-milter.log
- 
- # By default the log file is locked for writing - the lock protects against
- # running clamav-milter multiple times.
diff --git a/recipes-security/clamav/clamav-0.98.5/0002-Add-an-additional-n-after-the-number-in-the-pidfile.patch b/recipes-security/clamav/clamav-0.98.5/0002-Add-an-additional-n-after-the-number-in-the-pidfile.patch
deleted file mode 100644
index 6055bd1..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0002-Add-an-additional-n-after-the-number-in-the-pidfile.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 3ae8ea99a010e5c513aa48c3bfa15a65772f742b Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
-Date: Sat, 29 Mar 2014 15:52:55 +0100
-Subject: Add an additional \n after the number in the pidfile
-
-start-stop-daemon works without the \n in the file but pkill does not.
-Also the output of cat $PifFile looks better :)
-
-https://bugzilla.clamav.net/show_bug.cgi?id=10907
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- clamav-milter/clamav-milter.c | 2 +-
- clamd/server-th.c             | 2 +-
- freshclam/freshclam.c         | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/clamav-milter/clamav-milter.c b/clamav-milter/clamav-milter.c
-index b6ac9e157872..2c7a4d7d3414 100644
---- a/clamav-milter/clamav-milter.c
-+++ b/clamav-milter/clamav-milter.c
-@@ -381,7 +381,7 @@ int main(int argc, char **argv) {
- 	if((fd = fopen(opt->strarg, "w")) == NULL) {
- 	    logg("!Can't save PID in file %s\n", opt->strarg);
- 	} else {
--	    if (fprintf(fd, "%u", (unsigned int)getpid())<0) {
-+	    if (fprintf(fd, "%u\n", (unsigned int)getpid())<0) {
- 	    	logg("!Can't save PID in file %s\n", opt->strarg);
- 	    }
- 	    fclose(fd);
-diff --git a/clamd/server-th.c b/clamd/server-th.c
-index 7ec5ae80cd64..d97cd6fb34e1 100644
---- a/clamd/server-th.c
-+++ b/clamd/server-th.c
-@@ -1034,7 +1034,7 @@ int recvloop_th(int *socketds, unsigned nsockets, struct cl_engine *engine, unsi
- 	if((fd = fopen(opt->strarg, "w")) == NULL) {
- 	    logg("!Can't save PID in file %s\n", opt->strarg);
- 	} else {
--	    if (fprintf(fd, "%u", (unsigned int) mainpid)<0) {
-+	    if (fprintf(fd, "%u\n", (unsigned int) mainpid)<0) {
- 	    	logg("!Can't save PID in file %s\n", opt->strarg);
- 	    }
- 	    fclose(fd);
-diff --git a/freshclam/freshclam.c b/freshclam/freshclam.c
-index 1a3279966720..166586bf6447 100644
---- a/freshclam/freshclam.c
-+++ b/freshclam/freshclam.c
-@@ -135,7 +135,7 @@ writepid (const char *pidfile)
-     }
-     else
-     {
--        fprintf (fd, "%d", (int) getpid ());
-+        fprintf (fd, "%d\n", (int) getpid ());
-         fclose (fd);
-     }
-     umask (old_umask);
diff --git a/recipes-security/clamav/clamav-0.98.5/0003-unit_tests-increment-test-timeout-from-40secs-to-5mi.patch b/recipes-security/clamav/clamav-0.98.5/0003-unit_tests-increment-test-timeout-from-40secs-to-5mi.patch
deleted file mode 100644
index 3251278..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0003-unit_tests-increment-test-timeout-from-40secs-to-5mi.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d5febd3fab63a6dc4af148ab1b94fe8a85412b46 Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
-Date: Fri, 25 Apr 2014 22:06:23 +0200
-Subject: unit_tests: increment test-timeout from 40secs to 5mins
-
-I see now and then that tests on the slower archs (arm*, mips) fail due to
-the timeout restriction. Often a second build even on the same buildd
-succeeds. I think that the buildd is either close to the limit or has
-something else (another sbuild running) going so it does not finish the
-test in 40secs.
-Therefore I raise the bar to a 5 minutes limit. The worst thing that can
-happen is, that it takes more than 4 minutes before an enless loop will
-be detected.
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- unit_tests/preload_run.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/unit_tests/preload_run.sh b/unit_tests/preload_run.sh
-index 8b8c8e3954dd..365b3a8e0edb 100755
---- a/unit_tests/preload_run.sh
-+++ b/unit_tests/preload_run.sh
-@@ -5,5 +5,5 @@
- ulimit -c 0 || true
- LD_PRELOAD=$LIBPRELOAD
- export LD_PRELOAD
--export CK_DEFAULT_TIMEOUT=40
-+export CK_DEFAULT_TIMEOUT=300
- exec $@
diff --git a/recipes-security/clamav/clamav-0.98.5/0004-Fix-compiling-on-Hurd.patch b/recipes-security/clamav/clamav-0.98.5/0004-Fix-compiling-on-Hurd.patch
deleted file mode 100644
index de68367..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0004-Fix-compiling-on-Hurd.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From db4079249ca4ead5821ce6e1d32edad84c2579aa Mon Sep 17 00:00:00 2001
-From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
-Date: Sat, 21 Jun 2014 17:00:47 +0200
-Subject: Fix compiling on Hurd.
-
-The header linux/sockios.h is not available on Hurd.
----
- libclamav/hostid.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/libclamav/hostid.c b/libclamav/hostid.c
-index bf988de2d6fd..e683539eaf41 100644
---- a/libclamav/hostid.c
-+++ b/libclamav/hostid.c
-@@ -47,7 +47,7 @@
- #include <ifaddrs.h>
- #endif
- 
--#if defined(SIOCGIFHWADDR)
-+#if defined(SIOCGIFHWADDR) && !defined(__GNU__)
- #if defined(_AIX)
- #include <sys/ndd_var.h>
- #include <sys/kinfo.h>
-@@ -116,7 +116,7 @@ struct device *get_devices(void)
-     uint8_t *mac;
-     int sock;
- 
--#if defined(SIOCGIFHWADDR)
-+#if defined(SIOCGIFHWADDR) && !defined(__GNU__)
-     struct ifreq ifr;
- #else
-     struct sockaddr_dl *sdl;
-@@ -155,7 +155,7 @@ struct device *get_devices(void)
-          * Instead, Linux uses its own ioctl. This code only runs if we're not Linux,
-          * Windows, or FreeBSD.
-          */
--#if !defined(SIOCGIFHWADDR)
-+#if !defined(SIOCGIFHWADDR) || defined(__GNU__)
-         for (i=0; i < ndevices; i++) {
-             if (!(strcmp(devices[i].name, addr->ifa_name))) {
-                 sdl = (struct sockaddr_dl *)(addr->ifa_addr);
-@@ -180,7 +180,7 @@ struct device *get_devices(void)
-     }
- 
-     /* This is the Linux version of getting the MAC addresses */
--#if defined(SIOCGIFHWADDR)
-+#if defined(SIOCGIFHWADDR) && !defined(__GNU__)
-     for (i=0; i < ndevices; i++) {
-         if (!(devices[i].name))
-             continue;
diff --git a/recipes-security/clamav/clamav-0.98.5/0005-Workaround-a-bug-in-libc-on-Hurd.patch b/recipes-security/clamav/clamav-0.98.5/0005-Workaround-a-bug-in-libc-on-Hurd.patch
deleted file mode 100644
index c02d2b2..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0005-Workaround-a-bug-in-libc-on-Hurd.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From b8e7d19ec50c30c59fa1038cd9da6d37c2176833 Mon Sep 17 00:00:00 2001
-From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
-Date: Sat, 21 Jun 2014 17:02:06 +0200
-Subject: Workaround a bug in libc on Hurd
-
-The send() function, when asked to send 0 characters, doesn't trigger a corresponding recv(), except on Hurd.
-
-This breaks the communication between clamd and clamdscan.
-
-See: https://bugs.debian.org/752237
----
- clamd/scanner.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/clamd/scanner.c b/clamd/scanner.c
-index cd3d07c4ad3e..d531c4420686 100644
---- a/clamd/scanner.c
-+++ b/clamd/scanner.c
-@@ -119,6 +119,7 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea
- 
-     /* detect disconnected socket, 
-      * this should NOT detect half-shutdown sockets (SHUT_WR) */
-+#if !defined(__GNU__)
-     if (send(scandata->conn->sd, &ret, 0, 0) == -1 && errno != EINTR) {
- 	logg("$Client disconnected while command was active!\n");
- 	thrmgr_group_terminate(scandata->conn->group);
-@@ -126,7 +127,7 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea
- 	    free(filename);
- 	return CL_BREAK;
-     }
--
-+#endif
-     if (thrmgr_group_need_terminate(scandata->conn->group)) {
- 	logg("^Client disconnected while scanjob was active\n");
- 	if (reason == visit_file)
diff --git a/recipes-security/clamav/clamav-0.98.5/0006-remove-unnecessary-harmful-flags-from-libclamav.pc.patch b/recipes-security/clamav/clamav-0.98.5/0006-remove-unnecessary-harmful-flags-from-libclamav.pc.patch
deleted file mode 100644
index 95ffd39..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0006-remove-unnecessary-harmful-flags-from-libclamav.pc.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 0fd50756af998fabc3393f67ff8b78a4855303d9 Mon Sep 17 00:00:00 2001
-From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
-Date: Mon, 4 Aug 2014 22:44:40 +0200
-Subject: remove unnecessary/harmful flags from libclamav.pc
-
----
- libclamav.pc.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libclamav.pc.in b/libclamav.pc.in
-index 27db30e757ff..19ef1e4e0399 100644
---- a/libclamav.pc.in
-+++ b/libclamav.pc.in
-@@ -6,6 +6,6 @@ includedir=@includedir@
- Name: libclamav
- Description: A GPL virus scanner
- Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -lclamav @LIBCLAMAV_LIBS@
--Cflags: -I${includedir} @CFLAGS@
-+Libs: -L${libdir} -lclamav
-+Cflags: -I${includedir}
- 
diff --git a/recipes-security/clamav/clamav-0.98.5/0007-libclamav-use-libmspack.patch b/recipes-security/clamav/clamav-0.98.5/0007-libclamav-use-libmspack.patch
deleted file mode 100644
index 83f30fb..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0007-libclamav-use-libmspack.patch
+++ /dev/null
@@ -1,4042 +0,0 @@
-From bffbaabfbb139ef1596d8b20f0275293cecd9297 Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
-Date: Wed, 30 Jul 2014 08:35:16 +0200
-Subject: libclamav: use libmspack
-
-This patch provides support for upstream / external libmspack version
-libmspack 0.4 (current). The old in-tree version of libmspack is removed
-while no loner used.
-
-BTS: #675558
-clamav: https://bugzilla.clamav.net/show_bug.cgi?id=11062
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- configure.ac          |    3 +
- libclamav/Makefile.am |   11 +-
- libclamav/cab.c       |  684 -----------------
- libclamav/cab.h       |   81 --
- libclamav/chmunpack.h |  122 ---
- libclamav/libmspack.c |  525 +++++++++++++
- libclamav/libmspack.h |    7 +
- libclamav/mspack.c    | 2026 -------------------------------------------------
- libclamav/mspack.h    |  294 -------
- libclamav/scanners.c  |  146 +---
- 10 files changed, 541 insertions(+), 3358 deletions(-)
- delete mode 100644 libclamav/cab.c
- delete mode 100644 libclamav/cab.h
- delete mode 100644 libclamav/chmunpack.h
- create mode 100644 libclamav/libmspack.c
- create mode 100644 libclamav/libmspack.h
- delete mode 100644 libclamav/mspack.c
- delete mode 100644 libclamav/mspack.h
-
-diff --git a/configure.ac b/configure.ac
-index e230f939c2d3..41043753fc92 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -174,6 +174,9 @@ if test "$enable_llvm" = "yes" && test "$subdirfailed" != "no"; then
- fi
- AM_CONDITIONAL([ENABLE_LLVM],
- 	       [test "$subdirfailed" != "yes" && test "$enable_llvm" != "no"])
-+
-+PKG_CHECK_MODULES([LIBMSPACK], [libmspack])
-+
- no_recursion="yes";
- AC_OUTPUT([libclamav/Makefile])
- 
-diff --git a/libclamav/Makefile.am b/libclamav/Makefile.am
-index 1aab51bd6ccc..538e83dcdd03 100644
---- a/libclamav/Makefile.am
-+++ b/libclamav/Makefile.am
-@@ -147,6 +147,9 @@ if VERSIONSCRIPT
- libclamav_la_LDFLAGS += -Wl, at VERSIONSCRIPTFLAG@, at top_srcdir@/libclamav/libclamav.map
- endif
- 
-+libclamav_la_CFLAGS += $(LIBMSPACK_CFLAGS)
-+libclamav_la_LDFLAGS += $(LIBMSPACK_LIBS)
-+
- include_HEADERS = clamav.h
- 
- libclamav_la_SOURCES = \
-@@ -204,8 +207,8 @@ libclamav_la_SOURCES = \
- 	upx.h \
- 	htmlnorm.c \
- 	htmlnorm.h \
--	chmunpack.c \
--	chmunpack.h \
-+	libmspack.c \
-+	libmspack.h \
- 	rebuildpe.c \
- 	rebuildpe.h \
- 	petite.c \
-@@ -283,10 +286,6 @@ libclamav_la_SOURCES = \
- 	regex_list.h \
- 	regex_suffix.c \
- 	regex_suffix.h \
--	mspack.c \
--	mspack.h \
--	cab.c \
--	cab.h \
- 	entconv.c \
- 	entconv.h \
- 	entitylist.h \
-diff --git a/libclamav/cab.c b/libclamav/cab.c
-deleted file mode 100644
-index 6d2eade7d4ea..000000000000
---- a/libclamav/cab.c
-+++ /dev/null
-@@ -1,684 +0,0 @@
--/*
-- *  Copyright (C) 2007-2008 Sourcefire, Inc.
-- *
-- *  Authors: Tomasz Kojm
-- *
-- *  This program is free software; you can redistribute it and/or modify
-- *  it under the terms of the GNU General Public License version 2 as
-- *  published by the Free Software Foundation.
-- *
-- *  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., 51 Franklin Street, Fifth Floor, Boston,
-- *  MA 02110-1301, USA.
-- */
--
--#if HAVE_CONFIG_H
--#include "clamav-config.h"
--#endif
--
--#include <stdio.h>
--#include <string.h>
--#include <ctype.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--#ifdef HAVE_UNISTD_H
--#include <unistd.h>
--#endif
--#include <fcntl.h>
--
--#include "clamav.h"
--#include "cltypes.h"
--#include "others.h"
--#include "mspack.h"
--#include "cab.h"
--
--#define EC32(x) cli_readint32(&x) /* Convert little endian to host */
--#define EC16(x) cli_readint16(&x)
--
--/* hard limits */
--#define CAB_FOLDER_LIMIT    5000
--#define CAB_FILE_LIMIT	    5000
--
--/* Cabinet format data structures */
--
--struct cab_hdr {
--    uint32_t	signature;	/* file signature */
--    uint32_t	res1;		/* reserved */
--    uint32_t	cbCabinet;	/* size of cabinet file */
--    uint32_t	res2;		/* reserved */
--    uint32_t	coffFiles;	/* offset of the first file entry */
--    uint32_t	res3;		/* reserved */
--    uint8_t	versionMinor;   /* file format version, minor */
--    uint8_t	versionMajor;	/* file format version, major */
--    uint16_t	cFolders;	/* number of folder entries */
--    uint16_t	cFiles;		/* number of file entries */
--    uint16_t	flags;		/* option flags */
--    uint16_t	setID;		/* multiple cabs related */
--    uint16_t	iCabinet;	/* multiple cabs related */
--};
--
--struct cab_hdr_opt {
--    uint16_t	cbCFHeader;	/* size of reserved header area */
--    uint8_t	cbCFFolder;	/* size of reserved folder area */
--    uint8_t	cbCFData;	/* size of reserved block area */
--};
--
--struct cab_folder_hdr
--{
--    uint32_t	coffCabStart;	/* offset of the first data block */
--    uint16_t	cCFData;	/* number of data blocks */
--    uint16_t	typeCompress;	/* compression type */
--};
--
--struct cab_file_hdr
--{
--    uint32_t	cbFile;		    /* uncompressed size */
--    uint32_t	uoffFolderStart;    /* uncompressed offset of file in folder */
--    uint16_t	iFolder;	    /* folder index */
--    uint16_t	date;		    /* date stamp */
--    uint16_t	time;		    /* time stamp */
--    uint16_t	attribs;	    /* attribute flags */
--};
--
--struct cab_block_hdr
--{
--    uint32_t	csum;	    /* data block checksum */
--    uint16_t	cbData;	    /* number of compressed bytes */
--    uint16_t	cbUncomp;   /* number of uncompressed bytes */
--};
--
--static char *cab_readstr(fmap_t *map, off_t *offset, int *ret)
--{
--	int i;
--	const char *str;
--	char *retstr;
--
--    if(!(str = fmap_need_offstr(map, *offset, 256))) {
--	*ret = CL_EFORMAT;
--	return NULL;
--    }
--
--    i = strlen(str) + 1;
--    if(i>=255) {
--	fmap_unneed_ptr(map, str, i);
--	*ret = CL_EFORMAT;
--	return NULL;
--    }
--
--    *offset += i;
--    if((retstr = cli_malloc(i)))
--	memcpy(retstr, str, i);
--    fmap_unneed_ptr(map, str, i);
--
--    if(!retstr) {
--	*ret = CL_EMEM;
--	return NULL;
--    }
--
--    *ret = CL_SUCCESS;
--    return retstr;
--}
--
--static int cab_chkname(char *name, int san)
--{
--	size_t i, len = strlen(name);
--
--
--    for(i = 0; i < len; i++) {
--	if(!san && (strchr("%/*?|\\\"+=<>;:\t ", name[i]) || !isascii(name[i]))) {
--	    cli_dbgmsg("cab_chkname: File name contains disallowed characters\n");
--	    return 1;
--	} else if(san && !isalnum(name[i])) {
--	    name[i] = '*';
--	}
--    }
--
--    return 0;
--}
--
--void cab_free(struct cab_archive *cab)
--{
--	struct cab_folder *folder;
--	struct cab_file *file;
--
--
--    if(cab->state) {
--	if(cab->state->stream) {
--	    switch(cab->state->cmethod & 0x000f) {
--		case 0x0001:
--		    mszip_free(cab->state->stream);
--		    break;
--		case 0x0002:
--		    qtm_free(cab->state->stream);
--		    break;
--		case 0x0003:
--		    lzx_free(cab->state->stream);
--	    }
--	}
--	free(cab->state);
--    }
--
--    while(cab->folders) {
--	folder = cab->folders;
--	cab->folders = cab->folders->next;
--	free(folder);
--    }
--
--    while(cab->files) {
--	file = cab->files;
--	cab->files = cab->files->next;
--	free(file->name);
--	free(file);
--    }
--}
--
--int cab_open(fmap_t *map, off_t offset, struct cab_archive *cab)
--{
--	unsigned int i, folders = 0;
--	struct cab_file *file, *lfile = NULL;
--	struct cab_folder *folder, *lfolder = NULL;
--	const struct cab_hdr *hdr;
--	const struct cab_hdr_opt *hdr_opt;
--	uint16_t fidx;
--	uint32_t coffFiles;
--	char *pt;
--	int ret;
--	off_t resfold = 0, rsize, cur_offset = offset;
--
--    if(!(hdr=fmap_need_off_once(map, cur_offset, sizeof(*hdr)))) {
--	cli_dbgmsg("cab_open: Can't read cabinet header\n");
--	return CL_EFORMAT; /* most likely a corrupted file */
--    }
--    cur_offset += sizeof(*hdr);
--
--    if(EC32(hdr->signature) != 0x4643534d) {
--	cli_dbgmsg("cab_open: Incorrect CAB signature\n");
--	return CL_EFORMAT;
--    } else {
--	cli_dbgmsg("CAB: -------------- Cabinet file ----------------\n");
--    }
--
--    rsize = map->len;
--
--    memset(cab, 0, sizeof(struct cab_archive));
--
--    cab->length = EC32(hdr->cbCabinet);
--    cli_dbgmsg("CAB: Cabinet length: %u\n", cab->length);
--    if((off_t) cab->length > rsize) {
--	cli_dbgmsg("CAB: Truncating file size from %lu to %lu\n", (unsigned long int) cab->length, (unsigned long int) rsize);
--	cab->length = (uint32_t) rsize;
--    }
--
--    cab->nfolders = EC16(hdr->cFolders);
--    if(!cab->nfolders) {
--	cli_dbgmsg("cab_open: No folders in cabinet (fake cab?)\n");
--	return CL_EFORMAT;
--    } else {
--	cli_dbgmsg("CAB: Folders: %u\n", cab->nfolders);
--	if(cab->nfolders > CAB_FOLDER_LIMIT) {
--	    cab->nfolders = CAB_FOLDER_LIMIT;
--	    cli_dbgmsg("CAB: *** Number of folders limited to %u ***\n", cab->nfolders);
--	}
--    }
--
--    cab->nfiles = EC16(hdr->cFiles);
--    if(!cab->nfiles) {
--	cli_dbgmsg("cab_open: No files in cabinet (fake cab?)\n");
--	return CL_EFORMAT;
--    } else {
--	cli_dbgmsg("CAB: Files: %u\n", cab->nfiles);
--	if(cab->nfiles > CAB_FILE_LIMIT) {
--	    cab->nfiles = CAB_FILE_LIMIT;
--	    cli_dbgmsg("CAB: *** Number of files limited to %u ***\n", cab->nfiles);
--	}
--    }
--
--    cli_dbgmsg("CAB: File format version: %u.%u\n", hdr->versionMajor, hdr->versionMinor);
--
--    cab->flags = EC16(hdr->flags);
--    coffFiles = EC16(hdr->coffFiles);
--
--    if(cab->flags & 0x0004) {
--	if(!(hdr_opt = fmap_need_off_once(map, cur_offset, sizeof(*hdr_opt)))) {
--	    cli_dbgmsg("cab_open: Can't read file header (fake cab?)\n");
--	    return CL_EFORMAT; /* most likely a corrupted file */
--	}
--
--	cab->reshdr = EC16(hdr_opt->cbCFHeader);
--	resfold = hdr_opt->cbCFFolder;
--	cab->resdata = hdr_opt->cbCFData;
--
--	cur_offset += sizeof(*hdr_opt) + cab->reshdr;
--	if(cab->reshdr) {
--	    if(cab->reshdr >= rsize) {
--		cli_dbgmsg("cab_open: Can't lseek to %u (fake cab?)\n", cab->reshdr);
--		return CL_EFORMAT; /* most likely a corrupted file */
--	    }
--	}
--    }
--
--    if(cab->flags & 0x0001) { /* preceding cabinet */
--	/* name */
--	pt = cab_readstr(map, &cur_offset, &ret);
--	if(ret)
--	    return ret;
--	if(cab_chkname(pt, 0))
--	    cli_dbgmsg("CAB: Invalid name of preceding cabinet\n");
--	else
--	    cli_dbgmsg("CAB: Preceding cabinet name: %s\n", pt);
--	free(pt);
--	/* info */
--	pt = cab_readstr(map, &cur_offset, &ret);
--	if(ret)
--	    return ret;
--	if(cab_chkname(pt, 0))
--	    cli_dbgmsg("CAB: Invalid info for preceding cabinet\n");
--	else
--	    cli_dbgmsg("CAB: Preceding cabinet info: %s\n", pt);
--	free(pt);
--    }
--
--    if(cab->flags & 0x0002) { /* next cabinet */
--	/* name */
--	pt = cab_readstr(map, &cur_offset, &ret);
--	if(ret)
--	    return ret;
--	if(cab_chkname(pt, 0))
--	    cli_dbgmsg("CAB: Invalid name of next cabinet\n");
--	else
--	    cli_dbgmsg("CAB: Next cabinet name: %s\n", pt);
--	free(pt);
--	/* info */
--	pt = cab_readstr(map, &cur_offset, &ret);
--	if(ret)
--	    return ret;
--	if(cab_chkname(pt, 0))
--	    cli_dbgmsg("CAB: Invalid info for next cabinet\n");
--	else
--	    cli_dbgmsg("CAB: Next cabinet info: %s\n", pt);
--	free(pt);
--    }
--
--    /* folders */
--    for(i = 0; i < cab->nfolders; i++) {
--	const struct cab_folder_hdr *folder_hdr;
--
--	if(!(folder_hdr = fmap_need_off_once(map, cur_offset, sizeof(*folder_hdr)))) {
--	    cli_dbgmsg("cab_open: Can't read header for folder %u\n", i);
--	    break;
--	}
--
--	cur_offset += sizeof(*folder_hdr) + resfold;
--
--	if(EC32(folder_hdr->coffCabStart) + offset > rsize) {
--	    cli_dbgmsg("CAB: Folder out of file\n");
--	    continue;
--	}
--
--	if((EC16(folder_hdr->typeCompress) & 0x000f) > 3) {
--	    cli_dbgmsg("CAB: Unknown compression method\n");
--	    continue;
--	}
--
--	folder = (struct cab_folder *) cli_calloc(1, sizeof(struct cab_folder));
--	if(!folder) {
--	    cli_errmsg("cab_open: Can't allocate memory for folder\n");
--	    cab_free(cab);
--	    return CL_EMEM;
--	}
--
--	folder->cab = (struct cab_archive *) cab;
--	folder->offset = (off_t) EC32(folder_hdr->coffCabStart) + offset;
--	folder->nblocks = EC16(folder_hdr->cCFData);
--	folder->cmethod = EC16(folder_hdr->typeCompress);
--
--	cli_dbgmsg("CAB: Folder record %u\n", i);
--	cli_dbgmsg("CAB: Folder offset: %u\n", (unsigned int) folder->offset);
--	cli_dbgmsg("CAB: Folder compression method: %d\n", folder->cmethod);
--
--	if(!lfolder)
--	    cab->folders = folder;
--	else
--	    lfolder->next = folder;
--
--	lfolder = folder;
--	folders++;
--    }
--    cli_dbgmsg("CAB: Recorded folders: %u\n", folders);
--
--    /* files */
--    if(cab->nfolders != folders) {
--	if(coffFiles >= rsize) {
--	    cli_dbgmsg("cab_open: Can't lseek to hdr.coffFiles\n");
--	    cab_free(cab);
--	    return CL_EFORMAT;
--	}
--	cur_offset = coffFiles;
--    }
--    for(i = 0; i < cab->nfiles; i++) {
--	const struct cab_file_hdr *file_hdr;
--
--	if(!(file_hdr = fmap_need_off_once(map, cur_offset, sizeof(*file_hdr)))) {
--	    cli_dbgmsg("cab_open: Can't read file %u header\n", i);
--	    break;
--	}
--	cur_offset += sizeof(*file_hdr);
--
--	file = (struct cab_file *) cli_calloc(1, sizeof(struct cab_file));
--	if(!file) {
--	    cli_errmsg("cab_open: Can't allocate memory for file\n");
--	    cab_free(cab);
--	    return CL_EMEM;
--	}
--
--	file->cab = cab;
--	cab->map = map;
--	file->offset = EC32(file_hdr->uoffFolderStart);
--	file->length = EC32(file_hdr->cbFile);
--	file->attribs = EC16(file_hdr->attribs);
--	fidx = EC16(file_hdr->iFolder);
--	file->error = CL_SUCCESS;
--
--	file->name = cab_readstr(map, &cur_offset, &ret);
--	if(ret) {
--	    free(file);
--	    continue;
--	}
--	cab_chkname(file->name, 1);
--
--	cli_dbgmsg("CAB: File record %u\n", i);
--	cli_dbgmsg("CAB: File name: %s\n", file->name);
--	cli_dbgmsg("CAB: File offset: %u\n", (unsigned int) file->offset);
--	cli_dbgmsg("CAB: File folder index: %u\n", fidx);
--	cli_dbgmsg("CAB: File attribs: 0x%x\n", file->attribs);
--	if(file->attribs & 0x01)
--	    cli_dbgmsg("CAB:   * file is read-only\n");
--	if(file->attribs & 0x02)
--	    cli_dbgmsg("CAB:   * file is hidden\n");
--	if(file->attribs & 0x04)
--	    cli_dbgmsg("CAB:   * file is a system file\n");
--	if(file->attribs & 0x20)
--	    cli_dbgmsg("CAB:   * file modified since last backup\n");
--	if(file->attribs & 0x40)
--	    cli_dbgmsg("CAB:   * file to be run after extraction\n");
--	if(file->attribs & 0x80)
--	    cli_dbgmsg("CAB:   * file name contains UTF\n");
--
--	/* folder index */
--	if(fidx < 0xfffd) {
--	    if(fidx > cab->nfolders) {
--		cli_dbgmsg("cab_open: File %s is not associated with any folder\n", file->name);
--		free(file->name);
--		free(file);
--		continue;
--	    }
--
--	    file->folder = cab->folders;
--	    while(file->folder && fidx--)
--		file->folder = file->folder->next;
--
--	    if(!file->folder) {
--		cli_dbgmsg("cab_open: Folder not found for file %s\n", file->name);
--		free(file->name);
--		free(file);
--		continue;
--	    }
--
--	} else {
--	    cli_dbgmsg("CAB: File is split *skipping*\n");
--	    free(file->name);
--	    free(file);
--	    continue;
--	}
--
--	if(!lfile)
--	    cab->files = file;
--	else
--	    lfile->next = file;
--
--	lfile = file;
--
--    }
--
--    return CL_SUCCESS;
--}
--
--static int cab_read_block(struct cab_file *file)
--{
--	const struct cab_block_hdr *block_hdr;
--	struct cab_state *state = file->cab->state;
--
--    if(!(block_hdr = fmap_need_off_once(file->cab->map, file->cab->cur_offset, sizeof(*block_hdr)))) {
--	cli_dbgmsg("cab_read_block: Can't read block header\n");
--	return CL_EFORMAT; /* most likely a corrupted file */
--    }
--
--    file->cab->cur_offset += sizeof(*block_hdr) + file->cab->resdata;
--    state->blklen = EC16(block_hdr->cbData);
--    state->outlen = EC16(block_hdr->cbUncomp);
--
--    if(fmap_readn(file->cab->map, state->block, file->cab->cur_offset, state->blklen) != state->blklen) {
--	cli_dbgmsg("cab_read_block: Can't read block data\n");
--	return CL_EFORMAT; /* most likely a corrupted file */
--    }
--
--    file->cab->cur_offset += state->blklen;
--    state->pt = state->end = state->block;
--    state->end += state->blklen;
--
--    return CL_SUCCESS;
--}
--
--static int cab_read(struct cab_file *file, unsigned char *buffer, int bytes)
--{
--	uint16_t todo, left;
--
--
--    if((file->cab->state->blknum > file->folder->nblocks) && !file->lread) {
--	file->error = CL_BREAK;
--	return -1;
--    }
--
--    todo = bytes;
--    while(todo > 0) {
--	left = file->cab->state->end - file->cab->state->pt;
--
--	if(left) {
--	    if(left > todo)
--		left = todo;
--
--	    memcpy(buffer, file->cab->state->pt, left);
--	    file->cab->state->pt += left;
--	    buffer += left;
--	    todo -= left;
--
--	} else {
--	    if(file->cab->state->blknum++ >= file->folder->nblocks)
--		break;
--
--	    file->error = cab_read_block(file);
--	    if(file->error)
--		return -1;
--
--	    if((file->folder->cmethod & 0x000f) == 0x0002) /* Quantum hack */
--		*file->cab->state->end++ = 0xff;
--
--	    if(file->cab->state->blknum >= file->folder->nblocks) {
--		if((file->folder->cmethod & 0x000f) == 0x0003) { /* LZX hack */
--		    lzx_set_output_length(file->cab->state->stream, (off_t) ((file->cab->state->blknum - 1) * 32768 + file->cab->state->outlen));
--		}
--	    } else {
--		if(file->cab->state->outlen != 32768) {
--		    cli_dbgmsg("cab_read: WARNING: partial data block\n");
--		}
--	    }
--	}
--    }
--
--    return file->lread = bytes - todo;
--}
--
--static int cab_unstore(struct cab_file *file)
--{
--	int todo, bread, bytes = file->length;
--	unsigned char buff[4096];
--
--
--    if(bytes < 0) {
--	cli_dbgmsg("cab_unstore: bytes < 0\n");
--	return CL_EFORMAT;
--    }
--
--    todo = MIN((unsigned int) bytes, file->max_size);
--
--    while(1) {
--
--	if((unsigned int) todo <= sizeof(buff))
--	    bread = todo;
--	else
--	    bread = sizeof(buff);
--
--	if((bread = cab_read(file, buff, bread)) == -1) {
--	    cli_dbgmsg("cab_unstore: cab_read failed\n");
--	    return file->error;
--	} else if(cli_writen(file->ofd, buff, bread) != bread) {
--	    cli_warnmsg("cab_unstore: Can't write %d bytes to descriptor %d\n", bread, file->ofd);
--	    return CL_EWRITE;
--	}
--
--	todo -= bread;
--
--	if(!bread || todo <= 0)
--	    break;
--    }
--
--    return CL_SUCCESS;
--}
--
--#define CAB_CHGFOLDER							\
--    if(!file->cab->actfol || (file->folder != file->cab->actfol)        \
--       || (file->cab->state && file->cab->state->cmethod != file->folder->cmethod)) { \
--	if(file->cab->state) {						\
--	    if(file->cab->state->stream) {				\
--		switch(file->cab->state->cmethod & 0x000f) {		\
--		    case 0x0001:					\
--			mszip_free(file->cab->state->stream);		\
--			break;						\
--		    case 0x0002:					\
--			qtm_free(file->cab->state->stream);		\
--			break;						\
--		    case 0x0003:					\
--			lzx_free(file->cab->state->stream);		\
--		}							\
--	    }								\
--	    free(file->cab->state);					\
--	    file->cab->state = NULL;					\
--	}								\
--	file->cab->cur_offset = file->folder->offset;			\
--	file->cab->state = (struct cab_state *) cli_calloc(1, sizeof(struct cab_state));	\
--	if(!file->cab->state) {						\
--	    cli_errmsg("cab_extract: Can't allocate memory for internal state\n");	   	\
--	    close(file->ofd);						\
--	    return CL_EMEM;						\
--	}								\
--	file->cab->state->cmethod = file->folder->cmethod;		\
--	switch(file->folder->cmethod & 0x000f) {			\
--	    case 0x0001:						\
--		file->cab->state->stream = (struct mszip_stream *) mszip_init(file->ofd, 4096, 1, file, &cab_read);	\
--		break;							\
--	    case 0x0002:						\
--		file->cab->state->stream = (struct qtm_stream *) qtm_init(file->ofd, (int) (file->folder->cmethod >> 8) & 0x1f, 4096, file, &cab_read);									\
--		break;							\
--	    case 0x0003:						\
--		file->cab->state->stream = (struct lzx_stream *) lzx_init(file->ofd, (int) (file->folder->cmethod >> 8) & 0x1f, 0, 4096, 0, file, &cab_read);									\
--	}								\
--	if((file->folder->cmethod & 0x000f) && !file->cab->state->stream) { \
--	    close(file->ofd);						\
--	    return CL_EUNPACK;						\
--	}								\
--	file->cab->actfol = file->folder;				\
--    } else {								\
--    	if(file->cab->state && file->cab->state->stream) {		\
--	    switch(file->cab->state->cmethod & 0x000f) {		\
--		case 0x0001:						\
--		    ((struct mszip_stream *) file->cab->state->stream)->ofd = file->ofd;	\
--		    break;						\
--		case 0x0002:						\
--		    ((struct qtm_stream *) file->cab->state->stream)->ofd = file->ofd;	     	\
--		    break;						\
--		case 0x0003:						\
--		    ((struct lzx_stream *) file->cab->state->stream)->ofd = file->ofd;	      	\
--		    break;						\
--	    }								\
--	}								\
--    }
--
--
--int cab_extract(struct cab_file *file, const char *name)
--{
--	int ret;
--
--
--    if(!file || !name) {
--	cli_errmsg("cab_extract: !file || !name\n");
--	return CL_ENULLARG;
--    }
--
--    if(!file->folder) {
--	cli_errmsg("cab_extract: file->folder == NULL\n");
--	return CL_ENULLARG;
--    }
--
--    file->ofd = open(name, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, S_IRWXU);
--    if(file->ofd == -1) {
--	cli_errmsg("cab_extract: Can't open file %s in write mode\n", name);
--	return CL_ECREAT;
--    }
--
--    switch(file->folder->cmethod & 0x000f) {
--	case 0x0000: /* STORE */
--	    cli_dbgmsg("CAB: Compression method: STORED\n");
--	    CAB_CHGFOLDER;
--	    if(file->length > file->cab->length) {
--		cli_dbgmsg("cab_extract: Stored file larger than archive itself, trimming down\n");
--		file->length = file->cab->length;
--	    }
--	    ret = cab_unstore(file);
--	    break;
--
--	case 0x0001: /* MSZIP */
--	    cli_dbgmsg("CAB: Compression method: MSZIP\n");
--	    CAB_CHGFOLDER;
--	    ret = mszip_decompress(file->cab->state->stream, file->length);
--	    break;
--
--	case 0x0002: /* QUANTUM */
--	    cli_dbgmsg("CAB: Compression method: QUANTUM\n");
--	    CAB_CHGFOLDER;
--	    ret = qtm_decompress(file->cab->state->stream, file->length);
--	    break;
--
--	case 0x0003: /* LZX */
--	    cli_dbgmsg("CAB: Compression method: LZX\n");
--	    CAB_CHGFOLDER;
--	    ret = lzx_decompress(file->cab->state->stream, file->length);
--	    break;
--
--	default:
--	    cli_dbgmsg("CAB: Not supported compression method: 0x%x\n", file->folder->cmethod & 0x000f);
--	    ret = CL_EFORMAT;
--    }
--
--    close(file->ofd);
--
--    if(ret == CL_BREAK)
--	ret = CL_SUCCESS;
--
--    return ret;
--}
-diff --git a/libclamav/cab.h b/libclamav/cab.h
-deleted file mode 100644
-index 795900d555e9..000000000000
---- a/libclamav/cab.h
-+++ /dev/null
-@@ -1,81 +0,0 @@
--/*
-- *  Copyright (C) 2007-2008 Sourcefire, Inc.
-- *
-- *  Authors: Tomasz Kojm
-- *
-- *  This program is free software; you can redistribute it and/or modify
-- *  it under the terms of the GNU General Public License version 2 as
-- *  published by the Free Software Foundation.
-- *
-- *  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., 51 Franklin Street, Fifth Floor, Boston,
-- *  MA 02110-1301, USA.
-- */
--
--#ifndef __CAB_H
--#define __CAB_H
--
--#include <sys/types.h>
--#include "cltypes.h"
--#include "fmap.h"
--
--#define CAB_BLOCKMAX 65535
--#define CAB_INPUTMAX (CAB_BLOCKMAX + 6144)
--
--struct cab_archive {
--    struct cab_folder *folders, *actfol;
--    struct cab_file *files;
--    struct cab_state *state;
--    fmap_t *map;
--    off_t cur_offset;
--    uint32_t length;
--    uint16_t nfolders;
--    uint16_t nfiles;
--    uint16_t flags;
--    uint16_t reshdr;
--    uint8_t resdata;
--};
--
--struct cab_state {
--    unsigned char *pt, *end;
--    void *stream;
--    unsigned char block[CAB_INPUTMAX];
--    uint16_t blklen;
--    uint16_t outlen;
--    uint16_t blknum;
--    uint16_t cmethod;
--};
--
--struct cab_file {
--    off_t offset;
--    char *name;
--    uint32_t length;
--    int error;
--    int lread;
--    int ofd;
--    struct cab_folder *folder;
--    struct cab_file *next;
--    struct cab_archive *cab;
--    uint16_t attribs;
--    uint64_t max_size, written_size;
--};
--
--struct cab_folder {
--    struct cab_archive *cab;
--    off_t offset;
--    struct cab_folder *next;
--    uint16_t cmethod;
--    uint16_t nblocks;
--};
--
--int cab_open(fmap_t *map, off_t offset, struct cab_archive *cab);
--int cab_extract(struct cab_file *file, const char *name);
--void cab_free(struct cab_archive *cab);
--
--#endif
-diff --git a/libclamav/chmunpack.h b/libclamav/chmunpack.h
-deleted file mode 100644
-index 7864386b921f..000000000000
---- a/libclamav/chmunpack.h
-+++ /dev/null
-@@ -1,122 +0,0 @@
--/*
-- *  Extract component parts of MS CHM files
-- *
-- *  Copyright (C) 2007-2008 Sourcefire, Inc.
-- *
-- *  Authors: Trog
-- *
-- *  This program is free software; you can redistribute it and/or modify
-- *  it under the terms of the GNU General Public License version 2 as
-- *  published by the Free Software Foundation.
-- *
-- *  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., 51 Franklin Street, Fifth Floor, Boston,
-- *  MA 02110-1301, USA.
-- */
--
--#ifndef __CHM_UNPACK_H
--#define __CHM_UNPACK_H
--
--#if HAVE_CONFIG_H
--#include "clamav-config.h"
--#endif
--
--#include "cltypes.h"
--#include "others.h"
--#include "fmap.h"
--
--#ifndef HAVE_ATTRIB_PACKED
--#define __attribute__(x)
--#endif
--
--#ifdef HAVE_PRAGMA_PACK
--#pragma pack(1)
--#endif
--
--#ifdef HAVE_PRAGMA_PACK_HPPA
--#pragma pack 1
--#endif
--
--#define CHM_ITSF_MIN_LEN (0x60)
--typedef struct chm_itsf_header_tag
--{
--	unsigned char signature[4];
--	int32_t version __attribute__ ((packed));
--	int32_t header_len __attribute__ ((packed));
--	uint32_t unknown __attribute__ ((packed));
--	uint32_t last_modified __attribute__ ((packed));
--	uint32_t lang_id __attribute__ ((packed));
--	unsigned char dir_clsid[16];
--	unsigned char stream_clsid[16];
--	uint64_t sec0_offset __attribute__ ((packed));
--	uint64_t sec0_len __attribute__ ((packed));
--	uint64_t dir_offset __attribute__ ((packed));
--	uint64_t dir_len __attribute__ ((packed));
--	uint64_t data_offset __attribute__ ((packed));
--} chm_itsf_header_t;
--
--#define CHM_ITSP_LEN (0x54)
--typedef struct chm_itsp_header_tag
--{
--	unsigned char signature[4];
--	int32_t version __attribute__ ((packed));
--	int32_t header_len __attribute__ ((packed));
--	int32_t unknown1 __attribute__ ((packed));
--	uint32_t block_len __attribute__ ((packed));
--	int32_t blockidx_intvl __attribute__ ((packed));
--	int32_t index_depth __attribute__ ((packed));
--	int32_t index_root __attribute__ ((packed));
--	int32_t index_head __attribute__ ((packed));
--	int32_t index_tail __attribute__ ((packed));
--	int32_t unknown2 __attribute__ ((packed));
--	uint32_t num_blocks __attribute__ ((packed));
--	uint32_t lang_id __attribute__ ((packed));
--	unsigned char system_clsid[16];
--	unsigned char unknown4[16];
--} chm_itsp_header_t;
--
--#ifdef HAVE_PRAGMA_PACK
--#pragma pack()
--#endif
--
--#ifdef HAVE_PRAGMA_PACK_HPPA
--#pragma pack
--#endif
--
--typedef struct chm_sys_entry_tag
--{
--	uint64_t offset;
--	uint64_t length;
--} chm_sys_entry_t;
--
--typedef struct chm_metadata_tag {
--	uint64_t file_length;
--	uint64_t file_offset;
--	chm_sys_entry_t sys_control;
--	chm_sys_entry_t sys_content;
--	chm_sys_entry_t sys_reset;
--	off_t m_length;
--	chm_itsf_header_t itsf_hdr;
--	chm_itsp_header_t itsp_hdr;
--	int ufd;
--	int ofd;
--	uint32_t num_chunks;
--	off_t chunk_offset;
--	const char *chunk_data;
--	const char *chunk_current;
--	const char *chunk_end;
--	fmap_t *map;
--	uint16_t chunk_entries;
--} chm_metadata_t;
--
--int cli_chm_open(const char *dirname, chm_metadata_t *metadata, cli_ctx *ctx);
--int cli_chm_prepare_file(chm_metadata_t *metadata);
--int cli_chm_extract_file(char *dirname, chm_metadata_t *metadata, cli_ctx *ctx);
--void cli_chm_close(chm_metadata_t *metadata);
--#endif
-diff --git a/libclamav/libmspack.c b/libclamav/libmspack.c
-new file mode 100644
-index 000000000000..e94312e6dad3
---- /dev/null
-+++ b/libclamav/libmspack.c
-@@ -0,0 +1,525 @@
-+/*
-+ * Glue code for libmspack handling.
-+ * Author: 웃 Sebastian Andrzej Siewior
-+ * ✉ sebastian @ breakpoint ̣cc
-+ */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-+
-+#include <mspack.h>
-+
-+#include "clamav.h"
-+#include "fmap.h"
-+#include "scanners.h"
-+#include "others.h"
-+
-+enum mspack_type {
-+	FILETYPE_DUNNO,
-+	FILETYPE_FMAP,
-+	FILETYPE_FILENAME,
-+};
-+
-+struct mspack_name {
-+	fmap_t *fmap;
-+	off_t org;
-+};
-+
-+struct mspack_system_ex {
-+	struct mspack_system ops;
-+	off_t max_size;
-+};
-+
-+struct mspack_handle {
-+	enum mspack_type type;
-+
-+	fmap_t *fmap;
-+	off_t org;
-+	off_t offset;
-+
-+	FILE *f;
-+	off_t max_size;
-+};
-+
-+#define container_of(ptr, type, member) ({			\
-+	const typeof( ((type *)0)->member ) *__mptr = (ptr);	\
-+	(type *)( (char *)__mptr - offsetof(type,member) );})
-+
-+#define min_t(type, x, y) ({		\
-+	type __min1 = (x);		\
-+	type __min2 = (y);		\
-+	__min1 < __min2 ? __min1: __min2; })
-+
-+static struct mspack_file *mspack_fmap_open(struct mspack_system *self,
-+		const char *filename, int mode)
-+{
-+	struct mspack_name *mspack_name;
-+	struct mspack_handle *mspack_handle;
-+	struct mspack_system_ex *self_ex;
-+	const char *fmode;
-+
-+	if (!filename) {
-+		cli_dbgmsg("%s() failed at %d\n", __func__, __LINE__);
-+		return NULL;
-+	}
-+	mspack_handle = malloc(sizeof(*mspack_handle));
-+	if (!mspack_handle) {
-+		cli_dbgmsg("%s() failed at %d\n", __func__, __LINE__);
-+		return NULL;
-+	}
-+	switch (mode) {
-+	case MSPACK_SYS_OPEN_READ:
-+		mspack_handle->type = FILETYPE_FMAP;
-+
-+		mspack_name = (struct mspack_name *)filename;
-+		mspack_handle->fmap = mspack_name->fmap;
-+		mspack_handle->org = mspack_name->org;
-+		mspack_handle->offset = 0;
-+
-+		return (struct mspack_file *)mspack_handle;
-+
-+	case MSPACK_SYS_OPEN_WRITE:
-+		fmode = "wb";
-+		break;
-+	case MSPACK_SYS_OPEN_UPDATE:
-+		fmode = "r+b";
-+		break;
-+	case MSPACK_SYS_OPEN_APPEND:
-+		fmode = "ab";
-+		break;
-+	default:
-+		cli_dbgmsg("%s() wrong mode\n", __func__);
-+		goto out_err;
-+	}
-+
-+	mspack_handle->type = FILETYPE_FILENAME;
-+
-+	mspack_handle->f = fopen(filename, fmode);
-+	if (!mspack_handle->f) {
-+		cli_dbgmsg("%s() failed %d\n", __func__, __LINE__);
-+		goto out_err;
-+	}
-+	self_ex = container_of(self, struct mspack_system_ex, ops);
-+	mspack_handle->max_size = self_ex->max_size;
-+	return (struct mspack_file *)mspack_handle;
-+
-+out_err:
-+	free(mspack_handle);
-+	return NULL;
-+}
-+
-+static void mspack_fmap_close(struct mspack_file *file)
-+{
-+	struct mspack_handle *mspack_handle = (struct mspack_handle *)file;
-+
-+	if (!mspack_handle)
-+		return;
-+
-+	if (mspack_handle->type == FILETYPE_FILENAME)
-+		fclose(mspack_handle->f);
-+	free(mspack_handle);
-+}
-+
-+static int mspack_fmap_read(struct mspack_file *file, void *buffer, int bytes)
-+{
-+	struct mspack_handle *mspack_handle = (struct mspack_handle *)file;
-+	off_t offset;
-+	size_t count;
-+	int ret;
-+
-+	if (bytes < 0) {
-+		cli_dbgmsg("%s() %d\n", __func__, __LINE__);
-+		return -1;
-+	}
-+	if (!mspack_handle) {
-+		cli_dbgmsg("%s() %d\n", __func__, __LINE__);
-+		return -1;
-+	}
-+
-+	if (mspack_handle->type == FILETYPE_FMAP) {
-+		offset = mspack_handle->offset + mspack_handle->org;
-+
-+		ret = fmap_readn(mspack_handle->fmap, buffer, offset, bytes);
-+		if (ret != bytes) {
-+			cli_dbgmsg("%s() %d %d, %d\n", __func__, __LINE__, bytes, ret);
-+			return ret;
-+		}
-+
-+		mspack_handle->offset += bytes;
-+		return bytes;
-+	}
-+	count = fread(buffer, bytes, 1, mspack_handle->f);
-+	if (count < 1) {
-+		cli_dbgmsg("%s() %d %d, %zd\n", __func__, __LINE__, bytes, count);
-+		return -1;
-+	}
-+	return bytes;
-+}
-+
-+static int mspack_fmap_write(struct mspack_file *file, void *buffer, int bytes)
-+{
-+	struct mspack_handle *mspack_handle = (struct mspack_handle *)file;
-+	size_t count;
-+	off_t max_size;
-+
-+	if (bytes < 0 || !mspack_handle) {
-+		cli_dbgmsg("%s() err %d\n", __func__, __LINE__);
-+		return -1;
-+	}
-+
-+	if (mspack_handle->type == FILETYPE_FMAP) {
-+		cli_dbgmsg("%s() err %d\n", __func__, __LINE__);
-+		return -1;
-+	}
-+
-+	if (!bytes)
-+		return 0;
-+
-+	max_size = mspack_handle->max_size;
-+	if (!max_size)
-+		return bytes;
-+
-+	max_size = min_t(off_t, max_size, bytes);
-+	mspack_handle->max_size -= max_size;
-+
-+	count = fwrite(buffer, max_size, 1, mspack_handle->f);
-+	if (count < 1) {
-+		cli_dbgmsg("%s() err %m <%zd %d>\n", __func__, count, bytes);
-+		return -1;
-+	}
-+
-+	return bytes;
-+}
-+
-+static int mspack_fmap_seek(struct mspack_file *file, off_t offset, int mode)
-+{
-+	struct mspack_handle *mspack_handle = (struct mspack_handle *)file;
-+
-+	if (!mspack_handle) {
-+		cli_dbgmsg("%s() err %d\n", __func__, __LINE__);
-+		return -1;
-+	}
-+
-+	if (mspack_handle->type == FILETYPE_FMAP) {
-+		off_t new_pos;
-+
-+		switch (mode) {
-+		case MSPACK_SYS_SEEK_START:
-+			new_pos = offset;
-+			break;
-+		case MSPACK_SYS_SEEK_CUR:
-+			new_pos = mspack_handle->offset + offset;
-+			break;
-+		case MSPACK_SYS_SEEK_END:
-+			new_pos = mspack_handle->fmap->len + offset;
-+			break;
-+		default:
-+			cli_dbgmsg("%s() err %d\n", __func__, __LINE__);
-+			return -1;
-+		}
-+		if (new_pos < 0 || new_pos > mspack_handle->fmap->len) {
-+			cli_dbgmsg("%s() err %d\n", __func__, __LINE__);
-+			return -1;
-+		}
-+
-+		mspack_handle->offset = new_pos;
-+		return 0;
-+	}
-+
-+	switch (mode) {
-+	case MSPACK_SYS_SEEK_START:
-+		mode = SEEK_SET;
-+		break;
-+	case MSPACK_SYS_SEEK_CUR:
-+		mode = SEEK_CUR;
-+		break;
-+	case MSPACK_SYS_SEEK_END:
-+		mode = SEEK_END;
-+		break;
-+	default:
-+		cli_dbgmsg("%s() err %d\n", __func__, __LINE__);
-+		return -1;
-+	}
-+
-+	return fseeko(mspack_handle->f, offset, mode);
-+}
-+
-+static off_t mspack_fmap_tell(struct mspack_file *file)
-+{
-+	struct mspack_handle *mspack_handle = (struct mspack_handle *)file;
-+
-+	if (!mspack_handle)
-+		return -1;
-+
-+	if (mspack_handle->type == FILETYPE_FMAP)
-+		return mspack_handle->offset;
-+
-+	return ftello(mspack_handle->f);
-+}
-+
-+static void mspack_fmap_message(struct mspack_file *file, const char *fmt, ...)
-+{
-+	cli_dbgmsg("%s() %s\n", __func__, fmt);
-+}
-+static void *mspack_fmap_alloc(struct mspack_system *self, size_t num)
-+{
-+	return malloc(num);
-+}
-+
-+static void mspack_fmap_free(void *mem)
-+{
-+	free(mem);
-+}
-+
-+static void mspack_fmap_copy(void *src, void *dst, size_t num)
-+{
-+	memcpy(dst, src, num);
-+}
-+
-+static struct mspack_system mspack_sys_fmap_ops = {
-+	.open = mspack_fmap_open,
-+	.close = mspack_fmap_close,
-+	.read = mspack_fmap_read,
-+	.write = mspack_fmap_write,
-+	.seek = mspack_fmap_seek,
-+	.tell = mspack_fmap_tell,
-+	.message = mspack_fmap_message,
-+	.alloc = mspack_fmap_alloc,
-+	.free = mspack_fmap_free,
-+	.copy = mspack_fmap_copy,
-+};
-+
-+static int cli_scanfile(const char *filename, cli_ctx *ctx)
-+{
-+	int fd, ret;
-+
-+	/* internal version of cl_scanfile with arec/mrec preserved */
-+	fd = safe_open(filename, O_RDONLY|O_BINARY);
-+	if (fd < 0)
-+		return CL_EOPEN;
-+
-+	ret = cli_magic_scandesc(fd, ctx);
-+
-+	close(fd);
-+	return ret;
-+}
-+
-+int cli_scanmscab(cli_ctx *ctx, off_t sfx_offset)
-+{
-+	struct mscab_decompressor *cab_d;
-+	struct mscabd_cabinet *cab_h;
-+	struct mscabd_file *cab_f;
-+	int ret;
-+	int files;
-+	int virus_num = 0;
-+	struct mspack_name mspack_fmap = {
-+		.fmap	= *ctx->fmap,
-+		.org	= sfx_offset,
-+	};
-+	struct mspack_system_ex ops_ex = {
-+		.ops	= mspack_sys_fmap_ops,
-+	};
-+
-+	MSPACK_SYS_SELFTEST(ret);
-+	if (ret) {
-+		cli_dbgmsg("%s() failed at %d\n", __func__, __LINE__);
-+		return CL_EUNPACK;
-+	}
-+
-+	cab_d = mspack_create_cab_decompressor(&ops_ex.ops);
-+	if (!cab_d) {
-+		cli_dbgmsg("%s() failed at %d\n", __func__, __LINE__);
-+		return CL_EUNPACK;
-+	}
-+
-+	cab_h = cab_d->open(cab_d, (char *)&mspack_fmap);
-+	if (!cab_h) {
-+		ret = CL_EFORMAT;
-+		cli_dbgmsg("%s() failed at %d\n", __func__, __LINE__);
-+		goto out_dest;
-+	}
-+	files = 0;
-+	for (cab_f = cab_h->files; cab_f; cab_f = cab_f->next) {
-+		off_t max_size;
-+		char *tmp_fname;
-+
-+		ret = cli_matchmeta(ctx, cab_f->filename, 0, cab_f->length, 0,
-+				files, 0, NULL);
-+		if (ret) {
-+			if (ret == CL_VIRUS) {
-+				virus_num++;
-+				if (!SCAN_ALL)
-+					break;
-+			}
-+			goto out_close;
-+		}
-+
-+		if (ctx->engine->maxscansize) {
-+			if (ctx->scansize >= ctx->engine->maxscansize) {
-+				ret = CL_CLEAN;
-+				break;
-+			}
-+		}
-+
-+		if (ctx->engine->maxscansize &&
-+				ctx->scansize + ctx->engine->maxfilesize >=
-+				ctx->engine->maxscansize)
-+			max_size = ctx->engine->maxscansize -
-+				ctx->scansize;
-+		else
-+			max_size = ctx->engine->maxfilesize ?
-+				ctx->engine->maxfilesize :
-+				0xffffffff;
-+
-+		tmp_fname = cli_gentemp(ctx->engine->tmpdir);
-+		if (!tmp_fname) {
-+			ret = CL_EMEM;
-+			break;
-+		}
-+
-+		ops_ex.max_size = max_size;
-+		/* scan */
-+		ret = cab_d->extract(cab_d, cab_f, tmp_fname);
-+		if (ret) {
-+			/* Failed to extract */
-+			cli_dbgmsg("%s() failed to extract %d\n", __func__, ret);
-+		} else {
-+			ret = cli_scanfile(tmp_fname, ctx);
-+			if (ret == CL_VIRUS)
-+				virus_num++;
-+		}
-+		if (!ctx->engine->keeptmp) {
-+			if (!access(tmp_fname, R_OK) && cli_unlink(tmp_fname)) {
-+				free(tmp_fname);
-+				ret = CL_EUNLINK;
-+				break;
-+			}
-+		}
-+		free(tmp_fname);
-+		files++;
-+		if (ret == CL_VIRUS && SCAN_ALL)
-+			continue;
-+		if (ret)
-+			break;
-+	}
-+
-+out_close:
-+	cab_d->close(cab_d, cab_h);
-+out_dest:
-+	mspack_destroy_cab_decompressor(cab_d);
-+	if (virus_num)
-+		return CL_VIRUS;
-+	return ret;
-+}
-+
-+int cli_scanmschm(cli_ctx *ctx)
-+{
-+	struct mschm_decompressor *mschm_d;
-+	struct mschmd_header *mschm_h;
-+	struct mschmd_file *mschm_f;
-+	int ret;
-+	int files;
-+	int virus_num = 0;
-+	struct mspack_name mspack_fmap = {
-+		.fmap = *ctx->fmap,
-+	};
-+	struct mspack_system_ex ops_ex = {
-+		.ops	= mspack_sys_fmap_ops,
-+	};
-+
-+	MSPACK_SYS_SELFTEST(ret);
-+	if (ret) {
-+		cli_dbgmsg("%s() failed at %d\n", __func__, __LINE__);
-+		return CL_EUNPACK;
-+	}
-+
-+	mschm_d = mspack_create_chm_decompressor(&ops_ex.ops);
-+	if (!mschm_d) {
-+		cli_dbgmsg("%s() failed at %d\n", __func__, __LINE__);
-+		return CL_EUNPACK;
-+	}
-+
-+	mschm_h = mschm_d->open(mschm_d, (char *)&mspack_fmap);
-+	if (!mschm_h) {
-+		ret = CL_EFORMAT;
-+		cli_dbgmsg("%s() failed at %d\n", __func__, __LINE__);
-+		goto out_dest;
-+	}
-+	files = 0;
-+	for (mschm_f = mschm_h->files; mschm_f;	mschm_f = mschm_f->next) {
-+		off_t max_size;
-+		char *tmp_fname;
-+
-+		ret = cli_matchmeta(ctx, mschm_f->filename, 0, mschm_f->length,
-+				0, files, 0, NULL);
-+		if (ret) {
-+			if (ret == CL_VIRUS) {
-+				virus_num++;
-+				if (!SCAN_ALL)
-+					break;
-+			}
-+			goto out_close;
-+		}
-+
-+		if (ctx->engine->maxscansize) {
-+			if (ctx->scansize >= ctx->engine->maxscansize) {
-+				ret = CL_CLEAN;
-+				break;
-+			}
-+		}
-+
-+		if (ctx->engine->maxscansize &&
-+				ctx->scansize + ctx->engine->maxfilesize >=
-+				ctx->engine->maxscansize)
-+			max_size = ctx->engine->maxscansize -
-+				ctx->scansize;
-+		else
-+			max_size = ctx->engine->maxfilesize ?
-+				ctx->engine->maxfilesize :
-+				0xffffffff;
-+
-+		ops_ex.max_size = max_size;
-+
-+		tmp_fname = cli_gentemp(ctx->engine->tmpdir);
-+		if (!tmp_fname) {
-+			ret = CL_EMEM;
-+			break;
-+		}
-+
-+		/* scan */
-+		ret = mschm_d->extract(mschm_d, mschm_f, tmp_fname);
-+		if (ret) {
-+			/* Failed to extract */
-+			cli_dbgmsg("%s() failed to extract %d\n", __func__, ret);
-+		} else {
-+			ret = cli_scanfile(tmp_fname, ctx);
-+			if (ret == CL_VIRUS)
-+				virus_num++;
-+		}
-+		if (!ctx->engine->keeptmp) {
-+			if (!access(tmp_fname, R_OK) && cli_unlink(tmp_fname)) {
-+				free(tmp_fname);
-+				ret = CL_EUNLINK;
-+				break;
-+			}
-+		}
-+		free(tmp_fname);
-+		files++;
-+		if (ret == CL_VIRUS && SCAN_ALL)
-+			continue;
-+		if (ret)
-+			break;
-+	}
-+
-+out_close:
-+	mschm_d->close(mschm_d, mschm_h);
-+out_dest:
-+	mspack_destroy_chm_decompressor(mschm_d);
-+	if (virus_num)
-+		return CL_VIRUS;
-+	return ret;
-+
-+	return 0;
-+}
-diff --git a/libclamav/libmspack.h b/libclamav/libmspack.h
-new file mode 100644
-index 000000000000..07a9442bf253
---- /dev/null
-+++ b/libclamav/libmspack.h
-@@ -0,0 +1,7 @@
-+#ifndef __LIBMSPACK_H__
-+#define __LIBMSPACK_H__
-+
-+int cli_scanmscab(cli_ctx *ctx, off_t sfx_offset);
-+int cli_scanmschm(cli_ctx *ctx);
-+
-+#endif
-diff --git a/libclamav/mspack.c b/libclamav/mspack.c
-deleted file mode 100644
-index cc4c0a59fc9a..000000000000
---- a/libclamav/mspack.c
-+++ /dev/null
-@@ -1,2026 +0,0 @@
--/*
-- * This file includes code from libmspack adapted for libclamav by
-- * tkojm at clamav.net and draynor at sourcefire.com
-- *
-- * Copyright (C) 2003-2004 Stuart Caie
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1 as published by the Free Software Foundation.
-- *
-- * 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
-- * Lesser General Public License for more details.
-- * 
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-- * USA
-- */
--
--#if HAVE_CONFIG_H
--#include "clamav-config.h"
--#endif
--
--#include <stdio.h>
--#include <string.h>
--
--#include "others.h"
--#include "clamav.h"
--#include "mspack.h"
--
--#if HAVE_LIMITS_H
--# include <limits.h>
--#endif
--#ifndef CHAR_BIT
--# define CHAR_BIT (8)
--#endif
--
--
--/***************************************************************************
-- *			 MS-ZIP decompression implementation 
-- ***************************************************************************
-- * The LZX method was created by Jonathan Forbes and Tomi Poutanen, adapted
-- * by Microsoft Corporation.
-- *
-- * The deflate method was created by Phil Katz. MSZIP is equivalent to the
-- * deflate method.
-- *
-- */
--
--/* match lengths for literal codes 257.. 285 */
--static const unsigned short mszip_lit_lengths[29] = {
--  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27,
--  31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258
--};
--
--/* match offsets for distance codes 0 .. 29 */
--static const unsigned short mszip_dist_offsets[30] = {
--  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385,
--  513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577
--};
--
--/* extra bits required for literal codes 257.. 285 */
--static const unsigned char mszip_lit_extrabits[29] = {
--  0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2,
--  2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0
--};
--
--/* extra bits required for distance codes 0 .. 29 */
--static const unsigned char mszip_dist_extrabits[30] = {
--  0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
--  6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
--};
--
--/* the order of the bit length Huffman code lengths */
--static const unsigned char mszip_bitlen_order[19] = {
--  16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15
--};
--
--/* ANDing with mszip_bit_mask[n] masks the lower n bits */
--static const unsigned short mszip_bit_mask_tab[17] = {
-- 0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
-- 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
--};
--
--#define MSZIP_STORE_BITS do {                                                 \
--  zip->i_ptr      = i_ptr;                                              \
--  zip->i_end      = i_end;                                              \
--  zip->bit_buffer = bit_buffer;                                         \
--  zip->bits_left  = bits_left;                                          \
--} while (0)
--
--#define MSZIP_RESTORE_BITS do {                                               \
--  i_ptr      = zip->i_ptr;                                              \
--  i_end      = zip->i_end;                                              \
--  bit_buffer = zip->bit_buffer;                                         \
--  bits_left  = zip->bits_left;                                          \
--} while (0)
--
--#define MSZIP_ENSURE_BITS(nbits) do {                                         \
--  while (bits_left < (nbits)) {                                         \
--    if (i_ptr >= i_end) {                                               \
--      if (mszip_read_input(zip)) return zip->error;                      \
--      i_ptr = zip->i_ptr;                                               \
--      i_end = zip->i_end;                                               \
--      if(i_ptr == i_end) break;						\
--    }                                                                   \
--    bit_buffer |= *i_ptr++ << bits_left; bits_left  += 8;               \
--  }                                                                     \
--} while (0)
--
--#define MSZIP_PEEK_BITS(nbits)   (bit_buffer & ((1<<(nbits))-1))
--#define MSZIP_PEEK_BITS_T(nbits) (bit_buffer & mszip_bit_mask_tab[(nbits)])
--
--#define MSZIP_REMOVE_BITS(nbits) ((bit_buffer >>= (nbits)), (bits_left -= (nbits)))
--
--#define MSZIP_READ_BITS(val, nbits) do {                                      \
--  MSZIP_ENSURE_BITS(nbits); (val) = MSZIP_PEEK_BITS(nbits); MSZIP_REMOVE_BITS(nbits);     \
--} while (0)
--
--#define MSZIP_READ_BITS_T(val, nbits) do {                                    \
--  MSZIP_ENSURE_BITS(nbits); (val) = MSZIP_PEEK_BITS_T(nbits); MSZIP_REMOVE_BITS(nbits);   \
--} while (0)
--
--static int mszip_read_input(struct mszip_stream *zip) {
--  int nread = zip->read_cb(zip->file, zip->inbuf, (int)zip->inbuf_size);
--  if (nread < 0) {
--    if (zip->file->error == CL_BREAK) {
--      if ((unsigned int)nread == zip->last) {
--        cli_dbgmsg("mszip_read_input: Two consecutive CL_BREAKs reached.\n");
--        return CL_BREAK;
--      }
--      // Need short circuit to ensure scanning small files
--      cli_dbgmsg("mszip_read_input: First CL_BREAK reached.\n");
--      zip->i_ptr = zip->i_end;
--      zip->last = nread;
--      return CL_SUCCESS;
--    }
--    else
--      return zip->error = CL_EFORMAT;
--  }
--
--  zip->last = nread;
--  zip->i_ptr = &zip->inbuf[0];
--  zip->i_end = &zip->inbuf[nread];
--
--  return CL_SUCCESS;
--}
--
--/* inflate() error codes */
--#define INF_ERR_BLOCKTYPE   (-1)  /* unknown block type                      */
--#define INF_ERR_COMPLEMENT  (-2)  /* block size complement mismatch          */
--#define INF_ERR_FLUSH       (-3)  /* error from flush_window() callback      */
--#define INF_ERR_BITBUF      (-4)  /* too many bits in bit buffer             */
--#define INF_ERR_SYMLENS     (-5)  /* too many symbols in blocktype 2 header  */
--#define INF_ERR_BITLENTBL   (-6)  /* failed to build bitlens huffman table   */
--#define INF_ERR_LITERALTBL  (-7)  /* failed to build literals huffman table  */
--#define INF_ERR_DISTANCETBL (-8)  /* failed to build distance huffman table  */
--#define INF_ERR_BITOVERRUN  (-9)  /* bitlen RLE code goes over table size    */
--#define INF_ERR_BADBITLEN   (-10) /* invalid bit-length code                 */
--#define INF_ERR_LITCODE     (-11) /* out-of-range literal code               */
--#define INF_ERR_DISTCODE    (-12) /* out-of-range distance code              */
--#define INF_ERR_DISTANCE    (-13) /* somehow, distance is beyond 32k         */
--#define INF_ERR_HUFFSYM     (-14) /* out of bits decoding huffman symbol     */
--
--/* mszip_make_decode_table(nsyms, nbits, length[], table[])
-- *
-- * This function was coded by David Tritscher. It builds a fast huffman
-- * decoding table out of just a canonical huffman code lengths table.
-- *
-- * NOTE: this is NOT identical to the mszip_make_decode_table() in lzxd.c. This
-- * one reverses the quick-lookup bit pattern. Bits are read MSB to LSB in LZX,
-- * but LSB to MSB in MSZIP.
-- *
-- * nsyms  = total number of symbols in this huffman tree.
-- * nbits  = any symbols with a code length of nbits or less can be decoded
-- *          in one lookup of the table.
-- * length = A table to get code lengths from [0 to nsyms-1]
-- * table  = The table to fill up with decoded symbols and pointers.
-- *
-- * Returns 0 for OK or 1 for error
-- */
--static int mszip_make_decode_table(unsigned int nsyms, unsigned int nbits,
--			     unsigned char *length, unsigned short *table)
--{
--  register unsigned int leaf, reverse, fill;
--  register unsigned short sym, next_sym;
--  register unsigned char bit_num;
--  unsigned int pos         = 0; /* the current position in the decode table */
--  unsigned int table_mask  = 1 << nbits;
--  unsigned int mszip_bit_mask    = table_mask >> 1; /* don't do 0 length codes */
--
--  /* fill entries for codes short enough for a direct mapping */
--  for (bit_num = 1; bit_num <= nbits; bit_num++) {
--    for (sym = 0; sym < nsyms; sym++) {
--      if (length[sym] != bit_num) continue;
--
--      /* reverse the significant bits */
--      fill = length[sym]; reverse = pos >> (nbits - fill); leaf = 0;
--      do {leaf <<= 1; leaf |= reverse & 1; reverse >>= 1;} while (--fill);
--
--      if((pos += mszip_bit_mask) > table_mask) return 1; /* table overrun */
--
--      /* fill all possible lookups of this symbol with the symbol itself */
--      fill = mszip_bit_mask; next_sym = 1 << bit_num;
--      do { table[leaf] = sym; leaf += next_sym; } while (--fill);
--    }
--    mszip_bit_mask >>= 1;
--  }
--
--  /* exit with success if table is now complete */
--  if (pos == table_mask) return 0;
--
--  /* mark all remaining table entries as unused */
--  for (sym = pos; sym < table_mask; sym++) {
--    reverse = sym; leaf = 0; fill = nbits;
--    do { leaf <<= 1; leaf |= reverse & 1; reverse >>= 1; } while (--fill);
--    table[leaf] = 0xFFFF;
--  }
--
--  /* where should the longer codes be allocated from? */
--  next_sym = ((table_mask >> 1) < nsyms) ? nsyms : (table_mask >> 1);
--
--  /* give ourselves room for codes to grow by up to 16 more bits.
--   * codes now start at bit nbits+16 and end at (nbits+16-codelength) */
--  pos <<= 16;
--  table_mask <<= 16;
--  mszip_bit_mask = 1 << 15;
--
--  for (bit_num = nbits+1; bit_num <= MSZIP_MAX_HUFFBITS; bit_num++) {
--    for (sym = 0; sym < nsyms; sym++) {
--      if (length[sym] != bit_num) continue;
--
--      /* leaf = the first nbits of the code, reversed */
--      reverse = pos >> 16; leaf = 0; fill = nbits;
--      do {leaf <<= 1; leaf |= reverse & 1; reverse >>= 1;} while (--fill);
--
--      for (fill = 0; fill < (bit_num - nbits); fill++) {
--	/* if this path hasn't been taken yet, 'allocate' two entries */
--	if (table[leaf] == 0xFFFF) {
--	  table[(next_sym << 1)     ] = 0xFFFF;
--	  table[(next_sym << 1) + 1 ] = 0xFFFF;
--	  table[leaf] = next_sym++;
--	}
--	/* follow the path and select either left or right for next bit */
--	leaf = (table[leaf] << 1) | ((pos >> (15 - fill)) & 1);
--      }
--      table[leaf] = sym;
--
--      if ((pos += mszip_bit_mask) > table_mask) return 1; /* table overflow */
--    }
--    mszip_bit_mask >>= 1;
--  }
--
--  /* full table? */
--  return (pos != table_mask) ? 1 : 0;
--}
--
--/* MSZIP_READ_HUFFSYM(tablename, var) decodes one huffman symbol from the
-- * bitstream using the stated table and puts it in var.
-- */
--#define MSZIP_READ_HUFFSYM(tbl, var) do {                                     \
--  /* huffman symbols can be up to 16 bits long */                       \
--  MSZIP_ENSURE_BITS(MSZIP_MAX_HUFFBITS);                                      \
--  /* immediate table lookup of [tablebits] bits of the code */          \
--  sym = zip->tbl##_table[MSZIP_PEEK_BITS(MSZIP_##tbl##_TABLEBITS)];		\
--  /* is the symbol is longer than [tablebits] bits? (i=node index) */   \
--  if (sym >= MSZIP_##tbl##_MAXSYMBOLS) {                                \
--    /* decode remaining bits by tree traversal */                       \
--    i = MSZIP_##tbl##_TABLEBITS - 1;					\
--    do {                                                                \
--      /* check next bit. error if we run out of bits before decode */	\
--      if (i++ > MSZIP_MAX_HUFFBITS) {					\
--        cli_dbgmsg("zip_inflate: out of bits in huffman decode\n");	\
--        return INF_ERR_HUFFSYM;                                         \
--      }                                                                 \
--      sym = (sym << 1) | ((bit_buffer >> i) & 1);			\
--      if(sym >= MSZIP_##tbl##_TABLESIZE) {				\
--	cli_dbgmsg("zip_inflate: index out of table\n");		\
--        return INF_ERR_HUFFSYM;                                         \
--      }									\
--      /* double node index and add 0 (left branch) or 1 (right) */	\
--      sym = zip->tbl##_table[sym];					\
--      /* while we are still in node indicies, not decoded symbols */    \
--    } while (sym >= MSZIP_##tbl##_MAXSYMBOLS);                          \
--  }                                                                     \
--  /* result */                                                          \
--  (var) = sym;                                                          \
--  /* look up the code length of that symbol and discard those bits */   \
--  i = zip->tbl##_len[sym];                                              \
--  MSZIP_REMOVE_BITS(i);                                                       \
--} while (0)
--
--static int mszip_read_lens(struct mszip_stream *zip) {
--  /* for the bit buffer and huffman decoding */
--  register unsigned int bit_buffer;
--  register int bits_left;
--  unsigned char *i_ptr, *i_end;
--
--  /* bitlen Huffman codes -- immediate lookup, 7 bit max code length */
--  unsigned short bl_table[(1 << 7)];
--  unsigned char bl_len[19];
--
--  unsigned char lens[MSZIP_LITERAL_MAXSYMBOLS + MSZIP_DISTANCE_MAXSYMBOLS];
--  unsigned int lit_codes, dist_codes, code, last_code=0, bitlen_codes, i, run;
--
--  MSZIP_RESTORE_BITS;
--
--  /* read the number of codes */
--  MSZIP_READ_BITS(lit_codes,    5); lit_codes    += 257;
--  MSZIP_READ_BITS(dist_codes,   5); dist_codes   += 1;
--  MSZIP_READ_BITS(bitlen_codes, 4); bitlen_codes += 4;
--  if (lit_codes  > MSZIP_LITERAL_MAXSYMBOLS)  return INF_ERR_SYMLENS;
--  if (dist_codes > MSZIP_DISTANCE_MAXSYMBOLS) return INF_ERR_SYMLENS;
--
--  /* read in the bit lengths in their unusual order */
--  for (i = 0; i < bitlen_codes; i++) MSZIP_READ_BITS(bl_len[mszip_bitlen_order[i]], 3);
--  while (i < 19) bl_len[mszip_bitlen_order[i++]] = 0;
--
--  /* create decoding table with an immediate lookup */
--  if (mszip_make_decode_table(19, 7, &bl_len[0], &bl_table[0])) {
--    return INF_ERR_BITLENTBL;
--  }
--
--  /* read literal / distance code lengths */
--  for (i = 0; i < (lit_codes + dist_codes); i++) {
--    /* single-level huffman lookup */
--    MSZIP_ENSURE_BITS(7);
--    code = bl_table[MSZIP_PEEK_BITS(7)];
--    MSZIP_REMOVE_BITS(bl_len[code]);
--
--    if (code < 16) lens[i] = last_code = code;
--    else {
--      switch (code) {
--      case 16: MSZIP_READ_BITS(run, 2); run += 3;  code = last_code; break;
--      case 17: MSZIP_READ_BITS(run, 3); run += 3;  code = 0;         break;
--      case 18: MSZIP_READ_BITS(run, 7); run += 11; code = 0;         break;
--      default: cli_dbgmsg("zip_read_lens: bad code!: %u\n", code); return INF_ERR_BADBITLEN;
--      }
--      if ((i + run) > (lit_codes + dist_codes)) return INF_ERR_BITOVERRUN;
--      while (run--) lens[i++] = code;
--      i--;
--    }
--  }
--
--  /* copy LITERAL code lengths and clear any remaining */
--  i = lit_codes;
--  memcpy(&zip->LITERAL_len[0], &lens[0], i);
--  while (i < MSZIP_LITERAL_MAXSYMBOLS) zip->LITERAL_len[i++] = 0;
--
--  i = dist_codes;
--  memcpy(&zip->DISTANCE_len[0], &lens[lit_codes], i);
--  while (i < MSZIP_DISTANCE_MAXSYMBOLS) zip->DISTANCE_len[i++] = 0;
--
--  MSZIP_STORE_BITS;
--  return 0;
--}
--
--static int mspack_write(int fd, const void *buff, unsigned int count, struct cab_file *file)
--{
--	int ret;
--
--    if(file->max_size) {
--	if(file->written_size >= file->max_size)
--	    return CL_BREAK;
--
--	if(file->written_size + count > file->max_size)
--	    count = file->max_size - file->written_size;
--    }
--    if((ret = cli_writen(fd, buff, count)) > 0)
--	file->written_size += ret;
--
--    return (ret == -1) ? CL_EWRITE : CL_SUCCESS;
--}
--
--/* a clean implementation of RFC 1951 / inflate */
--static int mszip_inflate(struct mszip_stream *zip) {
--  unsigned int last_block, block_type, distance, length, this_run, i;
--
--  /* for the bit buffer and huffman decoding */
--  register unsigned int bit_buffer;
--  register int bits_left;
--  register unsigned short sym;
--  unsigned char *i_ptr, *i_end;
--
--  MSZIP_RESTORE_BITS;
--
--  do {
--    /* read in last block bit */
--    MSZIP_READ_BITS(last_block, 1);
--
--    /* read in block type */
--    MSZIP_READ_BITS(block_type, 2);
--
--    if (block_type == 0) {
--      /* uncompressed block */
--      unsigned char lens_buf[4];
--
--      /* go to byte boundary */
--      i = bits_left & 7; MSZIP_REMOVE_BITS(i);
--
--      /* read 4 bytes of data, emptying the bit-buffer if necessary */
--      for (i = 0; (bits_left >= 8); i++) {
--	if (i == 4) return INF_ERR_BITBUF;
--	lens_buf[i] = MSZIP_PEEK_BITS(8);
--	MSZIP_REMOVE_BITS(8);
--      }
--      if (bits_left != 0) return INF_ERR_BITBUF;
--      while (i < 4) {
--	if (i_ptr >= i_end) {
--	  if (mszip_read_input(zip)) return zip->error;
--	  i_ptr = zip->i_ptr;
--	  i_end = zip->i_end;
--	  if(i_ptr == i_end) break;
--	}
--	lens_buf[i++] = *i_ptr++;
--      }
--      if (i < 4) return INF_ERR_BITBUF;
--
--      /* get the length and its complement */
--      length = lens_buf[0] | (lens_buf[1] << 8);
--      i      = lens_buf[2] | (lens_buf[3] << 8);
--      if (length != (~i & 0xFFFF)) return INF_ERR_COMPLEMENT;
--
--      /* read and copy the uncompressed data into the window */
--      while (length > 0) {
--	if (i_ptr >= i_end) {
--	  if (mszip_read_input(zip)) return zip->error;
--	  i_ptr = zip->i_ptr;
--	  i_end = zip->i_end;
--	  if(i_ptr == i_end) break;
--	}
--
--	this_run = length;
--	if (this_run > (unsigned int)(i_end - i_ptr)) this_run = i_end - i_ptr;
--	if (this_run > (MSZIP_FRAME_SIZE - zip->window_posn))
--	  this_run = MSZIP_FRAME_SIZE - zip->window_posn;
--
--	memcpy(&zip->window[zip->window_posn], i_ptr, this_run);
--	zip->window_posn += this_run;
--	i_ptr    += this_run;
--	length   -= this_run;
--
--	if (zip->window_posn == MSZIP_FRAME_SIZE) {
--	  if (zip->flush_window(zip, MSZIP_FRAME_SIZE)) return INF_ERR_FLUSH;
--	  zip->window_posn = 0;
--	}
--      }
--    }
--    else if ((block_type == 1) || (block_type == 2)) {
--      /* Huffman-compressed LZ77 block */
--      unsigned int window_posn, match_posn, code;
--
--      if (block_type == 1) {
--	/* block with fixed Huffman codes */
--	i = 0;
--	while (i < 144) zip->LITERAL_len[i++] = 8;
--	while (i < 256) zip->LITERAL_len[i++] = 9;
--	while (i < 280) zip->LITERAL_len[i++] = 7;
--	while (i < 288) zip->LITERAL_len[i++] = 8;
--	for (i = 0; i < 32; i++) zip->DISTANCE_len[i] = 5;
--      }
--      else {
--	/* block with dynamic Huffman codes */
--	MSZIP_STORE_BITS;
--	if ((i = mszip_read_lens(zip))) return i;
--	MSZIP_RESTORE_BITS;
--      }
--
--      /* now huffman lengths are read for either kind of block, 
--       * create huffman decoding tables */
--      if (mszip_make_decode_table(MSZIP_LITERAL_MAXSYMBOLS, MSZIP_LITERAL_TABLEBITS,
--			    &zip->LITERAL_len[0], &zip->LITERAL_table[0]))
--      {
--	return INF_ERR_LITERALTBL;
--      }
--
--      if (mszip_make_decode_table(MSZIP_DISTANCE_MAXSYMBOLS,MSZIP_DISTANCE_TABLEBITS,
--			    &zip->DISTANCE_len[0], &zip->DISTANCE_table[0]))
--      {
--	return INF_ERR_DISTANCETBL;
--      }
--
--      /* decode forever until end of block code */
--      window_posn = zip->window_posn;
--      while (1) {
--	MSZIP_READ_HUFFSYM(LITERAL, code);
--	if (code < 256) {
--	  zip->window[window_posn++] = (unsigned char) code;
--	  if (window_posn == MSZIP_FRAME_SIZE) {
--	    if (zip->flush_window(zip, MSZIP_FRAME_SIZE)) return INF_ERR_FLUSH;
--	    window_posn = 0;
--	  }
--	}
--	else if (code == 256) {
--	  /* END OF BLOCK CODE: loop break point */
--	  break;
--	}
--	else {
--	  code -= 257;
--	  if (code >= 29) return INF_ERR_LITCODE;
--	  MSZIP_READ_BITS_T(length, mszip_lit_extrabits[code]);
--	  length += mszip_lit_lengths[code];
--
--	  MSZIP_READ_HUFFSYM(DISTANCE, code);
--	  if (code >= 30) return INF_ERR_DISTCODE;
--	  MSZIP_READ_BITS_T(distance, mszip_dist_extrabits[code]);
--	  distance += mszip_dist_offsets[code];
--
--	  /* match position is window position minus distance. If distance
--	   * is more than window position numerically, it must 'wrap
--	   * around' the frame size. */ 
--	  match_posn = ((distance > window_posn) ? MSZIP_FRAME_SIZE : 0)
--	    + window_posn - distance;
--
--	  /* copy match */
--	  if (length < 12) {
--	    /* short match, use slower loop but no loop setup code */
--	    while (length--) {
--	      zip->window[window_posn++] = zip->window[match_posn++];
--	      match_posn &= MSZIP_FRAME_SIZE - 1;
--
--	      if (window_posn == MSZIP_FRAME_SIZE) {
--		if (zip->flush_window(zip, MSZIP_FRAME_SIZE))
--		  return INF_ERR_FLUSH;
--		window_posn = 0;
--	      }
--	    }
--	  }
--	  else {
--	    /* longer match, use faster loop but with setup expense */
--	    unsigned char *runsrc, *rundest;
--	    do {
--	      this_run = length;
--	      if ((match_posn + this_run) > MSZIP_FRAME_SIZE)
--		this_run = MSZIP_FRAME_SIZE - match_posn;
--	      if ((window_posn + this_run) > MSZIP_FRAME_SIZE)
--		this_run = MSZIP_FRAME_SIZE - window_posn;
--
--	      rundest = &zip->window[window_posn]; window_posn += this_run;
--	      runsrc  = &zip->window[match_posn];  match_posn  += this_run;
--	      length -= this_run;
--	      while (this_run--) *rundest++ = *runsrc++;
--
--	      /* flush if necessary */
--	      if (window_posn == MSZIP_FRAME_SIZE) {
--		if (zip->flush_window(zip, MSZIP_FRAME_SIZE))
--		  return INF_ERR_FLUSH;
--		window_posn = 0;
--	      }
--	      if (match_posn == MSZIP_FRAME_SIZE) match_posn = 0;
--	    } while (length > 0);
--	  }
--
--	} /* else (code >= 257) */
--
--      } /* while (forever) -- break point at 'code == 256' */
--      zip->window_posn = window_posn;
--    }
--    else {
--      /* block_type == 3 -- bad block type */
--      return INF_ERR_BLOCKTYPE;
--    }
--  } while (!last_block);
--
--  /* flush the remaining data */
--  if (zip->window_posn) {
--    if (zip->flush_window(zip, zip->window_posn)) return INF_ERR_FLUSH;
--  }
--  MSZIP_STORE_BITS;
--
--  /* return success */
--  return 0;
--}
--
--/* inflate() calls this whenever the window should be flushed. As
-- * MSZIP only expands to the size of the window, the implementation used
-- * simply keeps track of the amount of data flushed, and if more than 32k
-- * is flushed, an error is raised.
-- */  
--static int mszip_flush_window(struct mszip_stream *zip,
--			       unsigned int data_flushed)
--{
--  zip->bytes_output += data_flushed;
--  if (zip->bytes_output > MSZIP_FRAME_SIZE) {
--    cli_dbgmsg("mszip_flush_window: overflow: %u bytes flushed, total is now %u\n", data_flushed, zip->bytes_output);
--    return 1;
--  }
--  return 0;
--}
--
--struct mszip_stream *mszip_init(int ofd,
--				  int input_buffer_size,
--				  int repair_mode,
--				  struct cab_file *file,
--			          int (*read_cb)(struct cab_file *, unsigned char *, int))
--{
--  struct mszip_stream *zip;
--
--  input_buffer_size = (input_buffer_size + 1) & -2;
--  if (!input_buffer_size) return NULL;
--
--  /* allocate decompression state */
--  if (!(zip = cli_calloc(1, sizeof(struct mszip_stream)))) {
--      cli_errmsg("mszip_stream: Unable to allocate zip buffer\n");
--    return NULL;
--  }
--
--  /* allocate input buffer */
--  zip->inbuf  = cli_malloc((size_t) input_buffer_size);
--  if (!zip->inbuf) {
--      cli_errmsg("mszip_stream: Unable to allocate input buffer\n");
--    free(zip);
--    return NULL;
--  }
--
--  /* initialise decompression state */
--  zip->ofd	       = ofd;
--  zip->wflag	       = 1;
--  zip->inbuf_size      = input_buffer_size;
--  zip->error           = CL_SUCCESS;
--  zip->repair_mode     = repair_mode;
--  zip->flush_window    = &mszip_flush_window;
--  zip->input_end       = 0;
--
--  zip->i_ptr = zip->i_end = &zip->inbuf[0];
--  zip->o_ptr = zip->o_end = NULL;
--  zip->bit_buffer = 0; zip->bits_left = 0;
--
--  zip->file = file;
--  zip->read_cb = read_cb;
--
--  return zip;
--}
--
--int mszip_decompress(struct mszip_stream *zip, uint32_t out_bytes) {
--  /* for the bit buffer */
--  register unsigned int bit_buffer;
--  register int bits_left;
--  unsigned char *i_ptr, *i_end;
--
--  int i, ret, state, error;
--
--  /* easy answers */
--  if (!zip) return CL_ENULLARG;
--  if (zip->error) return zip->error;
--
--  /* flush out any stored-up bytes before we begin */
--  i = zip->o_end - zip->o_ptr;
--  if (((off_t) i > out_bytes) && ((int) out_bytes >= 0)) i = (int) out_bytes;
--  if (i) {
--    if (zip->wflag && (ret = mspack_write(zip->ofd, zip->o_ptr, i, zip->file)) != CL_SUCCESS) {
--      return zip->error = ret;
--    }
--    zip->o_ptr  += i;
--    out_bytes   -= i;
--  }
--  if (out_bytes == 0) return CL_SUCCESS;
--
--  while (out_bytes > 0) {
--    /* unpack another block */
--    MSZIP_RESTORE_BITS;
--
--    /* skip to next read 'CK' header */
--    i = bits_left & 7; MSZIP_REMOVE_BITS(i); /* align to bytestream */
--    state = 0;
--    do {
--      MSZIP_READ_BITS(i, 8);
--      if (i == 'C') state = 1;
--      else if ((state == 1) && (i == 'K')) state = 2;
--      else state = 0;
--    } while (state != 2);
--
--    /* inflate a block, repair and realign if necessary */
--    zip->window_posn = 0;
--    zip->bytes_output = 0;
--    MSZIP_STORE_BITS;
--    if ((error = mszip_inflate(zip))) {
--      cli_dbgmsg("mszip_decompress: inflate error %d\n", error);
--      if (zip->repair_mode) {
--	cli_dbgmsg("mszip_decompress: MSZIP error, %u bytes of data lost\n",
--			  MSZIP_FRAME_SIZE - zip->bytes_output);
--	for (i = zip->bytes_output; i < MSZIP_FRAME_SIZE; i++) {
--	  zip->window[i] = '\0';
--	}
--	zip->bytes_output = MSZIP_FRAME_SIZE;
--      }
--      else {
--	return zip->error = (error > 0) ? error : CL_EFORMAT;
--      }
--    }
--    zip->o_ptr = &zip->window[0];
--    zip->o_end = &zip->o_ptr[zip->bytes_output];
--
--    /* write a frame */
--    i = (out_bytes < (off_t)zip->bytes_output) ?
--      (int)out_bytes : zip->bytes_output;
--    if (zip->wflag && (ret = mspack_write(zip->ofd, zip->o_ptr, i, zip->file)) != CL_SUCCESS) {
--      return zip->error = ret;
--    }
--
--    /* mspack errors (i.e. read errors) are fatal and can't be recovered */
--    if ((error > 0) && zip->repair_mode) return error;
--
--    zip->o_ptr  += i;
--    out_bytes   -= i;
--  }
--
--  if (out_bytes)
--    cli_dbgmsg("mszip_decompress: bytes left to output\n");
--
--  return CL_SUCCESS;
--}
--
--void mszip_free(struct mszip_stream *zip) {
--  if (zip) {
--    free(zip->inbuf);
--    free(zip);
--  }
--}
--
--/***************************************************************************
-- *			 LZX decompression implementation 
-- ***************************************************************************
-- * The LZX method was created by Jonathan Forbes and Tomi Poutanen, adapted
-- * by Microsoft Corporation.
-- *
-- */
--
--/* LZX decompressor input macros
-- *
-- * LZX_STORE_BITS        stores bitstream state in lzx_stream structure
-- * LZX_RESTORE_BITS      restores bitstream state from lzx_stream structure
-- * LZX_READ_BITS(var,n)  takes N bits from the buffer and puts them in var
-- * LZX_ENSURE_BITS(n)    ensures there are at least N bits in the bit buffer.
-- * LZX_PEEK_BITS(n)      extracts without removing N bits from the bit buffer
-- * LZX_REMOVE_BITS(n)    removes N bits from the bit buffer
-- *
-- */
--
--#define LZX_BITBUF_WIDTH (sizeof(bit_buffer) * CHAR_BIT)
--
--#define LZX_STORE_BITS do {                                                 \
--  lzx->i_ptr      = i_ptr;                                              \
--  lzx->i_end      = i_end;                                              \
--  lzx->bit_buffer = bit_buffer;                                         \
--  lzx->bits_left  = bits_left;                                          \
--} while (0)
--
--#define LZX_RESTORE_BITS do {                                               \
--  i_ptr      = lzx->i_ptr;                                              \
--  i_end      = lzx->i_end;                                              \
--  bit_buffer = lzx->bit_buffer;                                         \
--  bits_left  = lzx->bits_left;                                          \
--} while (0)
--
--#define LZX_ENSURE_BITS(nbits)                                              \
--  while (bits_left < (nbits)) {                                         \
--    if (i_ptr + 1 >= i_end) {                                               \
--      if (lzx_read_input(lzx)) return lzx->error;                      \
--      i_ptr = lzx->i_ptr;                                               \
--      i_end = lzx->i_end;                                               \
--    }                                                                   \
--    bit_buffer |= ((i_ptr[1] << 8) | i_ptr[0])                          \
--                  << (LZX_BITBUF_WIDTH - 16 - bits_left);                   \
--    bits_left  += 16;                                                   \
--    i_ptr      += 2;                                                    \
--  }
--
--#define LZX_PEEK_BITS(nbits) (bit_buffer >> (LZX_BITBUF_WIDTH - (nbits)))
--
--#define LZX_REMOVE_BITS(nbits) ((bit_buffer <<= (nbits)), (bits_left -= (nbits)))
--
--#define LZX_READ_BITS(val, nbits) do {                                      \
--  LZX_ENSURE_BITS(nbits);                                                   \
--  (val) = LZX_PEEK_BITS(nbits);                                             \
--  LZX_REMOVE_BITS(nbits);                                                   \
--} while (0)
--
--static int lzx_read_input(struct lzx_stream *lzx) {
--  int bread = lzx->read_cb(lzx->file, &lzx->inbuf[0], (int)lzx->inbuf_size);
--  if (bread < 0) {
--    if (lzx->file->error == CL_BREAK)
--      return lzx->error = CL_BREAK;
--    else
--      return lzx->error = CL_EFORMAT;
--  }
--
--  /* huff decode's ENSURE_BYTES(16) might overrun the input stream, even
--   * if those bits aren't used, so fake 2 more bytes */
--  if (bread == 0) {
--    if (lzx->input_end) {
--      cli_dbgmsg("lzx_read_input: out of input bytes\n");
--      return lzx->error = CL_EREAD;
--    }
--    else {
--      bread = 2;
--      lzx->inbuf[0] = lzx->inbuf[1] = 0;
--      lzx->input_end = 1;
--    }
--  }
--
--  lzx->i_ptr = &lzx->inbuf[0];
--  lzx->i_end = &lzx->inbuf[bread];
--
--  return CL_SUCCESS;
--}
--
--/* Huffman decoding macros */
--
--/* LZX_READ_HUFFSYM(tablename, var) decodes one huffman symbol from the
-- * bitstream using the stated table and puts it in var.
-- */
--#define LZX_READ_HUFFSYM(tbl, var) do {                                     \
--  /* huffman symbols can be up to 16 bits long */                       \
--  LZX_ENSURE_BITS(16);                                                      \
--  /* immediate table lookup of [tablebits] bits of the code */          \
--  sym = lzx->tbl##_table[LZX_PEEK_BITS(LZX_##tbl##_TABLEBITS)];             \
--  /* is the symbol is longer than [tablebits] bits? (i=node index) */   \
--  if (sym >= LZX_##tbl##_MAXSYMBOLS) {                                  \
--    /* decode remaining bits by tree traversal */                       \
--    i = 1 << (LZX_BITBUF_WIDTH - LZX_##tbl##_TABLEBITS);                    \
--    do {                                                                \
--      /* one less bit. error if we run out of bits before decode */     \
--      i >>= 1;                                                          \
--      if (i == 0) {                                                     \
--        cli_dbgmsg("lzx: out of bits in huffman decode\n");             \
--        return lzx->error = CL_EFORMAT;					\
--      }                                                                 \
--      /* double node index and add 0 (left branch) or 1 (right) */      \
--      sym <<= 1; sym |= (bit_buffer & i) ? 1 : 0;                       \
--      /* hop to next node index / decoded symbol */                     \
--      if(sym >= (1 << LZX_##tbl##_TABLEBITS) + (LZX_##tbl##_MAXSYMBOLS * 2)) { \
--	cli_dbgmsg("lzx: index out of table\n");			\
--	return lzx->error = CL_EFORMAT;					\
--      }									\
--      sym = lzx->tbl##_table[sym];                                    \
--      /* while we are still in node indicies, not decoded symbols */    \
--    } while (sym >= LZX_##tbl##_MAXSYMBOLS);                            \
--  }                                                                     \
--  /* result */                                                          \
--  (var) = sym;                                                          \
--  /* look up the code length of that symbol and discard those bits */   \
--  i = lzx->tbl##_len[sym];                                              \
--  LZX_REMOVE_BITS(i);                                                       \
--} while (0)
--
--/* LZX_BUILD_TABLE(tbl) builds a huffman lookup table from code lengths */
--#define LZX_BUILD_TABLE(tbl)                                                \
--  if (lzx_make_decode_table(LZX_##tbl##_MAXSYMBOLS, LZX_##tbl##_TABLEBITS,  \
--			&lzx->tbl##_len[0], &lzx->tbl##_table[0]))      \
--  {                                                                     \
--    cli_dbgmsg("lzx: failed to build %s table\n", #tbl);                \
--    return lzx->error = CL_EFORMAT;					\
--  }
--
--/* lzx_make_decode_table(nsyms, nbits, length[], table[])
-- *
-- * This function was coded by David Tritscher. It builds a fast huffman
-- * decoding table from a canonical huffman code lengths table.
-- *
-- * nsyms  = total number of symbols in this huffman tree.
-- * nbits  = any symbols with a code length of nbits or less can be decoded
-- *          in one lookup of the table.
-- * length = A table to get code lengths from [0 to syms-1]
-- * table  = The table to fill up with decoded symbols and pointers.
-- *
-- * Returns 0 for OK or 1 for error
-- */
--
--static int lzx_make_decode_table(unsigned int nsyms, unsigned int nbits,
--			     unsigned char *length, unsigned short *table)
--{
--  register unsigned short sym;
--  register unsigned int leaf, fill;
--  register unsigned char bit_num;
--  unsigned int pos         = 0; /* the current position in the decode table */
--  unsigned int table_mask  = 1 << nbits;
--  unsigned int bit_mask    = table_mask >> 1; /* don't do 0 length codes */
--  unsigned int next_symbol = bit_mask; /* base of allocation for long codes */
--
--  /* fill entries for codes short enough for a direct mapping */
--  for (bit_num = 1; bit_num <= nbits; bit_num++) {
--    for (sym = 0; sym < nsyms; sym++) {
--      if (length[sym] != bit_num) continue;
--      leaf = pos;
--      if((pos += bit_mask) > table_mask) return 1; /* table overrun */
--      /* fill all possible lookups of this symbol with the symbol itself */
--      for (fill = bit_mask; fill-- > 0;) table[leaf++] = sym;
--    }
--    bit_mask >>= 1;
--  }
--
--  /* full table already? */
--  if (pos == table_mask) return 0;
--
--  /* clear the remainder of the table */
--  for (sym = pos; sym < table_mask; sym++) table[sym] = 0xFFFF;
--
--  /* allow codes to be up to nbits+16 long, instead of nbits */
--  pos <<= 16;
--  table_mask <<= 16;
--  bit_mask = 1 << 15;
--
--  for (bit_num = nbits+1; bit_num <= 16; bit_num++) {
--    for (sym = 0; sym < nsyms; sym++) {
--      if (length[sym] != bit_num) continue;
--
--      leaf = pos >> 16;
--      for (fill = 0; fill < bit_num - nbits; fill++) {
--	/* if this path hasn't been taken yet, 'allocate' two entries */
--	if (table[leaf] == 0xFFFF) {
--	  table[(next_symbol << 1)] = 0xFFFF;
--	  table[(next_symbol << 1) + 1] = 0xFFFF;
--	  table[leaf] = next_symbol++;
--	}
--	/* follow the path and select either left or right for next bit */
--	leaf = table[leaf] << 1;
--	if ((pos >> (15-fill)) & 1) leaf++;
--      }
--      table[leaf] = sym;
--
--      if ((pos += bit_mask) > table_mask) return 1; /* table overflow */
--    }
--    bit_mask >>= 1;
--  }
--
--  /* full table? */
--  if (pos == table_mask) return 0;
--
--  /* either erroneous table, or all elements are 0 - let's find out. */
--  for (sym = 0; sym < nsyms; sym++) if (length[sym]) return 1;
--  return 0;
--}
--
--/* LZX_READ_LENGTHS(tablename, first, last) reads in code lengths for symbols
-- * first to last in the given table. The code lengths are stored in their
-- * own special LZX way.
-- */
--#define LZX_READ_LENGTHS(tbl, first, last) do {                            \
--  LZX_STORE_BITS;                                                          \
--  if (lzx_read_lens(lzx, &lzx->tbl##_len[0], (first),                 \
--    (unsigned int)(last))) return lzx->error;                          \
--  LZX_RESTORE_BITS;                                                        \
--} while (0)
--
--static int lzx_read_lens(struct lzx_stream *lzx, unsigned char *lens,
--			  unsigned int first, unsigned int last)
--{
--  /* bit buffer and huffman symbol decode variables */
--  register unsigned int bit_buffer;
--  register int bits_left, i;
--  register unsigned short sym;
--  unsigned char *i_ptr, *i_end;
--
--  unsigned int x, y;
--  int z;
--
--  LZX_RESTORE_BITS;
--  
--  /* read lengths for pretree (20 symbols, lengths stored in fixed 4 bits) */
--  for (x = 0; x < 20; x++) {
--    LZX_READ_BITS(y, 4);
--    lzx->PRETREE_len[x] = y;
--  }
--  LZX_BUILD_TABLE(PRETREE);
--
--  for (x = first; x < last; ) {
--    LZX_READ_HUFFSYM(PRETREE, z);
--    if (z == 17) {
--      /* code = 17, run of ([read 4 bits]+4) zeros */
--      LZX_READ_BITS(y, 4); y += 4;
--      while (y--) lens[x++] = 0;
--    }
--    else if (z == 18) {
--      /* code = 18, run of ([read 5 bits]+20) zeros */
--      LZX_READ_BITS(y, 5); y += 20;
--      while (y--) lens[x++] = 0;
--    }
--    else if (z == 19) {
--      /* code = 19, run of ([read 1 bit]+4) [read huffman symbol] */
--      LZX_READ_BITS(y, 1); y += 4;
--      LZX_READ_HUFFSYM(PRETREE, z);
--      z = lens[x] - z; if (z < 0) z += 17;
--      while (y--) lens[x++] = z;
--    }
--    else {
--      /* code = 0 to 16, delta current length entry */
--      z = lens[x] - z; if (z < 0) z += 17;
--      lens[x++] = z;
--    }
--  }
--
--  LZX_STORE_BITS;
--
--  return CL_SUCCESS;
--}
--
--static void lzx_reset_state(struct lzx_stream *lzx) {
--  int i;
--
--  lzx->R0              = 1;
--  lzx->R1              = 1;
--  lzx->R2              = 1;
--  lzx->header_read     = 0;
--  lzx->block_remaining = 0;
--  lzx->block_type      = LZX_BLOCKTYPE_INVALID;
--
--  /* initialise tables to 0 (because deltas will be applied to them) */
--  for (i = 0; i < LZX_MAINTREE_MAXSYMBOLS; i++) lzx->MAINTREE_len[i] = 0;
--  for (i = 0; i < LZX_LENGTH_MAXSYMBOLS; i++)   lzx->LENGTH_len[i]   = 0;
--}
--
--/*-------- main LZX code --------*/
--
--struct lzx_stream *lzx_init(int ofd,
--			      int window_bits,
--			      int reset_interval,
--			      int input_buffer_size,
--			      off_t output_length,
--			      struct cab_file *file,
--			      int (*read_cb)(struct cab_file *, unsigned char *, int))
--{
--  unsigned int window_size = 1 << window_bits;
--  struct lzx_stream *lzx;
--  int i, j;
--
--  /* LZX supports window sizes of 2^15 (32Kb) through 2^21 (2Mb) */
--  if (window_bits < 15 || window_bits > 21) return NULL;
--
--  input_buffer_size = (input_buffer_size + 1) & -2;
--  if (!input_buffer_size) return NULL;
--
--  /* allocate decompression state */
--  if (!(lzx = cli_calloc(1, sizeof(struct lzx_stream)))) {
--    return NULL;
--  }
--
--  for (i = 0, j = 0; i < 51; i += 2) {
--    lzx->extra_bits[i]   = j; /* 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7... */
--    if(i < 50)
--	lzx->extra_bits[i+1] = j;
--    if ((i != 0) && (j < 17)) j++; /* 0,0,1,2,3,4...15,16,17,17,17,17... */
--  }
--
--  for (i = 0, j = 0; i < 51; i++) {
--    lzx->position_base[i] = j; /* 0,1,2,3,4,6,8,12,16,24,32,... */
--    j += 1 << lzx->extra_bits[i]; /* 1,1,1,1,2,2,4,4,8,8,16,16,32,32,... */
--  }
--
--  /* allocate decompression window and input buffer */
--  lzx->window = cli_calloc(1, (size_t) window_size);
--  if(!lzx->window) {
--    free(lzx);
--    return NULL;
--  }
--
--  lzx->inbuf  = cli_calloc(1, (size_t) input_buffer_size);
--  if (!lzx->inbuf) {
--    free(lzx->window);
--    free(lzx);
--    return NULL;
--  }
--
--  /* initialise decompression state */
--  lzx->ofd	       = ofd;
--  lzx->wflag	       = 1;
--  lzx->offset          = 0;
--  lzx->length          = output_length;
--  lzx->file	       = file;
--  lzx->read_cb	       = read_cb;
--
--  lzx->inbuf_size      = input_buffer_size;
--  lzx->window_size     = 1 << window_bits;
--  lzx->window_posn     = 0;
--  lzx->frame_posn      = 0;
--  lzx->frame           = 0;
--  lzx->reset_interval  = reset_interval;
--  lzx->intel_filesize  = 0;
--  lzx->intel_curpos    = 0;
--
--  /* window bits:    15  16  17  18  19  20  21
--   * position slots: 30  32  34  36  38  42  50  */
--  lzx->posn_slots      = ((window_bits == 21) ? 50 :
--			  ((window_bits == 20) ? 42 : (window_bits << 1)));
--  lzx->intel_started   = 0;
--  lzx->input_end       = 0;
--
--  lzx->error = CL_SUCCESS;
--
--  lzx->i_ptr = lzx->i_end = &lzx->inbuf[0];
--  lzx->o_ptr = lzx->o_end = &lzx->e8_buf[0];
--  lzx->bit_buffer = lzx->bits_left = 0;
--
--  lzx_reset_state(lzx);
--  return lzx;
--}
--
--void lzx_set_output_length(struct lzx_stream *lzx, off_t out_bytes) {
--  if (lzx) lzx->length = out_bytes;
--}
--
--int lzx_decompress(struct lzx_stream *lzx, uint32_t out_bytes) {
--  /* bitstream reading and huffman variables */
--  register unsigned int bit_buffer;
--  register int bits_left, i=0;
--  register unsigned short sym;
--  unsigned char *i_ptr, *i_end;
--
--  int match_length, length_footer, extra, verbatim_bits, bytes_todo;
--  int this_run, main_element, aligned_bits, j, ret, warned=0;
--  unsigned char *window, *runsrc, *rundest, buf[12];
--  unsigned int frame_size=0, end_frame, match_offset, window_posn;
--  unsigned int R0, R1, R2;
--
--  /* easy answers */
--  if (!lzx) return CL_ENULLARG;
--  if (lzx->error) return lzx->error;
--
--  /* flush out any stored-up bytes before we begin */
--  i = lzx->o_end - lzx->o_ptr;
--  if (((off_t) i > out_bytes) && ((int) out_bytes >= 0)) i = (int) out_bytes;
--  if (i) {
--    if (lzx->wflag && (ret = mspack_write(lzx->ofd, lzx->o_ptr, i, lzx->file)) != CL_SUCCESS) {
--      return lzx->error = ret;
--    }
--    lzx->o_ptr  += i;
--    lzx->offset += i;
--    out_bytes   -= i;
--  }
--  if (out_bytes == 0) return CL_SUCCESS;
--
--  /* restore local state */
--  LZX_RESTORE_BITS;
--  window = lzx->window;
--  window_posn = lzx->window_posn;
--  R0 = lzx->R0;
--  R1 = lzx->R1;
--  R2 = lzx->R2;
--
--  end_frame = (unsigned int)((lzx->offset + out_bytes) / LZX_FRAME_SIZE) + 1;
--  cli_dbgmsg("lzx_decompress: end frame = %u\n", end_frame);
--
--  while (lzx->frame < end_frame) {
--    cli_dbgmsg("lzx_decompress: current frame = %u\n", lzx->frame);
--    /* have we reached the reset interval? (if there is one?) */
--    if (lzx->reset_interval && ((lzx->frame % lzx->reset_interval) == 0)) {
--      if (lzx->block_remaining) {
--        /* this is a file format error, but we need to extract what we can and scan that */
--        cli_dbgmsg("lzx_decompress: %d bytes remaining at reset interval\n", lzx->block_remaining);
--        if (!warned) {
--          cli_dbgmsg("Detected an invalid reset interval during decompression.\n");
--          warned++;
--        }
--        if (!lzx->header_read) {
--          /* cannot continue if no header at all */
--          return lzx->error = CL_EFORMAT;
--        }
--      } else {
--        /* re-read the intel header and reset the huffman lengths */
--        lzx_reset_state(lzx);
--      }
--    }
--
--    /* read header if necessary */
--    if (!lzx->header_read) {
--      /* read 1 bit. if bit=0, intel filesize = 0.
--       * if bit=1, read intel filesize (32 bits) */
--      j = 0; LZX_READ_BITS(i, 1); if (i) { LZX_READ_BITS(i, 16); LZX_READ_BITS(j, 16); }
--      lzx->intel_filesize = (i << 16) | j;
--      lzx->header_read = 1;
--    } 
--
--    /* calculate size of frame: all frames are 32k except the final frame
--     * which is 32kb or less. this can only be calculated when lzx->length
--     * has been filled in. */
--    frame_size = LZX_FRAME_SIZE;
--    if (lzx->length && (lzx->length - lzx->offset) < (off_t)frame_size) {
--      frame_size = lzx->length - lzx->offset;
--    }
--
--    /* decode until one more frame is available */
--    bytes_todo = lzx->frame_posn + frame_size - window_posn;
--    while (bytes_todo > 0) {
--      /* initialise new block, if one is needed */
--      if (lzx->block_remaining == 0) {
--	/* realign if previous block was an odd-sized UNCOMPRESSED block */
--	if ((lzx->block_type == LZX_BLOCKTYPE_UNCOMPRESSED) &&
--	    (lzx->block_length & 1))
--	{
--	  if (i_ptr == i_end) {
--	    if (lzx_read_input(lzx)) return lzx->error;
--	    i_ptr = lzx->i_ptr;
--	    i_end = lzx->i_end;
--	  }
--	  i_ptr++;
--	}
--
--	/* read block type (3 bits) and block length (24 bits) */
--	LZX_READ_BITS(lzx->block_type, 3);
--	LZX_READ_BITS(i, 16); LZX_READ_BITS(j, 8);
--	lzx->block_remaining = lzx->block_length = (i << 8) | j;
--
--	/* read individual block headers */
--	switch (lzx->block_type) {
--	case LZX_BLOCKTYPE_ALIGNED:
--	  /* read lengths of and build aligned huffman decoding tree */
--	  for (i = 0; i < 8; i++) { LZX_READ_BITS(j, 3); lzx->ALIGNED_len[i] = j; }
--	  LZX_BUILD_TABLE(ALIGNED);
--	  /* no break -- rest of aligned header is same as verbatim */
--	case LZX_BLOCKTYPE_VERBATIM:
--	  /* read lengths of and build main huffman decoding tree */
--	  LZX_READ_LENGTHS(MAINTREE, 0, 256);
--	  LZX_READ_LENGTHS(MAINTREE, 256, LZX_NUM_CHARS + (lzx->posn_slots << 3));
--	  LZX_BUILD_TABLE(MAINTREE);
--	  /* if the literal 0xE8 is anywhere in the block... */
--	  if (lzx->MAINTREE_len[0xE8] != 0) lzx->intel_started = 1;
--	  /* read lengths of and build lengths huffman decoding tree */
--	  LZX_READ_LENGTHS(LENGTH, 0, LZX_NUM_SECONDARY_LENGTHS);
--	  LZX_BUILD_TABLE(LENGTH);
--	  break;
--
--	case LZX_BLOCKTYPE_UNCOMPRESSED:
--	  /* because we can't assume otherwise */
--	  lzx->intel_started = 1;
--
--	  /* read 1-16 (not 0-15) bits to align to bytes */
--	  LZX_ENSURE_BITS(16);
--	  if (bits_left > 16) i_ptr -= 2;
--	  bits_left = 0; bit_buffer = 0;
--
--	  /* read 12 bytes of stored R0 / R1 / R2 values */
--	  for (rundest = &buf[0], i = 0; i < 12; i++) {
--	    if (i_ptr == i_end) {
--	      if (lzx_read_input(lzx)) return lzx->error;
--	      i_ptr = lzx->i_ptr;
--	      i_end = lzx->i_end;
--	    }
--	    *rundest++ = *i_ptr++;
--	  }
--	  R0 = buf[0] | (buf[1] << 8) | (buf[2]  << 16) | (buf[3]  << 24);
--	  R1 = buf[4] | (buf[5] << 8) | (buf[6]  << 16) | (buf[7]  << 24);
--	  R2 = buf[8] | (buf[9] << 8) | (buf[10] << 16) | (buf[11] << 24);
--	  break;
--
--	default:
--	  cli_dbgmsg("lzx_decompress: bad block type (0x%x)\n", lzx->block_type);
--	  return lzx->error = CL_EFORMAT;
--	}
--      }
--
--      /* decode more of the block:
--       * run = min(what's available, what's needed) */
--      this_run = lzx->block_remaining;
--      if (this_run > bytes_todo) this_run = bytes_todo;
--
--      /* assume we decode exactly this_run bytes, for now */
--      bytes_todo           -= this_run;
--      lzx->block_remaining -= this_run;
--
--      /* decode at least this_run bytes */
--      switch (lzx->block_type) {
--      case LZX_BLOCKTYPE_VERBATIM:
--	while (this_run > 0) {
--	  LZX_READ_HUFFSYM(MAINTREE, main_element);
--	  if (main_element < LZX_NUM_CHARS) {
--	    /* literal: 0 to LZX_NUM_CHARS-1 */
--	    window[window_posn++] = main_element;
--	    this_run--;
--	  }
--	  else {
--	    /* match: LZX_NUM_CHARS + ((slot<<3) | length_header (3 bits)) */
--	    main_element -= LZX_NUM_CHARS;
--
--	    /* get match length */
--	    match_length = main_element & LZX_NUM_PRIMARY_LENGTHS;
--	    if (match_length == LZX_NUM_PRIMARY_LENGTHS) {
--	      LZX_READ_HUFFSYM(LENGTH, length_footer);
--	      match_length += length_footer;
--	    }
--	    match_length += LZX_MIN_MATCH;
--	  
--	    /* get match offset */
--	    switch ((match_offset = (main_element >> 3))) {
--	    case 0: match_offset = R0;                                  break;
--	    case 1: match_offset = R1; R1=R0;        R0 = match_offset; break;
--	    case 2: match_offset = R2; R2=R0;        R0 = match_offset; break;
--	    case 3: match_offset = 1;  R2=R1; R1=R0; R0 = match_offset; break;
--	    default:
--	      extra = lzx->extra_bits[match_offset];
--	      LZX_READ_BITS(verbatim_bits, extra);
--	      match_offset = lzx->position_base[match_offset] - 2 + verbatim_bits;
--	      R2 = R1; R1 = R0; R0 = match_offset;
--	    }
--
--	    if ((window_posn + match_length) > lzx->window_size) {
--	      cli_dbgmsg("lzx_decompress: match ran over window wrap\n");
--	      return lzx->error = CL_EFORMAT;
--	    }
--	    
--	    /* copy match */
--	    rundest = &window[window_posn];
--	    i = match_length;
--	    /* does match offset wrap the window? */
--	    if (match_offset > window_posn) {
--	      /* j = length from match offset to end of window */
--	      j = match_offset - window_posn;
--	      if (j > (int) lzx->window_size) {
--	        cli_dbgmsg("lzx_decompress: match offset beyond window boundaries\n");
--		return lzx->error = CL_EFORMAT;
--	      }
--	      runsrc = &window[lzx->window_size - j];
--	      if (j < i) {
--		/* if match goes over the window edge, do two copy runs */
--		i -= j; while (j-- > 0) *rundest++ = *runsrc++;
--		runsrc = window;
--	      }
--	      while (i-- > 0) *rundest++ = *runsrc++;
--	    }
--	    else {
--	      runsrc = rundest - match_offset;
--	      if(i > (int) (lzx->window_size - window_posn))
--	        i = lzx->window_size - window_posn;
--	      while (i-- > 0) *rundest++ = *runsrc++;
--	    }
--
--	    this_run    -= match_length;
--	    window_posn += match_length;
--	  }
--	} /* while (this_run > 0) */
--	break;
--
--      case LZX_BLOCKTYPE_ALIGNED:
--	while (this_run > 0) {
--	  LZX_READ_HUFFSYM(MAINTREE, main_element);
--	  if (main_element < LZX_NUM_CHARS) {
--	    /* literal: 0 to LZX_NUM_CHARS-1 */
--	    window[window_posn++] = main_element;
--	    this_run--;
--	  }
--	  else {
--	    /* match: LZX_NUM_CHARS + ((slot<<3) | length_header (3 bits)) */
--	    main_element -= LZX_NUM_CHARS;
--
--	    /* get match length */
--	    match_length = main_element & LZX_NUM_PRIMARY_LENGTHS;
--	    if (match_length == LZX_NUM_PRIMARY_LENGTHS) {
--	      LZX_READ_HUFFSYM(LENGTH, length_footer);
--	      match_length += length_footer;
--	    }
--	    match_length += LZX_MIN_MATCH;
--
--	    /* get match offset */
--	    switch ((match_offset = (main_element >> 3))) {
--	    case 0: match_offset = R0;                             break;
--	    case 1: match_offset = R1; R1 = R0; R0 = match_offset; break;
--	    case 2: match_offset = R2; R2 = R0; R0 = match_offset; break;
--	    default:
--	      extra = lzx->extra_bits[match_offset];
--	      match_offset = lzx->position_base[match_offset] - 2;
--	      if (extra > 3) {
--		/* verbatim and aligned bits */
--		extra -= 3;
--		LZX_READ_BITS(verbatim_bits, extra);
--		match_offset += (verbatim_bits << 3);
--		LZX_READ_HUFFSYM(ALIGNED, aligned_bits);
--		match_offset += aligned_bits;
--	      }
--	      else if (extra == 3) {
--		/* aligned bits only */
--		LZX_READ_HUFFSYM(ALIGNED, aligned_bits);
--		match_offset += aligned_bits;
--	      }
--	      else if (extra > 0) { /* extra==1, extra==2 */
--		/* verbatim bits only */
--		LZX_READ_BITS(verbatim_bits, extra);
--		match_offset += verbatim_bits;
--	      }
--	      else /* extra == 0 */ {
--		/* ??? not defined in LZX specification! */
--		match_offset = 1;
--	      }
--	      /* update repeated offset LRU queue */
--	      R2 = R1; R1 = R0; R0 = match_offset;
--	    }
--
--	    if ((window_posn + match_length) > lzx->window_size) {
--	      cli_dbgmsg("lzx_decompress: match ran over window wrap\n");
--	      return lzx->error = CL_EFORMAT;
--	    }
--
--	    /* copy match */
--	    rundest = &window[window_posn];
--	    i = match_length;
--	    /* does match offset wrap the window? */
--	    if (match_offset > window_posn) {
--	      /* j = length from match offset to end of window */
--	      j = match_offset - window_posn;
--	      if (j > (int) lzx->window_size) {
--	        cli_dbgmsg("lzx_decompress: match offset beyond window boundaries\n");
--		return lzx->error = CL_EFORMAT;
--	      }
--	      runsrc = &window[lzx->window_size - j];
--	      if (j < i) {
--		/* if match goes over the window edge, do two copy runs */
--		i -= j; while (j-- > 0) *rundest++ = *runsrc++;
--		runsrc = window;
--	      }
--	      while (i-- > 0) *rundest++ = *runsrc++;
--	    }
--	    else {
--	      runsrc = rundest - match_offset;
--	      while (i-- > 0) *rundest++ = *runsrc++;
--	    }
--
--	    this_run    -= match_length;
--	    window_posn += match_length;
--	  }
--	} /* while (this_run > 0) */
--	break;
--
--      case LZX_BLOCKTYPE_UNCOMPRESSED:
--	/* as this_run is limited not to wrap a frame, this also means it
--	 * won't wrap the window (as the window is a multiple of 32k) */
--	rundest = &window[window_posn];
--	window_posn += this_run;
--	while (this_run > 0) {
--	  if ((i = i_end - i_ptr)) {
--	    if (i > this_run) i = this_run;
--	    memcpy(rundest, i_ptr, (size_t) i);
--	    rundest  += i;
--	    i_ptr    += i;
--	    this_run -= i;
--	  }
--	  else {
--	    if (lzx_read_input(lzx)) return lzx->error;
--	    i_ptr = lzx->i_ptr;
--	    i_end = lzx->i_end;
--	  }
--	}
--	break;
--
--      default:
--	return lzx->error = CL_EFORMAT; /* might as well */
--      }
--
--      /* did the final match overrun our desired this_run length? */
--      if (this_run < 0) {
--	if ((unsigned int)(-this_run) > lzx->block_remaining) {
--	  cli_dbgmsg("lzx_decompress: overrun went past end of block by %d (%d remaining)\n", -this_run, lzx->block_remaining);
--	  return lzx->error = CL_EFORMAT;
--	}
--	lzx->block_remaining -= -this_run;
--      }
--    } /* while (bytes_todo > 0) */
--
--    /* streams don't extend over frame boundaries */
--    if ((window_posn - lzx->frame_posn) != frame_size) {
--      cli_dbgmsg("lzx_decompress: decode beyond output frame limits! %d != %d\n", window_posn - lzx->frame_posn, frame_size);
--      return lzx->error = CL_EFORMAT;
--    }
--
--    /* re-align input bitstream */
--    if (bits_left > 0) LZX_ENSURE_BITS(16);
--    if (bits_left & 15) LZX_REMOVE_BITS(bits_left & 15);
--
--    /* check that we've used all of the previous frame first */
--    if (lzx->o_ptr != lzx->o_end) {
--      cli_dbgmsg("lzx_decompress: %ld avail bytes, new %d frame\n", lzx->o_end-lzx->o_ptr, frame_size);
--      return lzx->error = CL_EFORMAT;
--    }
--
--    /* does this intel block _really_ need decoding? */
--    if (lzx->intel_started && lzx->intel_filesize &&
--	(lzx->frame <= 32768) && (frame_size > 10))
--    {
--      unsigned char *data    = &lzx->e8_buf[0];
--      unsigned char *dataend = &lzx->e8_buf[frame_size - 10];
--      signed int curpos      = lzx->intel_curpos;
--      signed int filesize    = lzx->intel_filesize;
--      signed int abs_off, rel_off;
--
--      /* copy e8 block to the e8 buffer and tweak if needed */
--      lzx->o_ptr = data;
--      memcpy(data, &lzx->window[lzx->frame_posn], frame_size);
--
--      while (data < dataend) {
--	if (*data++ != 0xE8) { curpos++; continue; }
--	abs_off = data[0] | (data[1]<<8) | (data[2]<<16) | (data[3]<<24);
--	if ((abs_off >= -curpos) && (abs_off < filesize)) {
--	  rel_off = (abs_off >= 0) ? abs_off - curpos : abs_off + filesize;
--	  data[0] = (unsigned char) rel_off;
--	  data[1] = (unsigned char) (rel_off >> 8);
--	  data[2] = (unsigned char) (rel_off >> 16);
--	  data[3] = (unsigned char) (rel_off >> 24);
--	}
--	data += 4;
--	curpos += 5;
--      }
--      lzx->intel_curpos += frame_size;
--    }
--    else {
--      lzx->o_ptr = &lzx->window[lzx->frame_posn];
--      if (lzx->intel_filesize) lzx->intel_curpos += frame_size;
--    }
--    lzx->o_end = &lzx->o_ptr[frame_size];
--
--    /* write a frame */
--    i = (out_bytes < (off_t)frame_size) ? (unsigned int)out_bytes : frame_size;
--    if (lzx->wflag && (ret = mspack_write(lzx->ofd, lzx->o_ptr, i, lzx->file)) != CL_SUCCESS) {
--      return lzx->error = ret;
--    }
--    lzx->o_ptr  += i;
--    lzx->offset += i;
--    out_bytes   -= i;
--
--    /* advance frame start position */
--    lzx->frame_posn += frame_size;
--    lzx->frame++;
--
--    /* wrap window / frame position pointers */
--    if (window_posn == lzx->window_size)     window_posn = 0;
--    if (lzx->frame_posn == lzx->window_size) lzx->frame_posn = 0;
--
--  } /* while (lzx->frame < end_frame) */
--
--  if (out_bytes)
--    cli_dbgmsg("lzx_decompress: bytes left to output\n");
--
--  /* store local state */
--  LZX_STORE_BITS;
--  lzx->window_posn = window_posn;
--  lzx->R0 = R0;
--  lzx->R1 = R1;
--  lzx->R2 = R2;
--
--  return CL_SUCCESS;
--}
--
--void lzx_free(struct lzx_stream *lzx) {
--  if (lzx) {
--    free(lzx->inbuf);
--    free(lzx->window);
--    free(lzx);
--  }
--}
--
--/***************************************************************************
-- *			 Quantum decompression implementation 
-- ***************************************************************************
-- * The Quantum method was created by David Stafford, adapted by Microsoft
-- * Corporation.
-- *
-- * This decompressor is based on an implementation by Matthew Russotto, used
-- * with permission.
-- *
-- * This decompressor was researched and implemented by Matthew Russotto. It
-- * has since been tidied up by Stuart Caie. More information can be found at
-- * http://www.speakeasy.org/~russotto/quantumcomp.html
-- */
--
--/* Quantum decompressor bitstream reading macros
-- *
-- * QTM_STORE_BITS        stores bitstream state in qtm_stream structure
-- * QTM_RESTORE_BITS      restores bitstream state from qtm_stream structure
-- * QTM_READ_BITS(var,n)  takes N bits from the buffer and puts them in var
-- * QTM_FILL_BUFFER       if there is room for another 16 bits, reads another
-- *                   16 bits from the input stream.
-- * QTM_PEEK_BITS(n)      extracts without removing N bits from the bit buffer
-- * QTM_REMOVE_BITS(n)    removes N bits from the bit buffer
-- *
-- * These bit access routines work by using the area beyond the MSB and the
-- * LSB as a free source of zeroes. This avoids having to mask any bits.
-- * So we have to know the bit width of the bitbuffer variable.
-- */
--
--#define QTM_BITBUF_WIDTH (sizeof(unsigned int) * CHAR_BIT)
--
--#define QTM_STORE_BITS do {                                                 \
--  qtm->i_ptr      = i_ptr;                                              \
--  qtm->i_end      = i_end;                                              \
--  qtm->bit_buffer = bit_buffer;                                         \
--  qtm->bits_left  = bits_left;                                          \
--} while (0)
--
--#define QTM_RESTORE_BITS do {                                               \
--  i_ptr      = qtm->i_ptr;                                              \
--  i_end      = qtm->i_end;                                              \
--  bit_buffer = qtm->bit_buffer;                                         \
--  bits_left  = qtm->bits_left;                                          \
--} while (0)
--
--/* adds 16 bits to bit buffer, if there's space for the new bits */
--#define QTM_FILL_BUFFER do {                                                \
--  if (bits_left <= (QTM_BITBUF_WIDTH - 16)) {                               \
--    if (i_ptr >= i_end) {                                               \
--      if (qtm_read_input(qtm)) return qtm->error;                      \
--      i_ptr = qtm->i_ptr;                                               \
--      i_end = qtm->i_end;                                               \
--    }                                                                   \
--    bit_buffer |= ((i_ptr[0] << 8) | i_ptr[1])                          \
--                  << (QTM_BITBUF_WIDTH - 16 - bits_left);                   \
--    bits_left  += 16;                                                   \
--    i_ptr      += 2;                                                    \
--  }                                                                     \
--} while (0)
--
--#define QTM_PEEK_BITS(n)   (bit_buffer >> (QTM_BITBUF_WIDTH - (n)))
--#define QTM_REMOVE_BITS(n) ((bit_buffer <<= (n)), (bits_left -= (n)))
--
--#define QTM_READ_BITS(val, bits) do {                                       \
--  (val) = 0;                                                            \
--  for (bits_needed = (bits); bits_needed > 0; bits_needed -= bit_run) { \
--    QTM_FILL_BUFFER;                                                        \
--    bit_run = (bits_left < bits_needed) ? bits_left : bits_needed;      \
--    (val) = ((val) << bit_run) | QTM_PEEK_BITS(bit_run);                    \
--    QTM_REMOVE_BITS(bit_run);                                               \
--  }                                                                     \
--} while (0)
--
--static int qtm_read_input(struct qtm_stream *qtm) {
--  int nread = qtm->read_cb(qtm->file, &qtm->inbuf[0], (int)qtm->inbuf_size);
--  if (nread < 0) {
--    if (qtm->file->error == CL_BREAK)
--      return qtm->error = CL_BREAK;
--    else
--      return qtm->error = CL_EFORMAT;
--  }
--
--  if (nread == 0) {
--    if (qtm->input_end) {
--      cli_dbgmsg("qtm_read_input: out of input bytes\n");
--      return qtm->error = CL_EREAD;
--    }
--    else {
--      nread = 2;
--      qtm->inbuf[0] = qtm->inbuf[1] = 0;
--      qtm->input_end = 1;
--    }
--  }
--
--  qtm->i_ptr = &qtm->inbuf[0];
--  qtm->i_end = &qtm->inbuf[nread];
--  return CL_SUCCESS;
--}
--
--/* Arithmetic decoder:
-- * 
-- * QTM_GET_SYMBOL(model, var) fetches the next symbol from the stated model
-- * and puts it in var.
-- *
-- * If necessary, qtm_update_model() is called.
-- */
--#define QTM_GET_SYMBOL(model, var) do {                                     \
--  range = ((H - L) & 0xFFFF) + 1;                                       \
--  symf = ((((C - L + 1) * model.syms[0].cumfreq)-1) / range) & 0xFFFF;  \
--                                                                        \
--  for (i = 1; i < model.entries; i++) {                                 \
--    if (model.syms[i].cumfreq <= symf) break;                           \
--  }                                                                     \
--  (var) = model.syms[i-1].sym;                                          \
--                                                                        \
--  range = (H - L) + 1;                                                  \
--  symf = model.syms[0].cumfreq;                                         \
--  H = L + ((model.syms[i-1].cumfreq * range) / symf) - 1;               \
--  L = L + ((model.syms[i].cumfreq   * range) / symf);                   \
--                                                                        \
--  do { model.syms[--i].cumfreq += 8; } while (i > 0);                   \
--  if (model.syms[0].cumfreq > 3800) qtm_update_model(&model);          \
--                                                                        \
--  while (1) {                                                           \
--    if ((L & 0x8000) != (H & 0x8000)) {                                 \
--      if ((L & 0x4000) && !(H & 0x4000)) {                              \
--        /* underflow case */                                            \
--        C ^= 0x4000; L &= 0x3FFF; H |= 0x4000;                          \
--      }                                                                 \
--      else break;                                                       \
--    }                                                                   \
--    L <<= 1; H = (H << 1) | 1;                                          \
--    QTM_FILL_BUFFER;                                                        \
--    C  = (C << 1) | QTM_PEEK_BITS(1);                                       \
--    QTM_REMOVE_BITS(1);                                                     \
--  }                                                                     \
--} while (0)
--
--static void qtm_update_model(struct qtm_model *model) {
--  struct qtm_modelsym tmp;
--  int i, j;
--
--  if (--model->shiftsleft) {
--    for (i = model->entries - 1; i >= 0; i--) {
--      /* -1, not -2; the 0 entry saves this */
--      model->syms[i].cumfreq >>= 1;
--      if (model->syms[i].cumfreq <= model->syms[i+1].cumfreq) {
--	model->syms[i].cumfreq = model->syms[i+1].cumfreq + 1;
--      }
--    }
--  }
--  else {
--    model->shiftsleft = 50;
--    for (i = 0; i < model->entries; i++) {
--      /* no -1, want to include the 0 entry */
--      /* this converts cumfreqs into frequencies, then shifts right */
--      model->syms[i].cumfreq -= model->syms[i+1].cumfreq;
--      model->syms[i].cumfreq++; /* avoid losing things entirely */
--      model->syms[i].cumfreq >>= 1;
--    }
--
--    /* now sort by frequencies, decreasing order -- this must be an
--     * inplace selection sort, or a sort with the same (in)stability
--     * characteristics */
--    for (i = 0; i < model->entries - 1; i++) {
--      for (j = i + 1; j < model->entries; j++) {
--	if (model->syms[i].cumfreq < model->syms[j].cumfreq) {
--	  tmp = model->syms[i];
--	  model->syms[i] = model->syms[j];
--	  model->syms[j] = tmp;
--	}
--      }
--    }
--
--    /* then convert frequencies back to cumfreq */
--    for (i = model->entries - 1; i >= 0; i--) {
--      model->syms[i].cumfreq += model->syms[i+1].cumfreq;
--    }
--  }
--}
--
--/* Initialises a model to decode symbols from [start] to [start]+[len]-1 */
--static void qtm_init_model(struct qtm_model *model,
--			    struct qtm_modelsym *syms, int start, int len)
--{
--  int i;
--
--  model->shiftsleft = 4;
--  model->entries    = len;
--  model->syms       = syms;
--
--  for (i = 0; i <= len; i++) {
--    syms[i].sym     = start + i; /* actual symbol */
--    syms[i].cumfreq = len - i;   /* current frequency of that symbol */
--  }
--}
--
--
--/*-------- main Quantum code --------*/
--
--struct qtm_stream *qtm_init(int ofd,
--			      int window_bits, int input_buffer_size,
--			      struct cab_file *file,
--			      int (*read_cb)(struct cab_file *, unsigned char *, int))
--{
--  unsigned int window_size = 1 << window_bits;
--  struct qtm_stream *qtm;
--  unsigned offset;
--  int i;
--
--  /* Quantum supports window sizes of 2^10 (1Kb) through 2^21 (2Mb) */
--
--  /* tk: temporary fix: only process 32KB+ window sizes */
--  if (window_bits < 15 || window_bits > 21) return NULL;
--
--  input_buffer_size = (input_buffer_size + 1) & -2;
--  if (input_buffer_size < 2) return NULL;
--
--  /* allocate decompression state */
--  if (!(qtm = cli_calloc(1, sizeof(struct qtm_stream)))) {
--    return NULL;
--  }
--
--  for (i = 0, offset = 0; i < 42; i++) {
--    qtm->position_base[i] = offset;
--    qtm->extra_bits[i] = ((i < 2) ? 0 : (i - 2)) >> 1;
--    offset += 1 << qtm->extra_bits[i];
--  }
--
--  for (i = 0, offset = 0; i < 26; i++) {
--    qtm->length_base[i] = offset;
--    qtm->length_extra[i] = (i < 2 ? 0 : i - 2) >> 2;
--    offset += 1 << qtm->length_extra[i];
--  }
--  qtm->length_base[26] = 254; qtm->length_extra[26] = 0;
--
--  /* allocate decompression window and input buffer */
--  qtm->window = cli_malloc((size_t) window_size);
--  if (!qtm->window) {
--      cli_errmsg("qtm_init: Unable to allocate decompression window\n");
--    free(qtm);
--    return NULL;
--  }
--
--  qtm->inbuf  = cli_malloc((size_t) input_buffer_size);
--  if (!qtm->inbuf) {
--      cli_errmsg("qtm_init: Unable to allocate input buffer\n");
--    free(qtm->window);
--    free(qtm);
--    return NULL;
--  }
--
--  /* initialise decompression state */
--  qtm->ofd	   = ofd;
--  qtm->wflag	   = 1;
--  qtm->inbuf_size  = input_buffer_size;
--  qtm->window_size = window_size;
--  qtm->window_posn = 0;
--  qtm->frame_start = 0;
--  qtm->header_read = 0;
--  qtm->error       = CL_SUCCESS;
--
--  qtm->i_ptr = qtm->i_end = &qtm->inbuf[0];
--  qtm->o_ptr = qtm->o_end = &qtm->window[0];
--  qtm->bits_left = 0;
--  qtm->bit_buffer = 0;
--
--  /* initialise arithmetic coding models
--   * - model 4    depends on window size, ranges from 20 to 24
--   * - model 5    depends on window size, ranges from 20 to 36
--   * - model 6pos depends on window size, ranges from 20 to 42
--   */
--  i = window_bits * 2;
--  qtm_init_model(&qtm->model0,    &qtm->m0sym[0],   0, 64);
--  qtm_init_model(&qtm->model1,    &qtm->m1sym[0],  64, 64);
--  qtm_init_model(&qtm->model2,    &qtm->m2sym[0], 128, 64);
--  qtm_init_model(&qtm->model3,    &qtm->m3sym[0], 192, 64);
--  qtm_init_model(&qtm->model4,    &qtm->m4sym[0],   0, (i > 24) ? 24 : i);
--  qtm_init_model(&qtm->model5,    &qtm->m5sym[0],   0, (i > 36) ? 36 : i);
--  qtm_init_model(&qtm->model6,    &qtm->m6sym[0],   0, i);
--  qtm_init_model(&qtm->model6len, &qtm->m6lsym[0],  0, 27);
--  qtm_init_model(&qtm->model7,    &qtm->m7sym[0],   0, 7);
--
--  qtm->file = file;
--  qtm->read_cb = read_cb;
--
--  /* all ok */
--  return qtm;
--}
--
--int qtm_decompress(struct qtm_stream *qtm, uint32_t out_bytes) {
--  unsigned int frame_start, frame_end, window_posn, match_offset, range;
--  unsigned char *window, *i_ptr, *i_end, *runsrc, *rundest;
--  int i, j, selector, extra, sym, match_length, ret;
--  unsigned short H, L, C, symf;
--
--  register unsigned int bit_buffer;
--  register unsigned char bits_left;
--  unsigned char bits_needed, bit_run;
--
--  /* easy answers */
--  if (!qtm) return CL_ENULLARG;
--  if (qtm->error) return qtm->error;
--
--  /* flush out any stored-up bytes before we begin */
--  i = qtm->o_end - qtm->o_ptr;
--  if (((off_t) i > out_bytes) && ((int) out_bytes >= 0)) i = (int) out_bytes;
--  if (i) {
--    if (qtm->wflag && (ret = mspack_write(qtm->ofd, qtm->o_ptr, i, qtm->file)) != CL_SUCCESS) {
--      return qtm->error = ret;
--    }
--    qtm->o_ptr  += i;
--    out_bytes   -= i;
--  }
--  if (out_bytes == 0) return CL_SUCCESS;
--
--  /* restore local state */
--  QTM_RESTORE_BITS;
--  window = qtm->window;
--  window_posn = qtm->window_posn;
--  frame_start = qtm->frame_start;
--  H = qtm->H;
--  L = qtm->L;
--  C = qtm->C;
--
--  /* while we do not have enough decoded bytes in reserve: */
--  while ((qtm->o_end - qtm->o_ptr) < out_bytes) {
--
--    /* read header if necessary. Initialises H, L and C */
--    if (!qtm->header_read) {
--      H = 0xFFFF; L = 0; QTM_READ_BITS(C, 16);
--      qtm->header_read = 1;
--    }
--
--    /* decode more, at most up to to frame boundary */
--    frame_end = window_posn + (out_bytes - (qtm->o_end - qtm->o_ptr));
--    if ((frame_start + QTM_FRAME_SIZE) < frame_end) {
--      frame_end = frame_start + QTM_FRAME_SIZE;
--    }
--    if (frame_end < window_posn) {
--	cli_dbgmsg("qtm_decompress: window position beyond end of frame\n");
--	return qtm->error = CL_EFORMAT;
--    }
--
--    while (window_posn < frame_end) {
--      QTM_GET_SYMBOL(qtm->model7, selector);
--      if (selector < 4) {
--	struct qtm_model *mdl = (selector == 0) ? &qtm->model0 :
--	                        ((selector == 1) ? &qtm->model1 :
--				((selector == 2) ? &qtm->model2 :
--                                                   &qtm->model3));
--	QTM_GET_SYMBOL((*mdl), sym);
--	window[window_posn++] = sym;
--      }
--      else {
--	switch (selector) {
--	case 4: /* selector 4 = fixed length match (3 bytes) */
--	  QTM_GET_SYMBOL(qtm->model4, sym);
--	  QTM_READ_BITS(extra, qtm->extra_bits[sym]);
--	  match_offset = qtm->position_base[sym] + extra + 1;
--	  match_length = 3;
--	  break;
--
--	case 5: /* selector 5 = fixed length match (4 bytes) */
--	  QTM_GET_SYMBOL(qtm->model5, sym);
--	  QTM_READ_BITS(extra, qtm->extra_bits[sym]);
--	  match_offset = qtm->position_base[sym] + extra + 1;
--	  match_length = 4;
--	  break;
--
--	case 6: /* selector 6 = variable length match */
--	  QTM_GET_SYMBOL(qtm->model6len, sym);
--	  QTM_READ_BITS(extra, qtm->length_extra[sym]);
--	  match_length = qtm->length_base[sym] + extra + 5;
--
--	  QTM_GET_SYMBOL(qtm->model6, sym);
--	  QTM_READ_BITS(extra, qtm->extra_bits[sym]);
--	  match_offset = qtm->position_base[sym] + extra + 1;
--	  break;
--
--	default:
--	  /* should be impossible, model7 can only return 0-6 */
--	  return qtm->error = CL_EFORMAT;
--	}
--
--	if (window_posn + match_length > qtm->window_size) {
--	  cli_dbgmsg("qtm_decompress: match ran over window wrap\n");
--	  return qtm->error = CL_EFORMAT;
--	}
--
--	rundest = &window[window_posn];
--	i = match_length;
--	/* does match offset wrap the window? */
--	if (match_offset > window_posn) {
--	  /* j = length from match offset to end of window */
--	  j = match_offset - window_posn;
--	  if (j > (int) qtm->window_size) {
--	    cli_dbgmsg("qtm_decompress: match offset beyond window boundaries\n");
--	    return qtm->error = CL_EFORMAT;
--	  }
--	  runsrc = &window[qtm->window_size - j];
--	  if (j < i) {
--	    /* if match goes over the window edge, do two copy runs */
--	    i -= j; while (j-- > 0) *rundest++ = *runsrc++;
--	    runsrc = window;
--	  }
--	  while (i-- > 0) *rundest++ = *runsrc++;
--	}
--	else {
--	  runsrc = rundest - match_offset;
--	  if(i > (int) (qtm->window_size - window_posn))
--	    i = qtm->window_size - window_posn;
--	  while (i-- > 0) *rundest++ = *runsrc++;
--	}
--	window_posn += match_length;
--      }
--    } /* while (window_posn < frame_end) */
--
--    qtm->o_end = &window[window_posn];
--
--    /* another frame completed? */
--    if ((window_posn - frame_start) >= QTM_FRAME_SIZE) {
--      if ((window_posn - frame_start) != QTM_FRAME_SIZE) {
--	cli_dbgmsg("qtm_decompress: overshot frame alignment\n");
--	return qtm->error = CL_EFORMAT;
--      }
--
--      /* re-align input */
--      if (bits_left & 7) QTM_REMOVE_BITS(bits_left & 7);
--      do { QTM_READ_BITS(i, 8); } while (i != 0xFF);
--      qtm->header_read = 0;
--
--      /* window wrap? */
--      if (window_posn == qtm->window_size) {
--	/* flush all currently stored data */
--	i = (qtm->o_end - qtm->o_ptr);
--	if(i <= 0)
--	    break;
--	if (qtm->wflag && (ret = mspack_write(qtm->ofd, qtm->o_ptr, i, qtm->file)) != CL_SUCCESS) {
--	  return qtm->error = ret;
--	}
--	out_bytes -= i;
--	qtm->o_ptr = &window[0];
--	qtm->o_end = &window[0];
--	window_posn = 0;
--      }
--
--      frame_start = window_posn;
--    }
--
--  } /* while (more bytes needed) */
--
--  if (out_bytes > 0) {
--    i = (int) out_bytes;
--    if (qtm->wflag && (ret = mspack_write(qtm->ofd, qtm->o_ptr, i, qtm->file)) != CL_SUCCESS) {
--      return qtm->error = ret;
--    }
--    qtm->o_ptr += i;
--  }
--
--  /* store local state */
--  QTM_STORE_BITS;
--  qtm->window_posn = window_posn;
--  qtm->frame_start = frame_start;
--  qtm->H = H;
--  qtm->L = L;
--  qtm->C = C;
--
--  return CL_SUCCESS;
--}
--
--void qtm_free(struct qtm_stream *qtm) {
--  if (qtm) {
--    free(qtm->window);
--    free(qtm->inbuf);
--    free(qtm);
--  }
--}
-diff --git a/libclamav/mspack.h b/libclamav/mspack.h
-deleted file mode 100644
-index 0ed472caeea3..000000000000
---- a/libclamav/mspack.h
-+++ /dev/null
-@@ -1,294 +0,0 @@
--/*
-- * This file includes code from libmspack adapted for libclamav by
-- * tkojm at clamav.net
-- *
-- * Copyright (C) 2003-2004 Stuart Caie
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1 as published by the Free Software Foundation.
-- *
-- * 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
-- * Lesser General Public License for more details.
-- * 
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-- * USA
-- */
--
--#ifndef __MSPACK_H
--#define __MSPACK_H
--
--#include <sys/types.h>
--#include "cab.h"
--
--
--/***************************************************************************
-- *			 MS-ZIP decompression definitions                  *
-- ***************************************************************************/
--
--#define MSZIP_FRAME_SIZE          (32768) /* size of LZ history window */
--#define MSZIP_MAX_HUFFBITS        (16)    /* maximum huffman code length */
--#define MSZIP_LITERAL_MAXSYMBOLS  (288)   /* literal/length huffman tree */
--#define MSZIP_LITERAL_TABLEBITS   (9)
--#define MSZIP_DISTANCE_MAXSYMBOLS (32)    /* distance huffman tree */
--#define MSZIP_DISTANCE_TABLEBITS  (6)
--
--/* if there are less direct lookup entries than symbols, the longer
-- * code pointers will be <= maxsymbols. This must not happen, or we
-- * will decode entries badly */
--#if (1 << MSZIP_LITERAL_TABLEBITS) < (MSZIP_LITERAL_MAXSYMBOLS * 2)
--# define MSZIP_LITERAL_TABLESIZE (MSZIP_LITERAL_MAXSYMBOLS * 4)
--#else
--# define MSZIP_LITERAL_TABLESIZE ((1 << MSZIP_LITERAL_TABLEBITS) + \
--				  (MSZIP_LITERAL_MAXSYMBOLS * 2))
--#endif
--
--#if (1 << MSZIP_DISTANCE_TABLEBITS) < (MSZIP_DISTANCE_MAXSYMBOLS * 2)
--# define MSZIP_DISTANCE_TABLESIZE (MSZIP_DISTANCE_MAXSYMBOLS * 4)
--#else
--# define MSZIP_DISTANCE_TABLESIZE ((1 << MSZIP_DISTANCE_TABLEBITS) + \
--				  (MSZIP_DISTANCE_MAXSYMBOLS * 2))
--#endif
--
--struct mszip_stream {
--  int ofd;                  /* output file descriptor */
--
--  /* inflate() will call this whenever the window should be emptied. */
--  int (*flush_window)(struct mszip_stream *, unsigned int);
--
--  int error, repair_mode, bytes_output, input_end;
--
--  /* I/O buffering */
--  unsigned char *inbuf, *i_ptr, *i_end, *o_ptr, *o_end;
--  unsigned int bit_buffer, bits_left, inbuf_size;
--
--  unsigned int window_posn;             /* offset within window  */
--
--  /* huffman code lengths */
--  unsigned char  LITERAL_len[MSZIP_LITERAL_MAXSYMBOLS];
--  unsigned char  DISTANCE_len[MSZIP_DISTANCE_MAXSYMBOLS];
--
--  /* huffman decoding tables */
--  unsigned short LITERAL_table [MSZIP_LITERAL_TABLESIZE];
--  unsigned short DISTANCE_table[MSZIP_DISTANCE_TABLESIZE];
--
--  /* 32kb history window */
--  unsigned char window[MSZIP_FRAME_SIZE];
--
--  /* cabinet related stuff */
--  struct cab_file *file;
--  int (*read_cb)(struct cab_file *, unsigned char *, int);
--
--  unsigned char wflag;	    /* write flag */
--  unsigned int last;        /* prior end of content buffer */
--
--};
--
--struct mszip_stream *mszip_init(int ofd,
--				  int input_buffer_size,
--				  int repair_mode,
--				  struct cab_file *file,
--			          int (*read_cb)(struct cab_file *, unsigned char *, int));
--
--extern int mszip_decompress(struct mszip_stream *zip, uint32_t out_bytes);
--
--void mszip_free(struct mszip_stream *zip);
--
--
--/***************************************************************************
-- *			 Quantum decompression definitions                 *
-- ***************************************************************************/
--
--/* Quantum compression / decompression definitions */
--
--#define QTM_FRAME_SIZE (32768)
--
--struct qtm_modelsym {
--  unsigned short sym, cumfreq;
--};
--
--struct qtm_model {
--  int shiftsleft, entries;
--  struct qtm_modelsym *syms;
--};
--
--struct qtm_stream {
--  int ofd;                  /* output file descriptor */
--
--  unsigned char *window;          /* decoding window                         */
--  unsigned int window_size;       /* window size                             */
--  unsigned int window_posn;       /* decompression offset within window      */
--  unsigned int frame_start;       /* start of current frame within window    */
--
--  unsigned short H, L, C;         /* high/low/current: arith coding state    */
--  unsigned char header_read;      /* have we started decoding a new frame?   */
--  unsigned char wflag;	    /* write flag */
--
--  int error, input_end;
--
--  /* data tables */
--  unsigned int  position_base[42];
--  unsigned char extra_bits[42], length_base[27], length_extra[27];
--
--  /* four literal models, each representing 64 symbols
--   * model0 for literals from   0 to  63 (selector = 0)
--   * model1 for literals from  64 to 127 (selector = 1)
--   * model2 for literals from 128 to 191 (selector = 2)
--   * model3 for literals from 129 to 255 (selector = 3) */
--  struct qtm_model model0, model1, model2, model3;
--
--  /* three match models.
--   * model4 for match with fixed length of 3 bytes
--   * model5 for match with fixed length of 4 bytes
--   * model6 for variable length match, encoded with model6len model */
--  struct qtm_model model4, model5, model6, model6len;
--
--  /* selector model. 0-6 to say literal (0,1,2,3) or match (4,5,6) */
--  struct qtm_model model7;
--
--  /* symbol arrays for all models */
--  struct qtm_modelsym m0sym[64 + 1];
--  struct qtm_modelsym m1sym[64 + 1];
--  struct qtm_modelsym m2sym[64 + 1];
--  struct qtm_modelsym m3sym[64 + 1];
--  struct qtm_modelsym m4sym[24 + 1];
--  struct qtm_modelsym m5sym[36 + 1];
--  struct qtm_modelsym m6sym[42 + 1], m6lsym[27 + 1];
--  struct qtm_modelsym m7sym[7 + 1];
--
--  /* I/O buffers - 1*/
--  unsigned int  bit_buffer;
--
--  /* cabinet related stuff */
--  struct cab_file *file;
--  int (*read_cb)(struct cab_file *, unsigned char *, int);
--
--  /* I/O buffers - 2*/
--  unsigned char *inbuf, *i_ptr, *i_end, *o_ptr, *o_end;
--  unsigned int  inbuf_size;
--  unsigned char bits_left;
--
--};
--
--extern struct qtm_stream *qtm_init(int ofd,
--				     int window_bits,
--				     int input_buffer_size,
--				     struct cab_file *file,
--				     int (*read_cb)(struct cab_file *, unsigned char *, int));
--
--extern int qtm_decompress(struct qtm_stream *qtm, uint32_t out_bytes);
--
--void qtm_free(struct qtm_stream *qtm);
--
--/***************************************************************************
-- *			 LZX decompression definitions                     *
-- ***************************************************************************/
--
--/* some constants defined by the LZX specification */
--#define LZX_MIN_MATCH                (2)
--#define LZX_MAX_MATCH                (257)
--#define LZX_NUM_CHARS                (256)
--#define LZX_BLOCKTYPE_INVALID        (0)   /* also blocktypes 4-7 invalid */
--#define LZX_BLOCKTYPE_VERBATIM       (1)
--#define LZX_BLOCKTYPE_ALIGNED        (2)
--#define LZX_BLOCKTYPE_UNCOMPRESSED   (3)
--#define LZX_PRETREE_NUM_ELEMENTS     (20)
--#define LZX_ALIGNED_NUM_ELEMENTS     (8)   /* aligned offset tree #elements */
--#define LZX_NUM_PRIMARY_LENGTHS      (7)   /* this one missing from spec! */
--#define LZX_NUM_SECONDARY_LENGTHS    (249) /* length tree #elements */
--
--/* LZX huffman defines: tweak tablebits as desired */
--#define LZX_PRETREE_MAXSYMBOLS  (LZX_PRETREE_NUM_ELEMENTS)
--#define LZX_PRETREE_TABLEBITS   (6)
--#define LZX_MAINTREE_MAXSYMBOLS (LZX_NUM_CHARS + 50*8)
--#define LZX_MAINTREE_TABLEBITS  (12)
--#define LZX_LENGTH_MAXSYMBOLS   (LZX_NUM_SECONDARY_LENGTHS+1)
--#define LZX_LENGTH_TABLEBITS    (12)
--#define LZX_ALIGNED_MAXSYMBOLS  (LZX_ALIGNED_NUM_ELEMENTS)
--#define LZX_ALIGNED_TABLEBITS   (7)
--#define LZX_LENTABLE_SAFETY (64)  /* table decoding overruns are allowed */
--
--#define LZX_FRAME_SIZE (32768) /* the size of a frame in LZX */
--
--struct lzx_stream {
--  int ofd;			  /* output file descriptor                  */
--
--  off_t   offset;                 /* number of bytes actually output         */
--  off_t   length;                 /* overall decompressed length of stream   */
--
--  unsigned char *window;          /* decoding window                         */
--  unsigned int   window_size;     /* window size                             */
--  unsigned int   window_posn;     /* decompression offset within window      */
--  unsigned int   frame_posn;      /* current frame offset within in window   */
--  unsigned int   frame;           /* the number of 32kb frames processed     */
--  unsigned int   reset_interval;  /* which frame do we reset the compressor? */
--
--  unsigned int   R0, R1, R2;      /* for the LRU offset system               */
--  unsigned int   block_length;    /* uncompressed length of this LZX block   */
--  unsigned int   block_remaining; /* uncompressed bytes still left to decode */
--
--  signed int     intel_filesize;  /* magic header value used for transform   */
--  signed int     intel_curpos;    /* current offset in transform space       */
--
--  unsigned char  intel_started;   /* has intel E8 decoding started?          */
--  unsigned char  block_type;      /* type of the current block               */
--  unsigned char  header_read;     /* have we started decoding at all yet?    */
--  unsigned char  posn_slots;      /* how many posn slots in stream?          */
--
--  int error;
--
--  /* I/O buffering */
--  unsigned char *inbuf, *i_ptr, *i_end, *o_ptr, *o_end;
--  unsigned int  bit_buffer, bits_left, inbuf_size;
--
--  /* huffman code lengths */
--  unsigned char PRETREE_len  [LZX_PRETREE_MAXSYMBOLS  + LZX_LENTABLE_SAFETY];
--  unsigned char MAINTREE_len [LZX_MAINTREE_MAXSYMBOLS + LZX_LENTABLE_SAFETY];
--  unsigned char LENGTH_len   [LZX_LENGTH_MAXSYMBOLS   + LZX_LENTABLE_SAFETY];
--  unsigned char ALIGNED_len  [LZX_ALIGNED_MAXSYMBOLS  + LZX_LENTABLE_SAFETY];
--
--  /* huffman decoding tables */
--  unsigned short PRETREE_table [(1 << LZX_PRETREE_TABLEBITS) +
--				(LZX_PRETREE_MAXSYMBOLS * 2)];
--  unsigned short MAINTREE_table[(1 << LZX_MAINTREE_TABLEBITS) +
--				(LZX_MAINTREE_MAXSYMBOLS * 2)];
--  unsigned short LENGTH_table  [(1 << LZX_LENGTH_TABLEBITS) +
--				(LZX_LENGTH_MAXSYMBOLS * 2)];
--  unsigned short ALIGNED_table [(1 << LZX_ALIGNED_TABLEBITS) +
--				(LZX_ALIGNED_MAXSYMBOLS * 2)];
--  unsigned char  input_end;       /* have we reached the end of input?       */
--  unsigned char wflag;		  /* write flag */
--
--  /* this is used purely for doing the intel E8 transform */
--  unsigned char  e8_buf[LZX_FRAME_SIZE];
--
--  unsigned int  position_base[51];
--
--  /* cabinet related stuff */
--  struct cab_file *file;
--  int (*read_cb)(struct cab_file *, unsigned char *, int);
--
--  unsigned char extra_bits[51];
--
--};
--
--struct lzx_stream *lzx_init(int ofd,
--			      int window_bits,
--			      int reset_interval,
--			      int input_buffer_size,
--			      off_t output_length,
--			      struct cab_file *file,
--			      int (*read_cb)(struct cab_file *, unsigned char *, int));
--
--extern void lzx_set_output_length(struct lzx_stream *lzx,
--				   off_t output_length);
--
--extern int lzx_decompress(struct lzx_stream *lzx, uint32_t out_bytes);
--
--void lzx_free(struct lzx_stream *lzx);
--
--#endif
-diff --git a/libclamav/scanners.c b/libclamav/scanners.c
-index fa9063d08018..07a38eedc7a5 100644
---- a/libclamav/scanners.c
-+++ b/libclamav/scanners.c
-@@ -60,7 +60,7 @@
- #include "vba_extract.h"
- #include "msexpand.h"
- #include "mbox.h"
--#include "chmunpack.h"
-+#include "libmspack.h"
- #include "pe.h"
- #include "elf.h"
- #include "filetypes.h"
-@@ -73,8 +73,6 @@
- #include "sis.h"
- #include "pdf.h"
- #include "str.h"
--#include "mspack.h"
--#include "cab.h"
- #include "rtf.h"
- #include "unarj.h"
- #include "nsis/nulsft.h"
-@@ -853,82 +851,6 @@ static int cli_scanszdd(cli_ctx *ctx)
-     return ret;
- }
- 
--static int cli_scanmscab(cli_ctx *ctx, off_t sfx_offset)
--{
--	char *tempname;
--	int ret;
--	unsigned int files = 0;
--	struct cab_archive cab;
--	struct cab_file *file;
--	unsigned int corrupted_input;
--	unsigned int viruses_found = 0;
--
--    cli_dbgmsg("in cli_scanmscab()\n");
--
--    if((ret = cab_open(*ctx->fmap, sfx_offset, &cab)))
--	return ret;
--
--    for(file = cab.files; file; file = file->next) {
--	files++;
--
--	if(cli_matchmeta(ctx, file->name, 0, file->length, 0, files, 0, NULL) == CL_VIRUS) {
--	    if (!SCAN_ALL) {
--		ret = CL_VIRUS;
--		break;
--	    }
--	    viruses_found++;
--	}
--
--	if(ctx->engine->maxscansize && ctx->scansize >= ctx->engine->maxscansize) {
--	    ret = CL_CLEAN;
--	    break;
--	}
--
--	if(!(tempname = cli_gentemp(ctx->engine->tmpdir))) {
--	    ret = CL_EMEM;
--	    break;
--	}
--
--	if(ctx->engine->maxscansize && ctx->scansize + ctx->engine->maxfilesize >= ctx->engine->maxscansize)
--	    file->max_size = ctx->engine->maxscansize - ctx->scansize;
--	else
--	    file->max_size = ctx->engine->maxfilesize ? ctx->engine->maxfilesize : 0xffffffff;
--
--	cli_dbgmsg("CAB: Extracting file %s to %s, size %u, max_size: %u\n", file->name, tempname, file->length, (unsigned int) file->max_size);
--	file->written_size = 0;
--	if((ret = cab_extract(file, tempname))) {
--	    cli_dbgmsg("CAB: Failed to extract file: %s\n", cl_strerror(ret));
--	} else {
--	    corrupted_input = ctx->corrupted_input;
--	    if(file->length != file->written_size) {
--		cli_dbgmsg("CAB: Length from header %u but wrote %u bytes\n", (unsigned int) file->length, (unsigned int) file->written_size);
--		ctx->corrupted_input = 1;
--	    }
--	    ret = cli_scanfile(tempname, ctx);
--	    ctx->corrupted_input = corrupted_input;
--	}
--	if(!ctx->engine->keeptmp) {
--	    if (!access(tempname, R_OK) && cli_unlink(tempname)) {
--	    	free(tempname);
--		ret = CL_EUNLINK;
--		break;
--	    }
--	}
--	free(tempname);
--	if(ret == CL_VIRUS) {
--	    if (SCAN_ALL)
--		viruses_found++;
--	    else
--		break;
--	}
--    }
--
--    cab_free(&cab);
--    if (viruses_found)
--	return CL_VIRUS;
--    return ret;
--}
--
- static int vba_scandata(const unsigned char *data, unsigned int len, cli_ctx *ctx)
- {
- 	struct cli_matcher *groot = ctx->engine->root[0];
-@@ -1568,72 +1490,6 @@ static int cli_scantar(cli_ctx *ctx, unsigned int posix)
-     return ret;
- }
- 
--static int cli_scanmschm(cli_ctx *ctx)
--{
--	int ret = CL_CLEAN, rc;
--	chm_metadata_t metadata;
--	char *dir;
--	unsigned int viruses_found = 0;
--
--    cli_dbgmsg("in cli_scanmschm()\n");
--
--     /* generate the temporary directory */
--    if(!(dir = cli_gentemp(ctx->engine->tmpdir)))
--	return CL_EMEM;
--
--    if(mkdir(dir, 0700)) {
--	cli_dbgmsg("CHM: Can't create temporary directory %s\n", dir);
--	free(dir);
--	return CL_ETMPDIR;
--    }
--
--    ret = cli_chm_open(dir, &metadata, ctx);
--    if (ret != CL_SUCCESS) {
--	if(!ctx->engine->keeptmp)
--	    cli_rmdirs(dir);
--	free(dir);
--	cli_dbgmsg("CHM: Error: %s\n", cl_strerror(ret));
--	return ret;
--    }
--
--   do {
--	ret = cli_chm_prepare_file(&metadata);
--	if (ret != CL_SUCCESS) {
--	   break;
--	}
--	ret = cli_chm_extract_file(dir, &metadata, ctx);
--	if (ret == CL_SUCCESS) {
--	    rc = cli_magic_scandesc(metadata.ofd, ctx);
--	    close(metadata.ofd);
--	    if (rc == CL_VIRUS) {
--		cli_dbgmsg("CHM: infected with %s\n", cli_get_last_virus(ctx));
--		if (SCAN_ALL)
--		    viruses_found++;
--		else {
--		    ret = CL_VIRUS;
--		    break;
--		}
--	    }
--	}
--
--    } while(ret == CL_SUCCESS);
--
--    cli_chm_close(&metadata);
--   
--    if(!ctx->engine->keeptmp)
--	cli_rmdirs(dir);
--
--    free(dir);
--
--    cli_dbgmsg("CHM: Exit code: %d\n", ret);
--    if (ret == CL_BREAK)
--	ret = CL_CLEAN;
--
--    if (SCAN_ALL && viruses_found)
--	return CL_VIRUS;
--    return ret;
--}
--
- static int cli_scanscrenc(cli_ctx *ctx)
- {
- 	char *tempname;
diff --git a/recipes-security/clamav/clamav-0.98.5/0008-Add-upstream-systemd-support-for-clamav-daemon-and-c.patch b/recipes-security/clamav/clamav-0.98.5/0008-Add-upstream-systemd-support-for-clamav-daemon-and-c.patch
deleted file mode 100644
index 2229296..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0008-Add-upstream-systemd-support-for-clamav-daemon-and-c.patch
+++ /dev/null
@@ -1,655 +0,0 @@
-From d2564db5d3f50adc67474ffb22b0ee7027a82828 Mon Sep 17 00:00:00 2001
-From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
-Date: Mon, 11 Aug 2014 23:22:05 +0200
-Subject: Add upstream systemd support for clamav-daemon and clamav-freshclam.
-
----
- Makefile.am                           |   2 +-
- clamd/Makefile.am                     |   4 ++
- clamd/clamav-daemon.service.in        |  17 ++++++
- clamd/clamav-daemon.socket            |  12 ++++
- clamd/clamd.c                         | 102 +++++++++++++++++++++++++++-------
- clamd/localserver.c                   |  34 ++++++++++++
- clamd/server-th.c                     |  55 +++++++++++-------
- clamd/tcpserver.c                     |  50 +++++++++++++++++
- configure.ac                          |   3 +
- freshclam/Makefile.am                 |   4 ++
- freshclam/clamav-freshclam.service.in |  12 ++++
- freshclam/freshclam.c                 |  39 +++++++++++--
- m4/reorganization/libs/systemd.m4     |  18 ++++++
- shared/misc.h                         |   8 +++
- shared/optparser.c                    |   2 +-
- 15 files changed, 318 insertions(+), 44 deletions(-)
- create mode 100644 clamd/clamav-daemon.service.in
- create mode 100644 clamd/clamav-daemon.socket
- create mode 100644 freshclam/clamav-freshclam.service.in
- create mode 100644 m4/reorganization/libs/systemd.m4
-
-diff --git a/Makefile.am b/Makefile.am
-index 2eecd94b668b..017d6327ff58 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -33,7 +33,7 @@ pkgconfig_DATA = libclamav.pc
- # don't complain that configuration files and databases are not removed, this is intended
- distuninstallcheck_listfiles = find . -type f ! -name clamd.conf ! -name freshclam.conf ! -name daily.cvd ! -name main.cvd -print
- DISTCLEANFILES = target.h
--DISTCHECK_CONFIGURE_FLAGS=--enable-milter --disable-clamav --enable-all-jit-targets --enable-llvm=yes
-+DISTCHECK_CONFIGURE_FLAGS=--enable-milter --disable-clamav --enable-all-jit-targets --enable-llvm=yes --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
- lcov:
- 	($(MAKE); cd unit_tests; $(MAKE) lcov)
- quick-check:
-diff --git a/clamd/Makefile.am b/clamd/Makefile.am
-index 61bbd69d1133..edc133138e58 100644
---- a/clamd/Makefile.am
-+++ b/clamd/Makefile.am
-@@ -50,6 +50,10 @@ clamd_SOURCES = \
- 
- AM_CFLAGS=@WERR_CFLAGS@
- 
-+if INSTALL_SYSTEMD_UNITS
-+systemdsystemunit_DATA = clamav-daemon.socket clamav-daemon.service
-+endif
-+
- endif
- 
- LIBS = $(top_builddir)/libclamav/libclamav.la @CLAMD_LIBS@ @THREAD_LIBS@
-diff --git a/clamd/clamav-daemon.service.in b/clamd/clamav-daemon.service.in
-new file mode 100644
-index 000000000000..0a5d456a2b36
---- /dev/null
-+++ b/clamd/clamav-daemon.service.in
-@@ -0,0 +1,17 @@
-+[Unit]
-+Description=Clam AntiVirus userspace daemon
-+Documentation=man:clamd(8) man:clamd.conf(5) http://www.clamav.net/lang/en/doc/
-+Requires=clamav-daemon.socket
-+# Check for database existence
-+ConditionPathExistsGlob=@DBDIR@/main.{c[vl]d,inc}
-+ConditionPathExistsGlob=@DBDIR@/daily.{c[vl]d,inc}
-+
-+[Service]
-+ExecStart=@prefix@/sbin/clamd --foreground=true
-+# Reload the database
-+ExecReload=/bin/kill -USR2 $MAINPID
-+StandardOutput=syslog
-+
-+[Install]
-+WantedBy=multi-user.target
-+Also=clamav-daemon.socket
-diff --git a/clamd/clamav-daemon.socket b/clamd/clamav-daemon.socket
-new file mode 100644
-index 000000000000..43a34cd36aad
---- /dev/null
-+++ b/clamd/clamav-daemon.socket
-@@ -0,0 +1,12 @@
-+[Unit]
-+Description=Socket for Clam AntiVirus userspace daemon
-+Documentation=man:clamd(8) man:clamd.conf(5) http://www.clamav.net/lang/en/doc/
-+
-+[Socket]
-+ListenStream=/run/clamav/clamd.ctl
-+#ListenStream=127.0.0.1:1024
-+ExecStartPost=/bin/chown -R clamav:clamav /run/clamav/
-+ExecStopPost=/bin/rm /run/clamav/clamd.ctl
-+
-+[Install]
-+WantedBy=sockets.target
-diff --git a/clamd/clamd.c b/clamd/clamd.c
-index 96204291f433..ec15eacc8c25 100644
---- a/clamd/clamd.c
-+++ b/clamd/clamd.c
-@@ -72,7 +72,7 @@
- #include "scanner.h"
- 
- short debug_mode = 0, logok = 0;
--short foreground = 0;
-+short foreground = -1;
- char hostid[37];
- 
- char *get_hostid(void *cbdata);
-@@ -160,6 +160,31 @@ int main(int argc, char **argv)
-         debug_mode = 1;
-     }
- 
-+    /* check foreground option from command line to override config file */
-+    int j;
-+    for(j = 0; j < argc; j += 1)
-+    {
-+        if ((memcmp(argv[j], "--foreground", 12) == 0) || (memcmp(argv[j], "-F", 2) == 0))
-+        {
-+            /* found */
-+            break;
-+        }
-+    }
-+
-+    if (j < argc)
-+    {
-+        if(optget(opts, "Foreground")->enabled)
-+        {
-+            foreground = 1;
-+        }
-+        else
-+        {
-+            foreground = 0;
-+        }
-+    }
-+
-+    int num_fd = sd_listen_fds(0);
-+
-     /* parse the config file */
-     cfgfile = optget(opts, "config-file")->strarg;
-     pt = strdup(cfgfile);
-@@ -295,7 +320,9 @@ int main(int argc, char **argv)
-         if(optget(opts, "LocalSocket")->enabled)
-             localsock = 1;
- 
--        if(!tcpsock && !localsock) {
-+        logg("#Received %d file descriptor(s) from systemd.\n", num_fd);
-+
-+        if(!tcpsock && !localsock && num_fd == 0) {
-             logg("!Please define server type (local and/or TCP).\n");
-             ret = 1;
-             break;
-@@ -577,7 +604,9 @@ int main(int argc, char **argv)
-             break;
-         }
- 
--        if(tcpsock) {
-+        if(tcpsock || num_fd > 0) {
-+            int *t;
-+
-             opt = optget(opts, "TCPAddr");
-             if (opt->enabled) {
-                 int breakout = 0;
-@@ -604,7 +633,7 @@ int main(int argc, char **argv)
-             }
-         }
- #ifndef _WIN32
--        if(localsock) {
-+        if(localsock && num_fd == 0) {
-             int *t;
-             mode_t sock_mode, umsk = umask(0777); /* socket is created with 000 to avoid races */
- 
-@@ -666,8 +695,43 @@ int main(int argc, char **argv)
-             nlsockets++;
-         }
- 
-+        /* check for local sockets passed by systemd */
-+        if (num_fd > 0)
-+        {
-+            int *t;
-+            t = realloc(lsockets, sizeof(int) * (nlsockets + 1));
-+            if (!(t)) {
-+                ret = 1;
-+                break;
-+            }
-+            lsockets = t;
-+
-+            lsockets[nlsockets] = localserver(opts);
-+            if (lsockets[nlsockets] == -1)
-+            {
-+                ret = 1;
-+                break;
-+            }
-+            else if (lsockets[nlsockets] > 0)
-+            {
-+                nlsockets++;
-+            }
-+        }
-+
-         /* fork into background */
--        if(!optget(opts, "Foreground")->enabled) {
-+        if (foreground == -1)
-+        {
-+            if (optget(opts, "Foreground")->enabled)
-+            {
-+                foreground = 1;
-+            }
-+            else
-+            {
-+                foreground = 0;
-+            }
-+        }
-+        if(foreground == 0)
-+        {
- #ifdef C_BSD	    
-             /* workaround for OpenBSD bug, see https://wwws.clamav.net/bugzilla/show_bug.cgi?id=885 */
-             for(ret=0;(unsigned int)ret<nlsockets;ret++) {
-@@ -701,8 +765,6 @@ int main(int argc, char **argv)
-                 if(chdir("/") == -1)
-                     logg("^Can't change current working directory to root\n");
- 
--        } else {
--            foreground = 1;
-         }
- #endif
- 
-@@ -716,22 +778,24 @@ int main(int argc, char **argv)
- 
-     } while (0);
- 
--    logg("*Closing the main socket%s.\n", (nlsockets > 1) ? "s" : "");
--
--    for (i = 0; i < nlsockets; i++) {
--        closesocket(lsockets[i]);
--    }
-+    if (num_fd == 0)
-+    {
-+        logg("*Closing the main socket%s.\n", (nlsockets > 1) ? "s" : "");
- 
-+        for (i = 0; i < nlsockets; i++) {
-+            closesocket(lsockets[i]);
-+        }
- #ifndef _WIN32
--    if(nlsockets && localsock) {
--        opt = optget(opts, "LocalSocket");
-+        if(nlsockets && localsock) {
-+            opt = optget(opts, "LocalSocket");
- 
--        if(unlink(opt->strarg) == -1)
--            logg("!Can't unlink the socket file %s\n", opt->strarg);
--        else
--            logg("Socket file removed.\n");
--    }
-+            if(unlink(opt->strarg) == -1)
-+                logg("!Can't unlink the socket file %s\n", opt->strarg);
-+            else
-+                logg("Socket file removed.\n");
-+        }
- #endif
-+    }
- 
-     free(lsockets);
- 
-diff --git a/clamd/localserver.c b/clamd/localserver.c
-index db07415212ad..d963efd244f5 100644
---- a/clamd/localserver.c
-+++ b/clamd/localserver.c
-@@ -39,6 +39,7 @@
- 
- #include "shared/optparser.h"
- #include "shared/output.h"
-+#include "shared/misc.h"
- 
- #include "others.h"
- #include "server.h"
-@@ -60,6 +61,39 @@ int localserver(const struct optstruct *opts)
- 	STATBUF foo;
- 	char *estr;
- 
-+    int num_fd = sd_listen_fds(0);
-+    if (num_fd > 2)
-+    {
-+        logg("!LOCAL: Received more than two file descriptors from systemd.\n");
-+        return -1;
-+    }
-+    else if (num_fd > 0)
-+    {
-+        /* use socket passed by systemd */
-+        int i;
-+        for(i = 0; i < num_fd; i += 1)
-+        {
-+            sockfd = SD_LISTEN_FDS_START + i;
-+            if (sd_is_socket(sockfd, AF_UNIX, SOCK_STREAM, 1) == 1)
-+            {
-+                /* correct socket */
-+                break;
-+            }
-+            else
-+            {
-+                /* wrong socket */
-+                sockfd = -2;
-+            }
-+        }
-+        if (sockfd == -2)
-+        {
-+            logg("#LOCAL: No local AF_UNIX SOCK_STREAM socket received from systemd.\n");
-+            return -2;
-+        }
-+        logg("#LOCAL: Received AF_UNIX SOCK_STREAM socket from systemd.\n");
-+        return sockfd;
-+    }
-+    /* create socket */
-     memset((char *) &server, 0, sizeof(server));
-     server.sun_family = AF_UNIX;
-     strncpy(server.sun_path, optget(opts, "LocalSocket")->strarg, sizeof(server.sun_path));
-diff --git a/clamd/server-th.c b/clamd/server-th.c
-index d97cd6fb34e1..5c12811b662b 100644
---- a/clamd/server-th.c
-+++ b/clamd/server-th.c
-@@ -48,6 +48,7 @@
- 
- #include "shared/output.h"
- #include "shared/optparser.h"
-+#include "shared/misc.h"
- 
- #include "fan.h"
- #include "server.h"
-@@ -445,13 +446,19 @@ static void *acceptloop_th(void *arg)
-     }
-     pthread_mutex_unlock(fds->buf_mutex);
- 
--    for (i=0;i < fds->nfds; i++) {
--	if (fds->buf[i].fd == -1)
--	    continue;
--	logg("$Shutdown: closed fd %d\n", fds->buf[i].fd);
--	shutdown(fds->buf[i].fd, 2);
--	closesocket(fds->buf[i].fd);
-+    if (sd_listen_fds(0) == 0)
-+    {
-+        /* only close the sockets, when not using systemd socket activation */
-+        for (i=0;i < fds->nfds; i++)
-+        {
-+            if (fds->buf[i].fd == -1)
-+                continue;
-+            logg("$Shutdown: closed fd %d\n", fds->buf[i].fd);
-+            shutdown(fds->buf[i].fd, 2);
-+            closesocket(fds->buf[i].fd);
-+        }
-     }
-+
-     fds_free(fds);
-     pthread_mutex_destroy(fds->buf_mutex);
-     pthread_mutex_lock(&exit_mutex);
-@@ -1344,16 +1351,22 @@ int recvloop_th(int *socketds, unsigned nsockets, struct cl_engine *engine, unsi
- 	if (progexit) {
- 	    pthread_mutex_unlock(&exit_mutex);
- 	    pthread_mutex_lock(fds->buf_mutex);
--	    for (i=0;i < fds->nfds; i++) {
--		if (fds->buf[i].fd == -1)
--		    continue;
--		thrmgr_group_terminate(fds->buf[i].group);
--		if (thrmgr_group_finished(fds->buf[i].group, EXIT_ERROR)) {
--		    logg("$Shutdown closed fd %d\n", fds->buf[i].fd);
--		    shutdown(fds->buf[i].fd, 2);
--		    closesocket(fds->buf[i].fd);
--		    fds->buf[i].fd = -1;
--		}
-+        if (sd_listen_fds(0) == 0)
-+        {
-+            /* only close the sockets, when not using systemd socket activation */
-+            for (i=0;i < fds->nfds; i++)
-+            {
-+                if (fds->buf[i].fd == -1)
-+                    continue;
-+                thrmgr_group_terminate(fds->buf[i].group);
-+                if (thrmgr_group_finished(fds->buf[i].group, EXIT_ERROR))
-+                {
-+                    logg("$Shutdown closed fd %d\n", fds->buf[i].fd);
-+                    shutdown(fds->buf[i].fd, 2);
-+                    closesocket(fds->buf[i].fd);
-+                    fds->buf[i].fd = -1;
-+                }
-+            }
- 	    }
- 	    pthread_mutex_unlock(fds->buf_mutex);
- 	    break;
-@@ -1462,9 +1475,13 @@ int recvloop_th(int *socketds, unsigned nsockets, struct cl_engine *engine, unsi
- #endif
-     if(dbstat.entries)
- 	cl_statfree(&dbstat);
--    logg("*Shutting down the main socket%s.\n", (nsockets > 1) ? "s" : "");
--    for (i = 0; i < nsockets; i++)
--	shutdown(socketds[i], 2);
-+    if (sd_listen_fds(0) == 0)
-+    {
-+        /* only close the sockets, when not using systemd socket activation */
-+        logg("*Shutting down the main socket%s.\n", (nsockets > 1) ? "s" : "");
-+        for (i = 0; i < nsockets; i++)
-+            shutdown(socketds[i], 2);
-+    }
- 
-     if((opt = optget(opts, "PidFile"))->enabled) {
- 	if(unlink(opt->strarg) == -1)
-diff --git a/clamd/tcpserver.c b/clamd/tcpserver.c
-index c3027a85c1f4..81387b3c8512 100644
---- a/clamd/tcpserver.c
-+++ b/clamd/tcpserver.c
-@@ -60,6 +60,56 @@ int tcpserver(int **lsockets, unsigned int *nlsockets, char *ipaddr, const struc
- 
-     sockets = *lsockets;
- 
-+    int num_fd = sd_listen_fds(0);
-+    if (num_fd > 2)
-+    {
-+        logg("!TCP: Received more than two file descriptors from systemd.\n");
-+        return -1;
-+    }
-+    else if (num_fd > 0)
-+    {
-+        /* use socket passed by systemd */
-+        int i;
-+        for(i = 0; i < num_fd; i += 1)
-+        {
-+            sockfd = SD_LISTEN_FDS_START + i;
-+            if (sd_is_socket(sockfd, AF_INET, SOCK_STREAM, 1) == 1)
-+            {
-+                /* correct socket */
-+                logg("#TCP: Received AF_INET SOCK_STREAM socket from systemd.\n");
-+                break;
-+            }
-+            else if (sd_is_socket(sockfd, AF_INET6, SOCK_STREAM, 1) == 1)
-+            {
-+                /* correct socket */
-+                logg("#TCP: Received AF_INET6 SOCK_STREAM socket from systemd.\n");
-+                break;
-+            }
-+            else
-+            {
-+                /* wrong socket */
-+                sockfd = -2;
-+            }
-+        }
-+        if (sockfd == -2)
-+        {
-+            logg("#TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd.\n");
-+            return -2;
-+        }
-+
-+        t = realloc(sockets, sizeof(int) * (*nlsockets + 1));
-+        if (!(t)) {
-+            return -1;
-+        }
-+        sockets = t;
-+
-+        sockets[*nlsockets] = sockfd;
-+        (*nlsockets)++;
-+        *lsockets = sockets;
-+        return 0;
-+    }
-+
-+    /* create socket */
-     snprintf(port, sizeof(port), "%lld", optget(opts, "TCPSocket")->numarg);
- 
-     memset(&hints, 0x00, sizeof(struct addrinfo));
-diff --git a/configure.ac b/configure.ac
-index 41043753fc92..02caad29410a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -86,6 +86,7 @@ AM_MAINTAINER_MODE
- m4_include([m4/reorganization/libs/libz.m4])
- m4_include([m4/reorganization/libs/bzip.m4])
- m4_include([m4/reorganization/libs/unrar.m4])
-+m4_include([m4/reorganization/libs/systemd.m4])
- m4_include([m4/reorganization/code_checks/ipv6.m4])
- m4_include([m4/reorganization/code_checks/dns.m4])
- m4_include([m4/reorganization/code_checks/fanotify.m4])
-@@ -137,9 +138,11 @@ clamscan/Makefile
- database/Makefile
- docs/Makefile
- clamd/Makefile
-+clamd/clamav-daemon.service
- clamdscan/Makefile
- clamsubmit/Makefile
- clamav-milter/Makefile
-+freshclam/clamav-freshclam.service
- freshclam/Makefile
- sigtool/Makefile
- clamconf/Makefile
-diff --git a/freshclam/Makefile.am b/freshclam/Makefile.am
-index 58fc17471c35..051bf3380e98 100644
---- a/freshclam/Makefile.am
-+++ b/freshclam/Makefile.am
-@@ -49,6 +49,10 @@ freshclam_SOURCES = \
-     mirman.c \
-     mirman.h
- 
-+if INSTALL_SYSTEMD_UNITS
-+systemdsystemunit_DATA = clamav-freshclam.service
-+endif
-+
- AM_CFLAGS=@WERR_CFLAGS@
- DEFS = @DEFS@ -DCL_NOTHREADS
- AM_CPPFLAGS = @SSL_CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav @FRESHCLAM_CPPFLAGS@  @JSON_CPPFLAGS@
-diff --git a/freshclam/clamav-freshclam.service.in b/freshclam/clamav-freshclam.service.in
-new file mode 100644
-index 000000000000..f717cd642106
---- /dev/null
-+++ b/freshclam/clamav-freshclam.service.in
-@@ -0,0 +1,12 @@
-+[Unit]
-+Description=ClamAV virus database updater
-+Documentation=man:freshclam(1) man:freshclam.conf(5) http://www.clamav.net/lang/en/doc/
-+# If user wants it run from cron, don't start the daemon.
-+ConditionPathExists=!/etc/cron.d/clamav-freshclam
-+
-+[Service]
-+ExecStart=@prefix@/bin/freshclam -d --foreground=true
-+StandardOutput=syslog
-+
-+[Install]
-+WantedBy=multi-user.target
-diff --git a/freshclam/freshclam.c b/freshclam/freshclam.c
-index 166586bf6447..f170613877c4 100644
---- a/freshclam/freshclam.c
-+++ b/freshclam/freshclam.c
-@@ -64,7 +64,7 @@
- static short terminate = 0;
- extern int active_children;
- 
--static short foreground = 1;
-+static short foreground = -1;
- char updtmpdir[512], dbdir[512];
- int sigchld_wait = 1;
- const char *pidfile = NULL;
-@@ -117,7 +117,7 @@ sighandler (int sig)
-         if (pidfile)
-             unlink (pidfile);
-         logg ("Update process terminated\n");
--        exit (2);
-+        exit (0);
-     }
- 
-     return;
-@@ -322,6 +322,26 @@ main (int argc, char **argv)
-         return 0;
-     }
- 
-+    /* check foreground option from command line to override config file */
-+    int j;
-+    for(j = 0; j < argc; j += 1)
-+    {
-+        if ((memcmp(argv[j], "--foreground", 12) == 0) || (memcmp(argv[j], "-F", 2) == 0))
-+        {
-+            /* found */
-+            break;
-+        }
-+    }
-+
-+	if (j < argc) {
-+		if(optget(opts, "Foreground")->enabled) {
-+			foreground = 1;
-+		}
-+		else {
-+			foreground = 0;
-+		}
-+	}
-+
-     /* parse the config file */
-     cfgfile = optget (opts, "config-file")->strarg;
-     pt = strdup (cfgfile);
-@@ -638,7 +658,19 @@ main (int argc, char **argv)
-         bigsleep = 24 * 3600 / checks;
- 
- #ifndef _WIN32
--        if (!optget (opts, "Foreground")->enabled)
-+        /* fork into background */
-+        if (foreground == -1)
-+        {
-+            if (optget(opts, "Foreground")->enabled)
-+            {
-+                foreground = 1;
-+            }
-+            else
-+            {
-+                foreground = 0;
-+            }
-+        }
-+        if(foreground == 0)
-         {
-             if (daemonize () == -1)
-             {
-@@ -646,7 +678,6 @@ main (int argc, char **argv)
-                 optfree (opts);
-                 return FCE_FAILEDUPDATE;
-             }
--            foreground = 0;
-             mprintf_disabled = 1;
-         }
- #endif
-diff --git a/m4/reorganization/libs/systemd.m4 b/m4/reorganization/libs/systemd.m4
-new file mode 100644
-index 000000000000..cac5d4272fda
---- /dev/null
-+++ b/m4/reorganization/libs/systemd.m4
-@@ -0,0 +1,18 @@
-+dnl Check for systemd-daemon
-+PKG_CHECK_MODULES(SYSTEMD, [libsystemd-daemon], [AC_DEFINE([HAVE_SYSTEMD],,[systemd-daemon is supported])], [AC_MSG_RESULT([systemd-daemon is not supported])])
-+CLAMD_LIBS="$CLAMD_LIBS $SYSTEMD_LIBS"
-+CFLAGS="$CFLAGS $SYSTEMD_CFLAGS"
-+
-+dnl Check for systemd system unit installation directory (see man 7 daemon)
-+AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),, [with_systemdsystemunitdir=auto])
-+AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
-+     def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
-+     AS_IF([test "x$def_systemdsystemunitdir" = "x"],
-+         [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"], [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
-+          with_systemdsystemunitdir=no],
-+         [with_systemdsystemunitdir=$def_systemdsystemunitdir])])
-+AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
-+      [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
-+AM_CONDITIONAL(INSTALL_SYSTEMD_UNITS, [test "x$with_systemdsystemunitdir" != "xno"])
-+AC_MSG_RESULT([checking for systemd system unit installation directory... $with_systemdsystemunitdir])
-+
-diff --git a/shared/misc.h b/shared/misc.h
-index 7f3a9f962d0d..3e093936caa1 100644
---- a/shared/misc.h
-+++ b/shared/misc.h
-@@ -37,6 +37,14 @@
- # endif
- #endif
- 
-+#ifdef HAVE_SYSTEMD
-+# include <systemd/sd-daemon.h>
-+#else
-+# define sd_listen_fds(u) 0
-+# define SD_LISTEN_FDS_START 3
-+# define sd_is_socket(f, a, s, l) 1
-+#endif
-+
- #include <limits.h>
- 
- #ifndef PATH_MAX
-diff --git a/shared/optparser.c b/shared/optparser.c
-index 63c88550d5b8..b61ec832a32f 100644
---- a/shared/optparser.c
-+++ b/shared/optparser.c
-@@ -272,7 +272,7 @@ const struct clam_option __clam_options[] = {
- 
-     { "AllowAllMatchScan", NULL, 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 1, NULL, 0, OPT_CLAMD, "Permit use of the ALLMATCHSCAN command.", "yes" },
- 
--    { "Foreground", NULL, 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD | OPT_FRESHCLAM | OPT_MILTER, "Don't fork into background.", "no" },
-+    { "Foreground", "foreground", 'F', CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD | OPT_FRESHCLAM | OPT_MILTER, "Don't fork into background.", "no" },
- 
-     { "Debug", NULL, 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD | OPT_FRESHCLAM, "Enable debug messages in libclamav.", "no" },
- 
diff --git a/recipes-security/clamav/clamav-0.98.5/0009-fix-ssize_t-size_t-off_t-printf-modifier.patch b/recipes-security/clamav/clamav-0.98.5/0009-fix-ssize_t-size_t-off_t-printf-modifier.patch
deleted file mode 100644
index ee60f92..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0009-fix-ssize_t-size_t-off_t-printf-modifier.patch
+++ /dev/null
@@ -1,478 +0,0 @@
-From 26516ebe7ae678be78e748bc973835844e369f72 Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
-Date: Sun, 17 Aug 2014 21:24:03 +0200
-Subject: fix ssize_t/size_t/off_t printf modifier
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes a segfault on ARM, Sparc, … if 64bit off_t is used. Once LFS
-is enabled then off_t becomes 64bit and there is no portable way to express
-it except to cast the variable to signed long long. However with LFS
-enabled we can spare that cast.
-The 32bit Architectures may explode here because the earlier 64bit off_t
-consumes two argument slots and the filename (on which glibc uses
-strlen()) becomes invalid.
-
-In brief:
-ssize_t -> %zd
-size_t  -> %zu
-off_t  -> %llu (with LFS enabled)
-
-https://bugzilla.clamav.net/show_bug.cgi?id=11092
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- clamd/clamd.c               |  2 +-
- clamd/server-th.c           |  3 ++-
- libclamav/adc.c             |  5 +++--
- libclamav/asn1.c            |  3 ++-
- libclamav/bytecode.c        |  4 ++--
- libclamav/bytecode_api.c    |  2 +-
- libclamav/hashtab.c         | 32 +++++++++++++++++++++-----------
- libclamav/jsparse/js-norm.c |  6 ++++--
- libclamav/matcher.c         |  6 ++++--
- libclamav/pdf.c             | 29 +++++++++++++++++++----------
- libclamav/regex_list.c      |  5 ++++-
- libclamav/scanners.c        |  5 +++--
- shared/misc.h               |  4 ++++
- shared/output.c             |  3 ++-
- sigtool/sigtool.c           |  3 ++-
- 15 files changed, 74 insertions(+), 38 deletions(-)
-
-diff --git a/clamd/clamd.c b/clamd/clamd.c
-index ec15eacc8c25..8c87e1bb9a87 100644
---- a/clamd/clamd.c
-+++ b/clamd/clamd.c
-@@ -355,7 +355,7 @@ int main(int argc, char **argv)
- 
- 
-         if(logg_size)
--            logg("#Log file size limited to %u bytes.\n", logg_size);
-+            logg("#Log file size limited to %" PRId64 "bytes.\n", logg_size);
-         else
-             logg("#Log file size limit disabled.\n");
- 
-diff --git a/clamd/server-th.c b/clamd/server-th.c
-index 5c12811b662b..84086f39fbfb 100644
---- a/clamd/server-th.c
-+++ b/clamd/server-th.c
-@@ -689,7 +689,8 @@ static int handle_stream(client_conn_t *conn, struct fd_buf *buf, const struct o
- 	    logg("!INSTREAM: Can't write to temporary file.\n");
- 	    *error = 1;
- 	}
--	logg("$Processed %lu bytes of chunkdata, pos %lu\n", cmdlen, pos);
-+	logg("$Processed %" _sizet " bytes of chunkdata, pos %" _sizet "\n",
-+			cmdlen, pos);
- 	pos += cmdlen;
- 	if (pos == buf->off) {
- 	    buf->off = 0;
-diff --git a/libclamav/adc.c b/libclamav/adc.c
-index 6ad00ea96571..684335f1bfb5 100644
---- a/libclamav/adc.c
-+++ b/libclamav/adc.c
-@@ -28,6 +28,7 @@
- #include <string.h>
- #endif
- 
-+#include "shared/misc.h"
- #include "clamav.h"
- #include "cltypes.h"
- #include "others.h"
-@@ -86,8 +87,8 @@ int adc_decompress(adc_stream *strm)
-         return ADC_DATA_ERROR;
-     }
- 
--    cli_dbgmsg("adc_decompress: avail_in %lu avail_out %lu state %u\n", strm->avail_in, strm->avail_out, strm->state);
--
-+    cli_dbgmsg("adc_decompress: avail_in %" _sizet " avail_out %" _sizet " state %u\n",
-+		    strm->avail_in, strm->avail_out, strm->state);
-     while (strm->avail_out) {
-         /* Exit if needs more in bytes and none available */
-         int needsInput;
-diff --git a/libclamav/asn1.c b/libclamav/asn1.c
-index c6cf0dd00c50..e6f55642640d 100644
---- a/libclamav/asn1.c
-+++ b/libclamav/asn1.c
-@@ -24,6 +24,7 @@
- 
- #include <time.h>
- 
-+#include "shared/misc.h"
- #include "clamav.h"
- #include "asn1.h"
- #include "bignum.h"
-@@ -1481,7 +1482,7 @@ int asn1_check_mscat(struct cl_engine *engine, fmap_t *map, size_t offset, unsig
-     if (engine->dconf->pe & PE_CONF_DISABLECERT)
-         return CL_VIRUS;
- 
--    cli_dbgmsg("in asn1_check_mscat (offset: %lu)\n", offset);
-+    cli_dbgmsg("in asn1_check_mscat (offset: %" _sizet ")\n", offset);
-     crtmgr_init(&certs);
-     if(crtmgr_add_roots(engine, &certs)) {
- 	crtmgr_free(&certs);
-diff --git a/libclamav/bytecode.c b/libclamav/bytecode.c
-index 28d2d716f93b..b34f818fdaba 100644
---- a/libclamav/bytecode.c
-+++ b/libclamav/bytecode.c
-@@ -1489,8 +1489,8 @@ void cli_sigperf_print()
-     cli_infomsg (NULL, "%-*s %*s %*s %*s %*s\n", max_name_len, "=============",
- 	    8, "=====", 8, "========", 12, "===========", 9, "=========");
-     while (elem->run_count) {
--	cli_infomsg (NULL, "%-*s %*lu %*lu %*llu %*.2f\n", max_name_len, elem->bc_name,
--		     8, elem->run_count, 8, elem->match_count, 
-+	cli_infomsg (NULL, "%-*s %*lu %*lu %*" PRIu64 " %*.2f\n", max_name_len,
-+		elem->bc_name, 8, elem->run_count, 8, elem->match_count,
- 		12, elem->usecs, 9, (double)elem->usecs/elem->run_count);
- 	elem++;
-     }
-diff --git a/libclamav/bytecode_api.c b/libclamav/bytecode_api.c
-index 5bded4ebaca0..72a9393183a2 100644
---- a/libclamav/bytecode_api.c
-+++ b/libclamav/bytecode_api.c
-@@ -122,7 +122,7 @@ int32_t cli_bcapi_seek(struct cli_bc_ctx* ctx, int32_t pos, uint32_t whence)
-             return -1;
-     }
-     if (off < 0 || off > ctx->file_size) {
--        cli_dbgmsg("bcapi_seek: out of file: %ld (max %d)\n",
-+        cli_dbgmsg("bcapi_seek: out of file: %" PRId64 " (max %d)\n",
-                    off, ctx->file_size);
-         return -1;
-     }
-diff --git a/libclamav/hashtab.c b/libclamav/hashtab.c
-index 88e81ba2c2ef..cafce3ac8927 100644
---- a/libclamav/hashtab.c
-+++ b/libclamav/hashtab.c
-@@ -25,6 +25,7 @@
- #include <stdio.h>
- #include <string.h>
- 
-+#include "shared/misc.h"
- #include "cltypes.h"
- #include "clamav.h"
- #include "others.h"
-@@ -329,9 +330,10 @@ static int cli_hashtab_grow(struct cli_hashtable *s)
- 	struct cli_element* htable;
- 	size_t i,idx, used = 0;
- 
--	cli_dbgmsg("hashtab.c: new capacity: %lu\n",new_capacity);
-+	cli_dbgmsg("hashtab.c: new capacity: %" _sizet "\n",new_capacity);
- 	if(new_capacity == s->capacity) {
--		cli_errmsg("hashtab.c: capacity problem growing from: %lu\n",s->capacity);
-+		cli_errmsg("hashtab.c: capacity problem growing from: %" _sizet
-+				"\n", s->capacity);
- 		return CL_EMEM;
- 	}
- 	htable = cli_calloc(new_capacity, sizeof(*s->htable));
-@@ -372,7 +374,7 @@ static int cli_hashtab_grow(struct cli_hashtable *s)
- 	s->used = used;
- 	s->capacity = new_capacity;
- 	s->maxfill = new_capacity*8/10;
--	cli_dbgmsg("Table %p size after grow:%ld\n",(void*)s,s->capacity);
-+	cli_dbgmsg("Table %p size after grow: %" _sizet "\n", s, s->capacity);
- 	PROFILE_GROW_DONE(s);
- 	return CL_SUCCESS;
- }
-@@ -386,7 +388,7 @@ static int cli_htu32_grow(struct cli_htu32 *s, mpool_t *mempool)
- 	const size_t new_capacity = nearest_power(s->capacity + 1);
- 	struct cli_htu32_element* htable = mpool_calloc(mempool, new_capacity, sizeof(*s->htable));
- 	size_t i,idx, used = 0;
--	cli_dbgmsg("hashtab.c: new capacity: %lu\n",new_capacity);
-+	cli_dbgmsg("hashtab.c: new capacity: %" _sizet "\n", new_capacity);
- 	if(new_capacity == s->capacity || !htable)
- 		return CL_EMEM;
- 
-@@ -422,7 +424,7 @@ static int cli_htu32_grow(struct cli_htu32 *s, mpool_t *mempool)
- 	s->used = used;
- 	s->capacity = new_capacity;
- 	s->maxfill = new_capacity*8/10;
--	cli_dbgmsg("Table %p size after grow:%ld\n",(void*)s,s->capacity);
-+	cli_dbgmsg("Table %p size after grow: %" _sizet "\n", s, s->capacity);
- 	PROFILE_GROW_DONE(s);
- 	return CL_SUCCESS;
- }
-@@ -437,7 +439,9 @@ const struct cli_element* cli_hashtab_insert(struct cli_hashtable *s, const char
- 	if(!s)
- 		return NULL;
- 	if(s->used > s->maxfill) {
--		cli_dbgmsg("hashtab.c:Growing hashtable %p, because it has exceeded maxfill, old size:%ld\n",(void*)s,s->capacity);
-+		cli_dbgmsg("hashtab.c:Growing hashtable %p, because it has "
-+				"exceeded maxfill, old size: %" _sizet "\n", s,
-+				s->capacity);
- 		cli_hashtab_grow(s);
- 	}
- 	do {
-@@ -486,7 +490,8 @@ const struct cli_element* cli_hashtab_insert(struct cli_hashtable *s, const char
- 		} while (tries <= s->capacity);
- 		/* no free place found*/
- 		PROFILE_HASH_EXHAUSTED(s);
--		cli_dbgmsg("hashtab.c: Growing hashtable %p, because its full, old size:%ld.\n",(void*)s,s->capacity);
-+		cli_dbgmsg("hashtab.c: Growing hashtable %p, because its full, "
-+				"old size: %" _sizet ".\n", s, s->capacity);
- 	} while( cli_hashtab_grow(s) >= 0 );
- 	cli_warnmsg("hashtab.c: Unable to grow hashtable\n");
- 	return NULL;
-@@ -504,7 +509,9 @@ int cli_htu32_insert(struct cli_htu32 *s, const struct cli_htu32_element *item,
- 	if(!s)
- 		return CL_ENULLARG;
- 	if(s->used > s->maxfill) {
--		cli_dbgmsg("hashtab.c:Growing hashtable %p, because it has exceeded maxfill, old size:%ld\n",(void*)s,s->capacity);
-+		cli_dbgmsg("hashtab.c:Growing hashtable %p, because it has "
-+				"exceeded maxfill, old size: %" _sizet "\n", s,
-+				s->capacity);
- 		cli_htu32_grow(s, mempool);
- 	}
- 	do {
-@@ -543,7 +550,8 @@ int cli_htu32_insert(struct cli_htu32 *s, const struct cli_htu32_element *item,
- 		} while (tries <= s->capacity);
- 		/* no free place found*/
- 		PROFILE_HASH_EXHAUSTED(s);
--		cli_dbgmsg("hashtab.c: Growing hashtable %p, because its full, old size:%ld.\n",(void*)s,s->capacity);
-+		cli_dbgmsg("hashtab.c: Growing hashtable %p, because its full, "
-+				"old size: %" _sizet ".\n", s, s->capacity);
- 	} while( (ret = cli_htu32_grow(s, mempool)) >= 0 );
- 	cli_warnmsg("hashtab.c: Unable to grow hashtable\n");
- 	return ret;
-@@ -632,11 +640,13 @@ int cli_hashtab_generate_c(const struct cli_hashtable *s,const char* name)
- 		else if(e->key == DELETED_KEY)
- 			printf("\t{DELETED_KEY,0,0},\n");
- 		else
--			printf("\t{\"%s\", %ld, %ld},\n", e->key, e->data, e->len);
-+			printf("\t{\"%s\", %ld, %" _sizet"},\n", e->key,
-+					e->data, e->len);
- 	}
- 	printf("};\n");
- 	printf("const struct cli_hashtable %s = {\n",name);
--	printf("\t%s_elements, %ld, %ld, %ld", name, s->capacity, s->used, s->maxfill);
-+	printf("\t%s_elements, %" _sizet ", %" _sizet" , %" _sizet, name,
-+			s->capacity, s->used, s->maxfill);
- 	printf("\n};\n");
- 
- 	PROFILE_REPORT(s);
-diff --git a/libclamav/jsparse/js-norm.c b/libclamav/jsparse/js-norm.c
-index 85eba72c2e87..9a56aa34856f 100644
---- a/libclamav/jsparse/js-norm.c
-+++ b/libclamav/jsparse/js-norm.c
-@@ -34,6 +34,7 @@
- #include <ctype.h>
- #include <assert.h>
- 
-+#include "shared/misc.h"
- #include "clamav.h"
- #include "cltypes.h"
- #include "jsparse/lexglobal.h"
-@@ -525,7 +526,8 @@ static int replace_token_range(struct tokens *dst, size_t start, size_t end, con
- {
- 	const size_t len = with ? with->cnt : 0;
- 	size_t i;
--	cli_dbgmsg(MODULE "Replacing tokens %lu - %lu with %lu tokens\n",start, end, len);
-+	cli_dbgmsg(MODULE "Replacing tokens %" _sizet " - %" _sizet " with %"
-+			_sizet " tokens\n", start, end, len);
- 	if(start >= dst->cnt || end > dst->cnt)
- 		return -1;
- 	for(i=start;i<end;i++) {
-@@ -547,7 +549,7 @@ static int append_tokens(struct tokens *dst, const struct tokens *src)
- 		return CL_ENULLARG;
- 	if(tokens_ensure_capacity(dst, dst->cnt + src->cnt))
- 		return CL_EMEM;
--	cli_dbgmsg(MODULE "Appending %lu tokens\n", src->cnt);
-+	cli_dbgmsg(MODULE "Appending %" _sizet " tokens\n", src->cnt);
- 	memcpy(&dst->data[dst->cnt], src->data, src->cnt * sizeof(dst->data[0]));
- 	dst->cnt += src->cnt;
- 	return CL_SUCCESS;
-diff --git a/libclamav/matcher.c b/libclamav/matcher.c
-index 3f4f5c1659d5..e684f7122e26 100644
---- a/libclamav/matcher.c
-+++ b/libclamav/matcher.c
-@@ -52,6 +52,7 @@
- #include "perflogging.h"
- #include "bytecode_priv.h"
- #include "bytecode_api_impl.h"
-+#include "shared/misc.h"
- 
- #ifdef CLI_PERF_LOGGING
- 
-@@ -1069,8 +1070,9 @@ int cli_matchmeta(cli_ctx *ctx, const char *fname, size_t fsizec, size_t fsizer,
- 	const struct cli_cdb *cdb;
- 	unsigned int viruses_found = 0;
- 
--    cli_dbgmsg("CDBNAME:%s:%lu:%s:%lu:%lu:%d:%u:%u:%p\n",
--	       cli_ftname(ctx->container_type), fsizec, fname, fsizec, fsizer, encrypted, filepos, res1, res2);
-+    cli_dbgmsg("CDBNAME:%s:%" _sizet ":%s:%" _sizet ":%" _sizet ":%d:%u:%u:%p\n",
-+	       cli_ftname(ctx->container_type), fsizec, fname, fsizec, fsizer,
-+	       encrypted, filepos, res1, res2);
- 
-     if (ctx->engine && ctx->engine->cb_meta)
- 	if (ctx->engine->cb_meta(cli_ftname(ctx->container_type), fsizec, fname, fsizer, encrypted, filepos, ctx->cb_ctx) == CL_VIRUS) {
-diff --git a/libclamav/pdf.c b/libclamav/pdf.c
-index 2e469c1e5d56..2de348e7c3fd 100644
---- a/libclamav/pdf.c
-+++ b/libclamav/pdf.c
-@@ -60,6 +60,7 @@
- #include "rijndael.h"
- #include "textnorm.h"
- #include "json_api.h"
-+#include "shared/misc.h"
- 
- #ifdef	CL_DEBUG
- /*#define	SAVE_TMP	
-@@ -1019,10 +1020,12 @@ int pdf_extract_obj(struct pdf_struct *pdf, struct pdf_obj *obj, uint32_t flags)
- 
-                 orig_length = length;
-                 if (length > pdf->size || obj->start + p_stream + length > pdf->size) {
--                    cli_dbgmsg("cli_pdf: length out of file: %ld + %ld > %ld\n",
--                           p_stream, length, pdf->size);
--                    noisy_warnmsg("length out of file, truncated: %ld + %ld > %ld\n",
--                           p_stream, length, pdf->size);
-+                    cli_dbgmsg("cli_pdf: length out of file: %" PRId64 " + %"
-+				    PRId64 " > % " PRId64 "\n", p_stream,
-+				    length, pdf->size);
-+                    noisy_warnmsg("length out of file, truncated: %" PRId64
-+				    " + %" PRId64 " > %" PRId64 "\n",
-+				    p_stream, length, pdf->size);
-                     length = pdf->size - (obj->start + p_stream);
-                 }
- 
-@@ -1044,17 +1047,21 @@ int pdf_extract_obj(struct pdf_struct *pdf, struct pdf_obj *obj, uint32_t flags)
-                     if (length < 0)
-                         length = 0;
- 
--                    cli_dbgmsg("cli_pdf: calculated length %ld\n", length);
-+                    cli_dbgmsg("cli_pdf: calculated length %" PRId64 "\n",
-+				    length);
-                 } else {
-                     if (size > (size_t)length+2) {
--                        cli_dbgmsg("cli_pdf: calculated length %ld < %ld\n",
-+                        cli_dbgmsg("cli_pdf: calculated length %" PRId64 " < %"
-+					_ssizet "\n",
-                                length, size);
-                         length = size;
-                     }
-                 }
- 
-                 if (orig_length && size > (size_t)orig_length + 20) {
--                    cli_dbgmsg("cli_pdf: orig length: %ld, length: %ld, size: %ld\n", orig_length, length, size);
-+                    cli_dbgmsg("cli_pdf: orig length: %" PRId64 ", length: %"
-+				    PRId64", size: %" _ssizet "\n", orig_length,
-+				    length, size);
-                     pdfobj_flag(pdf, obj, BAD_STREAMLEN);
-                 }
- 
-@@ -1240,7 +1247,7 @@ int pdf_extract_obj(struct pdf_struct *pdf, struct pdf_obj *obj, uint32_t flags)
-         }
-     } while (0);
- 
--    cli_dbgmsg("cli_pdf: extracted %ld bytes %u %u obj to %s\n", sum, obj->id>>8, obj->id&0xff, fullname);
-+    cli_dbgmsg("cli_pdf: extracted %" PRId64 " bytes %u %u obj to %p\n", sum, obj->id>>8, obj->id&0xff, fullname);
- 
-     if (flags & PDF_EXTRACT_OBJ_SCAN && sum) {
-         int rc2;
-@@ -2493,7 +2500,8 @@ int cli_pdf(const char *dir, cli_ctx *ctx, off_t offset)
- 
-     if (pdfver != start || offset) {
-         pdf.flags |= 1 << BAD_PDF_HEADERPOS;
--        cli_dbgmsg("cli_pdf: PDF header is not at position 0: %ld\n",pdfver-start+offset);
-+        cli_dbgmsg("cli_pdf: PDF header is not at position 0: %" PRId64 "\n",
-+			pdfver - start + offset);
- #if HAVE_JSON
-         if (pdfobj)
-             cli_jsonbool(pdfobj, "BadVersionLocation", 1);
-@@ -2602,7 +2610,8 @@ int cli_pdf(const char *dir, cli_ctx *ctx, off_t offset)
-     while ((rc = pdf_findobj(&pdf)) > 0) {
-         struct pdf_obj *obj = &pdf.objs[pdf.nobjs-1];
- 
--        cli_dbgmsg("cli_pdf: found %d %d obj @%ld\n", obj->id >> 8, obj->id&0xff, obj->start + offset);
-+        cli_dbgmsg("cli_pdf: found %d %d obj @%" PRId64 "\n", obj->id >> 8,
-+			obj->id & 0xff, obj->start + offset);
-     }
- 
-     if (pdf.nobjs)
-diff --git a/libclamav/regex_list.c b/libclamav/regex_list.c
-index f30cc4cd4349..4b27c2974fb6 100644
---- a/libclamav/regex_list.c
-+++ b/libclamav/regex_list.c
-@@ -41,6 +41,7 @@
- #include <assert.h>
- 
- #include "regex/regex.h"
-+#include "shared/misc.h"
- 
- #include "clamav.h"
- #include "others.h"
-@@ -84,7 +85,9 @@ static inline size_t get_char_at_pos_with_skip(const struct pre_fixup_info* info
- 		return (pos <= strlen(buffer)) ? buffer[pos>0 ? pos-1:0] : '\0';
- 	}
- 	str = info->pre_displayLink.data;
--	cli_dbgmsg("calc_pos_with_skip: skip:%lu, %lu - %lu \"%s\",\"%s\"\n", pos, info->host_start, info->host_end, str, buffer);
-+	cli_dbgmsg("calc_pos_with_skip: skip: %" _sizet ", %" _sizet " - %"
-+			_sizet " \"%s\",\"%s\"\n", pos, info->host_start,
-+			info->host_end, str, buffer);
- 	pos += info->host_start;
- 	while(str[realpos] && !isalnum(str[realpos])) realpos++;
- 	for(; str[realpos] && (pos>0); pos--) {
-diff --git a/libclamav/scanners.c b/libclamav/scanners.c
-index 07a38eedc7a5..49cd70a18d9e 100644
---- a/libclamav/scanners.c
-+++ b/libclamav/scanners.c
-@@ -49,6 +49,7 @@
- #define DCONF_MAIL  ctx->dconf->mail
- #define DCONF_OTHER ctx->dconf->other
- 
-+#include "shared/misc.h"
- #include "clamav.h"
- #include "others.h"
- #include "dconf.h"
-@@ -3171,8 +3172,8 @@ int cli_map_scandesc(cl_fmap_t *map, off_t offset, size_t length, cli_ctx *ctx,
- 
-     if (!length) length = old_len - offset;
-     if (length > old_len - offset) {
--	cli_dbgmsg("Data truncated: %lu -> %lu\n",
--		   (unsigned long)length, old_len - offset);
-+	cli_dbgmsg("Data truncated: %" _sizet" -> %" PRIu64" \n", length,
-+			old_len - offset);
- 	length = old_len - offset;
-     }
- 
-diff --git a/shared/misc.h b/shared/misc.h
-index 3e093936caa1..65f8c9ce0382 100644
---- a/shared/misc.h
-+++ b/shared/misc.h
-@@ -51,6 +51,10 @@
- #define PATH_MAX 1024
- #endif
- 
-+#include <inttypes.h>
-+#define _sizet	"zu"
-+#define _ssizet	"zd"
-+
- char *freshdbdir(void);
- void print_version(const char *dbdir);
- int check_flevel(void);
-diff --git a/shared/output.c b/shared/output.c
-index 5e947a57a6f9..ab054a8bbeee 100644
---- a/shared/output.c
-+++ b/shared/output.c
-@@ -214,7 +214,8 @@ static int rename_logg(STATBUF *sb)
- 
-     if (!logg_rotate) {
-         if (logg_fp) {
--            fprintf(logg_fp, "Log size = %zu, max = %zu\n", sb->st_size, logg_size);
-+            fprintf(logg_fp, "Log size = %" PRId64 ", max = %" PRId64 "\n",
-+			    sb->st_size, logg_size);
-             fprintf(logg_fp, "WARNING: Log size limit met but log file rotation turned off. Forcing log file rotation anyways.\n");
-         }
- 
-diff --git a/sigtool/sigtool.c b/sigtool/sigtool.c
-index f2135c210e02..d67e662cfea1 100644
---- a/sigtool/sigtool.c
-+++ b/sigtool/sigtool.c
-@@ -373,7 +373,8 @@ static char *getdsig(const char *host, const char *user, const unsigned char *da
- 	    closesocket(sockd);
- 	    return NULL;
- 	} else {
--	    mprintf("Signature received (length = %lu)\n", (unsigned long)strlen(buff) - 10);
-+	    mprintf("Signature received (length = %" _sizet ")\n",
-+			    (unsigned long)strlen(buff) - 10);
- 	}
-     } else {
- 	mprintf("!getdsig: Communication error with remote server\n");
diff --git a/recipes-security/clamav/clamav-0.98.5/0010-hardcode-LLVM-linker-flag-because-llvm-config-return.patch b/recipes-security/clamav/clamav-0.98.5/0010-hardcode-LLVM-linker-flag-because-llvm-config-return.patch
deleted file mode 100644
index 9699b50..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0010-hardcode-LLVM-linker-flag-because-llvm-config-return.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 86ebd6e3f8fa60d0bdbed10eb10c5a7699b821e4 Mon Sep 17 00:00:00 2001
-From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
-Date: Mon, 25 Aug 2014 22:54:37 +0200
-Subject: hardcode LLVM linker flag, because llvm-config returns only flags for
- linking statically
-
-this reduces the size of libclamav by more than 80 percent
----
- libclamav/c++/configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libclamav/c++/configure.ac b/libclamav/c++/configure.ac
-index a6697ddd8e82..3c7c7e26fbf8 100644
---- a/libclamav/c++/configure.ac
-+++ b/libclamav/c++/configure.ac
-@@ -121,8 +121,8 @@ if test "x$llvmconfig" != "x"; then
-     else
-         AC_SUBST(LLVMCONFIG_LDFLAGS, [`$llvmconfig --ldflags`])
-     fi
--    AC_SUBST(LLVMCONFIG_LIBS, [`$llvmconfig --libs jit nativecodegen scalaropts ipo`])
--    AC_SUBST(LLVMCONFIG_LIBFILES, [`$llvmconfig --libfiles jit nativecodegen scalaropts ipo`])
-+    AC_SUBST(LLVMCONFIG_LIBS, [-lLLVM-$llvmver])
-+    AC_SUBST(LLVMCONFIG_LIBFILES, [])
-     AC_MSG_NOTICE([CXXFLAGS from llvm-config: $LLVMCONFIG_CXXFLAGS])
-     AC_MSG_NOTICE([LDFLAGS from llvm-config: $LLVMCONFIG_LDFLAGS])
-     AC_MSG_NOTICE([LIBS from llvm-config: $LLVMCONFIG_LIBS])
diff --git a/recipes-security/clamav/clamav-0.98.5/0011-Add-libmspack-library-from-upstream-without-unnecess.patch b/recipes-security/clamav/clamav-0.98.5/0011-Add-libmspack-library-from-upstream-without-unnecess.patch
deleted file mode 100644
index b6df9c2..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0011-Add-libmspack-library-from-upstream-without-unnecess.patch
+++ /dev/null
@@ -1,56090 +0,0 @@
-From e61759267dd586ead646ac7717edf73cf04fe4f3 Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
-Date: Wed, 30 Jul 2014 21:01:09 +0200
-Subject: Add libmspack library from upstream without unnecessary files
-
-this is from http://www.cabextract.org.uk/libmspack/libmspack-0.4alpha.tar.gz
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- libclamav/libmspack-0.4alpha/AUTHORS            |    12 +
- libclamav/libmspack-0.4alpha/COPYING.LIB        |   504 +
- libclamav/libmspack-0.4alpha/ChangeLog          |   491 +
- libclamav/libmspack-0.4alpha/INSTALL            |   370 +
- libclamav/libmspack-0.4alpha/Makefile.am        |   100 +
- libclamav/libmspack-0.4alpha/Makefile.in        |  1371 ++
- libclamav/libmspack-0.4alpha/NEWS               |     0
- libclamav/libmspack-0.4alpha/README             |   130 +
- libclamav/libmspack-0.4alpha/TODO               |     8 +
- libclamav/libmspack-0.4alpha/aclocal.m4         |  1033 ++
- libclamav/libmspack-0.4alpha/config.guess       |  1530 +++
- libclamav/libmspack-0.4alpha/config.h.in        |   113 +
- libclamav/libmspack-0.4alpha/config.sub         |  1773 +++
- libclamav/libmspack-0.4alpha/configure          | 14567 ++++++++++++++++++++++
- libclamav/libmspack-0.4alpha/configure.ac       |    50 +
- libclamav/libmspack-0.4alpha/depcomp            |   688 +
- libclamav/libmspack-0.4alpha/install-sh         |   520 +
- libclamav/libmspack-0.4alpha/libmspack.pc.in    |    10 +
- libclamav/libmspack-0.4alpha/ltmain.sh          |  9661 ++++++++++++++
- libclamav/libmspack-0.4alpha/m4/libtool.m4      |  8001 ++++++++++++
- libclamav/libmspack-0.4alpha/m4/ltoptions.m4    |   384 +
- libclamav/libmspack-0.4alpha/m4/ltsugar.m4      |   123 +
- libclamav/libmspack-0.4alpha/m4/ltversion.m4    |    23 +
- libclamav/libmspack-0.4alpha/m4/lt~obsolete.m4  |    98 +
- libclamav/libmspack-0.4alpha/missing            |   331 +
- libclamav/libmspack-0.4alpha/mspack/cab.h       |   127 +
- libclamav/libmspack-0.4alpha/mspack/cabc.c      |    24 +
- libclamav/libmspack-0.4alpha/mspack/cabd.c      |  1444 +++
- libclamav/libmspack-0.4alpha/mspack/chm.h       |   122 +
- libclamav/libmspack-0.4alpha/mspack/chmc.c      |    24 +
- libclamav/libmspack-0.4alpha/mspack/chmd.c      |  1392 +++
- libclamav/libmspack-0.4alpha/mspack/crc32.c     |    95 +
- libclamav/libmspack-0.4alpha/mspack/crc32.h     |    17 +
- libclamav/libmspack-0.4alpha/mspack/des.h       |    15 +
- libclamav/libmspack-0.4alpha/mspack/hlp.h       |    33 +
- libclamav/libmspack-0.4alpha/mspack/hlpc.c      |    24 +
- libclamav/libmspack-0.4alpha/mspack/hlpd.c      |    24 +
- libclamav/libmspack-0.4alpha/mspack/kwaj.h      |   118 +
- libclamav/libmspack-0.4alpha/mspack/kwajc.c     |    24 +
- libclamav/libmspack-0.4alpha/mspack/kwajd.c     |   561 +
- libclamav/libmspack-0.4alpha/mspack/lit.h       |    35 +
- libclamav/libmspack-0.4alpha/mspack/litc.c      |    24 +
- libclamav/libmspack-0.4alpha/mspack/litd.c      |    24 +
- libclamav/libmspack-0.4alpha/mspack/lzss.h      |    66 +
- libclamav/libmspack-0.4alpha/mspack/lzssd.c     |    93 +
- libclamav/libmspack-0.4alpha/mspack/lzx.h       |   221 +
- libclamav/libmspack-0.4alpha/mspack/lzxc.c      |    18 +
- libclamav/libmspack-0.4alpha/mspack/lzxd.c      |   895 ++
- libclamav/libmspack-0.4alpha/mspack/mspack.h    |  2353 ++++
- libclamav/libmspack-0.4alpha/mspack/mszip.h     |   126 +
- libclamav/libmspack-0.4alpha/mspack/mszipc.c    |    18 +
- libclamav/libmspack-0.4alpha/mspack/mszipd.c    |   514 +
- libclamav/libmspack-0.4alpha/mspack/oab.h       |    60 +
- libclamav/libmspack-0.4alpha/mspack/oabc.c      |    24 +
- libclamav/libmspack-0.4alpha/mspack/oabd.c      |   408 +
- libclamav/libmspack-0.4alpha/mspack/qtm.h       |   128 +
- libclamav/libmspack-0.4alpha/mspack/qtmd.c      |   489 +
- libclamav/libmspack-0.4alpha/mspack/readbits.h  |   207 +
- libclamav/libmspack-0.4alpha/mspack/readhuff.h  |   173 +
- libclamav/libmspack-0.4alpha/mspack/sha.h       |    15 +
- libclamav/libmspack-0.4alpha/mspack/system.c    |   239 +
- libclamav/libmspack-0.4alpha/mspack/system.h    |   124 +
- libclamav/libmspack-0.4alpha/mspack/szdd.h      |    39 +
- libclamav/libmspack-0.4alpha/mspack/szddc.c     |    24 +
- libclamav/libmspack-0.4alpha/mspack/szddd.c     |   247 +
- libclamav/libmspack-0.4alpha/test/cabd_md5.c    |   161 +
- libclamav/libmspack-0.4alpha/test/cabd_memory.c |   179 +
- libclamav/libmspack-0.4alpha/test/cabd_test.c   |   386 +
- libclamav/libmspack-0.4alpha/test/cabrip.c      |    81 +
- libclamav/libmspack-0.4alpha/test/chmd_find.c   |    95 +
- libclamav/libmspack-0.4alpha/test/chmd_md5.c    |    67 +
- libclamav/libmspack-0.4alpha/test/chmd_order.c  |   144 +
- libclamav/libmspack-0.4alpha/test/chminfo.c     |   284 +
- libclamav/libmspack-0.4alpha/test/chmx.c        |   216 +
- libclamav/libmspack-0.4alpha/test/error.h       |    22 +
- libclamav/libmspack-0.4alpha/test/expand.c      |    79 +
- libclamav/libmspack-0.4alpha/test/md5.c         |   457 +
- libclamav/libmspack-0.4alpha/test/md5.h         |   165 +
- libclamav/libmspack-0.4alpha/test/md5_fh.h      |   123 +
- libclamav/libmspack-0.4alpha/test/multifh.c     |   435 +
- libclamav/libmspack-0.4alpha/test/oabx.c        |    41 +
- 81 files changed, 55434 insertions(+)
- create mode 100644 libclamav/libmspack-0.4alpha/AUTHORS
- create mode 100644 libclamav/libmspack-0.4alpha/COPYING.LIB
- create mode 100644 libclamav/libmspack-0.4alpha/ChangeLog
- create mode 100644 libclamav/libmspack-0.4alpha/INSTALL
- create mode 100644 libclamav/libmspack-0.4alpha/Makefile.am
- create mode 100644 libclamav/libmspack-0.4alpha/Makefile.in
- create mode 100644 libclamav/libmspack-0.4alpha/NEWS
- create mode 100644 libclamav/libmspack-0.4alpha/README
- create mode 100644 libclamav/libmspack-0.4alpha/TODO
- create mode 100644 libclamav/libmspack-0.4alpha/aclocal.m4
- create mode 100755 libclamav/libmspack-0.4alpha/config.guess
- create mode 100644 libclamav/libmspack-0.4alpha/config.h.in
- create mode 100755 libclamav/libmspack-0.4alpha/config.sub
- create mode 100755 libclamav/libmspack-0.4alpha/configure
- create mode 100644 libclamav/libmspack-0.4alpha/configure.ac
- create mode 100755 libclamav/libmspack-0.4alpha/depcomp
- create mode 100755 libclamav/libmspack-0.4alpha/install-sh
- create mode 100644 libclamav/libmspack-0.4alpha/libmspack.pc.in
- create mode 100644 libclamav/libmspack-0.4alpha/ltmain.sh
- create mode 100644 libclamav/libmspack-0.4alpha/m4/libtool.m4
- create mode 100644 libclamav/libmspack-0.4alpha/m4/ltoptions.m4
- create mode 100644 libclamav/libmspack-0.4alpha/m4/ltsugar.m4
- create mode 100644 libclamav/libmspack-0.4alpha/m4/ltversion.m4
- create mode 100644 libclamav/libmspack-0.4alpha/m4/lt~obsolete.m4
- create mode 100755 libclamav/libmspack-0.4alpha/missing
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/cab.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/cabc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/cabd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/chm.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/chmc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/chmd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/crc32.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/crc32.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/des.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/hlp.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/hlpc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/hlpd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/kwaj.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/kwajc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/kwajd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/lit.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/litc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/litd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/lzss.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/lzssd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/lzx.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/lzxc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/lzxd.c
- create mode 100755 libclamav/libmspack-0.4alpha/mspack/mspack.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/mszip.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/mszipc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/mszipd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/oab.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/oabc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/oabd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/qtm.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/qtmd.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/readbits.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/readhuff.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/sha.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/system.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/system.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/szdd.h
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/szddc.c
- create mode 100644 libclamav/libmspack-0.4alpha/mspack/szddd.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/cabd_md5.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/cabd_memory.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/cabd_test.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/cabrip.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/chmd_find.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/chmd_md5.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/chmd_order.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/chminfo.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/chmx.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/error.h
- create mode 100644 libclamav/libmspack-0.4alpha/test/expand.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/md5.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/md5.h
- create mode 100644 libclamav/libmspack-0.4alpha/test/md5_fh.h
- create mode 100644 libclamav/libmspack-0.4alpha/test/multifh.c
- create mode 100644 libclamav/libmspack-0.4alpha/test/oabx.c
-
-diff --git a/libclamav/libmspack-0.4alpha/AUTHORS b/libclamav/libmspack-0.4alpha/AUTHORS
-new file mode 100644
-index 000000000000..be28722a8075
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/AUTHORS
-@@ -0,0 +1,12 @@
-+Principal author: Stuart Caie
-+
-+Based on specification documents from Microsoft Corporation and PKWARE.
-+
-+Contributors:
-+- LZX compressor by Matthew Russotto
-+- Quantum decompressor by Matthew Russotto
-+- old inflate decompressor by Dirk Stoecker / InfoZIP team
-+- Huffman table builder adapted from unlzx by Dave Tritscher
-+- LZX decompressor fixes by Jae Jung and Igor Glucksmann
-+- Debianisation by Markus Sinner
-+- Quantum decompressor fix by Larry Frieson
-diff --git a/libclamav/libmspack-0.4alpha/COPYING.LIB b/libclamav/libmspack-0.4alpha/COPYING.LIB
-new file mode 100644
-index 000000000000..b1e3f5a26387
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/COPYING.LIB
-@@ -0,0 +1,504 @@
-+		  GNU LESSER GENERAL PUBLIC LICENSE
-+		       Version 2.1, February 1999
-+
-+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-+     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.
-+
-+[This is the first released version of the Lesser GPL.  It also counts
-+ as the successor of the GNU Library Public License, version 2, hence
-+ the version number 2.1.]
-+
-+			    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 Lesser General Public License, applies to some
-+specially designated software packages--typically libraries--of the
-+Free Software Foundation and other authors who decide to use it.  You
-+can use it too, but we suggest you first think carefully about whether
-+this license or the ordinary General Public License is the better
-+strategy to use in any particular case, based on the explanations below.
-+
-+  When we speak of free software, we are referring to freedom of use,
-+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 and use pieces of
-+it in new free programs; and that you are informed that you can do
-+these things.
-+
-+  To protect your rights, we need to make restrictions that forbid
-+distributors to deny you these rights or to ask you to surrender these
-+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 other code 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.
-+
-+  We protect your rights with a two-step method: (1) we copyright the
-+library, and (2) we offer you this license, which gives you legal
-+permission to copy, distribute and/or modify the library.
-+
-+  To protect each distributor, we want to make it very clear that
-+there is no warranty for the free library.  Also, if the library is
-+modified by someone else and passed on, the recipients should know
-+that what they have is not the original version, so that the original
-+author's reputation will not be affected by problems that might be
-+introduced by others.
-+
-+  Finally, software patents pose a constant threat to the existence of
-+any free program.  We wish to make sure that a company cannot
-+effectively restrict the users of a free program by obtaining a
-+restrictive license from a patent holder.  Therefore, we insist that
-+any patent license obtained for a version of the library must be
-+consistent with the full freedom of use specified in this license.
-+
-+  Most GNU software, including some libraries, is covered by the
-+ordinary GNU General Public License.  This license, the GNU Lesser
-+General Public License, applies to certain designated libraries, and
-+is quite different from the ordinary General Public License.  We use
-+this license for certain libraries in order to permit linking those
-+libraries into non-free programs.
-+
-+  When a program is linked with a library, whether statically or using
-+a shared library, the combination of the two is legally speaking a
-+combined work, a derivative of the original library.  The ordinary
-+General Public License therefore permits such linking only if the
-+entire combination fits its criteria of freedom.  The Lesser General
-+Public License permits more lax criteria for linking other code with
-+the library.
-+
-+  We call this license the "Lesser" General Public License because it
-+does Less to protect the user's freedom than the ordinary General
-+Public License.  It also provides other free software developers Less
-+of an advantage over competing non-free programs.  These disadvantages
-+are the reason we use the ordinary General Public License for many
-+libraries.  However, the Lesser license provides advantages in certain
-+special circumstances.
-+
-+  For example, on rare occasions, there may be a special need to
-+encourage the widest possible use of a certain library, so that it becomes
-+a de-facto standard.  To achieve this, non-free programs must be
-+allowed to use the library.  A more frequent case is that a free
-+library does the same job as widely used non-free libraries.  In this
-+case, there is little to gain by limiting the free library to free
-+software only, so we use the Lesser General Public License.
-+
-+  In other cases, permission to use a particular library in non-free
-+programs enables a greater number of people to use a large body of
-+free software.  For example, permission to use the GNU C Library in
-+non-free programs enables many more people to use the whole GNU
-+operating system, as well as its variant, the GNU/Linux operating
-+system.
-+
-+  Although the Lesser General Public License is Less protective of the
-+users' freedom, it does ensure that the user of a program that is
-+linked with the Library has the freedom and the wherewithal to run
-+that program using a modified version of the Library.
-+
-+  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, whereas the latter must
-+be combined with the library in order to run.
-+
-+		  GNU LESSER GENERAL PUBLIC LICENSE
-+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-+
-+  0. This License Agreement applies to any software library or other
-+program which contains a notice placed by the copyright holder or
-+other authorized party saying it may be distributed under the terms of
-+this Lesser 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 combine 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) Use a suitable shared library mechanism for linking with the
-+    Library.  A suitable mechanism is one that (1) uses at run time a
-+    copy of the library already present on the user's computer system,
-+    rather than copying library functions into the executable, and (2)
-+    will operate properly with a modified version of the library, if
-+    the user installs one, as long as the modified version is
-+    interface-compatible with the version that the work was made with.
-+
-+    c) 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.
-+
-+    d) 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.
-+
-+    e) 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 materials to be 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 with
-+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 Lesser 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
-+
-+           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 Lesser General Public
-+    License as published by the Free Software Foundation; either
-+    version 2.1 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
-+    Lesser General Public License for more details.
-+
-+    You should have received a copy of the GNU Lesser General Public
-+    License along with this library; if not, write to the Free Software
-+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  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/libclamav/libmspack-0.4alpha/ChangeLog b/libclamav/libmspack-0.4alpha/ChangeLog
-new file mode 100644
-index 000000000000..2d3cf198d499
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/ChangeLog
-@@ -0,0 +1,491 @@
-+2013-05-27  Stuart Caie <kyzer at 4u.net>
-+
-+	* test/oabx.c: added new example command for unpacking OAB files.
-+
-+2013-05-17  Stuart Caie <kyzer at 4u.net>
-+
-+	* mspack.h: Support for decompressing a new file format, the Exchange
-+	Offline Address Book (OAB). Thanks to David Woodhouse for writing
-+	the implementation. I've bumped the version to 0.4alpha in celebration.
-+
-+2012-04-15  Stuart Caie <kyzer at 4u.net>
-+
-+	* chmd_read_headers(): More thorough validation of CHM header values.
-+	Thanks to Sergei Trofimovich for finding sample files.
-+
-+	* read_reset_table(): Better test for overflow. Thanks again to
-+	Sergei Trofimovich for generating a good example.
-+
-+	* test/chminfo.c: this test program reads the reset table by itself
-+	and was also susceptible to the same overflow problems.
-+
-+2012-03-16  Stuart Caie <kyzer at 4u.net>
-+
-+	* Makefile.am, configure.ac: make the GCC warning flags conditional
-+	on using the GCC compiler. Thanks to Dagobert Michelsen for letting
-+	me know.
-+
-+2011-11-25  Stuart Caie <kyzer at 4u.net>
-+
-+	* lzxd_decompress(): Prevent matches that go beyond the start
-+	of the LZX stream. Thanks to Sergei Trofimovich for testing
-+	with valgrind and finding a corrupt sample file that exercises
-+	this scenario.
-+
-+2011-11-23  Stuart Caie <kyzer at 4u.net>
-+
-+	* chmd_fast_find(): add a simple check against infinite PGML
-+	loops. Thanks to Sergei Trofimovich for finding sample files.
-+	Multi-step PGML or PGMI infinite loops remain possible.
-+
-+2011-06-17  Stuart Caie <kyzer at 4u.net>
-+
-+	* read_reset_table(): wasn't reading the right offset for getting
-+	the LZX uncompressed length. Thanks to Sergei Trofimovich for
-+	finding the bug.
-+
-+2011-05-31  Stuart Caie <kyzer at 4u.net>
-+
-+	* kwajd.c, mszipd.c: KWAJ type 4 files (MSZIP) are now supported.
-+	Thanks to Clive Turvey for sending me the format details.
-+
-+	* doc/szdd_kwaj_format.html: Updated documentation to cover
-+	KWAJ's MSZIP compression.
-+
-+2011-05-11  Stuart Caie <kyzer at 4u.net>
-+
-+	* cabd_find(): rethought how large vs small file support is
-+	handled, as users were getting "library not compiled to support
-+	large files" message on some small files. Now checks for actual
-+	off_t overflow, rather than trying to preempt it.
-+
-+2011-05-10:  Stuart Caie <kyzer at 4u.net>
-+
-+	* chmd.c: implemented fast_find()
-+
-+	* test/chmx.c: removed the multiple extraction orders, now it just
-+	extracts in the fastest order
-+
-+	* test/chmd_order.c: new program added to test that different
-+	extraction orders don't affect the results of extraction
-+
-+	* test/chmd_find.c: new program to test that fast_find() works.
-+	Either supply your own filename to find, or it will try finding
-+	every file in the CHM.
-+
-+	* configure.ac: because CHM fast find requires case-insensitive
-+	comparisons, tolower() or towlower() are used where possible.
-+	These functions and their headers are checked for.
-+
-+	* mspack.h: exposed struct mschmd_sec_mscompressed's spaninfo
-+	and struct mschmd_header's first_pmgl, last_pmgl and chunk_cache
-+	to the world. Check that the CHM decoder version is v2 or higher
-+	before using them.
-+
-+	* system.c: set CHM decoder version to v2
-+
-+2011-04-27:  Stuart Caie <kyzer at 4u.net>
-+
-+	* many files: Made C++ compilers much happier with libmspack.
-+	Changed char * to const char * where possible.
-+
-+	* mspack.h: Changed user-supplied char * to const char *.
-+	Unless you've written your own mspack_system implementation,
-+	you will likely be unaffected.
-+	If you have written your own mspack_system implementation:
-+	1: change open()    so it takes a const char *filename
-+	2: change message() so it takes a const char *format
-+	If you cast your function into the mspack_system struct,
-+	you can change the cast instead of the function.
-+
-+2011-04-27:  Stuart Caie <kyzer at 4u.net>
-+
-+	* Makefile.am: changed CFLAGS from "-Wsign-compare -Wconversion
-+	-pedantic" to "-W -Wno-unused". This enables more warnings, and
-+	disables these specific warnings which are now a hinderance.
-+
-+2011-04-27:  Stuart Caie <kyzer at 4u.net>
-+
-+	* test/cabrip.c, test/chminfo.c: used macros from system.h for
-+	printing offsets and reading 64-bit values, rather than
-+	reinvent the wheel.
-+
-+	* cabd_can_merge_folders(): declare variables at the start of
-+	a block so older C compilers won't choke.
-+
-+	* cabd_find(): avoid compiler complaints about non-initialised
-+	variables. We know they'll get initialised before use, but the
-+	compiler can't reverse a state machine to draw the same conclusion.
-+
-+2011-04-26:  Stuart Caie <kyzer at 4u.net>
-+
-+	* configure.ac, mspack/system.h: Added a configure test to get
-+	the size of off_t. If off_t is 8 bytes or more, we presume this
-+	system has large file support. This fixes LFS detection for Fedora
-+	x86_64 and Darwin/Mac OS X, neither of which declare FILESIZEBITS in
-+	<limits.h>. It's not against the POSIX standard to do this: "A
-+	definition of [FILESIZEBITS] shall be omitted from the <limits.h>
-+	header on specific implementations where the corresponding value is
-+	equal to or greater than the stated minimum, but where the value can
-+	vary depending on the file to which it is applied."
-+	(http://pubs.opengroup.org/onlinepubs/009695399/basedefs/limits.h.html)
-+	Thanks to Edward Sheldrake for the patch.
-+
-+2011-04-26:  Stuart Caie <kyzer at 4u.net>
-+
-+	* chmd.c: all 64-bit integer reads are now consolidated into
-+	the read_off64() function
-+
-+	* chmd_read_headers(): this function has been made resilient
-+	against accessing memory past the end of a chunk. Thanks to
-+	Sergei Trofimovich for sending me examples and analysis.
-+
-+	* chmd_init_decomp(): this function now reads the SpanInfo file
-+	if the ResetTable file isn't available, it also checks that each
-+	system file it needs is large enough before accessing it, and
-+	some of its code has been split into several new functions:
-+	find_sys_file(), read_reset_table() and read_spaninfo()
-+
-+2011-04-26:  Stuart Caie <kyzer at 4u.net>
-+
-+	* mspack.h, chmd.c: now reads the SpanInfo system file if the
-+	ResetTable file isn't available. This adds a new spaninfo pointer
-+	into struct mschmd_sec_mscompressed
-+
-+2011-04-26:  Stuart Caie <kyzer at 4u.net>
-+
-+	* test/chminfo.c: more sanity checks for corrupted CHM files where
-+	entries go past the end of a PGML/PGMI chunk, thanks to
-+	Sergei Trofimovich for sending me examples and analysis.
-+
-+2011-04-25:  Stuart Caie <kyzer at 4u.net>
-+
-+	* cabd_merge():  Drew D'Addesio showed me spanning cabinets which
-+	don't have all the CFFILE entries they should, but otherwise have
-+	all necessary data for extraction. Changed the merging folders
-+	test to be less strict; if folders don't exactly match, warn which
-+	files are missing, but allow merging if at least one necessary
-+	file is present.
-+
-+2010-09-24:  Stuart Caie <kyzer at 4u.net>
-+
-+	* readhuff.h: Don't let build_decode_table() allow empty trees.
-+	It's meant to be special case just for the LZX length tree, so
-+	move that logic out to the LZX code. Thanks to Danny Kroshin for
-+	discovering the bug.
-+
-+	* lzxd.c: Allow empty length trees, but not other trees. If
-+	the length tree is empty, fail if asked to decode a length symbol.
-+	Again, thanks to Danny Kroshin for discovering the bug.
-+
-+2010-09-20:  Stuart Caie <kyzer at 4u.net>
-+
-+	* Makefile.am: Set EXTRA_DIST so it doesn't include .svn
-+	directories in the distribution, but does include docs.
-+
-+2010-09-20:  Stuart Caie <kyzer at 4u.net>
-+
-+	* Makefile.am, configure.ac: Use modern auto* practises; turn on
-+	automake silent rules where possible, use "m4" directory for libtool
-+	macros, use LT_INIT instead of AC_PROG_LIBTOOL and use AM_CPPFLAGS
-+	instead of INCLUDES. Thanks to Sergei Trofimovich for the patch.
-+
-+2010-09-15:  Stuart Caie <kyzer at 4u.net>
-+
-+	* many files: Made the code compile with C++
-+	- Renamed all 'this' variables/parameters to 'self'
-+	- Added casts to all memory allocations.
-+	- Added extern "C" to header files with extern declarations.
-+	- Made system.c include system.h.
-+	- Changed the K&R-style headers to ANSI-style headers in md5.c
-+
-+2010-08-04:  Stuart Caie <kyzer at 4u.net>
-+
-+	* many files: removed unnecessary <unistd.h> include
-+
-+2010-07-19:  Stuart Caie <kyzer at 4u.net>
-+
-+	* cabd_md5.c, chmd_md5.c: Replace writing files to disk then
-+	MD5summing them, with an MD5summer built into mspack_system.
-+	Much, much faster results.
-+
-+	* qtmd_decompress(): Robert Riebisch pointed out a Quantum
-+	data integrity check that could never be tripped, because
-+	frame_todo is unsigned, so it will never be decremented
-+	below zero. Replaced the check with one that assumes that
-+	decrementing past zero wraps frame_todo round to a number
-+	more than its maximum value (QTM_FRAME_SIZE).
-+
-+2010-07-18:  Stuart Caie <kyzer at 4u.net>
-+
-+	* cabd.c: Special logic to pass cabd_sys_read() errors back
-+	to cabd_extract() wasn't compatible with the decompressor
-+	logic of returning the same error repeatedly once unpacking
-+	fails. This meant that if decompressing failed because of
-+	a read error, then the next file in the same folder would
-+	come back as "no error", but the decompressed wouldn't have
-+	even attempted to decompress the file. Added a new state
-+	variable, read_error, with the same lifespan as a decompressor,
-+	to pass the underlying reason for MSPACK_ERR_READ errors back.
-+
-+	* mszipd.c: improve MS-ZIP recovery by saving all the bytes
-+	decoded prior to a block failing. This requires remembering
-+	how far we got through the block, so the code has been made
-+	slightly slower (about 0.003 seconds slower per gigabyte
-+	unpacked) by removing the local variable window_posn
-+	and keeping it in the state structure instead.
-+
-+2010-07-16:  Stuart Caie <kyzer at 4u.net>
-+
-+	* Makefile.am: strange interactions. When -std=c99 is used,
-+	my Ubuntu's <stdio.h> (libc6-dev 2.11.1-0ubuntu7.2) does NOT
-+	define fseeko() unless _LARGEFILE_SOURCE is also defined. But
-+	configure always uses -std=gnu99, not -std=c99, so its test
-+	determines _LARGEFILE_SOURCE isn't needed but HAVE_FSEEKO is
-+	true. The implicit fseeko definition has a 32-bit rather than
-+	64-bit offset, which means the mode parameter is interpreted
-+	as part of the offset, and the mode is taken from the stack,
-+	which is generally 0 (SEEK_SET). This breaks all SEEK_CURs.
-+	The code works fine when -std=c99 is not set, so just remove
-+	it for the time being.
-+
-+2010-07-12:  Stuart Caie <kyzer at 4u.net>
-+
-+	* system.c: Reject reading/writing a negative number of bytes.
-+
-+	* chmd.c: allow zero-length files to be seen. Previously they were
-+	skipped because they were mistaken for directory entries.
-+
-+2010-07-08:  Stuart Caie <kyzer at 4u.net>
-+
-+	* qtmd.c: Larry Frieson found an important bug in the Quantum
-+	decoder. Window wraps flush all unwritten data to disk.
-+	However, sometimes less data is needed, which makes
-+	out_bytes negative, which is then passed to write(). Some
-+	write() implementations treat negative sizes it as a large
-+	positive integer and segfault trying to write the buffer.
-+
-+	* Makefile.am, test/*.c: fixed automake file so that the
-+	package passes a "make distcheck".
-+
-+2010-07-07:  Stuart Caie <kyzer at 4u.net>
-+
-+	* doc/szdd_kwaj_format.html: explain SZDD/KWAJ file format.
-+
-+	* lzssd.c: fixed SZDD decompression bugs.
-+
-+	* test/chmd_compare: Add scripts for comparing chmd_md5 against
-+	Microsoft's own code.
-+
-+	* test/chmd_md5.c: remove the need to decompress everything
-+	twice, as this is already in chmx.c if needed.
-+
-+2010-07-06:  Stuart Caie <kyzer at 4u.net>
-+
-+	* many files: added SZDD and KWAJ decompression support.
-+
-+2010-06-18:  Stuart Caie  <kyzer at 4u.net>
-+
-+	* system.h: expanded the test for 64-bit largefile support so
-+	it also works on 64-bit native operating systems where you
-+	don't have to define _FILE_OFFSET_BITS.
-+
-+2010-06-17:  Stuart Caie <kyzer at 4u.net>
-+
-+	* libmspack.pc.in: Added pkg-config support. Thanks to
-+	Patrice Dumas for the patch.
-+
-+2010-06-14:  Stuart Caie <kyzer at 4u.net>
-+
-+	* qtmd.c, lzxd.c, mszipd.c: created new headers, readbits.h and
-+	readhuff.h, which bundle up the bit-reading and huffman-reading
-+	code found in the MSZIP, LZX and Quantum decoders.
-+
-+2010-06-11:  Stuart Caie <kyzer at 4u.net>
-+
-+	* qtmd_static_init(): Removed function in favour of static const
-+	tables, same rationale as for lzxd_static_init().
-+
-+	* qtmd_read_input(), zipd_read_input(): After testing against my
-+	set of CABs from the wild, I've found both these functions _need_
-+	an extra EOF flag, like lzxd_read_input() has. So I've added
-+	it. This means CABs get decoded properly AND there's no reading
-+	fictional bytes.
-+
-+2010-06-03:  Stuart Caie  <kyzer at 4u.net>
-+
-+	* test/cabd_md5.c: updated this so it has better output and
-+	doesn't need to be in the same directory as the files for multi-
-+	part sets.
-+
-+2010-05-20:  Stuart Caie  <kyzer at 4u.net>
-+
-+	* qtmd_read_input(), zipd_read_input(): Both these functions are
-+	essentially copies of lzxd_read_input(), but that has a feature
-+	they don't have - an extra EOF flag. So if EOF is
-+	encountered (sys->read() returns 0 bytes), these don't pass on the
-+	error. Their respective bit-reading functions that called them
-+	then go on to access at least one byte of the input buffer, which
-+	doesn't exist as sys->read() returned 0. Thanks to Michael
-+	Vidrevich for spotting this and providing a test case.
-+
-+2010-05-20:  Stuart Caie  <kyzer at 4u.net>
-+
-+	* system.h: It turns out no configure.ac tests are needed to
-+	decide between __func__ and __FUNCTION__, so I put the standard
-+	one (__func__) back into the D() macro, along with some
-+	special-case ifdefs for old versions of GCC.
-+
-+	* lzxd_static_init(): Removed function in favour of static const
-+	tables.  Jorge Lodos thinks it causes multithreading problems, I
-+	disagree. However, there are speed benefits to declaring the
-+	tables as static const.
-+
-+	* cabd_init_decomp(): Fixed code which never runs but would write
-+	to a null pointer if it could. Changed it to an assert() as it
-+	will only trip if someone rewrites the internals of cabd.c. Thanks
-+	to Jorge Lodos for finding it.
-+
-+	* inflate(): Fixed an off-by-one error: if the LITERAL table
-+	emitted code 286, this would read one byte past the end of
-+	lit_extrabits[]. Thanks to Jorge Lodos for finding it.
-+
-+2010-05-06:  Stuart Caie  <kyzer at 4u.net>
-+
-+	* test/cabrip.c, test/chminfo.c: add fseeko() support
-+
-+2009-06-01:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* README: clarify the extended license terms
-+
-+	* doc, Makefile.am: make the doxygen makefile work when using
-+	an alternate build directory
-+
-+2006-09-20:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* system.h: I had a choice of adding more to configure.ac to
-+	test for __func__ and __FUNCTION__, or just removing __FUNCTION__
-+	from the D() macro. I chose the latter.
-+
-+	* Makefile.am: Now the --enable-debug in configure will actually
-+	apply -DDEBUG to the sources.
-+
-+2006-09-20:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* qtmd_decompress(): Fixed a major bug in the QTM decoder, as
-+	reported by Tomasz Kojm last year. Removed the restriction on
-+	window sizes as a result. Correctly decodes the XLVIEW cabinets.
-+
-+2006-08-31:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* lzxd_decompress(): Two major bugs fixed. Firstly, the R0/R1/R2
-+	local variables weren't set to 1 after lzxd_reset_state().
-+	Secondly, the LZX decompression stream can sometimes become
-+	odd-aligned (after an uncompressed block) and the next 16 bit
-+	fetch needs to be split across two input buffers, ENSURE_BITS()
-+	didn't cover this case. Many thanks to Igor Glucksmann for
-+	discovering both these bugs.
-+
-+2005-06-30:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* cabd_search(): fixed problems with searching files > 4GB for
-+	cabinets.
-+
-+2005-06-23:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* qtmd_init(): The QTM decoder is broken for QTM streams with a
-+	window size less than the frame size. Until this is fixed, fail
-+	to initialise QTM window sizes less than 15. Thanks to Tomasz Kojm
-+	for finding the bug.
-+
-+2005-03-22:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* system.h: now undefs "read", as the latest glibc defines read()
-+	as a macro which messes everything up. Thanks to Ville Skyttä for
-+	the update.
-+
-+2005-03-14:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* test/multifh.c: write an mspack_system implementation that can
-+	handle normal disk files, open file handles, open file descriptors
-+	and raw memory all at the same time.
-+
-+2005-02-24:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* chmd_read_headers(): avoid infinite loop when chmhs1_ChunkSize is
-+	zero. Thanks to Serge Semashko for the research and discovery.
-+
-+2005-02-18:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* mspack.h: renamed the "interface" parameter of mspack_version() to
-+	"entity", as interface is a reserved word in C++. Thanks to Yuriy Z
-+	for the discovery.
-+
-+2004-12-09:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* lzss.h, szdd.h, szddd.h: more work on the SZDD/LZSS design.
-+	
-+2004-06-12:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* lzxd_static_init(): removed write to lzxd_extra_bits[52], thanks
-+	to Nigel Horne from the ClamAV project.
-+
-+2004-04-23:  Stuart Caie   <kyzer at 4u.net>
-+
-+	* mspack.h: changed 'this' parameters to 'self' to allow compiling in
-+	C++ compilers, thanks to Michal Cihar for the suggestion.
-+
-+	* mspack.h, system.h, mspack.def, winbuild.sh: integrated some changes
-+	from Petr Blahos to let libmspack build as a Win32 DLL.
-+
-+	* chmd_fast_find(): added the first part of this code, and comments
-+	sufficient to finish it :)
-+
-+2004-04-08  Stuart Caie   <kyzer at 4u.net>
-+
-+	* test/chminfo.c: added a program for dumping useful data from CHM
-+	files, e.g. index entries and reset tables. I wrote this a while ago
-+	for investigating a corrupt cabinet, but I never committed it.
-+
-+2004-03-26  Stuart Caie   <kyzer at 4u.net>
-+
-+	* test/cabd_memory.c: added a new test example which shows an
-+	mspack_system implementation that reads and writes from memory only,
-+	no file I/O. Even the source code has a little cab file embedded in it.
-+
-+2004-03-10  Stuart Caie   <kyzer at 4u.net>
-+
-+	* cabd.c: updated the location of the CAB SDK.
-+
-+	* cabd.c: changed a couple of MSPACK_ERR_READ errors not based on
-+	read() failures into MSPACK_ERR_DATAFORMAT errors.
-+
-+	* mszipd_decompress(): repair mode now aborts after writing a
-+	repaired block if the error was a hard error (e.g. read error, out
-+	of blocks, etc)
-+
-+2004-03-08  Stuart Caie   <kyzer at 4u.net>
-+
-+	* Makefile.am: now builds and installs a versioned library.
-+
-+	* mszipd.c: completed a new MS-ZIP and inflate implementation.
-+
-+	* system.c: added mspack_version() and committed to a versioned
-+	ABI for the library.
-+
-+	* cabd.c: made mszip repair functionality work correctly.
-+
-+	* cabd.c: now identifies invalid block headers
-+
-+	* doc/: API documentation is now included with the library, not
-+	just on the web.
-+
-+	* chmd.c: fixed error messages and 64-bit debug output.
-+
-+	* chmd.c: now also catches NULL files in section 1.
-+
-+	* test/chmx.c: now acts more like cabextract.
-+
-+2003-08-29  Stuart Caie   <kyzer at 4u.net>
-+
-+	* ChangeLog: started keeping a ChangeLog :)
-diff --git a/libclamav/libmspack-0.4alpha/INSTALL b/libclamav/libmspack-0.4alpha/INSTALL
-new file mode 100644
-index 000000000000..a1e89e18ad20
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/INSTALL
-@@ -0,0 +1,370 @@
-+Installation Instructions
-+*************************
-+
-+Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
-+Inc.
-+
-+   Copying and distribution of this file, with or without modification,
-+are permitted in any medium without royalty provided the copyright
-+notice and this notice are preserved.  This file is offered as-is,
-+without warranty of any kind.
-+
-+Basic Installation
-+==================
-+
-+   Briefly, the shell commands `./configure; make; make install' should
-+configure, build, and install this package.  The following
-+more-detailed instructions are generic; see the `README' file for
-+instructions specific to this package.  Some packages provide this
-+`INSTALL' file but do not implement all of the features documented
-+below.  The lack of an optional feature in a given package is not
-+necessarily a bug.  More recommendations for GNU packages can be found
-+in *note Makefile Conventions: (standards)Makefile Conventions.
-+
-+   The `configure' shell script attempts to guess correct values for
-+various system-dependent variables used during compilation.  It uses
-+those values to create a `Makefile' in each directory of the package.
-+It may also create one or more `.h' files containing system-dependent
-+definitions.  Finally, it creates a shell script `config.status' that
-+you can run in the future to recreate the current configuration, and a
-+file `config.log' containing compiler output (useful mainly for
-+debugging `configure').
-+
-+   It can also use an optional file (typically called `config.cache'
-+and enabled with `--cache-file=config.cache' or simply `-C') that saves
-+the results of its tests to speed up reconfiguring.  Caching is
-+disabled by default to prevent problems with accidental use of stale
-+cache files.
-+
-+   If you need to do unusual things to compile the package, please try
-+to figure out how `configure' could check whether to do them, and mail
-+diffs or instructions to the address given in the `README' so they can
-+be considered for the next release.  If you are using the cache, and at
-+some point `config.cache' contains results you don't want to keep, you
-+may remove or edit it.
-+
-+   The file `configure.ac' (or `configure.in') is used to create
-+`configure' by a program called `autoconf'.  You need `configure.ac' if
-+you want to change it or regenerate `configure' using a newer version
-+of `autoconf'.
-+
-+   The simplest way to compile this package is:
-+
-+  1. `cd' to the directory containing the package's source code and type
-+     `./configure' to configure the package for your system.
-+
-+     Running `configure' might take a while.  While running, it prints
-+     some messages telling which features it is checking for.
-+
-+  2. Type `make' to compile the package.
-+
-+  3. Optionally, type `make check' to run any self-tests that come with
-+     the package, generally using the just-built uninstalled binaries.
-+
-+  4. Type `make install' to install the programs and any data files and
-+     documentation.  When installing into a prefix owned by root, it is
-+     recommended that the package be configured and built as a regular
-+     user, and only the `make install' phase executed with root
-+     privileges.
-+
-+  5. Optionally, type `make installcheck' to repeat any self-tests, but
-+     this time using the binaries in their final installed location.
-+     This target does not install anything.  Running this target as a
-+     regular user, particularly if the prior `make install' required
-+     root privileges, verifies that the installation completed
-+     correctly.
-+
-+  6. You can remove the program binaries and object files from the
-+     source code directory by typing `make clean'.  To also remove the
-+     files that `configure' created (so you can compile the package for
-+     a different kind of computer), type `make distclean'.  There is
-+     also a `make maintainer-clean' target, but that is intended mainly
-+     for the package's developers.  If you use it, you may have to get
-+     all sorts of other programs in order to regenerate files that came
-+     with the distribution.
-+
-+  7. Often, you can also type `make uninstall' to remove the installed
-+     files again.  In practice, not all packages have tested that
-+     uninstallation works correctly, even though it is required by the
-+     GNU Coding Standards.
-+
-+  8. Some packages, particularly those that use Automake, provide `make
-+     distcheck', which can by used by developers to test that all other
-+     targets like `make install' and `make uninstall' work correctly.
-+     This target is generally not run by end users.
-+
-+Compilers and Options
-+=====================
-+
-+   Some systems require unusual options for compilation or linking that
-+the `configure' script does not know about.  Run `./configure --help'
-+for details on some of the pertinent environment variables.
-+
-+   You can give `configure' initial values for configuration parameters
-+by setting variables in the command line or in the environment.  Here
-+is an example:
-+
-+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-+
-+   *Note Defining Variables::, for more details.
-+
-+Compiling For Multiple Architectures
-+====================================
-+
-+   You can compile the package for more than one kind of computer at the
-+same time, by placing the object files for each architecture in their
-+own directory.  To do this, you can use GNU `make'.  `cd' to the
-+directory where you want the object files and executables to go and run
-+the `configure' script.  `configure' automatically checks for the
-+source code in the directory that `configure' is in and in `..'.  This
-+is known as a "VPATH" build.
-+
-+   With a non-GNU `make', it is safer to compile the package for one
-+architecture at a time in the source code directory.  After you have
-+installed the package for one architecture, use `make distclean' before
-+reconfiguring for another architecture.
-+
-+   On MacOS X 10.5 and later systems, you can create libraries and
-+executables that work on multiple system types--known as "fat" or
-+"universal" binaries--by specifying multiple `-arch' options to the
-+compiler but only a single `-arch' option to the preprocessor.  Like
-+this:
-+
-+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
-+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
-+                 CPP="gcc -E" CXXCPP="g++ -E"
-+
-+   This is not guaranteed to produce working output in all cases, you
-+may have to build one architecture at a time and combine the results
-+using the `lipo' tool if you have problems.
-+
-+Installation Names
-+==================
-+
-+   By default, `make install' installs the package's commands under
-+`/usr/local/bin', include files under `/usr/local/include', etc.  You
-+can specify an installation prefix other than `/usr/local' by giving
-+`configure' the option `--prefix=PREFIX', where PREFIX must be an
-+absolute file name.
-+
-+   You can specify separate installation prefixes for
-+architecture-specific files and architecture-independent files.  If you
-+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-+PREFIX as the prefix for installing programs and libraries.
-+Documentation and other data files still use the regular prefix.
-+
-+   In addition, if you use an unusual directory layout you can give
-+options like `--bindir=DIR' to specify different values for particular
-+kinds of files.  Run `configure --help' for a list of the directories
-+you can set and what kinds of files go in them.  In general, the
-+default for these options is expressed in terms of `${prefix}', so that
-+specifying just `--prefix' will affect all of the other directory
-+specifications that were not explicitly provided.
-+
-+   The most portable way to affect installation locations is to pass the
-+correct locations to `configure'; however, many packages provide one or
-+both of the following shortcuts of passing variable assignments to the
-+`make install' command line to change installation locations without
-+having to reconfigure or recompile.
-+
-+   The first method involves providing an override variable for each
-+affected directory.  For example, `make install
-+prefix=/alternate/directory' will choose an alternate location for all
-+directory configuration variables that were expressed in terms of
-+`${prefix}'.  Any directories that were specified during `configure',
-+but not in terms of `${prefix}', must each be overridden at install
-+time for the entire installation to be relocated.  The approach of
-+makefile variable overrides for each directory variable is required by
-+the GNU Coding Standards, and ideally causes no recompilation.
-+However, some platforms have known limitations with the semantics of
-+shared libraries that end up requiring recompilation when using this
-+method, particularly noticeable in packages that use GNU Libtool.
-+
-+   The second method involves providing the `DESTDIR' variable.  For
-+example, `make install DESTDIR=/alternate/directory' will prepend
-+`/alternate/directory' before all installation names.  The approach of
-+`DESTDIR' overrides is not required by the GNU Coding Standards, and
-+does not work on platforms that have drive letters.  On the other hand,
-+it does better at avoiding recompilation issues, and works well even
-+when some directory options were not specified in terms of `${prefix}'
-+at `configure' time.
-+
-+Optional Features
-+=================
-+
-+   If the package supports it, you can cause programs to be installed
-+with an extra prefix or suffix on their names by giving `configure' the
-+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-+
-+   Some packages pay attention to `--enable-FEATURE' options to
-+`configure', where FEATURE indicates an optional part of the package.
-+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-+is something like `gnu-as' or `x' (for the X Window System).  The
-+`README' should mention any `--enable-' and `--with-' options that the
-+package recognizes.
-+
-+   For packages that use the X Window System, `configure' can usually
-+find the X include and library files automatically, but if it doesn't,
-+you can use the `configure' options `--x-includes=DIR' and
-+`--x-libraries=DIR' to specify their locations.
-+
-+   Some packages offer the ability to configure how verbose the
-+execution of `make' will be.  For these packages, running `./configure
-+--enable-silent-rules' sets the default to minimal output, which can be
-+overridden with `make V=1'; while running `./configure
-+--disable-silent-rules' sets the default to verbose, which can be
-+overridden with `make V=0'.
-+
-+Particular systems
-+==================
-+
-+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
-+CC is not installed, it is recommended to use the following options in
-+order to use an ANSI C compiler:
-+
-+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
-+
-+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
-+
-+   HP-UX `make' updates targets which have the same time stamps as
-+their prerequisites, which makes it generally unusable when shipped
-+generated files such as `configure' are involved.  Use GNU `make'
-+instead.
-+
-+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
-+a workaround.  If GNU CC is not installed, it is therefore recommended
-+to try
-+
-+     ./configure CC="cc"
-+
-+and if that doesn't work, try
-+
-+     ./configure CC="cc -nodtk"
-+
-+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
-+directory contains several dysfunctional programs; working variants of
-+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
-+in your `PATH', put it _after_ `/usr/bin'.
-+
-+   On Haiku, software installed for all users goes in `/boot/common',
-+not `/usr/local'.  It is recommended to use the following options:
-+
-+     ./configure --prefix=/boot/common
-+
-+Specifying the System Type
-+==========================
-+
-+   There may be some features `configure' cannot figure out
-+automatically, but needs to determine by the type of machine the package
-+will run on.  Usually, assuming the package is built to be run on the
-+_same_ architectures, `configure' can figure that out, but if it prints
-+a message saying it cannot guess the machine type, give it the
-+`--build=TYPE' option.  TYPE can either be a short name for the system
-+type, such as `sun4', or a canonical name which has the form:
-+
-+     CPU-COMPANY-SYSTEM
-+
-+where SYSTEM can have one of these forms:
-+
-+     OS
-+     KERNEL-OS
-+
-+   See the file `config.sub' for the possible values of each field.  If
-+`config.sub' isn't included in this package, then this package doesn't
-+need to know the machine type.
-+
-+   If you are _building_ compiler tools for cross-compiling, you should
-+use the option `--target=TYPE' to select the type of system they will
-+produce code for.
-+
-+   If you want to _use_ a cross compiler, that generates code for a
-+platform different from the build platform, you should specify the
-+"host" platform (i.e., that on which the generated programs will
-+eventually be run) with `--host=TYPE'.
-+
-+Sharing Defaults
-+================
-+
-+   If you want to set default values for `configure' scripts to share,
-+you can create a site shell script called `config.site' that gives
-+default values for variables like `CC', `cache_file', and `prefix'.
-+`configure' looks for `PREFIX/share/config.site' if it exists, then
-+`PREFIX/etc/config.site' if it exists.  Or, you can set the
-+`CONFIG_SITE' environment variable to the location of the site script.
-+A warning: not all `configure' scripts look for a site script.
-+
-+Defining Variables
-+==================
-+
-+   Variables not defined in a site shell script can be set in the
-+environment passed to `configure'.  However, some packages may run
-+configure again during the build, and the customized values of these
-+variables may be lost.  In order to avoid this problem, you should set
-+them in the `configure' command line, using `VAR=value'.  For example:
-+
-+     ./configure CC=/usr/local2/bin/gcc
-+
-+causes the specified `gcc' to be used as the C compiler (unless it is
-+overridden in the site shell script).
-+
-+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-+an Autoconf bug.  Until the bug is fixed you can use this workaround:
-+
-+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
-+
-+`configure' Invocation
-+======================
-+
-+   `configure' recognizes the following options to control how it
-+operates.
-+
-+`--help'
-+`-h'
-+     Print a summary of all of the options to `configure', and exit.
-+
-+`--help=short'
-+`--help=recursive'
-+     Print a summary of the options unique to this package's
-+     `configure', and exit.  The `short' variant lists options used
-+     only in the top level, while the `recursive' variant lists options
-+     also present in any nested packages.
-+
-+`--version'
-+`-V'
-+     Print the version of Autoconf used to generate the `configure'
-+     script, and exit.
-+
-+`--cache-file=FILE'
-+     Enable the cache: use and save the results of the tests in FILE,
-+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
-+     disable caching.
-+
-+`--config-cache'
-+`-C'
-+     Alias for `--cache-file=config.cache'.
-+
-+`--quiet'
-+`--silent'
-+`-q'
-+     Do not print messages saying which checks are being made.  To
-+     suppress all normal output, redirect it to `/dev/null' (any error
-+     messages will still be shown).
-+
-+`--srcdir=DIR'
-+     Look for the package's source code in directory DIR.  Usually
-+     `configure' can determine that directory automatically.
-+
-+`--prefix=DIR'
-+     Use DIR as the installation prefix.  *note Installation Names::
-+     for more details, including other options available for fine-tuning
-+     the installation locations.
-+
-+`--no-create'
-+`-n'
-+     Run the configure checks, but stop before creating any output
-+     files.
-+
-+`configure' also accepts some other, not widely useful, options.  Run
-+`configure --help' for more details.
-+
-diff --git a/libclamav/libmspack-0.4alpha/Makefile.am b/libclamav/libmspack-0.4alpha/Makefile.am
-new file mode 100644
-index 000000000000..4f249275001a
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/Makefile.am
-@@ -0,0 +1,100 @@
-+EXTRA_DIST =		$(srcdir)/debian/* $(srcdir)/doc/* $(srcdir)/test/test_files/*/*
-+pkgconfigdir =		$(libdir)/pkgconfig
-+pkgconfig_DATA = 	libmspack.pc
-+
-+dist-hook:
-+	-rm -f $(distdir)/*.la
-+
-+ACLOCAL_AMFLAGS =	-I m4
-+AM_CFLAGS =
-+# add "-DMSPACK_NO_DEFAULT_SYSTEM" to remove default mspack_system
-+if DEBUG
-+AM_CFLAGS +=		-DDEBUG
-+endif
-+if GCC
-+AM_CFLAGS +=		-Wall -W -Wno-unused
-+endif
-+AM_CPPFLAGS =		-I$(top_srcdir)/mspack -I$(top_srcdir)/test 
-+
-+lib_LTLIBRARIES =	libmspack.la
-+include_HEADERS =	mspack/mspack.h
-+
-+noinst_LTLIBRARIES =	libmscabd.la libmschmd.la
-+noinst_PROGRAMS =	test/cabd_md5 test/cabd_memory test/cabd_test \
-+			test/cabrip test/chmd_md5 test/chmx test/chminfo \
-+			test/multifh test/expand test/chmd_find \
-+			test/chmd_order test/oabx
-+
-+libmspack_la_SOURCES =	mspack/mspack.h \
-+			mspack/system.h mspack/system.c \
-+			mspack/cab.h mspack/cabc.c mspack/cabd.c \
-+			mspack/chm.h mspack/chmc.c mspack/chmd.c \
-+			mspack/hlp.h mspack/hlpc.c mspack/hlpd.c \
-+			mspack/lit.h mspack/litc.c mspack/litd.c \
-+			mspack/kwaj.h mspack/kwajc.c mspack/kwajd.c \
-+			mspack/szdd.h mspack/szddc.c mspack/szddd.c \
-+			mspack/oab.h mspack/oabc.c mspack/oabd.c \
-+			mspack/lzx.h mspack/lzxc.c mspack/lzxd.c \
-+			mspack/mszip.h mspack/mszipc.c mspack/mszipd.c \
-+			mspack/qtm.h mspack/qtmd.c \
-+			mspack/readbits.h mspack/readhuff.h \
-+			mspack/lzss.h mspack/lzssd.c \
-+			mspack/des.h mspack/sha.h \
-+			mspack/crc32.c mspack/crc32.h
-+libmspack_la_LDFLAGS =	-export-symbols-regex '^mspack_' -version-info 1:0:1
-+
-+libmscabd_la_SOURCES =	mspack/mspack.h \
-+			mspack/system.h mspack/system.c \
-+			mspack/cab.h mspack/cabd.c \
-+			mspack/lzx.h mspack/lzxd.c \
-+			mspack/mszip.h mspack/mszipd.c \
-+			mspack/qtm.h mspack/qtmd.c \
-+			mspack/readbits.h mspack/readhuff.h
-+libmscabd_la_LDFLAGS =	-export-symbols-regex '^mspack_'
-+
-+libmschmd_la_SOURCES =	mspack/mspack.h \
-+			mspack/system.h mspack/system.c \
-+			mspack/chm.h mspack/chmd.c \
-+			mspack/lzx.h mspack/lzxd.c \
-+			mspack/readbits.h mspack/readhuff.h
-+libmschmd_la_LDFLAGS =	-export-symbols-regex '^mspack_'
-+
-+test_chmx_SOURCES =	test/chmx.c test/error.h libmschmd.la
-+test_chmx_LDADD =	libmschmd.la
-+
-+test_chmd_md5_SOURCES =	test/chmd_md5.c test/md5.c test/md5.h test/md5_fh.h \
-+			test/error.h libmschmd.la
-+test_chmd_md5_LDADD =	libmschmd.la
-+
-+test_cabd_md5_SOURCES =	test/cabd_md5.c test/md5.c test/md5.h test/md5_fh.h \
-+			test/error.h libmscabd.la
-+test_cabd_md5_LDADD =	libmscabd.la
-+
-+test_cabd_test_SOURCES=	test/cabd_test.c libmscabd.la
-+test_cabd_test_LDADD = 	libmscabd.la
-+
-+test_cabrip_SOURCES =	test/cabrip.c libmscabd.la
-+test_cabrip_LDADD =	libmscabd.la
-+
-+test_cabd_memory_SOURCES = test/cabd_memory.c libmscabd.la
-+test_cabd_memory_LDADD = libmscabd.la
-+
-+test_chminfo_SOURCES =	test/chminfo.c libmschmd.la
-+test_chminfo_LDADD =	libmschmd.la
-+
-+test_multifh_SOURCES =	test/multifh.c libmscabd.la
-+test_multifh_LDADD =	libmscabd.la
-+
-+test_expand_SOURCES =	test/expand.c test/error.h libmspack.la
-+test_expand_LDADD =	libmspack.la
-+
-+test_chmd_find_SOURCES = test/chmd_find.c test/error.h libmschmd.la
-+test_chmd_find_LDADD =	libmschmd.la
-+
-+test_chmd_order_SOURCES = test/chmd_order.c test/md5.c test/md5.h test/md5_fh.h \
-+			test/error.h libmschmd.la
-+test_chmd_order_LDADD = libmschmd.la
-+
-+test_oabx_SOURCES =	test/oabx.c test/md5.c test/md5.h test/md5_fh.h \
-+			test/error.h libmspack.la
-+test_oabx_LDADD =	libmspack.la
-diff --git a/libclamav/libmspack-0.4alpha/Makefile.in b/libclamav/libmspack-0.4alpha/Makefile.in
-new file mode 100644
-index 000000000000..2c1e02e9aa9c
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/Makefile.in
-@@ -0,0 +1,1371 @@
-+# Makefile.in generated by automake 1.11.3 from Makefile.am.
-+# @configure_input@
-+
-+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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.
-+
-+ at SET_MAKE@
-+
-+
-+
-+
-+VPATH = @srcdir@
-+pkgdatadir = $(datadir)/@PACKAGE@
-+pkgincludedir = $(includedir)/@PACKAGE@
-+pkglibdir = $(libdir)/@PACKAGE@
-+pkglibexecdir = $(libexecdir)/@PACKAGE@
-+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-+install_sh_DATA = $(install_sh) -c -m 644
-+install_sh_PROGRAM = $(install_sh) -c
-+install_sh_SCRIPT = $(install_sh) -c
-+INSTALL_HEADER = $(INSTALL_DATA)
-+transform = $(program_transform_name)
-+NORMAL_INSTALL = :
-+PRE_INSTALL = :
-+POST_INSTALL = :
-+NORMAL_UNINSTALL = :
-+PRE_UNINSTALL = :
-+POST_UNINSTALL = :
-+build_triplet = @build@
-+host_triplet = @host@
-+# add "-DMSPACK_NO_DEFAULT_SYSTEM" to remove default mspack_system
-+ at DEBUG_TRUE@am__append_1 = -DDEBUG
-+ at GCC_TRUE@am__append_2 = -Wall -W -Wno-unused
-+noinst_PROGRAMS = test/cabd_md5$(EXEEXT) test/cabd_memory$(EXEEXT) \
-+	test/cabd_test$(EXEEXT) test/cabrip$(EXEEXT) \
-+	test/chmd_md5$(EXEEXT) test/chmx$(EXEEXT) \
-+	test/chminfo$(EXEEXT) test/multifh$(EXEEXT) \
-+	test/expand$(EXEEXT) test/chmd_find$(EXEEXT) \
-+	test/chmd_order$(EXEEXT) test/oabx$(EXEEXT)
-+subdir = .
-+DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
-+	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-+	$(srcdir)/config.h.in $(srcdir)/libmspack.pc.in \
-+	$(top_srcdir)/configure $(top_srcdir)/doc/Doxyfile.in \
-+	$(top_srcdir)/doc/Makefile.in AUTHORS COPYING.LIB ChangeLog \
-+	INSTALL NEWS TODO config.guess config.sub depcomp install-sh \
-+	ltmain.sh missing
-+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
-+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-+	$(top_srcdir)/configure.ac
-+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-+	$(ACLOCAL_M4)
-+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
-+ configure.lineno config.status.lineno
-+mkinstalldirs = $(install_sh) -d
-+CONFIG_HEADER = config.h
-+CONFIG_CLEAN_FILES = doc/Makefile doc/Doxyfile libmspack.pc
-+CONFIG_CLEAN_VPATH_FILES =
-+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-+am__vpath_adj = case $$p in \
-+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-+    *) f=$$p;; \
-+  esac;
-+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-+am__install_max = 40
-+am__nobase_strip_setup = \
-+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-+am__nobase_strip = \
-+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-+am__nobase_list = $(am__nobase_strip_setup); \
-+  for p in $$list; do echo "$$p $$p"; done | \
-+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-+    if (++n[$$2] == $(am__install_max)) \
-+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-+    END { for (dir in files) print dir, files[dir] }'
-+am__base_list = \
-+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-+am__uninstall_files_from_dir = { \
-+  test -z "$$files" \
-+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-+         $(am__cd) "$$dir" && rm -f $$files; }; \
-+  }
-+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
-+	"$(DESTDIR)$(includedir)"
-+LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
-+libmscabd_la_LIBADD =
-+am_libmscabd_la_OBJECTS = system.lo cabd.lo lzxd.lo mszipd.lo qtmd.lo
-+libmscabd_la_OBJECTS = $(am_libmscabd_la_OBJECTS)
-+AM_V_lt = $(am__v_lt_ at AM_V@)
-+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-+am__v_lt_0 = --silent
-+libmscabd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-+	$(libmscabd_la_LDFLAGS) $(LDFLAGS) -o $@
-+libmschmd_la_LIBADD =
-+am_libmschmd_la_OBJECTS = system.lo chmd.lo lzxd.lo
-+libmschmd_la_OBJECTS = $(am_libmschmd_la_OBJECTS)
-+libmschmd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-+	$(libmschmd_la_LDFLAGS) $(LDFLAGS) -o $@
-+libmspack_la_LIBADD =
-+am_libmspack_la_OBJECTS = system.lo cabc.lo cabd.lo chmc.lo chmd.lo \
-+	hlpc.lo hlpd.lo litc.lo litd.lo kwajc.lo kwajd.lo szddc.lo \
-+	szddd.lo oabc.lo oabd.lo lzxc.lo lzxd.lo mszipc.lo mszipd.lo \
-+	qtmd.lo lzssd.lo crc32.lo
-+libmspack_la_OBJECTS = $(am_libmspack_la_OBJECTS)
-+libmspack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-+	$(libmspack_la_LDFLAGS) $(LDFLAGS) -o $@
-+PROGRAMS = $(noinst_PROGRAMS)
-+am_test_cabd_md5_OBJECTS = cabd_md5.$(OBJEXT) md5.$(OBJEXT)
-+test_cabd_md5_OBJECTS = $(am_test_cabd_md5_OBJECTS)
-+test_cabd_md5_DEPENDENCIES = libmscabd.la
-+am__dirstamp = $(am__leading_dot)dirstamp
-+am_test_cabd_memory_OBJECTS = cabd_memory.$(OBJEXT)
-+test_cabd_memory_OBJECTS = $(am_test_cabd_memory_OBJECTS)
-+test_cabd_memory_DEPENDENCIES = libmscabd.la
-+am_test_cabd_test_OBJECTS = cabd_test.$(OBJEXT)
-+test_cabd_test_OBJECTS = $(am_test_cabd_test_OBJECTS)
-+test_cabd_test_DEPENDENCIES = libmscabd.la
-+am_test_cabrip_OBJECTS = cabrip.$(OBJEXT)
-+test_cabrip_OBJECTS = $(am_test_cabrip_OBJECTS)
-+test_cabrip_DEPENDENCIES = libmscabd.la
-+am_test_chmd_find_OBJECTS = chmd_find.$(OBJEXT)
-+test_chmd_find_OBJECTS = $(am_test_chmd_find_OBJECTS)
-+test_chmd_find_DEPENDENCIES = libmschmd.la
-+am_test_chmd_md5_OBJECTS = chmd_md5.$(OBJEXT) md5.$(OBJEXT)
-+test_chmd_md5_OBJECTS = $(am_test_chmd_md5_OBJECTS)
-+test_chmd_md5_DEPENDENCIES = libmschmd.la
-+am_test_chmd_order_OBJECTS = chmd_order.$(OBJEXT) md5.$(OBJEXT)
-+test_chmd_order_OBJECTS = $(am_test_chmd_order_OBJECTS)
-+test_chmd_order_DEPENDENCIES = libmschmd.la
-+am_test_chminfo_OBJECTS = chminfo.$(OBJEXT)
-+test_chminfo_OBJECTS = $(am_test_chminfo_OBJECTS)
-+test_chminfo_DEPENDENCIES = libmschmd.la
-+am_test_chmx_OBJECTS = chmx.$(OBJEXT)
-+test_chmx_OBJECTS = $(am_test_chmx_OBJECTS)
-+test_chmx_DEPENDENCIES = libmschmd.la
-+am_test_expand_OBJECTS = expand.$(OBJEXT)
-+test_expand_OBJECTS = $(am_test_expand_OBJECTS)
-+test_expand_DEPENDENCIES = libmspack.la
-+am_test_multifh_OBJECTS = multifh.$(OBJEXT)
-+test_multifh_OBJECTS = $(am_test_multifh_OBJECTS)
-+test_multifh_DEPENDENCIES = libmscabd.la
-+am_test_oabx_OBJECTS = oabx.$(OBJEXT) md5.$(OBJEXT)
-+test_oabx_OBJECTS = $(am_test_oabx_OBJECTS)
-+test_oabx_DEPENDENCIES = libmspack.la
-+DEFAULT_INCLUDES = -I. at am__isrc@
-+depcomp = $(SHELL) $(top_srcdir)/depcomp
-+am__depfiles_maybe = depfiles
-+am__mv = mv -f
-+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-+	$(AM_CFLAGS) $(CFLAGS)
-+AM_V_CC = $(am__v_CC_ at AM_V@)
-+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-+am__v_CC_0 = @echo "  CC    " $@;
-+AM_V_at = $(am__v_at_ at AM_V@)
-+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-+am__v_at_0 = @
-+CCLD = $(CC)
-+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-+am__v_CCLD_0 = @echo "  CCLD  " $@;
-+AM_V_GEN = $(am__v_GEN_ at AM_V@)
-+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-+am__v_GEN_0 = @echo "  GEN   " $@;
-+SOURCES = $(libmscabd_la_SOURCES) $(libmschmd_la_SOURCES) \
-+	$(libmspack_la_SOURCES) $(test_cabd_md5_SOURCES) \
-+	$(test_cabd_memory_SOURCES) $(test_cabd_test_SOURCES) \
-+	$(test_cabrip_SOURCES) $(test_chmd_find_SOURCES) \
-+	$(test_chmd_md5_SOURCES) $(test_chmd_order_SOURCES) \
-+	$(test_chminfo_SOURCES) $(test_chmx_SOURCES) \
-+	$(test_expand_SOURCES) $(test_multifh_SOURCES) \
-+	$(test_oabx_SOURCES)
-+DIST_SOURCES = $(libmscabd_la_SOURCES) $(libmschmd_la_SOURCES) \
-+	$(libmspack_la_SOURCES) $(test_cabd_md5_SOURCES) \
-+	$(test_cabd_memory_SOURCES) $(test_cabd_test_SOURCES) \
-+	$(test_cabrip_SOURCES) $(test_chmd_find_SOURCES) \
-+	$(test_chmd_md5_SOURCES) $(test_chmd_order_SOURCES) \
-+	$(test_chminfo_SOURCES) $(test_chmx_SOURCES) \
-+	$(test_expand_SOURCES) $(test_multifh_SOURCES) \
-+	$(test_oabx_SOURCES)
-+DATA = $(pkgconfig_DATA)
-+HEADERS = $(include_HEADERS)
-+ETAGS = etags
-+CTAGS = ctags
-+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-+distdir = $(PACKAGE)-$(VERSION)
-+top_distdir = $(distdir)
-+am__remove_distdir = \
-+  if test -d "$(distdir)"; then \
-+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-+      && rm -rf "$(distdir)" \
-+      || { sleep 5 && rm -rf "$(distdir)"; }; \
-+  else :; fi
-+DIST_ARCHIVES = $(distdir).tar.gz
-+GZIP_ENV = --best
-+distuninstallcheck_listfiles = find . -type f -print
-+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
-+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-+distcleancheck_listfiles = find . -type f -print
-+ACLOCAL = @ACLOCAL@
-+AMTAR = @AMTAR@
-+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-+AR = @AR@
-+AUTOCONF = @AUTOCONF@
-+AUTOHEADER = @AUTOHEADER@
-+AUTOMAKE = @AUTOMAKE@
-+AWK = @AWK@
-+CC = @CC@
-+CCDEPMODE = @CCDEPMODE@
-+CFLAGS = @CFLAGS@
-+CPP = @CPP@
-+CPPFLAGS = @CPPFLAGS@
-+CYGPATH_W = @CYGPATH_W@
-+DEFS = @DEFS@
-+DEPDIR = @DEPDIR@
-+DLLTOOL = @DLLTOOL@
-+DSYMUTIL = @DSYMUTIL@
-+DUMPBIN = @DUMPBIN@
-+ECHO_C = @ECHO_C@
-+ECHO_N = @ECHO_N@
-+ECHO_T = @ECHO_T@
-+EGREP = @EGREP@
-+EXEEXT = @EXEEXT@
-+FGREP = @FGREP@
-+GREP = @GREP@
-+INSTALL = @INSTALL@
-+INSTALL_DATA = @INSTALL_DATA@
-+INSTALL_PROGRAM = @INSTALL_PROGRAM@
-+INSTALL_SCRIPT = @INSTALL_SCRIPT@
-+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-+LD = @LD@
-+LDFLAGS = @LDFLAGS@
-+LIBOBJS = @LIBOBJS@
-+LIBS = @LIBS@
-+LIBTOOL = @LIBTOOL@
-+LIPO = @LIPO@
-+LN_S = @LN_S@
-+LTLIBOBJS = @LTLIBOBJS@
-+MAKEINFO = @MAKEINFO@
-+MANIFEST_TOOL = @MANIFEST_TOOL@
-+MKDIR_P = @MKDIR_P@
-+NM = @NM@
-+NMEDIT = @NMEDIT@
-+OBJDUMP = @OBJDUMP@
-+OBJEXT = @OBJEXT@
-+OTOOL = @OTOOL@
-+OTOOL64 = @OTOOL64@
-+PACKAGE = @PACKAGE@
-+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-+PACKAGE_NAME = @PACKAGE_NAME@
-+PACKAGE_STRING = @PACKAGE_STRING@
-+PACKAGE_TARNAME = @PACKAGE_TARNAME@
-+PACKAGE_URL = @PACKAGE_URL@
-+PACKAGE_VERSION = @PACKAGE_VERSION@
-+PATH_SEPARATOR = @PATH_SEPARATOR@
-+RANLIB = @RANLIB@
-+SED = @SED@
-+SET_MAKE = @SET_MAKE@
-+SHELL = @SHELL@
-+STRIP = @STRIP@
-+VERSION = @VERSION@
-+abs_builddir = @abs_builddir@
-+abs_srcdir = @abs_srcdir@
-+abs_top_builddir = @abs_top_builddir@
-+abs_top_srcdir = @abs_top_srcdir@
-+ac_ct_AR = @ac_ct_AR@
-+ac_ct_CC = @ac_ct_CC@
-+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-+am__include = @am__include@
-+am__leading_dot = @am__leading_dot@
-+am__quote = @am__quote@
-+am__tar = @am__tar@
-+am__untar = @am__untar@
-+bindir = @bindir@
-+build = @build@
-+build_alias = @build_alias@
-+build_cpu = @build_cpu@
-+build_os = @build_os@
-+build_vendor = @build_vendor@
-+builddir = @builddir@
-+datadir = @datadir@
-+datarootdir = @datarootdir@
-+docdir = @docdir@
-+dvidir = @dvidir@
-+exec_prefix = @exec_prefix@
-+host = @host@
-+host_alias = @host_alias@
-+host_cpu = @host_cpu@
-+host_os = @host_os@
-+host_vendor = @host_vendor@
-+htmldir = @htmldir@
-+includedir = @includedir@
-+infodir = @infodir@
-+install_sh = @install_sh@
-+libdir = @libdir@
-+libexecdir = @libexecdir@
-+localedir = @localedir@
-+localstatedir = @localstatedir@
-+mandir = @mandir@
-+mkdir_p = @mkdir_p@
-+oldincludedir = @oldincludedir@
-+pdfdir = @pdfdir@
-+prefix = @prefix@
-+program_transform_name = @program_transform_name@
-+psdir = @psdir@
-+sbindir = @sbindir@
-+sharedstatedir = @sharedstatedir@
-+srcdir = @srcdir@
-+sysconfdir = @sysconfdir@
-+target_alias = @target_alias@
-+top_build_prefix = @top_build_prefix@
-+top_builddir = @top_builddir@
-+top_srcdir = @top_srcdir@
-+EXTRA_DIST = $(srcdir)/debian/* $(srcdir)/doc/* $(srcdir)/test/test_files/*/*
-+pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfig_DATA = libmspack.pc
-+ACLOCAL_AMFLAGS = -I m4
-+AM_CFLAGS = $(am__append_1) $(am__append_2)
-+AM_CPPFLAGS = -I$(top_srcdir)/mspack -I$(top_srcdir)/test 
-+lib_LTLIBRARIES = libmspack.la
-+include_HEADERS = mspack/mspack.h
-+noinst_LTLIBRARIES = libmscabd.la libmschmd.la
-+libmspack_la_SOURCES = mspack/mspack.h \
-+			mspack/system.h mspack/system.c \
-+			mspack/cab.h mspack/cabc.c mspack/cabd.c \
-+			mspack/chm.h mspack/chmc.c mspack/chmd.c \
-+			mspack/hlp.h mspack/hlpc.c mspack/hlpd.c \
-+			mspack/lit.h mspack/litc.c mspack/litd.c \
-+			mspack/kwaj.h mspack/kwajc.c mspack/kwajd.c \
-+			mspack/szdd.h mspack/szddc.c mspack/szddd.c \
-+			mspack/oab.h mspack/oabc.c mspack/oabd.c \
-+			mspack/lzx.h mspack/lzxc.c mspack/lzxd.c \
-+			mspack/mszip.h mspack/mszipc.c mspack/mszipd.c \
-+			mspack/qtm.h mspack/qtmd.c \
-+			mspack/readbits.h mspack/readhuff.h \
-+			mspack/lzss.h mspack/lzssd.c \
-+			mspack/des.h mspack/sha.h \
-+			mspack/crc32.c mspack/crc32.h
-+
-+libmspack_la_LDFLAGS = -export-symbols-regex '^mspack_' -version-info 1:0:1
-+libmscabd_la_SOURCES = mspack/mspack.h \
-+			mspack/system.h mspack/system.c \
-+			mspack/cab.h mspack/cabd.c \
-+			mspack/lzx.h mspack/lzxd.c \
-+			mspack/mszip.h mspack/mszipd.c \
-+			mspack/qtm.h mspack/qtmd.c \
-+			mspack/readbits.h mspack/readhuff.h
-+
-+libmscabd_la_LDFLAGS = -export-symbols-regex '^mspack_'
-+libmschmd_la_SOURCES = mspack/mspack.h \
-+			mspack/system.h mspack/system.c \
-+			mspack/chm.h mspack/chmd.c \
-+			mspack/lzx.h mspack/lzxd.c \
-+			mspack/readbits.h mspack/readhuff.h
-+
-+libmschmd_la_LDFLAGS = -export-symbols-regex '^mspack_'
-+test_chmx_SOURCES = test/chmx.c test/error.h libmschmd.la
-+test_chmx_LDADD = libmschmd.la
-+test_chmd_md5_SOURCES = test/chmd_md5.c test/md5.c test/md5.h test/md5_fh.h \
-+			test/error.h libmschmd.la
-+
-+test_chmd_md5_LDADD = libmschmd.la
-+test_cabd_md5_SOURCES = test/cabd_md5.c test/md5.c test/md5.h test/md5_fh.h \
-+			test/error.h libmscabd.la
-+
-+test_cabd_md5_LDADD = libmscabd.la
-+test_cabd_test_SOURCES = test/cabd_test.c libmscabd.la
-+test_cabd_test_LDADD = libmscabd.la
-+test_cabrip_SOURCES = test/cabrip.c libmscabd.la
-+test_cabrip_LDADD = libmscabd.la
-+test_cabd_memory_SOURCES = test/cabd_memory.c libmscabd.la
-+test_cabd_memory_LDADD = libmscabd.la
-+test_chminfo_SOURCES = test/chminfo.c libmschmd.la
-+test_chminfo_LDADD = libmschmd.la
-+test_multifh_SOURCES = test/multifh.c libmscabd.la
-+test_multifh_LDADD = libmscabd.la
-+test_expand_SOURCES = test/expand.c test/error.h libmspack.la
-+test_expand_LDADD = libmspack.la
-+test_chmd_find_SOURCES = test/chmd_find.c test/error.h libmschmd.la
-+test_chmd_find_LDADD = libmschmd.la
-+test_chmd_order_SOURCES = test/chmd_order.c test/md5.c test/md5.h test/md5_fh.h \
-+			test/error.h libmschmd.la
-+
-+test_chmd_order_LDADD = libmschmd.la
-+test_oabx_SOURCES = test/oabx.c test/md5.c test/md5.h test/md5_fh.h \
-+			test/error.h libmspack.la
-+
-+test_oabx_LDADD = libmspack.la
-+all: config.h
-+	$(MAKE) $(AM_MAKEFLAGS) all-am
-+
-+.SUFFIXES:
-+.SUFFIXES: .c .lo .o .obj
-+am--refresh: Makefile
-+	@:
-+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-+	@for dep in $?; do \
-+	  case '$(am__configure_deps)' in \
-+	    *$$dep*) \
-+	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
-+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
-+		&& exit 0; \
-+	      exit 1;; \
-+	  esac; \
-+	done; \
-+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
-+	$(am__cd) $(top_srcdir) && \
-+	  $(AUTOMAKE) --gnu Makefile
-+.PRECIOUS: Makefile
-+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-+	@case '$?' in \
-+	  *config.status*) \
-+	    echo ' $(SHELL) ./config.status'; \
-+	    $(SHELL) ./config.status;; \
-+	  *) \
-+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-+	esac;
-+
-+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-+	$(SHELL) ./config.status --recheck
-+
-+$(top_srcdir)/configure:  $(am__configure_deps)
-+	$(am__cd) $(srcdir) && $(AUTOCONF)
-+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-+$(am__aclocal_m4_deps):
-+
-+config.h: stamp-h1
-+	@if test ! -f $@; then rm -f stamp-h1; else :; fi
-+	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
-+
-+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
-+	@rm -f stamp-h1
-+	cd $(top_builddir) && $(SHELL) ./config.status config.h
-+$(srcdir)/config.h.in:  $(am__configure_deps) 
-+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
-+	rm -f stamp-h1
-+	touch $@
-+
-+distclean-hdr:
-+	-rm -f config.h stamp-h1
-+doc/Makefile: $(top_builddir)/config.status $(top_srcdir)/doc/Makefile.in
-+	cd $(top_builddir) && $(SHELL) ./config.status $@
-+doc/Doxyfile: $(top_builddir)/config.status $(top_srcdir)/doc/Doxyfile.in
-+	cd $(top_builddir) && $(SHELL) ./config.status $@
-+libmspack.pc: $(top_builddir)/config.status $(srcdir)/libmspack.pc.in
-+	cd $(top_builddir) && $(SHELL) ./config.status $@
-+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-+	@$(NORMAL_INSTALL)
-+	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-+	list2=; for p in $$list; do \
-+	  if test -f $$p; then \
-+	    list2="$$list2 $$p"; \
-+	  else :; fi; \
-+	done; \
-+	test -z "$$list2" || { \
-+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
-+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
-+	}
-+
-+uninstall-libLTLIBRARIES:
-+	@$(NORMAL_UNINSTALL)
-+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-+	for p in $$list; do \
-+	  $(am__strip_dir) \
-+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
-+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
-+	done
-+
-+clean-libLTLIBRARIES:
-+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-+	  test "$$dir" != "$$p" || dir=.; \
-+	  echo "rm -f \"$${dir}/so_locations\""; \
-+	  rm -f "$${dir}/so_locations"; \
-+	done
-+
-+clean-noinstLTLIBRARIES:
-+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-+	  test "$$dir" != "$$p" || dir=.; \
-+	  echo "rm -f \"$${dir}/so_locations\""; \
-+	  rm -f "$${dir}/so_locations"; \
-+	done
-+libmscabd.la: $(libmscabd_la_OBJECTS) $(libmscabd_la_DEPENDENCIES) $(EXTRA_libmscabd_la_DEPENDENCIES) 
-+	$(AM_V_CCLD)$(libmscabd_la_LINK)  $(libmscabd_la_OBJECTS) $(libmscabd_la_LIBADD) $(LIBS)
-+libmschmd.la: $(libmschmd_la_OBJECTS) $(libmschmd_la_DEPENDENCIES) $(EXTRA_libmschmd_la_DEPENDENCIES) 
-+	$(AM_V_CCLD)$(libmschmd_la_LINK)  $(libmschmd_la_OBJECTS) $(libmschmd_la_LIBADD) $(LIBS)
-+libmspack.la: $(libmspack_la_OBJECTS) $(libmspack_la_DEPENDENCIES) $(EXTRA_libmspack_la_DEPENDENCIES) 
-+	$(AM_V_CCLD)$(libmspack_la_LINK) -rpath $(libdir) $(libmspack_la_OBJECTS) $(libmspack_la_LIBADD) $(LIBS)
-+
-+clean-noinstPROGRAMS:
-+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-+	echo " rm -f" $$list; \
-+	rm -f $$list || exit $$?; \
-+	test -n "$(EXEEXT)" || exit 0; \
-+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-+	echo " rm -f" $$list; \
-+	rm -f $$list
-+test/$(am__dirstamp):
-+	@$(MKDIR_P) test
-+	@: > test/$(am__dirstamp)
-+test/cabd_md5$(EXEEXT): $(test_cabd_md5_OBJECTS) $(test_cabd_md5_DEPENDENCIES) $(EXTRA_test_cabd_md5_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/cabd_md5$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_cabd_md5_OBJECTS) $(test_cabd_md5_LDADD) $(LIBS)
-+test/cabd_memory$(EXEEXT): $(test_cabd_memory_OBJECTS) $(test_cabd_memory_DEPENDENCIES) $(EXTRA_test_cabd_memory_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/cabd_memory$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_cabd_memory_OBJECTS) $(test_cabd_memory_LDADD) $(LIBS)
-+test/cabd_test$(EXEEXT): $(test_cabd_test_OBJECTS) $(test_cabd_test_DEPENDENCIES) $(EXTRA_test_cabd_test_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/cabd_test$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_cabd_test_OBJECTS) $(test_cabd_test_LDADD) $(LIBS)
-+test/cabrip$(EXEEXT): $(test_cabrip_OBJECTS) $(test_cabrip_DEPENDENCIES) $(EXTRA_test_cabrip_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/cabrip$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_cabrip_OBJECTS) $(test_cabrip_LDADD) $(LIBS)
-+test/chmd_find$(EXEEXT): $(test_chmd_find_OBJECTS) $(test_chmd_find_DEPENDENCIES) $(EXTRA_test_chmd_find_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/chmd_find$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_chmd_find_OBJECTS) $(test_chmd_find_LDADD) $(LIBS)
-+test/chmd_md5$(EXEEXT): $(test_chmd_md5_OBJECTS) $(test_chmd_md5_DEPENDENCIES) $(EXTRA_test_chmd_md5_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/chmd_md5$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_chmd_md5_OBJECTS) $(test_chmd_md5_LDADD) $(LIBS)
-+test/chmd_order$(EXEEXT): $(test_chmd_order_OBJECTS) $(test_chmd_order_DEPENDENCIES) $(EXTRA_test_chmd_order_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/chmd_order$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_chmd_order_OBJECTS) $(test_chmd_order_LDADD) $(LIBS)
-+test/chminfo$(EXEEXT): $(test_chminfo_OBJECTS) $(test_chminfo_DEPENDENCIES) $(EXTRA_test_chminfo_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/chminfo$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_chminfo_OBJECTS) $(test_chminfo_LDADD) $(LIBS)
-+test/chmx$(EXEEXT): $(test_chmx_OBJECTS) $(test_chmx_DEPENDENCIES) $(EXTRA_test_chmx_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/chmx$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_chmx_OBJECTS) $(test_chmx_LDADD) $(LIBS)
-+test/expand$(EXEEXT): $(test_expand_OBJECTS) $(test_expand_DEPENDENCIES) $(EXTRA_test_expand_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/expand$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_expand_OBJECTS) $(test_expand_LDADD) $(LIBS)
-+test/multifh$(EXEEXT): $(test_multifh_OBJECTS) $(test_multifh_DEPENDENCIES) $(EXTRA_test_multifh_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/multifh$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_multifh_OBJECTS) $(test_multifh_LDADD) $(LIBS)
-+test/oabx$(EXEEXT): $(test_oabx_OBJECTS) $(test_oabx_DEPENDENCIES) $(EXTRA_test_oabx_DEPENDENCIES) test/$(am__dirstamp)
-+	@rm -f test/oabx$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(test_oabx_OBJECTS) $(test_oabx_LDADD) $(LIBS)
-+
-+mostlyclean-compile:
-+	-rm -f *.$(OBJEXT)
-+
-+distclean-compile:
-+	-rm -f *.tab.c
-+
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cabc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cabd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cabd_md5.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cabd_memory.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cabd_test.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cabrip.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chmc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chmd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chmd_find.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chmd_md5.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chmd_order.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chminfo.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chmx.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/crc32.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/expand.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hlpc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hlpd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kwajc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kwajd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/litc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/litd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lzssd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lzxc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lzxd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/md5.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mszipc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mszipd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/multifh.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/oabc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/oabd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/oabx.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/qtmd.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/system.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/szddc.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/szddd.Plo at am__quote@
-+
-+.c.o:
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
-+
-+.c.obj:
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
-+
-+.c.lo:
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
-+
-+system.lo: mspack/system.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT system.lo -MD -MP -MF $(DEPDIR)/system.Tpo -c -o system.lo `test -f 'mspack/system.c' || echo '$(srcdir)/'`mspack/system.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/system.Tpo $(DEPDIR)/system.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/system.c' object='system.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o system.lo `test -f 'mspack/system.c' || echo '$(srcdir)/'`mspack/system.c
-+
-+cabd.lo: mspack/cabd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabd.lo -MD -MP -MF $(DEPDIR)/cabd.Tpo -c -o cabd.lo `test -f 'mspack/cabd.c' || echo '$(srcdir)/'`mspack/cabd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabd.Tpo $(DEPDIR)/cabd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/cabd.c' object='cabd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabd.lo `test -f 'mspack/cabd.c' || echo '$(srcdir)/'`mspack/cabd.c
-+
-+lzxd.lo: mspack/lzxd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzxd.lo -MD -MP -MF $(DEPDIR)/lzxd.Tpo -c -o lzxd.lo `test -f 'mspack/lzxd.c' || echo '$(srcdir)/'`mspack/lzxd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lzxd.Tpo $(DEPDIR)/lzxd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/lzxd.c' object='lzxd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzxd.lo `test -f 'mspack/lzxd.c' || echo '$(srcdir)/'`mspack/lzxd.c
-+
-+mszipd.lo: mspack/mszipd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mszipd.lo -MD -MP -MF $(DEPDIR)/mszipd.Tpo -c -o mszipd.lo `test -f 'mspack/mszipd.c' || echo '$(srcdir)/'`mspack/mszipd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mszipd.Tpo $(DEPDIR)/mszipd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/mszipd.c' object='mszipd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mszipd.lo `test -f 'mspack/mszipd.c' || echo '$(srcdir)/'`mspack/mszipd.c
-+
-+qtmd.lo: mspack/qtmd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT qtmd.lo -MD -MP -MF $(DEPDIR)/qtmd.Tpo -c -o qtmd.lo `test -f 'mspack/qtmd.c' || echo '$(srcdir)/'`mspack/qtmd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/qtmd.Tpo $(DEPDIR)/qtmd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/qtmd.c' object='qtmd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o qtmd.lo `test -f 'mspack/qtmd.c' || echo '$(srcdir)/'`mspack/qtmd.c
-+
-+chmd.lo: mspack/chmd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmd.lo -MD -MP -MF $(DEPDIR)/chmd.Tpo -c -o chmd.lo `test -f 'mspack/chmd.c' || echo '$(srcdir)/'`mspack/chmd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmd.Tpo $(DEPDIR)/chmd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/chmd.c' object='chmd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmd.lo `test -f 'mspack/chmd.c' || echo '$(srcdir)/'`mspack/chmd.c
-+
-+cabc.lo: mspack/cabc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabc.lo -MD -MP -MF $(DEPDIR)/cabc.Tpo -c -o cabc.lo `test -f 'mspack/cabc.c' || echo '$(srcdir)/'`mspack/cabc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabc.Tpo $(DEPDIR)/cabc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/cabc.c' object='cabc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabc.lo `test -f 'mspack/cabc.c' || echo '$(srcdir)/'`mspack/cabc.c
-+
-+chmc.lo: mspack/chmc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmc.lo -MD -MP -MF $(DEPDIR)/chmc.Tpo -c -o chmc.lo `test -f 'mspack/chmc.c' || echo '$(srcdir)/'`mspack/chmc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmc.Tpo $(DEPDIR)/chmc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/chmc.c' object='chmc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmc.lo `test -f 'mspack/chmc.c' || echo '$(srcdir)/'`mspack/chmc.c
-+
-+hlpc.lo: mspack/hlpc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hlpc.lo -MD -MP -MF $(DEPDIR)/hlpc.Tpo -c -o hlpc.lo `test -f 'mspack/hlpc.c' || echo '$(srcdir)/'`mspack/hlpc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hlpc.Tpo $(DEPDIR)/hlpc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/hlpc.c' object='hlpc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hlpc.lo `test -f 'mspack/hlpc.c' || echo '$(srcdir)/'`mspack/hlpc.c
-+
-+hlpd.lo: mspack/hlpd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hlpd.lo -MD -MP -MF $(DEPDIR)/hlpd.Tpo -c -o hlpd.lo `test -f 'mspack/hlpd.c' || echo '$(srcdir)/'`mspack/hlpd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hlpd.Tpo $(DEPDIR)/hlpd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/hlpd.c' object='hlpd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hlpd.lo `test -f 'mspack/hlpd.c' || echo '$(srcdir)/'`mspack/hlpd.c
-+
-+litc.lo: mspack/litc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT litc.lo -MD -MP -MF $(DEPDIR)/litc.Tpo -c -o litc.lo `test -f 'mspack/litc.c' || echo '$(srcdir)/'`mspack/litc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/litc.Tpo $(DEPDIR)/litc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/litc.c' object='litc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o litc.lo `test -f 'mspack/litc.c' || echo '$(srcdir)/'`mspack/litc.c
-+
-+litd.lo: mspack/litd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT litd.lo -MD -MP -MF $(DEPDIR)/litd.Tpo -c -o litd.lo `test -f 'mspack/litd.c' || echo '$(srcdir)/'`mspack/litd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/litd.Tpo $(DEPDIR)/litd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/litd.c' object='litd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o litd.lo `test -f 'mspack/litd.c' || echo '$(srcdir)/'`mspack/litd.c
-+
-+kwajc.lo: mspack/kwajc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kwajc.lo -MD -MP -MF $(DEPDIR)/kwajc.Tpo -c -o kwajc.lo `test -f 'mspack/kwajc.c' || echo '$(srcdir)/'`mspack/kwajc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/kwajc.Tpo $(DEPDIR)/kwajc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/kwajc.c' object='kwajc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kwajc.lo `test -f 'mspack/kwajc.c' || echo '$(srcdir)/'`mspack/kwajc.c
-+
-+kwajd.lo: mspack/kwajd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kwajd.lo -MD -MP -MF $(DEPDIR)/kwajd.Tpo -c -o kwajd.lo `test -f 'mspack/kwajd.c' || echo '$(srcdir)/'`mspack/kwajd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/kwajd.Tpo $(DEPDIR)/kwajd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/kwajd.c' object='kwajd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kwajd.lo `test -f 'mspack/kwajd.c' || echo '$(srcdir)/'`mspack/kwajd.c
-+
-+szddc.lo: mspack/szddc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT szddc.lo -MD -MP -MF $(DEPDIR)/szddc.Tpo -c -o szddc.lo `test -f 'mspack/szddc.c' || echo '$(srcdir)/'`mspack/szddc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/szddc.Tpo $(DEPDIR)/szddc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/szddc.c' object='szddc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o szddc.lo `test -f 'mspack/szddc.c' || echo '$(srcdir)/'`mspack/szddc.c
-+
-+szddd.lo: mspack/szddd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT szddd.lo -MD -MP -MF $(DEPDIR)/szddd.Tpo -c -o szddd.lo `test -f 'mspack/szddd.c' || echo '$(srcdir)/'`mspack/szddd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/szddd.Tpo $(DEPDIR)/szddd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/szddd.c' object='szddd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o szddd.lo `test -f 'mspack/szddd.c' || echo '$(srcdir)/'`mspack/szddd.c
-+
-+oabc.lo: mspack/oabc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT oabc.lo -MD -MP -MF $(DEPDIR)/oabc.Tpo -c -o oabc.lo `test -f 'mspack/oabc.c' || echo '$(srcdir)/'`mspack/oabc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/oabc.Tpo $(DEPDIR)/oabc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/oabc.c' object='oabc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o oabc.lo `test -f 'mspack/oabc.c' || echo '$(srcdir)/'`mspack/oabc.c
-+
-+oabd.lo: mspack/oabd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT oabd.lo -MD -MP -MF $(DEPDIR)/oabd.Tpo -c -o oabd.lo `test -f 'mspack/oabd.c' || echo '$(srcdir)/'`mspack/oabd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/oabd.Tpo $(DEPDIR)/oabd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/oabd.c' object='oabd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o oabd.lo `test -f 'mspack/oabd.c' || echo '$(srcdir)/'`mspack/oabd.c
-+
-+lzxc.lo: mspack/lzxc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzxc.lo -MD -MP -MF $(DEPDIR)/lzxc.Tpo -c -o lzxc.lo `test -f 'mspack/lzxc.c' || echo '$(srcdir)/'`mspack/lzxc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lzxc.Tpo $(DEPDIR)/lzxc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/lzxc.c' object='lzxc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzxc.lo `test -f 'mspack/lzxc.c' || echo '$(srcdir)/'`mspack/lzxc.c
-+
-+mszipc.lo: mspack/mszipc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mszipc.lo -MD -MP -MF $(DEPDIR)/mszipc.Tpo -c -o mszipc.lo `test -f 'mspack/mszipc.c' || echo '$(srcdir)/'`mspack/mszipc.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mszipc.Tpo $(DEPDIR)/mszipc.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/mszipc.c' object='mszipc.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mszipc.lo `test -f 'mspack/mszipc.c' || echo '$(srcdir)/'`mspack/mszipc.c
-+
-+lzssd.lo: mspack/lzssd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzssd.lo -MD -MP -MF $(DEPDIR)/lzssd.Tpo -c -o lzssd.lo `test -f 'mspack/lzssd.c' || echo '$(srcdir)/'`mspack/lzssd.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lzssd.Tpo $(DEPDIR)/lzssd.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/lzssd.c' object='lzssd.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzssd.lo `test -f 'mspack/lzssd.c' || echo '$(srcdir)/'`mspack/lzssd.c
-+
-+crc32.lo: mspack/crc32.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT crc32.lo -MD -MP -MF $(DEPDIR)/crc32.Tpo -c -o crc32.lo `test -f 'mspack/crc32.c' || echo '$(srcdir)/'`mspack/crc32.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/crc32.Tpo $(DEPDIR)/crc32.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mspack/crc32.c' object='crc32.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o crc32.lo `test -f 'mspack/crc32.c' || echo '$(srcdir)/'`mspack/crc32.c
-+
-+cabd_md5.o: test/cabd_md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabd_md5.o -MD -MP -MF $(DEPDIR)/cabd_md5.Tpo -c -o cabd_md5.o `test -f 'test/cabd_md5.c' || echo '$(srcdir)/'`test/cabd_md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabd_md5.Tpo $(DEPDIR)/cabd_md5.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/cabd_md5.c' object='cabd_md5.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabd_md5.o `test -f 'test/cabd_md5.c' || echo '$(srcdir)/'`test/cabd_md5.c
-+
-+cabd_md5.obj: test/cabd_md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabd_md5.obj -MD -MP -MF $(DEPDIR)/cabd_md5.Tpo -c -o cabd_md5.obj `if test -f 'test/cabd_md5.c'; then $(CYGPATH_W) 'test/cabd_md5.c'; else $(CYGPATH_W) '$(srcdir)/test/cabd_md5.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabd_md5.Tpo $(DEPDIR)/cabd_md5.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/cabd_md5.c' object='cabd_md5.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabd_md5.obj `if test -f 'test/cabd_md5.c'; then $(CYGPATH_W) 'test/cabd_md5.c'; else $(CYGPATH_W) '$(srcdir)/test/cabd_md5.c'; fi`
-+
-+md5.o: test/md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5.o -MD -MP -MF $(DEPDIR)/md5.Tpo -c -o md5.o `test -f 'test/md5.c' || echo '$(srcdir)/'`test/md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/md5.Tpo $(DEPDIR)/md5.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/md5.c' object='md5.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5.o `test -f 'test/md5.c' || echo '$(srcdir)/'`test/md5.c
-+
-+md5.obj: test/md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5.obj -MD -MP -MF $(DEPDIR)/md5.Tpo -c -o md5.obj `if test -f 'test/md5.c'; then $(CYGPATH_W) 'test/md5.c'; else $(CYGPATH_W) '$(srcdir)/test/md5.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/md5.Tpo $(DEPDIR)/md5.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/md5.c' object='md5.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5.obj `if test -f 'test/md5.c'; then $(CYGPATH_W) 'test/md5.c'; else $(CYGPATH_W) '$(srcdir)/test/md5.c'; fi`
-+
-+cabd_memory.o: test/cabd_memory.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabd_memory.o -MD -MP -MF $(DEPDIR)/cabd_memory.Tpo -c -o cabd_memory.o `test -f 'test/cabd_memory.c' || echo '$(srcdir)/'`test/cabd_memory.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabd_memory.Tpo $(DEPDIR)/cabd_memory.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/cabd_memory.c' object='cabd_memory.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabd_memory.o `test -f 'test/cabd_memory.c' || echo '$(srcdir)/'`test/cabd_memory.c
-+
-+cabd_memory.obj: test/cabd_memory.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabd_memory.obj -MD -MP -MF $(DEPDIR)/cabd_memory.Tpo -c -o cabd_memory.obj `if test -f 'test/cabd_memory.c'; then $(CYGPATH_W) 'test/cabd_memory.c'; else $(CYGPATH_W) '$(srcdir)/test/cabd_memory.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabd_memory.Tpo $(DEPDIR)/cabd_memory.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/cabd_memory.c' object='cabd_memory.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabd_memory.obj `if test -f 'test/cabd_memory.c'; then $(CYGPATH_W) 'test/cabd_memory.c'; else $(CYGPATH_W) '$(srcdir)/test/cabd_memory.c'; fi`
-+
-+cabd_test.o: test/cabd_test.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabd_test.o -MD -MP -MF $(DEPDIR)/cabd_test.Tpo -c -o cabd_test.o `test -f 'test/cabd_test.c' || echo '$(srcdir)/'`test/cabd_test.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabd_test.Tpo $(DEPDIR)/cabd_test.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/cabd_test.c' object='cabd_test.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabd_test.o `test -f 'test/cabd_test.c' || echo '$(srcdir)/'`test/cabd_test.c
-+
-+cabd_test.obj: test/cabd_test.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabd_test.obj -MD -MP -MF $(DEPDIR)/cabd_test.Tpo -c -o cabd_test.obj `if test -f 'test/cabd_test.c'; then $(CYGPATH_W) 'test/cabd_test.c'; else $(CYGPATH_W) '$(srcdir)/test/cabd_test.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabd_test.Tpo $(DEPDIR)/cabd_test.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/cabd_test.c' object='cabd_test.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabd_test.obj `if test -f 'test/cabd_test.c'; then $(CYGPATH_W) 'test/cabd_test.c'; else $(CYGPATH_W) '$(srcdir)/test/cabd_test.c'; fi`
-+
-+cabrip.o: test/cabrip.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabrip.o -MD -MP -MF $(DEPDIR)/cabrip.Tpo -c -o cabrip.o `test -f 'test/cabrip.c' || echo '$(srcdir)/'`test/cabrip.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabrip.Tpo $(DEPDIR)/cabrip.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/cabrip.c' object='cabrip.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabrip.o `test -f 'test/cabrip.c' || echo '$(srcdir)/'`test/cabrip.c
-+
-+cabrip.obj: test/cabrip.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cabrip.obj -MD -MP -MF $(DEPDIR)/cabrip.Tpo -c -o cabrip.obj `if test -f 'test/cabrip.c'; then $(CYGPATH_W) 'test/cabrip.c'; else $(CYGPATH_W) '$(srcdir)/test/cabrip.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cabrip.Tpo $(DEPDIR)/cabrip.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/cabrip.c' object='cabrip.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cabrip.obj `if test -f 'test/cabrip.c'; then $(CYGPATH_W) 'test/cabrip.c'; else $(CYGPATH_W) '$(srcdir)/test/cabrip.c'; fi`
-+
-+chmd_find.o: test/chmd_find.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmd_find.o -MD -MP -MF $(DEPDIR)/chmd_find.Tpo -c -o chmd_find.o `test -f 'test/chmd_find.c' || echo '$(srcdir)/'`test/chmd_find.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmd_find.Tpo $(DEPDIR)/chmd_find.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chmd_find.c' object='chmd_find.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmd_find.o `test -f 'test/chmd_find.c' || echo '$(srcdir)/'`test/chmd_find.c
-+
-+chmd_find.obj: test/chmd_find.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmd_find.obj -MD -MP -MF $(DEPDIR)/chmd_find.Tpo -c -o chmd_find.obj `if test -f 'test/chmd_find.c'; then $(CYGPATH_W) 'test/chmd_find.c'; else $(CYGPATH_W) '$(srcdir)/test/chmd_find.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmd_find.Tpo $(DEPDIR)/chmd_find.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chmd_find.c' object='chmd_find.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmd_find.obj `if test -f 'test/chmd_find.c'; then $(CYGPATH_W) 'test/chmd_find.c'; else $(CYGPATH_W) '$(srcdir)/test/chmd_find.c'; fi`
-+
-+chmd_md5.o: test/chmd_md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmd_md5.o -MD -MP -MF $(DEPDIR)/chmd_md5.Tpo -c -o chmd_md5.o `test -f 'test/chmd_md5.c' || echo '$(srcdir)/'`test/chmd_md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmd_md5.Tpo $(DEPDIR)/chmd_md5.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chmd_md5.c' object='chmd_md5.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmd_md5.o `test -f 'test/chmd_md5.c' || echo '$(srcdir)/'`test/chmd_md5.c
-+
-+chmd_md5.obj: test/chmd_md5.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmd_md5.obj -MD -MP -MF $(DEPDIR)/chmd_md5.Tpo -c -o chmd_md5.obj `if test -f 'test/chmd_md5.c'; then $(CYGPATH_W) 'test/chmd_md5.c'; else $(CYGPATH_W) '$(srcdir)/test/chmd_md5.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmd_md5.Tpo $(DEPDIR)/chmd_md5.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chmd_md5.c' object='chmd_md5.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmd_md5.obj `if test -f 'test/chmd_md5.c'; then $(CYGPATH_W) 'test/chmd_md5.c'; else $(CYGPATH_W) '$(srcdir)/test/chmd_md5.c'; fi`
-+
-+chmd_order.o: test/chmd_order.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmd_order.o -MD -MP -MF $(DEPDIR)/chmd_order.Tpo -c -o chmd_order.o `test -f 'test/chmd_order.c' || echo '$(srcdir)/'`test/chmd_order.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmd_order.Tpo $(DEPDIR)/chmd_order.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chmd_order.c' object='chmd_order.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmd_order.o `test -f 'test/chmd_order.c' || echo '$(srcdir)/'`test/chmd_order.c
-+
-+chmd_order.obj: test/chmd_order.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmd_order.obj -MD -MP -MF $(DEPDIR)/chmd_order.Tpo -c -o chmd_order.obj `if test -f 'test/chmd_order.c'; then $(CYGPATH_W) 'test/chmd_order.c'; else $(CYGPATH_W) '$(srcdir)/test/chmd_order.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmd_order.Tpo $(DEPDIR)/chmd_order.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chmd_order.c' object='chmd_order.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmd_order.obj `if test -f 'test/chmd_order.c'; then $(CYGPATH_W) 'test/chmd_order.c'; else $(CYGPATH_W) '$(srcdir)/test/chmd_order.c'; fi`
-+
-+chminfo.o: test/chminfo.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chminfo.o -MD -MP -MF $(DEPDIR)/chminfo.Tpo -c -o chminfo.o `test -f 'test/chminfo.c' || echo '$(srcdir)/'`test/chminfo.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chminfo.Tpo $(DEPDIR)/chminfo.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chminfo.c' object='chminfo.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chminfo.o `test -f 'test/chminfo.c' || echo '$(srcdir)/'`test/chminfo.c
-+
-+chminfo.obj: test/chminfo.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chminfo.obj -MD -MP -MF $(DEPDIR)/chminfo.Tpo -c -o chminfo.obj `if test -f 'test/chminfo.c'; then $(CYGPATH_W) 'test/chminfo.c'; else $(CYGPATH_W) '$(srcdir)/test/chminfo.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chminfo.Tpo $(DEPDIR)/chminfo.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chminfo.c' object='chminfo.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chminfo.obj `if test -f 'test/chminfo.c'; then $(CYGPATH_W) 'test/chminfo.c'; else $(CYGPATH_W) '$(srcdir)/test/chminfo.c'; fi`
-+
-+chmx.o: test/chmx.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmx.o -MD -MP -MF $(DEPDIR)/chmx.Tpo -c -o chmx.o `test -f 'test/chmx.c' || echo '$(srcdir)/'`test/chmx.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmx.Tpo $(DEPDIR)/chmx.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chmx.c' object='chmx.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmx.o `test -f 'test/chmx.c' || echo '$(srcdir)/'`test/chmx.c
-+
-+chmx.obj: test/chmx.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT chmx.obj -MD -MP -MF $(DEPDIR)/chmx.Tpo -c -o chmx.obj `if test -f 'test/chmx.c'; then $(CYGPATH_W) 'test/chmx.c'; else $(CYGPATH_W) '$(srcdir)/test/chmx.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/chmx.Tpo $(DEPDIR)/chmx.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/chmx.c' object='chmx.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chmx.obj `if test -f 'test/chmx.c'; then $(CYGPATH_W) 'test/chmx.c'; else $(CYGPATH_W) '$(srcdir)/test/chmx.c'; fi`
-+
-+expand.o: test/expand.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT expand.o -MD -MP -MF $(DEPDIR)/expand.Tpo -c -o expand.o `test -f 'test/expand.c' || echo '$(srcdir)/'`test/expand.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/expand.Tpo $(DEPDIR)/expand.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/expand.c' object='expand.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o expand.o `test -f 'test/expand.c' || echo '$(srcdir)/'`test/expand.c
-+
-+expand.obj: test/expand.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT expand.obj -MD -MP -MF $(DEPDIR)/expand.Tpo -c -o expand.obj `if test -f 'test/expand.c'; then $(CYGPATH_W) 'test/expand.c'; else $(CYGPATH_W) '$(srcdir)/test/expand.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/expand.Tpo $(DEPDIR)/expand.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/expand.c' object='expand.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o expand.obj `if test -f 'test/expand.c'; then $(CYGPATH_W) 'test/expand.c'; else $(CYGPATH_W) '$(srcdir)/test/expand.c'; fi`
-+
-+multifh.o: test/multifh.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifh.o -MD -MP -MF $(DEPDIR)/multifh.Tpo -c -o multifh.o `test -f 'test/multifh.c' || echo '$(srcdir)/'`test/multifh.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/multifh.Tpo $(DEPDIR)/multifh.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/multifh.c' object='multifh.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifh.o `test -f 'test/multifh.c' || echo '$(srcdir)/'`test/multifh.c
-+
-+multifh.obj: test/multifh.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifh.obj -MD -MP -MF $(DEPDIR)/multifh.Tpo -c -o multifh.obj `if test -f 'test/multifh.c'; then $(CYGPATH_W) 'test/multifh.c'; else $(CYGPATH_W) '$(srcdir)/test/multifh.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/multifh.Tpo $(DEPDIR)/multifh.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/multifh.c' object='multifh.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifh.obj `if test -f 'test/multifh.c'; then $(CYGPATH_W) 'test/multifh.c'; else $(CYGPATH_W) '$(srcdir)/test/multifh.c'; fi`
-+
-+oabx.o: test/oabx.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT oabx.o -MD -MP -MF $(DEPDIR)/oabx.Tpo -c -o oabx.o `test -f 'test/oabx.c' || echo '$(srcdir)/'`test/oabx.c
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/oabx.Tpo $(DEPDIR)/oabx.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/oabx.c' object='oabx.o' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o oabx.o `test -f 'test/oabx.c' || echo '$(srcdir)/'`test/oabx.c
-+
-+oabx.obj: test/oabx.c
-+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT oabx.obj -MD -MP -MF $(DEPDIR)/oabx.Tpo -c -o oabx.obj `if test -f 'test/oabx.c'; then $(CYGPATH_W) 'test/oabx.c'; else $(CYGPATH_W) '$(srcdir)/test/oabx.c'; fi`
-+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/oabx.Tpo $(DEPDIR)/oabx.Po
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test/oabx.c' object='oabx.obj' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o oabx.obj `if test -f 'test/oabx.c'; then $(CYGPATH_W) 'test/oabx.c'; else $(CYGPATH_W) '$(srcdir)/test/oabx.c'; fi`
-+
-+mostlyclean-libtool:
-+	-rm -f *.lo
-+
-+clean-libtool:
-+	-rm -rf .libs _libs
-+	-rm -rf test/.libs test/_libs
-+
-+distclean-libtool:
-+	-rm -f libtool config.lt
-+install-pkgconfigDATA: $(pkgconfig_DATA)
-+	@$(NORMAL_INSTALL)
-+	test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
-+	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
-+	for p in $$list; do \
-+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-+	  echo "$$d$$p"; \
-+	done | $(am__base_list) | \
-+	while read files; do \
-+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
-+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
-+	done
-+
-+uninstall-pkgconfigDATA:
-+	@$(NORMAL_UNINSTALL)
-+	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
-+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-+	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
-+install-includeHEADERS: $(include_HEADERS)
-+	@$(NORMAL_INSTALL)
-+	test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
-+	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
-+	for p in $$list; do \
-+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-+	  echo "$$d$$p"; \
-+	done | $(am__base_list) | \
-+	while read files; do \
-+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
-+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
-+	done
-+
-+uninstall-includeHEADERS:
-+	@$(NORMAL_UNINSTALL)
-+	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
-+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-+	dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
-+
-+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-+	unique=`for i in $$list; do \
-+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-+	  done | \
-+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-+	mkid -fID $$unique
-+tags: TAGS
-+
-+TAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-+		$(TAGS_FILES) $(LISP)
-+	set x; \
-+	here=`pwd`; \
-+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-+	unique=`for i in $$list; do \
-+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-+	  done | \
-+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-+	shift; \
-+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-+	  test -n "$$unique" || unique=$$empty_fix; \
-+	  if test $$# -gt 0; then \
-+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-+	      "$$@" $$unique; \
-+	  else \
-+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-+	      $$unique; \
-+	  fi; \
-+	fi
-+ctags: CTAGS
-+CTAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-+		$(TAGS_FILES) $(LISP)
-+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-+	unique=`for i in $$list; do \
-+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-+	  done | \
-+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-+	test -z "$(CTAGS_ARGS)$$unique" \
-+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-+	     $$unique
-+
-+GTAGS:
-+	here=`$(am__cd) $(top_builddir) && pwd` \
-+	  && $(am__cd) $(top_srcdir) \
-+	  && gtags -i $(GTAGS_ARGS) "$$here"
-+
-+distclean-tags:
-+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-+
-+distdir: $(DISTFILES)
-+	$(am__remove_distdir)
-+	test -d "$(distdir)" || mkdir "$(distdir)"
-+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-+	list='$(DISTFILES)'; \
-+	  dist_files=`for file in $$list; do echo $$file; done | \
-+	  sed -e "s|^$$srcdirstrip/||;t" \
-+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-+	case $$dist_files in \
-+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-+			   sort -u` ;; \
-+	esac; \
-+	for file in $$dist_files; do \
-+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-+	  if test -d $$d/$$file; then \
-+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-+	    if test -d "$(distdir)/$$file"; then \
-+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-+	    fi; \
-+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-+	    fi; \
-+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-+	  else \
-+	    test -f "$(distdir)/$$file" \
-+	    || cp -p $$d/$$file "$(distdir)/$$file" \
-+	    || exit 1; \
-+	  fi; \
-+	done
-+	$(MAKE) $(AM_MAKEFLAGS) \
-+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-+	  dist-hook
-+	-test -n "$(am__skip_mode_fix)" \
-+	|| find "$(distdir)" -type d ! -perm -755 \
-+		-exec chmod u+rwx,go+rx {} \; -o \
-+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
-+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-+	|| chmod -R a+r "$(distdir)"
-+dist-gzip: distdir
-+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-+	$(am__remove_distdir)
-+
-+dist-bzip2: distdir
-+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-+	$(am__remove_distdir)
-+
-+dist-lzip: distdir
-+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-+	$(am__remove_distdir)
-+
-+dist-lzma: distdir
-+	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-+	$(am__remove_distdir)
-+
-+dist-xz: distdir
-+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-+	$(am__remove_distdir)
-+
-+dist-tarZ: distdir
-+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-+	$(am__remove_distdir)
-+
-+dist-shar: distdir
-+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-+	$(am__remove_distdir)
-+
-+dist-zip: distdir
-+	-rm -f $(distdir).zip
-+	zip -rq $(distdir).zip $(distdir)
-+	$(am__remove_distdir)
-+
-+dist dist-all: distdir
-+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-+	$(am__remove_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
-+	case '$(DIST_ARCHIVES)' in \
-+	*.tar.gz*) \
-+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
-+	*.tar.bz2*) \
-+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-+	*.tar.lzma*) \
-+	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
-+	*.tar.lz*) \
-+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
-+	*.tar.xz*) \
-+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
-+	*.tar.Z*) \
-+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
-+	*.shar.gz*) \
-+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
-+	*.zip*) \
-+	  unzip $(distdir).zip ;;\
-+	esac
-+	chmod -R a-w $(distdir); chmod a+w $(distdir)
-+	mkdir $(distdir)/_build
-+	mkdir $(distdir)/_inst
-+	chmod a-w $(distdir)
-+	test -d $(distdir)/_build || exit 0; \
-+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
-+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-+	  && am__cwd=`pwd` \
-+	  && $(am__cd) $(distdir)/_build \
-+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
-+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
-+	    $(DISTCHECK_CONFIGURE_FLAGS) \
-+	  && $(MAKE) $(AM_MAKEFLAGS) \
-+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-+	  && $(MAKE) $(AM_MAKEFLAGS) check \
-+	  && $(MAKE) $(AM_MAKEFLAGS) install \
-+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
-+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
-+	        distuninstallcheck \
-+	  && chmod -R a-w "$$dc_install_base" \
-+	  && ({ \
-+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
-+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
-+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
-+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
-+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
-+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
-+	  && rm -rf "$$dc_destdir" \
-+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
-+	  && rm -rf $(DIST_ARCHIVES) \
-+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
-+	  && cd "$$am__cwd" \
-+	  || exit 1
-+	$(am__remove_distdir)
-+	@(echo "$(distdir) archives ready for distribution: "; \
-+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-+distuninstallcheck:
-+	@test -n '$(distuninstallcheck_dir)' || { \
-+	  echo 'ERROR: trying to run $@ with an empty' \
-+	       '$$(distuninstallcheck_dir)' >&2; \
-+	  exit 1; \
-+	}; \
-+	$(am__cd) '$(distuninstallcheck_dir)' || { \
-+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
-+	  exit 1; \
-+	}; \
-+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
-+	   || { echo "ERROR: files left after uninstall:" ; \
-+	        if test -n "$(DESTDIR)"; then \
-+	          echo "  (check DESTDIR support)"; \
-+	        fi ; \
-+	        $(distuninstallcheck_listfiles) ; \
-+	        exit 1; } >&2
-+distcleancheck: distclean
-+	@if test '$(srcdir)' = . ; then \
-+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
-+	  exit 1 ; \
-+	fi
-+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
-+	  || { echo "ERROR: files left in build directory after distclean:" ; \
-+	       $(distcleancheck_listfiles) ; \
-+	       exit 1; } >&2
-+check-am: all-am
-+check: check-am
-+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) \
-+		config.h
-+installdirs:
-+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \
-+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-+	done
-+install: install-am
-+install-exec: install-exec-am
-+install-data: install-data-am
-+uninstall: uninstall-am
-+
-+install-am: all-am
-+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-+
-+installcheck: installcheck-am
-+install-strip:
-+	if test -z '$(STRIP)'; then \
-+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-+	      install; \
-+	else \
-+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-+	fi
-+mostlyclean-generic:
-+
-+clean-generic:
-+
-+distclean-generic:
-+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-+	-rm -f test/$(am__dirstamp)
-+
-+maintainer-clean-generic:
-+	@echo "This command is intended for maintainers to use"
-+	@echo "it deletes files that may require special tools to rebuild."
-+clean: clean-am
-+
-+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-+	clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am
-+
-+distclean: distclean-am
-+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-+	-rm -rf ./$(DEPDIR)
-+	-rm -f Makefile
-+distclean-am: clean-am distclean-compile distclean-generic \
-+	distclean-hdr distclean-libtool distclean-tags
-+
-+dvi: dvi-am
-+
-+dvi-am:
-+
-+html: html-am
-+
-+html-am:
-+
-+info: info-am
-+
-+info-am:
-+
-+install-data-am: install-includeHEADERS install-pkgconfigDATA
-+
-+install-dvi: install-dvi-am
-+
-+install-dvi-am:
-+
-+install-exec-am: install-libLTLIBRARIES
-+
-+install-html: install-html-am
-+
-+install-html-am:
-+
-+install-info: install-info-am
-+
-+install-info-am:
-+
-+install-man:
-+
-+install-pdf: install-pdf-am
-+
-+install-pdf-am:
-+
-+install-ps: install-ps-am
-+
-+install-ps-am:
-+
-+installcheck-am:
-+
-+maintainer-clean: maintainer-clean-am
-+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-+	-rm -rf $(top_srcdir)/autom4te.cache
-+	-rm -rf ./$(DEPDIR)
-+	-rm -f Makefile
-+maintainer-clean-am: distclean-am maintainer-clean-generic
-+
-+mostlyclean: mostlyclean-am
-+
-+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-+	mostlyclean-libtool
-+
-+pdf: pdf-am
-+
-+pdf-am:
-+
-+ps: ps-am
-+
-+ps-am:
-+
-+uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \
-+	uninstall-pkgconfigDATA
-+
-+.MAKE: all install-am install-strip
-+
-+.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
-+	clean-generic clean-libLTLIBRARIES clean-libtool \
-+	clean-noinstLTLIBRARIES clean-noinstPROGRAMS ctags dist \
-+	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-lzma \
-+	dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
-+	distclean-compile distclean-generic distclean-hdr \
-+	distclean-libtool distclean-tags distcleancheck distdir \
-+	distuninstallcheck dvi dvi-am html html-am info info-am \
-+	install install-am install-data install-data-am install-dvi \
-+	install-dvi-am install-exec install-exec-am install-html \
-+	install-html-am install-includeHEADERS install-info \
-+	install-info-am install-libLTLIBRARIES install-man install-pdf \
-+	install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
-+	install-strip installcheck installcheck-am installdirs \
-+	maintainer-clean maintainer-clean-generic mostlyclean \
-+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
-+	uninstall-includeHEADERS uninstall-libLTLIBRARIES \
-+	uninstall-pkgconfigDATA
-+
-+
-+dist-hook:
-+	-rm -f $(distdir)/*.la
-+
-+# 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/libclamav/libmspack-0.4alpha/NEWS b/libclamav/libmspack-0.4alpha/NEWS
-new file mode 100644
-index 000000000000..e69de29bb2d1
-diff --git a/libclamav/libmspack-0.4alpha/README b/libclamav/libmspack-0.4alpha/README
-new file mode 100644
-index 000000000000..4361b5516e75
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/README
-@@ -0,0 +1,130 @@
-+libmspack 0.4alpha
-+
-+The purpose of libmspack is to provide compressors and decompressors,
-+archivers and dearchivers for Microsoft compression formats: CAB, CHM, WIM,
-+LIT, HLP, KWAJ and SZDD. It is also designed to be easily embeddable,
-+stable, robust and resource-efficient.
-+
-+The library is not intended as a generalised "any archiver" interface.
-+Users of the library must explicitly choose the format they intend to work
-+with.
-+
-+All special features of the above formats will be covered as fully as
-+possible -- for example, CAB's multi-part cabinet sets, or CHM's fast
-+lookup indices. All compression methods used by the formats will be
-+implemented as completely as possible.
-+
-+However, other than what is required for access to these formats and their
-+features, no other functionality is intended. There is no file metadata
-+translation functionality. All file I/O is abstracted, although a default
-+implementation using the standard C library is provided.
-+
-+
-+DOCUMENTATION
-+
-+The API documentation is stored in the doc/ directory. It is generated
-+automatically from mspack.h with doxygen. It is also available online at
-+http://www.cabextract.org.uk/libmspack/doc/
-+
-+
-+BUILDING / INSTALLING
-+
-+./configure
-+make
-+make install
-+
-+This will install the main libmspack library and mspack.h header file.
-+Some other libraries and executables are built, but not installed.
-+
-+If building from the Subversion repository, running rebuild.sh will create
-+all the automatically generated files like the configure script, and will
-+then ./configure, make and make distcheck. Running cleanup.sh will perform
-+a thorough clean, deleting all automatically generated files.
-+
-+In addition to gcc, you also need the following for building from Subversion:
-+
-+- at least autoconf 2.57
-+- at least automake 1.7
-+- libtool
-+
-+This is an alpha release. Unless you are in a position to package the
-+libmspack library for the environment you intend to run your application,
-+it is recommended that you do not rely on users of your software having
-+the binary library installed and instead you should include the libmspack
-+source files directly in your application's build environment.
-+
-+
-+LEGAL ISSUES
-+
-+The the best of my knowledge, libmspack does not infringe on any
-+compression or decompression patents. However, this is not legal
-+advice, and it is recommended that you perform your own patent search.
-+
-+libmspack is licensed under the LGPL - see COPYING.LIB in this directory.
-+
-+The LGPL requires you to build libmspack as a stand alone library then link
-+your code to it using a linker. I personally grant you some extra rights:
-+you can incorporate libmspack's source code wholly or partially in your own
-+code, without having to build and link libmspack as an independent library,
-+provided you meet ALL of the following conditions:
-+
-+1. ANY modifications to the existing libmspack source code are published and
-+   distributed under the LGPL license.
-+2. You MUST NOT use libmspack function calls, structures or definitions unless
-+   they are defined in the public library interface "mspack.h".
-+3. When distributing your code, you MUST make clear your code uses libmspack,
-+   and either include the full libmspack distribution with your code, or
-+   provide access to it as per clause 4 of the LGPL.
-+
-+EXAMPLE CODE
-+
-+There are a number of useful programs in the test/ directory which
-+exercise and demonstrate libmspack's features.
-+
-+cabd_c10       - Tests the CAB decompressor on the C10 collection.
-+cabd_compare   - Compares the CAB decompressor with Microsoft's EXTRACT.EXE
-+cabd_md5       - Prints the MD5 checksums of all files within a CAB file/set.
-+cabd_memory    - An mspack_system implementation that reads/writes to memory.
-+cabd_test      - Regression tests for libmspack's CAB decompression.
-+cabrip         - Extracts any CAB files embedded in another file.
-+chmd_compare   - Compares the CHM decompressor to Microsoft's HH.EXE
-+chmd_find      - Fast-finds a file within a CHM file.
-+chmd_md5       - Prints the MD5 checksums of all files within a CHM file.
-+chmd_order     - Tests extracting files in a CHM file in four different ways.
-+chminfo        - Prints verbose information about CHM file structures.
-+chmx           - Extracts all files in a CHM file to disk.
-+expand         - Extracts an SZDD or KWAJ file.
-+msdecompile_md5- Runs Microsoft's HH.EXE -DECOMPILE via WINE.
-+msexpand_md5   - Runs Microsoft's EXTRACT.EXE via WINE.
-+multifh        - An mspack_system implementation that can simultaneously work
-+                 on in-memory images, raw file descriptors, open file handles
-+                 and regular disk files.
-+
-+Here is a simple example of usage, which will create a CAB decompressor,
-+then use that to open an existing Microsoft CAB file called "example.cab",
-+and list the names of all the files contained in that cab.
-+
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <mspack.h>
-+
-+int main() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+  struct mscabd_file *file;
-+  int test;
-+
-+  MSPACK_SYS_SELFTEST(test);
-+  if (test != MSPACK_ERR_OK) exit(0);
-+
-+  if ((cabd = mspack_create_cab_decompressor(NULL))) {
-+    if ((cab = cabd->open(cabd, "example.cab"))) {
-+      for (file = cab->files; file; file = file->next) {
-+        printf("%s\n", file->filename);
-+      }
-+      cabd->close(cabd, cab);
-+    }
-+    mspack_destroy_cab_decompressor(cabd);
-+  }
-+  return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/TODO b/libclamav/libmspack-0.4alpha/TODO
-new file mode 100644
-index 000000000000..df1095d66332
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/TODO
-@@ -0,0 +1,8 @@
-+* CAB compression
-+* cabd_find(): if many bytes are missing from the end of a cabinet, it should still find it
-+* CHM compression
-+* HLP: everything
-+* LIT: everything
-+* SZDD/KWAJ: compression
-+* WIM: everything
-+* chm: make chunk cache size user-controllable
-diff --git a/libclamav/libmspack-0.4alpha/aclocal.m4 b/libclamav/libmspack-0.4alpha/aclocal.m4
-new file mode 100644
-index 000000000000..22b5a662417c
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/aclocal.m4
-@@ -0,0 +1,1033 @@
-+# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
-+
-+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-+# Inc.
-+# This file 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.
-+
-+m4_ifndef([AC_AUTOCONF_VERSION],
-+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
-+[m4_warning([this file was generated for autoconf 2.68.
-+You have another version of autoconf.  It may work, but is not guaranteed to.
-+If you have problems, you may need to regenerate the build system entirely.
-+To do so, use the procedure documented by the package, typically `autoreconf'.])])
-+
-+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-+# Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 1
-+
-+# AM_AUTOMAKE_VERSION(VERSION)
-+# ----------------------------
-+# Automake X.Y traces this macro to ensure aclocal.m4 has been
-+# generated from the m4 files accompanying Automake X.Y.
-+# (This private macro should not be called outside this file.)
-+AC_DEFUN([AM_AUTOMAKE_VERSION],
-+[am__api_version='1.11'
-+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-+dnl require some minimum version.  Point them to the right macro.
-+m4_if([$1], [1.11.3], [],
-+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-+])
-+
-+# _AM_AUTOCONF_VERSION(VERSION)
-+# -----------------------------
-+# aclocal traces this macro to find the Autoconf version.
-+# This is a private macro too.  Using m4_define simplifies
-+# the logic in aclocal, which can simply ignore this definition.
-+m4_define([_AM_AUTOCONF_VERSION], [])
-+
-+# AM_SET_CURRENT_AUTOMAKE_VERSION
-+# -------------------------------
-+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-+[AM_AUTOMAKE_VERSION([1.11.3])dnl
-+m4_ifndef([AC_AUTOCONF_VERSION],
-+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-+
-+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
-+
-+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 1
-+
-+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-+#
-+# Of course, Automake must honor this variable whenever it calls a
-+# tool from the auxiliary directory.  The problem is that $srcdir (and
-+# therefore $ac_aux_dir as well) can be either absolute or relative,
-+# depending on how configure is run.  This is pretty annoying, since
-+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-+# source directory, any form will work fine, but in subdirectories a
-+# relative path needs to be adjusted first.
-+#
-+# $ac_aux_dir/missing
-+#    fails when called from a subdirectory if $ac_aux_dir is relative
-+# $top_srcdir/$ac_aux_dir/missing
-+#    fails if $ac_aux_dir is absolute,
-+#    fails when called from a subdirectory in a VPATH build with
-+#          a relative $ac_aux_dir
-+#
-+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-+# are both prefixed by $srcdir.  In an in-source build this is usually
-+# harmless because $srcdir is `.', but things will broke when you
-+# start a VPATH build or use an absolute $srcdir.
-+#
-+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
-+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-+# and then we would define $MISSING as
-+#   MISSING="\${SHELL} $am_aux_dir/missing"
-+# This will work as long as MISSING is not called from configure, because
-+# unfortunately $(top_srcdir) has no meaning in configure.
-+# However there are other variables, like CC, which are often used in
-+# configure, and could therefore not use this "fixed" $ac_aux_dir.
-+#
-+# Another solution, used here, is to always expand $ac_aux_dir to an
-+# absolute PATH.  The drawback is that using absolute paths prevent a
-+# configured tree to be moved without reconfiguration.
-+
-+AC_DEFUN([AM_AUX_DIR_EXPAND],
-+[dnl Rely on autoconf to set up CDPATH properly.
-+AC_PREREQ([2.50])dnl
-+# expand $ac_aux_dir to an absolute path
-+am_aux_dir=`cd $ac_aux_dir && pwd`
-+])
-+
-+# AM_CONDITIONAL                                            -*- Autoconf -*-
-+
-+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-+# Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 9
-+
-+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-+# -------------------------------------
-+# Define a conditional.
-+AC_DEFUN([AM_CONDITIONAL],
-+[AC_PREREQ(2.52)dnl
-+ ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-+	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-+AC_SUBST([$1_TRUE])dnl
-+AC_SUBST([$1_FALSE])dnl
-+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-+m4_define([_AM_COND_VALUE_$1], [$2])dnl
-+if $2; then
-+  $1_TRUE=
-+  $1_FALSE='#'
-+else
-+  $1_TRUE='#'
-+  $1_FALSE=
-+fi
-+AC_CONFIG_COMMANDS_PRE(
-+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
-+  AC_MSG_ERROR([[conditional "$1" was never defined.
-+Usually this means the macro was only invoked conditionally.]])
-+fi])])
-+
-+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-+# 2010, 2011 Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 12
-+
-+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-+# written in clear, in which case automake, when reading aclocal.m4,
-+# will think it sees a *use*, and therefore will trigger all it's
-+# C support machinery.  Also note that it means that autoscan, seeing
-+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-+
-+
-+# _AM_DEPENDENCIES(NAME)
-+# ----------------------
-+# See how the compiler implements dependency checking.
-+# NAME is "CC", "CXX", "GCJ", or "OBJC".
-+# We try a few techniques and use that to set a single cache variable.
-+#
-+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-+# dependency, and given that the user is not expected to run this macro,
-+# just rely on AC_PROG_CC.
-+AC_DEFUN([_AM_DEPENDENCIES],
-+[AC_REQUIRE([AM_SET_DEPDIR])dnl
-+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-+AC_REQUIRE([AM_DEP_TRACK])dnl
-+
-+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-+       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-+                   [depcc="$$1"   am_compiler_list=])
-+
-+AC_CACHE_CHECK([dependency style of $depcc],
-+               [am_cv_$1_dependencies_compiler_type],
-+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-+  # We make a subdir and do the tests there.  Otherwise we can end up
-+  # making bogus files that we don't know about and never remove.  For
-+  # instance it was reported that on HP-UX the gcc test will end up
-+  # making a dummy file named `D' -- because `-MD' means `put the output
-+  # in D'.
-+  rm -rf conftest.dir
-+  mkdir conftest.dir
-+  # Copy depcomp to subdir because otherwise we won't find it if we're
-+  # using a relative directory.
-+  cp "$am_depcomp" conftest.dir
-+  cd conftest.dir
-+  # We will build objects and dependencies in a subdirectory because
-+  # it helps to detect inapplicable dependency modes.  For instance
-+  # both Tru64's cc and ICC support -MD to output dependencies as a
-+  # side effect of compilation, but ICC will put the dependencies in
-+  # the current directory while Tru64 will put them in the object
-+  # directory.
-+  mkdir sub
-+
-+  am_cv_$1_dependencies_compiler_type=none
-+  if test "$am_compiler_list" = ""; then
-+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
-+  fi
-+  am__universal=false
-+  m4_case([$1], [CC],
-+    [case " $depcc " in #(
-+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-+     esac],
-+    [CXX],
-+    [case " $depcc " in #(
-+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-+     esac])
-+
-+  for depmode in $am_compiler_list; do
-+    # Setup a source with many dependencies, because some compilers
-+    # like to wrap large dependency lists on column 80 (with \), and
-+    # we should not choose a depcomp mode which is confused by this.
-+    #
-+    # We need to recreate these files for each test, as the compiler may
-+    # overwrite some of them when testing with obscure command lines.
-+    # This happens at least with the AIX C compiler.
-+    : > sub/conftest.c
-+    for i in 1 2 3 4 5 6; do
-+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-+      # Solaris 8's {/usr,}/bin/sh.
-+      touch sub/conftst$i.h
-+    done
-+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-+
-+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-+    # mode.  It turns out that the SunPro C++ compiler does not properly
-+    # handle `-M -o', and we need to detect this.  Also, some Intel
-+    # versions had trouble with output in subdirs
-+    am__obj=sub/conftest.${OBJEXT-o}
-+    am__minus_obj="-o $am__obj"
-+    case $depmode in
-+    gcc)
-+      # This depmode causes a compiler race in universal mode.
-+      test "$am__universal" = false || continue
-+      ;;
-+    nosideeffect)
-+      # after this tag, mechanisms are not by side-effect, so they'll
-+      # only be used when explicitly requested
-+      if test "x$enable_dependency_tracking" = xyes; then
-+	continue
-+      else
-+	break
-+      fi
-+      ;;
-+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-+      # This compiler won't grok `-c -o', but also, the minuso test has
-+      # not run yet.  These depmodes are late enough in the game, and
-+      # so weak that their functioning should not be impacted.
-+      am__obj=conftest.${OBJEXT-o}
-+      am__minus_obj=
-+      ;;
-+    none) break ;;
-+    esac
-+    if depmode=$depmode \
-+       source=sub/conftest.c object=$am__obj \
-+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-+         >/dev/null 2>conftest.err &&
-+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-+      # icc doesn't choke on unknown options, it will just issue warnings
-+      # or remarks (even with -Werror).  So we grep stderr for any message
-+      # that says an option was ignored or not supported.
-+      # When given -MP, icc 7.0 and 7.1 complain thusly:
-+      #   icc: Command line warning: ignoring option '-M'; no argument required
-+      # The diagnosis changed in icc 8.0:
-+      #   icc: Command line remark: option '-MP' not supported
-+      if (grep 'ignoring option' conftest.err ||
-+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-+        am_cv_$1_dependencies_compiler_type=$depmode
-+        break
-+      fi
-+    fi
-+  done
-+
-+  cd ..
-+  rm -rf conftest.dir
-+else
-+  am_cv_$1_dependencies_compiler_type=none
-+fi
-+])
-+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-+AM_CONDITIONAL([am__fastdep$1], [
-+  test "x$enable_dependency_tracking" != xno \
-+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-+])
-+
-+
-+# AM_SET_DEPDIR
-+# -------------
-+# Choose a directory name for dependency files.
-+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-+AC_DEFUN([AM_SET_DEPDIR],
-+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-+])
-+
-+
-+# AM_DEP_TRACK
-+# ------------
-+AC_DEFUN([AM_DEP_TRACK],
-+[AC_ARG_ENABLE(dependency-tracking,
-+[  --disable-dependency-tracking  speeds up one-time build
-+  --enable-dependency-tracking   do not reject slow dependency extractors])
-+if test "x$enable_dependency_tracking" != xno; then
-+  am_depcomp="$ac_aux_dir/depcomp"
-+  AMDEPBACKSLASH='\'
-+  am__nodep='_no'
-+fi
-+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-+AC_SUBST([AMDEPBACKSLASH])dnl
-+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-+AC_SUBST([am__nodep])dnl
-+_AM_SUBST_NOTMAKE([am__nodep])dnl
-+])
-+
-+# Generate code to set up dependency tracking.              -*- Autoconf -*-
-+
-+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-+# Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+#serial 5
-+
-+# _AM_OUTPUT_DEPENDENCY_COMMANDS
-+# ------------------------------
-+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-+[{
-+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-+  # are listed without --file.  Let's play safe and only enable the eval
-+  # if we detect the quoting.
-+  case $CONFIG_FILES in
-+  *\'*) eval set x "$CONFIG_FILES" ;;
-+  *)   set x $CONFIG_FILES ;;
-+  esac
-+  shift
-+  for mf
-+  do
-+    # Strip MF so we end up with the name of the file.
-+    mf=`echo "$mf" | sed -e 's/:.*$//'`
-+    # Check whether this is an Automake generated Makefile or not.
-+    # We used to match only the files named `Makefile.in', but
-+    # some people rename them; so instead we look at the file content.
-+    # Grep'ing the first line is not enough: some people post-process
-+    # each Makefile.in and add a new line on top of each file to say so.
-+    # Grep'ing the whole file is not good either: AIX grep has a line
-+    # limit of 2048, but all sed's we know have understand at least 4000.
-+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-+      dirpart=`AS_DIRNAME("$mf")`
-+    else
-+      continue
-+    fi
-+    # Extract the definition of DEPDIR, am__include, and am__quote
-+    # from the Makefile without running `make'.
-+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-+    test -z "$DEPDIR" && continue
-+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-+    test -z "am__include" && continue
-+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-+    # When using ansi2knr, U may be empty or an underscore; expand it
-+    U=`sed -n 's/^U = //p' < "$mf"`
-+    # Find all dependency output files, they are included files with
-+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-+    # simplest approach to changing $(DEPDIR) to its actual value in the
-+    # expansion.
-+    for file in `sed -n "
-+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-+      # Make sure the directory exists.
-+      test -f "$dirpart/$file" && continue
-+      fdir=`AS_DIRNAME(["$file"])`
-+      AS_MKDIR_P([$dirpart/$fdir])
-+      # echo "creating $dirpart/$file"
-+      echo '# dummy' > "$dirpart/$file"
-+    done
-+  done
-+}
-+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-+
-+
-+# AM_OUTPUT_DEPENDENCY_COMMANDS
-+# -----------------------------
-+# This macro should only be invoked once -- use via AC_REQUIRE.
-+#
-+# This code is only required when automatic dependency tracking
-+# is enabled.  FIXME.  This creates each `.P' file that we will
-+# need in order to bootstrap the dependency handling code.
-+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-+[AC_CONFIG_COMMANDS([depfiles],
-+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
-+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-+])
-+
-+# Do all the work for Automake.                             -*- Autoconf -*-
-+
-+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 16
-+
-+# 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.
-+
-+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-+# AM_INIT_AUTOMAKE([OPTIONS])
-+# -----------------------------------------------
-+# The call with PACKAGE and VERSION arguments is the old style
-+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
-+# and VERSION should now be passed to AC_INIT and removed from
-+# the call to AM_INIT_AUTOMAKE.
-+# We support both call styles for the transition.  After
-+# the next Automake release, Autoconf can make the AC_INIT
-+# arguments mandatory, and then we can depend on a new Autoconf
-+# release and drop the old call support.
-+AC_DEFUN([AM_INIT_AUTOMAKE],
-+[AC_PREREQ([2.62])dnl
-+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
-+dnl the ones we care about.
-+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-+AC_REQUIRE([AC_PROG_INSTALL])dnl
-+if test "`cd $srcdir && pwd`" != "`pwd`"; then
-+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-+  # is not polluted with repeated "-I."
-+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
-+  # test to see if srcdir already configured
-+  if test -f $srcdir/config.status; then
-+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-+  fi
-+fi
-+
-+# test whether we have cygpath
-+if test -z "$CYGPATH_W"; then
-+  if (cygpath --version) >/dev/null 2>/dev/null; then
-+    CYGPATH_W='cygpath -w'
-+  else
-+    CYGPATH_W=echo
-+  fi
-+fi
-+AC_SUBST([CYGPATH_W])
-+
-+# Define the identity of the package.
-+dnl Distinguish between old-style and new-style calls.
-+m4_ifval([$2],
-+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
-+ AC_SUBST([PACKAGE], [$1])dnl
-+ AC_SUBST([VERSION], [$2])],
-+[_AM_SET_OPTIONS([$1])dnl
-+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
-+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
-+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
-+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-+
-+_AM_IF_OPTION([no-define],,
-+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-+
-+# Some tools Automake needs.
-+AC_REQUIRE([AM_SANITY_CHECK])dnl
-+AC_REQUIRE([AC_ARG_PROGRAM])dnl
-+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-+AM_MISSING_PROG(AUTOCONF, autoconf)
-+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-+AM_MISSING_PROG(AUTOHEADER, autoheader)
-+AM_MISSING_PROG(MAKEINFO, makeinfo)
-+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-+# We need awk for the "check" target.  The system "awk" is bad on
-+# some platforms.
-+AC_REQUIRE([AC_PROG_AWK])dnl
-+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-+			     [_AM_PROG_TAR([v7])])])
-+_AM_IF_OPTION([no-dependencies],,
-+[AC_PROVIDE_IFELSE([AC_PROG_CC],
-+		  [_AM_DEPENDENCIES(CC)],
-+		  [define([AC_PROG_CC],
-+			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-+AC_PROVIDE_IFELSE([AC_PROG_CXX],
-+		  [_AM_DEPENDENCIES(CXX)],
-+		  [define([AC_PROG_CXX],
-+			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-+		  [_AM_DEPENDENCIES(OBJC)],
-+		  [define([AC_PROG_OBJC],
-+			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
-+])
-+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
-+AC_CONFIG_COMMANDS_PRE(dnl
-+[m4_provide_if([_AM_COMPILER_EXEEXT],
-+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-+])
-+
-+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
-+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-+dnl mangled by Autoconf and run in a shell conditional statement.
-+m4_define([_AC_COMPILER_EXEEXT],
-+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-+
-+
-+# When config.status generates a header, we must update the stamp-h file.
-+# This file resides in the same directory as the config header
-+# that is generated.  The stamp files are numbered to have different names.
-+
-+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-+# loop where config.status creates the headers, so we can generate
-+# our stamp files there.
-+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-+[# Compute $1's index in $config_headers.
-+_am_arg=$1
-+_am_stamp_count=1
-+for _am_header in $config_headers :; do
-+  case $_am_header in
-+    $_am_arg | $_am_arg:* )
-+      break ;;
-+    * )
-+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-+  esac
-+done
-+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-+
-+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-+# Inc.
-+#
-+# This file 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.
-+
-+# serial 1
-+
-+# AM_PROG_INSTALL_SH
-+# ------------------
-+# Define $install_sh.
-+AC_DEFUN([AM_PROG_INSTALL_SH],
-+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-+if test x"${install_sh}" != xset; then
-+  case $am_aux_dir in
-+  *\ * | *\	*)
-+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-+  *)
-+    install_sh="\${SHELL} $am_aux_dir/install-sh"
-+  esac
-+fi
-+AC_SUBST(install_sh)])
-+
-+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 2
-+
-+# Check whether the underlying file-system supports filenames
-+# with a leading dot.  For instance MS-DOS doesn't.
-+AC_DEFUN([AM_SET_LEADING_DOT],
-+[rm -rf .tst 2>/dev/null
-+mkdir .tst 2>/dev/null
-+if test -d .tst; then
-+  am__leading_dot=.
-+else
-+  am__leading_dot=_
-+fi
-+rmdir .tst 2>/dev/null
-+AC_SUBST([am__leading_dot])])
-+
-+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
-+
-+# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 4
-+
-+# AM_MAKE_INCLUDE()
-+# -----------------
-+# Check to see how make treats includes.
-+AC_DEFUN([AM_MAKE_INCLUDE],
-+[am_make=${MAKE-make}
-+cat > confinc << 'END'
-+am__doit:
-+	@echo this is the am__doit target
-+.PHONY: am__doit
-+END
-+# If we don't find an include directive, just comment out the code.
-+AC_MSG_CHECKING([for style of include used by $am_make])
-+am__include="#"
-+am__quote=
-+_am_result=none
-+# First try GNU make style include.
-+echo "include confinc" > confmf
-+# Ignore all kinds of additional output from `make'.
-+case `$am_make -s -f confmf 2> /dev/null` in #(
-+*the\ am__doit\ target*)
-+  am__include=include
-+  am__quote=
-+  _am_result=GNU
-+  ;;
-+esac
-+# Now try BSD make style include.
-+if test "$am__include" = "#"; then
-+   echo '.include "confinc"' > confmf
-+   case `$am_make -s -f confmf 2> /dev/null` in #(
-+   *the\ am__doit\ target*)
-+     am__include=.include
-+     am__quote="\""
-+     _am_result=BSD
-+     ;;
-+   esac
-+fi
-+AC_SUBST([am__include])
-+AC_SUBST([am__quote])
-+AC_MSG_RESULT([$_am_result])
-+rm -f confinc confmf
-+])
-+
-+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
-+
-+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-+# Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 6
-+
-+# AM_MISSING_PROG(NAME, PROGRAM)
-+# ------------------------------
-+AC_DEFUN([AM_MISSING_PROG],
-+[AC_REQUIRE([AM_MISSING_HAS_RUN])
-+$1=${$1-"${am_missing_run}$2"}
-+AC_SUBST($1)])
-+
-+
-+# AM_MISSING_HAS_RUN
-+# ------------------
-+# Define MISSING if not defined so far and test if it supports --run.
-+# If it does, set am_missing_run to use it, otherwise, to nothing.
-+AC_DEFUN([AM_MISSING_HAS_RUN],
-+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-+AC_REQUIRE_AUX_FILE([missing])dnl
-+if test x"${MISSING+set}" != xset; then
-+  case $am_aux_dir in
-+  *\ * | *\	*)
-+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-+  *)
-+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-+  esac
-+fi
-+# Use eval to expand $SHELL
-+if eval "$MISSING --run true"; then
-+  am_missing_run="$MISSING --run "
-+else
-+  am_missing_run=
-+  AC_MSG_WARN([`missing' script is too old or missing])
-+fi
-+])
-+
-+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-+# Inc.
-+#
-+# This file 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.
-+
-+# serial 1
-+
-+# AM_PROG_MKDIR_P
-+# ---------------
-+# Check for `mkdir -p'.
-+AC_DEFUN([AM_PROG_MKDIR_P],
-+[AC_PREREQ([2.60])dnl
-+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-+dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
-+dnl while keeping a definition of mkdir_p for backward compatibility.
-+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-+dnl Makefile.ins that do not define MKDIR_P, so we do our own
-+dnl adjustment using top_builddir (which is defined more often than
-+dnl MKDIR_P).
-+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-+case $mkdir_p in
-+  [[\\/$]]* | ?:[[\\/]]*) ;;
-+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-+esac
-+])
-+
-+# Helper functions for option handling.                     -*- Autoconf -*-
-+
-+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-+# Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 5
-+
-+# _AM_MANGLE_OPTION(NAME)
-+# -----------------------
-+AC_DEFUN([_AM_MANGLE_OPTION],
-+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-+
-+# _AM_SET_OPTION(NAME)
-+# --------------------
-+# Set option NAME.  Presently that only means defining a flag for this option.
-+AC_DEFUN([_AM_SET_OPTION],
-+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-+
-+# _AM_SET_OPTIONS(OPTIONS)
-+# ------------------------
-+# OPTIONS is a space-separated list of Automake options.
-+AC_DEFUN([_AM_SET_OPTIONS],
-+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-+
-+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-+# -------------------------------------------
-+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-+AC_DEFUN([_AM_IF_OPTION],
-+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-+
-+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
-+
-+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-+# Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 5
-+
-+# AM_SANITY_CHECK
-+# ---------------
-+AC_DEFUN([AM_SANITY_CHECK],
-+[AC_MSG_CHECKING([whether build environment is sane])
-+# Just in case
-+sleep 1
-+echo timestamp > conftest.file
-+# Reject unsafe characters in $srcdir or the absolute working directory
-+# name.  Accept space and tab only in the latter.
-+am_lf='
-+'
-+case `pwd` in
-+  *[[\\\"\#\$\&\'\`$am_lf]]*)
-+    AC_MSG_ERROR([unsafe absolute working directory name]);;
-+esac
-+case $srcdir in
-+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-+    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
-+esac
-+
-+# 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" conftest.file 2> /dev/null`
-+   if test "$[*]" = "X"; then
-+      # -L didn't work.
-+      set X `ls -t "$srcdir/configure" conftest.file`
-+   fi
-+   rm -f conftest.file
-+   if test "$[*]" != "X $srcdir/configure conftest.file" \
-+      && test "$[*]" != "X conftest.file $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]" = conftest.file
-+   )
-+then
-+   # Ok.
-+   :
-+else
-+   AC_MSG_ERROR([newly created file is older than distributed files!
-+Check your system clock])
-+fi
-+AC_MSG_RESULT(yes)])
-+
-+# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 2
-+
-+# AM_SILENT_RULES([DEFAULT])
-+# --------------------------
-+# Enable less verbose build rules; with the default set to DEFAULT
-+# (`yes' being less verbose, `no' or empty being verbose).
-+AC_DEFUN([AM_SILENT_RULES],
-+[AC_ARG_ENABLE([silent-rules],
-+[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-+  --disable-silent-rules         verbose build output (undo: `make V=0')])
-+case $enable_silent_rules in
-+yes) AM_DEFAULT_VERBOSITY=0;;
-+no)  AM_DEFAULT_VERBOSITY=1;;
-+*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-+esac
-+dnl
-+dnl A few `make' implementations (e.g., NonStop OS and NextStep)
-+dnl do not support nested variable expansions.
-+dnl See automake bug#9928 and bug#10237.
-+am_make=${MAKE-make}
-+AC_CACHE_CHECK([whether $am_make supports nested variables],
-+   [am_cv_make_support_nested_variables],
-+   [if AS_ECHO([['TRUE=$(BAR$(V))
-+BAR0=false
-+BAR1=true
-+V=1
-+am__doit:
-+	@$(TRUE)
-+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
-+  am_cv_make_support_nested_variables=yes
-+else
-+  am_cv_make_support_nested_variables=no
-+fi])
-+if test $am_cv_make_support_nested_variables = yes; then
-+  dnl Using `$V' instead of `$(V)' breaks IRIX make.
-+  AM_V='$(V)'
-+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-+else
-+  AM_V=$AM_DEFAULT_VERBOSITY
-+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-+fi
-+AC_SUBST([AM_V])dnl
-+AM_SUBST_NOTMAKE([AM_V])dnl
-+AC_SUBST([AM_DEFAULT_V])dnl
-+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-+AM_BACKSLASH='\'
-+AC_SUBST([AM_BACKSLASH])dnl
-+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-+])
-+
-+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 1
-+
-+# AM_PROG_INSTALL_STRIP
-+# ---------------------
-+# One issue with vendor `install' (even GNU) is that you can't
-+# specify the program used to strip binaries.  This is especially
-+# annoying in cross-compiling environments, where the build's strip
-+# is unlikely to handle the host's binaries.
-+# Fortunately install-sh will honor a STRIPPROG variable, so we
-+# always use install-sh in `make install-strip', and initialize
-+# STRIPPROG with the value of the STRIP variable (set by the user).
-+AC_DEFUN([AM_PROG_INSTALL_STRIP],
-+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-+# Installed binaries are usually stripped using `strip' when the user
-+# run `make install-strip'.  However `strip' might not be the right
-+# tool to use in cross-compilation environments, therefore Automake
-+# will honor the `STRIP' environment variable to overrule this program.
-+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-+if test "$cross_compiling" != no; then
-+  AC_CHECK_TOOL([STRIP], [strip], :)
-+fi
-+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-+AC_SUBST([INSTALL_STRIP_PROGRAM])])
-+
-+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 3
-+
-+# _AM_SUBST_NOTMAKE(VARIABLE)
-+# ---------------------------
-+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-+# This macro is traced by Automake.
-+AC_DEFUN([_AM_SUBST_NOTMAKE])
-+
-+# AM_SUBST_NOTMAKE(VARIABLE)
-+# --------------------------
-+# Public sister of _AM_SUBST_NOTMAKE.
-+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-+
-+# Check how to create a tarball.                            -*- Autoconf -*-
-+
-+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
-+#
-+# This file 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.
-+
-+# serial 2
-+
-+# _AM_PROG_TAR(FORMAT)
-+# --------------------
-+# Check how to create a tarball in format FORMAT.
-+# FORMAT should be one of `v7', `ustar', or `pax'.
-+#
-+# Substitute a variable $(am__tar) that is a command
-+# writing to stdout a FORMAT-tarball containing the directory
-+# $tardir.
-+#     tardir=directory && $(am__tar) > result.tar
-+#
-+# Substitute a variable $(am__untar) that extract such
-+# a tarball read from stdin.
-+#     $(am__untar) < result.tar
-+AC_DEFUN([_AM_PROG_TAR],
-+[# Always define AMTAR for backward compatibility.  Yes, it's still used
-+# in the wild :-(  We should find a proper way to deprecate it ...
-+AC_SUBST([AMTAR], ['$${TAR-tar}'])
-+m4_if([$1], [v7],
-+     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-+     [m4_case([$1], [ustar],, [pax],,
-+              [m4_fatal([Unknown tar format])])
-+AC_MSG_CHECKING([how to create a $1 tar archive])
-+# Loop over all known methods to create a tar archive until one works.
-+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-+# Do not fold the above two line into one, because Tru64 sh and
-+# Solaris sh will not grok spaces in the rhs of `-'.
-+for _am_tool in $_am_tools
-+do
-+  case $_am_tool in
-+  gnutar)
-+    for _am_tar in tar gnutar gtar;
-+    do
-+      AM_RUN_LOG([$_am_tar --version]) && break
-+    done
-+    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-+    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-+    am__untar="$_am_tar -xf -"
-+    ;;
-+  plaintar)
-+    # Must skip GNU tar: if it does not support --format= it doesn't create
-+    # ustar tarball either.
-+    (tar --version) >/dev/null 2>&1 && continue
-+    am__tar='tar chf - "$$tardir"'
-+    am__tar_='tar chf - "$tardir"'
-+    am__untar='tar xf -'
-+    ;;
-+  pax)
-+    am__tar='pax -L -x $1 -w "$$tardir"'
-+    am__tar_='pax -L -x $1 -w "$tardir"'
-+    am__untar='pax -r'
-+    ;;
-+  cpio)
-+    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-+    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-+    am__untar='cpio -i -H $1 -d'
-+    ;;
-+  none)
-+    am__tar=false
-+    am__tar_=false
-+    am__untar=false
-+    ;;
-+  esac
-+
-+  # If the value was cached, stop now.  We just wanted to have am__tar
-+  # and am__untar set.
-+  test -n "${am_cv_prog_tar_$1}" && break
-+
-+  # tar/untar a dummy directory, and stop if the command works
-+  rm -rf conftest.dir
-+  mkdir conftest.dir
-+  echo GrepMe > conftest.dir/file
-+  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
-+  rm -rf conftest.dir
-+  if test -s conftest.tar; then
-+    AM_RUN_LOG([$am__untar <conftest.tar])
-+    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-+  fi
-+done
-+rm -rf conftest.dir
-+
-+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-+AC_SUBST([am__tar])
-+AC_SUBST([am__untar])
-+]) # _AM_PROG_TAR
-+
-+m4_include([m4/libtool.m4])
-+m4_include([m4/ltoptions.m4])
-+m4_include([m4/ltsugar.m4])
-+m4_include([m4/ltversion.m4])
-+m4_include([m4/lt~obsolete.m4])
-diff --git a/libclamav/libmspack-0.4alpha/config.guess b/libclamav/libmspack-0.4alpha/config.guess
-new file mode 100755
-index 000000000000..d622a44e551f
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/config.guess
-@@ -0,0 +1,1530 @@
-+#! /bin/sh
-+# Attempt to guess a canonical system name.
-+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-+#   2011, 2012 Free Software Foundation, Inc.
-+
-+timestamp='2012-02-10'
-+
-+# This file is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+# General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
-+#
-+# 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.
-+
-+
-+# Originally written by Per Bothner.  Please send patches (context
-+# diff format) to <config-patches at gnu.org> and include a ChangeLog
-+# entry.
-+#
-+# This script attempts to guess a canonical system name similar to
-+# config.sub.  If it succeeds, it prints the system name on stdout, and
-+# exits with 0.  Otherwise, it exits with 1.
-+#
-+# You can get the latest version of this script from:
-+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-+
-+me=`echo "$0" | sed -e 's,.*/,,'`
-+
-+usage="\
-+Usage: $0 [OPTION]
-+
-+Output the configuration name of the system \`$me' is run on.
-+
-+Operation modes:
-+  -h, --help         print this help, then exit
-+  -t, --time-stamp   print date of last modification, then exit
-+  -v, --version      print version number, then exit
-+
-+Report bugs and patches to <config-patches at gnu.org>."
-+
-+version="\
-+GNU config.guess ($timestamp)
-+
-+Originally written by Per Bothner.
-+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-+Free Software Foundation, Inc.
-+
-+This is free software; see the source for copying conditions.  There is NO
-+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-+
-+help="
-+Try \`$me --help' for more information."
-+
-+# Parse command line
-+while test $# -gt 0 ; do
-+  case $1 in
-+    --time-stamp | --time* | -t )
-+       echo "$timestamp" ; exit ;;
-+    --version | -v )
-+       echo "$version" ; exit ;;
-+    --help | --h* | -h )
-+       echo "$usage"; exit ;;
-+    -- )     # Stop option processing
-+       shift; break ;;
-+    - )	# Use stdin as input.
-+       break ;;
-+    -* )
-+       echo "$me: invalid option $1$help" >&2
-+       exit 1 ;;
-+    * )
-+       break ;;
-+  esac
-+done
-+
-+if test $# != 0; then
-+  echo "$me: too many arguments$help" >&2
-+  exit 1
-+fi
-+
-+trap 'exit 1' 1 2 15
-+
-+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-+# compiler to aid in system detection is discouraged as it requires
-+# temporary files to be created and, as you can see below, it is a
-+# headache to deal with in a portable fashion.
-+
-+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-+# use `HOST_CC' if defined, but it is deprecated.
-+
-+# Portable tmp directory creation inspired by the Autoconf team.
-+
-+set_cc_for_build='
-+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-+: ${TMPDIR=/tmp} ;
-+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
-+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
-+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
-+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-+dummy=$tmp/dummy ;
-+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-+case $CC_FOR_BUILD,$HOST_CC,$CC in
-+ ,,)    echo "int x;" > $dummy.c ;
-+	for c in cc gcc c89 c99 ; do
-+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-+	     CC_FOR_BUILD="$c"; break ;
-+	  fi ;
-+	done ;
-+	if test x"$CC_FOR_BUILD" = x ; then
-+	  CC_FOR_BUILD=no_compiler_found ;
-+	fi
-+	;;
-+ ,,*)   CC_FOR_BUILD=$CC ;;
-+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-+esac ; set_cc_for_build= ;'
-+
-+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-+# (ghazi at noc.rutgers.edu 1994-08-24)
-+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-+	PATH=$PATH:/.attbin ; export PATH
-+fi
-+
-+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-+
-+# Note: order is significant - the case branches are not exclusive.
-+
-+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-+    *:NetBSD:*:*)
-+	# NetBSD (nbsd) targets should (where applicable) match one or
-+	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
-+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-+	# switched to ELF, *-*-netbsd* would select the old
-+	# object file format.  This provides both forward
-+	# compatibility and a consistent mechanism for selecting the
-+	# object file format.
-+	#
-+	# Note: NetBSD doesn't particularly care about the vendor
-+	# portion of the name.  We always set it to "unknown".
-+	sysctl="sysctl -n hw.machine_arch"
-+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-+	case "${UNAME_MACHINE_ARCH}" in
-+	    armeb) machine=armeb-unknown ;;
-+	    arm*) machine=arm-unknown ;;
-+	    sh3el) machine=shl-unknown ;;
-+	    sh3eb) machine=sh-unknown ;;
-+	    sh5el) machine=sh5le-unknown ;;
-+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-+	esac
-+	# The Operating System including object format, if it has switched
-+	# to ELF recently, or will in the future.
-+	case "${UNAME_MACHINE_ARCH}" in
-+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-+		eval $set_cc_for_build
-+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-+			| grep -q __ELF__
-+		then
-+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-+		    # Return netbsd for either.  FIX?
-+		    os=netbsd
-+		else
-+		    os=netbsdelf
-+		fi
-+		;;
-+	    *)
-+		os=netbsd
-+		;;
-+	esac
-+	# The OS release
-+	# Debian GNU/NetBSD machines have a different userland, and
-+	# thus, need a distinct triplet. However, they do not need
-+	# kernel version information, so it can be replaced with a
-+	# suitable tag, in the style of linux-gnu.
-+	case "${UNAME_VERSION}" in
-+	    Debian*)
-+		release='-gnu'
-+		;;
-+	    *)
-+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-+		;;
-+	esac
-+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-+	# contains redundant information, the shorter form:
-+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-+	echo "${machine}-${os}${release}"
-+	exit ;;
-+    *:OpenBSD:*:*)
-+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-+	exit ;;
-+    *:ekkoBSD:*:*)
-+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-+	exit ;;
-+    *:SolidBSD:*:*)
-+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
-+	exit ;;
-+    macppc:MirBSD:*:*)
-+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
-+	exit ;;
-+    *:MirBSD:*:*)
-+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-+	exit ;;
-+    alpha:OSF1:*:*)
-+	case $UNAME_RELEASE in
-+	*4.0)
-+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-+		;;
-+	*5.*)
-+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-+		;;
-+	esac
-+	# According to Compaq, /usr/sbin/psrinfo has been available on
-+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
-+	# covers most systems running today.  This code pipes the CPU
-+	# types through head -n 1, so we only detect the type of CPU 0.
-+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-+	case "$ALPHA_CPU_TYPE" in
-+	    "EV4 (21064)")
-+		UNAME_MACHINE="alpha" ;;
-+	    "EV4.5 (21064)")
-+		UNAME_MACHINE="alpha" ;;
-+	    "LCA4 (21066/21068)")
-+		UNAME_MACHINE="alpha" ;;
-+	    "EV5 (21164)")
-+		UNAME_MACHINE="alphaev5" ;;
-+	    "EV5.6 (21164A)")
-+		UNAME_MACHINE="alphaev56" ;;
-+	    "EV5.6 (21164PC)")
-+		UNAME_MACHINE="alphapca56" ;;
-+	    "EV5.7 (21164PC)")
-+		UNAME_MACHINE="alphapca57" ;;
-+	    "EV6 (21264)")
-+		UNAME_MACHINE="alphaev6" ;;
-+	    "EV6.7 (21264A)")
-+		UNAME_MACHINE="alphaev67" ;;
-+	    "EV6.8CB (21264C)")
-+		UNAME_MACHINE="alphaev68" ;;
-+	    "EV6.8AL (21264B)")
-+		UNAME_MACHINE="alphaev68" ;;
-+	    "EV6.8CX (21264D)")
-+		UNAME_MACHINE="alphaev68" ;;
-+	    "EV6.9A (21264/EV69A)")
-+		UNAME_MACHINE="alphaev69" ;;
-+	    "EV7 (21364)")
-+		UNAME_MACHINE="alphaev7" ;;
-+	    "EV7.9 (21364A)")
-+		UNAME_MACHINE="alphaev79" ;;
-+	esac
-+	# A Pn.n version is a patched version.
-+	# A Vn.n version is a released version.
-+	# A Tn.n version is a released field test version.
-+	# A Xn.n version is an unreleased experimental baselevel.
-+	# 1.2 uses "1.2" for uname -r.
-+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-+	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-+	exitcode=$?
-+	trap '' 0
-+	exit $exitcode ;;
-+    Alpha\ *:Windows_NT*:*)
-+	# How do we know it's Interix rather than the generic POSIX subsystem?
-+	# Should we change UNAME_MACHINE based on the output of uname instead
-+	# of the specific Alpha model?
-+	echo alpha-pc-interix
-+	exit ;;
-+    21064:Windows_NT:50:3)
-+	echo alpha-dec-winnt3.5
-+	exit ;;
-+    Amiga*:UNIX_System_V:4.0:*)
-+	echo m68k-unknown-sysv4
-+	exit ;;
-+    *:[Aa]miga[Oo][Ss]:*:*)
-+	echo ${UNAME_MACHINE}-unknown-amigaos
-+	exit ;;
-+    *:[Mm]orph[Oo][Ss]:*:*)
-+	echo ${UNAME_MACHINE}-unknown-morphos
-+	exit ;;
-+    *:OS/390:*:*)
-+	echo i370-ibm-openedition
-+	exit ;;
-+    *:z/VM:*:*)
-+	echo s390-ibm-zvmoe
-+	exit ;;
-+    *:OS400:*:*)
-+	echo powerpc-ibm-os400
-+	exit ;;
-+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-+	echo arm-acorn-riscix${UNAME_RELEASE}
-+	exit ;;
-+    arm:riscos:*:*|arm:RISCOS:*:*)
-+	echo arm-unknown-riscos
-+	exit ;;
-+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-+	echo hppa1.1-hitachi-hiuxmpp
-+	exit ;;
-+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-+	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-+		echo pyramid-pyramid-sysv3
-+	else
-+		echo pyramid-pyramid-bsd
-+	fi
-+	exit ;;
-+    NILE*:*:*:dcosx)
-+	echo pyramid-pyramid-svr4
-+	exit ;;
-+    DRS?6000:unix:4.0:6*)
-+	echo sparc-icl-nx6
-+	exit ;;
-+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
-+	case `/usr/bin/uname -p` in
-+	    sparc) echo sparc-icl-nx7; exit ;;
-+	esac ;;
-+    s390x:SunOS:*:*)
-+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+	exit ;;
-+    sun4H:SunOS:5.*:*)
-+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+	exit ;;
-+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+	exit ;;
-+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-+	echo i386-pc-auroraux${UNAME_RELEASE}
-+	exit ;;
-+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-+	eval $set_cc_for_build
-+	SUN_ARCH="i386"
-+	# If there is a compiler, see if it is configured for 64-bit objects.
-+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-+	# This test works for both compilers.
-+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+		grep IS_64BIT_ARCH >/dev/null
-+	    then
-+		SUN_ARCH="x86_64"
-+	    fi
-+	fi
-+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+	exit ;;
-+    sun4*:SunOS:6*:*)
-+	# According to config.sub, this is the proper way to canonicalize
-+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-+	# it's likely to be more like Solaris than SunOS4.
-+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+	exit ;;
-+    sun4*:SunOS:*:*)
-+	case "`/usr/bin/arch -k`" in
-+	    Series*|S4*)
-+		UNAME_RELEASE=`uname -v`
-+		;;
-+	esac
-+	# Japanese Language versions have a version number like `4.1.3-JL'.
-+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-+	exit ;;
-+    sun3*:SunOS:*:*)
-+	echo m68k-sun-sunos${UNAME_RELEASE}
-+	exit ;;
-+    sun*:*:4.2BSD:*)
-+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-+	case "`/bin/arch`" in
-+	    sun3)
-+		echo m68k-sun-sunos${UNAME_RELEASE}
-+		;;
-+	    sun4)
-+		echo sparc-sun-sunos${UNAME_RELEASE}
-+		;;
-+	esac
-+	exit ;;
-+    aushp:SunOS:*:*)
-+	echo sparc-auspex-sunos${UNAME_RELEASE}
-+	exit ;;
-+    # 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 ;;
-+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-+	echo m68k-atari-mint${UNAME_RELEASE}
-+	exit ;;
-+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-+	echo m68k-atari-mint${UNAME_RELEASE}
-+	exit ;;
-+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-+	echo m68k-milan-mint${UNAME_RELEASE}
-+	exit ;;
-+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-+	echo m68k-hades-mint${UNAME_RELEASE}
-+	exit ;;
-+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-+	echo m68k-unknown-mint${UNAME_RELEASE}
-+	exit ;;
-+    m68k:machten:*:*)
-+	echo m68k-apple-machten${UNAME_RELEASE}
-+	exit ;;
-+    powerpc:machten:*:*)
-+	echo powerpc-apple-machten${UNAME_RELEASE}
-+	exit ;;
-+    RISC*:Mach:*:*)
-+	echo mips-dec-mach_bsd4.3
-+	exit ;;
-+    RISC*:ULTRIX:*:*)
-+	echo mips-dec-ultrix${UNAME_RELEASE}
-+	exit ;;
-+    VAX*:ULTRIX*:*:*)
-+	echo vax-dec-ultrix${UNAME_RELEASE}
-+	exit ;;
-+    2020:CLIX:*:* | 2430:CLIX:*:*)
-+	echo clipper-intergraph-clix${UNAME_RELEASE}
-+	exit ;;
-+    mips:*:*:UMIPS | mips:*:*:RISCos)
-+	eval $set_cc_for_build
-+	sed 's/^	//' << EOF >$dummy.c
-+#ifdef __cplusplus
-+#include <stdio.h>  /* for printf() prototype */
-+	int main (int argc, char *argv[]) {
-+#else
-+	int main (argc, argv) int argc; char *argv[]; {
-+#endif
-+	#if defined (host_mips) && defined (MIPSEB)
-+	#if defined (SYSTYPE_SYSV)
-+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-+	#endif
-+	#if defined (SYSTYPE_SVR4)
-+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-+	#endif
-+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-+	#endif
-+	#endif
-+	  exit (-1);
-+	}
-+EOF
-+	$CC_FOR_BUILD -o $dummy $dummy.c &&
-+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-+	  SYSTEM_NAME=`$dummy $dummyarg` &&
-+	    { echo "$SYSTEM_NAME"; exit; }
-+	echo mips-mips-riscos${UNAME_RELEASE}
-+	exit ;;
-+    Motorola:PowerMAX_OS:*:*)
-+	echo powerpc-motorola-powermax
-+	exit ;;
-+    Motorola:*:4.3:PL8-*)
-+	echo powerpc-harris-powermax
-+	exit ;;
-+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-+	echo powerpc-harris-powermax
-+	exit ;;
-+    Night_Hawk:Power_UNIX:*:*)
-+	echo powerpc-harris-powerunix
-+	exit ;;
-+    m88k:CX/UX:7*:*)
-+	echo m88k-harris-cxux7
-+	exit ;;
-+    m88k:*:4*:R4*)
-+	echo m88k-motorola-sysv4
-+	exit ;;
-+    m88k:*:3*:R3*)
-+	echo m88k-motorola-sysv3
-+	exit ;;
-+    AViiON:dgux:*:*)
-+	# DG/UX returns AViiON for all architectures
-+	UNAME_PROCESSOR=`/usr/bin/uname -p`
-+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-+	then
-+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
-+	    then
-+		echo m88k-dg-dgux${UNAME_RELEASE}
-+	    else
-+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
-+	    fi
-+	else
-+	    echo i586-dg-dgux${UNAME_RELEASE}
-+	fi
-+	exit ;;
-+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-+	echo m88k-dolphin-sysv3
-+	exit ;;
-+    M88*:*:R3*:*)
-+	# Delta 88k system running SVR3
-+	echo m88k-motorola-sysv3
-+	exit ;;
-+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-+	echo m88k-tektronix-sysv3
-+	exit ;;
-+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-+	echo m68k-tektronix-bsd
-+	exit ;;
-+    *:IRIX*:*:*)
-+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-+	exit ;;
-+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
-+    i*86:AIX:*:*)
-+	echo i386-ibm-aix
-+	exit ;;
-+    ia64:AIX:*:*)
-+	if [ -x /usr/bin/oslevel ] ; then
-+		IBM_REV=`/usr/bin/oslevel`
-+	else
-+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-+	fi
-+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-+	exit ;;
-+    *:AIX:2:3)
-+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-+		eval $set_cc_for_build
-+		sed 's/^		//' << EOF >$dummy.c
-+		#include <sys/systemcfg.h>
-+
-+		main()
-+			{
-+			if (!__power_pc())
-+				exit(1);
-+			puts("powerpc-ibm-aix3.2.5");
-+			exit(0);
-+			}
-+EOF
-+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
-+		then
-+			echo "$SYSTEM_NAME"
-+		else
-+			echo rs6000-ibm-aix3.2.5
-+		fi
-+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-+		echo rs6000-ibm-aix3.2.4
-+	else
-+		echo rs6000-ibm-aix3.2
-+	fi
-+	exit ;;
-+    *:AIX:*:[4567])
-+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-+		IBM_ARCH=rs6000
-+	else
-+		IBM_ARCH=powerpc
-+	fi
-+	if [ -x /usr/bin/oslevel ] ; then
-+		IBM_REV=`/usr/bin/oslevel`
-+	else
-+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-+	fi
-+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-+	exit ;;
-+    *:AIX:*:*)
-+	echo rs6000-ibm-aix
-+	exit ;;
-+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-+	echo romp-ibm-bsd4.4
-+	exit ;;
-+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-+	exit ;;                             # report: romp-ibm BSD 4.3
-+    *:BOSX:*:*)
-+	echo rs6000-bull-bosx
-+	exit ;;
-+    DPX/2?00:B.O.S.:*:*)
-+	echo m68k-bull-sysv3
-+	exit ;;
-+    9000/[34]??:4.3bsd:1.*:*)
-+	echo m68k-hp-bsd
-+	exit ;;
-+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-+	echo m68k-hp-bsd4.4
-+	exit ;;
-+    9000/[34678]??:HP-UX:*:*)
-+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-+	case "${UNAME_MACHINE}" in
-+	    9000/31? )            HP_ARCH=m68000 ;;
-+	    9000/[34]?? )         HP_ARCH=m68k ;;
-+	    9000/[678][0-9][0-9])
-+		if [ -x /usr/bin/getconf ]; then
-+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-+		    case "${sc_cpu_version}" in
-+		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-+		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-+		      532)                      # CPU_PA_RISC2_0
-+			case "${sc_kernel_bits}" in
-+			  32) HP_ARCH="hppa2.0n" ;;
-+			  64) HP_ARCH="hppa2.0w" ;;
-+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-+			esac ;;
-+		    esac
-+		fi
-+		if [ "${HP_ARCH}" = "" ]; then
-+		    eval $set_cc_for_build
-+		    sed 's/^		//' << EOF >$dummy.c
-+
-+		#define _HPUX_SOURCE
-+		#include <stdlib.h>
-+		#include <unistd.h>
-+
-+		int main ()
-+		{
-+		#if defined(_SC_KERNEL_BITS)
-+		    long bits = sysconf(_SC_KERNEL_BITS);
-+		#endif
-+		    long cpu  = sysconf (_SC_CPU_VERSION);
-+
-+		    switch (cpu)
-+			{
-+			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-+			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-+			case CPU_PA_RISC2_0:
-+		#if defined(_SC_KERNEL_BITS)
-+			    switch (bits)
-+				{
-+				case 64: puts ("hppa2.0w"); break;
-+				case 32: puts ("hppa2.0n"); break;
-+				default: puts ("hppa2.0"); break;
-+				} break;
-+		#else  /* !defined(_SC_KERNEL_BITS) */
-+			    puts ("hppa2.0"); break;
-+		#endif
-+			default: puts ("hppa1.0"); break;
-+			}
-+		    exit (0);
-+		}
-+EOF
-+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-+		    test -z "$HP_ARCH" && HP_ARCH=hppa
-+		fi ;;
-+	esac
-+	if [ ${HP_ARCH} = "hppa2.0w" ]
-+	then
-+	    eval $set_cc_for_build
-+
-+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
-+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
-+	    # generating 64-bit code.  GNU and HP use different nomenclature:
-+	    #
-+	    # $ CC_FOR_BUILD=cc ./config.guess
-+	    # => hppa2.0w-hp-hpux11.23
-+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
-+	    # => hppa64-hp-hpux11.23
-+
-+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-+		grep -q __LP64__
-+	    then
-+		HP_ARCH="hppa2.0w"
-+	    else
-+		HP_ARCH="hppa64"
-+	    fi
-+	fi
-+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-+	exit ;;
-+    ia64:HP-UX:*:*)
-+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-+	echo ia64-hp-hpux${HPUX_REV}
-+	exit ;;
-+    3050*:HI-UX:*:*)
-+	eval $set_cc_for_build
-+	sed 's/^	//' << EOF >$dummy.c
-+	#include <unistd.h>
-+	int
-+	main ()
-+	{
-+	  long cpu = sysconf (_SC_CPU_VERSION);
-+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-+	     results, however.  */
-+	  if (CPU_IS_PA_RISC (cpu))
-+	    {
-+	      switch (cpu)
-+		{
-+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
-+		}
-+	    }
-+	  else if (CPU_IS_HP_MC68K (cpu))
-+	    puts ("m68k-hitachi-hiuxwe2");
-+	  else puts ("unknown-hitachi-hiuxwe2");
-+	  exit (0);
-+	}
-+EOF
-+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
-+		{ echo "$SYSTEM_NAME"; exit; }
-+	echo unknown-hitachi-hiuxwe2
-+	exit ;;
-+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-+	echo hppa1.1-hp-bsd
-+	exit ;;
-+    9000/8??:4.3bsd:*:*)
-+	echo hppa1.0-hp-bsd
-+	exit ;;
-+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-+	echo hppa1.0-hp-mpeix
-+	exit ;;
-+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-+	echo hppa1.1-hp-osf
-+	exit ;;
-+    hp8??:OSF1:*:*)
-+	echo hppa1.0-hp-osf
-+	exit ;;
-+    i*86:OSF1:*:*)
-+	if [ -x /usr/sbin/sysversion ] ; then
-+	    echo ${UNAME_MACHINE}-unknown-osf1mk
-+	else
-+	    echo ${UNAME_MACHINE}-unknown-osf1
-+	fi
-+	exit ;;
-+    parisc*:Lites*:*:*)
-+	echo hppa1.1-hp-lites
-+	exit ;;
-+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-+	echo c1-convex-bsd
-+	exit ;;
-+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-+	if getsysinfo -f scalar_acc
-+	then echo c32-convex-bsd
-+	else echo c2-convex-bsd
-+	fi
-+	exit ;;
-+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-+	echo c34-convex-bsd
-+	exit ;;
-+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-+	echo c38-convex-bsd
-+	exit ;;
-+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-+	echo c4-convex-bsd
-+	exit ;;
-+    CRAY*Y-MP:*:*:*)
-+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+	exit ;;
-+    CRAY*[A-Z]90:*:*:*)
-+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-+	      -e 's/\.[^.]*$/.X/'
-+	exit ;;
-+    CRAY*TS:*:*:*)
-+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+	exit ;;
-+    CRAY*T3E:*:*:*)
-+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+	exit ;;
-+    CRAY*SV1:*:*:*)
-+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+	exit ;;
-+    *:UNICOS/mp:*:*)
-+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+	exit ;;
-+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-+	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-+	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-+	exit ;;
-+    5000:UNIX_System_V:4.*:*)
-+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-+	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-+	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-+	exit ;;
-+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-+	exit ;;
-+    sparc*:BSD/OS:*:*)
-+	echo sparc-unknown-bsdi${UNAME_RELEASE}
-+	exit ;;
-+    *:BSD/OS:*:*)
-+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-+	exit ;;
-+    *:FreeBSD:*:*)
-+	UNAME_PROCESSOR=`/usr/bin/uname -p`
-+	case ${UNAME_PROCESSOR} in
-+	    amd64)
-+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+	    *)
-+		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+	esac
-+	exit ;;
-+    i*:CYGWIN*:*)
-+	echo ${UNAME_MACHINE}-pc-cygwin
-+	exit ;;
-+    *:MINGW*:*)
-+	echo ${UNAME_MACHINE}-pc-mingw32
-+	exit ;;
-+    i*:MSYS*:*)
-+	echo ${UNAME_MACHINE}-pc-msys
-+	exit ;;
-+    i*:windows32*:*)
-+	# uname -m includes "-pc" on this system.
-+	echo ${UNAME_MACHINE}-mingw32
-+	exit ;;
-+    i*:PW*:*)
-+	echo ${UNAME_MACHINE}-pc-pw32
-+	exit ;;
-+    *:Interix*:*)
-+	case ${UNAME_MACHINE} in
-+	    x86)
-+		echo i586-pc-interix${UNAME_RELEASE}
-+		exit ;;
-+	    authenticamd | genuineintel | EM64T)
-+		echo x86_64-unknown-interix${UNAME_RELEASE}
-+		exit ;;
-+	    IA64)
-+		echo ia64-unknown-interix${UNAME_RELEASE}
-+		exit ;;
-+	esac ;;
-+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-+	echo i${UNAME_MACHINE}-pc-mks
-+	exit ;;
-+    8664:Windows_NT:*)
-+	echo x86_64-pc-mks
-+	exit ;;
-+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-+	# How do we know it's Interix rather than the generic POSIX subsystem?
-+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-+	# UNAME_MACHINE based on the output of uname instead of i386?
-+	echo i586-pc-interix
-+	exit ;;
-+    i*:UWIN*:*)
-+	echo ${UNAME_MACHINE}-pc-uwin
-+	exit ;;
-+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-+	echo x86_64-unknown-cygwin
-+	exit ;;
-+    p*:CYGWIN*:*)
-+	echo powerpcle-unknown-cygwin
-+	exit ;;
-+    prep*:SunOS:5.*:*)
-+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+	exit ;;
-+    *:GNU:*:*)
-+	# the GNU system
-+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-+	exit ;;
-+    *:GNU/*:*:*)
-+	# other systems with GNU libc and userland
-+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-+	exit ;;
-+    i*86:Minix:*:*)
-+	echo ${UNAME_MACHINE}-pc-minix
-+	exit ;;
-+    aarch64:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    aarch64_be:Linux:*:*)
-+	UNAME_MACHINE=aarch64_be
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    alpha:Linux:*:*)
-+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-+	  EV5)   UNAME_MACHINE=alphaev5 ;;
-+	  EV56)  UNAME_MACHINE=alphaev56 ;;
-+	  PCA56) UNAME_MACHINE=alphapca56 ;;
-+	  PCA57) UNAME_MACHINE=alphapca56 ;;
-+	  EV6)   UNAME_MACHINE=alphaev6 ;;
-+	  EV67)  UNAME_MACHINE=alphaev67 ;;
-+	  EV68*) UNAME_MACHINE=alphaev68 ;;
-+	esac
-+	objdump --private-headers /bin/sh | grep -q ld.so.1
-+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-+	exit ;;
-+    arm*:Linux:*:*)
-+	eval $set_cc_for_build
-+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-+	    | grep -q __ARM_EABI__
-+	then
-+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	else
-+	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
-+		| grep -q __ARM_PCS_VFP
-+	    then
-+		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-+	    else
-+		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
-+	    fi
-+	fi
-+	exit ;;
-+    avr32*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    cris:Linux:*:*)
-+	echo ${UNAME_MACHINE}-axis-linux-gnu
-+	exit ;;
-+    crisv32:Linux:*:*)
-+	echo ${UNAME_MACHINE}-axis-linux-gnu
-+	exit ;;
-+    frv:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    hexagon:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    i*86:Linux:*:*)
-+	LIBC=gnu
-+	eval $set_cc_for_build
-+	sed 's/^	//' << EOF >$dummy.c
-+	#ifdef __dietlibc__
-+	LIBC=dietlibc
-+	#endif
-+EOF
-+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-+	exit ;;
-+    ia64:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    m32r*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    m68*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    mips:Linux:*:* | mips64:Linux:*:*)
-+	eval $set_cc_for_build
-+	sed 's/^	//' << EOF >$dummy.c
-+	#undef CPU
-+	#undef ${UNAME_MACHINE}
-+	#undef ${UNAME_MACHINE}el
-+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-+	CPU=${UNAME_MACHINE}el
-+	#else
-+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-+	CPU=${UNAME_MACHINE}
-+	#else
-+	CPU=
-+	#endif
-+	#endif
-+EOF
-+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-+	;;
-+    or32:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    padre:Linux:*:*)
-+	echo sparc-unknown-linux-gnu
-+	exit ;;
-+    parisc64:Linux:*:* | hppa64:Linux:*:*)
-+	echo hppa64-unknown-linux-gnu
-+	exit ;;
-+    parisc:Linux:*:* | hppa:Linux:*:*)
-+	# Look for CPU level
-+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-+	  *)    echo hppa-unknown-linux-gnu ;;
-+	esac
-+	exit ;;
-+    ppc64:Linux:*:*)
-+	echo powerpc64-unknown-linux-gnu
-+	exit ;;
-+    ppc:Linux:*:*)
-+	echo powerpc-unknown-linux-gnu
-+	exit ;;
-+    s390:Linux:*:* | s390x:Linux:*:*)
-+	echo ${UNAME_MACHINE}-ibm-linux
-+	exit ;;
-+    sh64*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    sh*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    sparc:Linux:*:* | sparc64:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    tile*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    vax:Linux:*:*)
-+	echo ${UNAME_MACHINE}-dec-linux-gnu
-+	exit ;;
-+    x86_64:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    xtensa*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    i*86:DYNIX/ptx:4*:*)
-+	# 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.
-+	echo i386-sequent-sysv4
-+	exit ;;
-+    i*86:UNIX_SV:4.2MP:2.*)
-+	# Unixware is an offshoot of SVR4, but it has its own version
-+	# number series starting with 2...
-+	# I am not positive that other SVR4 systems won't match this,
-+	# I just have to hope.  -- rms.
-+	# Use sysv4.2uw... so that sysv4* matches it.
-+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-+	exit ;;
-+    i*86:OS/2:*:*)
-+	# If we were able to find `uname', then EMX Unix compatibility
-+	# is probably installed.
-+	echo ${UNAME_MACHINE}-pc-os2-emx
-+	exit ;;
-+    i*86:XTS-300:*:STOP)
-+	echo ${UNAME_MACHINE}-unknown-stop
-+	exit ;;
-+    i*86:atheos:*:*)
-+	echo ${UNAME_MACHINE}-unknown-atheos
-+	exit ;;
-+    i*86:syllable:*:*)
-+	echo ${UNAME_MACHINE}-pc-syllable
-+	exit ;;
-+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-+	echo i386-unknown-lynxos${UNAME_RELEASE}
-+	exit ;;
-+    i*86:*DOS:*:*)
-+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-+	exit ;;
-+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-+	else
-+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-+	fi
-+	exit ;;
-+    i*86:*:5:[678]*)
-+	# UnixWare 7.x, OpenUNIX and OpenServer 6.
-+	case `/bin/uname -X | grep "^Machine"` in
-+	    *486*)	     UNAME_MACHINE=i486 ;;
-+	    *Pentium)	     UNAME_MACHINE=i586 ;;
-+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-+	esac
-+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-+	exit ;;
-+    i*86:*:3.2:*)
-+	if test -f /usr/options/cb.name; then
-+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-+			&& UNAME_MACHINE=i586
-+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-+			&& UNAME_MACHINE=i686
-+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-+			&& UNAME_MACHINE=i686
-+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-+	else
-+		echo ${UNAME_MACHINE}-pc-sysv32
-+	fi
-+	exit ;;
-+    pc:*:*:*)
-+	# Left here for compatibility:
-+	# uname -m prints for DJGPP always 'pc', but it prints nothing about
-+	# the processor, so we play safe by assuming i586.
-+	# Note: whatever this is, it MUST be the same as what config.sub
-+	# prints for the "djgpp" host, or else GDB configury will decide that
-+	# this is a cross-build.
-+	echo i586-pc-msdosdjgpp
-+	exit ;;
-+    Intel:Mach:3*:*)
-+	echo i386-pc-mach3
-+	exit ;;
-+    paragon:*:*:*)
-+	echo i860-intel-osf1
-+	exit ;;
-+    i860:*:4.*:*) # i860-SVR4
-+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-+	else # Add other i860-SVR4 vendors below as they are discovered.
-+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-+	fi
-+	exit ;;
-+    mini*:CTIX:SYS*5:*)
-+	# "miniframe"
-+	echo m68010-convergent-sysv
-+	exit ;;
-+    mc68k:UNIX:SYSTEM5:3.51m)
-+	echo m68k-convergent-sysv
-+	exit ;;
-+    M680?0:D-NIX:5.3:*)
-+	echo m68k-diab-dnix
-+	exit ;;
-+    M68*:*:R3V[5678]*:*)
-+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
-+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
-+	OS_REL=''
-+	test -r /etc/.relid \
-+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+	  && { echo i486-ncr-sysv4; exit; } ;;
-+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-+	OS_REL='.3'
-+	test -r /etc/.relid \
-+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
-+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-+	echo m68k-unknown-lynxos${UNAME_RELEASE}
-+	exit ;;
-+    mc68030:UNIX_System_V:4.*:*)
-+	echo m68k-atari-sysv4
-+	exit ;;
-+    TSUNAMI:LynxOS:2.*:*)
-+	echo sparc-unknown-lynxos${UNAME_RELEASE}
-+	exit ;;
-+    rs6000:LynxOS:2.*:*)
-+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-+	exit ;;
-+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-+	exit ;;
-+    SM[BE]S:UNIX_SV:*:*)
-+	echo mips-dde-sysv${UNAME_RELEASE}
-+	exit ;;
-+    RM*:ReliantUNIX-*:*:*)
-+	echo mips-sni-sysv4
-+	exit ;;
-+    RM*:SINIX-*:*:*)
-+	echo mips-sni-sysv4
-+	exit ;;
-+    *:SINIX-*:*:*)
-+	if uname -p 2>/dev/null >/dev/null ; then
-+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-+		echo ${UNAME_MACHINE}-sni-sysv4
-+	else
-+		echo ns32k-sni-sysv
-+	fi
-+	exit ;;
-+    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-+			# says <Richard.M.Bartel at ccMail.Census.GOV>
-+	echo i586-unisys-sysv4
-+	exit ;;
-+    *:UNIX_System_V:4*:FTX*)
-+	# From Gerald Hewes <hewes at openmarket.com>.
-+	# How about differentiating between stratus architectures? -djm
-+	echo hppa1.1-stratus-sysv4
-+	exit ;;
-+    *:*:*:FTX*)
-+	# From seanf at swdc.stratus.com.
-+	echo i860-stratus-sysv4
-+	exit ;;
-+    i*86:VOS:*:*)
-+	# From Paul.Green at stratus.com.
-+	echo ${UNAME_MACHINE}-stratus-vos
-+	exit ;;
-+    *:VOS:*:*)
-+	# From Paul.Green at stratus.com.
-+	echo hppa1.1-stratus-vos
-+	exit ;;
-+    mc68*:A/UX:*:*)
-+	echo m68k-apple-aux${UNAME_RELEASE}
-+	exit ;;
-+    news*:NEWS-OS:6*:*)
-+	echo mips-sony-newsos6
-+	exit ;;
-+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-+	if [ -d /usr/nec ]; then
-+		echo mips-nec-sysv${UNAME_RELEASE}
-+	else
-+		echo mips-unknown-sysv${UNAME_RELEASE}
-+	fi
-+	exit ;;
-+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-+	echo powerpc-be-beos
-+	exit ;;
-+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-+	echo powerpc-apple-beos
-+	exit ;;
-+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-+	echo i586-pc-beos
-+	exit ;;
-+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
-+	echo i586-pc-haiku
-+	exit ;;
-+    SX-4:SUPER-UX:*:*)
-+	echo sx4-nec-superux${UNAME_RELEASE}
-+	exit ;;
-+    SX-5:SUPER-UX:*:*)
-+	echo sx5-nec-superux${UNAME_RELEASE}
-+	exit ;;
-+    SX-6:SUPER-UX:*:*)
-+	echo sx6-nec-superux${UNAME_RELEASE}
-+	exit ;;
-+    SX-7:SUPER-UX:*:*)
-+	echo sx7-nec-superux${UNAME_RELEASE}
-+	exit ;;
-+    SX-8:SUPER-UX:*:*)
-+	echo sx8-nec-superux${UNAME_RELEASE}
-+	exit ;;
-+    SX-8R:SUPER-UX:*:*)
-+	echo sx8r-nec-superux${UNAME_RELEASE}
-+	exit ;;
-+    Power*:Rhapsody:*:*)
-+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-+	exit ;;
-+    *:Rhapsody:*:*)
-+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-+	exit ;;
-+    *:Darwin:*:*)
-+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-+	case $UNAME_PROCESSOR in
-+	    i386)
-+		eval $set_cc_for_build
-+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+		      grep IS_64BIT_ARCH >/dev/null
-+		  then
-+		      UNAME_PROCESSOR="x86_64"
-+		  fi
-+		fi ;;
-+	    unknown) UNAME_PROCESSOR=powerpc ;;
-+	esac
-+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-+	exit ;;
-+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-+	UNAME_PROCESSOR=`uname -p`
-+	if test "$UNAME_PROCESSOR" = "x86"; then
-+		UNAME_PROCESSOR=i386
-+		UNAME_MACHINE=pc
-+	fi
-+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-+	exit ;;
-+    *:QNX:*:4*)
-+	echo i386-pc-qnx
-+	exit ;;
-+    NEO-?:NONSTOP_KERNEL:*:*)
-+	echo neo-tandem-nsk${UNAME_RELEASE}
-+	exit ;;
-+    NSE-?:NONSTOP_KERNEL:*:*)
-+	echo nse-tandem-nsk${UNAME_RELEASE}
-+	exit ;;
-+    NSR-?:NONSTOP_KERNEL:*:*)
-+	echo nsr-tandem-nsk${UNAME_RELEASE}
-+	exit ;;
-+    *:NonStop-UX:*:*)
-+	echo mips-compaq-nonstopux
-+	exit ;;
-+    BS2000:POSIX*:*:*)
-+	echo bs2000-siemens-sysv
-+	exit ;;
-+    DS/*:UNIX_System_V:*:*)
-+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-+	exit ;;
-+    *:Plan9:*:*)
-+	# "uname -m" is not consistent, so use $cputype instead. 386
-+	# is converted to i386 for consistency with other x86
-+	# operating systems.
-+	if test "$cputype" = "386"; then
-+	    UNAME_MACHINE=i386
-+	else
-+	    UNAME_MACHINE="$cputype"
-+	fi
-+	echo ${UNAME_MACHINE}-unknown-plan9
-+	exit ;;
-+    *:TOPS-10:*:*)
-+	echo pdp10-unknown-tops10
-+	exit ;;
-+    *:TENEX:*:*)
-+	echo pdp10-unknown-tenex
-+	exit ;;
-+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-+	echo pdp10-dec-tops20
-+	exit ;;
-+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-+	echo pdp10-xkl-tops20
-+	exit ;;
-+    *:TOPS-20:*:*)
-+	echo pdp10-unknown-tops20
-+	exit ;;
-+    *:ITS:*:*)
-+	echo pdp10-unknown-its
-+	exit ;;
-+    SEI:*:*:SEIUX)
-+	echo mips-sei-seiux${UNAME_RELEASE}
-+	exit ;;
-+    *:DragonFly:*:*)
-+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-+	exit ;;
-+    *:*VMS:*:*)
-+	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-+	case "${UNAME_MACHINE}" in
-+	    A*) echo alpha-dec-vms ; exit ;;
-+	    I*) echo ia64-dec-vms ; exit ;;
-+	    V*) echo vax-dec-vms ; exit ;;
-+	esac ;;
-+    *:XENIX:*:SysV)
-+	echo i386-pc-xenix
-+	exit ;;
-+    i*86:skyos:*:*)
-+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
-+	exit ;;
-+    i*86:rdos:*:*)
-+	echo ${UNAME_MACHINE}-pc-rdos
-+	exit ;;
-+    i*86:AROS:*:*)
-+	echo ${UNAME_MACHINE}-pc-aros
-+	exit ;;
-+    x86_64:VMkernel:*:*)
-+	echo ${UNAME_MACHINE}-unknown-esx
-+	exit ;;
-+esac
-+
-+#echo '(No uname command or uname output not recognized.)' 1>&2
-+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-+
-+eval $set_cc_for_build
-+cat >$dummy.c <<EOF
-+#ifdef _SEQUENT_
-+# include <sys/types.h>
-+# include <sys/utsname.h>
-+#endif
-+main ()
-+{
-+#if defined (sony)
-+#if defined (MIPSEB)
-+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-+     I don't know....  */
-+  printf ("mips-sony-bsd\n"); exit (0);
-+#else
-+#include <sys/param.h>
-+  printf ("m68k-sony-newsos%s\n",
-+#ifdef NEWSOS4
-+	"4"
-+#else
-+	""
-+#endif
-+	); exit (0);
-+#endif
-+#endif
-+
-+#if defined (__arm) && defined (__acorn) && defined (__unix)
-+  printf ("arm-acorn-riscix\n"); exit (0);
-+#endif
-+
-+#if defined (hp300) && !defined (hpux)
-+  printf ("m68k-hp-bsd\n"); exit (0);
-+#endif
-+
-+#if defined (NeXT)
-+#if !defined (__ARCHITECTURE__)
-+#define __ARCHITECTURE__ "m68k"
-+#endif
-+  int version;
-+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-+  if (version < 4)
-+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-+  else
-+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-+  exit (0);
-+#endif
-+
-+#if defined (MULTIMAX) || defined (n16)
-+#if defined (UMAXV)
-+  printf ("ns32k-encore-sysv\n"); exit (0);
-+#else
-+#if defined (CMU)
-+  printf ("ns32k-encore-mach\n"); exit (0);
-+#else
-+  printf ("ns32k-encore-bsd\n"); exit (0);
-+#endif
-+#endif
-+#endif
-+
-+#if defined (__386BSD__)
-+  printf ("i386-pc-bsd\n"); exit (0);
-+#endif
-+
-+#if defined (sequent)
-+#if defined (i386)
-+  printf ("i386-sequent-dynix\n"); exit (0);
-+#endif
-+#if defined (ns32000)
-+  printf ("ns32k-sequent-dynix\n"); exit (0);
-+#endif
-+#endif
-+
-+#if defined (_SEQUENT_)
-+    struct utsname un;
-+
-+    uname(&un);
-+
-+    if (strncmp(un.version, "V2", 2) == 0) {
-+	printf ("i386-sequent-ptx2\n"); exit (0);
-+    }
-+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-+	printf ("i386-sequent-ptx1\n"); exit (0);
-+    }
-+    printf ("i386-sequent-ptx\n"); exit (0);
-+
-+#endif
-+
-+#if defined (vax)
-+# if !defined (ultrix)
-+#  include <sys/param.h>
-+#  if defined (BSD)
-+#   if BSD == 43
-+      printf ("vax-dec-bsd4.3\n"); exit (0);
-+#   else
-+#    if BSD == 199006
-+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-+#    else
-+      printf ("vax-dec-bsd\n"); exit (0);
-+#    endif
-+#   endif
-+#  else
-+    printf ("vax-dec-bsd\n"); exit (0);
-+#  endif
-+# else
-+    printf ("vax-dec-ultrix\n"); exit (0);
-+# endif
-+#endif
-+
-+#if defined (alliant) && defined (i860)
-+  printf ("i860-alliant-bsd\n"); exit (0);
-+#endif
-+
-+  exit (1);
-+}
-+EOF
-+
-+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-+	{ echo "$SYSTEM_NAME"; exit; }
-+
-+# Apollos put the system type in the environment.
-+
-+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-+
-+# Convex versions that predate uname can use getsysinfo(1)
-+
-+if [ -x /usr/convex/getsysinfo ]
-+then
-+    case `getsysinfo -f cpu_type` in
-+    c1*)
-+	echo c1-convex-bsd
-+	exit ;;
-+    c2*)
-+	if getsysinfo -f scalar_acc
-+	then echo c32-convex-bsd
-+	else echo c2-convex-bsd
-+	fi
-+	exit ;;
-+    c34*)
-+	echo c34-convex-bsd
-+	exit ;;
-+    c38*)
-+	echo c38-convex-bsd
-+	exit ;;
-+    c4*)
-+	echo c4-convex-bsd
-+	exit ;;
-+    esac
-+fi
-+
-+cat >&2 <<EOF
-+$0: unable to guess system type
-+
-+This script, last modified $timestamp, has failed to recognize
-+the operating system you are using. It is advised that you
-+download the most up to date version of the config scripts from
-+
-+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-+and
-+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-+
-+If the version you run ($0) is already up to date, please
-+send the following data and any information you think might be
-+pertinent to <config-patches at gnu.org> in order to provide the needed
-+information to handle your system.
-+
-+config.guess timestamp = $timestamp
-+
-+uname -m = `(uname -m) 2>/dev/null || echo unknown`
-+uname -r = `(uname -r) 2>/dev/null || echo unknown`
-+uname -s = `(uname -s) 2>/dev/null || echo unknown`
-+uname -v = `(uname -v) 2>/dev/null || echo unknown`
-+
-+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-+
-+hostinfo               = `(hostinfo) 2>/dev/null`
-+/bin/universe          = `(/bin/universe) 2>/dev/null`
-+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-+/bin/arch              = `(/bin/arch) 2>/dev/null`
-+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-+
-+UNAME_MACHINE = ${UNAME_MACHINE}
-+UNAME_RELEASE = ${UNAME_RELEASE}
-+UNAME_SYSTEM  = ${UNAME_SYSTEM}
-+UNAME_VERSION = ${UNAME_VERSION}
-+EOF
-+
-+exit 1
-+
-+# Local variables:
-+# eval: (add-hook 'write-file-hooks 'time-stamp)
-+# time-stamp-start: "timestamp='"
-+# time-stamp-format: "%:y-%02m-%02d"
-+# time-stamp-end: "'"
-+# End:
-diff --git a/libclamav/libmspack-0.4alpha/config.h.in b/libclamav/libmspack-0.4alpha/config.h.in
-new file mode 100644
-index 000000000000..3c763df74f7a
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/config.h.in
-@@ -0,0 +1,113 @@
-+/* config.h.in.  Generated from configure.ac by autoheader.  */
-+
-+/* Turn debugging mode on? */
-+#undef DEBUG
-+
-+/* Define to 1 if you have the <ctype.h> header file. */
-+#undef HAVE_CTYPE_H
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#undef HAVE_DLFCN_H
-+
-+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-+#undef HAVE_FSEEKO
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#undef HAVE_INTTYPES_H
-+
-+/* Define to 1 if you have the <limits.h> header file. */
-+#undef HAVE_LIMITS_H
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#undef HAVE_MEMORY_H
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#undef HAVE_STDINT_H
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#undef HAVE_STDLIB_H
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#undef HAVE_STRINGS_H
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#undef HAVE_STRING_H
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#undef HAVE_SYS_STAT_H
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#undef HAVE_SYS_TYPES_H
-+
-+/* Define to 1 if you have the `tolower' function. */
-+#undef HAVE_TOLOWER
-+
-+/* Define to 1 if you have the `towlower' function. */
-+#undef HAVE_TOWLOWER
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#undef HAVE_UNISTD_H
-+
-+/* Define to 1 if you have the <wctype.h> header file. */
-+#undef HAVE_WCTYPE_H
-+
-+/* Define to the sub-directory in which libtool stores uninstalled libraries.
-+   */
-+#undef LT_OBJDIR
-+
-+/* Name of package */
-+#undef PACKAGE
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#undef PACKAGE_BUGREPORT
-+
-+/* Define to the full name of this package. */
-+#undef PACKAGE_NAME
-+
-+/* Define to the full name and version of this package. */
-+#undef PACKAGE_STRING
-+
-+/* Define to the one symbol short name of this package. */
-+#undef PACKAGE_TARNAME
-+
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
-+/* Define to the version of this package. */
-+#undef PACKAGE_VERSION
-+
-+/* The size of `off_t', as computed by sizeof. */
-+#undef SIZEOF_OFF_T
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#undef STDC_HEADERS
-+
-+/* Version number of package */
-+#undef VERSION
-+
-+/* Number of bits in a file offset, on hosts where this is settable. */
-+#undef _FILE_OFFSET_BITS
-+
-+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-+#undef _LARGEFILE_SOURCE
-+
-+/* Define for large files, on AIX-style hosts. */
-+#undef _LARGE_FILES
-+
-+/* Define to empty if `const' does not conform to ANSI C. */
-+#undef const
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+   calls it, or to nothing if 'inline' is not supported under any name.  */
-+#ifndef __cplusplus
-+#undef inline
-+#endif
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+#undef mode_t
-+
-+/* Define to `long int' if <sys/types.h> does not define. */
-+#undef off_t
-+
-+/* Define to `unsigned int' if <sys/types.h> does not define. */
-+#undef size_t
-diff --git a/libclamav/libmspack-0.4alpha/config.sub b/libclamav/libmspack-0.4alpha/config.sub
-new file mode 100755
-index 000000000000..c894da45500c
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/config.sub
-@@ -0,0 +1,1773 @@
-+#! /bin/sh
-+# Configuration validation subroutine script.
-+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-+#   2011, 2012 Free Software Foundation, Inc.
-+
-+timestamp='2012-02-10'
-+
-+# This file is (in principle) common to ALL GNU software.
-+# The presence of a machine in this file suggests that SOME GNU software
-+# can handle that machine.  It does not imply ALL GNU software can.
-+#
-+# This file is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
-+#
-+# As a special exception to the GNU General Public License, if you
-+# distribute this file as part of a program that contains a
-+# configuration script generated by Autoconf, you may include it under
-+# the same distribution terms that you use for the rest of that program.
-+
-+
-+# Please send patches to <config-patches at gnu.org>.  Submit a context
-+# diff and a properly formatted GNU ChangeLog entry.
-+#
-+# Configuration subroutine to validate and canonicalize a configuration type.
-+# Supply the specified configuration type as an argument.
-+# If it is invalid, we print an error message on stderr and exit with code 1.
-+# Otherwise, we print the canonical config type on stdout and succeed.
-+
-+# You can get the latest version of this script from:
-+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-+
-+# This file is supposed to be the same for all GNU packages
-+# and recognize all the CPU types, system types and aliases
-+# that are meaningful with *any* GNU software.
-+# Each package is responsible for reporting which valid configurations
-+# it does not support.  The user should be able to distinguish
-+# a failure to support a valid configuration from a meaningless
-+# configuration.
-+
-+# The goal of this file is to map all the various variations of a given
-+# machine specification into a single specification in the form:
-+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-+# or in some cases, the newer four-part form:
-+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-+# It is wrong to echo any other type of specification.
-+
-+me=`echo "$0" | sed -e 's,.*/,,'`
-+
-+usage="\
-+Usage: $0 [OPTION] CPU-MFR-OPSYS
-+       $0 [OPTION] ALIAS
-+
-+Canonicalize a configuration name.
-+
-+Operation modes:
-+  -h, --help         print this help, then exit
-+  -t, --time-stamp   print date of last modification, then exit
-+  -v, --version      print version number, then exit
-+
-+Report bugs and patches to <config-patches at gnu.org>."
-+
-+version="\
-+GNU config.sub ($timestamp)
-+
-+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-+Free Software Foundation, Inc.
-+
-+This is free software; see the source for copying conditions.  There is NO
-+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-+
-+help="
-+Try \`$me --help' for more information."
-+
-+# Parse command line
-+while test $# -gt 0 ; do
-+  case $1 in
-+    --time-stamp | --time* | -t )
-+       echo "$timestamp" ; exit ;;
-+    --version | -v )
-+       echo "$version" ; exit ;;
-+    --help | --h* | -h )
-+       echo "$usage"; exit ;;
-+    -- )     # Stop option processing
-+       shift; break ;;
-+    - )	# Use stdin as input.
-+       break ;;
-+    -* )
-+       echo "$me: invalid option $1$help"
-+       exit 1 ;;
-+
-+    *local*)
-+       # First pass through any local machine types.
-+       echo $1
-+       exit ;;
-+
-+    * )
-+       break ;;
-+  esac
-+done
-+
-+case $# in
-+ 0) echo "$me: missing argument$help" >&2
-+    exit 1;;
-+ 1) ;;
-+ *) echo "$me: too many arguments$help" >&2
-+    exit 1;;
-+esac
-+
-+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-+# Here we must recognize all the valid KERNEL-OS combinations.
-+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-+case $maybe_os in
-+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-+  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-+  knetbsd*-gnu* | netbsd*-gnu* | \
-+  kopensolaris*-gnu* | \
-+  storm-chaos* | os2-emx* | rtmk-nova*)
-+    os=-$maybe_os
-+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-+    ;;
-+  android-linux)
-+    os=-linux-android
-+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-+    ;;
-+  *)
-+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-+    if [ $basic_machine != $1 ]
-+    then os=`echo $1 | sed 's/.*-/-/'`
-+    else os=; fi
-+    ;;
-+esac
-+
-+### Let's recognize common machines as not being operating systems so
-+### that things like config.sub decstation-3100 work.  We also
-+### recognize some manufacturers as not being operating systems, so we
-+### can provide default operating systems below.
-+case $os in
-+	-sun*os*)
-+		# Prevent following clause from handling this invalid input.
-+		;;
-+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-+	-apple | -axis | -knuth | -cray | -microblaze)
-+		os=
-+		basic_machine=$1
-+		;;
-+	-bluegene*)
-+		os=-cnk
-+		;;
-+	-sim | -cisco | -oki | -wec | -winbond)
-+		os=
-+		basic_machine=$1
-+		;;
-+	-scout)
-+		;;
-+	-wrs)
-+		os=-vxworks
-+		basic_machine=$1
-+		;;
-+	-chorusos*)
-+		os=-chorusos
-+		basic_machine=$1
-+		;;
-+	-chorusrdb)
-+		os=-chorusrdb
-+		basic_machine=$1
-+		;;
-+	-hiux*)
-+		os=-hiuxwe2
-+		;;
-+	-sco6)
-+		os=-sco5v6
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-sco5)
-+		os=-sco3.2v5
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-sco4)
-+		os=-sco3.2v4
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-sco3.2.[4-9]*)
-+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-sco3.2v[4-9]*)
-+		# Don't forget version if it is 3.2v4 or newer.
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-sco5v6*)
-+		# Don't forget version if it is 3.2v4 or newer.
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-sco*)
-+		os=-sco3.2v2
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-udk*)
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-isc)
-+		os=-isc2.2
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-clix*)
-+		basic_machine=clipper-intergraph
-+		;;
-+	-isc*)
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
-+	-lynx*)
-+		os=-lynxos
-+		;;
-+	-ptx*)
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-+		;;
-+	-windowsnt*)
-+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-+		;;
-+	-psos*)
-+		os=-psos
-+		;;
-+	-mint | -mint[0-9]*)
-+		basic_machine=m68k-atari
-+		os=-mint
-+		;;
-+esac
-+
-+# Decode aliases for certain CPU-COMPANY combinations.
-+case $basic_machine in
-+	# Recognize the basic CPU types without company name.
-+	# Some are omitted here because they have special meanings below.
-+	1750a | 580 \
-+	| a29k \
-+	| aarch64 | aarch64_be \
-+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-+	| am33_2.0 \
-+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-+        | be32 | be64 \
-+	| bfin \
-+	| c4x | clipper \
-+	| d10v | d30v | dlx | dsp16xx \
-+	| epiphany \
-+	| fido | fr30 | frv \
-+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-+	| hexagon \
-+	| i370 | i860 | i960 | ia64 \
-+	| ip2k | iq2000 \
-+	| le32 | le64 \
-+	| lm32 \
-+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-+	| maxq | mb | microblaze | mcore | mep | metag \
-+	| mips | mipsbe | mipseb | mipsel | mipsle \
-+	| mips16 \
-+	| mips64 | mips64el \
-+	| mips64octeon | mips64octeonel \
-+	| mips64orion | mips64orionel \
-+	| mips64r5900 | mips64r5900el \
-+	| mips64vr | mips64vrel \
-+	| mips64vr4100 | mips64vr4100el \
-+	| mips64vr4300 | mips64vr4300el \
-+	| mips64vr5000 | mips64vr5000el \
-+	| mips64vr5900 | mips64vr5900el \
-+	| mipsisa32 | mipsisa32el \
-+	| mipsisa32r2 | mipsisa32r2el \
-+	| mipsisa64 | mipsisa64el \
-+	| mipsisa64r2 | mipsisa64r2el \
-+	| mipsisa64sb1 | mipsisa64sb1el \
-+	| mipsisa64sr71k | mipsisa64sr71kel \
-+	| mipstx39 | mipstx39el \
-+	| mn10200 | mn10300 \
-+	| moxie \
-+	| mt \
-+	| msp430 \
-+	| nds32 | nds32le | nds32be \
-+	| nios | nios2 \
-+	| ns16k | ns32k \
-+	| open8 \
-+	| or32 \
-+	| pdp10 | pdp11 | pj | pjl \
-+	| powerpc | powerpc64 | powerpc64le | powerpcle \
-+	| pyramid \
-+	| rl78 | rx \
-+	| score \
-+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-+	| sh64 | sh64le \
-+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-+	| spu \
-+	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-+	| ubicom32 \
-+	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-+	| we32k \
-+	| x86 | xc16x | xstormy16 | xtensa \
-+	| z8k | z80)
-+		basic_machine=$basic_machine-unknown
-+		;;
-+	c54x)
-+		basic_machine=tic54x-unknown
-+		;;
-+	c55x)
-+		basic_machine=tic55x-unknown
-+		;;
-+	c6x)
-+		basic_machine=tic6x-unknown
-+		;;
-+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
-+		basic_machine=$basic_machine-unknown
-+		os=-none
-+		;;
-+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-+		;;
-+	ms1)
-+		basic_machine=mt-unknown
-+		;;
-+
-+	strongarm | thumb | xscale)
-+		basic_machine=arm-unknown
-+		;;
-+	xgate)
-+		basic_machine=$basic_machine-unknown
-+		os=-none
-+		;;
-+	xscaleeb)
-+		basic_machine=armeb-unknown
-+		;;
-+
-+	xscaleel)
-+		basic_machine=armel-unknown
-+		;;
-+
-+	# We use `pc' rather than `unknown'
-+	# because (1) that's what they normally are, and
-+	# (2) the word "unknown" tends to confuse beginning users.
-+	i*86 | x86_64)
-+	  basic_machine=$basic_machine-pc
-+	  ;;
-+	# Object if more than one company name word.
-+	*-*-*)
-+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-+		exit 1
-+		;;
-+	# Recognize the basic CPU types with company name.
-+	580-* \
-+	| a29k-* \
-+	| aarch64-* | aarch64_be-* \
-+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-+	| avr-* | avr32-* \
-+	| be32-* | be64-* \
-+	| bfin-* | bs2000-* \
-+	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-+	| clipper-* | craynv-* | cydra-* \
-+	| d10v-* | d30v-* | dlx-* \
-+	| elxsi-* \
-+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-+	| h8300-* | h8500-* \
-+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-+	| hexagon-* \
-+	| i*86-* | i860-* | i960-* | ia64-* \
-+	| ip2k-* | iq2000-* \
-+	| le32-* | le64-* \
-+	| lm32-* \
-+	| m32c-* | m32r-* | m32rle-* \
-+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
-+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-+	| mips16-* \
-+	| mips64-* | mips64el-* \
-+	| mips64octeon-* | mips64octeonel-* \
-+	| mips64orion-* | mips64orionel-* \
-+	| mips64r5900-* | mips64r5900el-* \
-+	| mips64vr-* | mips64vrel-* \
-+	| mips64vr4100-* | mips64vr4100el-* \
-+	| mips64vr4300-* | mips64vr4300el-* \
-+	| mips64vr5000-* | mips64vr5000el-* \
-+	| mips64vr5900-* | mips64vr5900el-* \
-+	| mipsisa32-* | mipsisa32el-* \
-+	| mipsisa32r2-* | mipsisa32r2el-* \
-+	| mipsisa64-* | mipsisa64el-* \
-+	| mipsisa64r2-* | mipsisa64r2el-* \
-+	| mipsisa64sb1-* | mipsisa64sb1el-* \
-+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-+	| mipstx39-* | mipstx39el-* \
-+	| mmix-* \
-+	| mt-* \
-+	| msp430-* \
-+	| nds32-* | nds32le-* | nds32be-* \
-+	| nios-* | nios2-* \
-+	| none-* | np1-* | ns16k-* | ns32k-* \
-+	| open8-* \
-+	| orion-* \
-+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-+	| pyramid-* \
-+	| rl78-* | romp-* | rs6000-* | rx-* \
-+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-+	| sparclite-* \
-+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
-+	| tahoe-* \
-+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-+	| tile*-* \
-+	| tron-* \
-+	| ubicom32-* \
-+	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-+	| vax-* \
-+	| we32k-* \
-+	| x86-* | x86_64-* | xc16x-* | xps100-* \
-+	| xstormy16-* | xtensa*-* \
-+	| ymp-* \
-+	| z8k-* | z80-*)
-+		;;
-+	# Recognize the basic CPU types without company name, with glob match.
-+	xtensa*)
-+		basic_machine=$basic_machine-unknown
-+		;;
-+	# Recognize the various machine names and aliases which stand
-+	# for a CPU type and a company and sometimes even an OS.
-+	386bsd)
-+		basic_machine=i386-unknown
-+		os=-bsd
-+		;;
-+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-+		basic_machine=m68000-att
-+		;;
-+	3b*)
-+		basic_machine=we32k-att
-+		;;
-+	a29khif)
-+		basic_machine=a29k-amd
-+		os=-udi
-+		;;
-+	abacus)
-+		basic_machine=abacus-unknown
-+		;;
-+	adobe68k)
-+		basic_machine=m68010-adobe
-+		os=-scout
-+		;;
-+	alliant | fx80)
-+		basic_machine=fx80-alliant
-+		;;
-+	altos | altos3068)
-+		basic_machine=m68k-altos
-+		;;
-+	am29k)
-+		basic_machine=a29k-none
-+		os=-bsd
-+		;;
-+	amd64)
-+		basic_machine=x86_64-pc
-+		;;
-+	amd64-*)
-+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	amdahl)
-+		basic_machine=580-amdahl
-+		os=-sysv
-+		;;
-+	amiga | amiga-*)
-+		basic_machine=m68k-unknown
-+		;;
-+	amigaos | amigados)
-+		basic_machine=m68k-unknown
-+		os=-amigaos
-+		;;
-+	amigaunix | amix)
-+		basic_machine=m68k-unknown
-+		os=-sysv4
-+		;;
-+	apollo68)
-+		basic_machine=m68k-apollo
-+		os=-sysv
-+		;;
-+	apollo68bsd)
-+		basic_machine=m68k-apollo
-+		os=-bsd
-+		;;
-+	aros)
-+		basic_machine=i386-pc
-+		os=-aros
-+		;;
-+	aux)
-+		basic_machine=m68k-apple
-+		os=-aux
-+		;;
-+	balance)
-+		basic_machine=ns32k-sequent
-+		os=-dynix
-+		;;
-+	blackfin)
-+		basic_machine=bfin-unknown
-+		os=-linux
-+		;;
-+	blackfin-*)
-+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		os=-linux
-+		;;
-+	bluegene*)
-+		basic_machine=powerpc-ibm
-+		os=-cnk
-+		;;
-+	c54x-*)
-+		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	c55x-*)
-+		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	c6x-*)
-+		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	c90)
-+		basic_machine=c90-cray
-+		os=-unicos
-+		;;
-+	cegcc)
-+		basic_machine=arm-unknown
-+		os=-cegcc
-+		;;
-+	convex-c1)
-+		basic_machine=c1-convex
-+		os=-bsd
-+		;;
-+	convex-c2)
-+		basic_machine=c2-convex
-+		os=-bsd
-+		;;
-+	convex-c32)
-+		basic_machine=c32-convex
-+		os=-bsd
-+		;;
-+	convex-c34)
-+		basic_machine=c34-convex
-+		os=-bsd
-+		;;
-+	convex-c38)
-+		basic_machine=c38-convex
-+		os=-bsd
-+		;;
-+	cray | j90)
-+		basic_machine=j90-cray
-+		os=-unicos
-+		;;
-+	craynv)
-+		basic_machine=craynv-cray
-+		os=-unicosmp
-+		;;
-+	cr16 | cr16-*)
-+		basic_machine=cr16-unknown
-+		os=-elf
-+		;;
-+	crds | unos)
-+		basic_machine=m68k-crds
-+		;;
-+	crisv32 | crisv32-* | etraxfs*)
-+		basic_machine=crisv32-axis
-+		;;
-+	cris | cris-* | etrax*)
-+		basic_machine=cris-axis
-+		;;
-+	crx)
-+		basic_machine=crx-unknown
-+		os=-elf
-+		;;
-+	da30 | da30-*)
-+		basic_machine=m68k-da30
-+		;;
-+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-+		basic_machine=mips-dec
-+		;;
-+	decsystem10* | dec10*)
-+		basic_machine=pdp10-dec
-+		os=-tops10
-+		;;
-+	decsystem20* | dec20*)
-+		basic_machine=pdp10-dec
-+		os=-tops20
-+		;;
-+	delta | 3300 | motorola-3300 | motorola-delta \
-+	      | 3300-motorola | delta-motorola)
-+		basic_machine=m68k-motorola
-+		;;
-+	delta88)
-+		basic_machine=m88k-motorola
-+		os=-sysv3
-+		;;
-+	dicos)
-+		basic_machine=i686-pc
-+		os=-dicos
-+		;;
-+	djgpp)
-+		basic_machine=i586-pc
-+		os=-msdosdjgpp
-+		;;
-+	dpx20 | dpx20-*)
-+		basic_machine=rs6000-bull
-+		os=-bosx
-+		;;
-+	dpx2* | dpx2*-bull)
-+		basic_machine=m68k-bull
-+		os=-sysv3
-+		;;
-+	ebmon29k)
-+		basic_machine=a29k-amd
-+		os=-ebmon
-+		;;
-+	elxsi)
-+		basic_machine=elxsi-elxsi
-+		os=-bsd
-+		;;
-+	encore | umax | mmax)
-+		basic_machine=ns32k-encore
-+		;;
-+	es1800 | OSE68k | ose68k | ose | OSE)
-+		basic_machine=m68k-ericsson
-+		os=-ose
-+		;;
-+	fx2800)
-+		basic_machine=i860-alliant
-+		;;
-+	genix)
-+		basic_machine=ns32k-ns
-+		;;
-+	gmicro)
-+		basic_machine=tron-gmicro
-+		os=-sysv
-+		;;
-+	go32)
-+		basic_machine=i386-pc
-+		os=-go32
-+		;;
-+	h3050r* | hiux*)
-+		basic_machine=hppa1.1-hitachi
-+		os=-hiuxwe2
-+		;;
-+	h8300hms)
-+		basic_machine=h8300-hitachi
-+		os=-hms
-+		;;
-+	h8300xray)
-+		basic_machine=h8300-hitachi
-+		os=-xray
-+		;;
-+	h8500hms)
-+		basic_machine=h8500-hitachi
-+		os=-hms
-+		;;
-+	harris)
-+		basic_machine=m88k-harris
-+		os=-sysv3
-+		;;
-+	hp300-*)
-+		basic_machine=m68k-hp
-+		;;
-+	hp300bsd)
-+		basic_machine=m68k-hp
-+		os=-bsd
-+		;;
-+	hp300hpux)
-+		basic_machine=m68k-hp
-+		os=-hpux
-+		;;
-+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-+		basic_machine=hppa1.0-hp
-+		;;
-+	hp9k2[0-9][0-9] | hp9k31[0-9])
-+		basic_machine=m68000-hp
-+		;;
-+	hp9k3[2-9][0-9])
-+		basic_machine=m68k-hp
-+		;;
-+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-+		basic_machine=hppa1.0-hp
-+		;;
-+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-+		basic_machine=hppa1.1-hp
-+		;;
-+	hp9k78[0-9] | hp78[0-9])
-+		# FIXME: really hppa2.0-hp
-+		basic_machine=hppa1.1-hp
-+		;;
-+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-+		# FIXME: really hppa2.0-hp
-+		basic_machine=hppa1.1-hp
-+		;;
-+	hp9k8[0-9][13679] | hp8[0-9][13679])
-+		basic_machine=hppa1.1-hp
-+		;;
-+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-+		basic_machine=hppa1.0-hp
-+		;;
-+	hppa-next)
-+		os=-nextstep3
-+		;;
-+	hppaosf)
-+		basic_machine=hppa1.1-hp
-+		os=-osf
-+		;;
-+	hppro)
-+		basic_machine=hppa1.1-hp
-+		os=-proelf
-+		;;
-+	i370-ibm* | ibm*)
-+		basic_machine=i370-ibm
-+		;;
-+	i*86v32)
-+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-+		os=-sysv32
-+		;;
-+	i*86v4*)
-+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-+		os=-sysv4
-+		;;
-+	i*86v)
-+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-+		os=-sysv
-+		;;
-+	i*86sol2)
-+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-+		os=-solaris2
-+		;;
-+	i386mach)
-+		basic_machine=i386-mach
-+		os=-mach
-+		;;
-+	i386-vsta | vsta)
-+		basic_machine=i386-unknown
-+		os=-vsta
-+		;;
-+	iris | iris4d)
-+		basic_machine=mips-sgi
-+		case $os in
-+		    -irix*)
-+			;;
-+		    *)
-+			os=-irix4
-+			;;
-+		esac
-+		;;
-+	isi68 | isi)
-+		basic_machine=m68k-isi
-+		os=-sysv
-+		;;
-+	m68knommu)
-+		basic_machine=m68k-unknown
-+		os=-linux
-+		;;
-+	m68knommu-*)
-+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		os=-linux
-+		;;
-+	m88k-omron*)
-+		basic_machine=m88k-omron
-+		;;
-+	magnum | m3230)
-+		basic_machine=mips-mips
-+		os=-sysv
-+		;;
-+	merlin)
-+		basic_machine=ns32k-utek
-+		os=-sysv
-+		;;
-+	microblaze)
-+		basic_machine=microblaze-xilinx
-+		;;
-+	mingw32)
-+		basic_machine=i386-pc
-+		os=-mingw32
-+		;;
-+	mingw32ce)
-+		basic_machine=arm-unknown
-+		os=-mingw32ce
-+		;;
-+	miniframe)
-+		basic_machine=m68000-convergent
-+		;;
-+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-+		basic_machine=m68k-atari
-+		os=-mint
-+		;;
-+	mips3*-*)
-+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-+		;;
-+	mips3*)
-+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-+		;;
-+	monitor)
-+		basic_machine=m68k-rom68k
-+		os=-coff
-+		;;
-+	morphos)
-+		basic_machine=powerpc-unknown
-+		os=-morphos
-+		;;
-+	msdos)
-+		basic_machine=i386-pc
-+		os=-msdos
-+		;;
-+	ms1-*)
-+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-+		;;
-+	msys)
-+		basic_machine=i386-pc
-+		os=-msys
-+		;;
-+	mvs)
-+		basic_machine=i370-ibm
-+		os=-mvs
-+		;;
-+	nacl)
-+		basic_machine=le32-unknown
-+		os=-nacl
-+		;;
-+	ncr3000)
-+		basic_machine=i486-ncr
-+		os=-sysv4
-+		;;
-+	netbsd386)
-+		basic_machine=i386-unknown
-+		os=-netbsd
-+		;;
-+	netwinder)
-+		basic_machine=armv4l-rebel
-+		os=-linux
-+		;;
-+	news | news700 | news800 | news900)
-+		basic_machine=m68k-sony
-+		os=-newsos
-+		;;
-+	news1000)
-+		basic_machine=m68030-sony
-+		os=-newsos
-+		;;
-+	news-3600 | risc-news)
-+		basic_machine=mips-sony
-+		os=-newsos
-+		;;
-+	necv70)
-+		basic_machine=v70-nec
-+		os=-sysv
-+		;;
-+	next | m*-next )
-+		basic_machine=m68k-next
-+		case $os in
-+		    -nextstep* )
-+			;;
-+		    -ns2*)
-+		      os=-nextstep2
-+			;;
-+		    *)
-+		      os=-nextstep3
-+			;;
-+		esac
-+		;;
-+	nh3000)
-+		basic_machine=m68k-harris
-+		os=-cxux
-+		;;
-+	nh[45]000)
-+		basic_machine=m88k-harris
-+		os=-cxux
-+		;;
-+	nindy960)
-+		basic_machine=i960-intel
-+		os=-nindy
-+		;;
-+	mon960)
-+		basic_machine=i960-intel
-+		os=-mon960
-+		;;
-+	nonstopux)
-+		basic_machine=mips-compaq
-+		os=-nonstopux
-+		;;
-+	np1)
-+		basic_machine=np1-gould
-+		;;
-+	neo-tandem)
-+		basic_machine=neo-tandem
-+		;;
-+	nse-tandem)
-+		basic_machine=nse-tandem
-+		;;
-+	nsr-tandem)
-+		basic_machine=nsr-tandem
-+		;;
-+	op50n-* | op60c-*)
-+		basic_machine=hppa1.1-oki
-+		os=-proelf
-+		;;
-+	openrisc | openrisc-*)
-+		basic_machine=or32-unknown
-+		;;
-+	os400)
-+		basic_machine=powerpc-ibm
-+		os=-os400
-+		;;
-+	OSE68000 | ose68000)
-+		basic_machine=m68000-ericsson
-+		os=-ose
-+		;;
-+	os68k)
-+		basic_machine=m68k-none
-+		os=-os68k
-+		;;
-+	pa-hitachi)
-+		basic_machine=hppa1.1-hitachi
-+		os=-hiuxwe2
-+		;;
-+	paragon)
-+		basic_machine=i860-intel
-+		os=-osf
-+		;;
-+	parisc)
-+		basic_machine=hppa-unknown
-+		os=-linux
-+		;;
-+	parisc-*)
-+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		os=-linux
-+		;;
-+	pbd)
-+		basic_machine=sparc-tti
-+		;;
-+	pbb)
-+		basic_machine=m68k-tti
-+		;;
-+	pc532 | pc532-*)
-+		basic_machine=ns32k-pc532
-+		;;
-+	pc98)
-+		basic_machine=i386-pc
-+		;;
-+	pc98-*)
-+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	pentium | p5 | k5 | k6 | nexgen | viac3)
-+		basic_machine=i586-pc
-+		;;
-+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-+		basic_machine=i686-pc
-+		;;
-+	pentiumii | pentium2 | pentiumiii | pentium3)
-+		basic_machine=i686-pc
-+		;;
-+	pentium4)
-+		basic_machine=i786-pc
-+		;;
-+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	pentium4-*)
-+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	pn)
-+		basic_machine=pn-gould
-+		;;
-+	power)	basic_machine=power-ibm
-+		;;
-+	ppc | ppcbe)	basic_machine=powerpc-unknown
-+		;;
-+	ppc-* | ppcbe-*)
-+		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	ppcle | powerpclittle | ppc-le | powerpc-little)
-+		basic_machine=powerpcle-unknown
-+		;;
-+	ppcle-* | powerpclittle-*)
-+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	ppc64)	basic_machine=powerpc64-unknown
-+		;;
-+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-+		basic_machine=powerpc64le-unknown
-+		;;
-+	ppc64le-* | powerpc64little-*)
-+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	ps2)
-+		basic_machine=i386-ibm
-+		;;
-+	pw32)
-+		basic_machine=i586-unknown
-+		os=-pw32
-+		;;
-+	rdos)
-+		basic_machine=i386-pc
-+		os=-rdos
-+		;;
-+	rom68k)
-+		basic_machine=m68k-rom68k
-+		os=-coff
-+		;;
-+	rm[46]00)
-+		basic_machine=mips-siemens
-+		;;
-+	rtpc | rtpc-*)
-+		basic_machine=romp-ibm
-+		;;
-+	s390 | s390-*)
-+		basic_machine=s390-ibm
-+		;;
-+	s390x | s390x-*)
-+		basic_machine=s390x-ibm
-+		;;
-+	sa29200)
-+		basic_machine=a29k-amd
-+		os=-udi
-+		;;
-+	sb1)
-+		basic_machine=mipsisa64sb1-unknown
-+		;;
-+	sb1el)
-+		basic_machine=mipsisa64sb1el-unknown
-+		;;
-+	sde)
-+		basic_machine=mipsisa32-sde
-+		os=-elf
-+		;;
-+	sei)
-+		basic_machine=mips-sei
-+		os=-seiux
-+		;;
-+	sequent)
-+		basic_machine=i386-sequent
-+		;;
-+	sh)
-+		basic_machine=sh-hitachi
-+		os=-hms
-+		;;
-+	sh5el)
-+		basic_machine=sh5le-unknown
-+		;;
-+	sh64)
-+		basic_machine=sh64-unknown
-+		;;
-+	sparclite-wrs | simso-wrs)
-+		basic_machine=sparclite-wrs
-+		os=-vxworks
-+		;;
-+	sps7)
-+		basic_machine=m68k-bull
-+		os=-sysv2
-+		;;
-+	spur)
-+		basic_machine=spur-unknown
-+		;;
-+	st2000)
-+		basic_machine=m68k-tandem
-+		;;
-+	stratus)
-+		basic_machine=i860-stratus
-+		os=-sysv4
-+		;;
-+	strongarm-* | thumb-*)
-+		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
-+	sun2)
-+		basic_machine=m68000-sun
-+		;;
-+	sun2os3)
-+		basic_machine=m68000-sun
-+		os=-sunos3
-+		;;
-+	sun2os4)
-+		basic_machine=m68000-sun
-+		os=-sunos4
-+		;;
-+	sun3os3)
-+		basic_machine=m68k-sun
-+		os=-sunos3
-+		;;
-+	sun3os4)
-+		basic_machine=m68k-sun
-+		os=-sunos4
-+		;;
-+	sun4os3)
-+		basic_machine=sparc-sun
-+		os=-sunos3
-+		;;
-+	sun4os4)
-+		basic_machine=sparc-sun
-+		os=-sunos4
-+		;;
-+	sun4sol2)
-+		basic_machine=sparc-sun
-+		os=-solaris2
-+		;;
-+	sun3 | sun3-*)
-+		basic_machine=m68k-sun
-+		;;
-+	sun4)
-+		basic_machine=sparc-sun
-+		;;
-+	sun386 | sun386i | roadrunner)
-+		basic_machine=i386-sun
-+		;;
-+	sv1)
-+		basic_machine=sv1-cray
-+		os=-unicos
-+		;;
-+	symmetry)
-+		basic_machine=i386-sequent
-+		os=-dynix
-+		;;
-+	t3e)
-+		basic_machine=alphaev5-cray
-+		os=-unicos
-+		;;
-+	t90)
-+		basic_machine=t90-cray
-+		os=-unicos
-+		;;
-+	tile*)
-+		basic_machine=$basic_machine-unknown
-+		os=-linux-gnu
-+		;;
-+	tx39)
-+		basic_machine=mipstx39-unknown
-+		;;
-+	tx39el)
-+		basic_machine=mipstx39el-unknown
-+		;;
-+	toad1)
-+		basic_machine=pdp10-xkl
-+		os=-tops20
-+		;;
-+	tower | tower-32)
-+		basic_machine=m68k-ncr
-+		;;
-+	tpf)
-+		basic_machine=s390x-ibm
-+		os=-tpf
-+		;;
-+	udi29k)
-+		basic_machine=a29k-amd
-+		os=-udi
-+		;;
-+	ultra3)
-+		basic_machine=a29k-nyu
-+		os=-sym1
-+		;;
-+	v810 | necv810)
-+		basic_machine=v810-nec
-+		os=-none
-+		;;
-+	vaxv)
-+		basic_machine=vax-dec
-+		os=-sysv
-+		;;
-+	vms)
-+		basic_machine=vax-dec
-+		os=-vms
-+		;;
-+	vpp*|vx|vx-*)
-+		basic_machine=f301-fujitsu
-+		;;
-+	vxworks960)
-+		basic_machine=i960-wrs
-+		os=-vxworks
-+		;;
-+	vxworks68)
-+		basic_machine=m68k-wrs
-+		os=-vxworks
-+		;;
-+	vxworks29k)
-+		basic_machine=a29k-wrs
-+		os=-vxworks
-+		;;
-+	w65*)
-+		basic_machine=w65-wdc
-+		os=-none
-+		;;
-+	w89k-*)
-+		basic_machine=hppa1.1-winbond
-+		os=-proelf
-+		;;
-+	xbox)
-+		basic_machine=i686-pc
-+		os=-mingw32
-+		;;
-+	xps | xps100)
-+		basic_machine=xps100-honeywell
-+		;;
-+	xscale-* | xscalee[bl]-*)
-+		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
-+		;;
-+	ymp)
-+		basic_machine=ymp-cray
-+		os=-unicos
-+		;;
-+	z8k-*-coff)
-+		basic_machine=z8k-unknown
-+		os=-sim
-+		;;
-+	z80-*-coff)
-+		basic_machine=z80-unknown
-+		os=-sim
-+		;;
-+	none)
-+		basic_machine=none-none
-+		os=-none
-+		;;
-+
-+# Here we handle the default manufacturer of certain CPU types.  It is in
-+# some cases the only manufacturer, in others, it is the most popular.
-+	w89k)
-+		basic_machine=hppa1.1-winbond
-+		;;
-+	op50n)
-+		basic_machine=hppa1.1-oki
-+		;;
-+	op60c)
-+		basic_machine=hppa1.1-oki
-+		;;
-+	romp)
-+		basic_machine=romp-ibm
-+		;;
-+	mmix)
-+		basic_machine=mmix-knuth
-+		;;
-+	rs6000)
-+		basic_machine=rs6000-ibm
-+		;;
-+	vax)
-+		basic_machine=vax-dec
-+		;;
-+	pdp10)
-+		# there are many clones, so DEC is not a safe bet
-+		basic_machine=pdp10-unknown
-+		;;
-+	pdp11)
-+		basic_machine=pdp11-dec
-+		;;
-+	we32k)
-+		basic_machine=we32k-att
-+		;;
-+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
-+		basic_machine=sh-unknown
-+		;;
-+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-+		basic_machine=sparc-sun
-+		;;
-+	cydra)
-+		basic_machine=cydra-cydrome
-+		;;
-+	orion)
-+		basic_machine=orion-highlevel
-+		;;
-+	orion105)
-+		basic_machine=clipper-highlevel
-+		;;
-+	mac | mpw | mac-mpw)
-+		basic_machine=m68k-apple
-+		;;
-+	pmac | pmac-mpw)
-+		basic_machine=powerpc-apple
-+		;;
-+	*-unknown)
-+		# Make sure to match an already-canonicalized machine name.
-+		;;
-+	*)
-+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-+		exit 1
-+		;;
-+esac
-+
-+# Here we canonicalize certain aliases for manufacturers.
-+case $basic_machine in
-+	*-digital*)
-+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-+		;;
-+	*-commodore*)
-+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-+		;;
-+	*)
-+		;;
-+esac
-+
-+# Decode manufacturer-specific aliases for certain operating systems.
-+
-+if [ x"$os" != x"" ]
-+then
-+case $os in
-+	# First match some system type aliases
-+	# that might get confused with valid system types.
-+	# -solaris* is a basic system type, with this one exception.
-+	-auroraux)
-+		os=-auroraux
-+		;;
-+	-solaris1 | -solaris1.*)
-+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-+		;;
-+	-solaris)
-+		os=-solaris2
-+		;;
-+	-svr4*)
-+		os=-sysv4
-+		;;
-+	-unixware*)
-+		os=-sysv4.2uw
-+		;;
-+	-gnu/linux*)
-+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-+		;;
-+	# First accept the basic system types.
-+	# The portable systems comes first.
-+	# Each alternative MUST END IN A *, to match a version number.
-+	# -sysv* is not here because it comes later, after sysvr4.
-+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-+	      | -sym* | -kopensolaris* \
-+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-+	      | -aos* | -aros* \
-+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-+	      | -openbsd* | -solidbsd* \
-+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-+	      | -chorusos* | -chorusrdb* | -cegcc* \
-+	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-+	      | -mingw32* | -linux-gnu* | -linux-android* \
-+	      | -linux-newlib* | -linux-uclibc* \
-+	      | -uxpv* | -beos* | -mpeix* | -udk* \
-+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
-+	# Remember, each alternative MUST END IN *, to match a version number.
-+		;;
-+	-qnx*)
-+		case $basic_machine in
-+		    x86-* | i*86-*)
-+			;;
-+		    *)
-+			os=-nto$os
-+			;;
-+		esac
-+		;;
-+	-nto-qnx*)
-+		;;
-+	-nto*)
-+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
-+		;;
-+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-+		;;
-+	-mac*)
-+		os=`echo $os | sed -e 's|mac|macos|'`
-+		;;
-+	-linux-dietlibc)
-+		os=-linux-dietlibc
-+		;;
-+	-linux*)
-+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-+		;;
-+	-sunos5*)
-+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
-+		;;
-+	-sunos6*)
-+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
-+		;;
-+	-opened*)
-+		os=-openedition
-+		;;
-+	-os400*)
-+		os=-os400
-+		;;
-+	-wince*)
-+		os=-wince
-+		;;
-+	-osfrose*)
-+		os=-osfrose
-+		;;
-+	-osf*)
-+		os=-osf
-+		;;
-+	-utek*)
-+		os=-bsd
-+		;;
-+	-dynix*)
-+		os=-bsd
-+		;;
-+	-acis*)
-+		os=-aos
-+		;;
-+	-atheos*)
-+		os=-atheos
-+		;;
-+	-syllable*)
-+		os=-syllable
-+		;;
-+	-386bsd)
-+		os=-bsd
-+		;;
-+	-ctix* | -uts*)
-+		os=-sysv
-+		;;
-+	-nova*)
-+		os=-rtmk-nova
-+		;;
-+	-ns2 )
-+		os=-nextstep2
-+		;;
-+	-nsk*)
-+		os=-nsk
-+		;;
-+	# Preserve the version number of sinix5.
-+	-sinix5.*)
-+		os=`echo $os | sed -e 's|sinix|sysv|'`
-+		;;
-+	-sinix*)
-+		os=-sysv4
-+		;;
-+	-tpf*)
-+		os=-tpf
-+		;;
-+	-triton*)
-+		os=-sysv3
-+		;;
-+	-oss*)
-+		os=-sysv3
-+		;;
-+	-svr4)
-+		os=-sysv4
-+		;;
-+	-svr3)
-+		os=-sysv3
-+		;;
-+	-sysvr4)
-+		os=-sysv4
-+		;;
-+	# This must come after -sysvr4.
-+	-sysv*)
-+		;;
-+	-ose*)
-+		os=-ose
-+		;;
-+	-es1800*)
-+		os=-ose
-+		;;
-+	-xenix)
-+		os=-xenix
-+		;;
-+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-+		os=-mint
-+		;;
-+	-aros*)
-+		os=-aros
-+		;;
-+	-kaos*)
-+		os=-kaos
-+		;;
-+	-zvmoe)
-+		os=-zvmoe
-+		;;
-+	-dicos*)
-+		os=-dicos
-+		;;
-+	-nacl*)
-+		;;
-+	-none)
-+		;;
-+	*)
-+		# Get rid of the `-' at the beginning of $os.
-+		os=`echo $os | sed 's/[^-]*-//'`
-+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-+		exit 1
-+		;;
-+esac
-+else
-+
-+# Here we handle the default operating systems that come with various machines.
-+# The value should be what the vendor currently ships out the door with their
-+# machine or put another way, the most popular os provided with the machine.
-+
-+# Note that if you're going to try to match "-MANUFACTURER" here (say,
-+# "-sun"), then you have to tell the case statement up towards the top
-+# that MANUFACTURER isn't an operating system.  Otherwise, code above
-+# will signal an error saying that MANUFACTURER isn't an operating
-+# system, and we'll never get to this point.
-+
-+case $basic_machine in
-+	score-*)
-+		os=-elf
-+		;;
-+	spu-*)
-+		os=-elf
-+		;;
-+	*-acorn)
-+		os=-riscix1.2
-+		;;
-+	arm*-rebel)
-+		os=-linux
-+		;;
-+	arm*-semi)
-+		os=-aout
-+		;;
-+	c4x-* | tic4x-*)
-+		os=-coff
-+		;;
-+	tic54x-*)
-+		os=-coff
-+		;;
-+	tic55x-*)
-+		os=-coff
-+		;;
-+	tic6x-*)
-+		os=-coff
-+		;;
-+	# This must come before the *-dec entry.
-+	pdp10-*)
-+		os=-tops20
-+		;;
-+	pdp11-*)
-+		os=-none
-+		;;
-+	*-dec | vax-*)
-+		os=-ultrix4.2
-+		;;
-+	m68*-apollo)
-+		os=-domain
-+		;;
-+	i386-sun)
-+		os=-sunos4.0.2
-+		;;
-+	m68000-sun)
-+		os=-sunos3
-+		;;
-+	m68*-cisco)
-+		os=-aout
-+		;;
-+	mep-*)
-+		os=-elf
-+		;;
-+	mips*-cisco)
-+		os=-elf
-+		;;
-+	mips*-*)
-+		os=-elf
-+		;;
-+	or32-*)
-+		os=-coff
-+		;;
-+	*-tti)	# must be before sparc entry or we get the wrong os.
-+		os=-sysv3
-+		;;
-+	sparc-* | *-sun)
-+		os=-sunos4.1.1
-+		;;
-+	*-be)
-+		os=-beos
-+		;;
-+	*-haiku)
-+		os=-haiku
-+		;;
-+	*-ibm)
-+		os=-aix
-+		;;
-+	*-knuth)
-+		os=-mmixware
-+		;;
-+	*-wec)
-+		os=-proelf
-+		;;
-+	*-winbond)
-+		os=-proelf
-+		;;
-+	*-oki)
-+		os=-proelf
-+		;;
-+	*-hp)
-+		os=-hpux
-+		;;
-+	*-hitachi)
-+		os=-hiux
-+		;;
-+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-+		os=-sysv
-+		;;
-+	*-cbm)
-+		os=-amigaos
-+		;;
-+	*-dg)
-+		os=-dgux
-+		;;
-+	*-dolphin)
-+		os=-sysv3
-+		;;
-+	m68k-ccur)
-+		os=-rtu
-+		;;
-+	m88k-omron*)
-+		os=-luna
-+		;;
-+	*-next )
-+		os=-nextstep
-+		;;
-+	*-sequent)
-+		os=-ptx
-+		;;
-+	*-crds)
-+		os=-unos
-+		;;
-+	*-ns)
-+		os=-genix
-+		;;
-+	i370-*)
-+		os=-mvs
-+		;;
-+	*-next)
-+		os=-nextstep3
-+		;;
-+	*-gould)
-+		os=-sysv
-+		;;
-+	*-highlevel)
-+		os=-bsd
-+		;;
-+	*-encore)
-+		os=-bsd
-+		;;
-+	*-sgi)
-+		os=-irix
-+		;;
-+	*-siemens)
-+		os=-sysv4
-+		;;
-+	*-masscomp)
-+		os=-rtu
-+		;;
-+	f30[01]-fujitsu | f700-fujitsu)
-+		os=-uxpv
-+		;;
-+	*-rom68k)
-+		os=-coff
-+		;;
-+	*-*bug)
-+		os=-coff
-+		;;
-+	*-apple)
-+		os=-macos
-+		;;
-+	*-atari*)
-+		os=-mint
-+		;;
-+	*)
-+		os=-none
-+		;;
-+esac
-+fi
-+
-+# Here we handle the case where we know the os, and the CPU type, but not the
-+# manufacturer.  We pick the logical manufacturer.
-+vendor=unknown
-+case $basic_machine in
-+	*-unknown)
-+		case $os in
-+			-riscix*)
-+				vendor=acorn
-+				;;
-+			-sunos*)
-+				vendor=sun
-+				;;
-+			-cnk*|-aix*)
-+				vendor=ibm
-+				;;
-+			-beos*)
-+				vendor=be
-+				;;
-+			-hpux*)
-+				vendor=hp
-+				;;
-+			-mpeix*)
-+				vendor=hp
-+				;;
-+			-hiux*)
-+				vendor=hitachi
-+				;;
-+			-unos*)
-+				vendor=crds
-+				;;
-+			-dgux*)
-+				vendor=dg
-+				;;
-+			-luna*)
-+				vendor=omron
-+				;;
-+			-genix*)
-+				vendor=ns
-+				;;
-+			-mvs* | -opened*)
-+				vendor=ibm
-+				;;
-+			-os400*)
-+				vendor=ibm
-+				;;
-+			-ptx*)
-+				vendor=sequent
-+				;;
-+			-tpf*)
-+				vendor=ibm
-+				;;
-+			-vxsim* | -vxworks* | -windiss*)
-+				vendor=wrs
-+				;;
-+			-aux*)
-+				vendor=apple
-+				;;
-+			-hms*)
-+				vendor=hitachi
-+				;;
-+			-mpw* | -macos*)
-+				vendor=apple
-+				;;
-+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-+				vendor=atari
-+				;;
-+			-vos*)
-+				vendor=stratus
-+				;;
-+		esac
-+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-+		;;
-+esac
-+
-+echo $basic_machine$os
-+exit
-+
-+# Local variables:
-+# eval: (add-hook 'write-file-hooks 'time-stamp)
-+# time-stamp-start: "timestamp='"
-+# time-stamp-format: "%:y-%02m-%02d"
-+# time-stamp-end: "'"
-+# End:
-diff --git a/libclamav/libmspack-0.4alpha/configure b/libclamav/libmspack-0.4alpha/configure
-new file mode 100755
-index 000000000000..5f03b36c49ac
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/configure
-@@ -0,0 +1,14567 @@
-+#! /bin/sh
-+# Guess values for system-dependent variables and create Makefiles.
-+# Generated by GNU Autoconf 2.68 for libmspack 0.4alpha.
-+#
-+# Report bugs to <kyzer at 4u.net>.
-+#
-+#
-+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-+# Foundation, Inc.
-+#
-+#
-+# This configure script is free software; the Free Software Foundation
-+# gives unlimited permission to copy, distribute and modify it.
-+## -------------------- ##
-+## M4sh Initialization. ##
-+## -------------------- ##
-+
-+# Be more Bourne compatible
-+DUALCASE=1; export DUALCASE # for MKS sh
-+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-+  emulate sh
-+  NULLCMD=:
-+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-+  # is contrary to our usage.  Disable this feature.
-+  alias -g '${1+"$@"}'='"$@"'
-+  setopt NO_GLOB_SUBST
-+else
-+  case `(set -o) 2>/dev/null` in #(
-+  *posix*) :
-+    set -o posix ;; #(
-+  *) :
-+     ;;
-+esac
-+fi
-+
-+
-+as_nl='
-+'
-+export as_nl
-+# Printing a long string crashes Solaris 7 /usr/bin/printf.
-+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-+# Prefer a ksh shell builtin over an external printf program on Solaris,
-+# but without wasting forks for bash or zsh.
-+if test -z "$BASH_VERSION$ZSH_VERSION" \
-+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-+  as_echo='print -r --'
-+  as_echo_n='print -rn --'
-+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-+  as_echo='printf %s\n'
-+  as_echo_n='printf %s'
-+else
-+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-+    as_echo_n='/usr/ucb/echo -n'
-+  else
-+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-+    as_echo_n_body='eval
-+      arg=$1;
-+      case $arg in #(
-+      *"$as_nl"*)
-+	expr "X$arg" : "X\\(.*\\)$as_nl";
-+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-+      esac;
-+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-+    '
-+    export as_echo_n_body
-+    as_echo_n='sh -c $as_echo_n_body as_echo'
-+  fi
-+  export as_echo_body
-+  as_echo='sh -c $as_echo_body as_echo'
-+fi
-+
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+  PATH_SEPARATOR=:
-+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-+      PATH_SEPARATOR=';'
-+  }
-+fi
-+
-+
-+# IFS
-+# We need space, tab and new line, in precisely that order.  Quoting is
-+# there to prevent editors from complaining about space-tab.
-+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-+# splitting by setting IFS to empty value.)
-+IFS=" ""	$as_nl"
-+
-+# Find who we are.  Look in the path if we contain no directory separator.
-+as_myself=
-+case $0 in #((
-+  *[\\/]* ) as_myself=$0 ;;
-+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-+  done
-+IFS=$as_save_IFS
-+
-+     ;;
-+esac
-+# We did not find ourselves, most probably we were run as `sh COMMAND'
-+# in which case we are not to be found in the path.
-+if test "x$as_myself" = x; then
-+  as_myself=$0
-+fi
-+if test ! -f "$as_myself"; then
-+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-+  exit 1
-+fi
-+
-+# Unset variables that we do not need and which cause bugs (e.g. in
-+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-+# suppresses any "Segmentation fault" message there.  '((' could
-+# trigger a bug in pdksh 5.2.14.
-+for as_var in BASH_ENV ENV MAIL MAILPATH
-+do eval test x\${$as_var+set} = xset \
-+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-+done
-+PS1='$ '
-+PS2='> '
-+PS4='+ '
-+
-+# NLS nuisances.
-+LC_ALL=C
-+export LC_ALL
-+LANGUAGE=C
-+export LANGUAGE
-+
-+# CDPATH.
-+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-+
-+if test "x$CONFIG_SHELL" = x; then
-+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-+  emulate sh
-+  NULLCMD=:
-+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-+  # is contrary to our usage.  Disable this feature.
-+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-+  setopt NO_GLOB_SUBST
-+else
-+  case \`(set -o) 2>/dev/null\` in #(
-+  *posix*) :
-+    set -o posix ;; #(
-+  *) :
-+     ;;
-+esac
-+fi
-+"
-+  as_required="as_fn_return () { (exit \$1); }
-+as_fn_success () { as_fn_return 0; }
-+as_fn_failure () { as_fn_return 1; }
-+as_fn_ret_success () { return 0; }
-+as_fn_ret_failure () { return 1; }
-+
-+exitcode=0
-+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-+
-+else
-+  exitcode=1; echo positional parameters were not saved.
-+fi
-+test x\$exitcode = x0 || exit 1"
-+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-+
-+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
-+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
-+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
-+    PATH=/empty FPATH=/empty; export PATH FPATH
-+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
-+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
-+test \$(( 1 + 1 )) = 2 || exit 1"
-+  if (eval "$as_required") 2>/dev/null; then :
-+  as_have_required=yes
-+else
-+  as_have_required=no
-+fi
-+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-+
-+else
-+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+as_found=false
-+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+  as_found=:
-+  case $as_dir in #(
-+	 /*)
-+	   for as_base in sh bash ksh sh5; do
-+	     # Try only shells that exist, to save several forks.
-+	     as_shell=$as_dir/$as_base
-+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-+  CONFIG_SHELL=$as_shell as_have_required=yes
-+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-+  break 2
-+fi
-+fi
-+	   done;;
-+       esac
-+  as_found=false
-+done
-+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-+  CONFIG_SHELL=$SHELL as_have_required=yes
-+fi; }
-+IFS=$as_save_IFS
-+
-+
-+      if test "x$CONFIG_SHELL" != x; then :
-+  # We cannot yet assume a decent shell, so we have to provide a
-+	# neutralization value for shells without unset; and this also
-+	# works around shells that cannot unset nonexistent variables.
-+	# Preserve -v and -x to the replacement shell.
-+	BASH_ENV=/dev/null
-+	ENV=/dev/null
-+	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-+	export CONFIG_SHELL
-+	case $- in # ((((
-+	  *v*x* | *x*v* ) as_opts=-vx ;;
-+	  *v* ) as_opts=-v ;;
-+	  *x* ) as_opts=-x ;;
-+	  * ) as_opts= ;;
-+	esac
-+	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
-+fi
-+
-+    if test x$as_have_required = xno; then :
-+  $as_echo "$0: This script requires a shell more modern than all"
-+  $as_echo "$0: the shells that I found on your system."
-+  if test x${ZSH_VERSION+set} = xset ; then
-+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-+  else
-+    $as_echo "$0: Please tell bug-autoconf at gnu.org and kyzer at 4u.net about
-+$0: your system, including any error possibly output before
-+$0: this message. Then install a modern shell, or manually
-+$0: run the script under such a shell if you do have one."
-+  fi
-+  exit 1
-+fi
-+fi
-+fi
-+SHELL=${CONFIG_SHELL-/bin/sh}
-+export SHELL
-+# Unset more variables known to interfere with behavior of common tools.
-+CLICOLOR_FORCE= GREP_OPTIONS=
-+unset CLICOLOR_FORCE GREP_OPTIONS
-+
-+## --------------------- ##
-+## M4sh Shell Functions. ##
-+## --------------------- ##
-+# as_fn_unset VAR
-+# ---------------
-+# Portably unset VAR.
-+as_fn_unset ()
-+{
-+  { eval $1=; unset $1;}
-+}
-+as_unset=as_fn_unset
-+
-+# as_fn_set_status STATUS
-+# -----------------------
-+# Set $? to STATUS, without forking.
-+as_fn_set_status ()
-+{
-+  return $1
-+} # as_fn_set_status
-+
-+# as_fn_exit STATUS
-+# -----------------
-+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-+as_fn_exit ()
-+{
-+  set +e
-+  as_fn_set_status $1
-+  exit $1
-+} # as_fn_exit
-+
-+# as_fn_mkdir_p
-+# -------------
-+# Create "$as_dir" as a directory, including parents if necessary.
-+as_fn_mkdir_p ()
-+{
-+
-+  case $as_dir in #(
-+  -*) as_dir=./$as_dir;;
-+  esac
-+  test -d "$as_dir" || eval $as_mkdir_p || {
-+    as_dirs=
-+    while :; do
-+      case $as_dir in #(
-+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-+      *) as_qdir=$as_dir;;
-+      esac
-+      as_dirs="'$as_qdir' $as_dirs"
-+      as_dir=`$as_dirname -- "$as_dir" ||
-+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+	 X"$as_dir" : 'X\(//\)[^/]' \| \
-+	 X"$as_dir" : 'X\(//\)$' \| \
-+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X"$as_dir" |
-+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)[^/].*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`
-+      test -d "$as_dir" && break
-+    done
-+    test -z "$as_dirs" || eval "mkdir $as_dirs"
-+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-+
-+
-+} # as_fn_mkdir_p
-+# as_fn_append VAR VALUE
-+# ----------------------
-+# Append the text in VALUE to the end of the definition contained in VAR. Take
-+# advantage of any shell optimizations that allow amortized linear growth over
-+# repeated appends, instead of the typical quadratic growth present in naive
-+# implementations.
-+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-+  eval 'as_fn_append ()
-+  {
-+    eval $1+=\$2
-+  }'
-+else
-+  as_fn_append ()
-+  {
-+    eval $1=\$$1\$2
-+  }
-+fi # as_fn_append
-+
-+# as_fn_arith ARG...
-+# ------------------
-+# Perform arithmetic evaluation on the ARGs, and store the result in the
-+# global $as_val. Take advantage of shells that can avoid forks. The arguments
-+# must be portable across $(()) and expr.
-+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-+  eval 'as_fn_arith ()
-+  {
-+    as_val=$(( $* ))
-+  }'
-+else
-+  as_fn_arith ()
-+  {
-+    as_val=`expr "$@" || test $? -eq 1`
-+  }
-+fi # as_fn_arith
-+
-+
-+# as_fn_error STATUS ERROR [LINENO LOG_FD]
-+# ----------------------------------------
-+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-+# script with STATUS, using 1 if that was 0.
-+as_fn_error ()
-+{
-+  as_status=$1; test $as_status -eq 0 && as_status=1
-+  if test "$4"; then
-+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-+  fi
-+  $as_echo "$as_me: error: $2" >&2
-+  as_fn_exit $as_status
-+} # as_fn_error
-+
-+if expr a : '\(a\)' >/dev/null 2>&1 &&
-+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-+  as_expr=expr
-+else
-+  as_expr=false
-+fi
-+
-+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-+  as_basename=basename
-+else
-+  as_basename=false
-+fi
-+
-+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-+  as_dirname=dirname
-+else
-+  as_dirname=false
-+fi
-+
-+as_me=`$as_basename -- "$0" ||
-+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-+	 X"$0" : 'X\(//\)$' \| \
-+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X/"$0" |
-+    sed '/^.*\/\([^/][^/]*\)\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\/\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\/\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`
-+
-+# Avoid depending upon Character Ranges.
-+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-+as_cr_digits='0123456789'
-+as_cr_alnum=$as_cr_Letters$as_cr_digits
-+
-+
-+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-+  sed -n '
-+    p
-+    /[$]LINENO/=
-+  ' <$as_myself |
-+    sed '
-+      s/[$]LINENO.*/&-/
-+      t lineno
-+      b
-+      :lineno
-+      N
-+      :loop
-+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-+      t loop
-+      s/-\n.*//
-+    ' >$as_me.lineno &&
-+  chmod +x "$as_me.lineno" ||
-+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-+
-+  # Don't try to exec as it changes $[0], causing all sort of problems
-+  # (the dirname of $[0] is not the place where we might find the
-+  # original and so on.  Autoconf is especially sensitive to this).
-+  . "./$as_me.lineno"
-+  # Exit status is that of the last command.
-+  exit
-+}
-+
-+ECHO_C= ECHO_N= ECHO_T=
-+case `echo -n x` in #(((((
-+-n*)
-+  case `echo 'xy\c'` in
-+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-+  xy)  ECHO_C='\c';;
-+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-+       ECHO_T='	';;
-+  esac;;
-+*)
-+  ECHO_N='-n';;
-+esac
-+
-+rm -f conf$$ conf$$.exe conf$$.file
-+if test -d conf$$.dir; then
-+  rm -f conf$$.dir/conf$$.file
-+else
-+  rm -f conf$$.dir
-+  mkdir conf$$.dir 2>/dev/null
-+fi
-+if (echo >conf$$.file) 2>/dev/null; then
-+  if ln -s conf$$.file conf$$ 2>/dev/null; then
-+    as_ln_s='ln -s'
-+    # ... but there are two gotchas:
-+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-+    # In both cases, we have to default to `cp -p'.
-+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-+      as_ln_s='cp -p'
-+  elif ln conf$$.file conf$$ 2>/dev/null; then
-+    as_ln_s=ln
-+  else
-+    as_ln_s='cp -p'
-+  fi
-+else
-+  as_ln_s='cp -p'
-+fi
-+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-+rmdir conf$$.dir 2>/dev/null
-+
-+if mkdir -p . 2>/dev/null; then
-+  as_mkdir_p='mkdir -p "$as_dir"'
-+else
-+  test -d ./-p && rmdir ./-p
-+  as_mkdir_p=false
-+fi
-+
-+if test -x / >/dev/null 2>&1; then
-+  as_test_x='test -x'
-+else
-+  if ls -dL / >/dev/null 2>&1; then
-+    as_ls_L_option=L
-+  else
-+    as_ls_L_option=
-+  fi
-+  as_test_x='
-+    eval sh -c '\''
-+      if test -d "$1"; then
-+	test -d "$1/.";
-+      else
-+	case $1 in #(
-+	-*)set "./$1";;
-+	esac;
-+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-+	???[sx]*):;;*)false;;esac;fi
-+    '\'' sh
-+  '
-+fi
-+as_executable_p=$as_test_x
-+
-+# Sed expression to map a string onto a valid CPP name.
-+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-+
-+# Sed expression to map a string onto a valid variable name.
-+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-+
-+SHELL=${CONFIG_SHELL-/bin/sh}
-+
-+
-+test -n "$DJDIR" || exec 7<&0 </dev/null
-+exec 6>&1
-+
-+# Name of the host.
-+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-+# so uname gets run too.
-+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-+
-+#
-+# Initializations.
-+#
-+ac_default_prefix=/usr/local
-+ac_clean_files=
-+ac_config_libobj_dir=.
-+LIBOBJS=
-+cross_compiling=no
-+subdirs=
-+MFLAGS=
-+MAKEFLAGS=
-+
-+# Identity of this package.
-+PACKAGE_NAME='libmspack'
-+PACKAGE_TARNAME='libmspack'
-+PACKAGE_VERSION='0.4alpha'
-+PACKAGE_STRING='libmspack 0.4alpha'
-+PACKAGE_BUGREPORT='kyzer at 4u.net'
-+PACKAGE_URL=''
-+
-+ac_unique_file="mspack/mspack.h"
-+# Factoring default headers for most tests.
-+ac_includes_default="\
-+#include <stdio.h>
-+#ifdef HAVE_SYS_TYPES_H
-+# include <sys/types.h>
-+#endif
-+#ifdef HAVE_SYS_STAT_H
-+# include <sys/stat.h>
-+#endif
-+#ifdef STDC_HEADERS
-+# include <stdlib.h>
-+# include <stddef.h>
-+#else
-+# ifdef HAVE_STDLIB_H
-+#  include <stdlib.h>
-+# endif
-+#endif
-+#ifdef HAVE_STRING_H
-+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-+#  include <memory.h>
-+# endif
-+# include <string.h>
-+#endif
-+#ifdef HAVE_STRINGS_H
-+# include <strings.h>
-+#endif
-+#ifdef HAVE_INTTYPES_H
-+# include <inttypes.h>
-+#endif
-+#ifdef HAVE_STDINT_H
-+# include <stdint.h>
-+#endif
-+#ifdef HAVE_UNISTD_H
-+# include <unistd.h>
-+#endif"
-+
-+ac_subst_vars='am__EXEEXT_FALSE
-+am__EXEEXT_TRUE
-+LTLIBOBJS
-+LIBOBJS
-+CPP
-+OTOOL64
-+OTOOL
-+LIPO
-+NMEDIT
-+DSYMUTIL
-+MANIFEST_TOOL
-+RANLIB
-+ac_ct_AR
-+AR
-+DLLTOOL
-+OBJDUMP
-+LN_S
-+NM
-+ac_ct_DUMPBIN
-+DUMPBIN
-+LD
-+FGREP
-+EGREP
-+GREP
-+SED
-+host_os
-+host_vendor
-+host_cpu
-+host
-+build_os
-+build_vendor
-+build_cpu
-+build
-+LIBTOOL
-+GCC_FALSE
-+GCC_TRUE
-+am__fastdepCC_FALSE
-+am__fastdepCC_TRUE
-+CCDEPMODE
-+am__nodep
-+AMDEPBACKSLASH
-+AMDEP_FALSE
-+AMDEP_TRUE
-+am__quote
-+am__include
-+DEPDIR
-+OBJEXT
-+EXEEXT
-+ac_ct_CC
-+CPPFLAGS
-+LDFLAGS
-+CFLAGS
-+CC
-+DEBUG_FALSE
-+DEBUG_TRUE
-+AM_BACKSLASH
-+AM_DEFAULT_VERBOSITY
-+AM_DEFAULT_V
-+AM_V
-+am__untar
-+am__tar
-+AMTAR
-+am__leading_dot
-+SET_MAKE
-+AWK
-+mkdir_p
-+MKDIR_P
-+INSTALL_STRIP_PROGRAM
-+STRIP
-+install_sh
-+MAKEINFO
-+AUTOHEADER
-+AUTOMAKE
-+AUTOCONF
-+ACLOCAL
-+VERSION
-+PACKAGE
-+CYGPATH_W
-+am__isrc
-+INSTALL_DATA
-+INSTALL_SCRIPT
-+INSTALL_PROGRAM
-+target_alias
-+host_alias
-+build_alias
-+LIBS
-+ECHO_T
-+ECHO_N
-+ECHO_C
-+DEFS
-+mandir
-+localedir
-+libdir
-+psdir
-+pdfdir
-+dvidir
-+htmldir
-+infodir
-+docdir
-+oldincludedir
-+includedir
-+localstatedir
-+sharedstatedir
-+sysconfdir
-+datadir
-+datarootdir
-+libexecdir
-+sbindir
-+bindir
-+program_transform_name
-+prefix
-+exec_prefix
-+PACKAGE_URL
-+PACKAGE_BUGREPORT
-+PACKAGE_STRING
-+PACKAGE_VERSION
-+PACKAGE_TARNAME
-+PACKAGE_NAME
-+PATH_SEPARATOR
-+SHELL'
-+ac_subst_files=''
-+ac_user_opts='
-+enable_option_checking
-+enable_silent_rules
-+enable_debug
-+enable_dependency_tracking
-+enable_shared
-+enable_static
-+with_pic
-+enable_fast_install
-+with_gnu_ld
-+with_sysroot
-+enable_libtool_lock
-+enable_largefile
-+'
-+      ac_precious_vars='build_alias
-+host_alias
-+target_alias
-+CC
-+CFLAGS
-+LDFLAGS
-+LIBS
-+CPPFLAGS
-+CPP'
-+
-+
-+# Initialize some variables set by options.
-+ac_init_help=
-+ac_init_version=false
-+ac_unrecognized_opts=
-+ac_unrecognized_sep=
-+# The variables have the same names as the options, with
-+# dashes changed to underlines.
-+cache_file=/dev/null
-+exec_prefix=NONE
-+no_create=
-+no_recursion=
-+prefix=NONE
-+program_prefix=NONE
-+program_suffix=NONE
-+program_transform_name=s,x,x,
-+silent=
-+site=
-+srcdir=
-+verbose=
-+x_includes=NONE
-+x_libraries=NONE
-+
-+# Installation directory options.
-+# These are left unexpanded so users can "make install exec_prefix=/foo"
-+# and all the variables that are supposed to be based on exec_prefix
-+# by default will actually change.
-+# Use braces instead of parens because sh, perl, etc. also accept them.
-+# (The list follows the same order as the GNU Coding Standards.)
-+bindir='${exec_prefix}/bin'
-+sbindir='${exec_prefix}/sbin'
-+libexecdir='${exec_prefix}/libexec'
-+datarootdir='${prefix}/share'
-+datadir='${datarootdir}'
-+sysconfdir='${prefix}/etc'
-+sharedstatedir='${prefix}/com'
-+localstatedir='${prefix}/var'
-+includedir='${prefix}/include'
-+oldincludedir='/usr/include'
-+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-+infodir='${datarootdir}/info'
-+htmldir='${docdir}'
-+dvidir='${docdir}'
-+pdfdir='${docdir}'
-+psdir='${docdir}'
-+libdir='${exec_prefix}/lib'
-+localedir='${datarootdir}/locale'
-+mandir='${datarootdir}/man'
-+
-+ac_prev=
-+ac_dashdash=
-+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=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-+  *=)   ac_optarg= ;;
-+  *)    ac_optarg=yes ;;
-+  esac
-+
-+  # Accept the important Cygnus configure options, so we can diagnose typos.
-+
-+  case $ac_dashdash$ac_option in
-+  --)
-+    ac_dashdash=yes ;;
-+
-+  -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_alias ;;
-+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-+    build_alias=$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 ;;
-+
-+  --config-cache | -C)
-+    cache_file=config.cache ;;
-+
-+  -datadir | --datadir | --datadi | --datad)
-+    ac_prev=datadir ;;
-+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-+    datadir=$ac_optarg ;;
-+
-+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-+  | --dataroo | --dataro | --datar)
-+    ac_prev=datarootdir ;;
-+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-+    datarootdir=$ac_optarg ;;
-+
-+  -disable-* | --disable-*)
-+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-+    # Reject names that are not valid shell variable names.
-+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-+      as_fn_error $? "invalid feature name: $ac_useropt"
-+    ac_useropt_orig=$ac_useropt
-+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-+    case $ac_user_opts in
-+      *"
-+"enable_$ac_useropt"
-+"*) ;;
-+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-+	 ac_unrecognized_sep=', ';;
-+    esac
-+    eval enable_$ac_useropt=no ;;
-+
-+  -docdir | --docdir | --docdi | --doc | --do)
-+    ac_prev=docdir ;;
-+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-+    docdir=$ac_optarg ;;
-+
-+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-+    ac_prev=dvidir ;;
-+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-+    dvidir=$ac_optarg ;;
-+
-+  -enable-* | --enable-*)
-+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-+    # Reject names that are not valid shell variable names.
-+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-+      as_fn_error $? "invalid feature name: $ac_useropt"
-+    ac_useropt_orig=$ac_useropt
-+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-+    case $ac_user_opts in
-+      *"
-+"enable_$ac_useropt"
-+"*) ;;
-+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-+	 ac_unrecognized_sep=', ';;
-+    esac
-+    eval enable_$ac_useropt=\$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 | -h)
-+    ac_init_help=long ;;
-+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-+    ac_init_help=recursive ;;
-+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-+    ac_init_help=short ;;
-+
-+  -host | --host | --hos | --ho)
-+    ac_prev=host_alias ;;
-+  -host=* | --host=* | --hos=* | --ho=*)
-+    host_alias=$ac_optarg ;;
-+
-+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-+    ac_prev=htmldir ;;
-+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-+  | --ht=*)
-+    htmldir=$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 ;;
-+
-+  -localedir | --localedir | --localedi | --localed | --locale)
-+    ac_prev=localedir ;;
-+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-+    localedir=$ac_optarg ;;
-+
-+  -localstatedir | --localstatedir | --localstatedi | --localstated \
-+  | --localstate | --localstat | --localsta | --localst | --locals)
-+    ac_prev=localstatedir ;;
-+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-+    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 | -n)
-+    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 ;;
-+
-+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-+    ac_prev=pdfdir ;;
-+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-+    pdfdir=$ac_optarg ;;
-+
-+  -psdir | --psdir | --psdi | --psd | --ps)
-+    ac_prev=psdir ;;
-+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-+    psdir=$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_alias ;;
-+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-+    target_alias=$ac_optarg ;;
-+
-+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-+    verbose=yes ;;
-+
-+  -version | --version | --versio | --versi | --vers | -V)
-+    ac_init_version=: ;;
-+
-+  -with-* | --with-*)
-+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-+    # Reject names that are not valid shell variable names.
-+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-+      as_fn_error $? "invalid package name: $ac_useropt"
-+    ac_useropt_orig=$ac_useropt
-+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-+    case $ac_user_opts in
-+      *"
-+"with_$ac_useropt"
-+"*) ;;
-+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-+	 ac_unrecognized_sep=', ';;
-+    esac
-+    eval with_$ac_useropt=\$ac_optarg ;;
-+
-+  -without-* | --without-*)
-+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-+    # Reject names that are not valid shell variable names.
-+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-+      as_fn_error $? "invalid package name: $ac_useropt"
-+    ac_useropt_orig=$ac_useropt
-+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-+    case $ac_user_opts in
-+      *"
-+"with_$ac_useropt"
-+"*) ;;
-+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-+	 ac_unrecognized_sep=', ';;
-+    esac
-+    eval with_$ac_useropt=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 ;;
-+
-+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-+Try \`$0 --help' for more information"
-+    ;;
-+
-+  *=*)
-+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-+    # Reject names that are not valid shell variable names.
-+    case $ac_envvar in #(
-+      '' | [0-9]* | *[!_$as_cr_alnum]* )
-+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-+    esac
-+    eval $ac_envvar=\$ac_optarg
-+    export $ac_envvar ;;
-+
-+  *)
-+    # FIXME: should be removed in autoconf 3.0.
-+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
-+    ;;
-+
-+  esac
-+done
-+
-+if test -n "$ac_prev"; then
-+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-+  as_fn_error $? "missing argument to $ac_option"
-+fi
-+
-+if test -n "$ac_unrecognized_opts"; then
-+  case $enable_option_checking in
-+    no) ;;
-+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-+  esac
-+fi
-+
-+# Check all directory arguments for consistency.
-+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-+		datadir sysconfdir sharedstatedir localstatedir includedir \
-+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-+		libdir localedir mandir
-+do
-+  eval ac_val=\$$ac_var
-+  # Remove trailing slashes.
-+  case $ac_val in
-+    */ )
-+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-+      eval $ac_var=\$ac_val;;
-+  esac
-+  # Be sure to have absolute directory names.
-+  case $ac_val in
-+    [\\/$]* | ?:[\\/]* )  continue;;
-+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-+  esac
-+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-+done
-+
-+# There might be people who depend on the old broken behavior: `$host'
-+# used to hold the argument of --host etc.
-+# FIXME: To remove some day.
-+build=$build_alias
-+host=$host_alias
-+target=$target_alias
-+
-+# FIXME: To remove some day.
-+if test "x$host_alias" != x; then
-+  if test "x$build_alias" = x; then
-+    cross_compiling=maybe
-+    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-+    If a cross compiler is detected then cross compile mode will be used" >&2
-+  elif test "x$build_alias" != "x$host_alias"; then
-+    cross_compiling=yes
-+  fi
-+fi
-+
-+ac_tool_prefix=
-+test -n "$host_alias" && ac_tool_prefix=$host_alias-
-+
-+test "$silent" = yes && exec 6>/dev/null
-+
-+
-+ac_pwd=`pwd` && test -n "$ac_pwd" &&
-+ac_ls_di=`ls -di .` &&
-+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-+  as_fn_error $? "working directory cannot be determined"
-+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-+  as_fn_error $? "pwd does not report name of working directory"
-+
-+
-+# 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 the parent directory.
-+  ac_confdir=`$as_dirname -- "$as_myself" ||
-+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+	 X"$as_myself" : 'X\(//\)[^/]' \| \
-+	 X"$as_myself" : 'X\(//\)$' \| \
-+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X"$as_myself" |
-+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)[^/].*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`
-+  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
-+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-+fi
-+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-+ac_abs_confdir=`(
-+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-+	pwd)`
-+# When building in place, set srcdir=.
-+if test "$ac_abs_confdir" = "$ac_pwd"; then
-+  srcdir=.
-+fi
-+# Remove unnecessary trailing slashes from srcdir.
-+# Double slashes in file names in object file debugging info
-+# mess up M-x gdb in Emacs.
-+case $srcdir in
-+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-+esac
-+for ac_var in $ac_precious_vars; do
-+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-+  eval ac_env_${ac_var}_value=\$${ac_var}
-+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-+done
-+
-+#
-+# Report the --help message.
-+#
-+if test "$ac_init_help" = "long"; then
-+  # 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 <<_ACEOF
-+\`configure' configures libmspack 0.4alpha to adapt to many kinds of systems.
-+
-+Usage: $0 [OPTION]... [VAR=VALUE]...
-+
-+To assign environment variables (e.g., CC, CFLAGS...), specify them as
-+VAR=VALUE.  See below for descriptions of some of the useful variables.
-+
-+Defaults for the options are specified in brackets.
-+
-+Configuration:
-+  -h, --help              display this help and exit
-+      --help=short        display options specific to this package
-+      --help=recursive    display the short help of all the included packages
-+  -V, --version           display version information and exit
-+  -q, --quiet, --silent   do not print \`checking ...' messages
-+      --cache-file=FILE   cache test results in FILE [disabled]
-+  -C, --config-cache      alias for \`--cache-file=config.cache'
-+  -n, --no-create         do not create output files
-+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-+
-+Installation directories:
-+  --prefix=PREFIX         install architecture-independent files in PREFIX
-+                          [$ac_default_prefix]
-+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-+                          [PREFIX]
-+
-+By default, \`make install' will install all the files in
-+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-+for instance \`--prefix=\$HOME'.
-+
-+For better control, use the options below.
-+
-+Fine tuning of the installation directories:
-+  --bindir=DIR            user executables [EPREFIX/bin]
-+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-+  --libexecdir=DIR        program executables [EPREFIX/libexec]
-+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-+  --libdir=DIR            object code libraries [EPREFIX/lib]
-+  --includedir=DIR        C header files [PREFIX/include]
-+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-+  --infodir=DIR           info documentation [DATAROOTDIR/info]
-+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-+  --mandir=DIR            man documentation [DATAROOTDIR/man]
-+  --docdir=DIR            documentation root [DATAROOTDIR/doc/libmspack]
-+  --htmldir=DIR           html documentation [DOCDIR]
-+  --dvidir=DIR            dvi documentation [DOCDIR]
-+  --pdfdir=DIR            pdf documentation [DOCDIR]
-+  --psdir=DIR             ps documentation [DOCDIR]
-+_ACEOF
-+
-+  cat <<\_ACEOF
-+
-+Program names:
-+  --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
-+
-+System types:
-+  --build=BUILD     configure for building on BUILD [guessed]
-+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-+_ACEOF
-+fi
-+
-+if test -n "$ac_init_help"; then
-+  case $ac_init_help in
-+     short | recursive ) echo "Configuration of libmspack 0.4alpha:";;
-+   esac
-+  cat <<\_ACEOF
-+
-+Optional Features:
-+  --disable-option-checking  ignore unrecognized --enable/--with options
-+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-+  --enable-silent-rules          less verbose build output (undo: `make V=1')
-+  --disable-silent-rules         verbose build output (undo: `make V=0')
-+  --enable-debug          enable debugging
-+  --disable-dependency-tracking  speeds up one-time build
-+  --enable-dependency-tracking   do not reject slow dependency extractors
-+  --enable-shared[=PKGS]  build shared libraries [default=yes]
-+  --enable-static[=PKGS]  build static libraries [default=yes]
-+  --enable-fast-install[=PKGS]
-+                          optimize for fast installation [default=yes]
-+  --disable-libtool-lock  avoid locking (might break parallel builds)
-+  --disable-largefile     omit support for large files
-+
-+Optional Packages:
-+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
-+                          both]
-+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-+  --with-sysroot=DIR Search for dependent libraries within DIR
-+                        (or the compiler's sysroot if not specified).
-+
-+Some influential environment variables:
-+  CC          C compiler command
-+  CFLAGS      C compiler flags
-+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-+              nonstandard directory <lib dir>
-+  LIBS        libraries to pass to the linker, e.g. -l<library>
-+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-+              you have headers in a nonstandard directory <include dir>
-+  CPP         C preprocessor
-+
-+Use these variables to override the choices made by `configure' or to help
-+it to find libraries and programs with nonstandard names/locations.
-+
-+Report bugs to <kyzer at 4u.net>.
-+_ACEOF
-+ac_status=$?
-+fi
-+
-+if test "$ac_init_help" = "recursive"; then
-+  # If there are subdirs, report their specific --help.
-+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-+    test -d "$ac_dir" ||
-+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-+      continue
-+    ac_builddir=.
-+
-+case "$ac_dir" in
-+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-+*)
-+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-+  # A ".." for each directory in $ac_dir_suffix.
-+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-+  case $ac_top_builddir_sub in
-+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-+  esac ;;
-+esac
-+ac_abs_top_builddir=$ac_pwd
-+ac_abs_builddir=$ac_pwd$ac_dir_suffix
-+# for backward compatibility:
-+ac_top_builddir=$ac_top_build_prefix
-+
-+case $srcdir in
-+  .)  # We are building in place.
-+    ac_srcdir=.
-+    ac_top_srcdir=$ac_top_builddir_sub
-+    ac_abs_top_srcdir=$ac_pwd ;;
-+  [\\/]* | ?:[\\/]* )  # Absolute name.
-+    ac_srcdir=$srcdir$ac_dir_suffix;
-+    ac_top_srcdir=$srcdir
-+    ac_abs_top_srcdir=$srcdir ;;
-+  *) # Relative name.
-+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-+    ac_top_srcdir=$ac_top_build_prefix$srcdir
-+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-+esac
-+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-+
-+    cd "$ac_dir" || { ac_status=$?; continue; }
-+    # Check for guested configure.
-+    if test -f "$ac_srcdir/configure.gnu"; then
-+      echo &&
-+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-+    elif test -f "$ac_srcdir/configure"; then
-+      echo &&
-+      $SHELL "$ac_srcdir/configure" --help=recursive
-+    else
-+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-+    fi || ac_status=$?
-+    cd "$ac_pwd" || { ac_status=$?; break; }
-+  done
-+fi
-+
-+test -n "$ac_init_help" && exit $ac_status
-+if $ac_init_version; then
-+  cat <<\_ACEOF
-+libmspack configure 0.4alpha
-+generated by GNU Autoconf 2.68
-+
-+Copyright (C) 2010 Free Software Foundation, Inc.
-+This configure script is free software; the Free Software Foundation
-+gives unlimited permission to copy, distribute and modify it.
-+_ACEOF
-+  exit
-+fi
-+
-+## ------------------------ ##
-+## Autoconf initialization. ##
-+## ------------------------ ##
-+
-+# ac_fn_c_try_compile LINENO
-+# --------------------------
-+# Try to compile conftest.$ac_ext, and return whether this succeeded.
-+ac_fn_c_try_compile ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  rm -f conftest.$ac_objext
-+  if { { ac_try="$ac_compile"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_compile") 2>conftest.err
-+  ac_status=$?
-+  if test -s conftest.err; then
-+    grep -v '^ *+' conftest.err >conftest.er1
-+    cat conftest.er1 >&5
-+    mv -f conftest.er1 conftest.err
-+  fi
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest.$ac_objext; then :
-+  ac_retval=0
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_retval=1
-+fi
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+  as_fn_set_status $ac_retval
-+
-+} # ac_fn_c_try_compile
-+
-+# ac_fn_c_try_link LINENO
-+# -----------------------
-+# Try to link conftest.$ac_ext, and return whether this succeeded.
-+ac_fn_c_try_link ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  rm -f conftest.$ac_objext conftest$ac_exeext
-+  if { { ac_try="$ac_link"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_link") 2>conftest.err
-+  ac_status=$?
-+  if test -s conftest.err; then
-+    grep -v '^ *+' conftest.err >conftest.er1
-+    cat conftest.er1 >&5
-+    mv -f conftest.er1 conftest.err
-+  fi
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then :
-+  ac_retval=0
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_retval=1
-+fi
-+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-+  # interfere with the next link command; also delete a directory that is
-+  # left behind by Apple's compiler.  We do this before executing the actions.
-+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+  as_fn_set_status $ac_retval
-+
-+} # ac_fn_c_try_link
-+
-+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-+# -------------------------------------------------------
-+# Tests whether HEADER exists and can be compiled using the include files in
-+# INCLUDES, setting the cache variable VAR accordingly.
-+ac_fn_c_check_header_compile ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-+$as_echo_n "checking for $2... " >&6; }
-+if eval \${$3+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+#include <$2>
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  eval "$3=yes"
-+else
-+  eval "$3=no"
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+eval ac_res=\$$3
-+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+
-+} # ac_fn_c_check_header_compile
-+
-+# ac_fn_c_try_cpp LINENO
-+# ----------------------
-+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-+ac_fn_c_try_cpp ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  if { { ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-+  ac_status=$?
-+  if test -s conftest.err; then
-+    grep -v '^ *+' conftest.err >conftest.er1
-+    cat conftest.er1 >&5
-+    mv -f conftest.er1 conftest.err
-+  fi
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } > conftest.i && {
-+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       }; then :
-+  ac_retval=0
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+    ac_retval=1
-+fi
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+  as_fn_set_status $ac_retval
-+
-+} # ac_fn_c_try_cpp
-+
-+# ac_fn_c_try_run LINENO
-+# ----------------------
-+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-+# that executables *can* be run.
-+ac_fn_c_try_run ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  if { { ac_try="$ac_link"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_link") 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-+  { { case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_try") 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; }; then :
-+  ac_retval=0
-+else
-+  $as_echo "$as_me: program exited with status $ac_status" >&5
-+       $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+       ac_retval=$ac_status
-+fi
-+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+  as_fn_set_status $ac_retval
-+
-+} # ac_fn_c_try_run
-+
-+# ac_fn_c_check_func LINENO FUNC VAR
-+# ----------------------------------
-+# Tests whether FUNC exists, setting the cache variable VAR accordingly
-+ac_fn_c_check_func ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-+$as_echo_n "checking for $2... " >&6; }
-+if eval \${$3+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-+#define $2 innocuous_$2
-+
-+/* System header to define __stub macros and hopefully few prototypes,
-+    which can conflict with char $2 (); below.
-+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-+    <limits.h> exists even on freestanding compilers.  */
-+
-+#ifdef __STDC__
-+# include <limits.h>
-+#else
-+# include <assert.h>
-+#endif
-+
-+#undef $2
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char $2 ();
-+/* 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_$2 || defined __stub___$2
-+choke me
-+#endif
-+
-+int
-+main ()
-+{
-+return $2 ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  eval "$3=yes"
-+else
-+  eval "$3=no"
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+fi
-+eval ac_res=\$$3
-+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+
-+} # ac_fn_c_check_func
-+
-+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-+# -------------------------------------------------------
-+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-+# the include files in INCLUDES and setting the cache variable VAR
-+# accordingly.
-+ac_fn_c_check_header_mongrel ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  if eval \${$3+:} false; then :
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-+$as_echo_n "checking for $2... " >&6; }
-+if eval \${$3+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+fi
-+eval ac_res=\$$3
-+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+else
-+  # Is the header compilable?
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-+$as_echo_n "checking $2 usability... " >&6; }
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+#include <$2>
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_header_compiler=yes
-+else
-+  ac_header_compiler=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-+$as_echo "$ac_header_compiler" >&6; }
-+
-+# Is the header present?
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-+$as_echo_n "checking $2 presence... " >&6; }
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <$2>
-+_ACEOF
-+if ac_fn_c_try_cpp "$LINENO"; then :
-+  ac_header_preproc=yes
-+else
-+  ac_header_preproc=no
-+fi
-+rm -f conftest.err conftest.i conftest.$ac_ext
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-+$as_echo "$ac_header_preproc" >&6; }
-+
-+# So?  What about this header?
-+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-+  yes:no: )
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-+    ;;
-+  no:yes:* )
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-+( $as_echo "## --------------------------- ##
-+## Report this to kyzer at 4u.net ##
-+## --------------------------- ##"
-+     ) | sed "s/^/$as_me: WARNING:     /" >&2
-+    ;;
-+esac
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-+$as_echo_n "checking for $2... " >&6; }
-+if eval \${$3+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  eval "$3=\$ac_header_compiler"
-+fi
-+eval ac_res=\$$3
-+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+fi
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+
-+} # ac_fn_c_check_header_mongrel
-+
-+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-+# -------------------------------------------
-+# Tests whether TYPE exists after having included INCLUDES, setting cache
-+# variable VAR accordingly.
-+ac_fn_c_check_type ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-+$as_echo_n "checking for $2... " >&6; }
-+if eval \${$3+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  eval "$3=no"
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+int
-+main ()
-+{
-+if (sizeof ($2))
-+	 return 0;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+int
-+main ()
-+{
-+if (sizeof (($2)))
-+	    return 0;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+
-+else
-+  eval "$3=yes"
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+eval ac_res=\$$3
-+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+
-+} # ac_fn_c_check_type
-+
-+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-+# --------------------------------------------
-+# Tries to find the compile-time value of EXPR in a program that includes
-+# INCLUDES, setting VAR accordingly. Returns whether the value could be
-+# computed
-+ac_fn_c_compute_int ()
-+{
-+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+  if test "$cross_compiling" = yes; then
-+    # Depending upon the size, compute the lo and hi bounds.
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+int
-+main ()
-+{
-+static int test_array [1 - 2 * !(($2) >= 0)];
-+test_array [0] = 0
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_lo=0 ac_mid=0
-+  while :; do
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+int
-+main ()
-+{
-+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-+test_array [0] = 0
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_hi=$ac_mid; break
-+else
-+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
-+			if test $ac_lo -le $ac_mid; then
-+			  ac_lo= ac_hi=
-+			  break
-+			fi
-+			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  done
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+int
-+main ()
-+{
-+static int test_array [1 - 2 * !(($2) < 0)];
-+test_array [0] = 0
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_hi=-1 ac_mid=-1
-+  while :; do
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+int
-+main ()
-+{
-+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-+test_array [0] = 0
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_lo=$ac_mid; break
-+else
-+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
-+			if test $ac_mid -le $ac_hi; then
-+			  ac_lo= ac_hi=
-+			  break
-+			fi
-+			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  done
-+else
-+  ac_lo= ac_hi=
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+# Binary search between lo and hi bounds.
-+while test "x$ac_lo" != "x$ac_hi"; do
-+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+int
-+main ()
-+{
-+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-+test_array [0] = 0
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_hi=$ac_mid
-+else
-+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+done
-+case $ac_lo in #((
-+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-+'') ac_retval=1 ;;
-+esac
-+  else
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+$4
-+static long int longval () { return $2; }
-+static unsigned long int ulongval () { return $2; }
-+#include <stdio.h>
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+
-+  FILE *f = fopen ("conftest.val", "w");
-+  if (! f)
-+    return 1;
-+  if (($2) < 0)
-+    {
-+      long int i = longval ();
-+      if (i != ($2))
-+	return 1;
-+      fprintf (f, "%ld", i);
-+    }
-+  else
-+    {
-+      unsigned long int i = ulongval ();
-+      if (i != ($2))
-+	return 1;
-+      fprintf (f, "%lu", i);
-+    }
-+  /* Do not output a trailing newline, as this causes \r\n confusion
-+     on some platforms.  */
-+  return ferror (f) || fclose (f) != 0;
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_run "$LINENO"; then :
-+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-+else
-+  ac_retval=1
-+fi
-+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-+  conftest.$ac_objext conftest.beam conftest.$ac_ext
-+rm -f conftest.val
-+
-+  fi
-+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-+  as_fn_set_status $ac_retval
-+
-+} # ac_fn_c_compute_int
-+cat >config.log <<_ACEOF
-+This file contains any messages produced by compilers while
-+running configure, to aid debugging if configure makes a mistake.
-+
-+It was created by libmspack $as_me 0.4alpha, which was
-+generated by GNU Autoconf 2.68.  Invocation command line was
-+
-+  $ $0 $@
-+
-+_ACEOF
-+exec 5>>config.log
-+{
-+cat <<_ASUNAME
-+## --------- ##
-+## Platform. ##
-+## --------- ##
-+
-+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-+uname -m = `(uname -m) 2>/dev/null || echo unknown`
-+uname -r = `(uname -r) 2>/dev/null || echo unknown`
-+uname -s = `(uname -s) 2>/dev/null || echo unknown`
-+uname -v = `(uname -v) 2>/dev/null || echo unknown`
-+
-+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-+
-+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-+
-+_ASUNAME
-+
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    $as_echo "PATH: $as_dir"
-+  done
-+IFS=$as_save_IFS
-+
-+} >&5
-+
-+cat >&5 <<_ACEOF
-+
-+
-+## ----------- ##
-+## Core tests. ##
-+## ----------- ##
-+
-+_ACEOF
-+
-+
-+# Keep a trace of the command line.
-+# Strip out --no-create and --no-recursion so they do not pile up.
-+# Strip out --silent because we don't want to record it for future runs.
-+# Also quote any args containing shell meta-characters.
-+# Make two passes to allow for proper duplicate-argument suppression.
-+ac_configure_args=
-+ac_configure_args0=
-+ac_configure_args1=
-+ac_must_keep_next=false
-+for ac_pass in 1 2
-+do
-+  for ac_arg
-+  do
-+    case $ac_arg in
-+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-+    | -silent | --silent | --silen | --sile | --sil)
-+      continue ;;
-+    *\'*)
-+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-+    esac
-+    case $ac_pass in
-+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-+    2)
-+      as_fn_append ac_configure_args1 " '$ac_arg'"
-+      if test $ac_must_keep_next = true; then
-+	ac_must_keep_next=false # Got value, back to normal.
-+      else
-+	case $ac_arg in
-+	  *=* | --config-cache | -C | -disable-* | --disable-* \
-+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-+	  | -with-* | --with-* | -without-* | --without-* | --x)
-+	    case "$ac_configure_args0 " in
-+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-+	    esac
-+	    ;;
-+	  -* ) ac_must_keep_next=true ;;
-+	esac
-+      fi
-+      as_fn_append ac_configure_args " '$ac_arg'"
-+      ;;
-+    esac
-+  done
-+done
-+{ ac_configure_args0=; unset ac_configure_args0;}
-+{ ac_configure_args1=; unset ac_configure_args1;}
-+
-+# When interrupted or exit'd, cleanup temporary files, and complete
-+# config.log.  We remove comments because anyway the quotes in there
-+# would cause problems or look ugly.
-+# WARNING: Use '\'' to represent an apostrophe within the trap.
-+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-+trap 'exit_status=$?
-+  # Save into config.log some information that might help in debugging.
-+  {
-+    echo
-+
-+    $as_echo "## ---------------- ##
-+## Cache variables. ##
-+## ---------------- ##"
-+    echo
-+    # The following way of writing the cache mishandles newlines in values,
-+(
-+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-+    eval ac_val=\$$ac_var
-+    case $ac_val in #(
-+    *${as_nl}*)
-+      case $ac_var in #(
-+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-+      esac
-+      case $ac_var in #(
-+      _ | IFS | as_nl) ;; #(
-+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-+      *) { eval $ac_var=; unset $ac_var;} ;;
-+      esac ;;
-+    esac
-+  done
-+  (set) 2>&1 |
-+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-+    *${as_nl}ac_space=\ *)
-+      sed -n \
-+	"s/'\''/'\''\\\\'\'''\''/g;
-+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-+      ;; #(
-+    *)
-+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-+      ;;
-+    esac |
-+    sort
-+)
-+    echo
-+
-+    $as_echo "## ----------------- ##
-+## Output variables. ##
-+## ----------------- ##"
-+    echo
-+    for ac_var in $ac_subst_vars
-+    do
-+      eval ac_val=\$$ac_var
-+      case $ac_val in
-+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-+      esac
-+      $as_echo "$ac_var='\''$ac_val'\''"
-+    done | sort
-+    echo
-+
-+    if test -n "$ac_subst_files"; then
-+      $as_echo "## ------------------- ##
-+## File substitutions. ##
-+## ------------------- ##"
-+      echo
-+      for ac_var in $ac_subst_files
-+      do
-+	eval ac_val=\$$ac_var
-+	case $ac_val in
-+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-+	esac
-+	$as_echo "$ac_var='\''$ac_val'\''"
-+      done | sort
-+      echo
-+    fi
-+
-+    if test -s confdefs.h; then
-+      $as_echo "## ----------- ##
-+## confdefs.h. ##
-+## ----------- ##"
-+      echo
-+      cat confdefs.h
-+      echo
-+    fi
-+    test "$ac_signal" != 0 &&
-+      $as_echo "$as_me: caught signal $ac_signal"
-+    $as_echo "$as_me: exit $exit_status"
-+  } >&5
-+  rm -f core *.core core.conftest.* &&
-+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-+    exit $exit_status
-+' 0
-+for ac_signal in 1 2 13 15; do
-+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-+done
-+ac_signal=0
-+
-+# confdefs.h avoids OS command line length limits that DEFS can exceed.
-+rm -f -r conftest* confdefs.h
-+
-+$as_echo "/* confdefs.h */" > confdefs.h
-+
-+# Predefined preprocessor variables.
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_NAME "$PACKAGE_NAME"
-+_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-+_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_VERSION "$PACKAGE_VERSION"
-+_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_STRING "$PACKAGE_STRING"
-+_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-+_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_URL "$PACKAGE_URL"
-+_ACEOF
-+
-+
-+# Let the site file select an alternate cache file if it wants to.
-+# Prefer an explicitly selected file to automatically selected ones.
-+ac_site_file1=NONE
-+ac_site_file2=NONE
-+if test -n "$CONFIG_SITE"; then
-+  # We do not want a PATH search for config.site.
-+  case $CONFIG_SITE in #((
-+    -*)  ac_site_file1=./$CONFIG_SITE;;
-+    */*) ac_site_file1=$CONFIG_SITE;;
-+    *)   ac_site_file1=./$CONFIG_SITE;;
-+  esac
-+elif test "x$prefix" != xNONE; then
-+  ac_site_file1=$prefix/share/config.site
-+  ac_site_file2=$prefix/etc/config.site
-+else
-+  ac_site_file1=$ac_default_prefix/share/config.site
-+  ac_site_file2=$ac_default_prefix/etc/config.site
-+fi
-+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-+do
-+  test "x$ac_site_file" = xNONE && continue
-+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-+    sed 's/^/| /' "$ac_site_file" >&5
-+    . "$ac_site_file" \
-+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error $? "failed to load site script $ac_site_file
-+See \`config.log' for more details" "$LINENO" 5; }
-+  fi
-+done
-+
-+if test -r "$cache_file"; then
-+  # Some versions of bash will fail to source /dev/null (special files
-+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-+$as_echo "$as_me: loading cache $cache_file" >&6;}
-+    case $cache_file in
-+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-+      *)                      . "./$cache_file";;
-+    esac
-+  fi
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-+$as_echo "$as_me: creating cache $cache_file" >&6;}
-+  >$cache_file
-+fi
-+
-+# Check that the precious variables saved in the cache have kept the same
-+# value.
-+ac_cache_corrupted=false
-+for ac_var in $ac_precious_vars; do
-+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-+  eval ac_new_set=\$ac_env_${ac_var}_set
-+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-+  eval ac_new_val=\$ac_env_${ac_var}_value
-+  case $ac_old_set,$ac_new_set in
-+    set,)
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-+      ac_cache_corrupted=: ;;
-+    ,set)
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-+      ac_cache_corrupted=: ;;
-+    ,);;
-+    *)
-+      if test "x$ac_old_val" != "x$ac_new_val"; then
-+	# differences in whitespace do not lead to failure.
-+	ac_old_val_w=`echo x $ac_old_val`
-+	ac_new_val_w=`echo x $ac_new_val`
-+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-+	  ac_cache_corrupted=:
-+	else
-+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-+	  eval $ac_var=\$ac_old_val
-+	fi
-+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-+      fi;;
-+  esac
-+  # Pass precious variables to config.status.
-+  if test "$ac_new_set" = set; then
-+    case $ac_new_val in
-+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-+    *) ac_arg=$ac_var=$ac_new_val ;;
-+    esac
-+    case " $ac_configure_args " in
-+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-+    esac
-+  fi
-+done
-+if $ac_cache_corrupted; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-+fi
-+## -------------------- ##
-+## Main body of script. ##
-+## -------------------- ##
-+
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+
-+am__api_version='1.11'
-+
-+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
-+  elif test -f "$ac_dir/shtool"; then
-+    ac_aux_dir=$ac_dir
-+    ac_install_sh="$ac_aux_dir/shtool install -c"
-+    break
-+  fi
-+done
-+if test -z "$ac_aux_dir"; then
-+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-+fi
-+
-+# These three variables are undocumented and unsupported,
-+# and are intended to be withdrawn in a future Autoconf release.
-+# They can cause serious problems if a builder's source tree is in a directory
-+# whose full name contains unusual characters.
-+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-+
-+
-+# 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
-+# AmigaOS /C/install, which installs bootblocks on floppy discs
-+# 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"
-+# OS/2's system install, which has a completely different semantic
-+# ./install, which can be erroneously created by make from ./install.sh.
-+# Reject install programs that cannot install multiple files.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-+$as_echo_n "checking for a BSD-compatible install... " >&6; }
-+if test -z "$INSTALL"; then
-+if ${ac_cv_path_install+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    # Account for people who put trailing slashes in PATH elements.
-+case $as_dir/ in #((
-+  ./ | .// | /[cC]/* | \
-+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-+  /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
-+      for ac_exec_ext in '' $ac_executable_extensions; do
-+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-+	  if test $ac_prog = install &&
-+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-+	    # AIX install.  It has an incompatible calling convention.
-+	    :
-+	  elif test $ac_prog = install &&
-+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-+	    # program-specific install script used by HP pwplus--don't use.
-+	    :
-+	  else
-+	    rm -rf conftest.one conftest.two conftest.dir
-+	    echo one > conftest.one
-+	    echo two > conftest.two
-+	    mkdir conftest.dir
-+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-+	      test -s conftest.one && test -s conftest.two &&
-+	      test -s conftest.dir/conftest.one &&
-+	      test -s conftest.dir/conftest.two
-+	    then
-+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-+	      break 3
-+	    fi
-+	  fi
-+	fi
-+      done
-+    done
-+    ;;
-+esac
-+
-+  done
-+IFS=$as_save_IFS
-+
-+rm -rf conftest.one conftest.two conftest.dir
-+
-+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.  Don't cache a
-+    # value for INSTALL within a source directory, because that will
-+    # break other packages using the cache if that directory is
-+    # removed, or if the value is a relative name.
-+    INSTALL=$ac_install_sh
-+  fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-+$as_echo "$INSTALL" >&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}'
-+
-+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-+$as_echo_n "checking whether build environment is sane... " >&6; }
-+# Just in case
-+sleep 1
-+echo timestamp > conftest.file
-+# Reject unsafe characters in $srcdir or the absolute working directory
-+# name.  Accept space and tab only in the latter.
-+am_lf='
-+'
-+case `pwd` in
-+  *[\\\"\#\$\&\'\`$am_lf]*)
-+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-+esac
-+case $srcdir in
-+  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-+    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
-+esac
-+
-+# 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" conftest.file 2> /dev/null`
-+   if test "$*" = "X"; then
-+      # -L didn't work.
-+      set X `ls -t "$srcdir/configure" conftest.file`
-+   fi
-+   rm -f conftest.file
-+   if test "$*" != "X $srcdir/configure conftest.file" \
-+      && test "$*" != "X conftest.file $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".
-+      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-+alias in your environment" "$LINENO" 5
-+   fi
-+
-+   test "$2" = conftest.file
-+   )
-+then
-+   # Ok.
-+   :
-+else
-+   as_fn_error $? "newly created file is older than distributed files!
-+Check your system clock" "$LINENO" 5
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+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"
-+# Double any \ or $.
-+# By default was `s,x,x', remove it if useless.
-+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-+
-+# expand $ac_aux_dir to an absolute path
-+am_aux_dir=`cd $ac_aux_dir && pwd`
-+
-+if test x"${MISSING+set}" != xset; then
-+  case $am_aux_dir in
-+  *\ * | *\	*)
-+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-+  *)
-+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-+  esac
-+fi
-+# Use eval to expand $SHELL
-+if eval "$MISSING --run true"; then
-+  am_missing_run="$MISSING --run "
-+else
-+  am_missing_run=
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-+fi
-+
-+if test x"${install_sh}" != xset; then
-+  case $am_aux_dir in
-+  *\ * | *\	*)
-+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-+  *)
-+    install_sh="\${SHELL} $am_aux_dir/install-sh"
-+  esac
-+fi
-+
-+# Installed binaries are usually stripped using `strip' when the user
-+# run `make install-strip'.  However `strip' might not be the right
-+# tool to use in cross-compilation environments, therefore Automake
-+# will honor the `STRIP' environment variable to overrule this program.
-+if test "$cross_compiling" != no; then
-+  if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}strip; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_STRIP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$STRIP"; then
-+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+STRIP=$ac_cv_prog_STRIP
-+if test -n "$STRIP"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-+$as_echo "$STRIP" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_STRIP"; then
-+  ac_ct_STRIP=$STRIP
-+  # Extract the first word of "strip", so it can be a program name with args.
-+set dummy strip; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_STRIP"; then
-+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_STRIP="strip"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-+if test -n "$ac_ct_STRIP"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-+$as_echo "$ac_ct_STRIP" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_STRIP" = x; then
-+    STRIP=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    STRIP=$ac_ct_STRIP
-+  fi
-+else
-+  STRIP="$ac_cv_prog_STRIP"
-+fi
-+
-+fi
-+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-+if test -z "$MKDIR_P"; then
-+  if ${ac_cv_path_mkdir+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_prog in mkdir gmkdir; do
-+	 for ac_exec_ext in '' $ac_executable_extensions; do
-+	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
-+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-+	     'mkdir (GNU coreutils) '* | \
-+	     'mkdir (coreutils) '* | \
-+	     'mkdir (fileutils) '4.1*)
-+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-+	       break 3;;
-+	   esac
-+	 done
-+       done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+
-+  test -d ./--version && rmdir ./--version
-+  if test "${ac_cv_path_mkdir+set}" = set; then
-+    MKDIR_P="$ac_cv_path_mkdir -p"
-+  else
-+    # As a last resort, use the slow shell script.  Don't cache a
-+    # value for MKDIR_P within a source directory, because that will
-+    # break other packages using the cache if that directory is
-+    # removed, or if the value is a relative name.
-+    MKDIR_P="$ac_install_sh -d"
-+  fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-+$as_echo "$MKDIR_P" >&6; }
-+
-+mkdir_p="$MKDIR_P"
-+case $mkdir_p in
-+  [\\/$]* | ?:[\\/]*) ;;
-+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-+esac
-+
-+for ac_prog in gawk mawk 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
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_AWK+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$AWK"; then
-+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_AWK="$ac_prog"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+AWK=$ac_cv_prog_AWK
-+if test -n "$AWK"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-+$as_echo "$AWK" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+  test -n "$AWK" && break
-+done
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-+set x ${MAKE-make}
-+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat >conftest.make <<\_ACEOF
-+SHELL = /bin/sh
-+all:
-+	@echo '@@@%%%=$(MAKE)=@@@%%%'
-+_ACEOF
-+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-+case `${MAKE-make} -f conftest.make 2>/dev/null` in
-+  *@@@%%%=?*=@@@%%%*)
-+    eval ac_cv_prog_make_${ac_make}_set=yes;;
-+  *)
-+    eval ac_cv_prog_make_${ac_make}_set=no;;
-+esac
-+rm -f conftest.make
-+fi
-+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+  SET_MAKE=
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+  SET_MAKE="MAKE=${MAKE-make}"
-+fi
-+
-+rm -rf .tst 2>/dev/null
-+mkdir .tst 2>/dev/null
-+if test -d .tst; then
-+  am__leading_dot=.
-+else
-+  am__leading_dot=_
-+fi
-+rmdir .tst 2>/dev/null
-+
-+if test "`cd $srcdir && pwd`" != "`pwd`"; then
-+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-+  # is not polluted with repeated "-I."
-+  am__isrc=' -I$(srcdir)'
-+  # test to see if srcdir already configured
-+  if test -f $srcdir/config.status; then
-+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
-+  fi
-+fi
-+
-+# test whether we have cygpath
-+if test -z "$CYGPATH_W"; then
-+  if (cygpath --version) >/dev/null 2>/dev/null; then
-+    CYGPATH_W='cygpath -w'
-+  else
-+    CYGPATH_W=echo
-+  fi
-+fi
-+
-+
-+# Define the identity of the package.
-+ PACKAGE='libmspack'
-+ VERSION='0.4alpha'
-+
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE "$PACKAGE"
-+_ACEOF
-+
-+
-+cat >>confdefs.h <<_ACEOF
-+#define VERSION "$VERSION"
-+_ACEOF
-+
-+# Some tools Automake needs.
-+
-+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-+
-+
-+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-+
-+
-+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-+
-+
-+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-+
-+
-+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-+
-+# We need awk for the "check" target.  The system "awk" is bad on
-+# some platforms.
-+# Always define AMTAR for backward compatibility.  Yes, it's still used
-+# in the wild :-(  We should find a proper way to deprecate it ...
-+AMTAR='$${TAR-tar}'
-+
-+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-+
-+
-+
-+
-+
-+
-+ac_config_headers="$ac_config_headers config.h"
-+
-+
-+# Check whether --enable-silent-rules was given.
-+if test "${enable_silent_rules+set}" = set; then :
-+  enableval=$enable_silent_rules;
-+fi
-+
-+case $enable_silent_rules in
-+yes) AM_DEFAULT_VERBOSITY=0;;
-+no)  AM_DEFAULT_VERBOSITY=1;;
-+*)   AM_DEFAULT_VERBOSITY=0;;
-+esac
-+am_make=${MAKE-make}
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-+if ${am_cv_make_support_nested_variables+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if $as_echo 'TRUE=$(BAR$(V))
-+BAR0=false
-+BAR1=true
-+V=1
-+am__doit:
-+	@$(TRUE)
-+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
-+  am_cv_make_support_nested_variables=yes
-+else
-+  am_cv_make_support_nested_variables=no
-+fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-+$as_echo "$am_cv_make_support_nested_variables" >&6; }
-+if test $am_cv_make_support_nested_variables = yes; then
-+    AM_V='$(V)'
-+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-+else
-+  AM_V=$AM_DEFAULT_VERBOSITY
-+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-+fi
-+AM_BACKSLASH='\'
-+
-+
-+# --enable-debug option
-+# Check whether --enable-debug was given.
-+if test "${enable_debug+set}" = set; then :
-+  enableval=$enable_debug; enable_debug=$enableval
-+else
-+  enable_debug=no
-+fi
-+
-+if test x$enable_debug = xyes; then
-+
-+$as_echo "#define DEBUG 1" >>confdefs.h
-+
-+fi
-+ if test x$enable_debug = 'xyes'; then
-+  DEBUG_TRUE=
-+  DEBUG_FALSE='#'
-+else
-+  DEBUG_TRUE='#'
-+  DEBUG_FALSE=
-+fi
-+
-+
-+# Checks for programs.
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}gcc; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_CC+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$CC"; then
-+  ac_cv_prog_CC="$CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+CC=$ac_cv_prog_CC
-+if test -n "$CC"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-+$as_echo "$CC" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_CC"; then
-+  ac_ct_CC=$CC
-+  # Extract the first word of "gcc", so it can be a program name with args.
-+set dummy gcc; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_CC+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_CC"; then
-+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_CC="gcc"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_CC=$ac_cv_prog_ac_ct_CC
-+if test -n "$ac_ct_CC"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-+$as_echo "$ac_ct_CC" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_CC" = x; then
-+    CC=""
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    CC=$ac_ct_CC
-+  fi
-+else
-+  CC="$ac_cv_prog_CC"
-+fi
-+
-+if test -z "$CC"; then
-+          if test -n "$ac_tool_prefix"; then
-+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}cc; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_CC+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$CC"; then
-+  ac_cv_prog_CC="$CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_CC="${ac_tool_prefix}cc"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+CC=$ac_cv_prog_CC
-+if test -n "$CC"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-+$as_echo "$CC" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+  fi
-+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
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_CC+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$CC"; then
-+  ac_cv_prog_CC="$CC" # Let the user override the test.
-+else
-+  ac_prog_rejected=no
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-+       ac_prog_rejected=yes
-+       continue
-+     fi
-+    ac_cv_prog_CC="cc"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_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 $# != 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
-+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-+  fi
-+fi
-+fi
-+fi
-+CC=$ac_cv_prog_CC
-+if test -n "$CC"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-+$as_echo "$CC" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$CC"; then
-+  if test -n "$ac_tool_prefix"; then
-+  for ac_prog in cl.exe
-+  do
-+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_CC+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$CC"; then
-+  ac_cv_prog_CC="$CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+CC=$ac_cv_prog_CC
-+if test -n "$CC"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-+$as_echo "$CC" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+    test -n "$CC" && break
-+  done
-+fi
-+if test -z "$CC"; then
-+  ac_ct_CC=$CC
-+  for ac_prog in cl.exe
-+do
-+  # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_CC+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_CC"; then
-+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_CC="$ac_prog"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_CC=$ac_cv_prog_ac_ct_CC
-+if test -n "$ac_ct_CC"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-+$as_echo "$ac_ct_CC" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+  test -n "$ac_ct_CC" && break
-+done
-+
-+  if test "x$ac_ct_CC" = x; then
-+    CC=""
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    CC=$ac_ct_CC
-+  fi
-+fi
-+
-+fi
-+
-+
-+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error $? "no acceptable C compiler found in \$PATH
-+See \`config.log' for more details" "$LINENO" 5; }
-+
-+# Provide some information about the compiler.
-+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-+set X $ac_compile
-+ac_compiler=$2
-+for ac_option in --version -v -V -qversion; do
-+  { { ac_try="$ac_compiler $ac_option >&5"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-+  ac_status=$?
-+  if test -s conftest.err; then
-+    sed '10a\
-+... rest of stderr output deleted ...
-+         10q' conftest.err >conftest.er1
-+    cat conftest.er1 >&5
-+  fi
-+  rm -f conftest.er1 conftest.err
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }
-+done
-+
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+ac_clean_files_save=$ac_clean_files
-+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-+# Try to create an executable without -o first, disregard a.out.
-+# It will help us diagnose broken compilers, and finding out an intuition
-+# of exeext.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-+$as_echo_n "checking whether the C compiler works... " >&6; }
-+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-+
-+# The possible output files:
-+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-+
-+ac_rmfiles=
-+for ac_file in $ac_files
-+do
-+  case $ac_file in
-+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-+  esac
-+done
-+rm -f $ac_rmfiles
-+
-+if { { ac_try="$ac_link_default"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_link_default") 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; then :
-+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-+# so that the user can short-circuit this test for compilers unknown to
-+# Autoconf.
-+for ac_file in $ac_files ''
-+do
-+  test -f "$ac_file" || continue
-+  case $ac_file in
-+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-+	;;
-+    [ab].out )
-+	# We found the default executable, but exeext='' is most
-+	# certainly right.
-+	break;;
-+    *.* )
-+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-+	then :; else
-+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-+	fi
-+	# We set ac_cv_exeext here because the later test for it is not
-+	# safe: cross compilers may not add the suffix if given an `-o'
-+	# argument, so we may need to know it at that point already.
-+	# Even if this section looks crufty: it has the advantage of
-+	# actually working.
-+	break;;
-+    * )
-+	break;;
-+  esac
-+done
-+test "$ac_cv_exeext" = no && ac_cv_exeext=
-+
-+else
-+  ac_file=''
-+fi
-+if test -z "$ac_file"; then :
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+$as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error 77 "C compiler cannot create executables
-+See \`config.log' for more details" "$LINENO" 5; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-+$as_echo_n "checking for C compiler default output file name... " >&6; }
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-+$as_echo "$ac_file" >&6; }
-+ac_exeext=$ac_cv_exeext
-+
-+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-+ac_clean_files=$ac_clean_files_save
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-+$as_echo_n "checking for suffix of executables... " >&6; }
-+if { { ac_try="$ac_link"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_link") 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; then :
-+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-+# work properly (i.e., refer to `conftest.exe'), while it won't with
-+# `rm'.
-+for ac_file in conftest.exe conftest conftest.*; do
-+  test -f "$ac_file" || continue
-+  case $ac_file in
-+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-+	  break;;
-+    * ) break;;
-+  esac
-+done
-+else
-+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-+See \`config.log' for more details" "$LINENO" 5; }
-+fi
-+rm -f conftest conftest$ac_cv_exeext
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-+$as_echo "$ac_cv_exeext" >&6; }
-+
-+rm -f conftest.$ac_ext
-+EXEEXT=$ac_cv_exeext
-+ac_exeext=$EXEEXT
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdio.h>
-+int
-+main ()
-+{
-+FILE *f = fopen ("conftest.out", "w");
-+ return ferror (f) || fclose (f) != 0;
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+ac_clean_files="$ac_clean_files conftest.out"
-+# Check that the compiler produces executables we can run.  If not, either
-+# the compiler is broken, or we cross compile.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-+$as_echo_n "checking whether we are cross compiling... " >&6; }
-+if test "$cross_compiling" != yes; then
-+  { { ac_try="$ac_link"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_link") 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }
-+  if { ac_try='./conftest$ac_cv_exeext'
-+  { { case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_try") 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; }; then
-+    cross_compiling=no
-+  else
-+    if test "$cross_compiling" = maybe; then
-+	cross_compiling=yes
-+    else
-+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error $? "cannot run C compiled programs.
-+If you meant to cross compile, use \`--host'.
-+See \`config.log' for more details" "$LINENO" 5; }
-+    fi
-+  fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-+$as_echo "$cross_compiling" >&6; }
-+
-+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-+ac_clean_files=$ac_clean_files_save
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-+$as_echo_n "checking for suffix of object files... " >&6; }
-+if ${ac_cv_objext+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.o conftest.obj
-+if { { ac_try="$ac_compile"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+$as_echo "$ac_try_echo"; } >&5
-+  (eval "$ac_compile") 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; then :
-+  for ac_file in conftest.o conftest.obj conftest.*; do
-+  test -f "$ac_file" || continue;
-+  case $ac_file in
-+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-+       break;;
-+  esac
-+done
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error $? "cannot compute suffix of object files: cannot compile
-+See \`config.log' for more details" "$LINENO" 5; }
-+fi
-+rm -f conftest.$ac_cv_objext conftest.$ac_ext
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-+$as_echo "$ac_cv_objext" >&6; }
-+OBJEXT=$ac_cv_objext
-+ac_objext=$OBJEXT
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-+if ${ac_cv_c_compiler_gnu+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+#ifndef __GNUC__
-+       choke me
-+#endif
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_compiler_gnu=yes
-+else
-+  ac_compiler_gnu=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+ac_cv_c_compiler_gnu=$ac_compiler_gnu
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-+if test $ac_compiler_gnu = yes; then
-+  GCC=yes
-+else
-+  GCC=
-+fi
-+ac_test_CFLAGS=${CFLAGS+set}
-+ac_save_CFLAGS=$CFLAGS
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-+$as_echo_n "checking whether $CC accepts -g... " >&6; }
-+if ${ac_cv_prog_cc_g+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_save_c_werror_flag=$ac_c_werror_flag
-+   ac_c_werror_flag=yes
-+   ac_cv_prog_cc_g=no
-+   CFLAGS="-g"
-+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_prog_cc_g=yes
-+else
-+  CFLAGS=""
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+
-+else
-+  ac_c_werror_flag=$ac_save_c_werror_flag
-+	 CFLAGS="-g"
-+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_prog_cc_g=yes
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+   ac_c_werror_flag=$ac_save_c_werror_flag
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-+$as_echo "$ac_cv_prog_cc_g" >&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
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-+if ${ac_cv_prog_cc_c89+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_cv_prog_cc_c89=no
-+ac_save_CC=$CC
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-+struct buf { int x; };
-+FILE * (*rcsopen) (struct buf *, struct stat *, int);
-+static char *e (p, i)
-+     char **p;
-+     int i;
-+{
-+  return p[i];
-+}
-+static char *f (char * (*g) (char **, int), char **p, ...)
-+{
-+  char *s;
-+  va_list v;
-+  va_start (v,p);
-+  s = g (p, va_arg (v,int));
-+  va_end (v);
-+  return s;
-+}
-+
-+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-+   function prototypes and stuff, but not '\xHH' hex character constants.
-+   These don't provoke an error unfortunately, instead are silently treated
-+   as 'x'.  The following induces an error, until -std is added to get
-+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-+   array size at least.  It's necessary to write '\x00'==0 to get something
-+   that's true only with -std.  */
-+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-+
-+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-+   inside strings and character constants.  */
-+#define FOO(x) 'x'
-+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-+
-+int test (int i, double x);
-+struct s1 {int (*f) (int a);};
-+struct s2 {int (*f) (double a);};
-+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-+int argc;
-+char **argv;
-+int
-+main ()
-+{
-+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-+do
-+  CC="$ac_save_CC $ac_arg"
-+  if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_prog_cc_c89=$ac_arg
-+fi
-+rm -f core conftest.err conftest.$ac_objext
-+  test "x$ac_cv_prog_cc_c89" != "xno" && break
-+done
-+rm -f conftest.$ac_ext
-+CC=$ac_save_CC
-+
-+fi
-+# AC_CACHE_VAL
-+case "x$ac_cv_prog_cc_c89" in
-+  x)
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-+$as_echo "none needed" >&6; } ;;
-+  xno)
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-+$as_echo "unsupported" >&6; } ;;
-+  *)
-+    CC="$CC $ac_cv_prog_cc_c89"
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-+esac
-+if test "x$ac_cv_prog_cc_c89" != xno; then :
-+
-+fi
-+
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+DEPDIR="${am__leading_dot}deps"
-+
-+ac_config_commands="$ac_config_commands depfiles"
-+
-+
-+am_make=${MAKE-make}
-+cat > confinc << 'END'
-+am__doit:
-+	@echo this is the am__doit target
-+.PHONY: am__doit
-+END
-+# If we don't find an include directive, just comment out the code.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-+$as_echo_n "checking for style of include used by $am_make... " >&6; }
-+am__include="#"
-+am__quote=
-+_am_result=none
-+# First try GNU make style include.
-+echo "include confinc" > confmf
-+# Ignore all kinds of additional output from `make'.
-+case `$am_make -s -f confmf 2> /dev/null` in #(
-+*the\ am__doit\ target*)
-+  am__include=include
-+  am__quote=
-+  _am_result=GNU
-+  ;;
-+esac
-+# Now try BSD make style include.
-+if test "$am__include" = "#"; then
-+   echo '.include "confinc"' > confmf
-+   case `$am_make -s -f confmf 2> /dev/null` in #(
-+   *the\ am__doit\ target*)
-+     am__include=.include
-+     am__quote="\""
-+     _am_result=BSD
-+     ;;
-+   esac
-+fi
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-+$as_echo "$_am_result" >&6; }
-+rm -f confinc confmf
-+
-+# Check whether --enable-dependency-tracking was given.
-+if test "${enable_dependency_tracking+set}" = set; then :
-+  enableval=$enable_dependency_tracking;
-+fi
-+
-+if test "x$enable_dependency_tracking" != xno; then
-+  am_depcomp="$ac_aux_dir/depcomp"
-+  AMDEPBACKSLASH='\'
-+  am__nodep='_no'
-+fi
-+ if test "x$enable_dependency_tracking" != xno; then
-+  AMDEP_TRUE=
-+  AMDEP_FALSE='#'
-+else
-+  AMDEP_TRUE='#'
-+  AMDEP_FALSE=
-+fi
-+
-+
-+
-+depcc="$CC"   am_compiler_list=
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-+$as_echo_n "checking dependency style of $depcc... " >&6; }
-+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-+  # We make a subdir and do the tests there.  Otherwise we can end up
-+  # making bogus files that we don't know about and never remove.  For
-+  # instance it was reported that on HP-UX the gcc test will end up
-+  # making a dummy file named `D' -- because `-MD' means `put the output
-+  # in D'.
-+  rm -rf conftest.dir
-+  mkdir conftest.dir
-+  # Copy depcomp to subdir because otherwise we won't find it if we're
-+  # using a relative directory.
-+  cp "$am_depcomp" conftest.dir
-+  cd conftest.dir
-+  # We will build objects and dependencies in a subdirectory because
-+  # it helps to detect inapplicable dependency modes.  For instance
-+  # both Tru64's cc and ICC support -MD to output dependencies as a
-+  # side effect of compilation, but ICC will put the dependencies in
-+  # the current directory while Tru64 will put them in the object
-+  # directory.
-+  mkdir sub
-+
-+  am_cv_CC_dependencies_compiler_type=none
-+  if test "$am_compiler_list" = ""; then
-+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-+  fi
-+  am__universal=false
-+  case " $depcc " in #(
-+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-+     esac
-+
-+  for depmode in $am_compiler_list; do
-+    # Setup a source with many dependencies, because some compilers
-+    # like to wrap large dependency lists on column 80 (with \), and
-+    # we should not choose a depcomp mode which is confused by this.
-+    #
-+    # We need to recreate these files for each test, as the compiler may
-+    # overwrite some of them when testing with obscure command lines.
-+    # This happens at least with the AIX C compiler.
-+    : > sub/conftest.c
-+    for i in 1 2 3 4 5 6; do
-+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-+      # Solaris 8's {/usr,}/bin/sh.
-+      touch sub/conftst$i.h
-+    done
-+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-+
-+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-+    # mode.  It turns out that the SunPro C++ compiler does not properly
-+    # handle `-M -o', and we need to detect this.  Also, some Intel
-+    # versions had trouble with output in subdirs
-+    am__obj=sub/conftest.${OBJEXT-o}
-+    am__minus_obj="-o $am__obj"
-+    case $depmode in
-+    gcc)
-+      # This depmode causes a compiler race in universal mode.
-+      test "$am__universal" = false || continue
-+      ;;
-+    nosideeffect)
-+      # after this tag, mechanisms are not by side-effect, so they'll
-+      # only be used when explicitly requested
-+      if test "x$enable_dependency_tracking" = xyes; then
-+	continue
-+      else
-+	break
-+      fi
-+      ;;
-+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-+      # This compiler won't grok `-c -o', but also, the minuso test has
-+      # not run yet.  These depmodes are late enough in the game, and
-+      # so weak that their functioning should not be impacted.
-+      am__obj=conftest.${OBJEXT-o}
-+      am__minus_obj=
-+      ;;
-+    none) break ;;
-+    esac
-+    if depmode=$depmode \
-+       source=sub/conftest.c object=$am__obj \
-+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-+         >/dev/null 2>conftest.err &&
-+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-+      # icc doesn't choke on unknown options, it will just issue warnings
-+      # or remarks (even with -Werror).  So we grep stderr for any message
-+      # that says an option was ignored or not supported.
-+      # When given -MP, icc 7.0 and 7.1 complain thusly:
-+      #   icc: Command line warning: ignoring option '-M'; no argument required
-+      # The diagnosis changed in icc 8.0:
-+      #   icc: Command line remark: option '-MP' not supported
-+      if (grep 'ignoring option' conftest.err ||
-+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-+        am_cv_CC_dependencies_compiler_type=$depmode
-+        break
-+      fi
-+    fi
-+  done
-+
-+  cd ..
-+  rm -rf conftest.dir
-+else
-+  am_cv_CC_dependencies_compiler_type=none
-+fi
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-+
-+ if
-+  test "x$enable_dependency_tracking" != xno \
-+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-+  am__fastdepCC_TRUE=
-+  am__fastdepCC_FALSE='#'
-+else
-+  am__fastdepCC_TRUE='#'
-+  am__fastdepCC_FALSE=
-+fi
-+
-+
-+ if test x$GCC = 'xyes'; then
-+  GCC_TRUE=
-+  GCC_FALSE='#'
-+else
-+  GCC_TRUE='#'
-+  GCC_FALSE=
-+fi
-+
-+
-+case `pwd` in
-+  *\ * | *\	*)
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-+esac
-+
-+
-+
-+macro_version='2.4.2'
-+macro_revision='1.3337'
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ltmain="$ac_aux_dir/ltmain.sh"
-+
-+# Make sure we can run config.sub.
-+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-+$as_echo_n "checking build system type... " >&6; }
-+if ${ac_cv_build+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_build_alias=$build_alias
-+test "x$ac_build_alias" = x &&
-+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-+test "x$ac_build_alias" = x &&
-+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-+$as_echo "$ac_cv_build" >&6; }
-+case $ac_cv_build in
-+*-*-*) ;;
-+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-+esac
-+build=$ac_cv_build
-+ac_save_IFS=$IFS; IFS='-'
-+set x $ac_cv_build
-+shift
-+build_cpu=$1
-+build_vendor=$2
-+shift; shift
-+# Remember, the first character of IFS is used to create $*,
-+# except with old shells:
-+build_os=$*
-+IFS=$ac_save_IFS
-+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-+$as_echo_n "checking host system type... " >&6; }
-+if ${ac_cv_host+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test "x$host_alias" = x; then
-+  ac_cv_host=$ac_cv_build
-+else
-+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-+fi
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-+$as_echo "$ac_cv_host" >&6; }
-+case $ac_cv_host in
-+*-*-*) ;;
-+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-+esac
-+host=$ac_cv_host
-+ac_save_IFS=$IFS; IFS='-'
-+set x $ac_cv_host
-+shift
-+host_cpu=$1
-+host_vendor=$2
-+shift; shift
-+# Remember, the first character of IFS is used to create $*,
-+# except with old shells:
-+host_os=$*
-+IFS=$ac_save_IFS
-+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-+
-+
-+# Backslashify metacharacters that are still active within
-+# double-quoted strings.
-+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'
-+
-+# Sed substitution to delay expansion of an escaped single quote.
-+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-+
-+# Sed substitution to avoid accidental globbing in evaled expressions
-+no_glob_subst='s/\*/\\\*/g'
-+
-+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-+$as_echo_n "checking how to print strings... " >&6; }
-+# Test print first, because it will be a builtin if present.
-+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-+  ECHO='print -r --'
-+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-+  ECHO='printf %s\n'
-+else
-+  # Use this function as a fallback that always works.
-+  func_fallback_echo ()
-+  {
-+    eval 'cat <<_LTECHO_EOF
-+$1
-+_LTECHO_EOF'
-+  }
-+  ECHO='func_fallback_echo'
-+fi
-+
-+# func_echo_all arg...
-+# Invoke $ECHO with all args, space-separated.
-+func_echo_all ()
-+{
-+    $ECHO ""
-+}
-+
-+case "$ECHO" in
-+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-+$as_echo "printf" >&6; } ;;
-+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-+$as_echo "print -r" >&6; } ;;
-+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-+$as_echo "cat" >&6; } ;;
-+esac
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-+if ${ac_cv_path_SED+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-+     for ac_i in 1 2 3 4 5 6 7; do
-+       ac_script="$ac_script$as_nl$ac_script"
-+     done
-+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-+     { ac_script=; unset ac_script;}
-+     if test -z "$SED"; then
-+  ac_path_SED_found=false
-+  # Loop through the user's path and test for each of PROGNAME-LIST
-+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_prog in sed gsed; do
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-+      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-+# Check for GNU ac_path_SED and select it if it is found.
-+  # Check for GNU $ac_path_SED
-+case `"$ac_path_SED" --version 2>&1` in
-+*GNU*)
-+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-+*)
-+  ac_count=0
-+  $as_echo_n 0123456789 >"conftest.in"
-+  while :
-+  do
-+    cat "conftest.in" "conftest.in" >"conftest.tmp"
-+    mv "conftest.tmp" "conftest.in"
-+    cp "conftest.in" "conftest.nl"
-+    $as_echo '' >> "conftest.nl"
-+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-+    as_fn_arith $ac_count + 1 && ac_count=$as_val
-+    if test $ac_count -gt ${ac_path_SED_max-0}; then
-+      # Best one so far, save it but keep looking for a better one
-+      ac_cv_path_SED="$ac_path_SED"
-+      ac_path_SED_max=$ac_count
-+    fi
-+    # 10*(2^10) chars as input seems more than enough
-+    test $ac_count -gt 10 && break
-+  done
-+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-+esac
-+
-+      $ac_path_SED_found && break 3
-+    done
-+  done
-+  done
-+IFS=$as_save_IFS
-+  if test -z "$ac_cv_path_SED"; then
-+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
-+  fi
-+else
-+  ac_cv_path_SED=$SED
-+fi
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-+$as_echo "$ac_cv_path_SED" >&6; }
-+ SED="$ac_cv_path_SED"
-+  rm -f conftest.sed
-+
-+test -z "$SED" && SED=sed
-+Xsed="$SED -e 1s/^X//"
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-+if ${ac_cv_path_GREP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -z "$GREP"; then
-+  ac_path_GREP_found=false
-+  # Loop through the user's path and test for each of PROGNAME-LIST
-+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_prog in grep ggrep; do
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-+# Check for GNU ac_path_GREP and select it if it is found.
-+  # Check for GNU $ac_path_GREP
-+case `"$ac_path_GREP" --version 2>&1` in
-+*GNU*)
-+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-+*)
-+  ac_count=0
-+  $as_echo_n 0123456789 >"conftest.in"
-+  while :
-+  do
-+    cat "conftest.in" "conftest.in" >"conftest.tmp"
-+    mv "conftest.tmp" "conftest.in"
-+    cp "conftest.in" "conftest.nl"
-+    $as_echo 'GREP' >> "conftest.nl"
-+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-+    as_fn_arith $ac_count + 1 && ac_count=$as_val
-+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-+      # Best one so far, save it but keep looking for a better one
-+      ac_cv_path_GREP="$ac_path_GREP"
-+      ac_path_GREP_max=$ac_count
-+    fi
-+    # 10*(2^10) chars as input seems more than enough
-+    test $ac_count -gt 10 && break
-+  done
-+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-+esac
-+
-+      $ac_path_GREP_found && break 3
-+    done
-+  done
-+  done
-+IFS=$as_save_IFS
-+  if test -z "$ac_cv_path_GREP"; then
-+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-+  fi
-+else
-+  ac_cv_path_GREP=$GREP
-+fi
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-+$as_echo "$ac_cv_path_GREP" >&6; }
-+ GREP="$ac_cv_path_GREP"
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-+$as_echo_n "checking for egrep... " >&6; }
-+if ${ac_cv_path_EGREP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-+   then ac_cv_path_EGREP="$GREP -E"
-+   else
-+     if test -z "$EGREP"; then
-+  ac_path_EGREP_found=false
-+  # Loop through the user's path and test for each of PROGNAME-LIST
-+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_prog in egrep; do
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-+# Check for GNU ac_path_EGREP and select it if it is found.
-+  # Check for GNU $ac_path_EGREP
-+case `"$ac_path_EGREP" --version 2>&1` in
-+*GNU*)
-+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-+*)
-+  ac_count=0
-+  $as_echo_n 0123456789 >"conftest.in"
-+  while :
-+  do
-+    cat "conftest.in" "conftest.in" >"conftest.tmp"
-+    mv "conftest.tmp" "conftest.in"
-+    cp "conftest.in" "conftest.nl"
-+    $as_echo 'EGREP' >> "conftest.nl"
-+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-+    as_fn_arith $ac_count + 1 && ac_count=$as_val
-+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-+      # Best one so far, save it but keep looking for a better one
-+      ac_cv_path_EGREP="$ac_path_EGREP"
-+      ac_path_EGREP_max=$ac_count
-+    fi
-+    # 10*(2^10) chars as input seems more than enough
-+    test $ac_count -gt 10 && break
-+  done
-+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-+esac
-+
-+      $ac_path_EGREP_found && break 3
-+    done
-+  done
-+  done
-+IFS=$as_save_IFS
-+  if test -z "$ac_cv_path_EGREP"; then
-+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-+  fi
-+else
-+  ac_cv_path_EGREP=$EGREP
-+fi
-+
-+   fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-+$as_echo "$ac_cv_path_EGREP" >&6; }
-+ EGREP="$ac_cv_path_EGREP"
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-+$as_echo_n "checking for fgrep... " >&6; }
-+if ${ac_cv_path_FGREP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
-+   then ac_cv_path_FGREP="$GREP -F"
-+   else
-+     if test -z "$FGREP"; then
-+  ac_path_FGREP_found=false
-+  # Loop through the user's path and test for each of PROGNAME-LIST
-+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_prog in fgrep; do
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-+      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
-+# Check for GNU ac_path_FGREP and select it if it is found.
-+  # Check for GNU $ac_path_FGREP
-+case `"$ac_path_FGREP" --version 2>&1` in
-+*GNU*)
-+  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-+*)
-+  ac_count=0
-+  $as_echo_n 0123456789 >"conftest.in"
-+  while :
-+  do
-+    cat "conftest.in" "conftest.in" >"conftest.tmp"
-+    mv "conftest.tmp" "conftest.in"
-+    cp "conftest.in" "conftest.nl"
-+    $as_echo 'FGREP' >> "conftest.nl"
-+    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
-+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-+    as_fn_arith $ac_count + 1 && ac_count=$as_val
-+    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
-+      # Best one so far, save it but keep looking for a better one
-+      ac_cv_path_FGREP="$ac_path_FGREP"
-+      ac_path_FGREP_max=$ac_count
-+    fi
-+    # 10*(2^10) chars as input seems more than enough
-+    test $ac_count -gt 10 && break
-+  done
-+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-+esac
-+
-+      $ac_path_FGREP_found && break 3
-+    done
-+  done
-+  done
-+IFS=$as_save_IFS
-+  if test -z "$ac_cv_path_FGREP"; then
-+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-+  fi
-+else
-+  ac_cv_path_FGREP=$FGREP
-+fi
-+
-+   fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-+$as_echo "$ac_cv_path_FGREP" >&6; }
-+ FGREP="$ac_cv_path_FGREP"
-+
-+
-+test -z "$GREP" && GREP=grep
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+# Check whether --with-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 "$GCC" = yes; then
-+  # Check if gcc -print-prog-name=ld gives a path.
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-+$as_echo_n "checking for ld used by $CC... " >&6; }
-+  case $host in
-+  *-*-mingw*)
-+    # gcc leaves a trailing carriage return which upsets mingw
-+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-+  *)
-+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-+  esac
-+  case $ac_prog in
-+    # Accept absolute paths.
-+    [\\/]* | ?:[\\/]*)
-+      re_direlt='/[^/][^/]*/\.\./'
-+      # Canonicalize the pathname 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
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-+$as_echo_n "checking for GNU ld... " >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-+$as_echo_n "checking for non-GNU ld... " >&6; }
-+fi
-+if ${lt_cv_path_LD+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -z "$LD"; then
-+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-+  for ac_dir in $PATH; do
-+    IFS="$lt_save_ifs"
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-+      lt_cv_path_LD="$ac_dir/$ac_prog"
-+      # Check to see if the program is GNU ld.  I'd rather use --version,
-+      # but apparently some variants of GNU ld only accept -v.
-+      # Break only if it was the GNU/non-GNU ld that we prefer.
-+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-+      *GNU* | *'with BFD'*)
-+	test "$with_gnu_ld" != no && break
-+	;;
-+      *)
-+	test "$with_gnu_ld" != yes && break
-+	;;
-+      esac
-+    fi
-+  done
-+  IFS="$lt_save_ifs"
-+else
-+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-+fi
-+fi
-+
-+LD="$lt_cv_path_LD"
-+if test -n "$LD"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-+$as_echo "$LD" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-+if ${lt_cv_prog_gnu_ld+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-+case `$LD -v 2>&1 </dev/null` in
-+*GNU* | *'with BFD'*)
-+  lt_cv_prog_gnu_ld=yes
-+  ;;
-+*)
-+  lt_cv_prog_gnu_ld=no
-+  ;;
-+esac
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-+with_gnu_ld=$lt_cv_prog_gnu_ld
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-+if ${lt_cv_path_NM+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$NM"; then
-+  # Let the user override the test.
-+  lt_cv_path_NM="$NM"
-+else
-+  lt_nm_to_check="${ac_tool_prefix}nm"
-+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-+    lt_nm_to_check="$lt_nm_to_check nm"
-+  fi
-+  for lt_tmp_nm in $lt_nm_to_check; do
-+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-+      IFS="$lt_save_ifs"
-+      test -z "$ac_dir" && ac_dir=.
-+      tmp_nm="$ac_dir/$lt_tmp_nm"
-+      if test -f "$tmp_nm" || test -f "$tmp_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
-+	# Tru64's nm complains that /dev/null is an invalid object file
-+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-+	*/dev/null* | *'Invalid file or object type'*)
-+	  lt_cv_path_NM="$tmp_nm -B"
-+	  break
-+	  ;;
-+	*)
-+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-+	  */dev/null*)
-+	    lt_cv_path_NM="$tmp_nm -p"
-+	    break
-+	    ;;
-+	  *)
-+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-+	    continue # so that we can try to find one that supports BSD flags
-+	    ;;
-+	  esac
-+	  ;;
-+	esac
-+      fi
-+    done
-+    IFS="$lt_save_ifs"
-+  done
-+  : ${lt_cv_path_NM=no}
-+fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-+$as_echo "$lt_cv_path_NM" >&6; }
-+if test "$lt_cv_path_NM" != "no"; then
-+  NM="$lt_cv_path_NM"
-+else
-+  # Didn't find any BSD compatible name lister, look for dumpbin.
-+  if test -n "$DUMPBIN"; then :
-+    # Let the user override the test.
-+  else
-+    if test -n "$ac_tool_prefix"; then
-+  for ac_prog in dumpbin "link -dump"
-+  do
-+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_DUMPBIN+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$DUMPBIN"; then
-+  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+DUMPBIN=$ac_cv_prog_DUMPBIN
-+if test -n "$DUMPBIN"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-+$as_echo "$DUMPBIN" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+    test -n "$DUMPBIN" && break
-+  done
-+fi
-+if test -z "$DUMPBIN"; then
-+  ac_ct_DUMPBIN=$DUMPBIN
-+  for ac_prog in dumpbin "link -dump"
-+do
-+  # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_DUMPBIN"; then
-+  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-+if test -n "$ac_ct_DUMPBIN"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-+$as_echo "$ac_ct_DUMPBIN" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+  test -n "$ac_ct_DUMPBIN" && break
-+done
-+
-+  if test "x$ac_ct_DUMPBIN" = x; then
-+    DUMPBIN=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    DUMPBIN=$ac_ct_DUMPBIN
-+  fi
-+fi
-+
-+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-+    *COFF*)
-+      DUMPBIN="$DUMPBIN -symbols"
-+      ;;
-+    *)
-+      DUMPBIN=:
-+      ;;
-+    esac
-+  fi
-+
-+  if test "$DUMPBIN" != ":"; then
-+    NM="$DUMPBIN"
-+  fi
-+fi
-+test -z "$NM" && NM=nm
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-+if ${lt_cv_nm_interface+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_nm_interface="BSD nm"
-+  echo "int some_variable = 0;" > conftest.$ac_ext
-+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
-+  (eval "$ac_compile" 2>conftest.err)
-+  cat conftest.err >&5
-+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-+  cat conftest.err >&5
-+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
-+  cat conftest.out >&5
-+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-+    lt_cv_nm_interface="MS dumpbin"
-+  fi
-+  rm -f conftest*
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-+$as_echo "$lt_cv_nm_interface" >&6; }
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-+$as_echo_n "checking whether ln -s works... " >&6; }
-+LN_S=$as_ln_s
-+if test "$LN_S" = "ln -s"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-+$as_echo "no, using $LN_S" >&6; }
-+fi
-+
-+# find the maximum length of command line arguments
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-+if ${lt_cv_sys_max_cmd_len+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+    i=0
-+  teststring="ABCD"
-+
-+  case $build_os in
-+  msdosdjgpp*)
-+    # On DJGPP, this test can blow up pretty badly due to problems in libc
-+    # (any single argument exceeding 2000 bytes causes a buffer overrun
-+    # during glob expansion).  Even if it were fixed, the result of this
-+    # check would be larger than it should be.
-+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-+    ;;
-+
-+  gnu*)
-+    # Under GNU Hurd, this test is not required because there is
-+    # no limit to the length of command line arguments.
-+    # Libtool will interpret -1 as no limit whatsoever
-+    lt_cv_sys_max_cmd_len=-1;
-+    ;;
-+
-+  cygwin* | mingw* | cegcc*)
-+    # On Win9x/ME, this test blows up -- it succeeds, but takes
-+    # about 5 minutes as the teststring grows exponentially.
-+    # Worse, since 9x/ME are not pre-emptively multitasking,
-+    # you end up with a "frozen" computer, even though with patience
-+    # the test eventually succeeds (with a max line length of 256k).
-+    # Instead, let's just punt: use the minimum linelength reported by
-+    # all of the supported platforms: 8192 (on NT/2K/XP).
-+    lt_cv_sys_max_cmd_len=8192;
-+    ;;
-+
-+  mint*)
-+    # On MiNT this can take a long time and run out of memory.
-+    lt_cv_sys_max_cmd_len=8192;
-+    ;;
-+
-+  amigaos*)
-+    # On AmigaOS with pdksh, this test takes hours, literally.
-+    # So we just punt and use a minimum line length of 8192.
-+    lt_cv_sys_max_cmd_len=8192;
-+    ;;
-+
-+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-+    # This has been around since 386BSD, at least.  Likely further.
-+    if test -x /sbin/sysctl; then
-+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-+    elif test -x /usr/sbin/sysctl; then
-+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-+    else
-+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-+    fi
-+    # And add a safety zone
-+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-+    ;;
-+
-+  interix*)
-+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-+    lt_cv_sys_max_cmd_len=196608
-+    ;;
-+
-+  os2*)
-+    # The test takes a long time on OS/2.
-+    lt_cv_sys_max_cmd_len=8192
-+    ;;
-+
-+  osf*)
-+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-+    # nice to cause kernel panics so lets avoid the loop below.
-+    # First set a reasonable default.
-+    lt_cv_sys_max_cmd_len=16384
-+    #
-+    if test -x /sbin/sysconfig; then
-+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-+      esac
-+    fi
-+    ;;
-+  sco3.2v5*)
-+    lt_cv_sys_max_cmd_len=102400
-+    ;;
-+  sysv5* | sco5v6* | sysv4.2uw2*)
-+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-+    if test -n "$kargmax"; then
-+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
-+    else
-+      lt_cv_sys_max_cmd_len=32768
-+    fi
-+    ;;
-+  *)
-+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-+    if test -n "$lt_cv_sys_max_cmd_len"; then
-+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-+    else
-+      # Make teststring a little bigger before we do anything with it.
-+      # a 1K string should be a reasonable start.
-+      for i in 1 2 3 4 5 6 7 8 ; do
-+        teststring=$teststring$teststring
-+      done
-+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-+      # If test is not a shell built-in, we'll probably end up computing a
-+      # maximum length that is only half of the actual maximum length, but
-+      # we can't tell.
-+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
-+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-+	      test $i != 17 # 1/2 MB should be enough
-+      do
-+        i=`expr $i + 1`
-+        teststring=$teststring$teststring
-+      done
-+      # Only check the string length outside the loop.
-+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-+      teststring=
-+      # Add a significant safety factor because C++ compilers can tack on
-+      # massive amounts of additional arguments before passing them to the
-+      # linker.  It appears as though 1/2 is a usable value.
-+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-+    fi
-+    ;;
-+  esac
-+
-+fi
-+
-+if test -n $lt_cv_sys_max_cmd_len ; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-+$as_echo "none" >&6; }
-+fi
-+max_cmd_len=$lt_cv_sys_max_cmd_len
-+
-+
-+
-+
-+
-+
-+: ${CP="cp -f"}
-+: ${MV="mv -f"}
-+: ${RM="rm -f"}
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-+# Try some XSI features
-+xsi_shell=no
-+( _lt_dummy="a/b/c"
-+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-+      = c,a/b,b/c, \
-+    && eval 'test $(( 1 + 1 )) -eq 2 \
-+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-+  && xsi_shell=yes
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-+$as_echo "$xsi_shell" >&6; }
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-+lt_shell_append=no
-+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-+    >/dev/null 2>&1 \
-+  && lt_shell_append=yes
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-+$as_echo "$lt_shell_append" >&6; }
-+
-+
-+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-+  lt_unset=unset
-+else
-+  lt_unset=false
-+fi
-+
-+
-+
-+
-+
-+# test EBCDIC or ASCII
-+case `echo X|tr X '\101'` in
-+ A) # ASCII based system
-+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-+  lt_SP2NL='tr \040 \012'
-+  lt_NL2SP='tr \015\012 \040\040'
-+  ;;
-+ *) # EBCDIC based system
-+  lt_SP2NL='tr \100 \n'
-+  lt_NL2SP='tr \r\n \100\100'
-+  ;;
-+esac
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-+if ${lt_cv_to_host_file_cmd+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  case $host in
-+  *-*-mingw* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-+        ;;
-+      *-*-cygwin* )
-+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-+        ;;
-+      * ) # otherwise, assume *nix
-+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-+        ;;
-+    esac
-+    ;;
-+  *-*-cygwin* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-+        ;;
-+      *-*-cygwin* )
-+        lt_cv_to_host_file_cmd=func_convert_file_noop
-+        ;;
-+      * ) # otherwise, assume *nix
-+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-+        ;;
-+    esac
-+    ;;
-+  * ) # unhandled hosts (and "normal" native builds)
-+    lt_cv_to_host_file_cmd=func_convert_file_noop
-+    ;;
-+esac
-+
-+fi
-+
-+to_host_file_cmd=$lt_cv_to_host_file_cmd
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-+if ${lt_cv_to_tool_file_cmd+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  #assume ordinary cross tools, or native build.
-+lt_cv_to_tool_file_cmd=func_convert_file_noop
-+case $host in
-+  *-*-mingw* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-+        ;;
-+    esac
-+    ;;
-+esac
-+
-+fi
-+
-+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-+$as_echo_n "checking for $LD option to reload object files... " >&6; }
-+if ${lt_cv_ld_reload_flag+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_ld_reload_flag='-r'
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-+$as_echo "$lt_cv_ld_reload_flag" >&6; }
-+reload_flag=$lt_cv_ld_reload_flag
-+case $reload_flag in
-+"" | " "*) ;;
-+*) reload_flag=" $reload_flag" ;;
-+esac
-+reload_cmds='$LD$reload_flag -o $output$reload_objs'
-+case $host_os in
-+  cygwin* | mingw* | pw32* | cegcc*)
-+    if test "$GCC" != yes; then
-+      reload_cmds=false
-+    fi
-+    ;;
-+  darwin*)
-+    if test "$GCC" = yes; then
-+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-+    else
-+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-+    fi
-+    ;;
-+esac
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}objdump; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_OBJDUMP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$OBJDUMP"; then
-+  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+OBJDUMP=$ac_cv_prog_OBJDUMP
-+if test -n "$OBJDUMP"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-+$as_echo "$OBJDUMP" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_OBJDUMP"; then
-+  ac_ct_OBJDUMP=$OBJDUMP
-+  # Extract the first word of "objdump", so it can be a program name with args.
-+set dummy objdump; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_OBJDUMP"; then
-+  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-+if test -n "$ac_ct_OBJDUMP"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-+$as_echo "$ac_ct_OBJDUMP" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_OBJDUMP" = x; then
-+    OBJDUMP="false"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    OBJDUMP=$ac_ct_OBJDUMP
-+  fi
-+else
-+  OBJDUMP="$ac_cv_prog_OBJDUMP"
-+fi
-+
-+test -z "$OBJDUMP" && OBJDUMP=objdump
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-+if ${lt_cv_deplibs_check_method+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_file_magic_cmd='$MAGIC_CMD'
-+lt_cv_file_magic_test_file=
-+lt_cv_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 extended 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.
-+
-+case $host_os in
-+aix[4-9]*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+beos*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+bsdi[45]*)
-+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-+  lt_cv_file_magic_cmd='/usr/bin/file -L'
-+  lt_cv_file_magic_test_file=/shlib/libc.so
-+  ;;
-+
-+cygwin*)
-+  # func_win32_libid is a shell function defined in ltmain.sh
-+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-+  lt_cv_file_magic_cmd='func_win32_libid'
-+  ;;
-+
-+mingw* | pw32*)
-+  # Base MSYS/MinGW do not provide the 'file' command needed by
-+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-+  # unless we find 'file', for example because we are cross-compiling.
-+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-+    lt_cv_file_magic_cmd='func_win32_libid'
-+  else
-+    # Keep this pattern in sync with the one in func_win32_libid.
-+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-+    lt_cv_file_magic_cmd='$OBJDUMP -f'
-+  fi
-+  ;;
-+
-+cegcc*)
-+  # use the weaker test based on 'objdump'. See mingw*.
-+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-+  lt_cv_file_magic_cmd='$OBJDUMP -f'
-+  ;;
-+
-+darwin* | rhapsody*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+freebsd* | dragonfly*)
-+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-+    case $host_cpu in
-+    i*86 )
-+      # Not sure whether the presence of OpenBSD here was a mistake.
-+      # Let's accept both of them until this is cleared up.
-+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
-+      lt_cv_file_magic_cmd=/usr/bin/file
-+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-+      ;;
-+    esac
-+  else
-+    lt_cv_deplibs_check_method=pass_all
-+  fi
-+  ;;
-+
-+gnu*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+haiku*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+hpux10.20* | hpux11*)
-+  lt_cv_file_magic_cmd=/usr/bin/file
-+  case $host_cpu in
-+  ia64*)
-+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-+    ;;
-+  hppa*64*)
-+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
-+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-+    ;;
-+  *)
-+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
-+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-+    ;;
-+  esac
-+  ;;
-+
-+interix[3-9]*)
-+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
-+  ;;
-+
-+irix5* | irix6* | nonstopux*)
-+  case $LD in
-+  *-32|*"-32 ") libmagic=32-bit;;
-+  *-n32|*"-n32 ") libmagic=N32;;
-+  *-64|*"-64 ") libmagic=64-bit;;
-+  *) libmagic=never-match;;
-+  esac
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+# This must be glibc/ELF.
-+linux* | k*bsd*-gnu | kopensolaris*-gnu)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+netbsd* | netbsdelf*-gnu)
-+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-+  else
-+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-+  fi
-+  ;;
-+
-+newos6*)
-+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-+  lt_cv_file_magic_cmd=/usr/bin/file
-+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-+  ;;
-+
-+*nto* | *qnx*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+openbsd*)
-+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
-+  else
-+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-+  fi
-+  ;;
-+
-+osf3* | osf4* | osf5*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+rdos*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+solaris*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+sysv4 | sysv4.3*)
-+  case $host_vendor in
-+  motorola)
-+    lt_cv_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]'
-+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-+    ;;
-+  ncr)
-+    lt_cv_deplibs_check_method=pass_all
-+    ;;
-+  sequent)
-+    lt_cv_file_magic_cmd='/bin/file'
-+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-+    ;;
-+  sni)
-+    lt_cv_file_magic_cmd='/bin/file'
-+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-+    lt_cv_file_magic_test_file=/lib/libc.so
-+    ;;
-+  siemens)
-+    lt_cv_deplibs_check_method=pass_all
-+    ;;
-+  pc)
-+    lt_cv_deplibs_check_method=pass_all
-+    ;;
-+  esac
-+  ;;
-+
-+tpf*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+esac
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-+$as_echo "$lt_cv_deplibs_check_method" >&6; }
-+
-+file_magic_glob=
-+want_nocaseglob=no
-+if test "$build" = "$host"; then
-+  case $host_os in
-+  mingw* | pw32*)
-+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-+      want_nocaseglob=yes
-+    else
-+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
-+    fi
-+    ;;
-+  esac
-+fi
-+
-+file_magic_cmd=$lt_cv_file_magic_cmd
-+deplibs_check_method=$lt_cv_deplibs_check_method
-+test -z "$deplibs_check_method" && deplibs_check_method=unknown
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_DLLTOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$DLLTOOL"; then
-+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+DLLTOOL=$ac_cv_prog_DLLTOOL
-+if test -n "$DLLTOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-+$as_echo "$DLLTOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_DLLTOOL"; then
-+  ac_ct_DLLTOOL=$DLLTOOL
-+  # Extract the first word of "dlltool", so it can be a program name with args.
-+set dummy dlltool; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_DLLTOOL"; then
-+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-+if test -n "$ac_ct_DLLTOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-+$as_echo "$ac_ct_DLLTOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_DLLTOOL" = x; then
-+    DLLTOOL="false"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    DLLTOOL=$ac_ct_DLLTOOL
-+  fi
-+else
-+  DLLTOOL="$ac_cv_prog_DLLTOOL"
-+fi
-+
-+test -z "$DLLTOOL" && DLLTOOL=dlltool
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_sharedlib_from_linklib_cmd='unknown'
-+
-+case $host_os in
-+cygwin* | mingw* | pw32* | cegcc*)
-+  # two different shell functions defined in ltmain.sh
-+  # decide which to use based on capabilities of $DLLTOOL
-+  case `$DLLTOOL --help 2>&1` in
-+  *--identify-strict*)
-+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-+    ;;
-+  *)
-+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-+    ;;
-+  esac
-+  ;;
-+*)
-+  # fallback: assume linklib IS sharedlib
-+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-+  ;;
-+esac
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-+
-+
-+
-+
-+
-+
-+
-+
-+if test -n "$ac_tool_prefix"; then
-+  for ac_prog in ar
-+  do
-+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_AR+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$AR"; then
-+  ac_cv_prog_AR="$AR" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+AR=$ac_cv_prog_AR
-+if test -n "$AR"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-+$as_echo "$AR" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+    test -n "$AR" && break
-+  done
-+fi
-+if test -z "$AR"; then
-+  ac_ct_AR=$AR
-+  for ac_prog in ar
-+do
-+  # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_AR+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_AR"; then
-+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_AR="$ac_prog"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_AR=$ac_cv_prog_ac_ct_AR
-+if test -n "$ac_ct_AR"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-+$as_echo "$ac_ct_AR" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+  test -n "$ac_ct_AR" && break
-+done
-+
-+  if test "x$ac_ct_AR" = x; then
-+    AR="false"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    AR=$ac_ct_AR
-+  fi
-+fi
-+
-+: ${AR=ar}
-+: ${AR_FLAGS=cru}
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-+$as_echo_n "checking for archiver @FILE support... " >&6; }
-+if ${lt_cv_ar_at_file+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_ar_at_file=no
-+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  echo conftest.$ac_objext > conftest.lst
-+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
-+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-+  (eval $lt_ar_try) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }
-+      if test "$ac_status" -eq 0; then
-+	# Ensure the archiver fails upon bogus file names.
-+	rm -f conftest.$ac_objext libconftest.a
-+	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-+  (eval $lt_ar_try) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }
-+	if test "$ac_status" -ne 0; then
-+          lt_cv_ar_at_file=@
-+        fi
-+      fi
-+      rm -f conftest.* libconftest.a
-+
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-+$as_echo "$lt_cv_ar_at_file" >&6; }
-+
-+if test "x$lt_cv_ar_at_file" = xno; then
-+  archiver_list_spec=
-+else
-+  archiver_list_spec=$lt_cv_ar_at_file
-+fi
-+
-+
-+
-+
-+
-+
-+
-+if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}strip; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_STRIP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$STRIP"; then
-+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+STRIP=$ac_cv_prog_STRIP
-+if test -n "$STRIP"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-+$as_echo "$STRIP" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_STRIP"; then
-+  ac_ct_STRIP=$STRIP
-+  # Extract the first word of "strip", so it can be a program name with args.
-+set dummy strip; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_STRIP"; then
-+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_STRIP="strip"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-+if test -n "$ac_ct_STRIP"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-+$as_echo "$ac_ct_STRIP" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_STRIP" = x; then
-+    STRIP=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    STRIP=$ac_ct_STRIP
-+  fi
-+else
-+  STRIP="$ac_cv_prog_STRIP"
-+fi
-+
-+test -z "$STRIP" && STRIP=:
-+
-+
-+
-+
-+
-+
-+if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_RANLIB+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$RANLIB"; then
-+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+RANLIB=$ac_cv_prog_RANLIB
-+if test -n "$RANLIB"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-+$as_echo "$RANLIB" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_RANLIB"; then
-+  ac_ct_RANLIB=$RANLIB
-+  # Extract the first word of "ranlib", so it can be a program name with args.
-+set dummy ranlib; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_RANLIB"; then
-+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_RANLIB="ranlib"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-+if test -n "$ac_ct_RANLIB"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-+$as_echo "$ac_ct_RANLIB" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_RANLIB" = x; then
-+    RANLIB=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    RANLIB=$ac_ct_RANLIB
-+  fi
-+else
-+  RANLIB="$ac_cv_prog_RANLIB"
-+fi
-+
-+test -z "$RANLIB" && RANLIB=:
-+
-+
-+
-+
-+
-+
-+# Determine commands to create old-style static archives.
-+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-+old_postinstall_cmds='chmod 644 $oldlib'
-+old_postuninstall_cmds=
-+
-+if test -n "$RANLIB"; then
-+  case $host_os in
-+  openbsd*)
-+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
-+    ;;
-+  *)
-+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
-+    ;;
-+  esac
-+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-+fi
-+
-+case $host_os in
-+  darwin*)
-+    lock_old_archive_extraction=yes ;;
-+  *)
-+    lock_old_archive_extraction=no ;;
-+esac
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+# If no C compiler was specified, use CC.
-+LTCC=${LTCC-"$CC"}
-+
-+# If no C compiler flags were specified, use CFLAGS.
-+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-+
-+# Allow CC to be a program name with arguments.
-+compiler=$CC
-+
-+
-+# Check for command to grab the raw symbol name followed by C symbol from nm.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
-+  $as_echo_n "(cached) " >&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.
-+symcode='[BCDEGRST]'
-+
-+# Regexp to match symbols that can be accessed directly from C.
-+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-+
-+# Define system-specific variables.
-+case $host_os in
-+aix*)
-+  symcode='[BCDT]'
-+  ;;
-+cygwin* | mingw* | pw32* | cegcc*)
-+  symcode='[ABCDGISTW]'
-+  ;;
-+hpux*)
-+  if test "$host_cpu" = ia64; then
-+    symcode='[ABCDEGRST]'
-+  fi
-+  ;;
-+irix* | nonstopux*)
-+  symcode='[BCDEGRST]'
-+  ;;
-+osf*)
-+  symcode='[BCDEGQRST]'
-+  ;;
-+solaris*)
-+  symcode='[BDRT]'
-+  ;;
-+sco3.2v5*)
-+  symcode='[DT]'
-+  ;;
-+sysv4.2uw2*)
-+  symcode='[DT]'
-+  ;;
-+sysv5* | sco5v6* | unixware* | OpenUNIX*)
-+  symcode='[ABDT]'
-+  ;;
-+sysv4)
-+  symcode='[DFNSTU]'
-+  ;;
-+esac
-+
-+# If we're using GNU nm, then use its standard symbol codes.
-+case `$NM -V 2>&1` in
-+*GNU* | *'with BFD'*)
-+  symcode='[ABCDGIRSTW]' ;;
-+esac
-+
-+# Transform an extracted symbol line into a proper C declaration.
-+# Some systems (esp. on ia64) link data and code symbols differently,
-+# so use this general approach.
-+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-+
-+# Transform an extracted symbol line into symbol name and symbol address
-+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-+
-+# Handle CRLF in mingw tool chain
-+opt_cr=
-+case $build_os in
-+mingw*)
-+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-+  ;;
-+esac
-+
-+# Try without a prefix underscore, then with it.
-+for ac_symprfx in "" "_"; do
-+
-+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-+  symxfrm="\\1 $ac_symprfx\\2 \\2"
-+
-+  # Write the raw and C identifiers.
-+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-+    # Fake it for dumpbin and say T for any non-static function
-+    # and D for any global variable.
-+    # Also find C++ and __fastcall symbols from MSVC++,
-+    # which start with @ or ?.
-+    lt_cv_sys_global_symbol_pipe="$AWK '"\
-+"     {last_section=section; section=\$ 3};"\
-+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-+"     \$ 0!~/External *\|/{next};"\
-+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-+"     {if(hide[section]) next};"\
-+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-+"     ' prfx=^$ac_symprfx"
-+  else
-+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-+  fi
-+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-+
-+  # Check to see that the pipe works correctly.
-+  pipe_works=no
-+
-+  rm -f conftest*
-+  cat > conftest.$ac_ext <<_LT_EOF
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+char nm_test_var;
-+void nm_test_func(void);
-+void nm_test_func(void){}
-+#ifdef __cplusplus
-+}
-+#endif
-+int main(){nm_test_var='a';nm_test_func();return(0);}
-+_LT_EOF
-+
-+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-+  (eval $ac_compile) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; then
-+    # Now try to grab the symbols.
-+    nlist=conftest.nm
-+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
-+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } && 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 $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-+	  cat <<_LT_EOF > conftest.$ac_ext
-+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-+/* DATA imports from DLLs on WIN32 con't be const, because runtime
-+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-+# define LT_DLSYM_CONST
-+#elif defined(__osf__)
-+/* This system does not cope well with relocations in const data.  */
-+# define LT_DLSYM_CONST
-+#else
-+# define LT_DLSYM_CONST const
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+_LT_EOF
-+	  # Now generate the symbol file.
-+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-+
-+	  cat <<_LT_EOF >> conftest.$ac_ext
-+
-+/* The mapping between symbol names and symbols.  */
-+LT_DLSYM_CONST struct {
-+  const char *name;
-+  void       *address;
-+}
-+lt__PROGRAM__LTX_preloaded_symbols[] =
-+{
-+  { "@PROGRAM@", (void *) 0 },
-+_LT_EOF
-+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-+	  cat <<\_LT_EOF >> conftest.$ac_ext
-+  {0, (void *) 0}
-+};
-+
-+/* This works around a problem in FreeBSD linker */
-+#ifdef FREEBSD_WORKAROUND
-+static const void *lt_preloaded_setup() {
-+  return lt__PROGRAM__LTX_preloaded_symbols;
-+}
-+#endif
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+_LT_EOF
-+	  # Now try linking the two files.
-+	  mv conftest.$ac_objext conftstm.$ac_objext
-+	  lt_globsym_save_LIBS=$LIBS
-+	  lt_globsym_save_CFLAGS=$CFLAGS
-+	  LIBS="conftstm.$ac_objext"
-+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-+  (eval $ac_link) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
-+	    pipe_works=yes
-+	  fi
-+	  LIBS=$lt_globsym_save_LIBS
-+	  CFLAGS=$lt_globsym_save_CFLAGS
-+	else
-+	  echo "cannot find nm_test_func in $nlist" >&5
-+	fi
-+      else
-+	echo "cannot find nm_test_var in $nlist" >&5
-+      fi
-+    else
-+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-+    fi
-+  else
-+    echo "$progname: failed program was:" >&5
-+    cat conftest.$ac_ext >&5
-+  fi
-+  rm -rf conftest* conftst*
-+
-+  # Do not use the global_symbol_pipe unless it works.
-+  if test "$pipe_works" = yes; then
-+    break
-+  else
-+    lt_cv_sys_global_symbol_pipe=
-+  fi
-+done
-+
-+fi
-+
-+if test -z "$lt_cv_sys_global_symbol_pipe"; then
-+  lt_cv_sys_global_symbol_to_cdecl=
-+fi
-+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-+$as_echo "failed" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-+$as_echo "ok" >&6; }
-+fi
-+
-+# Response file support.
-+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-+  nm_file_list_spec='@'
-+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
-+  nm_file_list_spec='@'
-+fi
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-+$as_echo_n "checking for sysroot... " >&6; }
-+
-+# Check whether --with-sysroot was given.
-+if test "${with_sysroot+set}" = set; then :
-+  withval=$with_sysroot;
-+else
-+  with_sysroot=no
-+fi
-+
-+
-+lt_sysroot=
-+case ${with_sysroot} in #(
-+ yes)
-+   if test "$GCC" = yes; then
-+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-+   fi
-+   ;; #(
-+ /*)
-+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   ;; #(
-+ no|'')
-+   ;; #(
-+ *)
-+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-+$as_echo "${with_sysroot}" >&6; }
-+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
-+   ;;
-+esac
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-+$as_echo "${lt_sysroot:-no}" >&6; }
-+
-+
-+
-+
-+
-+# Check whether --enable-libtool-lock was given.
-+if test "${enable_libtool_lock+set}" = set; then :
-+  enableval=$enable_libtool_lock;
-+fi
-+
-+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-+
-+# Some flags need to be propagated to the compiler or linker for good
-+# libtool support.
-+case $host in
-+ia64-*-hpux*)
-+  # Find out which ABI we are using.
-+  echo 'int i;' > conftest.$ac_ext
-+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-+  (eval $ac_compile) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; then
-+    case `/usr/bin/file conftest.$ac_objext` in
-+      *ELF-32*)
-+	HPUX_IA64_MODE="32"
-+	;;
-+      *ELF-64*)
-+	HPUX_IA64_MODE="64"
-+	;;
-+    esac
-+  fi
-+  rm -rf conftest*
-+  ;;
-+*-*-irix6*)
-+  # Find out which ABI we are using.
-+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
-+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-+  (eval $ac_compile) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; then
-+    if test "$lt_cv_prog_gnu_ld" = yes; then
-+      case `/usr/bin/file conftest.$ac_objext` in
-+	*32-bit*)
-+	  LD="${LD-ld} -melf32bsmip"
-+	  ;;
-+	*N32*)
-+	  LD="${LD-ld} -melf32bmipn32"
-+	  ;;
-+	*64-bit*)
-+	  LD="${LD-ld} -melf64bmip"
-+	;;
-+      esac
-+    else
-+      case `/usr/bin/file conftest.$ac_objext` in
-+	*32-bit*)
-+	  LD="${LD-ld} -32"
-+	  ;;
-+	*N32*)
-+	  LD="${LD-ld} -n32"
-+	  ;;
-+	*64-bit*)
-+	  LD="${LD-ld} -64"
-+	  ;;
-+      esac
-+    fi
-+  fi
-+  rm -rf conftest*
-+  ;;
-+
-+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-+  # Find out which ABI we are using.
-+  echo 'int i;' > conftest.$ac_ext
-+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-+  (eval $ac_compile) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; then
-+    case `/usr/bin/file conftest.o` in
-+      *32-bit*)
-+	case $host in
-+	  x86_64-*kfreebsd*-gnu)
-+	    LD="${LD-ld} -m elf_i386_fbsd"
-+	    ;;
-+	  x86_64-*linux*)
-+	    LD="${LD-ld} -m elf_i386"
-+	    ;;
-+	  ppc64-*linux*|powerpc64-*linux*)
-+	    LD="${LD-ld} -m elf32ppclinux"
-+	    ;;
-+	  s390x-*linux*)
-+	    LD="${LD-ld} -m elf_s390"
-+	    ;;
-+	  sparc64-*linux*)
-+	    LD="${LD-ld} -m elf32_sparc"
-+	    ;;
-+	esac
-+	;;
-+      *64-bit*)
-+	case $host in
-+	  x86_64-*kfreebsd*-gnu)
-+	    LD="${LD-ld} -m elf_x86_64_fbsd"
-+	    ;;
-+	  x86_64-*linux*)
-+	    LD="${LD-ld} -m elf_x86_64"
-+	    ;;
-+	  ppc*-*linux*|powerpc*-*linux*)
-+	    LD="${LD-ld} -m elf64ppc"
-+	    ;;
-+	  s390*-*linux*|s390*-*tpf*)
-+	    LD="${LD-ld} -m elf64_s390"
-+	    ;;
-+	  sparc*-*linux*)
-+	    LD="${LD-ld} -m elf64_sparc"
-+	    ;;
-+	esac
-+	;;
-+    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"
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-+if ${lt_cv_cc_needs_belf+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  lt_cv_cc_needs_belf=yes
-+else
-+  lt_cv_cc_needs_belf=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+     ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-+$as_echo "$lt_cv_cc_needs_belf" >&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
-+  ;;
-+*-*solaris*)
-+  # Find out which ABI we are using.
-+  echo 'int i;' > conftest.$ac_ext
-+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-+  (eval $ac_compile) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; then
-+    case `/usr/bin/file conftest.o` in
-+    *64-bit*)
-+      case $lt_cv_prog_gnu_ld in
-+      yes*)
-+        case $host in
-+        i?86-*-solaris*)
-+          LD="${LD-ld} -m elf_x86_64"
-+          ;;
-+        sparc*-*-solaris*)
-+          LD="${LD-ld} -m elf64_sparc"
-+          ;;
-+        esac
-+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-+          LD="${LD-ld}_sol2"
-+        fi
-+        ;;
-+      *)
-+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-+	  LD="${LD-ld} -64"
-+	fi
-+	;;
-+      esac
-+      ;;
-+    esac
-+  fi
-+  rm -rf conftest*
-+  ;;
-+esac
-+
-+need_locks="$enable_libtool_lock"
-+
-+if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}mt; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$MANIFEST_TOOL"; then
-+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-+if test -n "$MANIFEST_TOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-+$as_echo "$MANIFEST_TOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
-+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
-+  # Extract the first word of "mt", so it can be a program name with args.
-+set dummy mt; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_MANIFEST_TOOL"; then
-+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-+if test -n "$ac_ct_MANIFEST_TOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
-+    MANIFEST_TOOL=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
-+  fi
-+else
-+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-+fi
-+
-+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-+if ${lt_cv_path_mainfest_tool+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_path_mainfest_tool=no
-+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
-+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-+  cat conftest.err >&5
-+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-+    lt_cv_path_mainfest_tool=yes
-+  fi
-+  rm -f conftest*
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-+if test "x$lt_cv_path_mainfest_tool" != xyes; then
-+  MANIFEST_TOOL=:
-+fi
-+
-+
-+
-+
-+
-+
-+  case $host_os in
-+    rhapsody* | darwin*)
-+    if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_DSYMUTIL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$DSYMUTIL"; then
-+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+DSYMUTIL=$ac_cv_prog_DSYMUTIL
-+if test -n "$DSYMUTIL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-+$as_echo "$DSYMUTIL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_DSYMUTIL"; then
-+  ac_ct_DSYMUTIL=$DSYMUTIL
-+  # Extract the first word of "dsymutil", so it can be a program name with args.
-+set dummy dsymutil; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_DSYMUTIL"; then
-+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-+if test -n "$ac_ct_DSYMUTIL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-+$as_echo "$ac_ct_DSYMUTIL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_DSYMUTIL" = x; then
-+    DSYMUTIL=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    DSYMUTIL=$ac_ct_DSYMUTIL
-+  fi
-+else
-+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-+fi
-+
-+    if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_NMEDIT+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$NMEDIT"; then
-+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+NMEDIT=$ac_cv_prog_NMEDIT
-+if test -n "$NMEDIT"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-+$as_echo "$NMEDIT" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_NMEDIT"; then
-+  ac_ct_NMEDIT=$NMEDIT
-+  # Extract the first word of "nmedit", so it can be a program name with args.
-+set dummy nmedit; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_NMEDIT"; then
-+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-+if test -n "$ac_ct_NMEDIT"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-+$as_echo "$ac_ct_NMEDIT" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_NMEDIT" = x; then
-+    NMEDIT=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    NMEDIT=$ac_ct_NMEDIT
-+  fi
-+else
-+  NMEDIT="$ac_cv_prog_NMEDIT"
-+fi
-+
-+    if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}lipo; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_LIPO+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$LIPO"; then
-+  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+LIPO=$ac_cv_prog_LIPO
-+if test -n "$LIPO"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-+$as_echo "$LIPO" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_LIPO"; then
-+  ac_ct_LIPO=$LIPO
-+  # Extract the first word of "lipo", so it can be a program name with args.
-+set dummy lipo; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_LIPO"; then
-+  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_LIPO="lipo"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-+if test -n "$ac_ct_LIPO"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-+$as_echo "$ac_ct_LIPO" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_LIPO" = x; then
-+    LIPO=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    LIPO=$ac_ct_LIPO
-+  fi
-+else
-+  LIPO="$ac_cv_prog_LIPO"
-+fi
-+
-+    if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}otool; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_OTOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$OTOOL"; then
-+  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+OTOOL=$ac_cv_prog_OTOOL
-+if test -n "$OTOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-+$as_echo "$OTOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_OTOOL"; then
-+  ac_ct_OTOOL=$OTOOL
-+  # Extract the first word of "otool", so it can be a program name with args.
-+set dummy otool; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_OTOOL"; then
-+  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_OTOOL="otool"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-+if test -n "$ac_ct_OTOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-+$as_echo "$ac_ct_OTOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_OTOOL" = x; then
-+    OTOOL=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    OTOOL=$ac_ct_OTOOL
-+  fi
-+else
-+  OTOOL="$ac_cv_prog_OTOOL"
-+fi
-+
-+    if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}otool64; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_OTOOL64+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$OTOOL64"; then
-+  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+OTOOL64=$ac_cv_prog_OTOOL64
-+if test -n "$OTOOL64"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-+$as_echo "$OTOOL64" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_OTOOL64"; then
-+  ac_ct_OTOOL64=$OTOOL64
-+  # Extract the first word of "otool64", so it can be a program name with args.
-+set dummy otool64; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_OTOOL64"; then
-+  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+    ac_cv_prog_ac_ct_OTOOL64="otool64"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-+if test -n "$ac_ct_OTOOL64"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-+$as_echo "$ac_ct_OTOOL64" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_OTOOL64" = x; then
-+    OTOOL64=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    OTOOL64=$ac_ct_OTOOL64
-+  fi
-+else
-+  OTOOL64="$ac_cv_prog_OTOOL64"
-+fi
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-+$as_echo_n "checking for -single_module linker flag... " >&6; }
-+if ${lt_cv_apple_cc_single_mod+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_apple_cc_single_mod=no
-+      if test -z "${LT_MULTI_MODULE}"; then
-+	# By default we will add the -single_module flag. You can override
-+	# by either setting the environment variable LT_MULTI_MODULE
-+	# non-empty at configure time, or by adding -multi_module to the
-+	# link flags.
-+	rm -rf libconftest.dylib*
-+	echo "int foo(void){return 1;}" > conftest.c
-+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-+-dynamiclib -Wl,-single_module conftest.c" >&5
-+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-+        _lt_result=$?
-+	# If there is a non-empty error log, and "single_module"
-+	# appears in it, assume the flag caused a linker warning
-+        if test -s conftest.err && $GREP single_module conftest.err; then
-+	  cat conftest.err >&5
-+	# Otherwise, if the output was created with a 0 exit code from
-+	# the compiler, it worked.
-+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
-+	  lt_cv_apple_cc_single_mod=yes
-+	else
-+	  cat conftest.err >&5
-+	fi
-+	rm -rf libconftest.dylib*
-+	rm -f conftest.*
-+      fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-+if ${lt_cv_ld_exported_symbols_list+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_ld_exported_symbols_list=no
-+      save_LDFLAGS=$LDFLAGS
-+      echo "_main" > conftest.sym
-+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  lt_cv_ld_exported_symbols_list=yes
-+else
-+  lt_cv_ld_exported_symbols_list=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+	LDFLAGS="$save_LDFLAGS"
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-+$as_echo_n "checking for -force_load linker flag... " >&6; }
-+if ${lt_cv_ld_force_load+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_ld_force_load=no
-+      cat > conftest.c << _LT_EOF
-+int forced_loaded() { return 2;}
-+_LT_EOF
-+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
-+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
-+      echo "$AR cru libconftest.a conftest.o" >&5
-+      $AR cru libconftest.a conftest.o 2>&5
-+      echo "$RANLIB libconftest.a" >&5
-+      $RANLIB libconftest.a 2>&5
-+      cat > conftest.c << _LT_EOF
-+int main() { return 0;}
-+_LT_EOF
-+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
-+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-+      _lt_result=$?
-+      if test -s conftest.err && $GREP force_load conftest.err; then
-+	cat conftest.err >&5
-+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
-+	lt_cv_ld_force_load=yes
-+      else
-+	cat conftest.err >&5
-+      fi
-+        rm -f conftest.err libconftest.a conftest conftest.c
-+        rm -rf conftest.dSYM
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-+$as_echo "$lt_cv_ld_force_load" >&6; }
-+    case $host_os in
-+    rhapsody* | darwin1.[012])
-+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-+    darwin1.*)
-+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-+    darwin*) # darwin 5.x on
-+      # if running on 10.5 or later, the deployment target defaults
-+      # to the OS version, if on x86, and 10.4, the deployment
-+      # target defaults to 10.4. Don't you love it?
-+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-+	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-+	10.[012]*)
-+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-+	10.*)
-+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-+      esac
-+    ;;
-+  esac
-+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-+      _lt_dar_single_mod='$single_module'
-+    fi
-+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-+    else
-+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-+    fi
-+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-+      _lt_dsymutil='~$DSYMUTIL $lib || :'
-+    else
-+      _lt_dsymutil=
-+    fi
-+    ;;
-+  esac
-+
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-+$as_echo_n "checking how to run the C preprocessor... " >&6; }
-+# On Suns, sometimes $CPP names a directory.
-+if test -n "$CPP" && test -d "$CPP"; then
-+  CPP=
-+fi
-+if test -z "$CPP"; then
-+  if ${ac_cv_prog_CPP+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+      # Double quotes because CPP needs to be expanded
-+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-+    do
-+      ac_preproc_ok=false
-+for ac_c_preproc_warn_flag in '' yes
-+do
-+  # Use a header file that comes with gcc, so configuring glibc
-+  # with a fresh cross-compiler works.
-+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-+  # <limits.h> exists even on freestanding compilers.
-+  # On the NeXT, cc -E runs the code through the compiler's parser,
-+  # not just through cpp. "Syntax error" is here to catch this case.
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#ifdef __STDC__
-+# include <limits.h>
-+#else
-+# include <assert.h>
-+#endif
-+		     Syntax error
-+_ACEOF
-+if ac_fn_c_try_cpp "$LINENO"; then :
-+
-+else
-+  # Broken: fails on valid input.
-+continue
-+fi
-+rm -f conftest.err conftest.i conftest.$ac_ext
-+
-+  # OK, works on sane cases.  Now check whether nonexistent headers
-+  # can be detected and how.
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <ac_nonexistent.h>
-+_ACEOF
-+if ac_fn_c_try_cpp "$LINENO"; then :
-+  # Broken: success on invalid input.
-+continue
-+else
-+  # Passes both tests.
-+ac_preproc_ok=:
-+break
-+fi
-+rm -f conftest.err conftest.i conftest.$ac_ext
-+
-+done
-+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-+rm -f conftest.i conftest.err conftest.$ac_ext
-+if $ac_preproc_ok; then :
-+  break
-+fi
-+
-+    done
-+    ac_cv_prog_CPP=$CPP
-+
-+fi
-+  CPP=$ac_cv_prog_CPP
-+else
-+  ac_cv_prog_CPP=$CPP
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-+$as_echo "$CPP" >&6; }
-+ac_preproc_ok=false
-+for ac_c_preproc_warn_flag in '' yes
-+do
-+  # Use a header file that comes with gcc, so configuring glibc
-+  # with a fresh cross-compiler works.
-+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-+  # <limits.h> exists even on freestanding compilers.
-+  # On the NeXT, cc -E runs the code through the compiler's parser,
-+  # not just through cpp. "Syntax error" is here to catch this case.
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#ifdef __STDC__
-+# include <limits.h>
-+#else
-+# include <assert.h>
-+#endif
-+		     Syntax error
-+_ACEOF
-+if ac_fn_c_try_cpp "$LINENO"; then :
-+
-+else
-+  # Broken: fails on valid input.
-+continue
-+fi
-+rm -f conftest.err conftest.i conftest.$ac_ext
-+
-+  # OK, works on sane cases.  Now check whether nonexistent headers
-+  # can be detected and how.
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <ac_nonexistent.h>
-+_ACEOF
-+if ac_fn_c_try_cpp "$LINENO"; then :
-+  # Broken: success on invalid input.
-+continue
-+else
-+  # Passes both tests.
-+ac_preproc_ok=:
-+break
-+fi
-+rm -f conftest.err conftest.i conftest.$ac_ext
-+
-+done
-+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-+rm -f conftest.i conftest.err conftest.$ac_ext
-+if $ac_preproc_ok; then :
-+
-+else
-+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-+See \`config.log' for more details" "$LINENO" 5; }
-+fi
-+
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-+$as_echo_n "checking for ANSI C header files... " >&6; }
-+if ${ac_cv_header_stdc+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <string.h>
-+#include <float.h>
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_header_stdc=yes
-+else
-+  ac_cv_header_stdc=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+if test $ac_cv_header_stdc = yes; then
-+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <string.h>
-+
-+_ACEOF
-+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-+  $EGREP "memchr" >/dev/null 2>&1; then :
-+
-+else
-+  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdlib.h>
-+
-+_ACEOF
-+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-+  $EGREP "free" >/dev/null 2>&1; then :
-+
-+else
-+  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <ctype.h>
-+#include <stdlib.h>
-+#if ((' ' & 0x0FF) == 0x020)
-+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-+#else
-+# define ISLOWER(c) \
-+		   (('a' <= (c) && (c) <= 'i') \
-+		     || ('j' <= (c) && (c) <= 'r') \
-+		     || ('s' <= (c) && (c) <= 'z'))
-+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-+#endif
-+
-+#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))
-+      return 2;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_run "$LINENO"; then :
-+
-+else
-+  ac_cv_header_stdc=no
-+fi
-+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-+  conftest.$ac_objext conftest.beam conftest.$ac_ext
-+fi
-+
-+fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-+$as_echo "$ac_cv_header_stdc" >&6; }
-+if test $ac_cv_header_stdc = yes; then
-+
-+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-+
-+fi
-+
-+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-+		  inttypes.h stdint.h unistd.h
-+do :
-+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-+"
-+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+
-+done
-+
-+
-+for ac_header in dlfcn.h
-+do :
-+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-+"
-+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_DLFCN_H 1
-+_ACEOF
-+
-+fi
-+
-+done
-+
-+
-+
-+
-+
-+# Set options
-+
-+
-+
-+        enable_dlopen=no
-+
-+
-+  enable_win32_dll=no
-+
-+
-+            # Check whether --enable-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.
-+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-+      for pkg in $enableval; do
-+	IFS="$lt_save_ifs"
-+	if test "X$pkg" = "X$p"; then
-+	  enable_shared=yes
-+	fi
-+      done
-+      IFS="$lt_save_ifs"
-+      ;;
-+    esac
-+else
-+  enable_shared=yes
-+fi
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+  # Check whether --enable-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.
-+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-+      for pkg in $enableval; do
-+	IFS="$lt_save_ifs"
-+	if test "X$pkg" = "X$p"; then
-+	  enable_static=yes
-+	fi
-+      done
-+      IFS="$lt_save_ifs"
-+      ;;
-+    esac
-+else
-+  enable_static=yes
-+fi
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+# Check whether --with-pic was given.
-+if test "${with_pic+set}" = set; then :
-+  withval=$with_pic; lt_p=${PACKAGE-default}
-+    case $withval in
-+    yes|no) pic_mode=$withval ;;
-+    *)
-+      pic_mode=default
-+      # Look at the argument we got.  We use all the common list separators.
-+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-+      for lt_pkg in $withval; do
-+	IFS="$lt_save_ifs"
-+	if test "X$lt_pkg" = "X$lt_p"; then
-+	  pic_mode=yes
-+	fi
-+      done
-+      IFS="$lt_save_ifs"
-+      ;;
-+    esac
-+else
-+  pic_mode=default
-+fi
-+
-+
-+test -z "$pic_mode" && pic_mode=default
-+
-+
-+
-+
-+
-+
-+
-+  # Check whether --enable-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.
-+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-+      for pkg in $enableval; do
-+	IFS="$lt_save_ifs"
-+	if test "X$pkg" = "X$p"; then
-+	  enable_fast_install=yes
-+	fi
-+      done
-+      IFS="$lt_save_ifs"
-+      ;;
-+    esac
-+else
-+  enable_fast_install=yes
-+fi
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+# This can be used to rebuild libtool when needed
-+LIBTOOL_DEPS="$ltmain"
-+
-+# Always use our own libtool.
-+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+test -z "$LN_S" && LN_S="ln -s"
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+if test -n "${ZSH_VERSION+set}" ; then
-+   setopt NO_GLOB_SUBST
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-+$as_echo_n "checking for objdir... " >&6; }
-+if ${lt_cv_objdir+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  rm -f .libs 2>/dev/null
-+mkdir .libs 2>/dev/null
-+if test -d .libs; then
-+  lt_cv_objdir=.libs
-+else
-+  # MS-DOS does not allow filenames that begin with a dot.
-+  lt_cv_objdir=_libs
-+fi
-+rmdir .libs 2>/dev/null
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-+$as_echo "$lt_cv_objdir" >&6; }
-+objdir=$lt_cv_objdir
-+
-+
-+
-+
-+
-+cat >>confdefs.h <<_ACEOF
-+#define LT_OBJDIR "$lt_cv_objdir/"
-+_ACEOF
-+
-+
-+
-+
-+case $host_os in
-+aix3*)
-+  # AIX sometimes has problems with the GCC collect2 program.  For some
-+  # reason, if we set the COLLECT_NAMES environment variable, the problems
-+  # vanish in a puff of smoke.
-+  if test "X${COLLECT_NAMES+set}" != Xset; then
-+    COLLECT_NAMES=
-+    export COLLECT_NAMES
-+  fi
-+  ;;
-+esac
-+
-+# Global variables:
-+ofile=libtool
-+can_build_shared=yes
-+
-+# All known linkers require a `.a' archive for static linking (except MSVC,
-+# which needs '.lib').
-+libext=a
-+
-+with_gnu_ld="$lt_cv_prog_gnu_ld"
-+
-+old_CC="$CC"
-+old_CFLAGS="$CFLAGS"
-+
-+# Set sane defaults for various variables
-+test -z "$CC" && CC=cc
-+test -z "$LTCC" && LTCC=$CC
-+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-+test -z "$LD" && LD=ld
-+test -z "$ac_objext" && ac_objext=o
-+
-+for cc_temp in $compiler""; do
-+  case $cc_temp in
-+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-+    \-*) ;;
-+    *) break;;
-+  esac
-+done
-+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-+
-+
-+# Only perform the check for file, if the check method requires it
-+test -z "$MAGIC_CMD" && MAGIC_CMD=file
-+case $deplibs_check_method in
-+file_magic*)
-+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-+if ${lt_cv_path_MAGIC_CMD+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  case $MAGIC_CMD in
-+[\\/*] |  ?:[\\/]*)
-+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-+  ;;
-+*)
-+  lt_save_MAGIC_CMD="$MAGIC_CMD"
-+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-+  for ac_dir in $ac_dummy; do
-+    IFS="$lt_save_ifs"
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f $ac_dir/${ac_tool_prefix}file; then
-+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-+      if test -n "$file_magic_test_file"; then
-+	case $deplibs_check_method in
-+	"file_magic "*)
-+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-+	    $EGREP "$file_magic_regex" > /dev/null; then
-+	    :
-+	  else
-+	    cat <<_LT_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 at gnu.org
-+
-+_LT_EOF
-+	  fi ;;
-+	esac
-+      fi
-+      break
-+    fi
-+  done
-+  IFS="$lt_save_ifs"
-+  MAGIC_CMD="$lt_save_MAGIC_CMD"
-+  ;;
-+esac
-+fi
-+
-+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-+if test -n "$MAGIC_CMD"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-+$as_echo "$MAGIC_CMD" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+
-+
-+
-+if test -z "$lt_cv_path_MAGIC_CMD"; then
-+  if test -n "$ac_tool_prefix"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-+$as_echo_n "checking for file... " >&6; }
-+if ${lt_cv_path_MAGIC_CMD+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  case $MAGIC_CMD in
-+[\\/*] |  ?:[\\/]*)
-+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-+  ;;
-+*)
-+  lt_save_MAGIC_CMD="$MAGIC_CMD"
-+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-+  for ac_dir in $ac_dummy; do
-+    IFS="$lt_save_ifs"
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f $ac_dir/file; then
-+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-+      if test -n "$file_magic_test_file"; then
-+	case $deplibs_check_method in
-+	"file_magic "*)
-+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-+	    $EGREP "$file_magic_regex" > /dev/null; then
-+	    :
-+	  else
-+	    cat <<_LT_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 at gnu.org
-+
-+_LT_EOF
-+	  fi ;;
-+	esac
-+      fi
-+      break
-+    fi
-+  done
-+  IFS="$lt_save_ifs"
-+  MAGIC_CMD="$lt_save_MAGIC_CMD"
-+  ;;
-+esac
-+fi
-+
-+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-+if test -n "$MAGIC_CMD"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-+$as_echo "$MAGIC_CMD" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+  else
-+    MAGIC_CMD=:
-+  fi
-+fi
-+
-+  fi
-+  ;;
-+esac
-+
-+# Use C for the default configuration in the libtool script
-+
-+lt_save_CC="$CC"
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+# Source file extension for C test sources.
-+ac_ext=c
-+
-+# Object file extension for compiled C test sources.
-+objext=o
-+objext=$objext
-+
-+# Code to be used in simple compile tests
-+lt_simple_compile_test_code="int some_variable = 0;"
-+
-+# Code to be used in simple link tests
-+lt_simple_link_test_code='int main(){return(0);}'
-+
-+
-+
-+
-+
-+
-+
-+# If no C compiler was specified, use CC.
-+LTCC=${LTCC-"$CC"}
-+
-+# If no C compiler flags were specified, use CFLAGS.
-+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-+
-+# Allow CC to be a program name with arguments.
-+compiler=$CC
-+
-+# Save the default compiler, since it gets overwritten when the other
-+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-+compiler_DEFAULT=$CC
-+
-+# save warnings/boilerplate of simple test code
-+ac_outfile=conftest.$ac_objext
-+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-+_lt_compiler_boilerplate=`cat conftest.err`
-+$RM conftest*
-+
-+ac_outfile=conftest.$ac_objext
-+echo "$lt_simple_link_test_code" >conftest.$ac_ext
-+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-+_lt_linker_boilerplate=`cat conftest.err`
-+$RM -r conftest*
-+
-+
-+## CAVEAT EMPTOR:
-+## There is no encapsulation within the following macros, do not change
-+## the running order or otherwise move them around unless you know exactly
-+## what you are doing...
-+if test -n "$compiler"; then
-+
-+lt_prog_compiler_no_builtin_flag=
-+
-+if test "$GCC" = yes; then
-+  case $cc_basename in
-+  nvcc*)
-+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
-+  *)
-+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
-+  esac
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_prog_compiler_rtti_exceptions=no
-+   ac_outfile=conftest.$ac_objext
-+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-+   lt_compiler_flag="-fno-rtti -fno-exceptions"
-+   # Insert the option either (1) after the last *FLAGS variable, or
-+   # (2) before a word containing "conftest.", or (3) at the end.
-+   # Note that $ac_compile itself does not contain backslashes and begins
-+   # with a dollar sign (not a hyphen), so the echo should work correctly.
-+   # The option is referenced via a variable to avoid confusing sed.
-+   lt_compile=`echo "$ac_compile" | $SED \
-+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-+   -e 's:$: $lt_compiler_flag:'`
-+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-+   (eval "$lt_compile" 2>conftest.err)
-+   ac_status=$?
-+   cat conftest.err >&5
-+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+   if (exit $ac_status) && test -s "$ac_outfile"; then
-+     # The compiler can only warn and ignore the option if not recognized
-+     # So say no if there are warnings other than the usual output.
-+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-+       lt_cv_prog_compiler_rtti_exceptions=yes
-+     fi
-+   fi
-+   $RM conftest*
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-+
-+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-+else
-+    :
-+fi
-+
-+fi
-+
-+
-+
-+
-+
-+
-+  lt_prog_compiler_wl=
-+lt_prog_compiler_pic=
-+lt_prog_compiler_static=
-+
-+
-+  if test "$GCC" = yes; then
-+    lt_prog_compiler_wl='-Wl,'
-+    lt_prog_compiler_static='-static'
-+
-+    case $host_os in
-+      aix*)
-+      # All AIX code is PIC.
-+      if test "$host_cpu" = ia64; then
-+	# AIX 5 now supports IA64 processor
-+	lt_prog_compiler_static='-Bstatic'
-+      fi
-+      ;;
-+
-+    amigaos*)
-+      case $host_cpu in
-+      powerpc)
-+            # see comment about AmigaOS4 .so support
-+            lt_prog_compiler_pic='-fPIC'
-+        ;;
-+      m68k)
-+            # FIXME: we need at least 68020 code to build shared libraries, but
-+            # adding the `-m68020' flag to GCC prevents building anything better,
-+            # like `-m68040'.
-+            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-+        ;;
-+      esac
-+      ;;
-+
-+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-+      # PIC is the default for these OSes.
-+      ;;
-+
-+    mingw* | cygwin* | pw32* | os2* | cegcc*)
-+      # This hack is so that the source file can tell whether it is being
-+      # built for inclusion in a dll (and should export symbols for example).
-+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-+      # (--disable-auto-import) libraries
-+      lt_prog_compiler_pic='-DDLL_EXPORT'
-+      ;;
-+
-+    darwin* | rhapsody*)
-+      # PIC is the default on this platform
-+      # Common symbols not allowed in MH_DYLIB files
-+      lt_prog_compiler_pic='-fno-common'
-+      ;;
-+
-+    haiku*)
-+      # PIC is the default for Haiku.
-+      # The "-static" flag exists, but is broken.
-+      lt_prog_compiler_static=
-+      ;;
-+
-+    hpux*)
-+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-+      # sets the default TLS model and affects inlining.
-+      case $host_cpu in
-+      hppa*64*)
-+	# +Z the default
-+	;;
-+      *)
-+	lt_prog_compiler_pic='-fPIC'
-+	;;
-+      esac
-+      ;;
-+
-+    interix[3-9]*)
-+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-+      # Instead, we relocate shared libraries at runtime.
-+      ;;
-+
-+    msdosdjgpp*)
-+      # Just because we use GCC doesn't mean we suddenly get shared libraries
-+      # on systems that don't support them.
-+      lt_prog_compiler_can_build_shared=no
-+      enable_shared=no
-+      ;;
-+
-+    *nto* | *qnx*)
-+      # QNX uses GNU C++, but need to define -shared option too, otherwise
-+      # it will coredump.
-+      lt_prog_compiler_pic='-fPIC -shared'
-+      ;;
-+
-+    sysv4*MP*)
-+      if test -d /usr/nec; then
-+	lt_prog_compiler_pic=-Kconform_pic
-+      fi
-+      ;;
-+
-+    *)
-+      lt_prog_compiler_pic='-fPIC'
-+      ;;
-+    esac
-+
-+    case $cc_basename in
-+    nvcc*) # Cuda Compiler Driver 2.2
-+      lt_prog_compiler_wl='-Xlinker '
-+      if test -n "$lt_prog_compiler_pic"; then
-+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
-+      fi
-+      ;;
-+    esac
-+  else
-+    # PORTME Check for flag to pass linker flags through the system compiler.
-+    case $host_os in
-+    aix*)
-+      lt_prog_compiler_wl='-Wl,'
-+      if test "$host_cpu" = ia64; then
-+	# AIX 5 now supports IA64 processor
-+	lt_prog_compiler_static='-Bstatic'
-+      else
-+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-+      fi
-+      ;;
-+
-+    mingw* | cygwin* | pw32* | os2* | cegcc*)
-+      # This hack is so that the source file can tell whether it is being
-+      # built for inclusion in a dll (and should export symbols for example).
-+      lt_prog_compiler_pic='-DDLL_EXPORT'
-+      ;;
-+
-+    hpux9* | hpux10* | hpux11*)
-+      lt_prog_compiler_wl='-Wl,'
-+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-+      # not for PA HP-UX.
-+      case $host_cpu in
-+      hppa*64*|ia64*)
-+	# +Z the default
-+	;;
-+      *)
-+	lt_prog_compiler_pic='+Z'
-+	;;
-+      esac
-+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-+      lt_prog_compiler_static='${wl}-a ${wl}archive'
-+      ;;
-+
-+    irix5* | irix6* | nonstopux*)
-+      lt_prog_compiler_wl='-Wl,'
-+      # PIC (with -KPIC) is the default.
-+      lt_prog_compiler_static='-non_shared'
-+      ;;
-+
-+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-+      case $cc_basename in
-+      # old Intel for x86_64 which still supported -KPIC.
-+      ecc*)
-+	lt_prog_compiler_wl='-Wl,'
-+	lt_prog_compiler_pic='-KPIC'
-+	lt_prog_compiler_static='-static'
-+        ;;
-+      # icc used to be incompatible with GCC.
-+      # ICC 10 doesn't accept -KPIC any more.
-+      icc* | ifort*)
-+	lt_prog_compiler_wl='-Wl,'
-+	lt_prog_compiler_pic='-fPIC'
-+	lt_prog_compiler_static='-static'
-+        ;;
-+      # Lahey Fortran 8.1.
-+      lf95*)
-+	lt_prog_compiler_wl='-Wl,'
-+	lt_prog_compiler_pic='--shared'
-+	lt_prog_compiler_static='--static'
-+	;;
-+      nagfor*)
-+	# NAG Fortran compiler
-+	lt_prog_compiler_wl='-Wl,-Wl,,'
-+	lt_prog_compiler_pic='-PIC'
-+	lt_prog_compiler_static='-Bstatic'
-+	;;
-+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-+        # Portland Group compilers (*not* the Pentium gcc compiler,
-+	# which looks to be a dead project)
-+	lt_prog_compiler_wl='-Wl,'
-+	lt_prog_compiler_pic='-fpic'
-+	lt_prog_compiler_static='-Bstatic'
-+        ;;
-+      ccc*)
-+        lt_prog_compiler_wl='-Wl,'
-+        # All Alpha code is PIC.
-+        lt_prog_compiler_static='-non_shared'
-+        ;;
-+      xl* | bgxl* | bgf* | mpixl*)
-+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-+	lt_prog_compiler_wl='-Wl,'
-+	lt_prog_compiler_pic='-qpic'
-+	lt_prog_compiler_static='-qstaticlink'
-+	;;
-+      *)
-+	case `$CC -V 2>&1 | sed 5q` in
-+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
-+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-+	  lt_prog_compiler_pic='-KPIC'
-+	  lt_prog_compiler_static='-Bstatic'
-+	  lt_prog_compiler_wl=''
-+	  ;;
-+	*Sun\ F* | *Sun*Fortran*)
-+	  lt_prog_compiler_pic='-KPIC'
-+	  lt_prog_compiler_static='-Bstatic'
-+	  lt_prog_compiler_wl='-Qoption ld '
-+	  ;;
-+	*Sun\ C*)
-+	  # Sun C 5.9
-+	  lt_prog_compiler_pic='-KPIC'
-+	  lt_prog_compiler_static='-Bstatic'
-+	  lt_prog_compiler_wl='-Wl,'
-+	  ;;
-+        *Intel*\ [CF]*Compiler*)
-+	  lt_prog_compiler_wl='-Wl,'
-+	  lt_prog_compiler_pic='-fPIC'
-+	  lt_prog_compiler_static='-static'
-+	  ;;
-+	*Portland\ Group*)
-+	  lt_prog_compiler_wl='-Wl,'
-+	  lt_prog_compiler_pic='-fpic'
-+	  lt_prog_compiler_static='-Bstatic'
-+	  ;;
-+	esac
-+	;;
-+      esac
-+      ;;
-+
-+    newsos6)
-+      lt_prog_compiler_pic='-KPIC'
-+      lt_prog_compiler_static='-Bstatic'
-+      ;;
-+
-+    *nto* | *qnx*)
-+      # QNX uses GNU C++, but need to define -shared option too, otherwise
-+      # it will coredump.
-+      lt_prog_compiler_pic='-fPIC -shared'
-+      ;;
-+
-+    osf3* | osf4* | osf5*)
-+      lt_prog_compiler_wl='-Wl,'
-+      # All OSF/1 code is PIC.
-+      lt_prog_compiler_static='-non_shared'
-+      ;;
-+
-+    rdos*)
-+      lt_prog_compiler_static='-non_shared'
-+      ;;
-+
-+    solaris*)
-+      lt_prog_compiler_pic='-KPIC'
-+      lt_prog_compiler_static='-Bstatic'
-+      case $cc_basename in
-+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-+	lt_prog_compiler_wl='-Qoption ld ';;
-+      *)
-+	lt_prog_compiler_wl='-Wl,';;
-+      esac
-+      ;;
-+
-+    sunos4*)
-+      lt_prog_compiler_wl='-Qoption ld '
-+      lt_prog_compiler_pic='-PIC'
-+      lt_prog_compiler_static='-Bstatic'
-+      ;;
-+
-+    sysv4 | sysv4.2uw2* | sysv4.3*)
-+      lt_prog_compiler_wl='-Wl,'
-+      lt_prog_compiler_pic='-KPIC'
-+      lt_prog_compiler_static='-Bstatic'
-+      ;;
-+
-+    sysv4*MP*)
-+      if test -d /usr/nec ;then
-+	lt_prog_compiler_pic='-Kconform_pic'
-+	lt_prog_compiler_static='-Bstatic'
-+      fi
-+      ;;
-+
-+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-+      lt_prog_compiler_wl='-Wl,'
-+      lt_prog_compiler_pic='-KPIC'
-+      lt_prog_compiler_static='-Bstatic'
-+      ;;
-+
-+    unicos*)
-+      lt_prog_compiler_wl='-Wl,'
-+      lt_prog_compiler_can_build_shared=no
-+      ;;
-+
-+    uts4*)
-+      lt_prog_compiler_pic='-pic'
-+      lt_prog_compiler_static='-Bstatic'
-+      ;;
-+
-+    *)
-+      lt_prog_compiler_can_build_shared=no
-+      ;;
-+    esac
-+  fi
-+
-+case $host_os in
-+  # For platforms which do not support PIC, -DPIC is meaningless:
-+  *djgpp*)
-+    lt_prog_compiler_pic=
-+    ;;
-+  *)
-+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-+    ;;
-+esac
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-+if ${lt_cv_prog_compiler_pic+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-+
-+#
-+# Check to make sure the PIC flag actually works.
-+#
-+if test -n "$lt_prog_compiler_pic"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-+if ${lt_cv_prog_compiler_pic_works+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_prog_compiler_pic_works=no
-+   ac_outfile=conftest.$ac_objext
-+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
-+   # Insert the option either (1) after the last *FLAGS variable, or
-+   # (2) before a word containing "conftest.", or (3) at the end.
-+   # Note that $ac_compile itself does not contain backslashes and begins
-+   # with a dollar sign (not a hyphen), so the echo should work correctly.
-+   # The option is referenced via a variable to avoid confusing sed.
-+   lt_compile=`echo "$ac_compile" | $SED \
-+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-+   -e 's:$: $lt_compiler_flag:'`
-+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-+   (eval "$lt_compile" 2>conftest.err)
-+   ac_status=$?
-+   cat conftest.err >&5
-+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+   if (exit $ac_status) && test -s "$ac_outfile"; then
-+     # The compiler can only warn and ignore the option if not recognized
-+     # So say no if there are warnings other than the usual output.
-+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-+       lt_cv_prog_compiler_pic_works=yes
-+     fi
-+   fi
-+   $RM conftest*
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-+
-+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
-+    case $lt_prog_compiler_pic in
-+     "" | " "*) ;;
-+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-+     esac
-+else
-+    lt_prog_compiler_pic=
-+     lt_prog_compiler_can_build_shared=no
-+fi
-+
-+fi
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+#
-+# Check to make sure the static flag actually works.
-+#
-+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-+if ${lt_cv_prog_compiler_static_works+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_prog_compiler_static_works=no
-+   save_LDFLAGS="$LDFLAGS"
-+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-+     # The linker can only warn and ignore the option if not recognized
-+     # So say no if there are warnings
-+     if test -s conftest.err; then
-+       # Append any errors to the config.log.
-+       cat conftest.err 1>&5
-+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-+       if diff conftest.exp conftest.er2 >/dev/null; then
-+         lt_cv_prog_compiler_static_works=yes
-+       fi
-+     else
-+       lt_cv_prog_compiler_static_works=yes
-+     fi
-+   fi
-+   $RM -r conftest*
-+   LDFLAGS="$save_LDFLAGS"
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-+
-+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
-+    :
-+else
-+    lt_prog_compiler_static=
-+fi
-+
-+
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-+if ${lt_cv_prog_compiler_c_o+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_prog_compiler_c_o=no
-+   $RM -r conftest 2>/dev/null
-+   mkdir conftest
-+   cd conftest
-+   mkdir out
-+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-+
-+   lt_compiler_flag="-o out/conftest2.$ac_objext"
-+   # Insert the option either (1) after the last *FLAGS variable, or
-+   # (2) before a word containing "conftest.", or (3) at the end.
-+   # Note that $ac_compile itself does not contain backslashes and begins
-+   # with a dollar sign (not a hyphen), so the echo should work correctly.
-+   lt_compile=`echo "$ac_compile" | $SED \
-+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-+   -e 's:$: $lt_compiler_flag:'`
-+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-+   (eval "$lt_compile" 2>out/conftest.err)
-+   ac_status=$?
-+   cat out/conftest.err >&5
-+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-+   then
-+     # The compiler can only warn and ignore the option if not recognized
-+     # So say no if there are warnings
-+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-+       lt_cv_prog_compiler_c_o=yes
-+     fi
-+   fi
-+   chmod u+w . 2>&5
-+   $RM conftest*
-+   # SGI C++ compiler will create directory out/ii_files/ for
-+   # template instantiation
-+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-+   $RM out/* && rmdir out
-+   cd ..
-+   $RM -r conftest
-+   $RM conftest*
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-+
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-+if ${lt_cv_prog_compiler_c_o+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_prog_compiler_c_o=no
-+   $RM -r conftest 2>/dev/null
-+   mkdir conftest
-+   cd conftest
-+   mkdir out
-+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-+
-+   lt_compiler_flag="-o out/conftest2.$ac_objext"
-+   # Insert the option either (1) after the last *FLAGS variable, or
-+   # (2) before a word containing "conftest.", or (3) at the end.
-+   # Note that $ac_compile itself does not contain backslashes and begins
-+   # with a dollar sign (not a hyphen), so the echo should work correctly.
-+   lt_compile=`echo "$ac_compile" | $SED \
-+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-+   -e 's:$: $lt_compiler_flag:'`
-+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-+   (eval "$lt_compile" 2>out/conftest.err)
-+   ac_status=$?
-+   cat out/conftest.err >&5
-+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-+   then
-+     # The compiler can only warn and ignore the option if not recognized
-+     # So say no if there are warnings
-+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-+       lt_cv_prog_compiler_c_o=yes
-+     fi
-+   fi
-+   chmod u+w . 2>&5
-+   $RM conftest*
-+   # SGI C++ compiler will create directory out/ii_files/ for
-+   # template instantiation
-+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-+   $RM out/* && rmdir out
-+   cd ..
-+   $RM -r conftest
-+   $RM conftest*
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-+
-+
-+
-+
-+hard_links="nottested"
-+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-+  # do not overwrite the value of need_locks provided by the user
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-+$as_echo_n "checking if we can lock with hard links... " >&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
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-+$as_echo "$hard_links" >&6; }
-+  if test "$hard_links" = no; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-+    need_locks=warn
-+  fi
-+else
-+  need_locks=no
-+fi
-+
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-+
-+  runpath_var=
-+  allow_undefined_flag=
-+  always_export_symbols=no
-+  archive_cmds=
-+  archive_expsym_cmds=
-+  compiler_needs_object=no
-+  enable_shared_with_static_runtimes=no
-+  export_dynamic_flag_spec=
-+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-+  hardcode_automatic=no
-+  hardcode_direct=no
-+  hardcode_direct_absolute=no
-+  hardcode_libdir_flag_spec=
-+  hardcode_libdir_separator=
-+  hardcode_minus_L=no
-+  hardcode_shlibpath_var=unsupported
-+  inherit_rpath=no
-+  link_all_deplibs=unknown
-+  module_cmds=
-+  module_expsym_cmds=
-+  old_archive_from_new_cmds=
-+  old_archive_from_expsyms_cmds=
-+  thread_safe_flag_spec=
-+  whole_archive_flag_spec=
-+  # 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 extended regexp 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_|_GLOBAL__F[ID]_.*'
-+  # 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.
-+  # Exclude shared library initialization/finalization symbols.
-+  extract_expsyms_cmds=
-+
-+  case $host_os in
-+  cygwin* | mingw* | pw32* | cegcc*)
-+    # 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 "$GCC" != yes; then
-+      with_gnu_ld=no
-+    fi
-+    ;;
-+  interix*)
-+    # we just hope/assume this is gcc and not c89 (= MSVC++)
-+    with_gnu_ld=yes
-+    ;;
-+  openbsd*)
-+    with_gnu_ld=no
-+    ;;
-+  linux* | k*bsd*-gnu | gnu*)
-+    link_all_deplibs=no
-+    ;;
-+  esac
-+
-+  ld_shlibs=yes
-+
-+  # On some targets, GNU ld is compatible enough with the native linker
-+  # that we're better off using the native interface for both.
-+  lt_use_gnu_ld_interface=no
-+  if test "$with_gnu_ld" = yes; then
-+    case $host_os in
-+      aix*)
-+	# The AIX port of GNU ld has always aspired to compatibility
-+	# with the native linker.  However, as the warning in the GNU ld
-+	# block says, versions before 2.19.5* couldn't really create working
-+	# shared libraries, regardless of the interface used.
-+	case `$LD -v 2>&1` in
-+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-+	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
-+	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
-+	  *)
-+	    lt_use_gnu_ld_interface=yes
-+	    ;;
-+	esac
-+	;;
-+      *)
-+	lt_use_gnu_ld_interface=yes
-+	;;
-+    esac
-+  fi
-+
-+  if test "$lt_use_gnu_ld_interface" = yes; then
-+    # If archive_cmds runs LD, not CC, wlarc should be empty
-+    wlarc='${wl}'
-+
-+    # Set some defaults for GNU ld with shared library support. These
-+    # are reset later if shared libraries are not supported. Putting them
-+    # here allows them to be overridden if necessary.
-+    runpath_var=LD_RUN_PATH
-+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+    export_dynamic_flag_spec='${wl}--export-dynamic'
-+    # ancient GNU ld didn't support --whole-archive et. al.
-+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-+      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-+    else
-+      whole_archive_flag_spec=
-+    fi
-+    supports_anon_versioning=no
-+    case `$LD -v 2>&1` in
-+      *GNU\ gold*) supports_anon_versioning=yes ;;
-+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-+      *\ 2.11.*) ;; # other 2.11 versions
-+      *) supports_anon_versioning=yes ;;
-+    esac
-+
-+    # See if GNU ld supports shared libraries.
-+    case $host_os in
-+    aix[3-9]*)
-+      # On AIX/PPC, the GNU linker is very broken
-+      if test "$host_cpu" != ia64; then
-+	ld_shlibs=no
-+	cat <<_LT_EOF 1>&2
-+
-+*** Warning: the GNU linker, at least up to release 2.19, 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 install binutils
-+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-+*** You will then need to restart the configuration process.
-+
-+_LT_EOF
-+      fi
-+      ;;
-+
-+    amigaos*)
-+      case $host_cpu in
-+      powerpc)
-+            # see comment about AmigaOS4 .so support
-+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+            archive_expsym_cmds=''
-+        ;;
-+      m68k)
-+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-+            hardcode_libdir_flag_spec='-L$libdir'
-+            hardcode_minus_L=yes
-+        ;;
-+      esac
-+      ;;
-+
-+    beos*)
-+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	allow_undefined_flag=unsupported
-+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-+	# support --undefined.  This deserves some investigation.  FIXME
-+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+      else
-+	ld_shlibs=no
-+      fi
-+      ;;
-+
-+    cygwin* | mingw* | pw32* | cegcc*)
-+      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-+      # as there is no search path for DLLs.
-+      hardcode_libdir_flag_spec='-L$libdir'
-+      export_dynamic_flag_spec='${wl}--export-all-symbols'
-+      allow_undefined_flag=unsupported
-+      always_export_symbols=no
-+      enable_shared_with_static_runtimes=yes
-+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-+
-+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-+	# If the export-symbols file already is a .def file (1st line
-+	# is EXPORTS), use it as is; otherwise, prepend...
-+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+	  cp $export_symbols $output_objdir/$soname.def;
-+	else
-+	  echo EXPORTS > $output_objdir/$soname.def;
-+	  cat $export_symbols >> $output_objdir/$soname.def;
-+	fi~
-+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-+      else
-+	ld_shlibs=no
-+      fi
-+      ;;
-+
-+    haiku*)
-+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+      link_all_deplibs=yes
-+      ;;
-+
-+    interix[3-9]*)
-+      hardcode_direct=no
-+      hardcode_shlibpath_var=no
-+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-+      export_dynamic_flag_spec='${wl}-E'
-+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-+      # Instead, shared libraries are loaded at an image base (0x10000000 by
-+      # default) and relocated if they conflict, which is a slow very memory
-+      # consuming and fragmenting process.  To avoid this, we pick a random,
-+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-+      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-+      ;;
-+
-+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-+      tmp_diet=no
-+      if test "$host_os" = linux-dietlibc; then
-+	case $cc_basename in
-+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-+	esac
-+      fi
-+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-+	 && test "$tmp_diet" = no
-+      then
-+	tmp_addflag=' $pic_flag'
-+	tmp_sharedflag='-shared'
-+	case $cc_basename,$host_cpu in
-+        pgcc*)				# Portland Group C compiler
-+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	  tmp_addflag=' $pic_flag'
-+	  ;;
-+	pgf77* | pgf90* | pgf95* | pgfortran*)
-+					# Portland Group f77 and f90 compilers
-+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	  tmp_addflag=' $pic_flag -Mnomain' ;;
-+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-+	  tmp_addflag=' -i_dynamic' ;;
-+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-+	ifc* | ifort*)			# Intel Fortran compiler
-+	  tmp_addflag=' -nofor_main' ;;
-+	lf95*)				# Lahey Fortran 8.1
-+	  whole_archive_flag_spec=
-+	  tmp_sharedflag='--shared' ;;
-+	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-+	  tmp_sharedflag='-qmkshrobj'
-+	  tmp_addflag= ;;
-+	nvcc*)	# Cuda Compiler Driver 2.2
-+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	  compiler_needs_object=yes
-+	  ;;
-+	esac
-+	case `$CC -V 2>&1 | sed 5q` in
-+	*Sun\ C*)			# Sun C 5.9
-+	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	  compiler_needs_object=yes
-+	  tmp_sharedflag='-G' ;;
-+	*Sun\ F*)			# Sun Fortran 8.3
-+	  tmp_sharedflag='-G' ;;
-+	esac
-+	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+
-+        if test "x$supports_anon_versioning" = xyes; then
-+          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-+	    echo "local: *; };" >> $output_objdir/$libname.ver~
-+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-+        fi
-+
-+	case $cc_basename in
-+	xlf* | bgf* | bgxlf* | mpixlf*)
-+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-+	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-+	  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-+	  if test "x$supports_anon_versioning" = xyes; then
-+	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-+	      echo "local: *; };" >> $output_objdir/$libname.ver~
-+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-+	  fi
-+	  ;;
-+	esac
-+      else
-+        ld_shlibs=no
-+      fi
-+      ;;
-+
-+    netbsd* | netbsdelf*-gnu)
-+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-+	wlarc=
-+      else
-+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+      fi
-+      ;;
-+
-+    solaris*)
-+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-+	ld_shlibs=no
-+	cat <<_LT_EOF 1>&2
-+
-+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-+*** create shared libraries on Solaris systems.  Therefore, libtool
-+*** is disabling shared libraries support.  We urge you to upgrade GNU
-+*** binutils to release 2.9.1 or newer.  Another option is to modify
-+*** your PATH or compiler configuration so that the native linker is
-+*** used, and then restart.
-+
-+_LT_EOF
-+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+      else
-+	ld_shlibs=no
-+      fi
-+      ;;
-+
-+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-+      case `$LD -v 2>&1` in
-+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-+	ld_shlibs=no
-+	cat <<_LT_EOF 1>&2
-+
-+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-+*** reliably create shared libraries on SCO systems.  Therefore, libtool
-+*** is disabling shared libraries support.  We urge you to upgrade GNU
-+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-+*** your PATH or compiler configuration so that the native linker is
-+*** used, and then restart.
-+
-+_LT_EOF
-+	;;
-+	*)
-+	  # For security reasons, it is highly recommended that you always
-+	  # use absolute paths for naming shared libraries, and exclude the
-+	  # DT_RUNPATH tag from executables and libraries.  But doing so
-+	  # requires that you compile everything twice, which is a pain.
-+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+	  else
-+	    ld_shlibs=no
-+	  fi
-+	;;
-+      esac
-+      ;;
-+
-+    sunos4*)
-+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-+      wlarc=
-+      hardcode_direct=yes
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    *)
-+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+      else
-+	ld_shlibs=no
-+      fi
-+      ;;
-+    esac
-+
-+    if test "$ld_shlibs" = no; then
-+      runpath_var=
-+      hardcode_libdir_flag_spec=
-+      export_dynamic_flag_spec=
-+      whole_archive_flag_spec=
-+    fi
-+  else
-+    # PORTME fill in a description of your system's linker (not GNU ld)
-+    case $host_os in
-+    aix3*)
-+      allow_undefined_flag=unsupported
-+      always_export_symbols=yes
-+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-+      # Note: this linker hardcodes the directories in LIBPATH if there
-+      # are no directories specified by -L.
-+      hardcode_minus_L=yes
-+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-+	# Neither direct hardcoding nor static linking is supported with a
-+	# broken collect2.
-+	hardcode_direct=unsupported
-+      fi
-+      ;;
-+
-+    aix[4-9]*)
-+      if test "$host_cpu" = ia64; then
-+	# On IA64, the linker does run time linking by default, so we don't
-+	# have to do anything special.
-+	aix_use_runtimelinking=no
-+	exp_sym_flag='-Bexport'
-+	no_entry_flag=""
-+      else
-+	# If we're using GNU nm, then we don't want the "-C" option.
-+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-+	# Also, AIX nm treats weak defined symbols like other global
-+	# defined symbols, whereas GNU nm marks them as "W".
-+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-+	else
-+	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-+	fi
-+	aix_use_runtimelinking=no
-+
-+	# Test if we are trying to use run time linking or normal
-+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-+	# need to do runtime linking.
-+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-+	  for ld_flag in $LDFLAGS; do
-+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-+	    aix_use_runtimelinking=yes
-+	    break
-+	  fi
-+	  done
-+	  ;;
-+	esac
-+
-+	exp_sym_flag='-bexport'
-+	no_entry_flag='-bnoentry'
-+      fi
-+
-+      # When large executables or shared objects are built, AIX ld can
-+      # have problems creating the table of contents.  If linking a library
-+      # or program results in "error TOC overflow" add -mminimal-toc to
-+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-+
-+      archive_cmds=''
-+      hardcode_direct=yes
-+      hardcode_direct_absolute=yes
-+      hardcode_libdir_separator=':'
-+      link_all_deplibs=yes
-+      file_list_spec='${wl}-f,'
-+
-+      if test "$GCC" = yes; then
-+	case $host_os in aix4.[012]|aix4.[012].*)
-+	# We only want to do this on AIX 4.2 and lower, the check
-+	# below for broken collect2 doesn't work under 4.3+
-+	  collect2name=`${CC} -print-prog-name=collect2`
-+	  if test -f "$collect2name" &&
-+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-+	  then
-+	  # We have reworked collect2
-+	  :
-+	  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
-+	  ;;
-+	esac
-+	shared_flag='-shared'
-+	if test "$aix_use_runtimelinking" = yes; then
-+	  shared_flag="$shared_flag "'${wl}-G'
-+	fi
-+	link_all_deplibs=no
-+      else
-+	# not using gcc
-+	if test "$host_cpu" = ia64; then
-+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-+	# chokes on -Wl,-G. The following line is correct:
-+	  shared_flag='-G'
-+	else
-+	  if test "$aix_use_runtimelinking" = yes; then
-+	    shared_flag='${wl}-G'
-+	  else
-+	    shared_flag='${wl}-bM:SRE'
-+	  fi
-+	fi
-+      fi
-+
-+      export_dynamic_flag_spec='${wl}-bexpall'
-+      # It seems that -bexpall does not export symbols beginning with
-+      # underscore (_), so it is better to generate a list of symbols to export.
-+      always_export_symbols=yes
-+      if test "$aix_use_runtimelinking" = yes; then
-+	# Warning - without using the other runtime loading flags (-brtl),
-+	# -berok will link without error, but may produce a broken library.
-+	allow_undefined_flag='-berok'
-+        # Determine the default libpath from the value encoded in an
-+        # empty executable.
-+        if test "${lt_cv_aix_libpath+set}" = set; then
-+  aix_libpath=$lt_cv_aix_libpath
-+else
-+  if ${lt_cv_aix_libpath_+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+
-+  lt_aix_libpath_sed='
-+      /Import File Strings/,/^$/ {
-+	  /^0/ {
-+	      s/^0  *\([^ ]*\) *$/\1/
-+	      p
-+	  }
-+      }'
-+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  # Check for a 64-bit object if we didn't find anything.
-+  if test -z "$lt_cv_aix_libpath_"; then
-+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  fi
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+  if test -z "$lt_cv_aix_libpath_"; then
-+    lt_cv_aix_libpath_="/usr/lib:/lib"
-+  fi
-+
-+fi
-+
-+  aix_libpath=$lt_cv_aix_libpath_
-+fi
-+
-+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-+      else
-+	if test "$host_cpu" = ia64; then
-+	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-+	  allow_undefined_flag="-z nodefs"
-+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-+	else
-+	 # Determine the default libpath from the value encoded in an
-+	 # empty executable.
-+	 if test "${lt_cv_aix_libpath+set}" = set; then
-+  aix_libpath=$lt_cv_aix_libpath
-+else
-+  if ${lt_cv_aix_libpath_+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+
-+  lt_aix_libpath_sed='
-+      /Import File Strings/,/^$/ {
-+	  /^0/ {
-+	      s/^0  *\([^ ]*\) *$/\1/
-+	      p
-+	  }
-+      }'
-+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  # Check for a 64-bit object if we didn't find anything.
-+  if test -z "$lt_cv_aix_libpath_"; then
-+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  fi
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+  if test -z "$lt_cv_aix_libpath_"; then
-+    lt_cv_aix_libpath_="/usr/lib:/lib"
-+  fi
-+
-+fi
-+
-+  aix_libpath=$lt_cv_aix_libpath_
-+fi
-+
-+	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-+	  # Warning - without using the other run time loading flags,
-+	  # -berok will link without error, but may produce a broken library.
-+	  no_undefined_flag=' ${wl}-bernotok'
-+	  allow_undefined_flag=' ${wl}-berok'
-+	  if test "$with_gnu_ld" = yes; then
-+	    # We only use this code for GNU lds that support --whole-archive.
-+	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-+	  else
-+	    # Exported symbols can be pulled into shared objects from archives
-+	    whole_archive_flag_spec='$convenience'
-+	  fi
-+	  archive_cmds_need_lc=yes
-+	  # This is similar to how AIX traditionally builds its shared libraries.
-+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-+	fi
-+      fi
-+      ;;
-+
-+    amigaos*)
-+      case $host_cpu in
-+      powerpc)
-+            # see comment about AmigaOS4 .so support
-+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+            archive_expsym_cmds=''
-+        ;;
-+      m68k)
-+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-+            hardcode_libdir_flag_spec='-L$libdir'
-+            hardcode_minus_L=yes
-+        ;;
-+      esac
-+      ;;
-+
-+    bsdi[45]*)
-+      export_dynamic_flag_spec=-rdynamic
-+      ;;
-+
-+    cygwin* | mingw* | pw32* | cegcc*)
-+      # 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.
-+      case $cc_basename in
-+      cl*)
-+	# Native MSVC
-+	hardcode_libdir_flag_spec=' '
-+	allow_undefined_flag=unsupported
-+	always_export_symbols=yes
-+	file_list_spec='@'
-+	# Tell ltmain to make .lib files, not .a files.
-+	libext=lib
-+	# Tell ltmain to make .dll files, not .so files.
-+	shrext_cmds=".dll"
-+	# FIXME: Setting linknames here is a bad hack.
-+	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-+	  else
-+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-+	  fi~
-+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-+	  linknames='
-+	# The linker will not automatically build a static lib if we build a DLL.
-+	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
-+	enable_shared_with_static_runtimes=yes
-+	exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-+	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-+	# Don't use ranlib
-+	old_postinstall_cmds='chmod 644 $oldlib'
-+	postlink_cmds='lt_outputfile="@OUTPUT@"~
-+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-+	  case $lt_outputfile in
-+	    *.exe|*.EXE) ;;
-+	    *)
-+	      lt_outputfile="$lt_outputfile.exe"
-+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-+	      ;;
-+	  esac~
-+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-+	    $RM "$lt_outputfile.manifest";
-+	  fi'
-+	;;
-+      *)
-+	# Assume MSVC wrapper
-+	hardcode_libdir_flag_spec=' '
-+	allow_undefined_flag=unsupported
-+	# Tell ltmain to make .lib files, not .a files.
-+	libext=lib
-+	# Tell ltmain to make .dll files, not .so files.
-+	shrext_cmds=".dll"
-+	# FIXME: Setting linknames here is a bad hack.
-+	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''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$old_deplibs'
-+	enable_shared_with_static_runtimes=yes
-+	;;
-+      esac
-+      ;;
-+
-+    darwin* | rhapsody*)
-+
-+
-+  archive_cmds_need_lc=no
-+  hardcode_direct=no
-+  hardcode_automatic=yes
-+  hardcode_shlibpath_var=unsupported
-+  if test "$lt_cv_ld_force_load" = "yes"; then
-+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-+
-+  else
-+    whole_archive_flag_spec=''
-+  fi
-+  link_all_deplibs=yes
-+  allow_undefined_flag="$_lt_dar_allow_undefined"
-+  case $cc_basename in
-+     ifort*) _lt_dar_can_shared=yes ;;
-+     *) _lt_dar_can_shared=$GCC ;;
-+  esac
-+  if test "$_lt_dar_can_shared" = "yes"; then
-+    output_verbose_link_cmd=func_echo_all
-+    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-+    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-+    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-+    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-+
-+  else
-+  ld_shlibs=no
-+  fi
-+
-+      ;;
-+
-+    dgux*)
-+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+      hardcode_libdir_flag_spec='-L$libdir'
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-+    # support.  Future versions do this automatically, but an explicit c++rt0.o
-+    # does not break anything, and helps significantly (at the cost of a little
-+    # extra space).
-+    freebsd2.2*)
-+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-+      hardcode_libdir_flag_spec='-R$libdir'
-+      hardcode_direct=yes
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-+    freebsd2.*)
-+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-+      hardcode_direct=yes
-+      hardcode_minus_L=yes
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-+    freebsd* | dragonfly*)
-+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-+      hardcode_libdir_flag_spec='-R$libdir'
-+      hardcode_direct=yes
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    hpux9*)
-+      if test "$GCC" = yes; then
-+	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+      else
-+	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+      fi
-+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+      hardcode_libdir_separator=:
-+      hardcode_direct=yes
-+
-+      # hardcode_minus_L: Not really in the search PATH,
-+      # but as the default location of the library.
-+      hardcode_minus_L=yes
-+      export_dynamic_flag_spec='${wl}-E'
-+      ;;
-+
-+    hpux10*)
-+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-+	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+      else
-+	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-+      fi
-+      if test "$with_gnu_ld" = no; then
-+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+	hardcode_libdir_separator=:
-+	hardcode_direct=yes
-+	hardcode_direct_absolute=yes
-+	export_dynamic_flag_spec='${wl}-E'
-+	# hardcode_minus_L: Not really in the search PATH,
-+	# but as the default location of the library.
-+	hardcode_minus_L=yes
-+      fi
-+      ;;
-+
-+    hpux11*)
-+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-+	case $host_cpu in
-+	hppa*64*)
-+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	ia64*)
-+	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	*)
-+	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	esac
-+      else
-+	case $host_cpu in
-+	hppa*64*)
-+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	ia64*)
-+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	*)
-+
-+	  # Older versions of the 11.00 compiler do not understand -b yet
-+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-+	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-+$as_echo_n "checking if $CC understands -b... " >&6; }
-+if ${lt_cv_prog_compiler__b+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_prog_compiler__b=no
-+   save_LDFLAGS="$LDFLAGS"
-+   LDFLAGS="$LDFLAGS -b"
-+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-+     # The linker can only warn and ignore the option if not recognized
-+     # So say no if there are warnings
-+     if test -s conftest.err; then
-+       # Append any errors to the config.log.
-+       cat conftest.err 1>&5
-+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-+       if diff conftest.exp conftest.er2 >/dev/null; then
-+         lt_cv_prog_compiler__b=yes
-+       fi
-+     else
-+       lt_cv_prog_compiler__b=yes
-+     fi
-+   fi
-+   $RM -r conftest*
-+   LDFLAGS="$save_LDFLAGS"
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-+$as_echo "$lt_cv_prog_compiler__b" >&6; }
-+
-+if test x"$lt_cv_prog_compiler__b" = xyes; then
-+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+else
-+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-+fi
-+
-+	  ;;
-+	esac
-+      fi
-+      if test "$with_gnu_ld" = no; then
-+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+	hardcode_libdir_separator=:
-+
-+	case $host_cpu in
-+	hppa*64*|ia64*)
-+	  hardcode_direct=no
-+	  hardcode_shlibpath_var=no
-+	  ;;
-+	*)
-+	  hardcode_direct=yes
-+	  hardcode_direct_absolute=yes
-+	  export_dynamic_flag_spec='${wl}-E'
-+
-+	  # hardcode_minus_L: Not really in the search PATH,
-+	  # but as the default location of the library.
-+	  hardcode_minus_L=yes
-+	  ;;
-+	esac
-+      fi
-+      ;;
-+
-+    irix5* | irix6* | nonstopux*)
-+      if test "$GCC" = yes; then
-+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+	# Try to use the -exported_symbol ld option, if it does not
-+	# work, assume that -exports_file does not work either and
-+	# implicitly export all symbols.
-+	# This should be the same for all languages, so no per-tag cache variable.
-+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-+if ${lt_cv_irix_exported_symbol+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  save_LDFLAGS="$LDFLAGS"
-+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-+	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+int foo (void) { return 0; }
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  lt_cv_irix_exported_symbol=yes
-+else
-+  lt_cv_irix_exported_symbol=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+           LDFLAGS="$save_LDFLAGS"
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
-+	if test "$lt_cv_irix_exported_symbol" = yes; then
-+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-+	fi
-+      else
-+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-+      fi
-+      archive_cmds_need_lc='no'
-+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+      hardcode_libdir_separator=:
-+      inherit_rpath=yes
-+      link_all_deplibs=yes
-+      ;;
-+
-+    netbsd* | netbsdelf*-gnu)
-+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-+      else
-+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-+      fi
-+      hardcode_libdir_flag_spec='-R$libdir'
-+      hardcode_direct=yes
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    newsos6)
-+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+      hardcode_direct=yes
-+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+      hardcode_libdir_separator=:
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    *nto* | *qnx*)
-+      ;;
-+
-+    openbsd*)
-+      if test -f /usr/libexec/ld.so; then
-+	hardcode_direct=yes
-+	hardcode_shlibpath_var=no
-+	hardcode_direct_absolute=yes
-+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-+	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-+	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-+	  export_dynamic_flag_spec='${wl}-E'
-+	else
-+	  case $host_os in
-+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-+	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-+	     hardcode_libdir_flag_spec='-R$libdir'
-+	     ;;
-+	   *)
-+	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-+	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-+	     ;;
-+	  esac
-+	fi
-+      else
-+	ld_shlibs=no
-+      fi
-+      ;;
-+
-+    os2*)
-+      hardcode_libdir_flag_spec='-L$libdir'
-+      hardcode_minus_L=yes
-+      allow_undefined_flag=unsupported
-+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-+      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-+      ;;
-+
-+    osf3*)
-+      if test "$GCC" = yes; then
-+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+      else
-+	allow_undefined_flag=' -expect_unresolved \*'
-+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+      fi
-+      archive_cmds_need_lc='no'
-+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+      hardcode_libdir_separator=:
-+      ;;
-+
-+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-+      if test "$GCC" = yes; then
-+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-+	archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+      else
-+	allow_undefined_flag=' -expect_unresolved \*'
-+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-+
-+	# Both c and cxx compiler support -rpath directly
-+	hardcode_libdir_flag_spec='-rpath $libdir'
-+      fi
-+      archive_cmds_need_lc='no'
-+      hardcode_libdir_separator=:
-+      ;;
-+
-+    solaris*)
-+      no_undefined_flag=' -z defs'
-+      if test "$GCC" = yes; then
-+	wlarc='${wl}'
-+	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-+      else
-+	case `$CC -V 2>&1` in
-+	*"Compilers 5.0"*)
-+	  wlarc=''
-+	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+	  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 $linker_flags~$RM $lib.exp'
-+	  ;;
-+	*)
-+	  wlarc='${wl}'
-+	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-+	  ;;
-+	esac
-+      fi
-+      hardcode_libdir_flag_spec='-R$libdir'
-+      hardcode_shlibpath_var=no
-+      case $host_os in
-+      solaris2.[0-5] | solaris2.[0-5].*) ;;
-+      *)
-+	# The compiler driver will combine and reorder linker options,
-+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-+	# but is careful enough not to reorder.
-+	# Supported since Solaris 2.6 (maybe 2.5.1?)
-+	if test "$GCC" = yes; then
-+	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-+	else
-+	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
-+	fi
-+	;;
-+      esac
-+      link_all_deplibs=yes
-+      ;;
-+
-+    sunos4*)
-+      if test "x$host_vendor" = xsequent; then
-+	# Use $CC to link under sequent, because it throws in some extra .o
-+	# files that make .init and .fini sections work.
-+	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-+      else
-+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-+      fi
-+      hardcode_libdir_flag_spec='-L$libdir'
-+      hardcode_direct=yes
-+      hardcode_minus_L=yes
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    sysv4)
-+      case $host_vendor in
-+	sni)
-+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+	  hardcode_direct=yes # is this really true???
-+	;;
-+	siemens)
-+	  ## LD is ld it makes a PLAMLIB
-+	  ## CC just makes a GrossModule.
-+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-+	  reload_cmds='$CC -r -o $output$reload_objs'
-+	  hardcode_direct=no
-+        ;;
-+	motorola)
-+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-+	;;
-+      esac
-+      runpath_var='LD_RUN_PATH'
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    sysv4.3*)
-+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+      hardcode_shlibpath_var=no
-+      export_dynamic_flag_spec='-Bexport'
-+      ;;
-+
-+    sysv4*MP*)
-+      if test -d /usr/nec; then
-+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+	hardcode_shlibpath_var=no
-+	runpath_var=LD_RUN_PATH
-+	hardcode_runpath_var=yes
-+	ld_shlibs=yes
-+      fi
-+      ;;
-+
-+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-+      no_undefined_flag='${wl}-z,text'
-+      archive_cmds_need_lc=no
-+      hardcode_shlibpath_var=no
-+      runpath_var='LD_RUN_PATH'
-+
-+      if test "$GCC" = yes; then
-+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+      else
-+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+      fi
-+      ;;
-+
-+    sysv5* | sco3.2v5* | sco5v6*)
-+      # Note: We can NOT use -z defs as we might desire, because we do not
-+      # link with -lc, and that would cause any symbols used from libc to
-+      # always be unresolved, which means just about no library would
-+      # ever link correctly.  If we're not using GNU ld we use -z text
-+      # though, which does catch some bad symbols but isn't as heavy-handed
-+      # as -z defs.
-+      no_undefined_flag='${wl}-z,text'
-+      allow_undefined_flag='${wl}-z,nodefs'
-+      archive_cmds_need_lc=no
-+      hardcode_shlibpath_var=no
-+      hardcode_libdir_flag_spec='${wl}-R,$libdir'
-+      hardcode_libdir_separator=':'
-+      link_all_deplibs=yes
-+      export_dynamic_flag_spec='${wl}-Bexport'
-+      runpath_var='LD_RUN_PATH'
-+
-+      if test "$GCC" = yes; then
-+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+      else
-+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+      fi
-+      ;;
-+
-+    uts4*)
-+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+      hardcode_libdir_flag_spec='-L$libdir'
-+      hardcode_shlibpath_var=no
-+      ;;
-+
-+    *)
-+      ld_shlibs=no
-+      ;;
-+    esac
-+
-+    if test x$host_vendor = xsni; then
-+      case $host in
-+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-+	export_dynamic_flag_spec='${wl}-Blargedynsym'
-+	;;
-+      esac
-+    fi
-+  fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-+$as_echo "$ld_shlibs" >&6; }
-+test "$ld_shlibs" = no && can_build_shared=no
-+
-+with_gnu_ld=$with_gnu_ld
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+#
-+# Do we need to explicitly link libc?
-+#
-+case "x$archive_cmds_need_lc" in
-+x|xyes)
-+  # Assume -lc should be added
-+  archive_cmds_need_lc=yes
-+
-+  if test "$enable_shared" = yes && test "$GCC" = yes; then
-+    case $archive_cmds in
-+    *'~'*)
-+      # FIXME: we may have to deal with multi-command sequences.
-+      ;;
-+    '$CC '*)
-+      # Test whether the compiler implicitly links with -lc since on some
-+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-+      # to ld, don't add -lc before -lgcc.
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-+if ${lt_cv_archive_cmds_need_lc+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  $RM conftest*
-+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-+
-+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-+  (eval $ac_compile) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } 2>conftest.err; then
-+	  soname=conftest
-+	  lib=conftest
-+	  libobjs=conftest.$ac_objext
-+	  deplibs=
-+	  wl=$lt_prog_compiler_wl
-+	  pic_flag=$lt_prog_compiler_pic
-+	  compiler_flags=-v
-+	  linker_flags=-v
-+	  verstring=
-+	  output_objdir=.
-+	  libname=conftest
-+	  lt_save_allow_undefined_flag=$allow_undefined_flag
-+	  allow_undefined_flag=
-+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-+  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }
-+	  then
-+	    lt_cv_archive_cmds_need_lc=no
-+	  else
-+	    lt_cv_archive_cmds_need_lc=yes
-+	  fi
-+	  allow_undefined_flag=$lt_save_allow_undefined_flag
-+	else
-+	  cat conftest.err 1>&5
-+	fi
-+	$RM conftest*
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
-+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
-+      ;;
-+    esac
-+  fi
-+  ;;
-+esac
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-+$as_echo_n "checking dynamic linker characteristics... " >&6; }
-+
-+if test "$GCC" = yes; then
-+  case $host_os in
-+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-+    *) lt_awk_arg="/^libraries:/" ;;
-+  esac
-+  case $host_os in
-+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
-+    *) lt_sed_strip_eq="s,=/,/,g" ;;
-+  esac
-+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-+  case $lt_search_path_spec in
-+  *\;*)
-+    # if the path contains ";" then we assume it to be the separator
-+    # otherwise default to the standard path separator (i.e. ":") - it is
-+    # assumed that no part of a normal pathname contains ";" but that should
-+    # okay in the real world where ";" in dirpaths is itself problematic.
-+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-+    ;;
-+  *)
-+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-+    ;;
-+  esac
-+  # Ok, now we have the path, separated by spaces, we can step through it
-+  # and add multilib dir if necessary.
-+  lt_tmp_lt_search_path_spec=
-+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-+  for lt_sys_path in $lt_search_path_spec; do
-+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-+    else
-+      test -d "$lt_sys_path" && \
-+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-+    fi
-+  done
-+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-+BEGIN {RS=" "; FS="/|\n";} {
-+  lt_foo="";
-+  lt_count=0;
-+  for (lt_i = NF; lt_i > 0; lt_i--) {
-+    if ($lt_i != "" && $lt_i != ".") {
-+      if ($lt_i == "..") {
-+        lt_count++;
-+      } else {
-+        if (lt_count == 0) {
-+          lt_foo="/" $lt_i lt_foo;
-+        } else {
-+          lt_count--;
-+        }
-+      }
-+    }
-+  }
-+  if (lt_foo != "") { lt_freq[lt_foo]++; }
-+  if (lt_freq[lt_foo] == 1) { print lt_foo; }
-+}'`
-+  # AWK program above erroneously prepends '/' to C:/dos/paths
-+  # for these hosts.
-+  case $host_os in
-+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
-+  esac
-+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-+else
-+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-+fi
-+library_names_spec=
-+libname_spec='lib$name'
-+soname_spec=
-+shrext_cmds=".so"
-+postinstall_cmds=
-+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"
-+need_lib_prefix=unknown
-+hardcode_into_libs=no
-+
-+# when you set need_version to no, make sure it does not cause -set_version
-+# flags to be left without arguments
-+need_version=unknown
-+
-+case $host_os in
-+aix3*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-+  shlibpath_var=LIBPATH
-+
-+  # AIX 3 has no versioning support, so we append a major version to the name.
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  ;;
-+
-+aix[4-9]*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  hardcode_into_libs=yes
-+  if test "$host_cpu" = ia64; then
-+    # AIX 5 supports IA64
-+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-+    shlibpath_var=LD_LIBRARY_PATH
-+  else
-+    # With GCC up to 2.95.x, collect2 would create an import file
-+    # for dependence libraries.  The import file would start with
-+    # the line `#! .'.  This would cause the generated library to
-+    # depend on `.', always an invalid library.  This was fixed in
-+    # development snapshots of GCC prior to 3.0.
-+    case $host_os in
-+      aix4 | aix4.[01] | aix4.[01].*)
-+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-+	   echo ' yes '
-+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-+	:
-+      else
-+	can_build_shared=no
-+      fi
-+      ;;
-+    esac
-+    # AIX (on Power*) 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.
-+    if test "$aix_use_runtimelinking" = yes; then
-+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-+      # instead of lib<name>.a to let people know that these are not
-+      # typical AIX shared libraries.
-+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    else
-+      # We preserve .a as extension for shared libraries through AIX4.2
-+      # and later when we are not doing run time linking.
-+      library_names_spec='${libname}${release}.a $libname.a'
-+      soname_spec='${libname}${release}${shared_ext}$major'
-+    fi
-+    shlibpath_var=LIBPATH
-+  fi
-+  ;;
-+
-+amigaos*)
-+  case $host_cpu in
-+  powerpc)
-+    # Since July 2007 AmigaOS4 officially supports .so libraries.
-+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    ;;
-+  m68k)
-+    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=`func_echo_all "$lib" | $SED '\''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'
-+    ;;
-+  esac
-+  ;;
-+
-+beos*)
-+  library_names_spec='${libname}${shared_ext}'
-+  dynamic_linker="$host_os ld.so"
-+  shlibpath_var=LIBRARY_PATH
-+  ;;
-+
-+bsdi[45]*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  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* | pw32* | cegcc*)
-+  version_type=windows
-+  shrext_cmds=".dll"
-+  need_version=no
-+  need_lib_prefix=no
-+
-+  case $GCC,$cc_basename in
-+  yes,*)
-+    # gcc
-+    library_names_spec='$libname.dll.a'
-+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-+    postinstall_cmds='base_file=`basename \${file}`~
-+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-+      dldir=$destdir/`dirname \$dlpath`~
-+      test -d \$dldir || mkdir -p \$dldir~
-+      $install_prog $dir/$dlname \$dldir/$dlname~
-+      chmod a+x \$dldir/$dlname~
-+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-+      fi'
-+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-+      dlpath=$dir/\$dldll~
-+       $RM \$dlpath'
-+    shlibpath_overrides_runpath=yes
-+
-+    case $host_os in
-+    cygwin*)
-+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-+
-+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
-+      ;;
-+    mingw* | cegcc*)
-+      # MinGW DLLs use traditional 'lib' prefix
-+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-+      ;;
-+    pw32*)
-+      # pw32 DLLs use 'pw' prefix rather than 'lib'
-+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-+      ;;
-+    esac
-+    dynamic_linker='Win32 ld.exe'
-+    ;;
-+
-+  *,cl*)
-+    # Native MSVC
-+    libname_spec='$name'
-+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-+    library_names_spec='${libname}.dll.lib'
-+
-+    case $build_os in
-+    mingw*)
-+      sys_lib_search_path_spec=
-+      lt_save_ifs=$IFS
-+      IFS=';'
-+      for lt_path in $LIB
-+      do
-+        IFS=$lt_save_ifs
-+        # Let DOS variable expansion print the short 8.3 style file name.
-+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-+      done
-+      IFS=$lt_save_ifs
-+      # Convert to MSYS style.
-+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
-+      ;;
-+    cygwin*)
-+      # Convert to unix form, then to dos form, then back to unix form
-+      # but this time dos style (no spaces!) so that the unix form looks
-+      # like /cygdrive/c/PROGRA~1:/cygdr...
-+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-+      ;;
-+    *)
-+      sys_lib_search_path_spec="$LIB"
-+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-+        # It is most probably a Windows format PATH.
-+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-+      else
-+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-+      fi
-+      # FIXME: find the short name or the path components, as spaces are
-+      # common. (e.g. "Program Files" -> "PROGRA~1")
-+      ;;
-+    esac
-+
-+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-+    postinstall_cmds='base_file=`basename \${file}`~
-+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-+      dldir=$destdir/`dirname \$dlpath`~
-+      test -d \$dldir || mkdir -p \$dldir~
-+      $install_prog $dir/$dlname \$dldir/$dlname'
-+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-+      dlpath=$dir/\$dldll~
-+       $RM \$dlpath'
-+    shlibpath_overrides_runpath=yes
-+    dynamic_linker='Win32 link.exe'
-+    ;;
-+
-+  *)
-+    # Assume MSVC wrapper
-+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-+    dynamic_linker='Win32 ld.exe'
-+    ;;
-+  esac
-+  # FIXME: first we should search . and the directory the executable is in
-+  shlibpath_var=PATH
-+  ;;
-+
-+darwin* | rhapsody*)
-+  dynamic_linker="$host_os dyld"
-+  version_type=darwin
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-+  soname_spec='${libname}${release}${major}$shared_ext'
-+  shlibpath_overrides_runpath=yes
-+  shlibpath_var=DYLD_LIBRARY_PATH
-+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-+
-+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
-+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-+  ;;
-+
-+dgux*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  ;;
-+
-+freebsd* | dragonfly*)
-+  # DragonFly does not have aout.  When/if they implement a new
-+  # versioning mechanism, adjust this.
-+  if test -x /usr/bin/objformat; then
-+    objformat=`/usr/bin/objformat`
-+  else
-+    case $host_os in
-+    freebsd[23].*) objformat=aout ;;
-+    *) objformat=elf ;;
-+    esac
-+  fi
-+  version_type=freebsd-$objformat
-+  case $version_type in
-+    freebsd-elf*)
-+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-+      need_version=no
-+      need_lib_prefix=no
-+      ;;
-+    freebsd-*)
-+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-+      need_version=yes
-+      ;;
-+  esac
-+  shlibpath_var=LD_LIBRARY_PATH
-+  case $host_os in
-+  freebsd2.*)
-+    shlibpath_overrides_runpath=yes
-+    ;;
-+  freebsd3.[01]* | freebsdelf3.[01]*)
-+    shlibpath_overrides_runpath=yes
-+    hardcode_into_libs=yes
-+    ;;
-+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-+    shlibpath_overrides_runpath=no
-+    hardcode_into_libs=yes
-+    ;;
-+  *) # from 4.6 on, and DragonFly
-+    shlibpath_overrides_runpath=yes
-+    hardcode_into_libs=yes
-+    ;;
-+  esac
-+  ;;
-+
-+gnu*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  ;;
-+
-+haiku*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  dynamic_linker="$host_os runtime_loader"
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-+  hardcode_into_libs=yes
-+  ;;
-+
-+hpux9* | hpux10* | hpux11*)
-+  # Give a soname corresponding to the major version so that dld.sl refuses to
-+  # link against other versions.
-+  version_type=sunos
-+  need_lib_prefix=no
-+  need_version=no
-+  case $host_cpu in
-+  ia64*)
-+    shrext_cmds='.so'
-+    hardcode_into_libs=yes
-+    dynamic_linker="$host_os dld.so"
-+    shlibpath_var=LD_LIBRARY_PATH
-+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    soname_spec='${libname}${release}${shared_ext}$major'
-+    if test "X$HPUX_IA64_MODE" = X32; then
-+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-+    else
-+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-+    fi
-+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-+    ;;
-+  hppa*64*)
-+    shrext_cmds='.sl'
-+    hardcode_into_libs=yes
-+    dynamic_linker="$host_os dld.sl"
-+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    soname_spec='${libname}${release}${shared_ext}$major'
-+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-+    ;;
-+  *)
-+    shrext_cmds='.sl'
-+    dynamic_linker="$host_os dld.sl"
-+    shlibpath_var=SHLIB_PATH
-+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    soname_spec='${libname}${release}${shared_ext}$major'
-+    ;;
-+  esac
-+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-+  postinstall_cmds='chmod 555 $lib'
-+  # or fails outright, so override atomically:
-+  install_override_mode=555
-+  ;;
-+
-+interix[3-9]*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  ;;
-+
-+irix5* | irix6* | nonstopux*)
-+  case $host_os in
-+    nonstopux*) version_type=nonstopux ;;
-+    *)
-+	if test "$lt_cv_prog_gnu_ld" = yes; then
-+		version_type=linux # correct to gnu/linux during the next big refactor
-+	else
-+		version_type=irix
-+	fi ;;
-+  esac
-+  need_lib_prefix=no
-+  need_version=no
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-+  case $host_os in
-+  irix5* | nonstopux*)
-+    libsuff= shlibsuff=
-+    ;;
-+  *)
-+    case $LD in # libtool.m4 will add one of these switches to LD
-+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-+      libsuff= shlibsuff= libmagic=32-bit;;
-+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-+      libsuff=32 shlibsuff=N32 libmagic=N32;;
-+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-+    *) libsuff= shlibsuff= libmagic=never-match;;
-+    esac
-+    ;;
-+  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}"
-+  hardcode_into_libs=yes
-+  ;;
-+
-+# No shared lib support for Linux oldld, aout, or coff.
-+linux*oldld* | linux*aout* | linux*coff*)
-+  dynamic_linker=no
-+  ;;
-+
-+# This must be glibc/ELF.
-+linux* | k*bsd*-gnu | kopensolaris*-gnu)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+
-+  # Some binutils ld are patched to set DT_RUNPATH
-+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_shlibpath_overrides_runpath=no
-+    save_LDFLAGS=$LDFLAGS
-+    save_libdir=$libdir
-+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-+  lt_cv_shlibpath_overrides_runpath=yes
-+fi
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+    LDFLAGS=$save_LDFLAGS
-+    libdir=$save_libdir
-+
-+fi
-+
-+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-+
-+  # This implies no fast_install, which is unacceptable.
-+  # Some rework will be needed to allow for fast_install
-+  # before this can be enabled.
-+  hardcode_into_libs=yes
-+
-+  # Append ld.so.conf contents to the search path
-+  if test -f /etc/ld.so.conf; then
-+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-+  fi
-+
-+  # We used to test for /lib/ld.so.1 and disable shared libraries on
-+  # powerpc, because MkLinux only supported shared libraries with the
-+  # GNU dynamic linker.  Since this was broken with cross compilers,
-+  # most powerpc-linux boxes support dynamic linking these days and
-+  # people can always --disable-shared, the test was removed, and we
-+  # assume the GNU/Linux dynamic linker is in use.
-+  dynamic_linker='GNU/Linux ld.so'
-+  ;;
-+
-+netbsdelf*-gnu)
-+  version_type=linux
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  dynamic_linker='NetBSD ld.elf_so'
-+  ;;
-+
-+netbsd*)
-+  version_type=sunos
-+  need_lib_prefix=no
-+  need_version=no
-+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-+    dynamic_linker='NetBSD (a.out) ld.so'
-+  else
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-+    soname_spec='${libname}${release}${shared_ext}$major'
-+    dynamic_linker='NetBSD ld.elf_so'
-+  fi
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  hardcode_into_libs=yes
-+  ;;
-+
-+newsos6)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  ;;
-+
-+*nto* | *qnx*)
-+  version_type=qnx
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  dynamic_linker='ldqnx.so'
-+  ;;
-+
-+openbsd*)
-+  version_type=sunos
-+  sys_lib_dlsearch_path_spec="/usr/lib"
-+  need_lib_prefix=no
-+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-+  case $host_os in
-+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-+    *)				need_version=no  ;;
-+  esac
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+    case $host_os in
-+      openbsd2.[89] | openbsd2.[89].*)
-+	shlibpath_overrides_runpath=no
-+	;;
-+      *)
-+	shlibpath_overrides_runpath=yes
-+	;;
-+      esac
-+  else
-+    shlibpath_overrides_runpath=yes
-+  fi
-+  ;;
-+
-+os2*)
-+  libname_spec='$name'
-+  shrext_cmds=".dll"
-+  need_lib_prefix=no
-+  library_names_spec='$libname${shared_ext} $libname.a'
-+  dynamic_linker='OS/2 ld.exe'
-+  shlibpath_var=LIBPATH
-+  ;;
-+
-+osf3* | osf4* | osf5*)
-+  version_type=osf
-+  need_lib_prefix=no
-+  need_version=no
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  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"
-+  ;;
-+
-+rdos*)
-+  dynamic_linker=no
-+  ;;
-+
-+solaris*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  hardcode_into_libs=yes
-+  # ldd complains unless libraries are executable
-+  postinstall_cmds='chmod +x $lib'
-+  ;;
-+
-+sunos4*)
-+  version_type=sunos
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$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 | sysv4.3*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  case $host_vendor in
-+    sni)
-+      shlibpath_overrides_runpath=no
-+      need_lib_prefix=no
-+      runpath_var=LD_RUN_PATH
-+      ;;
-+    siemens)
-+      need_lib_prefix=no
-+      ;;
-+    motorola)
-+      need_lib_prefix=no
-+      need_version=no
-+      shlibpath_overrides_runpath=no
-+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-+      ;;
-+  esac
-+  ;;
-+
-+sysv4*MP*)
-+  if test -d /usr/nec ;then
-+    version_type=linux # correct to gnu/linux during the next big refactor
-+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-+    soname_spec='$libname${shared_ext}.$major'
-+    shlibpath_var=LD_LIBRARY_PATH
-+  fi
-+  ;;
-+
-+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-+  version_type=freebsd-elf
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  hardcode_into_libs=yes
-+  if test "$with_gnu_ld" = yes; then
-+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-+  else
-+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-+    case $host_os in
-+      sco3.2v5*)
-+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-+	;;
-+    esac
-+  fi
-+  sys_lib_dlsearch_path_spec='/usr/lib'
-+  ;;
-+
-+tpf*)
-+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  ;;
-+
-+uts4*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  ;;
-+
-+*)
-+  dynamic_linker=no
-+  ;;
-+esac
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-+$as_echo "$dynamic_linker" >&6; }
-+test "$dynamic_linker" = no && can_build_shared=no
-+
-+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-+if test "$GCC" = yes; then
-+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-+fi
-+
-+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-+fi
-+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-+fi
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-+hardcode_action=
-+if test -n "$hardcode_libdir_flag_spec" ||
-+   test -n "$runpath_var" ||
-+   test "X$hardcode_automatic" = "Xyes" ; then
-+
-+  # We can hardcode non-existent directories.
-+  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 "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-+     test "$hardcode_minus_L" != no; then
-+    # Linking always hardcodes the temporary library directory.
-+    hardcode_action=relink
-+  else
-+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-+    hardcode_action=immediate
-+  fi
-+else
-+  # We cannot hardcode anything, or else we can only hardcode existing
-+  # directories.
-+  hardcode_action=unsupported
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-+$as_echo "$hardcode_action" >&6; }
-+
-+if test "$hardcode_action" = relink ||
-+   test "$inherit_rpath" = yes; 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
-+
-+
-+
-+
-+
-+
-+  if test "x$enable_dlopen" != xyes; then
-+  enable_dlopen=unknown
-+  enable_dlopen_self=unknown
-+  enable_dlopen_self_static=unknown
-+else
-+  lt_cv_dlopen=no
-+  lt_cv_dlopen_libs=
-+
-+  case $host_os in
-+  beos*)
-+    lt_cv_dlopen="load_add_on"
-+    lt_cv_dlopen_libs=
-+    lt_cv_dlopen_self=yes
-+    ;;
-+
-+  mingw* | pw32* | cegcc*)
-+    lt_cv_dlopen="LoadLibrary"
-+    lt_cv_dlopen_libs=
-+    ;;
-+
-+  cygwin*)
-+    lt_cv_dlopen="dlopen"
-+    lt_cv_dlopen_libs=
-+    ;;
-+
-+  darwin*)
-+  # if libdl is installed we need to link against it
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-+$as_echo_n "checking for dlopen in -ldl... " >&6; }
-+if ${ac_cv_lib_dl_dlopen+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-ldl  $LIBS"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char dlopen ();
-+int
-+main ()
-+{
-+return dlopen ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_lib_dl_dlopen=yes
-+else
-+  ac_cv_lib_dl_dlopen=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-+else
-+
-+    lt_cv_dlopen="dyld"
-+    lt_cv_dlopen_libs=
-+    lt_cv_dlopen_self=yes
-+
-+fi
-+
-+    ;;
-+
-+  *)
-+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-+if test "x$ac_cv_func_shl_load" = xyes; then :
-+  lt_cv_dlopen="shl_load"
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-+$as_echo_n "checking for shl_load in -ldld... " >&6; }
-+if ${ac_cv_lib_dld_shl_load+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-ldld  $LIBS"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char shl_load ();
-+int
-+main ()
-+{
-+return shl_load ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_lib_dld_shl_load=yes
-+else
-+  ac_cv_lib_dld_shl_load=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
-+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-+else
-+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-+if test "x$ac_cv_func_dlopen" = xyes; then :
-+  lt_cv_dlopen="dlopen"
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-+$as_echo_n "checking for dlopen in -ldl... " >&6; }
-+if ${ac_cv_lib_dl_dlopen+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-ldl  $LIBS"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char dlopen ();
-+int
-+main ()
-+{
-+return dlopen ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_lib_dl_dlopen=yes
-+else
-+  ac_cv_lib_dl_dlopen=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-+if ${ac_cv_lib_svld_dlopen+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lsvld  $LIBS"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char dlopen ();
-+int
-+main ()
-+{
-+return dlopen ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_lib_svld_dlopen=yes
-+else
-+  ac_cv_lib_svld_dlopen=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
-+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-+$as_echo_n "checking for dld_link in -ldld... " >&6; }
-+if ${ac_cv_lib_dld_dld_link+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-ldld  $LIBS"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char dld_link ();
-+int
-+main ()
-+{
-+return dld_link ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_lib_dld_dld_link=yes
-+else
-+  ac_cv_lib_dld_dld_link=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
-+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-+fi
-+
-+
-+fi
-+
-+
-+fi
-+
-+
-+fi
-+
-+
-+fi
-+
-+
-+fi
-+
-+    ;;
-+  esac
-+
-+  if test "x$lt_cv_dlopen" != xno; then
-+    enable_dlopen=yes
-+  else
-+    enable_dlopen=no
-+  fi
-+
-+  case $lt_cv_dlopen in
-+  dlopen)
-+    save_CPPFLAGS="$CPPFLAGS"
-+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-+
-+    save_LDFLAGS="$LDFLAGS"
-+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-+
-+    save_LIBS="$LIBS"
-+    LIBS="$lt_cv_dlopen_libs $LIBS"
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-+if ${lt_cv_dlopen_self+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  	  if test "$cross_compiling" = yes; then :
-+  lt_cv_dlopen_self=cross
-+else
-+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-+  lt_status=$lt_dlunknown
-+  cat > conftest.$ac_ext <<_LT_EOF
-+#line $LINENO "configure"
-+#include "confdefs.h"
-+
-+#if HAVE_DLFCN_H
-+#include <dlfcn.h>
-+#endif
-+
-+#include <stdio.h>
-+
-+#ifdef RTLD_GLOBAL
-+#  define LT_DLGLOBAL		RTLD_GLOBAL
-+#else
-+#  ifdef DL_GLOBAL
-+#    define LT_DLGLOBAL		DL_GLOBAL
-+#  else
-+#    define LT_DLGLOBAL		0
-+#  endif
-+#endif
-+
-+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-+   find out it does not work in some platform. */
-+#ifndef LT_DLLAZY_OR_NOW
-+#  ifdef RTLD_LAZY
-+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-+#  else
-+#    ifdef DL_LAZY
-+#      define LT_DLLAZY_OR_NOW		DL_LAZY
-+#    else
-+#      ifdef RTLD_NOW
-+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-+#      else
-+#        ifdef DL_NOW
-+#          define LT_DLLAZY_OR_NOW	DL_NOW
-+#        else
-+#          define LT_DLLAZY_OR_NOW	0
-+#        endif
-+#      endif
-+#    endif
-+#  endif
-+#endif
-+
-+/* When -fvisbility=hidden is used, assume the code has been annotated
-+   correspondingly for the symbols needed.  */
-+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-+int fnord () __attribute__((visibility("default")));
-+#endif
-+
-+int fnord () { return 42; }
-+int main ()
-+{
-+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-+  int status = $lt_dlunknown;
-+
-+  if (self)
-+    {
-+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-+      else
-+        {
-+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-+          else puts (dlerror ());
-+	}
-+      /* dlclose (self); */
-+    }
-+  else
-+    puts (dlerror ());
-+
-+  return status;
-+}
-+_LT_EOF
-+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-+  (eval $ac_link) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-+    (./conftest; exit; ) >&5 2>/dev/null
-+    lt_status=$?
-+    case x$lt_status in
-+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
-+    esac
-+  else :
-+    # compilation failed
-+    lt_cv_dlopen_self=no
-+  fi
-+fi
-+rm -fr conftest*
-+
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-+$as_echo "$lt_cv_dlopen_self" >&6; }
-+
-+    if test "x$lt_cv_dlopen_self" = xyes; then
-+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-+if ${lt_cv_dlopen_self_static+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  	  if test "$cross_compiling" = yes; then :
-+  lt_cv_dlopen_self_static=cross
-+else
-+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-+  lt_status=$lt_dlunknown
-+  cat > conftest.$ac_ext <<_LT_EOF
-+#line $LINENO "configure"
-+#include "confdefs.h"
-+
-+#if HAVE_DLFCN_H
-+#include <dlfcn.h>
-+#endif
-+
-+#include <stdio.h>
-+
-+#ifdef RTLD_GLOBAL
-+#  define LT_DLGLOBAL		RTLD_GLOBAL
-+#else
-+#  ifdef DL_GLOBAL
-+#    define LT_DLGLOBAL		DL_GLOBAL
-+#  else
-+#    define LT_DLGLOBAL		0
-+#  endif
-+#endif
-+
-+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-+   find out it does not work in some platform. */
-+#ifndef LT_DLLAZY_OR_NOW
-+#  ifdef RTLD_LAZY
-+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-+#  else
-+#    ifdef DL_LAZY
-+#      define LT_DLLAZY_OR_NOW		DL_LAZY
-+#    else
-+#      ifdef RTLD_NOW
-+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-+#      else
-+#        ifdef DL_NOW
-+#          define LT_DLLAZY_OR_NOW	DL_NOW
-+#        else
-+#          define LT_DLLAZY_OR_NOW	0
-+#        endif
-+#      endif
-+#    endif
-+#  endif
-+#endif
-+
-+/* When -fvisbility=hidden is used, assume the code has been annotated
-+   correspondingly for the symbols needed.  */
-+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-+int fnord () __attribute__((visibility("default")));
-+#endif
-+
-+int fnord () { return 42; }
-+int main ()
-+{
-+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-+  int status = $lt_dlunknown;
-+
-+  if (self)
-+    {
-+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-+      else
-+        {
-+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-+          else puts (dlerror ());
-+	}
-+      /* dlclose (self); */
-+    }
-+  else
-+    puts (dlerror ());
-+
-+  return status;
-+}
-+_LT_EOF
-+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-+  (eval $ac_link) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-+    (./conftest; exit; ) >&5 2>/dev/null
-+    lt_status=$?
-+    case x$lt_status in
-+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
-+    esac
-+  else :
-+    # compilation failed
-+    lt_cv_dlopen_self_static=no
-+  fi
-+fi
-+rm -fr conftest*
-+
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-+$as_echo "$lt_cv_dlopen_self_static" >&6; }
-+    fi
-+
-+    CPPFLAGS="$save_CPPFLAGS"
-+    LDFLAGS="$save_LDFLAGS"
-+    LIBS="$save_LIBS"
-+    ;;
-+  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
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+striplib=
-+old_striplib=
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+else
-+# FIXME - insert some real tests, host_os isn't really good enough
-+  case $host_os in
-+  darwin*)
-+    if test -n "$STRIP" ; then
-+      striplib="$STRIP -x"
-+      old_striplib="$STRIP -S"
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+    else
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+    fi
-+    ;;
-+  *)
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+    ;;
-+  esac
-+fi
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+  # Report which library types will actually be built
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-+$as_echo "$can_build_shared" >&6; }
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-+$as_echo_n "checking whether to build shared libraries... " >&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
-+  aix3*)
-+    test "$enable_shared" = yes && enable_static=no
-+    if test -n "$RANLIB"; then
-+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-+      postinstall_cmds='$RANLIB $lib'
-+    fi
-+    ;;
-+
-+  aix[4-9]*)
-+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-+      test "$enable_shared" = yes && enable_static=no
-+    fi
-+    ;;
-+  esac
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-+$as_echo "$enable_shared" >&6; }
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-+$as_echo_n "checking whether to build static libraries... " >&6; }
-+  # Make sure either enable_shared or enable_static is yes.
-+  test "$enable_shared" = yes || enable_static=yes
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-+$as_echo "$enable_static" >&6; }
-+
-+
-+
-+
-+fi
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+CC="$lt_save_CC"
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+        ac_config_commands="$ac_config_commands libtool"
-+
-+
-+
-+
-+# Only expand once:
-+
-+
-+
-+
-+# Checks for header files.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-+$as_echo_n "checking for ANSI C header files... " >&6; }
-+if ${ac_cv_header_stdc+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <string.h>
-+#include <float.h>
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_header_stdc=yes
-+else
-+  ac_cv_header_stdc=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+if test $ac_cv_header_stdc = yes; then
-+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <string.h>
-+
-+_ACEOF
-+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-+  $EGREP "memchr" >/dev/null 2>&1; then :
-+
-+else
-+  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdlib.h>
-+
-+_ACEOF
-+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-+  $EGREP "free" >/dev/null 2>&1; then :
-+
-+else
-+  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <ctype.h>
-+#include <stdlib.h>
-+#if ((' ' & 0x0FF) == 0x020)
-+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-+#else
-+# define ISLOWER(c) \
-+		   (('a' <= (c) && (c) <= 'i') \
-+		     || ('j' <= (c) && (c) <= 'r') \
-+		     || ('s' <= (c) && (c) <= 'z'))
-+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-+#endif
-+
-+#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))
-+      return 2;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_run "$LINENO"; then :
-+
-+else
-+  ac_cv_header_stdc=no
-+fi
-+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-+  conftest.$ac_objext conftest.beam conftest.$ac_ext
-+fi
-+
-+fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-+$as_echo "$ac_cv_header_stdc" >&6; }
-+if test $ac_cv_header_stdc = yes; then
-+
-+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-+
-+fi
-+
-+for ac_header in ctype.h limits.h stdlib.h wctype.h
-+do :
-+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+
-+done
-+
-+
-+# Checks for typedefs, structures, and compiler characteristics.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-+if ${ac_cv_c_const+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+/* FIXME: Include the comments suggested by Paul. */
-+#ifndef __cplusplus
-+  /* Ultrix mips cc rejects this.  */
-+  typedef int charset[2];
-+  const charset cs;
-+  /* SunOS 4.1.1 cc rejects this.  */
-+  char const *const *pcpcc;
-+  char **ppc;
-+  /* 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";
-+  pcpcc = &g + (g ? g-g : 0);
-+  /* HPUX 7.0 cc rejects these. */
-+  ++pcpcc;
-+  ppc = (char**) pcpcc;
-+  pcpcc = (char const *const *) ppc;
-+  { /* SCO 3.2v4 cc rejects this.  */
-+    char *t;
-+    char const *s = 0 ? (char *) 0 : (char const *) 0;
-+
-+    *t++ = 0;
-+    if (s) return 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;
-+    if (!foo) return 0;
-+  }
-+  return !cs[0] && !zero.x;
-+#endif
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_c_const=yes
-+else
-+  ac_cv_c_const=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-+$as_echo "$ac_cv_c_const" >&6; }
-+if test $ac_cv_c_const = no; then
-+
-+$as_echo "#define const /**/" >>confdefs.h
-+
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-+$as_echo_n "checking for inline... " >&6; }
-+if ${ac_cv_c_inline+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_cv_c_inline=no
-+for ac_kw in inline __inline__ __inline; do
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#ifndef __cplusplus
-+typedef int foo_t;
-+static $ac_kw foo_t static_foo () {return 0; }
-+$ac_kw foo_t foo () {return 0; }
-+#endif
-+
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_c_inline=$ac_kw
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  test "$ac_cv_c_inline" != no && break
-+done
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-+$as_echo "$ac_cv_c_inline" >&6; }
-+
-+case $ac_cv_c_inline in
-+  inline | yes) ;;
-+  *)
-+    case $ac_cv_c_inline in
-+      no) ac_val=;;
-+      *) ac_val=$ac_cv_c_inline;;
-+    esac
-+    cat >>confdefs.h <<_ACEOF
-+#ifndef __cplusplus
-+#define inline $ac_val
-+#endif
-+_ACEOF
-+    ;;
-+esac
-+
-+ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
-+if test "x$ac_cv_type_mode_t" = xyes; then :
-+
-+else
-+
-+cat >>confdefs.h <<_ACEOF
-+#define mode_t int
-+_ACEOF
-+
-+fi
-+
-+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
-+if test "x$ac_cv_type_off_t" = xyes; then :
-+
-+else
-+
-+cat >>confdefs.h <<_ACEOF
-+#define off_t long int
-+_ACEOF
-+
-+fi
-+
-+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-+if test "x$ac_cv_type_size_t" = xyes; then :
-+
-+else
-+
-+cat >>confdefs.h <<_ACEOF
-+#define size_t unsigned int
-+_ACEOF
-+
-+fi
-+
-+# The cast to long int works around a bug in the HP C Compiler
-+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-+# This bug is HP SR number 8606223364.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
-+$as_echo_n "checking size of off_t... " >&6; }
-+if ${ac_cv_sizeof_off_t+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t"        "$ac_includes_default"; then :
-+
-+else
-+  if test "$ac_cv_type_off_t" = yes; then
-+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error 77 "cannot compute sizeof (off_t)
-+See \`config.log' for more details" "$LINENO" 5; }
-+   else
-+     ac_cv_sizeof_off_t=0
-+   fi
-+fi
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
-+$as_echo "$ac_cv_sizeof_off_t" >&6; }
-+
-+
-+
-+cat >>confdefs.h <<_ACEOF
-+#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
-+_ACEOF
-+
-+
-+for ac_func in tolower towlower
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+
-+# largefile support
-+# Check whether --enable-largefile was given.
-+if test "${enable_largefile+set}" = set; then :
-+  enableval=$enable_largefile;
-+fi
-+
-+if test "$enable_largefile" != no; then
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-+if ${ac_cv_sys_largefile_CC+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_cv_sys_largefile_CC=no
-+     if test "$GCC" != yes; then
-+       ac_save_CC=$CC
-+       while :; do
-+	 # IRIX 6.2 and later do not support large files by default,
-+	 # so use the C compiler's -n32 option if that helps.
-+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <sys/types.h>
-+ /* Check that off_t can represent 2**63 - 1 correctly.
-+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-+    since some C++ compilers masquerading as C compilers
-+    incorrectly reject 9223372036854775807.  */
-+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-+		       && LARGE_OFF_T % 2147483647 == 1)
-+		      ? 1 : -1];
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+	 if ac_fn_c_try_compile "$LINENO"; then :
-+  break
-+fi
-+rm -f core conftest.err conftest.$ac_objext
-+	 CC="$CC -n32"
-+	 if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_sys_largefile_CC=' -n32'; break
-+fi
-+rm -f core conftest.err conftest.$ac_objext
-+	 break
-+       done
-+       CC=$ac_save_CC
-+       rm -f conftest.$ac_ext
-+    fi
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
-+  if test "$ac_cv_sys_largefile_CC" != no; then
-+    CC=$CC$ac_cv_sys_largefile_CC
-+  fi
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-+if ${ac_cv_sys_file_offset_bits+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  while :; do
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <sys/types.h>
-+ /* Check that off_t can represent 2**63 - 1 correctly.
-+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-+    since some C++ compilers masquerading as C compilers
-+    incorrectly reject 9223372036854775807.  */
-+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-+		       && LARGE_OFF_T % 2147483647 == 1)
-+		      ? 1 : -1];
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_sys_file_offset_bits=no; break
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#define _FILE_OFFSET_BITS 64
-+#include <sys/types.h>
-+ /* Check that off_t can represent 2**63 - 1 correctly.
-+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-+    since some C++ compilers masquerading as C compilers
-+    incorrectly reject 9223372036854775807.  */
-+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-+		       && LARGE_OFF_T % 2147483647 == 1)
-+		      ? 1 : -1];
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_sys_file_offset_bits=64; break
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  ac_cv_sys_file_offset_bits=unknown
-+  break
-+done
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
-+case $ac_cv_sys_file_offset_bits in #(
-+  no | unknown) ;;
-+  *)
-+cat >>confdefs.h <<_ACEOF
-+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-+_ACEOF
-+;;
-+esac
-+rm -rf conftest*
-+  if test $ac_cv_sys_file_offset_bits = unknown; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-+if ${ac_cv_sys_large_files+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  while :; do
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <sys/types.h>
-+ /* Check that off_t can represent 2**63 - 1 correctly.
-+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-+    since some C++ compilers masquerading as C compilers
-+    incorrectly reject 9223372036854775807.  */
-+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-+		       && LARGE_OFF_T % 2147483647 == 1)
-+		      ? 1 : -1];
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_sys_large_files=no; break
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#define _LARGE_FILES 1
-+#include <sys/types.h>
-+ /* Check that off_t can represent 2**63 - 1 correctly.
-+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-+    since some C++ compilers masquerading as C compilers
-+    incorrectly reject 9223372036854775807.  */
-+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-+		       && LARGE_OFF_T % 2147483647 == 1)
-+		      ? 1 : -1];
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_sys_large_files=1; break
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  ac_cv_sys_large_files=unknown
-+  break
-+done
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-+$as_echo "$ac_cv_sys_large_files" >&6; }
-+case $ac_cv_sys_large_files in #(
-+  no | unknown) ;;
-+  *)
-+cat >>confdefs.h <<_ACEOF
-+#define _LARGE_FILES $ac_cv_sys_large_files
-+_ACEOF
-+;;
-+esac
-+rm -rf conftest*
-+  fi
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-+$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-+if ${ac_cv_sys_largefile_source+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  while :; do
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <sys/types.h> /* for off_t */
-+     #include <stdio.h>
-+int
-+main ()
-+{
-+int (*fp) (FILE *, off_t, int) = fseeko;
-+     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_sys_largefile_source=no; break
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#define _LARGEFILE_SOURCE 1
-+#include <sys/types.h> /* for off_t */
-+     #include <stdio.h>
-+int
-+main ()
-+{
-+int (*fp) (FILE *, off_t, int) = fseeko;
-+     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_sys_largefile_source=1; break
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+  ac_cv_sys_largefile_source=unknown
-+  break
-+done
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
-+$as_echo "$ac_cv_sys_largefile_source" >&6; }
-+case $ac_cv_sys_largefile_source in #(
-+  no | unknown) ;;
-+  *)
-+cat >>confdefs.h <<_ACEOF
-+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
-+_ACEOF
-+;;
-+esac
-+rm -rf conftest*
-+
-+# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
-+# in glibc 2.1.3, but that breaks too many other things.
-+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-+if test $ac_cv_sys_largefile_source != unknown; then
-+
-+$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
-+
-+fi
-+
-+
-+# Checks for library functions.
-+ac_config_files="$ac_config_files Makefile doc/Makefile doc/Doxyfile libmspack.pc"
-+
-+cat >confcache <<\_ACEOF
-+# 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, see configure's option --config-cache.
-+# It is not useful on other systems.  If it contains results you don't
-+# want to keep, you may remove or edit it.
-+#
-+# config.status only pays attention to the cache file if you give it
-+# the --recheck option to rerun configure.
-+#
-+# `ac_cv_env_foo' variables (set or unset) will be overridden when
-+# loading this file, other *unset* `ac_cv_foo' will be assigned the
-+# following values.
-+
-+_ACEOF
-+
-+# The following way of writing the cache mishandles newlines in values,
-+# but we know of no workaround that is simple, portable, and efficient.
-+# So, we kill variables containing newlines.
-+# 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.
-+(
-+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-+    eval ac_val=\$$ac_var
-+    case $ac_val in #(
-+    *${as_nl}*)
-+      case $ac_var in #(
-+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-+      esac
-+      case $ac_var in #(
-+      _ | IFS | as_nl) ;; #(
-+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-+      *) { eval $ac_var=; unset $ac_var;} ;;
-+      esac ;;
-+    esac
-+  done
-+
-+  (set) 2>&1 |
-+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-+    *${as_nl}ac_space=\ *)
-+      # `set' does not quote correctly, so add quotes: double-quote
-+      # substitution turns \\\\ into \\, and sed turns \\ into \.
-+      sed -n \
-+	"s/'/'\\\\''/g;
-+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-+      ;; #(
-+    *)
-+      # `set' quotes correctly as required by POSIX, so do not add quotes.
-+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-+      ;;
-+    esac |
-+    sort
-+) |
-+  sed '
-+     /^ac_cv_env_/b end
-+     t clear
-+     :clear
-+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-+     t end
-+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-+     :end' >>confcache
-+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-+  if test -w "$cache_file"; then
-+    if test "x$cache_file" != "x/dev/null"; then
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-+$as_echo "$as_me: updating cache $cache_file" >&6;}
-+      if test ! -f "$cache_file" || test -h "$cache_file"; then
-+	cat confcache >"$cache_file"
-+      else
-+        case $cache_file in #(
-+        */* | ?:*)
-+	  mv -f confcache "$cache_file"$$ &&
-+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-+        *)
-+	  mv -f confcache "$cache_file" ;;
-+	esac
-+      fi
-+    fi
-+  else
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-+  fi
-+fi
-+rm -f confcache
-+
-+test "x$prefix" = xNONE && prefix=$ac_default_prefix
-+# Let make expand exec_prefix.
-+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-+
-+DEFS=-DHAVE_CONFIG_H
-+
-+ac_libobjs=
-+ac_ltlibobjs=
-+U=
-+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-+  # 1. Remove the extension, and $U if already installed.
-+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-+  #    will be set to the directory where LIBOBJS objects are built.
-+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-+done
-+LIBOBJS=$ac_libobjs
-+
-+LTLIBOBJS=$ac_ltlibobjs
-+
-+
-+ if test -n "$EXEEXT"; then
-+  am__EXEEXT_TRUE=
-+  am__EXEEXT_FALSE='#'
-+else
-+  am__EXEEXT_TRUE='#'
-+  am__EXEEXT_FALSE=
-+fi
-+
-+if test -z "${DEBUG_TRUE}" && test -z "${DEBUG_FALSE}"; then
-+  as_fn_error $? "conditional \"DEBUG\" was never defined.
-+Usually this means the macro was only invoked conditionally." "$LINENO" 5
-+fi
-+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-+  as_fn_error $? "conditional \"AMDEP\" was never defined.
-+Usually this means the macro was only invoked conditionally." "$LINENO" 5
-+fi
-+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-+Usually this means the macro was only invoked conditionally." "$LINENO" 5
-+fi
-+if test -z "${GCC_TRUE}" && test -z "${GCC_FALSE}"; then
-+  as_fn_error $? "conditional \"GCC\" was never defined.
-+Usually this means the macro was only invoked conditionally." "$LINENO" 5
-+fi
-+
-+: "${CONFIG_STATUS=./config.status}"
-+ac_write_fail=0
-+ac_clean_files_save=$ac_clean_files
-+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-+as_write_fail=0
-+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-+#! $SHELL
-+# Generated by $as_me.
-+# Run this file to recreate the current configuration.
-+# Compiler output produced by configure, useful for debugging
-+# configure, is in config.log if it exists.
-+
-+debug=false
-+ac_cs_recheck=false
-+ac_cs_silent=false
-+
-+SHELL=\${CONFIG_SHELL-$SHELL}
-+export SHELL
-+_ASEOF
-+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-+## -------------------- ##
-+## M4sh Initialization. ##
-+## -------------------- ##
-+
-+# Be more Bourne compatible
-+DUALCASE=1; export DUALCASE # for MKS sh
-+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-+  emulate sh
-+  NULLCMD=:
-+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-+  # is contrary to our usage.  Disable this feature.
-+  alias -g '${1+"$@"}'='"$@"'
-+  setopt NO_GLOB_SUBST
-+else
-+  case `(set -o) 2>/dev/null` in #(
-+  *posix*) :
-+    set -o posix ;; #(
-+  *) :
-+     ;;
-+esac
-+fi
-+
-+
-+as_nl='
-+'
-+export as_nl
-+# Printing a long string crashes Solaris 7 /usr/bin/printf.
-+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-+# Prefer a ksh shell builtin over an external printf program on Solaris,
-+# but without wasting forks for bash or zsh.
-+if test -z "$BASH_VERSION$ZSH_VERSION" \
-+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-+  as_echo='print -r --'
-+  as_echo_n='print -rn --'
-+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-+  as_echo='printf %s\n'
-+  as_echo_n='printf %s'
-+else
-+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-+    as_echo_n='/usr/ucb/echo -n'
-+  else
-+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-+    as_echo_n_body='eval
-+      arg=$1;
-+      case $arg in #(
-+      *"$as_nl"*)
-+	expr "X$arg" : "X\\(.*\\)$as_nl";
-+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-+      esac;
-+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-+    '
-+    export as_echo_n_body
-+    as_echo_n='sh -c $as_echo_n_body as_echo'
-+  fi
-+  export as_echo_body
-+  as_echo='sh -c $as_echo_body as_echo'
-+fi
-+
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+  PATH_SEPARATOR=:
-+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-+      PATH_SEPARATOR=';'
-+  }
-+fi
-+
-+
-+# IFS
-+# We need space, tab and new line, in precisely that order.  Quoting is
-+# there to prevent editors from complaining about space-tab.
-+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-+# splitting by setting IFS to empty value.)
-+IFS=" ""	$as_nl"
-+
-+# Find who we are.  Look in the path if we contain no directory separator.
-+as_myself=
-+case $0 in #((
-+  *[\\/]* ) as_myself=$0 ;;
-+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-+  done
-+IFS=$as_save_IFS
-+
-+     ;;
-+esac
-+# We did not find ourselves, most probably we were run as `sh COMMAND'
-+# in which case we are not to be found in the path.
-+if test "x$as_myself" = x; then
-+  as_myself=$0
-+fi
-+if test ! -f "$as_myself"; then
-+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-+  exit 1
-+fi
-+
-+# Unset variables that we do not need and which cause bugs (e.g. in
-+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-+# suppresses any "Segmentation fault" message there.  '((' could
-+# trigger a bug in pdksh 5.2.14.
-+for as_var in BASH_ENV ENV MAIL MAILPATH
-+do eval test x\${$as_var+set} = xset \
-+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-+done
-+PS1='$ '
-+PS2='> '
-+PS4='+ '
-+
-+# NLS nuisances.
-+LC_ALL=C
-+export LC_ALL
-+LANGUAGE=C
-+export LANGUAGE
-+
-+# CDPATH.
-+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-+
-+
-+# as_fn_error STATUS ERROR [LINENO LOG_FD]
-+# ----------------------------------------
-+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-+# script with STATUS, using 1 if that was 0.
-+as_fn_error ()
-+{
-+  as_status=$1; test $as_status -eq 0 && as_status=1
-+  if test "$4"; then
-+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-+  fi
-+  $as_echo "$as_me: error: $2" >&2
-+  as_fn_exit $as_status
-+} # as_fn_error
-+
-+
-+# as_fn_set_status STATUS
-+# -----------------------
-+# Set $? to STATUS, without forking.
-+as_fn_set_status ()
-+{
-+  return $1
-+} # as_fn_set_status
-+
-+# as_fn_exit STATUS
-+# -----------------
-+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-+as_fn_exit ()
-+{
-+  set +e
-+  as_fn_set_status $1
-+  exit $1
-+} # as_fn_exit
-+
-+# as_fn_unset VAR
-+# ---------------
-+# Portably unset VAR.
-+as_fn_unset ()
-+{
-+  { eval $1=; unset $1;}
-+}
-+as_unset=as_fn_unset
-+# as_fn_append VAR VALUE
-+# ----------------------
-+# Append the text in VALUE to the end of the definition contained in VAR. Take
-+# advantage of any shell optimizations that allow amortized linear growth over
-+# repeated appends, instead of the typical quadratic growth present in naive
-+# implementations.
-+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-+  eval 'as_fn_append ()
-+  {
-+    eval $1+=\$2
-+  }'
-+else
-+  as_fn_append ()
-+  {
-+    eval $1=\$$1\$2
-+  }
-+fi # as_fn_append
-+
-+# as_fn_arith ARG...
-+# ------------------
-+# Perform arithmetic evaluation on the ARGs, and store the result in the
-+# global $as_val. Take advantage of shells that can avoid forks. The arguments
-+# must be portable across $(()) and expr.
-+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-+  eval 'as_fn_arith ()
-+  {
-+    as_val=$(( $* ))
-+  }'
-+else
-+  as_fn_arith ()
-+  {
-+    as_val=`expr "$@" || test $? -eq 1`
-+  }
-+fi # as_fn_arith
-+
-+
-+if expr a : '\(a\)' >/dev/null 2>&1 &&
-+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-+  as_expr=expr
-+else
-+  as_expr=false
-+fi
-+
-+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-+  as_basename=basename
-+else
-+  as_basename=false
-+fi
-+
-+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-+  as_dirname=dirname
-+else
-+  as_dirname=false
-+fi
-+
-+as_me=`$as_basename -- "$0" ||
-+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-+	 X"$0" : 'X\(//\)$' \| \
-+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X/"$0" |
-+    sed '/^.*\/\([^/][^/]*\)\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\/\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\/\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`
-+
-+# Avoid depending upon Character Ranges.
-+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-+as_cr_digits='0123456789'
-+as_cr_alnum=$as_cr_Letters$as_cr_digits
-+
-+ECHO_C= ECHO_N= ECHO_T=
-+case `echo -n x` in #(((((
-+-n*)
-+  case `echo 'xy\c'` in
-+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-+  xy)  ECHO_C='\c';;
-+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-+       ECHO_T='	';;
-+  esac;;
-+*)
-+  ECHO_N='-n';;
-+esac
-+
-+rm -f conf$$ conf$$.exe conf$$.file
-+if test -d conf$$.dir; then
-+  rm -f conf$$.dir/conf$$.file
-+else
-+  rm -f conf$$.dir
-+  mkdir conf$$.dir 2>/dev/null
-+fi
-+if (echo >conf$$.file) 2>/dev/null; then
-+  if ln -s conf$$.file conf$$ 2>/dev/null; then
-+    as_ln_s='ln -s'
-+    # ... but there are two gotchas:
-+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-+    # In both cases, we have to default to `cp -p'.
-+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-+      as_ln_s='cp -p'
-+  elif ln conf$$.file conf$$ 2>/dev/null; then
-+    as_ln_s=ln
-+  else
-+    as_ln_s='cp -p'
-+  fi
-+else
-+  as_ln_s='cp -p'
-+fi
-+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-+rmdir conf$$.dir 2>/dev/null
-+
-+
-+# as_fn_mkdir_p
-+# -------------
-+# Create "$as_dir" as a directory, including parents if necessary.
-+as_fn_mkdir_p ()
-+{
-+
-+  case $as_dir in #(
-+  -*) as_dir=./$as_dir;;
-+  esac
-+  test -d "$as_dir" || eval $as_mkdir_p || {
-+    as_dirs=
-+    while :; do
-+      case $as_dir in #(
-+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-+      *) as_qdir=$as_dir;;
-+      esac
-+      as_dirs="'$as_qdir' $as_dirs"
-+      as_dir=`$as_dirname -- "$as_dir" ||
-+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+	 X"$as_dir" : 'X\(//\)[^/]' \| \
-+	 X"$as_dir" : 'X\(//\)$' \| \
-+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X"$as_dir" |
-+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)[^/].*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`
-+      test -d "$as_dir" && break
-+    done
-+    test -z "$as_dirs" || eval "mkdir $as_dirs"
-+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-+
-+
-+} # as_fn_mkdir_p
-+if mkdir -p . 2>/dev/null; then
-+  as_mkdir_p='mkdir -p "$as_dir"'
-+else
-+  test -d ./-p && rmdir ./-p
-+  as_mkdir_p=false
-+fi
-+
-+if test -x / >/dev/null 2>&1; then
-+  as_test_x='test -x'
-+else
-+  if ls -dL / >/dev/null 2>&1; then
-+    as_ls_L_option=L
-+  else
-+    as_ls_L_option=
-+  fi
-+  as_test_x='
-+    eval sh -c '\''
-+      if test -d "$1"; then
-+	test -d "$1/.";
-+      else
-+	case $1 in #(
-+	-*)set "./$1";;
-+	esac;
-+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-+	???[sx]*):;;*)false;;esac;fi
-+    '\'' sh
-+  '
-+fi
-+as_executable_p=$as_test_x
-+
-+# Sed expression to map a string onto a valid CPP name.
-+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-+
-+# Sed expression to map a string onto a valid variable name.
-+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-+
-+
-+exec 6>&1
-+## ----------------------------------- ##
-+## Main body of $CONFIG_STATUS script. ##
-+## ----------------------------------- ##
-+_ASEOF
-+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+# Save the log message, to keep $0 and so on meaningful, and to
-+# report actual input values of CONFIG_FILES etc. instead of their
-+# values after options handling.
-+ac_log="
-+This file was extended by libmspack $as_me 0.4alpha, which was
-+generated by GNU Autoconf 2.68.  Invocation command line was
-+
-+  CONFIG_FILES    = $CONFIG_FILES
-+  CONFIG_HEADERS  = $CONFIG_HEADERS
-+  CONFIG_LINKS    = $CONFIG_LINKS
-+  CONFIG_COMMANDS = $CONFIG_COMMANDS
-+  $ $0 $@
-+
-+on `(hostname || uname -n) 2>/dev/null | sed 1q`
-+"
-+
-+_ACEOF
-+
-+case $ac_config_files in *"
-+"*) set x $ac_config_files; shift; ac_config_files=$*;;
-+esac
-+
-+case $ac_config_headers in *"
-+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-+esac
-+
-+
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+# Files that config.status was made for.
-+config_files="$ac_config_files"
-+config_headers="$ac_config_headers"
-+config_commands="$ac_config_commands"
-+
-+_ACEOF
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+ac_cs_usage="\
-+\`$as_me' instantiates files and other configuration actions
-+from templates according to the current configuration.  Unless the files
-+and actions are specified as TAGs, all are instantiated by default.
-+
-+Usage: $0 [OPTION]... [TAG]...
-+
-+  -h, --help       print this help, then exit
-+  -V, --version    print version number and configuration settings, then exit
-+      --config     print configuration, then exit
-+  -q, --quiet, --silent
-+                   do not print progress messages
-+  -d, --debug      don't remove temporary files
-+      --recheck    update $as_me by reconfiguring in the same conditions
-+      --file=FILE[:TEMPLATE]
-+                   instantiate the configuration file FILE
-+      --header=FILE[:TEMPLATE]
-+                   instantiate the configuration header FILE
-+
-+Configuration files:
-+$config_files
-+
-+Configuration headers:
-+$config_headers
-+
-+Configuration commands:
-+$config_commands
-+
-+Report bugs to <kyzer at 4u.net>."
-+
-+_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-+ac_cs_version="\\
-+libmspack config.status 0.4alpha
-+configured by $0, generated by GNU Autoconf 2.68,
-+  with options \\"\$ac_cs_config\\"
-+
-+Copyright (C) 2010 Free Software Foundation, Inc.
-+This config.status script is free software; the Free Software Foundation
-+gives unlimited permission to copy, distribute and modify it."
-+
-+ac_pwd='$ac_pwd'
-+srcdir='$srcdir'
-+INSTALL='$INSTALL'
-+MKDIR_P='$MKDIR_P'
-+AWK='$AWK'
-+test -n "\$AWK" || AWK=awk
-+_ACEOF
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+# The default lists apply if the user does not specify any file.
-+ac_need_defaults=:
-+while test $# != 0
-+do
-+  case $1 in
-+  --*=?*)
-+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-+    ac_shift=:
-+    ;;
-+  --*=)
-+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-+    ac_optarg=
-+    ac_shift=:
-+    ;;
-+  *)
-+    ac_option=$1
-+    ac_optarg=$2
-+    ac_shift=shift
-+    ;;
-+  esac
-+
-+  case $ac_option in
-+  # Handling of the options.
-+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-+    ac_cs_recheck=: ;;
-+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-+    $as_echo "$ac_cs_version"; exit ;;
-+  --config | --confi | --conf | --con | --co | --c )
-+    $as_echo "$ac_cs_config"; exit ;;
-+  --debug | --debu | --deb | --de | --d | -d )
-+    debug=: ;;
-+  --file | --fil | --fi | --f )
-+    $ac_shift
-+    case $ac_optarg in
-+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-+    '') as_fn_error $? "missing file argument" ;;
-+    esac
-+    as_fn_append CONFIG_FILES " '$ac_optarg'"
-+    ac_need_defaults=false;;
-+  --header | --heade | --head | --hea )
-+    $ac_shift
-+    case $ac_optarg in
-+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-+    esac
-+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-+    ac_need_defaults=false;;
-+  --he | --h)
-+    # Conflict between --help and --header
-+    as_fn_error $? "ambiguous option: \`$1'
-+Try \`$0 --help' for more information.";;
-+  --help | --hel | -h )
-+    $as_echo "$ac_cs_usage"; exit ;;
-+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-+    ac_cs_silent=: ;;
-+
-+  # This is an error.
-+  -*) as_fn_error $? "unrecognized option: \`$1'
-+Try \`$0 --help' for more information." ;;
-+
-+  *) as_fn_append ac_config_targets " $1"
-+     ac_need_defaults=false ;;
-+
-+  esac
-+  shift
-+done
-+
-+ac_configure_extra_args=
-+
-+if $ac_cs_silent; then
-+  exec 6>/dev/null
-+  ac_configure_extra_args="$ac_configure_extra_args --silent"
-+fi
-+
-+_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+if \$ac_cs_recheck; then
-+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-+  shift
-+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-+  CONFIG_SHELL='$SHELL'
-+  export CONFIG_SHELL
-+  exec "\$@"
-+fi
-+
-+_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+exec 5>>config.log
-+{
-+  echo
-+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-+## Running $as_me. ##
-+_ASBOX
-+  $as_echo "$ac_log"
-+} >&5
-+
-+_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+#
-+# INIT-COMMANDS
-+#
-+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-+
-+
-+# The HP-UX ksh and POSIX shell print the target directory to stdout
-+# if CDPATH is set.
-+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-+
-+sed_quote_subst='$sed_quote_subst'
-+double_quote_subst='$double_quote_subst'
-+delay_variable_subst='$delay_variable_subst'
-+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-+
-+LTCC='$LTCC'
-+LTCFLAGS='$LTCFLAGS'
-+compiler='$compiler_DEFAULT'
-+
-+# A function that is used when there is no print builtin or printf.
-+func_fallback_echo ()
-+{
-+  eval 'cat <<_LTECHO_EOF
-+\$1
-+_LTECHO_EOF'
-+}
-+
-+# Quote evaled strings.
-+for var in SHELL \
-+ECHO \
-+PATH_SEPARATOR \
-+SED \
-+GREP \
-+EGREP \
-+FGREP \
-+LD \
-+NM \
-+LN_S \
-+lt_SP2NL \
-+lt_NL2SP \
-+reload_flag \
-+OBJDUMP \
-+deplibs_check_method \
-+file_magic_cmd \
-+file_magic_glob \
-+want_nocaseglob \
-+DLLTOOL \
-+sharedlib_from_linklib_cmd \
-+AR \
-+AR_FLAGS \
-+archiver_list_spec \
-+STRIP \
-+RANLIB \
-+CC \
-+CFLAGS \
-+compiler \
-+lt_cv_sys_global_symbol_pipe \
-+lt_cv_sys_global_symbol_to_cdecl \
-+lt_cv_sys_global_symbol_to_c_name_address \
-+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-+nm_file_list_spec \
-+lt_prog_compiler_no_builtin_flag \
-+lt_prog_compiler_pic \
-+lt_prog_compiler_wl \
-+lt_prog_compiler_static \
-+lt_cv_prog_compiler_c_o \
-+need_locks \
-+MANIFEST_TOOL \
-+DSYMUTIL \
-+NMEDIT \
-+LIPO \
-+OTOOL \
-+OTOOL64 \
-+shrext_cmds \
-+export_dynamic_flag_spec \
-+whole_archive_flag_spec \
-+compiler_needs_object \
-+with_gnu_ld \
-+allow_undefined_flag \
-+no_undefined_flag \
-+hardcode_libdir_flag_spec \
-+hardcode_libdir_separator \
-+exclude_expsyms \
-+include_expsyms \
-+file_list_spec \
-+variables_saved_for_relink \
-+libname_spec \
-+library_names_spec \
-+soname_spec \
-+install_override_mode \
-+finish_eval \
-+old_striplib \
-+striplib; do
-+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-+    *[\\\\\\\`\\"\\\$]*)
-+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-+      ;;
-+    *)
-+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-+      ;;
-+    esac
-+done
-+
-+# Double-quote double-evaled strings.
-+for var in reload_cmds \
-+old_postinstall_cmds \
-+old_postuninstall_cmds \
-+old_archive_cmds \
-+extract_expsyms_cmds \
-+old_archive_from_new_cmds \
-+old_archive_from_expsyms_cmds \
-+archive_cmds \
-+archive_expsym_cmds \
-+module_cmds \
-+module_expsym_cmds \
-+export_symbols_cmds \
-+prelink_cmds \
-+postlink_cmds \
-+postinstall_cmds \
-+postuninstall_cmds \
-+finish_cmds \
-+sys_lib_search_path_spec \
-+sys_lib_dlsearch_path_spec; do
-+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-+    *[\\\\\\\`\\"\\\$]*)
-+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-+      ;;
-+    *)
-+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-+      ;;
-+    esac
-+done
-+
-+ac_aux_dir='$ac_aux_dir'
-+xsi_shell='$xsi_shell'
-+lt_shell_append='$lt_shell_append'
-+
-+# See if we are running on zsh, and set the options which allow our
-+# commands through without removal of \ escapes INIT.
-+if test -n "\${ZSH_VERSION+set}" ; then
-+   setopt NO_GLOB_SUBST
-+fi
-+
-+
-+    PACKAGE='$PACKAGE'
-+    VERSION='$VERSION'
-+    TIMESTAMP='$TIMESTAMP'
-+    RM='$RM'
-+    ofile='$ofile'
-+
-+
-+
-+
-+_ACEOF
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+
-+# Handling of arguments.
-+for ac_config_target in $ac_config_targets
-+do
-+  case $ac_config_target in
-+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-+    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-+    "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
-+    "doc/Doxyfile") CONFIG_FILES="$CONFIG_FILES doc/Doxyfile" ;;
-+    "libmspack.pc") CONFIG_FILES="$CONFIG_FILES libmspack.pc" ;;
-+
-+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
-+  esac
-+done
-+
-+
-+# If the user did not use the arguments to specify the items to instantiate,
-+# then the envvar interface is used.  Set only those that are not.
-+# We use the long form for the default assignment because of an extremely
-+# bizarre bug on SunOS 4.1.3.
-+if $ac_need_defaults; then
-+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-+fi
-+
-+# Have a temporary directory for convenience.  Make it in the build tree
-+# simply because there is no reason against having it here, and in addition,
-+# creating and moving files from /tmp can sometimes cause problems.
-+# Hook for its removal unless debugging.
-+# Note that there is a small window in which the directory will not be cleaned:
-+# after its creation but before its name has been assigned to `$tmp'.
-+$debug ||
-+{
-+  tmp= ac_tmp=
-+  trap 'exit_status=$?
-+  : "${ac_tmp:=$tmp}"
-+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-+' 0
-+  trap 'as_fn_exit 1' 1 2 13 15
-+}
-+# Create a (secure) tmp directory for tmp files.
-+
-+{
-+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-+  test -d "$tmp"
-+}  ||
-+{
-+  tmp=./conf$$-$RANDOM
-+  (umask 077 && mkdir "$tmp")
-+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-+ac_tmp=$tmp
-+
-+# Set up the scripts for CONFIG_FILES section.
-+# No need to generate them if there are no CONFIG_FILES.
-+# This happens for instance with `./config.status config.h'.
-+if test -n "$CONFIG_FILES"; then
-+
-+
-+ac_cr=`echo X | tr X '\015'`
-+# On cygwin, bash can eat \r inside `` if the user requested igncr.
-+# But we know of no other shell where ac_cr would be empty at this
-+# point, so we can use a bashism as a fallback.
-+if test "x$ac_cr" = x; then
-+  eval ac_cr=\$\'\\r\'
-+fi
-+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-+  ac_cs_awk_cr='\\r'
-+else
-+  ac_cs_awk_cr=$ac_cr
-+fi
-+
-+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-+_ACEOF
-+
-+
-+{
-+  echo "cat >conf$$subs.awk <<_ACEOF" &&
-+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-+  echo "_ACEOF"
-+} >conf$$subs.sh ||
-+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-+ac_delim='%!_!# '
-+for ac_last_try in false false false false false :; do
-+  . ./conf$$subs.sh ||
-+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-+
-+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-+  if test $ac_delim_n = $ac_delim_num; then
-+    break
-+  elif $ac_last_try; then
-+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-+  else
-+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-+  fi
-+done
-+rm -f conf$$subs.sh
-+
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-+_ACEOF
-+sed -n '
-+h
-+s/^/S["/; s/!.*/"]=/
-+p
-+g
-+s/^[^!]*!//
-+:repl
-+t repl
-+s/'"$ac_delim"'$//
-+t delim
-+:nl
-+h
-+s/\(.\{148\}\)..*/\1/
-+t more1
-+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-+p
-+n
-+b repl
-+:more1
-+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-+p
-+g
-+s/.\{148\}//
-+t nl
-+:delim
-+h
-+s/\(.\{148\}\)..*/\1/
-+t more2
-+s/["\\]/\\&/g; s/^/"/; s/$/"/
-+p
-+b
-+:more2
-+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-+p
-+g
-+s/.\{148\}//
-+t delim
-+' <conf$$subs.awk | sed '
-+/^[^""]/{
-+  N
-+  s/\n//
-+}
-+' >>$CONFIG_STATUS || ac_write_fail=1
-+rm -f conf$$subs.awk
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+_ACAWK
-+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
-+  for (key in S) S_is_set[key] = 1
-+  FS = ""
-+
-+}
-+{
-+  line = $ 0
-+  nfields = split(line, field, "@")
-+  substed = 0
-+  len = length(field[1])
-+  for (i = 2; i < nfields; i++) {
-+    key = field[i]
-+    keylen = length(key)
-+    if (S_is_set[key]) {
-+      value = S[key]
-+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-+      len += length(value) + length(field[++i])
-+      substed = 1
-+    } else
-+      len += 1 + keylen
-+  }
-+
-+  print line
-+}
-+
-+_ACAWK
-+_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-+else
-+  cat
-+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
-+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-+_ACEOF
-+
-+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-+# trailing colons and then remove the whole line if VPATH becomes empty
-+# (actually we leave an empty line to preserve line numbers).
-+if test "x$srcdir" = x.; then
-+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-+h
-+s///
-+s/^/:/
-+s/[	 ]*$/:/
-+s/:\$(srcdir):/:/g
-+s/:\${srcdir}:/:/g
-+s/:@srcdir@:/:/g
-+s/^:*//
-+s/:*$//
-+x
-+s/\(=[	 ]*\).*/\1/
-+G
-+s/\n//
-+s/^[^=]*=[	 ]*$//
-+}'
-+fi
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+fi # test -n "$CONFIG_FILES"
-+
-+# Set up the scripts for CONFIG_HEADERS section.
-+# No need to generate them if there are no CONFIG_HEADERS.
-+# This happens for instance with `./config.status Makefile'.
-+if test -n "$CONFIG_HEADERS"; then
-+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-+BEGIN {
-+_ACEOF
-+
-+# Transform confdefs.h into an awk script `defines.awk', embedded as
-+# here-document in config.status, that substitutes the proper values into
-+# config.h.in to produce config.h.
-+
-+# Create a delimiter string that does not exist in confdefs.h, to ease
-+# handling of long lines.
-+ac_delim='%!_!# '
-+for ac_last_try in false false :; do
-+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
-+  if test -z "$ac_tt"; then
-+    break
-+  elif $ac_last_try; then
-+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
-+  else
-+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-+  fi
-+done
-+
-+# For the awk script, D is an array of macro values keyed by name,
-+# likewise P contains macro parameters if any.  Preserve backslash
-+# newline sequences.
-+
-+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-+sed -n '
-+s/.\{148\}/&'"$ac_delim"'/g
-+t rset
-+:rset
-+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-+t def
-+d
-+:def
-+s/\\$//
-+t bsnl
-+s/["\\]/\\&/g
-+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-+D["\1"]=" \3"/p
-+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-+d
-+:bsnl
-+s/["\\]/\\&/g
-+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-+D["\1"]=" \3\\\\\\n"\\/p
-+t cont
-+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-+t cont
-+d
-+:cont
-+n
-+s/.\{148\}/&'"$ac_delim"'/g
-+t clear
-+:clear
-+s/\\$//
-+t bsnlc
-+s/["\\]/\\&/g; s/^/"/; s/$/"/p
-+d
-+:bsnlc
-+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-+b cont
-+' <confdefs.h | sed '
-+s/'"$ac_delim"'/"\\\
-+"/g' >>$CONFIG_STATUS || ac_write_fail=1
-+
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+  for (key in D) D_is_set[key] = 1
-+  FS = ""
-+}
-+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-+  line = \$ 0
-+  split(line, arg, " ")
-+  if (arg[1] == "#") {
-+    defundef = arg[2]
-+    mac1 = arg[3]
-+  } else {
-+    defundef = substr(arg[1], 2)
-+    mac1 = arg[2]
-+  }
-+  split(mac1, mac2, "(") #)
-+  macro = mac2[1]
-+  prefix = substr(line, 1, index(line, defundef) - 1)
-+  if (D_is_set[macro]) {
-+    # Preserve the white space surrounding the "#".
-+    print prefix "define", macro P[macro] D[macro]
-+    next
-+  } else {
-+    # Replace #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.
-+    if (defundef == "undef") {
-+      print "/*", prefix defundef, macro, "*/"
-+      next
-+    }
-+  }
-+}
-+{ print }
-+_ACAWK
-+_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-+fi # test -n "$CONFIG_HEADERS"
-+
-+
-+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-+shift
-+for ac_tag
-+do
-+  case $ac_tag in
-+  :[FHLC]) ac_mode=$ac_tag; continue;;
-+  esac
-+  case $ac_mode$ac_tag in
-+  :[FHL]*:*);;
-+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
-+  :[FH]-) ac_tag=-:-;;
-+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-+  esac
-+  ac_save_IFS=$IFS
-+  IFS=:
-+  set x $ac_tag
-+  IFS=$ac_save_IFS
-+  shift
-+  ac_file=$1
-+  shift
-+
-+  case $ac_mode in
-+  :L) ac_source=$1;;
-+  :[FH])
-+    ac_file_inputs=
-+    for ac_f
-+    do
-+      case $ac_f in
-+      -) ac_f="$ac_tmp/stdin";;
-+      *) # Look for the file first in the build tree, then in the source tree
-+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-+	 # because $ac_f cannot contain `:'.
-+	 test -f "$ac_f" ||
-+	   case $ac_f in
-+	   [\\/$]*) false;;
-+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-+	   esac ||
-+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
-+      esac
-+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-+      as_fn_append ac_file_inputs " '$ac_f'"
-+    done
-+
-+    # Let's still pretend it is `configure' which instantiates (i.e., don't
-+    # use $as_me), people would be surprised to read:
-+    #    /* config.h.  Generated by config.status.  */
-+    configure_input='Generated from '`
-+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-+	`' by configure.'
-+    if test x"$ac_file" != x-; then
-+      configure_input="$ac_file.  $configure_input"
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-+$as_echo "$as_me: creating $ac_file" >&6;}
-+    fi
-+    # Neutralize special characters interpreted by sed in replacement strings.
-+    case $configure_input in #(
-+    *\&* | *\|* | *\\* )
-+       ac_sed_conf_input=`$as_echo "$configure_input" |
-+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-+    *) ac_sed_conf_input=$configure_input;;
-+    esac
-+
-+    case $ac_tag in
-+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
-+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
-+    esac
-+    ;;
-+  esac
-+
-+  ac_dir=`$as_dirname -- "$ac_file" ||
-+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+	 X"$ac_file" : 'X\(//\)[^/]' \| \
-+	 X"$ac_file" : 'X\(//\)$' \| \
-+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X"$ac_file" |
-+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)[^/].*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`
-+  as_dir="$ac_dir"; as_fn_mkdir_p
-+  ac_builddir=.
-+
-+case "$ac_dir" in
-+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-+*)
-+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-+  # A ".." for each directory in $ac_dir_suffix.
-+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-+  case $ac_top_builddir_sub in
-+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-+  esac ;;
-+esac
-+ac_abs_top_builddir=$ac_pwd
-+ac_abs_builddir=$ac_pwd$ac_dir_suffix
-+# for backward compatibility:
-+ac_top_builddir=$ac_top_build_prefix
-+
-+case $srcdir in
-+  .)  # We are building in place.
-+    ac_srcdir=.
-+    ac_top_srcdir=$ac_top_builddir_sub
-+    ac_abs_top_srcdir=$ac_pwd ;;
-+  [\\/]* | ?:[\\/]* )  # Absolute name.
-+    ac_srcdir=$srcdir$ac_dir_suffix;
-+    ac_top_srcdir=$srcdir
-+    ac_abs_top_srcdir=$srcdir ;;
-+  *) # Relative name.
-+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-+    ac_top_srcdir=$ac_top_build_prefix$srcdir
-+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-+esac
-+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-+
-+
-+  case $ac_mode in
-+  :F)
-+  #
-+  # CONFIG_FILE
-+  #
-+
-+  case $INSTALL in
-+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-+  esac
-+  ac_MKDIR_P=$MKDIR_P
-+  case $MKDIR_P in
-+  [\\/$]* | ?:[\\/]* ) ;;
-+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-+  esac
-+_ACEOF
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+# If the template does not know about datarootdir, expand it.
-+# FIXME: This hack should be removed a few years after 2.60.
-+ac_datarootdir_hack=; ac_datarootdir_seen=
-+ac_sed_dataroot='
-+/datarootdir/ {
-+  p
-+  q
-+}
-+/@datadir@/p
-+/@docdir@/p
-+/@infodir@/p
-+/@localedir@/p
-+/@mandir@/p'
-+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-+*datarootdir*) ac_datarootdir_seen=yes;;
-+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-+_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+  ac_datarootdir_hack='
-+  s&@datadir@&$datadir&g
-+  s&@docdir@&$docdir&g
-+  s&@infodir@&$infodir&g
-+  s&@localedir@&$localedir&g
-+  s&@mandir@&$mandir&g
-+  s&\\\${datarootdir}&$datarootdir&g' ;;
-+esac
-+_ACEOF
-+
-+# Neutralize VPATH when `$srcdir' = `.'.
-+# Shell code in configure.ac might set extrasub.
-+# FIXME: do we really want to maintain this feature?
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+ac_sed_extra="$ac_vpsub
-+$extrasub
-+_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-+:t
-+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-+s|@configure_input@|$ac_sed_conf_input|;t t
-+s&@top_builddir@&$ac_top_builddir_sub&;t t
-+s&@top_build_prefix@&$ac_top_build_prefix&;t t
-+s&@srcdir@&$ac_srcdir&;t t
-+s&@abs_srcdir@&$ac_abs_srcdir&;t t
-+s&@top_srcdir@&$ac_top_srcdir&;t t
-+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-+s&@builddir@&$ac_builddir&;t t
-+s&@abs_builddir@&$ac_abs_builddir&;t t
-+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-+s&@INSTALL@&$ac_INSTALL&;t t
-+s&@MKDIR_P@&$ac_MKDIR_P&;t t
-+$ac_datarootdir_hack
-+"
-+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
-+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-+
-+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
-+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
-+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-+which seems to be undefined.  Please make sure it is defined" >&5
-+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-+which seems to be undefined.  Please make sure it is defined" >&2;}
-+
-+  rm -f "$ac_tmp/stdin"
-+  case $ac_file in
-+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
-+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
-+  esac \
-+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-+ ;;
-+  :H)
-+  #
-+  # CONFIG_HEADER
-+  #
-+  if test x"$ac_file" != x-; then
-+    {
-+      $as_echo "/* $configure_input  */" \
-+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
-+    } >"$ac_tmp/config.h" \
-+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-+$as_echo "$as_me: $ac_file is unchanged" >&6;}
-+    else
-+      rm -f "$ac_file"
-+      mv "$ac_tmp/config.h" "$ac_file" \
-+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
-+    fi
-+  else
-+    $as_echo "/* $configure_input  */" \
-+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
-+      || as_fn_error $? "could not create -" "$LINENO" 5
-+  fi
-+# Compute "$ac_file"'s index in $config_headers.
-+_am_arg="$ac_file"
-+_am_stamp_count=1
-+for _am_header in $config_headers :; do
-+  case $_am_header in
-+    $_am_arg | $_am_arg:* )
-+      break ;;
-+    * )
-+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-+  esac
-+done
-+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+	 X"$_am_arg" : 'X\(//\)[^/]' \| \
-+	 X"$_am_arg" : 'X\(//\)$' \| \
-+	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X"$_am_arg" |
-+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)[^/].*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`/stamp-h$_am_stamp_count
-+ ;;
-+
-+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-+$as_echo "$as_me: executing $ac_file commands" >&6;}
-+ ;;
-+  esac
-+
-+
-+  case $ac_file$ac_mode in
-+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-+  # are listed without --file.  Let's play safe and only enable the eval
-+  # if we detect the quoting.
-+  case $CONFIG_FILES in
-+  *\'*) eval set x "$CONFIG_FILES" ;;
-+  *)   set x $CONFIG_FILES ;;
-+  esac
-+  shift
-+  for mf
-+  do
-+    # Strip MF so we end up with the name of the file.
-+    mf=`echo "$mf" | sed -e 's/:.*$//'`
-+    # Check whether this is an Automake generated Makefile or not.
-+    # We used to match only the files named `Makefile.in', but
-+    # some people rename them; so instead we look at the file content.
-+    # Grep'ing the first line is not enough: some people post-process
-+    # each Makefile.in and add a new line on top of each file to say so.
-+    # Grep'ing the whole file is not good either: AIX grep has a line
-+    # limit of 2048, but all sed's we know have understand at least 4000.
-+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-+      dirpart=`$as_dirname -- "$mf" ||
-+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+	 X"$mf" : 'X\(//\)[^/]' \| \
-+	 X"$mf" : 'X\(//\)$' \| \
-+	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X"$mf" |
-+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)[^/].*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`
-+    else
-+      continue
-+    fi
-+    # Extract the definition of DEPDIR, am__include, and am__quote
-+    # from the Makefile without running `make'.
-+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-+    test -z "$DEPDIR" && continue
-+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-+    test -z "am__include" && continue
-+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-+    # When using ansi2knr, U may be empty or an underscore; expand it
-+    U=`sed -n 's/^U = //p' < "$mf"`
-+    # Find all dependency output files, they are included files with
-+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-+    # simplest approach to changing $(DEPDIR) to its actual value in the
-+    # expansion.
-+    for file in `sed -n "
-+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-+      # Make sure the directory exists.
-+      test -f "$dirpart/$file" && continue
-+      fdir=`$as_dirname -- "$file" ||
-+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+	 X"$file" : 'X\(//\)[^/]' \| \
-+	 X"$file" : 'X\(//\)$' \| \
-+	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-+$as_echo X"$file" |
-+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)[^/].*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\/\)$/{
-+	    s//\1/
-+	    q
-+	  }
-+	  /^X\(\/\).*/{
-+	    s//\1/
-+	    q
-+	  }
-+	  s/.*/./; q'`
-+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-+      # echo "creating $dirpart/$file"
-+      echo '# dummy' > "$dirpart/$file"
-+    done
-+  done
-+}
-+ ;;
-+    "libtool":C)
-+
-+    # See if we are running on zsh, and set the options which allow our
-+    # commands through without removal of \ escapes.
-+    if test -n "${ZSH_VERSION+set}" ; then
-+      setopt NO_GLOB_SUBST
-+    fi
-+
-+    cfgfile="${ofile}T"
-+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-+    $RM "$cfgfile"
-+
-+    cat <<_LT_EOF >> "$cfgfile"
-+#! $SHELL
-+
-+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-+#
-+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-+#                 Foundation, Inc.
-+#   Written by Gordon Matzigkeit, 1996
-+#
-+#   This file is part of GNU Libtool.
-+#
-+# GNU Libtool 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.
-+#
-+# As a special exception to the GNU General Public License,
-+# if you distribute this file as part of a program or library that
-+# is built using GNU Libtool, you may include this file under the
-+# same distribution terms that you use for the rest of that program.
-+#
-+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-+# obtained by writing to the Free Software Foundation, Inc.,
-+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-+
-+
-+# The names of the tagged configurations supported by this script.
-+available_tags=""
-+
-+# ### BEGIN LIBTOOL CONFIG
-+
-+# Which release of libtool.m4 was used?
-+macro_version=$macro_version
-+macro_revision=$macro_revision
-+
-+# Whether or not to build shared libraries.
-+build_libtool_libs=$enable_shared
-+
-+# Whether or not to build static libraries.
-+build_old_libs=$enable_static
-+
-+# What type of objects to build.
-+pic_mode=$pic_mode
-+
-+# Whether or not to optimize for fast installation.
-+fast_install=$enable_fast_install
-+
-+# Shell to use when invoking shell scripts.
-+SHELL=$lt_SHELL
-+
-+# An echo program that protects backslashes.
-+ECHO=$lt_ECHO
-+
-+# The PATH separator for the build system.
-+PATH_SEPARATOR=$lt_PATH_SEPARATOR
-+
-+# The host system.
-+host_alias=$host_alias
-+host=$host
-+host_os=$host_os
-+
-+# The build system.
-+build_alias=$build_alias
-+build=$build
-+build_os=$build_os
-+
-+# A sed program that does not truncate output.
-+SED=$lt_SED
-+
-+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-+Xsed="\$SED -e 1s/^X//"
-+
-+# A grep program that handles long lines.
-+GREP=$lt_GREP
-+
-+# An ERE matcher.
-+EGREP=$lt_EGREP
-+
-+# A literal string matcher.
-+FGREP=$lt_FGREP
-+
-+# A BSD- or MS-compatible name lister.
-+NM=$lt_NM
-+
-+# Whether we need soft or hard links.
-+LN_S=$lt_LN_S
-+
-+# What is the maximum length of a command?
-+max_cmd_len=$max_cmd_len
-+
-+# Object file suffix (normally "o").
-+objext=$ac_objext
-+
-+# Executable file suffix (normally "").
-+exeext=$exeext
-+
-+# whether the shell understands "unset".
-+lt_unset=$lt_unset
-+
-+# turn spaces into newlines.
-+SP2NL=$lt_lt_SP2NL
-+
-+# turn newlines into spaces.
-+NL2SP=$lt_lt_NL2SP
-+
-+# convert \$build file names to \$host format.
-+to_host_file_cmd=$lt_cv_to_host_file_cmd
-+
-+# convert \$build files to toolchain format.
-+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-+
-+# An object symbol dumper.
-+OBJDUMP=$lt_OBJDUMP
-+
-+# Method to check whether dependent libraries are shared objects.
-+deplibs_check_method=$lt_deplibs_check_method
-+
-+# Command to use when deplibs_check_method = "file_magic".
-+file_magic_cmd=$lt_file_magic_cmd
-+
-+# How to find potential files when deplibs_check_method = "file_magic".
-+file_magic_glob=$lt_file_magic_glob
-+
-+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-+want_nocaseglob=$lt_want_nocaseglob
-+
-+# DLL creation program.
-+DLLTOOL=$lt_DLLTOOL
-+
-+# Command to associate shared and link libraries.
-+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-+
-+# The archiver.
-+AR=$lt_AR
-+
-+# Flags to create an archive.
-+AR_FLAGS=$lt_AR_FLAGS
-+
-+# How to feed a file listing to the archiver.
-+archiver_list_spec=$lt_archiver_list_spec
-+
-+# A symbol stripping program.
-+STRIP=$lt_STRIP
-+
-+# Commands used to install an old-style archive.
-+RANLIB=$lt_RANLIB
-+old_postinstall_cmds=$lt_old_postinstall_cmds
-+old_postuninstall_cmds=$lt_old_postuninstall_cmds
-+
-+# Whether to use a lock for old archive extraction.
-+lock_old_archive_extraction=$lock_old_archive_extraction
-+
-+# A C compiler.
-+LTCC=$lt_CC
-+
-+# LTCC compiler flags.
-+LTCFLAGS=$lt_CFLAGS
-+
-+# Take the output of nm and produce a listing of raw symbols and C names.
-+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-+
-+# Transform the output of nm in a proper C declaration.
-+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-+
-+# Transform the output of nm in a C name address pair.
-+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-+
-+# Transform the output of nm in a C name address pair when lib prefix is needed.
-+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-+
-+# Specify filename containing input files for \$NM.
-+nm_file_list_spec=$lt_nm_file_list_spec
-+
-+# The root where to search for dependent libraries,and in which our libraries should be installed.
-+lt_sysroot=$lt_sysroot
-+
-+# The name of the directory that contains temporary libtool files.
-+objdir=$objdir
-+
-+# Used to examine libraries when file_magic_cmd begins with "file".
-+MAGIC_CMD=$MAGIC_CMD
-+
-+# Must we lock files when doing compilation?
-+need_locks=$lt_need_locks
-+
-+# Manifest tool.
-+MANIFEST_TOOL=$lt_MANIFEST_TOOL
-+
-+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-+DSYMUTIL=$lt_DSYMUTIL
-+
-+# Tool to change global to local symbols on Mac OS X.
-+NMEDIT=$lt_NMEDIT
-+
-+# Tool to manipulate fat objects and archives on Mac OS X.
-+LIPO=$lt_LIPO
-+
-+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-+OTOOL=$lt_OTOOL
-+
-+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-+OTOOL64=$lt_OTOOL64
-+
-+# Old archive suffix (normally "a").
-+libext=$libext
-+
-+# Shared library suffix (normally ".so").
-+shrext_cmds=$lt_shrext_cmds
-+
-+# The commands to extract the exported symbol list from a shared archive.
-+extract_expsyms_cmds=$lt_extract_expsyms_cmds
-+
-+# Variables whose values should be saved in libtool wrapper scripts and
-+# restored at link time.
-+variables_saved_for_relink=$lt_variables_saved_for_relink
-+
-+# 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
-+
-+# Library versioning type.
-+version_type=$version_type
-+
-+# Shared library runtime path variable.
-+runpath_var=$runpath_var
-+
-+# Shared library path variable.
-+shlibpath_var=$shlibpath_var
-+
-+# Is shlibpath searched before the hard-coded library search path?
-+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-+
-+# Format of library name prefix.
-+libname_spec=$lt_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=$lt_library_names_spec
-+
-+# The coded name of the library, if different from the real name.
-+soname_spec=$lt_soname_spec
-+
-+# Permission mode override for installation of shared libraries.
-+install_override_mode=$lt_install_override_mode
-+
-+# Command to use after installation of a shared archive.
-+postinstall_cmds=$lt_postinstall_cmds
-+
-+# Command to use after uninstallation of a shared archive.
-+postuninstall_cmds=$lt_postuninstall_cmds
-+
-+# Commands used to finish a libtool library installation in a directory.
-+finish_cmds=$lt_finish_cmds
-+
-+# As "finish_cmds", except a single script fragment to be evaled but
-+# not shown.
-+finish_eval=$lt_finish_eval
-+
-+# Whether we should hardcode library paths into libraries.
-+hardcode_into_libs=$hardcode_into_libs
-+
-+# Compile-time system search path for libraries.
-+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-+
-+# Run-time system search path for libraries.
-+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-+
-+# Whether dlopen is supported.
-+dlopen_support=$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
-+
-+# Commands to strip libraries.
-+old_striplib=$lt_old_striplib
-+striplib=$lt_striplib
-+
-+
-+# The linker used to build libraries.
-+LD=$lt_LD
-+
-+# How to create reloadable object files.
-+reload_flag=$lt_reload_flag
-+reload_cmds=$lt_reload_cmds
-+
-+# Commands used to build an old-style archive.
-+old_archive_cmds=$lt_old_archive_cmds
-+
-+# A language specific compiler.
-+CC=$lt_compiler
-+
-+# Is the compiler the GNU compiler?
-+with_gcc=$GCC
-+
-+# Compiler flag to turn off builtin functions.
-+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-+
-+# Additional compiler flags for building library objects.
-+pic_flag=$lt_lt_prog_compiler_pic
-+
-+# How to pass a linker flag through the compiler.
-+wl=$lt_lt_prog_compiler_wl
-+
-+# Compiler flag to prevent dynamic linking.
-+link_static_flag=$lt_lt_prog_compiler_static
-+
-+# Does compiler simultaneously support -c and -o options?
-+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-+
-+# Whether or not to add -lc for building shared libraries.
-+build_libtool_need_lc=$archive_cmds_need_lc
-+
-+# Whether or not to disallow shared libs when runtime libs are static.
-+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-+
-+# Compiler flag to allow reflexive dlopens.
-+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-+
-+# Compiler flag to generate shared objects directly from archives.
-+whole_archive_flag_spec=$lt_whole_archive_flag_spec
-+
-+# Whether the compiler copes with passing no objects directly.
-+compiler_needs_object=$lt_compiler_needs_object
-+
-+# Create an old-style archive from a shared archive.
-+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-+
-+# Create a temporary old-style archive to link instead of a shared archive.
-+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-+
-+# Commands used to build a shared archive.
-+archive_cmds=$lt_archive_cmds
-+archive_expsym_cmds=$lt_archive_expsym_cmds
-+
-+# Commands used to build a loadable module if different from building
-+# a shared archive.
-+module_cmds=$lt_module_cmds
-+module_expsym_cmds=$lt_module_expsym_cmds
-+
-+# Whether we are building with GNU ld or not.
-+with_gnu_ld=$lt_with_gnu_ld
-+
-+# Flag that allows shared libraries with undefined symbols to be built.
-+allow_undefined_flag=$lt_allow_undefined_flag
-+
-+# Flag that enforces no undefined symbols.
-+no_undefined_flag=$lt_no_undefined_flag
-+
-+# Flag to hardcode \$libdir into a binary during linking.
-+# This must work even if \$libdir does not exist
-+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-+
-+# Whether we need a single "-rpath" flag with a separated argument.
-+hardcode_libdir_separator=$lt_hardcode_libdir_separator
-+
-+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-+# DIR into the resulting binary.
-+hardcode_direct=$hardcode_direct
-+
-+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-+# DIR into the resulting binary and the resulting library dependency is
-+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-+# library is relocated.
-+hardcode_direct_absolute=$hardcode_direct_absolute
-+
-+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-+# into the resulting binary.
-+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
-+
-+# Set to "yes" if building a shared library automatically hardcodes DIR
-+# into the library and all subsequent libraries and executables linked
-+# against it.
-+hardcode_automatic=$hardcode_automatic
-+
-+# Set to yes if linker adds runtime paths of dependent libraries
-+# to runtime path list.
-+inherit_rpath=$inherit_rpath
-+
-+# Whether libtool must link a program against all its dependency libraries.
-+link_all_deplibs=$link_all_deplibs
-+
-+# Set to "yes" if exported symbols are required.
-+always_export_symbols=$always_export_symbols
-+
-+# The commands to list exported symbols.
-+export_symbols_cmds=$lt_export_symbols_cmds
-+
-+# Symbols that should not be listed in the preloaded symbols.
-+exclude_expsyms=$lt_exclude_expsyms
-+
-+# Symbols that must always be exported.
-+include_expsyms=$lt_include_expsyms
-+
-+# Commands necessary for linking programs (against libraries) with templates.
-+prelink_cmds=$lt_prelink_cmds
-+
-+# Commands necessary for finishing linking programs.
-+postlink_cmds=$lt_postlink_cmds
-+
-+# Specify filename containing input files.
-+file_list_spec=$lt_file_list_spec
-+
-+# How to hardcode a shared library path into an executable.
-+hardcode_action=$hardcode_action
-+
-+# ### END LIBTOOL CONFIG
-+
-+_LT_EOF
-+
-+  case $host_os in
-+  aix3*)
-+    cat <<\_LT_EOF >> "$cfgfile"
-+# AIX sometimes has problems with the GCC collect2 program.  For some
-+# reason, if we set the COLLECT_NAMES environment variable, the problems
-+# vanish in a puff of smoke.
-+if test "X${COLLECT_NAMES+set}" != Xset; then
-+  COLLECT_NAMES=
-+  export COLLECT_NAMES
-+fi
-+_LT_EOF
-+    ;;
-+  esac
-+
-+
-+ltmain="$ac_aux_dir/ltmain.sh"
-+
-+
-+  # We use sed instead of cat because bash on DJGPP gets confused if
-+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-+  # text mode, it properly converts lines to CR/LF.  This bash problem
-+  # is reportedly fixed, but why not run on old versions too?
-+  sed '$q' "$ltmain" >> "$cfgfile" \
-+     || (rm -f "$cfgfile"; exit 1)
-+
-+  if test x"$xsi_shell" = xyes; then
-+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-+func_dirname ()\
-+{\
-+\    case ${1} in\
-+\      */*) func_dirname_result="${1%/*}${2}" ;;\
-+\      *  ) func_dirname_result="${3}" ;;\
-+\    esac\
-+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
-+func_basename ()\
-+{\
-+\    func_basename_result="${1##*/}"\
-+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-+func_dirname_and_basename ()\
-+{\
-+\    case ${1} in\
-+\      */*) func_dirname_result="${1%/*}${2}" ;;\
-+\      *  ) func_dirname_result="${3}" ;;\
-+\    esac\
-+\    func_basename_result="${1##*/}"\
-+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-+func_stripname ()\
-+{\
-+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-+\    # positional parameters, so assign one to ordinary parameter first.\
-+\    func_stripname_result=${3}\
-+\    func_stripname_result=${func_stripname_result#"${1}"}\
-+\    func_stripname_result=${func_stripname_result%"${2}"}\
-+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-+func_split_long_opt ()\
-+{\
-+\    func_split_long_opt_name=${1%%=*}\
-+\    func_split_long_opt_arg=${1#*=}\
-+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-+func_split_short_opt ()\
-+{\
-+\    func_split_short_opt_arg=${1#??}\
-+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-+func_lo2o ()\
-+{\
-+\    case ${1} in\
-+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-+\      *)    func_lo2o_result=${1} ;;\
-+\    esac\
-+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
-+func_xform ()\
-+{\
-+    func_xform_result=${1%.*}.lo\
-+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
-+func_arith ()\
-+{\
-+    func_arith_result=$(( $* ))\
-+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_len ()$/,/^} # func_len /c\
-+func_len ()\
-+{\
-+    func_len_result=${#1}\
-+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+fi
-+
-+if test x"$lt_shell_append" = xyes; then
-+  sed -e '/^func_append ()$/,/^} # func_append /c\
-+func_append ()\
-+{\
-+    eval "${1}+=\\${2}"\
-+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-+func_append_quoted ()\
-+{\
-+\    func_quote_for_eval "${2}"\
-+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  # Save a `func_append' function call where possible by direct use of '+='
-+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-+    && mv -f "$cfgfile.tmp" "$cfgfile" \
-+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+  test 0 -eq $? || _lt_function_replace_fail=:
-+else
-+  # Save a `func_append' function call even when '+=' is not available
-+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-+    && mv -f "$cfgfile.tmp" "$cfgfile" \
-+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+  test 0 -eq $? || _lt_function_replace_fail=:
-+fi
-+
-+if test x"$_lt_function_replace_fail" = x":"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-+fi
-+
-+
-+   mv -f "$cfgfile" "$ofile" ||
-+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-+  chmod +x "$ofile"
-+
-+ ;;
-+
-+  esac
-+done # for ac_tag
-+
-+
-+as_fn_exit 0
-+_ACEOF
-+ac_clean_files=$ac_clean_files_save
-+
-+test $ac_write_fail = 0 ||
-+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-+
-+
-+# configure is writing to config.log, and then calls config.status.
-+# config.status does its own redirection, appending to config.log.
-+# Unfortunately, on DOS this fails, as config.log is still kept open
-+# by configure, so config.status won't be able to write to it; its
-+# output is simply discarded.  So we exec the FD to /dev/null,
-+# effectively closing config.log, so it can be properly (re)opened and
-+# appended to by config.status.  When coming back to configure, we
-+# need to make the FD available again.
-+if test "$no_create" != yes; then
-+  ac_cs_success=:
-+  ac_config_status_args=
-+  test "$silent" = yes &&
-+    ac_config_status_args="$ac_config_status_args --quiet"
-+  exec 5>/dev/null
-+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-+  exec 5>>config.log
-+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-+  # would make configure fail if this is the last instruction.
-+  $ac_cs_success || as_fn_exit 1
-+fi
-+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-+fi
-+
-diff --git a/libclamav/libmspack-0.4alpha/configure.ac b/libclamav/libmspack-0.4alpha/configure.ac
-new file mode 100644
-index 000000000000..55fb6ce5ee9d
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/configure.ac
-@@ -0,0 +1,50 @@
-+# -*- Autoconf -*-
-+# Process this file with autoconf to produce a configure script.
-+AC_PREREQ(2.59)
-+AC_INIT([libmspack],[0.4alpha],[kyzer at 4u.net])
-+AC_CONFIG_MACRO_DIR([m4])
-+AM_INIT_AUTOMAKE
-+AC_CONFIG_SRCDIR([mspack/mspack.h])
-+AC_CONFIG_HEADER([config.h])
-+
-+dnl Enable silent rules by default (if yet support in automake)
-+dnl use 'make V=1' to look at verbose commandline
-+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-+
-+# --enable-debug option
-+AC_ARG_ENABLE(debug,
-+  AS_HELP_STRING(--enable-debug,enable debugging),
-+  enable_debug=$enableval,
-+  enable_debug=no)
-+if test x$enable_debug = xyes; then
-+  AC_DEFINE(DEBUG, 1, [Turn debugging mode on?])
-+fi
-+AM_CONDITIONAL(DEBUG, test x$enable_debug = 'xyes')
-+
-+# Checks for programs.
-+AC_PROG_CC
-+AM_CONDITIONAL(GCC, test x$GCC = 'xyes')
-+AC_PROG_INSTALL
-+LT_INIT
-+AC_EXEEXT
-+
-+# Checks for header files.
-+AC_HEADER_STDC
-+AC_CHECK_HEADERS([ctype.h limits.h stdlib.h wctype.h])
-+
-+# Checks for typedefs, structures, and compiler characteristics.
-+AC_C_CONST
-+AC_C_INLINE
-+AC_TYPE_MODE_T
-+AC_TYPE_OFF_T
-+AC_TYPE_SIZE_T
-+AC_CHECK_SIZEOF([off_t])
-+AC_CHECK_FUNCS([tolower towlower])
-+
-+# largefile support
-+AC_SYS_LARGEFILE
-+AC_FUNC_FSEEKO
-+
-+# Checks for library functions.
-+AC_CONFIG_FILES([Makefile doc/Makefile doc/Doxyfile libmspack.pc])
-+AC_OUTPUT
-diff --git a/libclamav/libmspack-0.4alpha/depcomp b/libclamav/libmspack-0.4alpha/depcomp
-new file mode 100755
-index 000000000000..bd0ac089584a
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/depcomp
-@@ -0,0 +1,688 @@
-+#! /bin/sh
-+# depcomp - compile a program generating dependencies as side-effects
-+
-+scriptversion=2011-12-04.11; # UTC
-+
-+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-+# 2011 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, see <http://www.gnu.org/licenses/>.
-+
-+# 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.
-+
-+# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
-+
-+case $1 in
-+  '')
-+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
-+     exit 1;
-+     ;;
-+  -h | --h*)
-+    cat <<\EOF
-+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-+
-+Run PROGRAMS ARGS to compile a file, generating dependencies
-+as side-effects.
-+
-+Environment variables:
-+  depmode     Dependency tracking mode.
-+  source      Source file read by `PROGRAMS ARGS'.
-+  object      Object file output by `PROGRAMS ARGS'.
-+  DEPDIR      directory where to store dependencies.
-+  depfile     Dependency file to output.
-+  tmpdepfile  Temporary file to use when outputting dependencies.
-+  libtool     Whether libtool is used (yes/no).
-+
-+Report bugs to <bug-automake at gnu.org>.
-+EOF
-+    exit $?
-+    ;;
-+  -v | --v*)
-+    echo "depcomp $scriptversion"
-+    exit $?
-+    ;;
-+esac
-+
-+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
-+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
-+  exit 1
-+fi
-+
-+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-+depfile=${depfile-`echo "$object" |
-+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-+
-+rm -f "$tmpdepfile"
-+
-+# Some modes work just like other modes, but use different flags.  We
-+# parameterize here, but still list the modes in the big case below,
-+# to make depend.m4 easier to write.  Note that we *cannot* use a case
-+# here, because this file can only contain one case statement.
-+if test "$depmode" = hp; then
-+  # HP compiler uses -M and no extra arg.
-+  gccflag=-M
-+  depmode=gcc
-+fi
-+
-+if test "$depmode" = dashXmstdout; then
-+   # This is just like dashmstdout with a different argument.
-+   dashmflag=-xM
-+   depmode=dashmstdout
-+fi
-+
-+cygpath_u="cygpath -u -f -"
-+if test "$depmode" = msvcmsys; then
-+   # This is just like msvisualcpp but w/o cygpath translation.
-+   # Just convert the backslash-escaped backslashes to single forward
-+   # slashes to satisfy depend.m4
-+   cygpath_u='sed s,\\\\,/,g'
-+   depmode=msvisualcpp
-+fi
-+
-+if test "$depmode" = msvc7msys; then
-+   # This is just like msvc7 but w/o cygpath translation.
-+   # Just convert the backslash-escaped backslashes to single forward
-+   # slashes to satisfy depend.m4
-+   cygpath_u='sed s,\\\\,/,g'
-+   depmode=msvc7
-+fi
-+
-+case "$depmode" in
-+gcc3)
-+## gcc 3 implements dependency tracking that does exactly what
-+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
-+## it if -MD -MP comes after the -MF stuff.  Hmm.
-+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-+## the command line argument order; so add the flags where they
-+## appear in depend2.am.  Note that the slowdown incurred here
-+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
-+  for arg
-+  do
-+    case $arg in
-+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
-+    *)  set fnord "$@" "$arg" ;;
-+    esac
-+    shift # fnord
-+    shift # $arg
-+  done
-+  "$@"
-+  stat=$?
-+  if test $stat -eq 0; then :
-+  else
-+    rm -f "$tmpdepfile"
-+    exit $stat
-+  fi
-+  mv "$tmpdepfile" "$depfile"
-+  ;;
-+
-+gcc)
-+## There are various ways to get dependency output from gcc.  Here's
-+## why we pick this rather obscure method:
-+## - Don't want to use -MD because we'd like the dependencies to end
-+##   up in a subdir.  Having to rename by hand is ugly.
-+##   (We might end up doing this anyway to support other compilers.)
-+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-+##   -MM, not -M (despite what the docs say).
-+## - Using -M directly means running the compiler twice (even worse
-+##   than renaming).
-+  if test -z "$gccflag"; then
-+    gccflag=-MD,
-+  fi
-+  "$@" -Wp,"$gccflag$tmpdepfile"
-+  stat=$?
-+  if test $stat -eq 0; then :
-+  else
-+    rm -f "$tmpdepfile"
-+    exit $stat
-+  fi
-+  rm -f "$depfile"
-+  echo "$object : \\" > "$depfile"
-+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-+## The second -e expression handles DOS-style file names with drive letters.
-+  sed -e 's/^[^:]*: / /' \
-+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-+## This next piece of magic avoids the `deleted header file' problem.
-+## The problem is that when a header file which appears in a .P file
-+## is deleted, the dependency causes make to die (because there is
-+## typically no way to rebuild the header).  We avoid this by adding
-+## dummy dependencies for each header file.  Too bad gcc doesn't do
-+## this for us directly.
-+  tr ' ' '
-+' < "$tmpdepfile" |
-+## Some versions of gcc put a space before the `:'.  On the theory
-+## that the space means something, we add a space to the output as
-+## well.  hp depmode also adds that space, but also prefixes the VPATH
-+## to the object.  Take care to not repeat it in the output.
-+## Some versions of the HPUX 10.20 sed can't process this invocation
-+## correctly.  Breaking it into two sed invocations is a workaround.
-+    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
-+      | sed -e 's/$/ :/' >> "$depfile"
-+  rm -f "$tmpdepfile"
-+  ;;
-+
-+hp)
-+  # This case exists only to let depend.m4 do its work.  It works by
-+  # looking at the text of this script.  This case will never be run,
-+  # since it is checked for above.
-+  exit 1
-+  ;;
-+
-+sgi)
-+  if test "$libtool" = yes; then
-+    "$@" "-Wp,-MDupdate,$tmpdepfile"
-+  else
-+    "$@" -MDupdate "$tmpdepfile"
-+  fi
-+  stat=$?
-+  if test $stat -eq 0; then :
-+  else
-+    rm -f "$tmpdepfile"
-+    exit $stat
-+  fi
-+  rm -f "$depfile"
-+
-+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
-+    echo "$object : \\" > "$depfile"
-+
-+    # Clip off the initial element (the dependent).  Don't try to be
-+    # clever and replace this with sed code, as IRIX sed won't handle
-+    # lines with more than a fixed number of characters (4096 in
-+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-+    # the IRIX cc adds comments like `#:fec' to the end of the
-+    # dependency line.
-+    tr ' ' '
-+' < "$tmpdepfile" \
-+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-+    tr '
-+' ' ' >> "$depfile"
-+    echo >> "$depfile"
-+
-+    # The second pass generates a dummy entry for each header file.
-+    tr ' ' '
-+' < "$tmpdepfile" \
-+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-+   >> "$depfile"
-+  else
-+    # The sourcefile does not contain any dependencies, so just
-+    # store a dummy comment line, to avoid errors with the Makefile
-+    # "include basename.Plo" scheme.
-+    echo "#dummy" > "$depfile"
-+  fi
-+  rm -f "$tmpdepfile"
-+  ;;
-+
-+aix)
-+  # The C for AIX Compiler uses -M and outputs the dependencies
-+  # in a .u file.  In older versions, this file always lives in the
-+  # current directory.  Also, the AIX compiler puts `$object:' at the
-+  # start of each line; $object doesn't have directory information.
-+  # Version 6 uses the directory in both cases.
-+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-+  test "x$dir" = "x$object" && dir=
-+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-+  if test "$libtool" = yes; then
-+    tmpdepfile1=$dir$base.u
-+    tmpdepfile2=$base.u
-+    tmpdepfile3=$dir.libs/$base.u
-+    "$@" -Wc,-M
-+  else
-+    tmpdepfile1=$dir$base.u
-+    tmpdepfile2=$dir$base.u
-+    tmpdepfile3=$dir$base.u
-+    "$@" -M
-+  fi
-+  stat=$?
-+
-+  if test $stat -eq 0; then :
-+  else
-+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
-+    exit $stat
-+  fi
-+
-+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
-+  do
-+    test -f "$tmpdepfile" && break
-+  done
-+  if test -f "$tmpdepfile"; then
-+    # Each line is of the form `foo.o: dependent.h'.
-+    # Do two passes, one to just change these to
-+    # `$object: dependent.h' and one to simply `dependent.h:'.
-+    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-+    # That's a tab and a space in the [].
-+    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-+  else
-+    # The sourcefile does not contain any dependencies, so just
-+    # store a dummy comment line, to avoid errors with the Makefile
-+    # "include basename.Plo" scheme.
-+    echo "#dummy" > "$depfile"
-+  fi
-+  rm -f "$tmpdepfile"
-+  ;;
-+
-+icc)
-+  # Intel's C compiler understands `-MD -MF file'.  However on
-+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-+  # ICC 7.0 will fill foo.d with something like
-+  #    foo.o: sub/foo.c
-+  #    foo.o: sub/foo.h
-+  # which is wrong.  We want:
-+  #    sub/foo.o: sub/foo.c
-+  #    sub/foo.o: sub/foo.h
-+  #    sub/foo.c:
-+  #    sub/foo.h:
-+  # ICC 7.1 will output
-+  #    foo.o: sub/foo.c sub/foo.h
-+  # and will wrap long lines using \ :
-+  #    foo.o: sub/foo.c ... \
-+  #     sub/foo.h ... \
-+  #     ...
-+
-+  "$@" -MD -MF "$tmpdepfile"
-+  stat=$?
-+  if test $stat -eq 0; then :
-+  else
-+    rm -f "$tmpdepfile"
-+    exit $stat
-+  fi
-+  rm -f "$depfile"
-+  # Each line is of the form `foo.o: dependent.h',
-+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
-+  # Do two passes, one to just change these to
-+  # `$object: dependent.h' and one to simply `dependent.h:'.
-+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
-+  # Some versions of the HPUX 10.20 sed can't process this invocation
-+  # correctly.  Breaking it into two sed invocations is a workaround.
-+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-+    sed -e 's/$/ :/' >> "$depfile"
-+  rm -f "$tmpdepfile"
-+  ;;
-+
-+hp2)
-+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
-+  # compilers, which have integrated preprocessors.  The correct option
-+  # to use with these is +Maked; it writes dependencies to a file named
-+  # 'foo.d', which lands next to the object file, wherever that
-+  # happens to be.
-+  # Much of this is similar to the tru64 case; see comments there.
-+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-+  test "x$dir" = "x$object" && dir=
-+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-+  if test "$libtool" = yes; then
-+    tmpdepfile1=$dir$base.d
-+    tmpdepfile2=$dir.libs/$base.d
-+    "$@" -Wc,+Maked
-+  else
-+    tmpdepfile1=$dir$base.d
-+    tmpdepfile2=$dir$base.d
-+    "$@" +Maked
-+  fi
-+  stat=$?
-+  if test $stat -eq 0; then :
-+  else
-+     rm -f "$tmpdepfile1" "$tmpdepfile2"
-+     exit $stat
-+  fi
-+
-+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
-+  do
-+    test -f "$tmpdepfile" && break
-+  done
-+  if test -f "$tmpdepfile"; then
-+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-+    # Add `dependent.h:' lines.
-+    sed -ne '2,${
-+	       s/^ *//
-+	       s/ \\*$//
-+	       s/$/:/
-+	       p
-+	     }' "$tmpdepfile" >> "$depfile"
-+  else
-+    echo "#dummy" > "$depfile"
-+  fi
-+  rm -f "$tmpdepfile" "$tmpdepfile2"
-+  ;;
-+
-+tru64)
-+   # The Tru64 compiler uses -MD to generate dependencies as a side
-+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
-+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-+   # dependencies in `foo.d' instead, so we check for that too.
-+   # Subdirectories are respected.
-+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-+   test "x$dir" = "x$object" && dir=
-+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-+
-+   if test "$libtool" = yes; then
-+      # With Tru64 cc, shared objects can also be used to make a
-+      # static library.  This mechanism is used in libtool 1.4 series to
-+      # handle both shared and static libraries in a single compilation.
-+      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-+      #
-+      # With libtool 1.5 this exception was removed, and libtool now
-+      # generates 2 separate objects for the 2 libraries.  These two
-+      # compilations output dependencies in $dir.libs/$base.o.d and
-+      # in $dir$base.o.d.  We have to check for both files, because
-+      # one of the two compilations can be disabled.  We should prefer
-+      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-+      # automatically cleaned when .libs/ is deleted, while ignoring
-+      # the former would cause a distcleancheck panic.
-+      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-+      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-+      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-+      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-+      "$@" -Wc,-MD
-+   else
-+      tmpdepfile1=$dir$base.o.d
-+      tmpdepfile2=$dir$base.d
-+      tmpdepfile3=$dir$base.d
-+      tmpdepfile4=$dir$base.d
-+      "$@" -MD
-+   fi
-+
-+   stat=$?
-+   if test $stat -eq 0; then :
-+   else
-+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-+      exit $stat
-+   fi
-+
-+   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-+   do
-+     test -f "$tmpdepfile" && break
-+   done
-+   if test -f "$tmpdepfile"; then
-+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-+      # That's a tab and a space in the [].
-+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-+   else
-+      echo "#dummy" > "$depfile"
-+   fi
-+   rm -f "$tmpdepfile"
-+   ;;
-+
-+msvc7)
-+  if test "$libtool" = yes; then
-+    showIncludes=-Wc,-showIncludes
-+  else
-+    showIncludes=-showIncludes
-+  fi
-+  "$@" $showIncludes > "$tmpdepfile"
-+  stat=$?
-+  grep -v '^Note: including file: ' "$tmpdepfile"
-+  if test "$stat" = 0; then :
-+  else
-+    rm -f "$tmpdepfile"
-+    exit $stat
-+  fi
-+  rm -f "$depfile"
-+  echo "$object : \\" > "$depfile"
-+  # The first sed program below extracts the file names and escapes
-+  # backslashes for cygpath.  The second sed program outputs the file
-+  # name when reading, but also accumulates all include files in the
-+  # hold buffer in order to output them again at the end.  This only
-+  # works with sed implementations that can handle large buffers.
-+  sed < "$tmpdepfile" -n '
-+/^Note: including file:  *\(.*\)/ {
-+  s//\1/
-+  s/\\/\\\\/g
-+  p
-+}' | $cygpath_u | sort -u | sed -n '
-+s/ /\\ /g
-+s/\(.*\)/	\1 \\/p
-+s/.\(.*\) \\/\1:/
-+H
-+$ {
-+  s/.*/	/
-+  G
-+  p
-+}' >> "$depfile"
-+  rm -f "$tmpdepfile"
-+  ;;
-+
-+msvc7msys)
-+  # This case exists only to let depend.m4 do its work.  It works by
-+  # looking at the text of this script.  This case will never be run,
-+  # since it is checked for above.
-+  exit 1
-+  ;;
-+
-+#nosideeffect)
-+  # This comment above is used by automake to tell side-effect
-+  # dependency tracking mechanisms from slower ones.
-+
-+dashmstdout)
-+  # Important note: in order to support this mode, a compiler *must*
-+  # always write the preprocessed file to stdout, regardless of -o.
-+  "$@" || exit $?
-+
-+  # Remove the call to Libtool.
-+  if test "$libtool" = yes; then
-+    while test "X$1" != 'X--mode=compile'; do
-+      shift
-+    done
-+    shift
-+  fi
-+
-+  # Remove `-o $object'.
-+  IFS=" "
-+  for arg
-+  do
-+    case $arg in
-+    -o)
-+      shift
-+      ;;
-+    $object)
-+      shift
-+      ;;
-+    *)
-+      set fnord "$@" "$arg"
-+      shift # fnord
-+      shift # $arg
-+      ;;
-+    esac
-+  done
-+
-+  test -z "$dashmflag" && dashmflag=-M
-+  # Require at least two characters before searching for `:'
-+  # in the target name.  This is to cope with DOS-style filenames:
-+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
-+  "$@" $dashmflag |
-+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
-+  rm -f "$depfile"
-+  cat < "$tmpdepfile" > "$depfile"
-+  tr ' ' '
-+' < "$tmpdepfile" | \
-+## Some versions of the HPUX 10.20 sed can't process this invocation
-+## correctly.  Breaking it into two sed invocations is a workaround.
-+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
-+  rm -f "$tmpdepfile"
-+  ;;
-+
-+dashXmstdout)
-+  # This case only exists to satisfy depend.m4.  It is never actually
-+  # run, as this mode is specially recognized in the preamble.
-+  exit 1
-+  ;;
-+
-+makedepend)
-+  "$@" || exit $?
-+  # Remove any Libtool call
-+  if test "$libtool" = yes; then
-+    while test "X$1" != 'X--mode=compile'; do
-+      shift
-+    done
-+    shift
-+  fi
-+  # X makedepend
-+  shift
-+  cleared=no eat=no
-+  for arg
-+  do
-+    case $cleared in
-+    no)
-+      set ""; shift
-+      cleared=yes ;;
-+    esac
-+    if test $eat = yes; then
-+      eat=no
-+      continue
-+    fi
-+    case "$arg" in
-+    -D*|-I*)
-+      set fnord "$@" "$arg"; shift ;;
-+    # Strip any option that makedepend may not understand.  Remove
-+    # the object too, otherwise makedepend will parse it as a source file.
-+    -arch)
-+      eat=yes ;;
-+    -*|$object)
-+      ;;
-+    *)
-+      set fnord "$@" "$arg"; shift ;;
-+    esac
-+  done
-+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
-+  touch "$tmpdepfile"
-+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
-+  rm -f "$depfile"
-+  # makedepend may prepend the VPATH from the source file name to the object.
-+  # No need to regex-escape $object, excess matching of '.' is harmless.
-+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-+  sed '1,2d' "$tmpdepfile" | tr ' ' '
-+' | \
-+## Some versions of the HPUX 10.20 sed can't process this invocation
-+## correctly.  Breaking it into two sed invocations is a workaround.
-+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
-+  rm -f "$tmpdepfile" "$tmpdepfile".bak
-+  ;;
-+
-+cpp)
-+  # Important note: in order to support this mode, a compiler *must*
-+  # always write the preprocessed file to stdout.
-+  "$@" || exit $?
-+
-+  # Remove the call to Libtool.
-+  if test "$libtool" = yes; then
-+    while test "X$1" != 'X--mode=compile'; do
-+      shift
-+    done
-+    shift
-+  fi
-+
-+  # Remove `-o $object'.
-+  IFS=" "
-+  for arg
-+  do
-+    case $arg in
-+    -o)
-+      shift
-+      ;;
-+    $object)
-+      shift
-+      ;;
-+    *)
-+      set fnord "$@" "$arg"
-+      shift # fnord
-+      shift # $arg
-+      ;;
-+    esac
-+  done
-+
-+  "$@" -E |
-+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-+       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-+    sed '$ s: \\$::' > "$tmpdepfile"
-+  rm -f "$depfile"
-+  echo "$object : \\" > "$depfile"
-+  cat < "$tmpdepfile" >> "$depfile"
-+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
-+  rm -f "$tmpdepfile"
-+  ;;
-+
-+msvisualcpp)
-+  # Important note: in order to support this mode, a compiler *must*
-+  # always write the preprocessed file to stdout.
-+  "$@" || exit $?
-+
-+  # Remove the call to Libtool.
-+  if test "$libtool" = yes; then
-+    while test "X$1" != 'X--mode=compile'; do
-+      shift
-+    done
-+    shift
-+  fi
-+
-+  IFS=" "
-+  for arg
-+  do
-+    case "$arg" in
-+    -o)
-+      shift
-+      ;;
-+    $object)
-+      shift
-+      ;;
-+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-+	set fnord "$@"
-+	shift
-+	shift
-+	;;
-+    *)
-+	set fnord "$@" "$arg"
-+	shift
-+	shift
-+	;;
-+    esac
-+  done
-+  "$@" -E 2>/dev/null |
-+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
-+  rm -f "$depfile"
-+  echo "$object : \\" > "$depfile"
-+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
-+  echo "	" >> "$depfile"
-+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
-+  rm -f "$tmpdepfile"
-+  ;;
-+
-+msvcmsys)
-+  # This case exists only to let depend.m4 do its work.  It works by
-+  # looking at the text of this script.  This case will never be run,
-+  # since it is checked for above.
-+  exit 1
-+  ;;
-+
-+none)
-+  exec "$@"
-+  ;;
-+
-+*)
-+  echo "Unknown depmode $depmode" 1>&2
-+  exit 1
-+  ;;
-+esac
-+
-+exit 0
-+
-+# Local Variables:
-+# mode: shell-script
-+# sh-indentation: 2
-+# eval: (add-hook 'write-file-hooks 'time-stamp)
-+# time-stamp-start: "scriptversion="
-+# time-stamp-format: "%:y-%02m-%02d.%02H"
-+# time-stamp-time-zone: "UTC"
-+# time-stamp-end: "; # UTC"
-+# End:
-diff --git a/libclamav/libmspack-0.4alpha/install-sh b/libclamav/libmspack-0.4alpha/install-sh
-new file mode 100755
-index 000000000000..6781b987bdbc
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/install-sh
-@@ -0,0 +1,520 @@
-+#!/bin/sh
-+# install - install a program, script, or datafile
-+
-+scriptversion=2009-04-28.21; # UTC
-+
-+# This originates from X11R5 (mit/util/scripts/install.sh), which was
-+# later released in X11R6 (xc/config/util/install.sh) with the
-+# following copyright and license.
-+#
-+# Copyright (C) 1994 X Consortium
-+#
-+# Permission is hereby granted, free of charge, to any person obtaining a copy
-+# of this software and associated documentation files (the "Software"), to
-+# deal in the Software without restriction, including without limitation the
-+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-+# sell copies of the Software, and to permit persons to whom the Software is
-+# furnished to do so, subject to the following conditions:
-+#
-+# The above copyright notice and this permission notice shall be included in
-+# all copies or substantial portions of the Software.
-+#
-+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+#
-+# Except as contained in this notice, the name of the X Consortium shall not
-+# be used in advertising or otherwise to promote the sale, use or other deal-
-+# ings in this Software without prior written authorization from the X Consor-
-+# tium.
-+#
-+#
-+# FSF changes to this file are in the public domain.
-+#
-+# Calling this script install-sh is preferred over install.sh, to prevent
-+# `make' implicit rules from creating a file called install from it
-+# when there is no Makefile.
-+#
-+# This script is compatible with the BSD install script, but was written
-+# from scratch.
-+
-+nl='
-+'
-+IFS=" ""	$nl"
-+
-+# set DOITPROG to echo to test this script
-+
-+# Don't use :- since 4.3BSD and earlier shells don't like it.
-+doit=${DOITPROG-}
-+if test -z "$doit"; then
-+  doit_exec=exec
-+else
-+  doit_exec=$doit
-+fi
-+
-+# Put in absolute file names if you don't have them in your path;
-+# or use environment vars.
-+
-+chgrpprog=${CHGRPPROG-chgrp}
-+chmodprog=${CHMODPROG-chmod}
-+chownprog=${CHOWNPROG-chown}
-+cmpprog=${CMPPROG-cmp}
-+cpprog=${CPPROG-cp}
-+mkdirprog=${MKDIRPROG-mkdir}
-+mvprog=${MVPROG-mv}
-+rmprog=${RMPROG-rm}
-+stripprog=${STRIPPROG-strip}
-+
-+posix_glob='?'
-+initialize_posix_glob='
-+  test "$posix_glob" != "?" || {
-+    if (set -f) 2>/dev/null; then
-+      posix_glob=
-+    else
-+      posix_glob=:
-+    fi
-+  }
-+'
-+
-+posix_mkdir=
-+
-+# Desired mode of installed file.
-+mode=0755
-+
-+chgrpcmd=
-+chmodcmd=$chmodprog
-+chowncmd=
-+mvcmd=$mvprog
-+rmcmd="$rmprog -f"
-+stripcmd=
-+
-+src=
-+dst=
-+dir_arg=
-+dst_arg=
-+
-+copy_on_change=false
-+no_target_directory=
-+
-+usage="\
-+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
-+   or: $0 [OPTION]... SRCFILES... DIRECTORY
-+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
-+   or: $0 [OPTION]... -d DIRECTORIES...
-+
-+In the 1st form, copy SRCFILE to DSTFILE.
-+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-+In the 4th, create DIRECTORIES.
-+
-+Options:
-+     --help     display this help and exit.
-+     --version  display version info and exit.
-+
-+  -c            (ignored)
-+  -C            install only if different (preserve the last data modification time)
-+  -d            create directories instead of installing files.
-+  -g GROUP      $chgrpprog installed files to GROUP.
-+  -m MODE       $chmodprog installed files to MODE.
-+  -o USER       $chownprog installed files to USER.
-+  -s            $stripprog installed files.
-+  -t DIRECTORY  install into DIRECTORY.
-+  -T            report an error if DSTFILE is a directory.
-+
-+Environment variables override the default commands:
-+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
-+  RMPROG STRIPPROG
-+"
-+
-+while test $# -ne 0; do
-+  case $1 in
-+    -c) ;;
-+
-+    -C) copy_on_change=true;;
-+
-+    -d) dir_arg=true;;
-+
-+    -g) chgrpcmd="$chgrpprog $2"
-+	shift;;
-+
-+    --help) echo "$usage"; exit $?;;
-+
-+    -m) mode=$2
-+	case $mode in
-+	  *' '* | *'	'* | *'
-+'*	  | *'*'* | *'?'* | *'['*)
-+	    echo "$0: invalid mode: $mode" >&2
-+	    exit 1;;
-+	esac
-+	shift;;
-+
-+    -o) chowncmd="$chownprog $2"
-+	shift;;
-+
-+    -s) stripcmd=$stripprog;;
-+
-+    -t) dst_arg=$2
-+	shift;;
-+
-+    -T) no_target_directory=true;;
-+
-+    --version) echo "$0 $scriptversion"; exit $?;;
-+
-+    --)	shift
-+	break;;
-+
-+    -*)	echo "$0: invalid option: $1" >&2
-+	exit 1;;
-+
-+    *)  break;;
-+  esac
-+  shift
-+done
-+
-+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
-+  # When -d is used, all remaining arguments are directories to create.
-+  # When -t is used, the destination is already specified.
-+  # Otherwise, the last argument is the destination.  Remove it from $@.
-+  for arg
-+  do
-+    if test -n "$dst_arg"; then
-+      # $@ is not empty: it contains at least $arg.
-+      set fnord "$@" "$dst_arg"
-+      shift # fnord
-+    fi
-+    shift # arg
-+    dst_arg=$arg
-+  done
-+fi
-+
-+if test $# -eq 0; then
-+  if test -z "$dir_arg"; then
-+    echo "$0: no input file specified." >&2
-+    exit 1
-+  fi
-+  # It's OK to call `install-sh -d' without argument.
-+  # This can happen when creating conditional directories.
-+  exit 0
-+fi
-+
-+if test -z "$dir_arg"; then
-+  trap '(exit $?); exit' 1 2 13 15
-+
-+  # Set umask so as not to create temps with too-generous modes.
-+  # However, 'strip' requires both read and write access to temps.
-+  case $mode in
-+    # Optimize common cases.
-+    *644) cp_umask=133;;
-+    *755) cp_umask=22;;
-+
-+    *[0-7])
-+      if test -z "$stripcmd"; then
-+	u_plus_rw=
-+      else
-+	u_plus_rw='% 200'
-+      fi
-+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
-+    *)
-+      if test -z "$stripcmd"; then
-+	u_plus_rw=
-+      else
-+	u_plus_rw=,u+rw
-+      fi
-+      cp_umask=$mode$u_plus_rw;;
-+  esac
-+fi
-+
-+for src
-+do
-+  # Protect names starting with `-'.
-+  case $src in
-+    -*) src=./$src;;
-+  esac
-+
-+  if test -n "$dir_arg"; then
-+    dst=$src
-+    dstdir=$dst
-+    test -d "$dstdir"
-+    dstdir_status=$?
-+  else
-+
-+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
-+    # might cause directories to be created, which would be especially bad
-+    # if $src (and thus $dsttmp) contains '*'.
-+    if test ! -f "$src" && test ! -d "$src"; then
-+      echo "$0: $src does not exist." >&2
-+      exit 1
-+    fi
-+
-+    if test -z "$dst_arg"; then
-+      echo "$0: no destination specified." >&2
-+      exit 1
-+    fi
-+
-+    dst=$dst_arg
-+    # Protect names starting with `-'.
-+    case $dst in
-+      -*) dst=./$dst;;
-+    esac
-+
-+    # If destination is a directory, append the input filename; won't work
-+    # if double slashes aren't ignored.
-+    if test -d "$dst"; then
-+      if test -n "$no_target_directory"; then
-+	echo "$0: $dst_arg: Is a directory" >&2
-+	exit 1
-+      fi
-+      dstdir=$dst
-+      dst=$dstdir/`basename "$src"`
-+      dstdir_status=0
-+    else
-+      # Prefer dirname, but fall back on a substitute if dirname fails.
-+      dstdir=`
-+	(dirname "$dst") 2>/dev/null ||
-+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+	     X"$dst" : 'X\(//\)[^/]' \| \
-+	     X"$dst" : 'X\(//\)$' \| \
-+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-+	echo X"$dst" |
-+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+		   s//\1/
-+		   q
-+		 }
-+		 /^X\(\/\/\)[^/].*/{
-+		   s//\1/
-+		   q
-+		 }
-+		 /^X\(\/\/\)$/{
-+		   s//\1/
-+		   q
-+		 }
-+		 /^X\(\/\).*/{
-+		   s//\1/
-+		   q
-+		 }
-+		 s/.*/./; q'
-+      `
-+
-+      test -d "$dstdir"
-+      dstdir_status=$?
-+    fi
-+  fi
-+
-+  obsolete_mkdir_used=false
-+
-+  if test $dstdir_status != 0; then
-+    case $posix_mkdir in
-+      '')
-+	# Create intermediate dirs using mode 755 as modified by the umask.
-+	# This is like FreeBSD 'install' as of 1997-10-28.
-+	umask=`umask`
-+	case $stripcmd.$umask in
-+	  # Optimize common cases.
-+	  *[2367][2367]) mkdir_umask=$umask;;
-+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-+
-+	  *[0-7])
-+	    mkdir_umask=`expr $umask + 22 \
-+	      - $umask % 100 % 40 + $umask % 20 \
-+	      - $umask % 10 % 4 + $umask % 2
-+	    `;;
-+	  *) mkdir_umask=$umask,go-w;;
-+	esac
-+
-+	# With -d, create the new directory with the user-specified mode.
-+	# Otherwise, rely on $mkdir_umask.
-+	if test -n "$dir_arg"; then
-+	  mkdir_mode=-m$mode
-+	else
-+	  mkdir_mode=
-+	fi
-+
-+	posix_mkdir=false
-+	case $umask in
-+	  *[123567][0-7][0-7])
-+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
-+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-+	    ;;
-+	  *)
-+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-+
-+	    if (umask $mkdir_umask &&
-+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-+	    then
-+	      if test -z "$dir_arg" || {
-+		   # Check for POSIX incompatibilities with -m.
-+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-+		   # other-writeable bit of parent directory when it shouldn't.
-+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
-+		   case $ls_ld_tmpdir in
-+		     d????-?r-*) different_mode=700;;
-+		     d????-?--*) different_mode=755;;
-+		     *) false;;
-+		   esac &&
-+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-+		   }
-+		 }
-+	      then posix_mkdir=:
-+	      fi
-+	      rmdir "$tmpdir/d" "$tmpdir"
-+	    else
-+	      # Remove any dirs left behind by ancient mkdir implementations.
-+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-+	    fi
-+	    trap '' 0;;
-+	esac;;
-+    esac
-+
-+    if
-+      $posix_mkdir && (
-+	umask $mkdir_umask &&
-+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
-+      )
-+    then :
-+    else
-+
-+      # The umask is ridiculous, or mkdir does not conform to POSIX,
-+      # or it failed possibly due to a race condition.  Create the
-+      # directory the slow way, step by step, checking for races as we go.
-+
-+      case $dstdir in
-+	/*) prefix='/';;
-+	-*) prefix='./';;
-+	*)  prefix='';;
-+      esac
-+
-+      eval "$initialize_posix_glob"
-+
-+      oIFS=$IFS
-+      IFS=/
-+      $posix_glob set -f
-+      set fnord $dstdir
-+      shift
-+      $posix_glob set +f
-+      IFS=$oIFS
-+
-+      prefixes=
-+
-+      for d
-+      do
-+	test -z "$d" && continue
-+
-+	prefix=$prefix$d
-+	if test -d "$prefix"; then
-+	  prefixes=
-+	else
-+	  if $posix_mkdir; then
-+	    (umask=$mkdir_umask &&
-+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-+	    # Don't fail if two instances are running concurrently.
-+	    test -d "$prefix" || exit 1
-+	  else
-+	    case $prefix in
-+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-+	      *) qprefix=$prefix;;
-+	    esac
-+	    prefixes="$prefixes '$qprefix'"
-+	  fi
-+	fi
-+	prefix=$prefix/
-+      done
-+
-+      if test -n "$prefixes"; then
-+	# Don't fail if two instances are running concurrently.
-+	(umask $mkdir_umask &&
-+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
-+	  test -d "$dstdir" || exit 1
-+	obsolete_mkdir_used=true
-+      fi
-+    fi
-+  fi
-+
-+  if test -n "$dir_arg"; then
-+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
-+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
-+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
-+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
-+  else
-+
-+    # Make a couple of temp file names in the proper directory.
-+    dsttmp=$dstdir/_inst.$$_
-+    rmtmp=$dstdir/_rm.$$_
-+
-+    # Trap to clean up those temp files at exit.
-+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-+
-+    # Copy the file name to the temp name.
-+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-+
-+    # and set any options; do chmod last to preserve setuid bits.
-+    #
-+    # If any of these fail, we abort the whole thing.  If we want to
-+    # ignore errors from any of these, just make sure not to ignore
-+    # errors from the above "$doit $cpprog $src $dsttmp" command.
-+    #
-+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
-+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
-+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
-+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-+
-+    # If -C, don't bother to copy if it wouldn't change the file.
-+    if $copy_on_change &&
-+       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
-+       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
-+
-+       eval "$initialize_posix_glob" &&
-+       $posix_glob set -f &&
-+       set X $old && old=:$2:$4:$5:$6 &&
-+       set X $new && new=:$2:$4:$5:$6 &&
-+       $posix_glob set +f &&
-+
-+       test "$old" = "$new" &&
-+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
-+    then
-+      rm -f "$dsttmp"
-+    else
-+      # Rename the file to the real destination.
-+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-+
-+      # The rename failed, perhaps because mv can't rename something else
-+      # to itself, or perhaps because mv is so ancient that it does not
-+      # support -f.
-+      {
-+	# Now remove or move aside any old file at destination location.
-+	# We try this two ways since rm can't unlink itself on some
-+	# systems and the destination file might be busy for other
-+	# reasons.  In this case, the final cleanup might fail but the new
-+	# file should still install successfully.
-+	{
-+	  test ! -f "$dst" ||
-+	  $doit $rmcmd -f "$dst" 2>/dev/null ||
-+	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-+	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-+	  } ||
-+	  { echo "$0: cannot unlink or rename $dst" >&2
-+	    (exit 1); exit 1
-+	  }
-+	} &&
-+
-+	# Now rename the file to the real destination.
-+	$doit $mvcmd "$dsttmp" "$dst"
-+      }
-+    fi || exit 1
-+
-+    trap '' 0
-+  fi
-+done
-+
-+# Local variables:
-+# eval: (add-hook 'write-file-hooks 'time-stamp)
-+# time-stamp-start: "scriptversion="
-+# time-stamp-format: "%:y-%02m-%02d.%02H"
-+# time-stamp-time-zone: "UTC"
-+# time-stamp-end: "; # UTC"
-+# End:
-diff --git a/libclamav/libmspack-0.4alpha/libmspack.pc.in b/libclamav/libmspack-0.4alpha/libmspack.pc.in
-new file mode 100644
-index 000000000000..44b09f350580
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/libmspack.pc.in
-@@ -0,0 +1,10 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: @PACKAGE@
-+Description: Compressors and decompressors for Microsoft formats
-+Version: @VERSION@
-+Libs: -L${libdir} -lmspack
-+Cflags: -I${includedir}
-diff --git a/libclamav/libmspack-0.4alpha/ltmain.sh b/libclamav/libmspack-0.4alpha/ltmain.sh
-new file mode 100644
-index 000000000000..c2852d856135
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/ltmain.sh
-@@ -0,0 +1,9661 @@
-+
-+# libtool (GNU libtool) 2.4.2
-+# Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
-+
-+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
-+# This is free software; see the source for copying conditions.  There is NO
-+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-+
-+# GNU Libtool 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.
-+#
-+# As a special exception to the GNU General Public License,
-+# if you distribute this file as part of a program or library that
-+# is built using GNU Libtool, you may include this file under the
-+# same distribution terms that you use for the rest of that program.
-+#
-+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-+# or obtained by writing to the Free Software Foundation, Inc.,
-+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-+
-+# Usage: $progname [OPTION]... [MODE-ARG]...
-+#
-+# Provide generalized library-building support services.
-+#
-+#       --config             show all configuration variables
-+#       --debug              enable verbose shell tracing
-+#   -n, --dry-run            display commands without modifying any files
-+#       --features           display basic configuration information and exit
-+#       --mode=MODE          use operation mode MODE
-+#       --preserve-dup-deps  don't remove duplicate dependency libraries
-+#       --quiet, --silent    don't print informational messages
-+#       --no-quiet, --no-silent
-+#                            print informational messages (default)
-+#       --no-warn            don't display warning messages
-+#       --tag=TAG            use configuration variables from tag TAG
-+#   -v, --verbose            print more informational messages than default
-+#       --no-verbose         don't print the extra informational messages
-+#       --version            print version information
-+#   -h, --help, --help-all   print short, long, or detailed help message
-+#
-+# MODE must be one of the following:
-+#
-+#         clean              remove files from the build directory
-+#         compile            compile a source file into a libtool object
-+#         execute            automatically set library path, then run a program
-+#         finish             complete the installation of libtool libraries
-+#         install            install libraries or executables
-+#         link               create a library or an executable
-+#         uninstall          remove libraries from an installed directory
-+#
-+# MODE-ARGS vary depending on the MODE.  When passed as first option,
-+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-+#
-+# When reporting a bug, please describe a test case to reproduce it and
-+# include the following information:
-+#
-+#         host-triplet:	$host
-+#         shell:		$SHELL
-+#         compiler:		$LTCC
-+#         compiler flags:		$LTCFLAGS
-+#         linker:		$LD (gnu? $with_gnu_ld)
-+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1
-+#         automake:	$automake_version
-+#         autoconf:	$autoconf_version
-+#
-+# Report bugs to <bug-libtool at gnu.org>.
-+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-+# General help using GNU software: <http://www.gnu.org/gethelp/>.
-+
-+PROGRAM=libtool
-+PACKAGE=libtool
-+VERSION="2.4.2 Debian-2.4.2-1ubuntu1"
-+TIMESTAMP=""
-+package_revision=1.3337
-+
-+# Be Bourne compatible
-+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-+  emulate sh
-+  NULLCMD=:
-+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-+  # is contrary to our usage.  Disable this feature.
-+  alias -g '${1+"$@"}'='"$@"'
-+  setopt NO_GLOB_SUBST
-+else
-+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-+fi
-+BIN_SH=xpg4; export BIN_SH # for Tru64
-+DUALCASE=1; export DUALCASE # for MKS sh
-+
-+# A function that is used when there is no print builtin or printf.
-+func_fallback_echo ()
-+{
-+  eval 'cat <<_LTECHO_EOF
-+$1
-+_LTECHO_EOF'
-+}
-+
-+# NLS nuisances: We save the old values to restore during execute mode.
-+lt_user_locale=
-+lt_safe_locale=
-+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-+do
-+  eval "if test \"\${$lt_var+set}\" = set; then
-+          save_$lt_var=\$$lt_var
-+          $lt_var=C
-+	  export $lt_var
-+	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
-+	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
-+	fi"
-+done
-+LC_ALL=C
-+LANGUAGE=C
-+export LANGUAGE LC_ALL
-+
-+$lt_unset CDPATH
-+
-+
-+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-+# is ksh but when the shell is invoked as "sh" and the current value of
-+# the _XPG environment variable is not equal to 1 (one), the special
-+# positional parameter $0, within a function call, is the name of the
-+# function.
-+progpath="$0"
-+
-+
-+
-+: ${CP="cp -f"}
-+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-+: ${MAKE="make"}
-+: ${MKDIR="mkdir"}
-+: ${MV="mv -f"}
-+: ${RM="rm -f"}
-+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-+: ${Xsed="$SED -e 1s/^X//"}
-+
-+# Global variables:
-+EXIT_SUCCESS=0
-+EXIT_FAILURE=1
-+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
-+EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
-+
-+exit_status=$EXIT_SUCCESS
-+
-+# Make sure IFS has a sensible default
-+lt_nl='
-+'
-+IFS=" 	$lt_nl"
-+
-+dirname="s,/[^/]*$,,"
-+basename="s,^.*/,,"
-+
-+# func_dirname file append nondir_replacement
-+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-+# otherwise set result to NONDIR_REPLACEMENT.
-+func_dirname ()
-+{
-+    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-+    if test "X$func_dirname_result" = "X${1}"; then
-+      func_dirname_result="${3}"
-+    else
-+      func_dirname_result="$func_dirname_result${2}"
-+    fi
-+} # func_dirname may be replaced by extended shell implementation
-+
-+
-+# func_basename file
-+func_basename ()
-+{
-+    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-+} # func_basename may be replaced by extended shell implementation
-+
-+
-+# func_dirname_and_basename file append nondir_replacement
-+# perform func_basename and func_dirname in a single function
-+# call:
-+#   dirname:  Compute the dirname of FILE.  If nonempty,
-+#             add APPEND to the result, otherwise set result
-+#             to NONDIR_REPLACEMENT.
-+#             value returned in "$func_dirname_result"
-+#   basename: Compute filename of FILE.
-+#             value retuned in "$func_basename_result"
-+# Implementation must be kept synchronized with func_dirname
-+# and func_basename. For efficiency, we do not delegate to
-+# those functions but instead duplicate the functionality here.
-+func_dirname_and_basename ()
-+{
-+    # Extract subdirectory from the argument.
-+    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-+    if test "X$func_dirname_result" = "X${1}"; then
-+      func_dirname_result="${3}"
-+    else
-+      func_dirname_result="$func_dirname_result${2}"
-+    fi
-+    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-+} # func_dirname_and_basename may be replaced by extended shell implementation
-+
-+
-+# func_stripname prefix suffix name
-+# strip PREFIX and SUFFIX off of NAME.
-+# PREFIX and SUFFIX must not contain globbing or regex special
-+# characters, hashes, percent signs, but SUFFIX may contain a leading
-+# dot (in which case that matches only a dot).
-+# func_strip_suffix prefix name
-+func_stripname ()
-+{
-+    case ${2} in
-+      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-+      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-+    esac
-+} # func_stripname may be replaced by extended shell implementation
-+
-+
-+# These SED scripts presuppose an absolute path with a trailing slash.
-+pathcar='s,^/\([^/]*\).*$,\1,'
-+pathcdr='s,^/[^/]*,,'
-+removedotparts=':dotsl
-+		s@/\./@/@g
-+		t dotsl
-+		s,/\.$,/,'
-+collapseslashes='s@/\{1,\}@/@g'
-+finalslash='s,/*$,/,'
-+
-+# func_normal_abspath PATH
-+# Remove doubled-up and trailing slashes, "." path components,
-+# and cancel out any ".." path components in PATH after making
-+# it an absolute path.
-+#             value returned in "$func_normal_abspath_result"
-+func_normal_abspath ()
-+{
-+  # Start from root dir and reassemble the path.
-+  func_normal_abspath_result=
-+  func_normal_abspath_tpath=$1
-+  func_normal_abspath_altnamespace=
-+  case $func_normal_abspath_tpath in
-+    "")
-+      # Empty path, that just means $cwd.
-+      func_stripname '' '/' "`pwd`"
-+      func_normal_abspath_result=$func_stripname_result
-+      return
-+    ;;
-+    # The next three entries are used to spot a run of precisely
-+    # two leading slashes without using negated character classes;
-+    # we take advantage of case's first-match behaviour.
-+    ///*)
-+      # Unusual form of absolute path, do nothing.
-+    ;;
-+    //*)
-+      # Not necessarily an ordinary path; POSIX reserves leading '//'
-+      # and for example Cygwin uses it to access remote file shares
-+      # over CIFS/SMB, so we conserve a leading double slash if found.
-+      func_normal_abspath_altnamespace=/
-+    ;;
-+    /*)
-+      # Absolute path, do nothing.
-+    ;;
-+    *)
-+      # Relative path, prepend $cwd.
-+      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
-+    ;;
-+  esac
-+  # Cancel out all the simple stuff to save iterations.  We also want
-+  # the path to end with a slash for ease of parsing, so make sure
-+  # there is one (and only one) here.
-+  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-+        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
-+  while :; do
-+    # Processed it all yet?
-+    if test "$func_normal_abspath_tpath" = / ; then
-+      # If we ascended to the root using ".." the result may be empty now.
-+      if test -z "$func_normal_abspath_result" ; then
-+        func_normal_abspath_result=/
-+      fi
-+      break
-+    fi
-+    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
-+        -e "$pathcar"`
-+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-+        -e "$pathcdr"`
-+    # Figure out what to do with it
-+    case $func_normal_abspath_tcomponent in
-+      "")
-+        # Trailing empty path component, ignore it.
-+      ;;
-+      ..)
-+        # Parent dir; strip last assembled component from result.
-+        func_dirname "$func_normal_abspath_result"
-+        func_normal_abspath_result=$func_dirname_result
-+      ;;
-+      *)
-+        # Actual path component, append it.
-+        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
-+      ;;
-+    esac
-+  done
-+  # Restore leading double-slash if one was found on entry.
-+  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-+}
-+
-+# func_relative_path SRCDIR DSTDIR
-+# generates a relative path from SRCDIR to DSTDIR, with a trailing
-+# slash if non-empty, suitable for immediately appending a filename
-+# without needing to append a separator.
-+#             value returned in "$func_relative_path_result"
-+func_relative_path ()
-+{
-+  func_relative_path_result=
-+  func_normal_abspath "$1"
-+  func_relative_path_tlibdir=$func_normal_abspath_result
-+  func_normal_abspath "$2"
-+  func_relative_path_tbindir=$func_normal_abspath_result
-+
-+  # Ascend the tree starting from libdir
-+  while :; do
-+    # check if we have found a prefix of bindir
-+    case $func_relative_path_tbindir in
-+      $func_relative_path_tlibdir)
-+        # found an exact match
-+        func_relative_path_tcancelled=
-+        break
-+        ;;
-+      $func_relative_path_tlibdir*)
-+        # found a matching prefix
-+        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
-+        func_relative_path_tcancelled=$func_stripname_result
-+        if test -z "$func_relative_path_result"; then
-+          func_relative_path_result=.
-+        fi
-+        break
-+        ;;
-+      *)
-+        func_dirname $func_relative_path_tlibdir
-+        func_relative_path_tlibdir=${func_dirname_result}
-+        if test "x$func_relative_path_tlibdir" = x ; then
-+          # Have to descend all the way to the root!
-+          func_relative_path_result=../$func_relative_path_result
-+          func_relative_path_tcancelled=$func_relative_path_tbindir
-+          break
-+        fi
-+        func_relative_path_result=../$func_relative_path_result
-+        ;;
-+    esac
-+  done
-+
-+  # Now calculate path; take care to avoid doubling-up slashes.
-+  func_stripname '' '/' "$func_relative_path_result"
-+  func_relative_path_result=$func_stripname_result
-+  func_stripname '/' '/' "$func_relative_path_tcancelled"
-+  if test "x$func_stripname_result" != x ; then
-+    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
-+  fi
-+
-+  # Normalisation. If bindir is libdir, return empty string,
-+  # else relative path ending with a slash; either way, target
-+  # file name can be directly appended.
-+  if test ! -z "$func_relative_path_result"; then
-+    func_stripname './' '' "$func_relative_path_result/"
-+    func_relative_path_result=$func_stripname_result
-+  fi
-+}
-+
-+# The name of this program:
-+func_dirname_and_basename "$progpath"
-+progname=$func_basename_result
-+
-+# Make sure we have an absolute path for reexecution:
-+case $progpath in
-+  [\\/]*|[A-Za-z]:\\*) ;;
-+  *[\\/]*)
-+     progdir=$func_dirname_result
-+     progdir=`cd "$progdir" && pwd`
-+     progpath="$progdir/$progname"
-+     ;;
-+  *)
-+     save_IFS="$IFS"
-+     IFS=${PATH_SEPARATOR-:}
-+     for progdir in $PATH; do
-+       IFS="$save_IFS"
-+       test -x "$progdir/$progname" && break
-+     done
-+     IFS="$save_IFS"
-+     test -n "$progdir" || progdir=`pwd`
-+     progpath="$progdir/$progname"
-+     ;;
-+esac
-+
-+# Sed substitution that helps us do robust quoting.  It backslashifies
-+# metacharacters that are still active within double-quoted strings.
-+Xsed="${SED}"' -e 1s/^X//'
-+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-+
-+# Same as above, but do not quote variable references.
-+double_quote_subst='s/\(["`\\]\)/\\\1/g'
-+
-+# Sed substitution that turns a string into a regex matching for the
-+# string literally.
-+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-+
-+# Sed substitution that converts a w32 file name or path
-+# which contains forward slashes, into one that contains
-+# (escaped) backslashes.  A very naive implementation.
-+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-+
-+# Re-`\' parameter expansions in output of double_quote_subst that were
-+# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
-+# in input to double_quote_subst, that '$' was protected from expansion.
-+# Since each input `\' is now two `\'s, look for any number of runs of
-+# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
-+bs='\\'
-+bs2='\\\\'
-+bs4='\\\\\\\\'
-+dollar='\$'
-+sed_double_backslash="\
-+  s/$bs4/&\\
-+/g
-+  s/^$bs2$dollar/$bs&/
-+  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
-+  s/\n//g"
-+
-+# Standard options:
-+opt_dry_run=false
-+opt_help=false
-+opt_quiet=false
-+opt_verbose=false
-+opt_warning=:
-+
-+# func_echo arg...
-+# Echo program name prefixed message, along with the current mode
-+# name if it has been set yet.
-+func_echo ()
-+{
-+    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-+}
-+
-+# func_verbose arg...
-+# Echo program name prefixed message in verbose mode only.
-+func_verbose ()
-+{
-+    $opt_verbose && func_echo ${1+"$@"}
-+
-+    # A bug in bash halts the script if the last line of a function
-+    # fails when set -e is in force, so we need another command to
-+    # work around that:
-+    :
-+}
-+
-+# func_echo_all arg...
-+# Invoke $ECHO with all args, space-separated.
-+func_echo_all ()
-+{
-+    $ECHO "$*"
-+}
-+
-+# func_error arg...
-+# Echo program name prefixed message to standard error.
-+func_error ()
-+{
-+    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-+}
-+
-+# func_warning arg...
-+# Echo program name prefixed warning message to standard error.
-+func_warning ()
-+{
-+    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-+
-+    # bash bug again:
-+    :
-+}
-+
-+# func_fatal_error arg...
-+# Echo program name prefixed message to standard error, and exit.
-+func_fatal_error ()
-+{
-+    func_error ${1+"$@"}
-+    exit $EXIT_FAILURE
-+}
-+
-+# func_fatal_help arg...
-+# Echo program name prefixed message to standard error, followed by
-+# a help hint, and exit.
-+func_fatal_help ()
-+{
-+    func_error ${1+"$@"}
-+    func_fatal_error "$help"
-+}
-+help="Try \`$progname --help' for more information."  ## default
-+
-+
-+# func_grep expression filename
-+# Check whether EXPRESSION matches any line of FILENAME, without output.
-+func_grep ()
-+{
-+    $GREP "$1" "$2" >/dev/null 2>&1
-+}
-+
-+
-+# func_mkdir_p directory-path
-+# Make sure the entire path to DIRECTORY-PATH is available.
-+func_mkdir_p ()
-+{
-+    my_directory_path="$1"
-+    my_dir_list=
-+
-+    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-+
-+      # Protect directory names starting with `-'
-+      case $my_directory_path in
-+        -*) my_directory_path="./$my_directory_path" ;;
-+      esac
-+
-+      # While some portion of DIR does not yet exist...
-+      while test ! -d "$my_directory_path"; do
-+        # ...make a list in topmost first order.  Use a colon delimited
-+	# list incase some portion of path contains whitespace.
-+        my_dir_list="$my_directory_path:$my_dir_list"
-+
-+        # If the last portion added has no slash in it, the list is done
-+        case $my_directory_path in */*) ;; *) break ;; esac
-+
-+        # ...otherwise throw away the child directory and loop
-+        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
-+      done
-+      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-+
-+      save_mkdir_p_IFS="$IFS"; IFS=':'
-+      for my_dir in $my_dir_list; do
-+	IFS="$save_mkdir_p_IFS"
-+        # mkdir can fail with a `File exist' error if two processes
-+        # try to create one of the directories concurrently.  Don't
-+        # stop in that case!
-+        $MKDIR "$my_dir" 2>/dev/null || :
-+      done
-+      IFS="$save_mkdir_p_IFS"
-+
-+      # Bail out if we (or some other process) failed to create a directory.
-+      test -d "$my_directory_path" || \
-+        func_fatal_error "Failed to create \`$1'"
-+    fi
-+}
-+
-+
-+# func_mktempdir [string]
-+# Make a temporary directory that won't clash with other running
-+# libtool processes, and avoids race conditions if possible.  If
-+# given, STRING is the basename for that directory.
-+func_mktempdir ()
-+{
-+    my_template="${TMPDIR-/tmp}/${1-$progname}"
-+
-+    if test "$opt_dry_run" = ":"; then
-+      # Return a directory name, but don't create it in dry-run mode
-+      my_tmpdir="${my_template}-$$"
-+    else
-+
-+      # If mktemp works, use that first and foremost
-+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-+
-+      if test ! -d "$my_tmpdir"; then
-+        # Failing that, at least try and use $RANDOM to avoid a race
-+        my_tmpdir="${my_template}-${RANDOM-0}$$"
-+
-+        save_mktempdir_umask=`umask`
-+        umask 0077
-+        $MKDIR "$my_tmpdir"
-+        umask $save_mktempdir_umask
-+      fi
-+
-+      # If we're not in dry-run mode, bomb out on failure
-+      test -d "$my_tmpdir" || \
-+        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
-+    fi
-+
-+    $ECHO "$my_tmpdir"
-+}
-+
-+
-+# func_quote_for_eval arg
-+# Aesthetically quote ARG to be evaled later.
-+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-+# is double-quoted, suitable for a subsequent eval, whereas
-+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-+# which are still active within double quotes backslashified.
-+func_quote_for_eval ()
-+{
-+    case $1 in
-+      *[\\\`\"\$]*)
-+	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
-+      *)
-+        func_quote_for_eval_unquoted_result="$1" ;;
-+    esac
-+
-+    case $func_quote_for_eval_unquoted_result in
-+      # Double-quote args containing shell metacharacters to delay
-+      # word splitting, command substitution and and variable
-+      # expansion for a subsequent eval.
-+      # Many Bourne shells cannot handle close brackets correctly
-+      # in scan sets, so we specify it separately.
-+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-+        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
-+        ;;
-+      *)
-+        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
-+    esac
-+}
-+
-+
-+# func_quote_for_expand arg
-+# Aesthetically quote ARG to be evaled later; same as above,
-+# but do not quote variable references.
-+func_quote_for_expand ()
-+{
-+    case $1 in
-+      *[\\\`\"]*)
-+	my_arg=`$ECHO "$1" | $SED \
-+	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
-+      *)
-+        my_arg="$1" ;;
-+    esac
-+
-+    case $my_arg in
-+      # Double-quote args containing shell metacharacters to delay
-+      # word splitting and command substitution for a subsequent eval.
-+      # Many Bourne shells cannot handle close brackets correctly
-+      # in scan sets, so we specify it separately.
-+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-+        my_arg="\"$my_arg\""
-+        ;;
-+    esac
-+
-+    func_quote_for_expand_result="$my_arg"
-+}
-+
-+
-+# func_show_eval cmd [fail_exp]
-+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-+# is given, then evaluate it.
-+func_show_eval ()
-+{
-+    my_cmd="$1"
-+    my_fail_exp="${2-:}"
-+
-+    ${opt_silent-false} || {
-+      func_quote_for_expand "$my_cmd"
-+      eval "func_echo $func_quote_for_expand_result"
-+    }
-+
-+    if ${opt_dry_run-false}; then :; else
-+      eval "$my_cmd"
-+      my_status=$?
-+      if test "$my_status" -eq 0; then :; else
-+	eval "(exit $my_status); $my_fail_exp"
-+      fi
-+    fi
-+}
-+
-+
-+# func_show_eval_locale cmd [fail_exp]
-+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-+# is given, then evaluate it.  Use the saved locale for evaluation.
-+func_show_eval_locale ()
-+{
-+    my_cmd="$1"
-+    my_fail_exp="${2-:}"
-+
-+    ${opt_silent-false} || {
-+      func_quote_for_expand "$my_cmd"
-+      eval "func_echo $func_quote_for_expand_result"
-+    }
-+
-+    if ${opt_dry_run-false}; then :; else
-+      eval "$lt_user_locale
-+	    $my_cmd"
-+      my_status=$?
-+      eval "$lt_safe_locale"
-+      if test "$my_status" -eq 0; then :; else
-+	eval "(exit $my_status); $my_fail_exp"
-+      fi
-+    fi
-+}
-+
-+# func_tr_sh
-+# Turn $1 into a string suitable for a shell variable name.
-+# Result is stored in $func_tr_sh_result.  All characters
-+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-+# if $1 begins with a digit, a '_' is prepended as well.
-+func_tr_sh ()
-+{
-+  case $1 in
-+  [0-9]* | *[!a-zA-Z0-9_]*)
-+    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
-+    ;;
-+  * )
-+    func_tr_sh_result=$1
-+    ;;
-+  esac
-+}
-+
-+
-+# func_version
-+# Echo version message to standard output and exit.
-+func_version ()
-+{
-+    $opt_debug
-+
-+    $SED -n '/(C)/!b go
-+	:more
-+	/\./!{
-+	  N
-+	  s/\n# / /
-+	  b more
-+	}
-+	:go
-+	/^# '$PROGRAM' (GNU /,/# warranty; / {
-+        s/^# //
-+	s/^# *$//
-+        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
-+        p
-+     }' < "$progpath"
-+     exit $?
-+}
-+
-+# func_usage
-+# Echo short help message to standard output and exit.
-+func_usage ()
-+{
-+    $opt_debug
-+
-+    $SED -n '/^# Usage:/,/^#  *.*--help/ {
-+        s/^# //
-+	s/^# *$//
-+	s/\$progname/'$progname'/
-+	p
-+    }' < "$progpath"
-+    echo
-+    $ECHO "run \`$progname --help | more' for full usage"
-+    exit $?
-+}
-+
-+# func_help [NOEXIT]
-+# Echo long help message to standard output and exit,
-+# unless 'noexit' is passed as argument.
-+func_help ()
-+{
-+    $opt_debug
-+
-+    $SED -n '/^# Usage:/,/# Report bugs to/ {
-+	:print
-+        s/^# //
-+	s/^# *$//
-+	s*\$progname*'$progname'*
-+	s*\$host*'"$host"'*
-+	s*\$SHELL*'"$SHELL"'*
-+	s*\$LTCC*'"$LTCC"'*
-+	s*\$LTCFLAGS*'"$LTCFLAGS"'*
-+	s*\$LD*'"$LD"'*
-+	s/\$with_gnu_ld/'"$with_gnu_ld"'/
-+	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
-+	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
-+	p
-+	d
-+     }
-+     /^# .* home page:/b print
-+     /^# General help using/b print
-+     ' < "$progpath"
-+    ret=$?
-+    if test -z "$1"; then
-+      exit $ret
-+    fi
-+}
-+
-+# func_missing_arg argname
-+# Echo program name prefixed message to standard error and set global
-+# exit_cmd.
-+func_missing_arg ()
-+{
-+    $opt_debug
-+
-+    func_error "missing argument for $1."
-+    exit_cmd=exit
-+}
-+
-+
-+# func_split_short_opt shortopt
-+# Set func_split_short_opt_name and func_split_short_opt_arg shell
-+# variables after splitting SHORTOPT after the 2nd character.
-+func_split_short_opt ()
-+{
-+    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
-+    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-+
-+    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
-+    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-+} # func_split_short_opt may be replaced by extended shell implementation
-+
-+
-+# func_split_long_opt longopt
-+# Set func_split_long_opt_name and func_split_long_opt_arg shell
-+# variables after splitting LONGOPT at the `=' sign.
-+func_split_long_opt ()
-+{
-+    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
-+    my_sed_long_arg='1s/^--[^=]*=//'
-+
-+    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
-+    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-+} # func_split_long_opt may be replaced by extended shell implementation
-+
-+exit_cmd=:
-+
-+
-+
-+
-+
-+magic="%%%MAGIC variable%%%"
-+magic_exe="%%%MAGIC EXE variable%%%"
-+
-+# Global variables.
-+nonopt=
-+preserve_args=
-+lo2o="s/\\.lo\$/.${objext}/"
-+o2lo="s/\\.${objext}\$/.lo/"
-+extracted_archives=
-+extracted_serial=0
-+
-+# If this variable is set in any of the actions, the command in it
-+# will be execed at the end.  This prevents here-documents from being
-+# left over by shells.
-+exec_cmd=
-+
-+# func_append var value
-+# Append VALUE to the end of shell variable VAR.
-+func_append ()
-+{
-+    eval "${1}=\$${1}\${2}"
-+} # func_append may be replaced by extended shell implementation
-+
-+# func_append_quoted var value
-+# Quote VALUE and append to the end of shell variable VAR, separated
-+# by a space.
-+func_append_quoted ()
-+{
-+    func_quote_for_eval "${2}"
-+    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-+} # func_append_quoted may be replaced by extended shell implementation
-+
-+
-+# func_arith arithmetic-term...
-+func_arith ()
-+{
-+    func_arith_result=`expr "${@}"`
-+} # func_arith may be replaced by extended shell implementation
-+
-+
-+# func_len string
-+# STRING may not start with a hyphen.
-+func_len ()
-+{
-+    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-+} # func_len may be replaced by extended shell implementation
-+
-+
-+# func_lo2o object
-+func_lo2o ()
-+{
-+    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-+} # func_lo2o may be replaced by extended shell implementation
-+
-+
-+# func_xform libobj-or-source
-+func_xform ()
-+{
-+    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-+} # func_xform may be replaced by extended shell implementation
-+
-+
-+# func_fatal_configuration arg...
-+# Echo program name prefixed message to standard error, followed by
-+# a configuration failure hint, and exit.
-+func_fatal_configuration ()
-+{
-+    func_error ${1+"$@"}
-+    func_error "See the $PACKAGE documentation for more information."
-+    func_fatal_error "Fatal configuration error."
-+}
-+
-+
-+# func_config
-+# Display the configuration for all the tags in this script.
-+func_config ()
-+{
-+    re_begincf='^# ### BEGIN LIBTOOL'
-+    re_endcf='^# ### END LIBTOOL'
-+
-+    # Default configuration.
-+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-+
-+    # Now print the configurations for the tags.
-+    for tagname in $taglist; do
-+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
-+    done
-+
-+    exit $?
-+}
-+
-+# func_features
-+# Display the features supported by this script.
-+func_features ()
-+{
-+    echo "host: $host"
-+    if test "$build_libtool_libs" = yes; then
-+      echo "enable shared libraries"
-+    else
-+      echo "disable shared libraries"
-+    fi
-+    if test "$build_old_libs" = yes; then
-+      echo "enable static libraries"
-+    else
-+      echo "disable static libraries"
-+    fi
-+
-+    exit $?
-+}
-+
-+# func_enable_tag tagname
-+# Verify that TAGNAME is valid, and either flag an error and exit, or
-+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
-+# variable here.
-+func_enable_tag ()
-+{
-+  # Global variable:
-+  tagname="$1"
-+
-+  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
-+  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
-+  sed_extractcf="/$re_begincf/,/$re_endcf/p"
-+
-+  # Validate tagname.
-+  case $tagname in
-+    *[!-_A-Za-z0-9,/]*)
-+      func_fatal_error "invalid tag name: $tagname"
-+      ;;
-+  esac
-+
-+  # Don't test for the "default" C tag, as we know it's
-+  # there but not specially marked.
-+  case $tagname in
-+    CC) ;;
-+    *)
-+      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
-+	taglist="$taglist $tagname"
-+
-+	# Evaluate the configuration.  Be careful to quote the path
-+	# and the sed script, to avoid splitting on whitespace, but
-+	# also don't use non-portable quotes within backquotes within
-+	# quotes we have to do it in 2 steps:
-+	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
-+	eval "$extractedcf"
-+      else
-+	func_error "ignoring unknown tag $tagname"
-+      fi
-+      ;;
-+  esac
-+}
-+
-+# func_check_version_match
-+# Ensure that we are using m4 macros, and libtool script from the same
-+# release of libtool.
-+func_check_version_match ()
-+{
-+  if test "$package_revision" != "$macro_revision"; then
-+    if test "$VERSION" != "$macro_version"; then
-+      if test -z "$macro_version"; then
-+        cat >&2 <<_LT_EOF
-+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-+$progname: definition of this LT_INIT comes from an older release.
-+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-+$progname: and run autoconf again.
-+_LT_EOF
-+      else
-+        cat >&2 <<_LT_EOF
-+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-+$progname: and run autoconf again.
-+_LT_EOF
-+      fi
-+    else
-+      cat >&2 <<_LT_EOF
-+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-+$progname: of $PACKAGE $VERSION and run autoconf again.
-+_LT_EOF
-+    fi
-+
-+    exit $EXIT_MISMATCH
-+  fi
-+}
-+
-+
-+# Shorthand for --mode=foo, only valid as the first argument
-+case $1 in
-+clean|clea|cle|cl)
-+  shift; set dummy --mode clean ${1+"$@"}; shift
-+  ;;
-+compile|compil|compi|comp|com|co|c)
-+  shift; set dummy --mode compile ${1+"$@"}; shift
-+  ;;
-+execute|execut|execu|exec|exe|ex|e)
-+  shift; set dummy --mode execute ${1+"$@"}; shift
-+  ;;
-+finish|finis|fini|fin|fi|f)
-+  shift; set dummy --mode finish ${1+"$@"}; shift
-+  ;;
-+install|instal|insta|inst|ins|in|i)
-+  shift; set dummy --mode install ${1+"$@"}; shift
-+  ;;
-+link|lin|li|l)
-+  shift; set dummy --mode link ${1+"$@"}; shift
-+  ;;
-+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-+  shift; set dummy --mode uninstall ${1+"$@"}; shift
-+  ;;
-+esac
-+
-+
-+
-+# Option defaults:
-+opt_debug=:
-+opt_dry_run=false
-+opt_config=false
-+opt_preserve_dup_deps=false
-+opt_features=false
-+opt_finish=false
-+opt_help=false
-+opt_help_all=false
-+opt_silent=:
-+opt_warning=:
-+opt_verbose=:
-+opt_silent=false
-+opt_verbose=false
-+
-+
-+# Parse options once, thoroughly.  This comes as soon as possible in the
-+# script to make things like `--version' happen as quickly as we can.
-+{
-+  # this just eases exit handling
-+  while test $# -gt 0; do
-+    opt="$1"
-+    shift
-+    case $opt in
-+      --debug|-x)	opt_debug='set -x'
-+			func_echo "enabling shell trace mode"
-+			$opt_debug
-+			;;
-+      --dry-run|--dryrun|-n)
-+			opt_dry_run=:
-+			;;
-+      --config)
-+			opt_config=:
-+func_config
-+			;;
-+      --dlopen|-dlopen)
-+			optarg="$1"
-+			opt_dlopen="${opt_dlopen+$opt_dlopen
-+}$optarg"
-+			shift
-+			;;
-+      --preserve-dup-deps)
-+			opt_preserve_dup_deps=:
-+			;;
-+      --features)
-+			opt_features=:
-+func_features
-+			;;
-+      --finish)
-+			opt_finish=:
-+set dummy --mode finish ${1+"$@"}; shift
-+			;;
-+      --help)
-+			opt_help=:
-+			;;
-+      --help-all)
-+			opt_help_all=:
-+opt_help=': help-all'
-+			;;
-+      --mode)
-+			test $# = 0 && func_missing_arg $opt && break
-+			optarg="$1"
-+			opt_mode="$optarg"
-+case $optarg in
-+  # Valid mode arguments:
-+  clean|compile|execute|finish|install|link|relink|uninstall) ;;
-+
-+  # Catch anything else as an error
-+  *) func_error "invalid argument for $opt"
-+     exit_cmd=exit
-+     break
-+     ;;
-+esac
-+			shift
-+			;;
-+      --no-silent|--no-quiet)
-+			opt_silent=false
-+func_append preserve_args " $opt"
-+			;;
-+      --no-warning|--no-warn)
-+			opt_warning=false
-+func_append preserve_args " $opt"
-+			;;
-+      --no-verbose)
-+			opt_verbose=false
-+func_append preserve_args " $opt"
-+			;;
-+      --silent|--quiet)
-+			opt_silent=:
-+func_append preserve_args " $opt"
-+        opt_verbose=false
-+			;;
-+      --verbose|-v)
-+			opt_verbose=:
-+func_append preserve_args " $opt"
-+opt_silent=false
-+			;;
-+      --tag)
-+			test $# = 0 && func_missing_arg $opt && break
-+			optarg="$1"
-+			opt_tag="$optarg"
-+func_append preserve_args " $opt $optarg"
-+func_enable_tag "$optarg"
-+			shift
-+			;;
-+
-+      -\?|-h)		func_usage				;;
-+      --help)		func_help				;;
-+      --version)	func_version				;;
-+
-+      # Separate optargs to long options:
-+      --*=*)
-+			func_split_long_opt "$opt"
-+			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
-+			shift
-+			;;
-+
-+      # Separate non-argument short options:
-+      -\?*|-h*|-n*|-v*)
-+			func_split_short_opt "$opt"
-+			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
-+			shift
-+			;;
-+
-+      --)		break					;;
-+      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
-+      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
-+    esac
-+  done
-+
-+  # Validate options:
-+
-+  # save first non-option argument
-+  if test "$#" -gt 0; then
-+    nonopt="$opt"
-+    shift
-+  fi
-+
-+  # preserve --debug
-+  test "$opt_debug" = : || func_append preserve_args " --debug"
-+
-+  case $host in
-+    *cygwin* | *mingw* | *pw32* | *cegcc*)
-+      # don't eliminate duplications in $postdeps and $predeps
-+      opt_duplicate_compiler_generated_deps=:
-+      ;;
-+    *)
-+      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
-+      ;;
-+  esac
-+
-+  $opt_help || {
-+    # Sanity checks first:
-+    func_check_version_match
-+
-+    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-+      func_fatal_configuration "not configured to build any kind of library"
-+    fi
-+
-+    # Darwin sucks
-+    eval std_shrext=\"$shrext_cmds\"
-+
-+    # Only execute mode is allowed to have -dlopen flags.
-+    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
-+      func_error "unrecognized option \`-dlopen'"
-+      $ECHO "$help" 1>&2
-+      exit $EXIT_FAILURE
-+    fi
-+
-+    # Change the help message to a mode-specific one.
-+    generic_help="$help"
-+    help="Try \`$progname --help --mode=$opt_mode' for more information."
-+  }
-+
-+
-+  # Bail if the options were screwed
-+  $exit_cmd $EXIT_FAILURE
-+}
-+
-+
-+
-+
-+## ----------- ##
-+##    Main.    ##
-+## ----------- ##
-+
-+# func_lalib_p file
-+# True iff FILE is a libtool `.la' library or `.lo' object file.
-+# This function is only a basic sanity check; it will hardly flush out
-+# determined imposters.
-+func_lalib_p ()
-+{
-+    test -f "$1" &&
-+      $SED -e 4q "$1" 2>/dev/null \
-+        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-+}
-+
-+# func_lalib_unsafe_p file
-+# True iff FILE is a libtool `.la' library or `.lo' object file.
-+# This function implements the same check as func_lalib_p without
-+# resorting to external programs.  To this end, it redirects stdin and
-+# closes it afterwards, without saving the original file descriptor.
-+# As a safety measure, use it only where a negative result would be
-+# fatal anyway.  Works if `file' does not exist.
-+func_lalib_unsafe_p ()
-+{
-+    lalib_p=no
-+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
-+	for lalib_p_l in 1 2 3 4
-+	do
-+	    read lalib_p_line
-+	    case "$lalib_p_line" in
-+		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
-+	    esac
-+	done
-+	exec 0<&5 5<&-
-+    fi
-+    test "$lalib_p" = yes
-+}
-+
-+# func_ltwrapper_script_p file
-+# True iff FILE is a libtool wrapper script
-+# This function is only a basic sanity check; it will hardly flush out
-+# determined imposters.
-+func_ltwrapper_script_p ()
-+{
-+    func_lalib_p "$1"
-+}
-+
-+# func_ltwrapper_executable_p file
-+# True iff FILE is a libtool wrapper executable
-+# This function is only a basic sanity check; it will hardly flush out
-+# determined imposters.
-+func_ltwrapper_executable_p ()
-+{
-+    func_ltwrapper_exec_suffix=
-+    case $1 in
-+    *.exe) ;;
-+    *) func_ltwrapper_exec_suffix=.exe ;;
-+    esac
-+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-+}
-+
-+# func_ltwrapper_scriptname file
-+# Assumes file is an ltwrapper_executable
-+# uses $file to determine the appropriate filename for a
-+# temporary ltwrapper_script.
-+func_ltwrapper_scriptname ()
-+{
-+    func_dirname_and_basename "$1" "" "."
-+    func_stripname '' '.exe' "$func_basename_result"
-+    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-+}
-+
-+# func_ltwrapper_p file
-+# True iff FILE is a libtool wrapper script or wrapper executable
-+# This function is only a basic sanity check; it will hardly flush out
-+# determined imposters.
-+func_ltwrapper_p ()
-+{
-+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-+}
-+
-+
-+# func_execute_cmds commands fail_cmd
-+# Execute tilde-delimited COMMANDS.
-+# If FAIL_CMD is given, eval that upon failure.
-+# FAIL_CMD may read-access the current command in variable CMD!
-+func_execute_cmds ()
-+{
-+    $opt_debug
-+    save_ifs=$IFS; IFS='~'
-+    for cmd in $1; do
-+      IFS=$save_ifs
-+      eval cmd=\"$cmd\"
-+      func_show_eval "$cmd" "${2-:}"
-+    done
-+    IFS=$save_ifs
-+}
-+
-+
-+# func_source file
-+# Source FILE, adding directory component if necessary.
-+# Note that it is not necessary on cygwin/mingw to append a dot to
-+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
-+# `FILE.' does not work on cygwin managed mounts.
-+func_source ()
-+{
-+    $opt_debug
-+    case $1 in
-+    */* | *\\*)	. "$1" ;;
-+    *)		. "./$1" ;;
-+    esac
-+}
-+
-+
-+# func_resolve_sysroot PATH
-+# Replace a leading = in PATH with a sysroot.  Store the result into
-+# func_resolve_sysroot_result
-+func_resolve_sysroot ()
-+{
-+  func_resolve_sysroot_result=$1
-+  case $func_resolve_sysroot_result in
-+  =*)
-+    func_stripname '=' '' "$func_resolve_sysroot_result"
-+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
-+    ;;
-+  esac
-+}
-+
-+# func_replace_sysroot PATH
-+# If PATH begins with the sysroot, replace it with = and
-+# store the result into func_replace_sysroot_result.
-+func_replace_sysroot ()
-+{
-+  case "$lt_sysroot:$1" in
-+  ?*:"$lt_sysroot"*)
-+    func_stripname "$lt_sysroot" '' "$1"
-+    func_replace_sysroot_result="=$func_stripname_result"
-+    ;;
-+  *)
-+    # Including no sysroot.
-+    func_replace_sysroot_result=$1
-+    ;;
-+  esac
-+}
-+
-+# func_infer_tag arg
-+# Infer tagged configuration to use if any are available and
-+# if one wasn't chosen via the "--tag" command line option.
-+# Only attempt this if the compiler in the base compile
-+# command doesn't match the default compiler.
-+# arg is usually of the form 'gcc ...'
-+func_infer_tag ()
-+{
-+    $opt_debug
-+    if test -n "$available_tags" && test -z "$tagname"; then
-+      CC_quoted=
-+      for arg in $CC; do
-+	func_append_quoted CC_quoted "$arg"
-+      done
-+      CC_expanded=`func_echo_all $CC`
-+      CC_quoted_expanded=`func_echo_all $CC_quoted`
-+      case $@ in
-+      # Blanks in the command may have been stripped by the calling shell,
-+      # but not from the CC environment variable when configure was run.
-+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
-+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
-+      # Blanks at the start of $base_compile will cause this to fail
-+      # if we don't check for them as well.
-+      *)
-+	for z in $available_tags; do
-+	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-+	    # Evaluate the configuration.
-+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-+	    CC_quoted=
-+	    for arg in $CC; do
-+	      # Double-quote args containing other shell metacharacters.
-+	      func_append_quoted CC_quoted "$arg"
-+	    done
-+	    CC_expanded=`func_echo_all $CC`
-+	    CC_quoted_expanded=`func_echo_all $CC_quoted`
-+	    case "$@ " in
-+	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
-+	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
-+	      # The compiler in the base compile command matches
-+	      # the one in the tagged configuration.
-+	      # Assume this is the tagged configuration we want.
-+	      tagname=$z
-+	      break
-+	      ;;
-+	    esac
-+	  fi
-+	done
-+	# If $tagname still isn't set, then no tagged configuration
-+	# was found and let the user know that the "--tag" command
-+	# line option must be used.
-+	if test -z "$tagname"; then
-+	  func_echo "unable to infer tagged configuration"
-+	  func_fatal_error "specify a tag with \`--tag'"
-+#	else
-+#	  func_verbose "using $tagname tagged configuration"
-+	fi
-+	;;
-+      esac
-+    fi
-+}
-+
-+
-+
-+# func_write_libtool_object output_name pic_name nonpic_name
-+# Create a libtool object file (analogous to a ".la" file),
-+# but don't create it if we're doing a dry run.
-+func_write_libtool_object ()
-+{
-+    write_libobj=${1}
-+    if test "$build_libtool_libs" = yes; then
-+      write_lobj=\'${2}\'
-+    else
-+      write_lobj=none
-+    fi
-+
-+    if test "$build_old_libs" = yes; then
-+      write_oldobj=\'${3}\'
-+    else
-+      write_oldobj=none
-+    fi
-+
-+    $opt_dry_run || {
-+      cat >${write_libobj}T <<EOF
-+# $write_libobj - a libtool object file
-+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-+#
-+# Please DO NOT delete this file!
-+# It is necessary for linking the library.
-+
-+# Name of the PIC object.
-+pic_object=$write_lobj
-+
-+# Name of the non-PIC object
-+non_pic_object=$write_oldobj
-+
-+EOF
-+      $MV "${write_libobj}T" "${write_libobj}"
-+    }
-+}
-+
-+
-+##################################################
-+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-+##################################################
-+
-+# func_convert_core_file_wine_to_w32 ARG
-+# Helper function used by file name conversion functions when $build is *nix,
-+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-+# correctly configured wine environment available, with the winepath program
-+# in $build's $PATH.
-+#
-+# ARG is the $build file name to be converted to w32 format.
-+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-+# be empty on error (or when ARG is empty)
-+func_convert_core_file_wine_to_w32 ()
-+{
-+  $opt_debug
-+  func_convert_core_file_wine_to_w32_result="$1"
-+  if test -n "$1"; then
-+    # Unfortunately, winepath does not exit with a non-zero error code, so we
-+    # are forced to check the contents of stdout. On the other hand, if the
-+    # command is not found, the shell will set an exit code of 127 and print
-+    # *an error message* to stdout. So we must check for both error code of
-+    # zero AND non-empty stdout, which explains the odd construction:
-+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
-+    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
-+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
-+        $SED -e "$lt_sed_naive_backslashify"`
-+    else
-+      func_convert_core_file_wine_to_w32_result=
-+    fi
-+  fi
-+}
-+# end: func_convert_core_file_wine_to_w32
-+
-+
-+# func_convert_core_path_wine_to_w32 ARG
-+# Helper function used by path conversion functions when $build is *nix, and
-+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-+# configured wine environment available, with the winepath program in $build's
-+# $PATH. Assumes ARG has no leading or trailing path separator characters.
-+#
-+# ARG is path to be converted from $build format to win32.
-+# Result is available in $func_convert_core_path_wine_to_w32_result.
-+# Unconvertible file (directory) names in ARG are skipped; if no directory names
-+# are convertible, then the result may be empty.
-+func_convert_core_path_wine_to_w32 ()
-+{
-+  $opt_debug
-+  # unfortunately, winepath doesn't convert paths, only file names
-+  func_convert_core_path_wine_to_w32_result=""
-+  if test -n "$1"; then
-+    oldIFS=$IFS
-+    IFS=:
-+    for func_convert_core_path_wine_to_w32_f in $1; do
-+      IFS=$oldIFS
-+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
-+      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
-+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
-+          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
-+        else
-+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
-+        fi
-+      fi
-+    done
-+    IFS=$oldIFS
-+  fi
-+}
-+# end: func_convert_core_path_wine_to_w32
-+
-+
-+# func_cygpath ARGS...
-+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-+# (2), returns the Cygwin file name or path in func_cygpath_result (input
-+# file name or path is assumed to be in w32 format, as previously converted
-+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-+# or path in func_cygpath_result (input file name or path is assumed to be in
-+# Cygwin format). Returns an empty string on error.
-+#
-+# ARGS are passed to cygpath, with the last one being the file name or path to
-+# be converted.
-+#
-+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-+# environment variable; do not put it in $PATH.
-+func_cygpath ()
-+{
-+  $opt_debug
-+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
-+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
-+    if test "$?" -ne 0; then
-+      # on failure, ensure result is empty
-+      func_cygpath_result=
-+    fi
-+  else
-+    func_cygpath_result=
-+    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
-+  fi
-+}
-+#end: func_cygpath
-+
-+
-+# func_convert_core_msys_to_w32 ARG
-+# Convert file name or path ARG from MSYS format to w32 format.  Return
-+# result in func_convert_core_msys_to_w32_result.
-+func_convert_core_msys_to_w32 ()
-+{
-+  $opt_debug
-+  # awkward: cmd appends spaces to result
-+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
-+    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-+}
-+#end: func_convert_core_msys_to_w32
-+
-+
-+# func_convert_file_check ARG1 ARG2
-+# Verify that ARG1 (a file name in $build format) was converted to $host
-+# format in ARG2. Otherwise, emit an error message, but continue (resetting
-+# func_to_host_file_result to ARG1).
-+func_convert_file_check ()
-+{
-+  $opt_debug
-+  if test -z "$2" && test -n "$1" ; then
-+    func_error "Could not determine host file name corresponding to"
-+    func_error "  \`$1'"
-+    func_error "Continuing, but uninstalled executables may not work."
-+    # Fallback:
-+    func_to_host_file_result="$1"
-+  fi
-+}
-+# end func_convert_file_check
-+
-+
-+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-+# Verify that FROM_PATH (a path in $build format) was converted to $host
-+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-+# func_to_host_file_result to a simplistic fallback value (see below).
-+func_convert_path_check ()
-+{
-+  $opt_debug
-+  if test -z "$4" && test -n "$3"; then
-+    func_error "Could not determine the host path corresponding to"
-+    func_error "  \`$3'"
-+    func_error "Continuing, but uninstalled executables may not work."
-+    # Fallback.  This is a deliberately simplistic "conversion" and
-+    # should not be "improved".  See libtool.info.
-+    if test "x$1" != "x$2"; then
-+      lt_replace_pathsep_chars="s|$1|$2|g"
-+      func_to_host_path_result=`echo "$3" |
-+        $SED -e "$lt_replace_pathsep_chars"`
-+    else
-+      func_to_host_path_result="$3"
-+    fi
-+  fi
-+}
-+# end func_convert_path_check
-+
-+
-+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-+# and appending REPL if ORIG matches BACKPAT.
-+func_convert_path_front_back_pathsep ()
-+{
-+  $opt_debug
-+  case $4 in
-+  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
-+    ;;
-+  esac
-+  case $4 in
-+  $2 ) func_append func_to_host_path_result "$3"
-+    ;;
-+  esac
-+}
-+# end func_convert_path_front_back_pathsep
-+
-+
-+##################################################
-+# $build to $host FILE NAME CONVERSION FUNCTIONS #
-+##################################################
-+# invoked via `$to_host_file_cmd ARG'
-+#
-+# In each case, ARG is the path to be converted from $build to $host format.
-+# Result will be available in $func_to_host_file_result.
-+
-+
-+# func_to_host_file ARG
-+# Converts the file name ARG from $build format to $host format. Return result
-+# in func_to_host_file_result.
-+func_to_host_file ()
-+{
-+  $opt_debug
-+  $to_host_file_cmd "$1"
-+}
-+# end func_to_host_file
-+
-+
-+# func_to_tool_file ARG LAZY
-+# converts the file name ARG from $build format to toolchain format. Return
-+# result in func_to_tool_file_result.  If the conversion in use is listed
-+# in (the comma separated) LAZY, no conversion takes place.
-+func_to_tool_file ()
-+{
-+  $opt_debug
-+  case ,$2, in
-+    *,"$to_tool_file_cmd",*)
-+      func_to_tool_file_result=$1
-+      ;;
-+    *)
-+      $to_tool_file_cmd "$1"
-+      func_to_tool_file_result=$func_to_host_file_result
-+      ;;
-+  esac
-+}
-+# end func_to_tool_file
-+
-+
-+# func_convert_file_noop ARG
-+# Copy ARG to func_to_host_file_result.
-+func_convert_file_noop ()
-+{
-+  func_to_host_file_result="$1"
-+}
-+# end func_convert_file_noop
-+
-+
-+# func_convert_file_msys_to_w32 ARG
-+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-+# conversion to w32 is not available inside the cwrapper.  Returns result in
-+# func_to_host_file_result.
-+func_convert_file_msys_to_w32 ()
-+{
-+  $opt_debug
-+  func_to_host_file_result="$1"
-+  if test -n "$1"; then
-+    func_convert_core_msys_to_w32 "$1"
-+    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
-+  fi
-+  func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_msys_to_w32
-+
-+
-+# func_convert_file_cygwin_to_w32 ARG
-+# Convert file name ARG from Cygwin to w32 format.  Returns result in
-+# func_to_host_file_result.
-+func_convert_file_cygwin_to_w32 ()
-+{
-+  $opt_debug
-+  func_to_host_file_result="$1"
-+  if test -n "$1"; then
-+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
-+    # LT_CYGPATH in this case.
-+    func_to_host_file_result=`cygpath -m "$1"`
-+  fi
-+  func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_cygwin_to_w32
-+
-+
-+# func_convert_file_nix_to_w32 ARG
-+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
-+# and a working winepath. Returns result in func_to_host_file_result.
-+func_convert_file_nix_to_w32 ()
-+{
-+  $opt_debug
-+  func_to_host_file_result="$1"
-+  if test -n "$1"; then
-+    func_convert_core_file_wine_to_w32 "$1"
-+    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
-+  fi
-+  func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_nix_to_w32
-+
-+
-+# func_convert_file_msys_to_cygwin ARG
-+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
-+# Returns result in func_to_host_file_result.
-+func_convert_file_msys_to_cygwin ()
-+{
-+  $opt_debug
-+  func_to_host_file_result="$1"
-+  if test -n "$1"; then
-+    func_convert_core_msys_to_w32 "$1"
-+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
-+    func_to_host_file_result="$func_cygpath_result"
-+  fi
-+  func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_msys_to_cygwin
-+
-+
-+# func_convert_file_nix_to_cygwin ARG
-+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
-+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
-+# in func_to_host_file_result.
-+func_convert_file_nix_to_cygwin ()
-+{
-+  $opt_debug
-+  func_to_host_file_result="$1"
-+  if test -n "$1"; then
-+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
-+    func_convert_core_file_wine_to_w32 "$1"
-+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
-+    func_to_host_file_result="$func_cygpath_result"
-+  fi
-+  func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_nix_to_cygwin
-+
-+
-+#############################################
-+# $build to $host PATH CONVERSION FUNCTIONS #
-+#############################################
-+# invoked via `$to_host_path_cmd ARG'
-+#
-+# In each case, ARG is the path to be converted from $build to $host format.
-+# The result will be available in $func_to_host_path_result.
-+#
-+# Path separators are also converted from $build format to $host format.  If
-+# ARG begins or ends with a path separator character, it is preserved (but
-+# converted to $host format) on output.
-+#
-+# All path conversion functions are named using the following convention:
-+#   file name conversion function    : func_convert_file_X_to_Y ()
-+#   path conversion function         : func_convert_path_X_to_Y ()
-+# where, for any given $build/$host combination the 'X_to_Y' value is the
-+# same.  If conversion functions are added for new $build/$host combinations,
-+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-+# will break.
-+
-+
-+# func_init_to_host_path_cmd
-+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-+# appropriate value, based on the value of $to_host_file_cmd.
-+to_host_path_cmd=
-+func_init_to_host_path_cmd ()
-+{
-+  $opt_debug
-+  if test -z "$to_host_path_cmd"; then
-+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
-+    to_host_path_cmd="func_convert_path_${func_stripname_result}"
-+  fi
-+}
-+
-+
-+# func_to_host_path ARG
-+# Converts the path ARG from $build format to $host format. Return result
-+# in func_to_host_path_result.
-+func_to_host_path ()
-+{
-+  $opt_debug
-+  func_init_to_host_path_cmd
-+  $to_host_path_cmd "$1"
-+}
-+# end func_to_host_path
-+
-+
-+# func_convert_path_noop ARG
-+# Copy ARG to func_to_host_path_result.
-+func_convert_path_noop ()
-+{
-+  func_to_host_path_result="$1"
-+}
-+# end func_convert_path_noop
-+
-+
-+# func_convert_path_msys_to_w32 ARG
-+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-+# conversion to w32 is not available inside the cwrapper.  Returns result in
-+# func_to_host_path_result.
-+func_convert_path_msys_to_w32 ()
-+{
-+  $opt_debug
-+  func_to_host_path_result="$1"
-+  if test -n "$1"; then
-+    # Remove leading and trailing path separator characters from ARG.  MSYS
-+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
-+    # and winepath ignores them completely.
-+    func_stripname : : "$1"
-+    func_to_host_path_tmp1=$func_stripname_result
-+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-+    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
-+    func_convert_path_check : ";" \
-+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-+  fi
-+}
-+# end func_convert_path_msys_to_w32
-+
-+
-+# func_convert_path_cygwin_to_w32 ARG
-+# Convert path ARG from Cygwin to w32 format.  Returns result in
-+# func_to_host_file_result.
-+func_convert_path_cygwin_to_w32 ()
-+{
-+  $opt_debug
-+  func_to_host_path_result="$1"
-+  if test -n "$1"; then
-+    # See func_convert_path_msys_to_w32:
-+    func_stripname : : "$1"
-+    func_to_host_path_tmp1=$func_stripname_result
-+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
-+    func_convert_path_check : ";" \
-+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-+  fi
-+}
-+# end func_convert_path_cygwin_to_w32
-+
-+
-+# func_convert_path_nix_to_w32 ARG
-+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
-+# a working winepath.  Returns result in func_to_host_file_result.
-+func_convert_path_nix_to_w32 ()
-+{
-+  $opt_debug
-+  func_to_host_path_result="$1"
-+  if test -n "$1"; then
-+    # See func_convert_path_msys_to_w32:
-+    func_stripname : : "$1"
-+    func_to_host_path_tmp1=$func_stripname_result
-+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-+    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
-+    func_convert_path_check : ";" \
-+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-+  fi
-+}
-+# end func_convert_path_nix_to_w32
-+
-+
-+# func_convert_path_msys_to_cygwin ARG
-+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
-+# Returns result in func_to_host_file_result.
-+func_convert_path_msys_to_cygwin ()
-+{
-+  $opt_debug
-+  func_to_host_path_result="$1"
-+  if test -n "$1"; then
-+    # See func_convert_path_msys_to_w32:
-+    func_stripname : : "$1"
-+    func_to_host_path_tmp1=$func_stripname_result
-+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
-+    func_to_host_path_result="$func_cygpath_result"
-+    func_convert_path_check : : \
-+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-+  fi
-+}
-+# end func_convert_path_msys_to_cygwin
-+
-+
-+# func_convert_path_nix_to_cygwin ARG
-+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
-+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
-+# func_to_host_file_result.
-+func_convert_path_nix_to_cygwin ()
-+{
-+  $opt_debug
-+  func_to_host_path_result="$1"
-+  if test -n "$1"; then
-+    # Remove leading and trailing path separator characters from
-+    # ARG. msys behavior is inconsistent here, cygpath turns them
-+    # into '.;' and ';.', and winepath ignores them completely.
-+    func_stripname : : "$1"
-+    func_to_host_path_tmp1=$func_stripname_result
-+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
-+    func_to_host_path_result="$func_cygpath_result"
-+    func_convert_path_check : : \
-+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-+  fi
-+}
-+# end func_convert_path_nix_to_cygwin
-+
-+
-+# func_mode_compile arg...
-+func_mode_compile ()
-+{
-+    $opt_debug
-+    # Get the compilation command and the source file.
-+    base_compile=
-+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-+    suppress_opt=yes
-+    suppress_output=
-+    arg_mode=normal
-+    libobj=
-+    later=
-+    pie_flag=
-+
-+    for arg
-+    do
-+      case $arg_mode in
-+      arg  )
-+	# do not "continue".  Instead, add this to base_compile
-+	lastarg="$arg"
-+	arg_mode=normal
-+	;;
-+
-+      target )
-+	libobj="$arg"
-+	arg_mode=normal
-+	continue
-+	;;
-+
-+      normal )
-+	# Accept any command-line options.
-+	case $arg in
-+	-o)
-+	  test -n "$libobj" && \
-+	    func_fatal_error "you cannot specify \`-o' more than once"
-+	  arg_mode=target
-+	  continue
-+	  ;;
-+
-+	-pie | -fpie | -fPIE)
-+          func_append pie_flag " $arg"
-+	  continue
-+	  ;;
-+
-+	-shared | -static | -prefer-pic | -prefer-non-pic)
-+	  func_append later " $arg"
-+	  continue
-+	  ;;
-+
-+	-no-suppress)
-+	  suppress_opt=no
-+	  continue
-+	  ;;
-+
-+	-Xcompiler)
-+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
-+	  continue      #  The current "srcfile" will either be retained or
-+	  ;;            #  replaced later.  I would guess that would be a bug.
-+
-+	-Wc,*)
-+	  func_stripname '-Wc,' '' "$arg"
-+	  args=$func_stripname_result
-+	  lastarg=
-+	  save_ifs="$IFS"; IFS=','
-+	  for arg in $args; do
-+	    IFS="$save_ifs"
-+	    func_append_quoted lastarg "$arg"
-+	  done
-+	  IFS="$save_ifs"
-+	  func_stripname ' ' '' "$lastarg"
-+	  lastarg=$func_stripname_result
-+
-+	  # Add the arguments to base_compile.
-+	  func_append base_compile " $lastarg"
-+	  continue
-+	  ;;
-+
-+	*)
-+	  # Accept the current argument as the source file.
-+	  # The previous "srcfile" becomes the current argument.
-+	  #
-+	  lastarg="$srcfile"
-+	  srcfile="$arg"
-+	  ;;
-+	esac  #  case $arg
-+	;;
-+      esac    #  case $arg_mode
-+
-+      # Aesthetically quote the previous argument.
-+      func_append_quoted base_compile "$lastarg"
-+    done # for arg
-+
-+    case $arg_mode in
-+    arg)
-+      func_fatal_error "you must specify an argument for -Xcompile"
-+      ;;
-+    target)
-+      func_fatal_error "you must specify a target with \`-o'"
-+      ;;
-+    *)
-+      # Get the name of the library object.
-+      test -z "$libobj" && {
-+	func_basename "$srcfile"
-+	libobj="$func_basename_result"
-+      }
-+      ;;
-+    esac
-+
-+    # Recognize several different file suffixes.
-+    # If the user specifies -o file.o, it is replaced with file.lo
-+    case $libobj in
-+    *.[cCFSifmso] | \
-+    *.ada | *.adb | *.ads | *.asm | \
-+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
-+      func_xform "$libobj"
-+      libobj=$func_xform_result
-+      ;;
-+    esac
-+
-+    case $libobj in
-+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
-+    *)
-+      func_fatal_error "cannot determine name of library object from \`$libobj'"
-+      ;;
-+    esac
-+
-+    func_infer_tag $base_compile
-+
-+    for arg in $later; do
-+      case $arg in
-+      -shared)
-+	test "$build_libtool_libs" != yes && \
-+	  func_fatal_configuration "can not build a shared library"
-+	build_old_libs=no
-+	continue
-+	;;
-+
-+      -static)
-+	build_libtool_libs=no
-+	build_old_libs=yes
-+	continue
-+	;;
-+
-+      -prefer-pic)
-+	pic_mode=yes
-+	continue
-+	;;
-+
-+      -prefer-non-pic)
-+	pic_mode=no
-+	continue
-+	;;
-+      esac
-+    done
-+
-+    func_quote_for_eval "$libobj"
-+    test "X$libobj" != "X$func_quote_for_eval_result" \
-+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
-+      && func_warning "libobj name \`$libobj' may not contain shell special characters."
-+    func_dirname_and_basename "$obj" "/" ""
-+    objname="$func_basename_result"
-+    xdir="$func_dirname_result"
-+    lobj=${xdir}$objdir/$objname
-+
-+    test -z "$base_compile" && \
-+      func_fatal_help "you must specify a compilation command"
-+
-+    # Delete any leftover library objects.
-+    if test "$build_old_libs" = yes; then
-+      removelist="$obj $lobj $libobj ${libobj}T"
-+    else
-+      removelist="$lobj $libobj ${libobj}T"
-+    fi
-+
-+    # On Cygwin there's no "real" PIC flag so we must build both object types
-+    case $host_os in
-+    cygwin* | mingw* | pw32* | os2* | cegcc*)
-+      pic_mode=default
-+      ;;
-+    esac
-+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-+      # non-PIC code in shared libraries is not supported
-+      pic_mode=default
-+    fi
-+
-+    # 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 "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
-+      lockfile="$output_obj.lock"
-+    else
-+      output_obj=
-+      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 $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-+	func_echo "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."
-+
-+	$opt_dry_run || $RM $removelist
-+	exit $EXIT_FAILURE
-+      fi
-+      func_append removelist " $output_obj"
-+      $ECHO "$srcfile" > "$lockfile"
-+    fi
-+
-+    $opt_dry_run || $RM $removelist
-+    func_append removelist " $lockfile"
-+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-+
-+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
-+    srcfile=$func_to_tool_file_result
-+    func_quote_for_eval "$srcfile"
-+    qsrcfile=$func_quote_for_eval_result
-+
-+    # Only build a PIC object if we are building libtool libraries.
-+    if test "$build_libtool_libs" = yes; then
-+      # Without this assignment, base_compile gets emptied.
-+      fbsd_hideous_sh_bug=$base_compile
-+
-+      if test "$pic_mode" != no; then
-+	command="$base_compile $qsrcfile $pic_flag"
-+      else
-+	# Don't build PIC code
-+	command="$base_compile $qsrcfile"
-+      fi
-+
-+      func_mkdir_p "$xdir$objdir"
-+
-+      if test -z "$output_obj"; then
-+	# Place PIC objects in $objdir
-+	func_append command " -o $lobj"
-+      fi
-+
-+      func_show_eval_locale "$command"	\
-+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-+
-+      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."
-+
-+	$opt_dry_run || $RM $removelist
-+	exit $EXIT_FAILURE
-+      fi
-+
-+      # Just move the object if needed, then go on to compile the next one
-+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-+	func_show_eval '$MV "$output_obj" "$lobj"' \
-+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-+      fi
-+
-+      # Allow error messages only from the first compilation.
-+      if test "$suppress_opt" = yes; then
-+	suppress_output=' >/dev/null 2>&1'
-+      fi
-+    fi
-+
-+    # Only build a position-dependent object if we build old libraries.
-+    if test "$build_old_libs" = yes; then
-+      if test "$pic_mode" != yes; then
-+	# Don't build PIC code
-+	command="$base_compile $qsrcfile$pie_flag"
-+      else
-+	command="$base_compile $qsrcfile $pic_flag"
-+      fi
-+      if test "$compiler_c_o" = yes; then
-+	func_append command " -o $obj"
-+      fi
-+
-+      # Suppress compiler output if we already did a PIC compilation.
-+      func_append command "$suppress_output"
-+      func_show_eval_locale "$command" \
-+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-+
-+      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."
-+
-+	$opt_dry_run || $RM $removelist
-+	exit $EXIT_FAILURE
-+      fi
-+
-+      # Just move the object if needed
-+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-+	func_show_eval '$MV "$output_obj" "$obj"' \
-+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-+      fi
-+    fi
-+
-+    $opt_dry_run || {
-+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-+
-+      # Unlock the critical section if it was locked
-+      if test "$need_locks" != no; then
-+	removelist=$lockfile
-+        $RM "$lockfile"
-+      fi
-+    }
-+
-+    exit $EXIT_SUCCESS
-+}
-+
-+$opt_help || {
-+  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-+}
-+
-+func_mode_help ()
-+{
-+    # We need to display help for each of the modes.
-+    case $opt_mode in
-+      "")
-+        # Generic help is extracted from the usage comments
-+        # at the start of this file.
-+        func_help
-+        ;;
-+
-+      clean)
-+        $ECHO \
-+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-+
-+Remove files from the build directory.
-+
-+RM is the name of the program to use to delete files associated with each FILE
-+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-+to RM.
-+
-+If FILE is a libtool library, object or program, all the files associated
-+with it are deleted. Otherwise, only FILE itself is deleted using RM."
-+        ;;
-+
-+      compile)
-+      $ECHO \
-+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-+
-+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
-+  -no-suppress      do not suppress compiler output for multiple passes
-+  -prefer-pic       try to build PIC objects only
-+  -prefer-non-pic   try to build non-PIC objects only
-+  -shared           do not build a \`.o' file suitable for static linking
-+  -static           only build a \`.o' file suitable for static linking
-+  -Wc,FLAG          pass FLAG directly to the compiler
-+
-+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-+from the given SOURCEFILE.
-+
-+The output file name is determined by removing the directory component from
-+SOURCEFILE, then substituting the C source code suffix \`.c' with the
-+library object suffix, \`.lo'."
-+        ;;
-+
-+      execute)
-+        $ECHO \
-+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-+
-+Automatically set library path, then run a program.
-+
-+This mode accepts the following additional options:
-+
-+  -dlopen FILE      add the directory containing FILE to the library path
-+
-+This mode sets the library path environment variable according to \`-dlopen'
-+flags.
-+
-+If any of the ARGS are libtool executable wrappers, then they are translated
-+into their corresponding uninstalled binary, and any of their required library
-+directories are added to the library path.
-+
-+Then, COMMAND is executed, with ARGS as arguments."
-+        ;;
-+
-+      finish)
-+        $ECHO \
-+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-+
-+Complete the installation of libtool libraries.
-+
-+Each LIBDIR is a directory that contains libtool libraries.
-+
-+The commands that this mode executes may require superuser privileges.  Use
-+the \`--dry-run' option if you just want to see what would be executed."
-+        ;;
-+
-+      install)
-+        $ECHO \
-+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-+
-+Install executables or libraries.
-+
-+INSTALL-COMMAND is the installation command.  The first component should be
-+either the \`install' or \`cp' program.
-+
-+The following components of INSTALL-COMMAND are treated specially:
-+
-+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
-+
-+The rest of the components are interpreted as arguments to that command (only
-+BSD-compatible install options are recognized)."
-+        ;;
-+
-+      link)
-+        $ECHO \
-+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-+
-+Link object files or libraries together to form another library, or to
-+create an executable program.
-+
-+LINK-COMMAND is a command using the C compiler that you would use to create
-+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
-+  -bindir BINDIR    specify path to binaries directory (for systems where
-+                    libraries must be found in the PATH setting at runtime)
-+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-+  -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-fast-install  disable the fast-install mode
-+  -no-install       link a not-installable executable
-+  -no-undefined     declare that a library does not refer to external symbols
-+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-+  -objectlist FILE  Use a list of object files found in FILE to specify objects
-+  -precious-files-regex REGEX
-+                    don't remove output files matching REGEX
-+  -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
-+  -shared           only do dynamic linking of libtool libraries
-+  -shrext SUFFIX    override the standard shared library file extension
-+  -static           do not do any dynamic linking of uninstalled libtool libraries
-+  -static-libtool-libs
-+                    do not do any dynamic linking of libtool libraries
-+  -version-info CURRENT[:REVISION[:AGE]]
-+                    specify library version info [each variable defaults to 0]
-+  -weak LIBNAME     declare that the target provides the LIBNAME interface
-+  -Wc,FLAG
-+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
-+  -Wl,FLAG
-+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
-+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
-+
-+All other options (arguments beginning with \`-') are ignored.
-+
-+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, except when creating a convenience library.
-+
-+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 \`.${objext}', then a reloadable object file
-+is created, otherwise an executable program is created."
-+        ;;
-+
-+      uninstall)
-+        $ECHO \
-+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-+
-+Remove libraries from an installation directory.
-+
-+RM is the name of the program to use to delete files associated with each FILE
-+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-+to RM.
-+
-+If FILE is a libtool library, all the files associated with it are deleted.
-+Otherwise, only FILE itself is deleted using RM."
-+        ;;
-+
-+      *)
-+        func_fatal_help "invalid operation mode \`$opt_mode'"
-+        ;;
-+    esac
-+
-+    echo
-+    $ECHO "Try \`$progname --help' for more information about other modes."
-+}
-+
-+# Now that we've collected a possible --mode arg, show help if necessary
-+if $opt_help; then
-+  if test "$opt_help" = :; then
-+    func_mode_help
-+  else
-+    {
-+      func_help noexit
-+      for opt_mode in compile link execute install finish uninstall clean; do
-+	func_mode_help
-+      done
-+    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
-+    {
-+      func_help noexit
-+      for opt_mode in compile link execute install finish uninstall clean; do
-+	echo
-+	func_mode_help
-+      done
-+    } |
-+    sed '1d
-+      /^When reporting/,/^Report/{
-+	H
-+	d
-+      }
-+      $x
-+      /information about other modes/d
-+      /more detailed .*MODE/d
-+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
-+  fi
-+  exit $?
-+fi
-+
-+
-+# func_mode_execute arg...
-+func_mode_execute ()
-+{
-+    $opt_debug
-+    # The first argument is the command name.
-+    cmd="$nonopt"
-+    test -z "$cmd" && \
-+      func_fatal_help "you must specify a COMMAND"
-+
-+    # Handle -dlopen flags immediately.
-+    for file in $opt_dlopen; do
-+      test -f "$file" \
-+	|| func_fatal_help "\`$file' is not a file"
-+
-+      dir=
-+      case $file in
-+      *.la)
-+	func_resolve_sysroot "$file"
-+	file=$func_resolve_sysroot_result
-+
-+	# Check to see that this really is a libtool archive.
-+	func_lalib_unsafe_p "$file" \
-+	  || func_fatal_help "\`$lib' is not a valid libtool archive"
-+
-+	# Read the libtool library.
-+	dlname=
-+	library_names=
-+	func_source "$file"
-+
-+	# Skip this library if it cannot be dlopened.
-+	if test -z "$dlname"; then
-+	  # Warn if it was a shared library.
-+	  test -n "$library_names" && \
-+	    func_warning "\`$file' was not linked with \`-export-dynamic'"
-+	  continue
-+	fi
-+
-+	func_dirname "$file" "" "."
-+	dir="$func_dirname_result"
-+
-+	if test -f "$dir/$objdir/$dlname"; then
-+	  func_append dir "/$objdir"
-+	else
-+	  if test ! -f "$dir/$dlname"; then
-+	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
-+	  fi
-+	fi
-+	;;
-+
-+      *.lo)
-+	# Just add the directory containing the .lo file.
-+	func_dirname "$file" "" "."
-+	dir="$func_dirname_result"
-+	;;
-+
-+      *)
-+	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
-+	continue
-+	;;
-+      esac
-+
-+      # Get the absolute pathname.
-+      absdir=`cd "$dir" && pwd`
-+      test -n "$absdir" && dir="$absdir"
-+
-+      # Now add the directory to shlibpath_var.
-+      if eval "test -z \"\$$shlibpath_var\""; then
-+	eval "$shlibpath_var=\"\$dir\""
-+      else
-+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-+      fi
-+    done
-+
-+    # This variable tells wrapper scripts just to set shlibpath_var
-+    # rather than running their programs.
-+    libtool_execute_magic="$magic"
-+
-+    # Check if any of the arguments is a wrapper script.
-+    args=
-+    for file
-+    do
-+      case $file in
-+      -* | *.la | *.lo ) ;;
-+      *)
-+	# Do a test to see if this is really a libtool program.
-+	if func_ltwrapper_script_p "$file"; then
-+	  func_source "$file"
-+	  # Transform arg to wrapped name.
-+	  file="$progdir/$program"
-+	elif func_ltwrapper_executable_p "$file"; then
-+	  func_ltwrapper_scriptname "$file"
-+	  func_source "$func_ltwrapper_scriptname_result"
-+	  # Transform arg to wrapped name.
-+	  file="$progdir/$program"
-+	fi
-+	;;
-+      esac
-+      # Quote arguments (to preserve shell metacharacters).
-+      func_append_quoted args "$file"
-+    done
-+
-+    if test "X$opt_dry_run" = Xfalse; then
-+      if test -n "$shlibpath_var"; then
-+	# Export the shlibpath_var.
-+	eval "export $shlibpath_var"
-+      fi
-+
-+      # Restore saved environment variables
-+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-+      do
-+	eval "if test \"\${save_$lt_var+set}\" = set; then
-+                $lt_var=\$save_$lt_var; export $lt_var
-+	      else
-+		$lt_unset $lt_var
-+	      fi"
-+      done
-+
-+      # Now prepare to actually exec the command.
-+      exec_cmd="\$cmd$args"
-+    else
-+      # Display what would be done.
-+      if test -n "$shlibpath_var"; then
-+	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-+	echo "export $shlibpath_var"
-+      fi
-+      $ECHO "$cmd$args"
-+      exit $EXIT_SUCCESS
-+    fi
-+}
-+
-+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-+
-+
-+# func_mode_finish arg...
-+func_mode_finish ()
-+{
-+    $opt_debug
-+    libs=
-+    libdirs=
-+    admincmds=
-+
-+    for opt in "$nonopt" ${1+"$@"}
-+    do
-+      if test -d "$opt"; then
-+	func_append libdirs " $opt"
-+
-+      elif test -f "$opt"; then
-+	if func_lalib_unsafe_p "$opt"; then
-+	  func_append libs " $opt"
-+	else
-+	  func_warning "\`$opt' is not a valid libtool archive"
-+	fi
-+
-+      else
-+	func_fatal_error "invalid argument \`$opt'"
-+      fi
-+    done
-+
-+    if test -n "$libs"; then
-+      if test -n "$lt_sysroot"; then
-+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
-+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
-+      else
-+        sysroot_cmd=
-+      fi
-+
-+      # Remove sysroot references
-+      if $opt_dry_run; then
-+        for lib in $libs; do
-+          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
-+        done
-+      else
-+        tmpdir=`func_mktempdir`
-+        for lib in $libs; do
-+	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
-+	    > $tmpdir/tmp-la
-+	  mv -f $tmpdir/tmp-la $lib
-+	done
-+        ${RM}r "$tmpdir"
-+      fi
-+    fi
-+
-+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-+      for libdir in $libdirs; do
-+	if test -n "$finish_cmds"; then
-+	  # Do each command in the finish commands.
-+	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-+'"$cmd"'"'
-+	fi
-+	if test -n "$finish_eval"; then
-+	  # Do the single finish_eval.
-+	  eval cmds=\"$finish_eval\"
-+	  $opt_dry_run || eval "$cmds" || func_append admincmds "
-+       $cmds"
-+	fi
-+      done
-+    fi
-+
-+    # Exit here if they wanted silent mode.
-+    $opt_silent && exit $EXIT_SUCCESS
-+
-+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-+      echo "----------------------------------------------------------------------"
-+      echo "Libraries have been installed in:"
-+      for libdir in $libdirs; do
-+	$ECHO "   $libdir"
-+      done
-+      echo
-+      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 the \`-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"
-+      fi
-+      if test -n "$runpath_var"; then
-+	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-+	echo "     during linking"
-+      fi
-+      if test -n "$hardcode_libdir_flag_spec"; then
-+	libdir=LIBDIR
-+	eval flag=\"$hardcode_libdir_flag_spec\"
-+
-+	$ECHO "   - use the \`$flag' linker flag"
-+      fi
-+      if test -n "$admincmds"; then
-+	$ECHO "   - have your system administrator run these commands:$admincmds"
-+      fi
-+      if test -f /etc/ld.so.conf; then
-+	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-+      fi
-+      echo
-+
-+      echo "See any operating system documentation about shared libraries for"
-+      case $host in
-+	solaris2.[6789]|solaris2.1[0-9])
-+	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-+	  echo "pages."
-+	  ;;
-+	*)
-+	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
-+	  ;;
-+      esac
-+      echo "----------------------------------------------------------------------"
-+    fi
-+    exit $EXIT_SUCCESS
-+}
-+
-+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-+
-+
-+# func_mode_install arg...
-+func_mode_install ()
-+{
-+    $opt_debug
-+    # There may be an optional sh(1) argument at the beginning of
-+    # install_prog (especially on Windows NT).
-+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-+       # Allow the use of GNU shtool's install command.
-+       case $nonopt in *shtool*) :;; *) false;; esac; then
-+      # Aesthetically quote it.
-+      func_quote_for_eval "$nonopt"
-+      install_prog="$func_quote_for_eval_result "
-+      arg=$1
-+      shift
-+    else
-+      install_prog=
-+      arg=$nonopt
-+    fi
-+
-+    # The real first argument should be the name of the installation program.
-+    # Aesthetically quote it.
-+    func_quote_for_eval "$arg"
-+    func_append install_prog "$func_quote_for_eval_result"
-+    install_shared_prog=$install_prog
-+    case " $install_prog " in
-+      *[\\\ /]cp\ *) install_cp=: ;;
-+      *) install_cp=false ;;
-+    esac
-+
-+    # We need to accept at least all the BSD install flags.
-+    dest=
-+    files=
-+    opts=
-+    prev=
-+    install_type=
-+    isdir=no
-+    stripme=
-+    no_mode=:
-+    for arg
-+    do
-+      arg2=
-+      if test -n "$dest"; then
-+	func_append files " $dest"
-+	dest=$arg
-+	continue
-+      fi
-+
-+      case $arg in
-+      -d) isdir=yes ;;
-+      -f)
-+	if $install_cp; then :; else
-+	  prev=$arg
-+	fi
-+	;;
-+      -g | -m | -o)
-+	prev=$arg
-+	;;
-+      -s)
-+	stripme=" -s"
-+	continue
-+	;;
-+      -*)
-+	;;
-+      *)
-+	# If the previous option needed an argument, then skip it.
-+	if test -n "$prev"; then
-+	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
-+	    arg2=$install_override_mode
-+	    no_mode=false
-+	  fi
-+	  prev=
-+	else
-+	  dest=$arg
-+	  continue
-+	fi
-+	;;
-+      esac
-+
-+      # Aesthetically quote the argument.
-+      func_quote_for_eval "$arg"
-+      func_append install_prog " $func_quote_for_eval_result"
-+      if test -n "$arg2"; then
-+	func_quote_for_eval "$arg2"
-+      fi
-+      func_append install_shared_prog " $func_quote_for_eval_result"
-+    done
-+
-+    test -z "$install_prog" && \
-+      func_fatal_help "you must specify an install program"
-+
-+    test -n "$prev" && \
-+      func_fatal_help "the \`$prev' option requires an argument"
-+
-+    if test -n "$install_override_mode" && $no_mode; then
-+      if $install_cp; then :; else
-+	func_quote_for_eval "$install_override_mode"
-+	func_append install_shared_prog " -m $func_quote_for_eval_result"
-+      fi
-+    fi
-+
-+    if test -z "$files"; then
-+      if test -z "$dest"; then
-+	func_fatal_help "no file or destination specified"
-+      else
-+	func_fatal_help "you must specify a destination"
-+      fi
-+    fi
-+
-+    # Strip any trailing slash from the destination.
-+    func_stripname '' '/' "$dest"
-+    dest=$func_stripname_result
-+
-+    # Check to see that the destination is a directory.
-+    test -d "$dest" && isdir=yes
-+    if test "$isdir" = yes; then
-+      destdir="$dest"
-+      destname=
-+    else
-+      func_dirname_and_basename "$dest" "" "."
-+      destdir="$func_dirname_result"
-+      destname="$func_basename_result"
-+
-+      # Not a directory, so check to see that there is only one file specified.
-+      set dummy $files; shift
-+      test "$#" -gt 1 && \
-+	func_fatal_help "\`$dest' is not a directory"
-+    fi
-+    case $destdir in
-+    [\\/]* | [A-Za-z]:[\\/]*) ;;
-+    *)
-+      for file in $files; do
-+	case $file in
-+	*.lo) ;;
-+	*)
-+	  func_fatal_help "\`$destdir' must be an absolute directory name"
-+	  ;;
-+	esac
-+      done
-+      ;;
-+    esac
-+
-+    # This variable tells wrapper scripts just to set variables rather
-+    # than running their programs.
-+    libtool_install_magic="$magic"
-+
-+    staticlibs=
-+    future_libdirs=
-+    current_libdirs=
-+    for file in $files; do
-+
-+      # Do each installation.
-+      case $file in
-+      *.$libext)
-+	# Do the static libraries later.
-+	func_append staticlibs " $file"
-+	;;
-+
-+      *.la)
-+	func_resolve_sysroot "$file"
-+	file=$func_resolve_sysroot_result
-+
-+	# Check to see that this really is a libtool archive.
-+	func_lalib_unsafe_p "$file" \
-+	  || func_fatal_help "\`$file' is not a valid libtool archive"
-+
-+	library_names=
-+	old_library=
-+	relink_command=
-+	func_source "$file"
-+
-+	# Add the libdir to current_libdirs if it is the destination.
-+	if test "X$destdir" = "X$libdir"; then
-+	  case "$current_libdirs " in
-+	  *" $libdir "*) ;;
-+	  *) func_append current_libdirs " $libdir" ;;
-+	  esac
-+	else
-+	  # Note the libdir as a future libdir.
-+	  case "$future_libdirs " in
-+	  *" $libdir "*) ;;
-+	  *) func_append future_libdirs " $libdir" ;;
-+	  esac
-+	fi
-+
-+	func_dirname "$file" "/" ""
-+	dir="$func_dirname_result"
-+	func_append dir "$objdir"
-+
-+	if test -n "$relink_command"; then
-+	  # Determine the prefix the user has applied to our future dir.
-+	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-+
-+	  # Don't allow the user to place us outside of our expected
-+	  # location b/c this prevents finding dependent libraries that
-+	  # are installed to the same prefix.
-+	  # At present, this check doesn't affect windows .dll's that
-+	  # are installed into $libdir/../bin (currently, that works fine)
-+	  # but it's something to keep an eye on.
-+	  test "$inst_prefix_dir" = "$destdir" && \
-+	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-+
-+	  if test -n "$inst_prefix_dir"; then
-+	    # Stick the inst_prefix_dir data into the link command.
-+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
-+	  else
-+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
-+	  fi
-+
-+	  func_warning "relinking \`$file'"
-+	  func_show_eval "$relink_command" \
-+	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
-+	fi
-+
-+	# See the names of the shared library.
-+	set dummy $library_names; shift
-+	if test -n "$1"; then
-+	  realname="$1"
-+	  shift
-+
-+	  srcname="$realname"
-+	  test -n "$relink_command" && srcname="$realname"T
-+
-+	  # Install the shared library and build the symlinks.
-+	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
-+	      'exit $?'
-+	  tstripme="$stripme"
-+	  case $host_os in
-+	  cygwin* | mingw* | pw32* | cegcc*)
-+	    case $realname in
-+	    *.dll.a)
-+	      tstripme=""
-+	      ;;
-+	    esac
-+	    ;;
-+	  esac
-+	  if test -n "$tstripme" && test -n "$striplib"; then
-+	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
-+	  fi
-+
-+	  if test "$#" -gt 0; then
-+	    # Delete the old symlinks, and create new ones.
-+	    # Try `ln -sf' first, because the `ln' binary might depend on
-+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
-+	    # so we also need to try rm && ln -s.
-+	    for linkname
-+	    do
-+	      test "$linkname" != "$realname" \
-+		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
-+	    done
-+	  fi
-+
-+	  # Do each command in the postinstall commands.
-+	  lib="$destdir/$realname"
-+	  func_execute_cmds "$postinstall_cmds" 'exit $?'
-+	fi
-+
-+	# Install the pseudo-library for information purposes.
-+	func_basename "$file"
-+	name="$func_basename_result"
-+	instname="$dir/$name"i
-+	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-+
-+	# Maybe install the static library, too.
-+	test -n "$old_library" && func_append 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
-+	  func_basename "$file"
-+	  destfile="$func_basename_result"
-+	  destfile="$destdir/$destfile"
-+	fi
-+
-+	# Deduce the name of the destination old-style object file.
-+	case $destfile in
-+	*.lo)
-+	  func_lo2o "$destfile"
-+	  staticdest=$func_lo2o_result
-+	  ;;
-+	*.$objext)
-+	  staticdest="$destfile"
-+	  destfile=
-+	  ;;
-+	*)
-+	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
-+	  ;;
-+	esac
-+
-+	# Install the libtool object if requested.
-+	test -n "$destfile" && \
-+	  func_show_eval "$install_prog $file $destfile" 'exit $?'
-+
-+	# Install the old object if enabled.
-+	if test "$build_old_libs" = yes; then
-+	  # Deduce the name of the old-style object file.
-+	  func_lo2o "$file"
-+	  staticobj=$func_lo2o_result
-+	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
-+	fi
-+	exit $EXIT_SUCCESS
-+	;;
-+
-+      *)
-+	# Figure out destination file name, if it wasn't already specified.
-+	if test -n "$destname"; then
-+	  destfile="$destdir/$destname"
-+	else
-+	  func_basename "$file"
-+	  destfile="$func_basename_result"
-+	  destfile="$destdir/$destfile"
-+	fi
-+
-+	# If the file is missing, and there is a .exe on the end, strip it
-+	# because it is most likely a libtool script we actually want to
-+	# install
-+	stripped_ext=""
-+	case $file in
-+	  *.exe)
-+	    if test ! -f "$file"; then
-+	      func_stripname '' '.exe' "$file"
-+	      file=$func_stripname_result
-+	      stripped_ext=".exe"
-+	    fi
-+	    ;;
-+	esac
-+
-+	# Do a test to see if this is really a libtool program.
-+	case $host in
-+	*cygwin* | *mingw*)
-+	    if func_ltwrapper_executable_p "$file"; then
-+	      func_ltwrapper_scriptname "$file"
-+	      wrapper=$func_ltwrapper_scriptname_result
-+	    else
-+	      func_stripname '' '.exe' "$file"
-+	      wrapper=$func_stripname_result
-+	    fi
-+	    ;;
-+	*)
-+	    wrapper=$file
-+	    ;;
-+	esac
-+	if func_ltwrapper_script_p "$wrapper"; then
-+	  notinst_deplibs=
-+	  relink_command=
-+
-+	  func_source "$wrapper"
-+
-+	  # Check the variables that should have been set.
-+	  test -z "$generated_by_libtool_version" && \
-+	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-+
-+	  finalize=yes
-+	  for lib in $notinst_deplibs; do
-+	    # Check to see that each library is installed.
-+	    libdir=
-+	    if test -f "$lib"; then
-+	      func_source "$lib"
-+	    fi
-+	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
-+	    if test -n "$libdir" && test ! -f "$libfile"; then
-+	      func_warning "\`$lib' has not been installed in \`$libdir'"
-+	      finalize=no
-+	    fi
-+	  done
-+
-+	  relink_command=
-+	  func_source "$wrapper"
-+
-+	  outputname=
-+	  if test "$fast_install" = no && test -n "$relink_command"; then
-+	    $opt_dry_run || {
-+	      if test "$finalize" = yes; then
-+	        tmpdir=`func_mktempdir`
-+		func_basename "$file$stripped_ext"
-+		file="$func_basename_result"
-+	        outputname="$tmpdir/$file"
-+	        # Replace the output file specification.
-+	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-+
-+	        $opt_silent || {
-+	          func_quote_for_expand "$relink_command"
-+		  eval "func_echo $func_quote_for_expand_result"
-+	        }
-+	        if eval "$relink_command"; then :
-+	          else
-+		  func_error "error: relink \`$file' with the above command before installing it"
-+		  $opt_dry_run || ${RM}r "$tmpdir"
-+		  continue
-+	        fi
-+	        file="$outputname"
-+	      else
-+	        func_warning "cannot relink \`$file'"
-+	      fi
-+	    }
-+	  else
-+	    # Install the binary that we compiled earlier.
-+	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
-+	  fi
-+	fi
-+
-+	# remove .exe since cygwin /usr/bin/install will append another
-+	# one anyway
-+	case $install_prog,$host in
-+	*/usr/bin/install*,*cygwin*)
-+	  case $file:$destfile in
-+	  *.exe:*.exe)
-+	    # this is ok
-+	    ;;
-+	  *.exe:*)
-+	    destfile=$destfile.exe
-+	    ;;
-+	  *:*.exe)
-+	    func_stripname '' '.exe' "$destfile"
-+	    destfile=$func_stripname_result
-+	    ;;
-+	  esac
-+	  ;;
-+	esac
-+	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
-+	$opt_dry_run || if test -n "$outputname"; then
-+	  ${RM}r "$tmpdir"
-+	fi
-+	;;
-+      esac
-+    done
-+
-+    for file in $staticlibs; do
-+      func_basename "$file"
-+      name="$func_basename_result"
-+
-+      # Set up the ranlib parameters.
-+      oldlib="$destdir/$name"
-+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
-+      tool_oldlib=$func_to_tool_file_result
-+
-+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-+
-+      if test -n "$stripme" && test -n "$old_striplib"; then
-+	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
-+      fi
-+
-+      # Do each command in the postinstall commands.
-+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
-+    done
-+
-+    test -n "$future_libdirs" && \
-+      func_warning "remember to run \`$progname --finish$future_libdirs'"
-+
-+    if test -n "$current_libdirs"; then
-+      # Maybe just do a dry run.
-+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
-+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-+    else
-+      exit $EXIT_SUCCESS
-+    fi
-+}
-+
-+test "$opt_mode" = install && func_mode_install ${1+"$@"}
-+
-+
-+# func_generate_dlsyms outputname originator pic_p
-+# Extract symbols from dlprefiles and create ${outputname}S.o with
-+# a dlpreopen symbol table.
-+func_generate_dlsyms ()
-+{
-+    $opt_debug
-+    my_outputname="$1"
-+    my_originator="$2"
-+    my_pic_p="${3-no}"
-+    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
-+    my_dlsyms=
-+
-+    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
-+	my_dlsyms="${my_outputname}S.c"
-+      else
-+	func_error "not configured to extract global symbols from dlpreopened files"
-+      fi
-+    fi
-+
-+    if test -n "$my_dlsyms"; then
-+      case $my_dlsyms in
-+      "") ;;
-+      *.c)
-+	# Discover the nlist of each of the dlfiles.
-+	nlist="$output_objdir/${my_outputname}.nm"
-+
-+	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-+
-+	# Parse the name list into a source file.
-+	func_verbose "creating $output_objdir/$my_dlsyms"
-+
-+	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-+
-+#ifdef __cplusplus
-+extern \"C\" {
-+#endif
-+
-+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-+#endif
-+
-+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-+/* DATA imports from DLLs on WIN32 con't be const, because runtime
-+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-+# define LT_DLSYM_CONST
-+#elif defined(__osf__)
-+/* This system does not cope well with relocations in const data.  */
-+# define LT_DLSYM_CONST
-+#else
-+# define LT_DLSYM_CONST const
-+#endif
-+
-+/* External symbol declarations for the compiler. */\
-+"
-+
-+	if test "$dlself" = yes; then
-+	  func_verbose "generating symbol list for \`$output'"
-+
-+	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-+
-+	  # Add our own program objects to the symbol list.
-+	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
-+	  for progfile in $progfiles; do
-+	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
-+	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
-+	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
-+	  done
-+
-+	  if test -n "$exclude_expsyms"; then
-+	    $opt_dry_run || {
-+	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-+	      eval '$MV "$nlist"T "$nlist"'
-+	    }
-+	  fi
-+
-+	  if test -n "$export_symbols_regex"; then
-+	    $opt_dry_run || {
-+	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-+	      eval '$MV "$nlist"T "$nlist"'
-+	    }
-+	  fi
-+
-+	  # Prepare the list of exported symbols
-+	  if test -z "$export_symbols"; then
-+	    export_symbols="$output_objdir/$outputname.exp"
-+	    $opt_dry_run || {
-+	      $RM $export_symbols
-+	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-+	      case $host in
-+	      *cygwin* | *mingw* | *cegcc* )
-+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-+	        ;;
-+	      esac
-+	    }
-+	  else
-+	    $opt_dry_run || {
-+	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-+	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-+	      eval '$MV "$nlist"T "$nlist"'
-+	      case $host in
-+	        *cygwin* | *mingw* | *cegcc* )
-+	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-+	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-+	          ;;
-+	      esac
-+	    }
-+	  fi
-+	fi
-+
-+	for dlprefile in $dlprefiles; do
-+	  func_verbose "extracting global C symbols from \`$dlprefile'"
-+	  func_basename "$dlprefile"
-+	  name="$func_basename_result"
-+          case $host in
-+	    *cygwin* | *mingw* | *cegcc* )
-+	      # if an import library, we need to obtain dlname
-+	      if func_win32_import_lib_p "$dlprefile"; then
-+	        func_tr_sh "$dlprefile"
-+	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
-+	        dlprefile_dlbasename=""
-+	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
-+	          # Use subshell, to avoid clobbering current variable values
-+	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
-+	          if test -n "$dlprefile_dlname" ; then
-+	            func_basename "$dlprefile_dlname"
-+	            dlprefile_dlbasename="$func_basename_result"
-+	          else
-+	            # no lafile. user explicitly requested -dlpreopen <import library>.
-+	            $sharedlib_from_linklib_cmd "$dlprefile"
-+	            dlprefile_dlbasename=$sharedlib_from_linklib_result
-+	          fi
-+	        fi
-+	        $opt_dry_run || {
-+	          if test -n "$dlprefile_dlbasename" ; then
-+	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
-+	          else
-+	            func_warning "Could not compute DLL name from $name"
-+	            eval '$ECHO ": $name " >> "$nlist"'
-+	          fi
-+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
-+	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
-+	        }
-+	      else # not an import lib
-+	        $opt_dry_run || {
-+	          eval '$ECHO ": $name " >> "$nlist"'
-+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-+	        }
-+	      fi
-+	    ;;
-+	    *)
-+	      $opt_dry_run || {
-+	        eval '$ECHO ": $name " >> "$nlist"'
-+	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-+	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-+	      }
-+	    ;;
-+          esac
-+	done
-+
-+	$opt_dry_run || {
-+	  # 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" |
-+	      if sort -k 3 </dev/null >/dev/null 2>&1; then
-+		sort -k 3
-+	      else
-+		sort +2
-+	      fi |
-+	      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/$my_dlsyms"'
-+	  else
-+	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
-+	  fi
-+
-+	  echo >> "$output_objdir/$my_dlsyms" "\
-+
-+/* The mapping between symbol names and symbols.  */
-+typedef struct {
-+  const char *name;
-+  void *address;
-+} lt_dlsymlist;
-+extern LT_DLSYM_CONST lt_dlsymlist
-+lt_${my_prefix}_LTX_preloaded_symbols[];
-+LT_DLSYM_CONST lt_dlsymlist
-+lt_${my_prefix}_LTX_preloaded_symbols[] =
-+{\
-+  { \"$my_originator\", (void *) 0 },"
-+
-+	  case $need_lib_prefix in
-+	  no)
-+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
-+	    ;;
-+	  *)
-+	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
-+	    ;;
-+	  esac
-+	  echo >> "$output_objdir/$my_dlsyms" "\
-+  {0, (void *) 0}
-+};
-+
-+/* This works around a problem in FreeBSD linker */
-+#ifdef FREEBSD_WORKAROUND
-+static const void *lt_preloaded_setup() {
-+  return lt_${my_prefix}_LTX_preloaded_symbols;
-+}
-+#endif
-+
-+#ifdef __cplusplus
-+}
-+#endif\
-+"
-+	} # !$opt_dry_run
-+
-+	pic_flag_for_symtable=
-+	case "$compile_command " in
-+	*" -static "*) ;;
-+	*)
-+	  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*|*-*-freebsdelf3.0*)
-+	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
-+	  *-*-hpux*)
-+	    pic_flag_for_symtable=" $pic_flag"  ;;
-+	  *)
-+	    if test "X$my_pic_p" != Xno; then
-+	      pic_flag_for_symtable=" $pic_flag"
-+	    fi
-+	    ;;
-+	  esac
-+	  ;;
-+	esac
-+	symtab_cflags=
-+	for arg in $LTCFLAGS; do
-+	  case $arg in
-+	  -pie | -fpie | -fPIE) ;;
-+	  *) func_append symtab_cflags " $arg" ;;
-+	  esac
-+	done
-+
-+	# Now compile the dynamic symbol file.
-+	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-+
-+	# Clean up the generated files.
-+	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-+
-+	# Transform the symbol file into the correct name.
-+	symfileobj="$output_objdir/${my_outputname}S.$objext"
-+	case $host in
-+	*cygwin* | *mingw* | *cegcc* )
-+	  if test -f "$output_objdir/$my_outputname.def"; then
-+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-+	  else
-+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-+	  fi
-+	  ;;
-+	*)
-+	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-+	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-+	  ;;
-+	esac
-+	;;
-+      *)
-+	func_fatal_error "unknown suffix for \`$my_dlsyms'"
-+	;;
-+      esac
-+    else
-+      # 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 "$compile_command" | $SED "s% @SYMFILE@%%"`
-+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
-+    fi
-+}
-+
-+# func_win32_libid arg
-+# return the library type of file 'arg'
-+#
-+# Need a lot of goo to handle *both* DLLs and import libs
-+# Has to be a shell function in order to 'eat' the argument
-+# that is supplied when $file_magic_command is called.
-+# Despite the name, also deal with 64 bit binaries.
-+func_win32_libid ()
-+{
-+  $opt_debug
-+  win32_libid_type="unknown"
-+  win32_fileres=`file -L $1 2>/dev/null`
-+  case $win32_fileres in
-+  *ar\ archive\ import\ library*) # definitely import
-+    win32_libid_type="x86 archive import"
-+    ;;
-+  *ar\ archive*) # could be an import, or static
-+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
-+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-+      func_to_tool_file "$1" func_convert_file_msys_to_w32
-+      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
-+	$SED -n -e '
-+	    1,100{
-+		/ I /{
-+		    s,.*,import,
-+		    p
-+		    q
-+		}
-+	    }'`
-+      case $win32_nmres in
-+      import*)  win32_libid_type="x86 archive import";;
-+      *)        win32_libid_type="x86 archive static";;
-+      esac
-+    fi
-+    ;;
-+  *DLL*)
-+    win32_libid_type="x86 DLL"
-+    ;;
-+  *executable*) # but shell scripts are "executable" too...
-+    case $win32_fileres in
-+    *MS\ Windows\ PE\ Intel*)
-+      win32_libid_type="x86 DLL"
-+      ;;
-+    esac
-+    ;;
-+  esac
-+  $ECHO "$win32_libid_type"
-+}
-+
-+# func_cygming_dll_for_implib ARG
-+#
-+# Platform-specific function to extract the
-+# name of the DLL associated with the specified
-+# import library ARG.
-+# Invoked by eval'ing the libtool variable
-+#    $sharedlib_from_linklib_cmd
-+# Result is available in the variable
-+#    $sharedlib_from_linklib_result
-+func_cygming_dll_for_implib ()
-+{
-+  $opt_debug
-+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-+}
-+
-+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-+#
-+# The is the core of a fallback implementation of a
-+# platform-specific function to extract the name of the
-+# DLL associated with the specified import library LIBNAME.
-+#
-+# SECTION_NAME is either .idata$6 or .idata$7, depending
-+# on the platform and compiler that created the implib.
-+#
-+# Echos the name of the DLL associated with the
-+# specified import library.
-+func_cygming_dll_for_implib_fallback_core ()
-+{
-+  $opt_debug
-+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
-+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
-+    $SED '/^Contents of section '"$match_literal"':/{
-+      # Place marker at beginning of archive member dllname section
-+      s/.*/====MARK====/
-+      p
-+      d
-+    }
-+    # These lines can sometimes be longer than 43 characters, but
-+    # are always uninteresting
-+    /:[	 ]*file format pe[i]\{,1\}-/d
-+    /^In archive [^:]*:/d
-+    # Ensure marker is printed
-+    /^====MARK====/p
-+    # Remove all lines with less than 43 characters
-+    /^.\{43\}/!d
-+    # From remaining lines, remove first 43 characters
-+    s/^.\{43\}//' |
-+    $SED -n '
-+      # Join marker and all lines until next marker into a single line
-+      /^====MARK====/ b para
-+      H
-+      $ b para
-+      b
-+      :para
-+      x
-+      s/\n//g
-+      # Remove the marker
-+      s/^====MARK====//
-+      # Remove trailing dots and whitespace
-+      s/[\. \t]*$//
-+      # Print
-+      /./p' |
-+    # we now have a list, one entry per line, of the stringified
-+    # contents of the appropriate section of all members of the
-+    # archive which possess that section. Heuristic: eliminate
-+    # all those which have a first or second character that is
-+    # a '.' (that is, objdump's representation of an unprintable
-+    # character.) This should work for all archives with less than
-+    # 0x302f exports -- but will fail for DLLs whose name actually
-+    # begins with a literal '.' or a single character followed by
-+    # a '.'.
-+    #
-+    # Of those that remain, print the first one.
-+    $SED -e '/^\./d;/^.\./d;q'
-+}
-+
-+# func_cygming_gnu_implib_p ARG
-+# This predicate returns with zero status (TRUE) if
-+# ARG is a GNU/binutils-style import library. Returns
-+# with nonzero status (FALSE) otherwise.
-+func_cygming_gnu_implib_p ()
-+{
-+  $opt_debug
-+  func_to_tool_file "$1" func_convert_file_msys_to_w32
-+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
-+  test -n "$func_cygming_gnu_implib_tmp"
-+}
-+
-+# func_cygming_ms_implib_p ARG
-+# This predicate returns with zero status (TRUE) if
-+# ARG is an MS-style import library. Returns
-+# with nonzero status (FALSE) otherwise.
-+func_cygming_ms_implib_p ()
-+{
-+  $opt_debug
-+  func_to_tool_file "$1" func_convert_file_msys_to_w32
-+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
-+  test -n "$func_cygming_ms_implib_tmp"
-+}
-+
-+# func_cygming_dll_for_implib_fallback ARG
-+# Platform-specific function to extract the
-+# name of the DLL associated with the specified
-+# import library ARG.
-+#
-+# This fallback implementation is for use when $DLLTOOL
-+# does not support the --identify-strict option.
-+# Invoked by eval'ing the libtool variable
-+#    $sharedlib_from_linklib_cmd
-+# Result is available in the variable
-+#    $sharedlib_from_linklib_result
-+func_cygming_dll_for_implib_fallback ()
-+{
-+  $opt_debug
-+  if func_cygming_gnu_implib_p "$1" ; then
-+    # binutils import library
-+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
-+  elif func_cygming_ms_implib_p "$1" ; then
-+    # ms-generated import library
-+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
-+  else
-+    # unknown
-+    sharedlib_from_linklib_result=""
-+  fi
-+}
-+
-+
-+# func_extract_an_archive dir oldlib
-+func_extract_an_archive ()
-+{
-+    $opt_debug
-+    f_ex_an_ar_dir="$1"; shift
-+    f_ex_an_ar_oldlib="$1"
-+    if test "$lock_old_archive_extraction" = yes; then
-+      lockfile=$f_ex_an_ar_oldlib.lock
-+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-+	func_echo "Waiting for $lockfile to be removed"
-+	sleep 2
-+      done
-+    fi
-+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
-+		   'stat=$?; rm -f "$lockfile"; exit $stat'
-+    if test "$lock_old_archive_extraction" = yes; then
-+      $opt_dry_run || rm -f "$lockfile"
-+    fi
-+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-+     :
-+    else
-+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
-+    fi
-+}
-+
-+
-+# func_extract_archives gentop oldlib ...
-+func_extract_archives ()
-+{
-+    $opt_debug
-+    my_gentop="$1"; shift
-+    my_oldlibs=${1+"$@"}
-+    my_oldobjs=""
-+    my_xlib=""
-+    my_xabs=""
-+    my_xdir=""
-+
-+    for my_xlib in $my_oldlibs; do
-+      # Extract the objects.
-+      case $my_xlib in
-+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-+	*) my_xabs=`pwd`"/$my_xlib" ;;
-+      esac
-+      func_basename "$my_xlib"
-+      my_xlib="$func_basename_result"
-+      my_xlib_u=$my_xlib
-+      while :; do
-+        case " $extracted_archives " in
-+	*" $my_xlib_u "*)
-+	  func_arith $extracted_serial + 1
-+	  extracted_serial=$func_arith_result
-+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
-+	*) break ;;
-+	esac
-+      done
-+      extracted_archives="$extracted_archives $my_xlib_u"
-+      my_xdir="$my_gentop/$my_xlib_u"
-+
-+      func_mkdir_p "$my_xdir"
-+
-+      case $host in
-+      *-darwin*)
-+	func_verbose "Extracting $my_xabs"
-+	# Do not bother doing anything if just a dry run
-+	$opt_dry_run || {
-+	  darwin_orig_dir=`pwd`
-+	  cd $my_xdir || exit $?
-+	  darwin_archive=$my_xabs
-+	  darwin_curdir=`pwd`
-+	  darwin_base_archive=`basename "$darwin_archive"`
-+	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
-+	  if test -n "$darwin_arches"; then
-+	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
-+	    darwin_arch=
-+	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
-+	    for darwin_arch in  $darwin_arches ; do
-+	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-+	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
-+	      cd "$darwin_curdir"
-+	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
-+	    done # $darwin_arches
-+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
-+	    darwin_file=
-+	    darwin_files=
-+	    for darwin_file in $darwin_filelist; do
-+	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
-+	      $LIPO -create -output "$darwin_file" $darwin_files
-+	    done # $darwin_filelist
-+	    $RM -rf unfat-$$
-+	    cd "$darwin_orig_dir"
-+	  else
-+	    cd $darwin_orig_dir
-+	    func_extract_an_archive "$my_xdir" "$my_xabs"
-+	  fi # $darwin_arches
-+	} # !$opt_dry_run
-+	;;
-+      *)
-+        func_extract_an_archive "$my_xdir" "$my_xabs"
-+	;;
-+      esac
-+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
-+    done
-+
-+    func_extract_archives_result="$my_oldobjs"
-+}
-+
-+
-+# func_emit_wrapper [arg=no]
-+#
-+# Emit a libtool wrapper script on stdout.
-+# Don't directly open a file because we may want to
-+# incorporate the script contents within a cygwin/mingw
-+# wrapper executable.  Must ONLY be called from within
-+# func_mode_link because it depends on a number of variables
-+# set therein.
-+#
-+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-+# variable will take.  If 'yes', then the emitted script
-+# will assume that the directory in which it is stored is
-+# the $objdir directory.  This is a cygwin/mingw-specific
-+# behavior.
-+func_emit_wrapper ()
-+{
-+	func_emit_wrapper_arg1=${1-no}
-+
-+	$ECHO "\
-+#! $SHELL
-+
-+# $output - temporary wrapper script for $objdir/$outputname
-+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-+#
-+# 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 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.
-+sed_quote_subst='$sed_quote_subst'
-+
-+# Be Bourne compatible
-+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
-+  emulate sh
-+  NULLCMD=:
-+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
-+  # is contrary to our usage.  Disable this feature.
-+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-+  setopt NO_GLOB_SUBST
-+else
-+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-+fi
-+BIN_SH=xpg4; export BIN_SH # for Tru64
-+DUALCASE=1; export DUALCASE # for MKS sh
-+
-+# The HP-UX ksh and POSIX shell print the target directory to stdout
-+# if CDPATH is set.
-+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-+
-+relink_command=\"$relink_command\"
-+
-+# This environment variable determines our operation mode.
-+if test \"\$libtool_install_magic\" = \"$magic\"; then
-+  # install mode needs the following variables:
-+  generated_by_libtool_version='$macro_version'
-+  notinst_deplibs='$notinst_deplibs'
-+else
-+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
-+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-+    file=\"\$0\""
-+
-+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
-+    $ECHO "\
-+
-+# A function that is used when there is no print builtin or printf.
-+func_fallback_echo ()
-+{
-+  eval 'cat <<_LTECHO_EOF
-+\$1
-+_LTECHO_EOF'
-+}
-+    ECHO=\"$qECHO\"
-+  fi
-+
-+# Very basic option parsing. These options are (a) specific to
-+# the libtool wrapper, (b) are identical between the wrapper
-+# /script/ and the wrapper /executable/ which is used only on
-+# windows platforms, and (c) all begin with the string "--lt-"
-+# (application programs are unlikely to have options which match
-+# this pattern).
-+#
-+# There are only two supported options: --lt-debug and
-+# --lt-dump-script. There is, deliberately, no --lt-help.
-+#
-+# The first argument to this parsing function should be the
-+# script's $0 value, followed by "$@".
-+lt_option_debug=
-+func_parse_lt_options ()
-+{
-+  lt_script_arg0=\$0
-+  shift
-+  for lt_opt
-+  do
-+    case \"\$lt_opt\" in
-+    --lt-debug) lt_option_debug=1 ;;
-+    --lt-dump-script)
-+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
-+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
-+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
-+        cat \"\$lt_dump_D/\$lt_dump_F\"
-+        exit 0
-+      ;;
-+    --lt-*)
-+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
-+        exit 1
-+      ;;
-+    esac
-+  done
-+
-+  # Print the debug banner immediately:
-+  if test -n \"\$lt_option_debug\"; then
-+    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
-+  fi
-+}
-+
-+# Used when --lt-debug. Prints its arguments to stdout
-+# (redirection is the responsibility of the caller)
-+func_lt_dump_args ()
-+{
-+  lt_dump_args_N=1;
-+  for lt_arg
-+  do
-+    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
-+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
-+  done
-+}
-+
-+# Core function for launching the target application
-+func_exec_program_core ()
-+{
-+"
-+  case $host in
-+  # Backslashes separate directories on plain windows
-+  *-*-mingw | *-*-os2* | *-cegcc*)
-+    $ECHO "\
-+      if test -n \"\$lt_option_debug\"; then
-+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
-+        func_lt_dump_args \${1+\"\$@\"} 1>&2
-+      fi
-+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-+"
-+    ;;
-+
-+  *)
-+    $ECHO "\
-+      if test -n \"\$lt_option_debug\"; then
-+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
-+        func_lt_dump_args \${1+\"\$@\"} 1>&2
-+      fi
-+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-+"
-+    ;;
-+  esac
-+  $ECHO "\
-+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-+      exit 1
-+}
-+
-+# A function to encapsulate launching the target application
-+# Strips options in the --lt-* namespace from \$@ and
-+# launches target application with the remaining arguments.
-+func_exec_program ()
-+{
-+  case \" \$* \" in
-+  *\\ --lt-*)
-+    for lt_wr_arg
-+    do
-+      case \$lt_wr_arg in
-+      --lt-*) ;;
-+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
-+      esac
-+      shift
-+    done ;;
-+  esac
-+  func_exec_program_core \${1+\"\$@\"}
-+}
-+
-+  # Parse options
-+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-+
-+  # Find the directory that this script lives in.
-+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
-+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-+
-+  # Follow symbolic links until we get to the real thisdir.
-+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
-+  while test -n \"\$file\"; do
-+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-+
-+    # If there was a directory component, then change thisdir.
-+    if test \"x\$destdir\" != \"x\$file\"; then
-+      case \"\$destdir\" in
-+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-+      *) thisdir=\"\$thisdir/\$destdir\" ;;
-+      esac
-+    fi
-+
-+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
-+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
-+  done
-+
-+  # Usually 'no', except on cygwin/mingw when embedded into
-+  # the cwrapper.
-+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
-+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
-+    # special case for '.'
-+    if test \"\$thisdir\" = \".\"; then
-+      thisdir=\`pwd\`
-+    fi
-+    # remove .libs from thisdir
-+    case \"\$thisdir\" in
-+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
-+    $objdir )   thisdir=. ;;
-+    esac
-+  fi
-+
-+  # Try to get the absolute directory name.
-+  absdir=\`cd \"\$thisdir\" && pwd\`
-+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-+"
-+
-+	if test "$fast_install" = yes; then
-+	  $ECHO "\
-+  program=lt-'$outputname'$exeext
-+  progdir=\"\$thisdir/$objdir\"
-+
-+  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 "\
-+
-+    # relink executable if necessary
-+    if test -n \"\$relink_command\"; then
-+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-+      else
-+	$ECHO \"\$relink_command_output\" >&2
-+	$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 "\
-+  program='$outputname'
-+  progdir=\"\$thisdir/$objdir\"
-+"
-+	fi
-+
-+	$ECHO "\
-+
-+  if test -f \"\$progdir/\$program\"; then"
-+
-+	# fixup the dll searchpath if we need to.
-+	#
-+	# Fix the DLL searchpath if we need to.  Do this before prepending
-+	# to shlibpath, because on Windows, both are PATH and uninstalled
-+	# libraries must come first.
-+	if test -n "$dllsearchpath"; then
-+	  $ECHO "\
-+    # Add the dll search path components to the executable PATH
-+    PATH=$dllsearchpath:\$PATH
-+"
-+	fi
-+
-+	# Export our shlibpath_var if we have one.
-+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-+	  $ECHO "\
-+    # Add our own library path to $shlibpath_var
-+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-+
-+    # Some systems cannot cope with colon-terminated $shlibpath_var
-+    # The second colon is a workaround for a bug in BeOS R4 sed
-+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-+
-+    export $shlibpath_var
-+"
-+	fi
-+
-+	$ECHO "\
-+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-+      # Run the actual program with our arguments.
-+      func_exec_program \${1+\"\$@\"}
-+    fi
-+  else
-+    # The program doesn't exist.
-+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
-+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
-+    exit 1
-+  fi
-+fi\
-+"
-+}
-+
-+
-+# func_emit_cwrapperexe_src
-+# emit the source code for a wrapper executable on stdout
-+# Must ONLY be called from within func_mode_link because
-+# it depends on a number of variable set therein.
-+func_emit_cwrapperexe_src ()
-+{
-+	cat <<EOF
-+
-+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-+   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-+
-+   The $output program cannot be directly executed until all the libtool
-+   libraries that it depends on are installed.
-+
-+   This wrapper executable should never be moved out of the build directory.
-+   If it is, it will not operate correctly.
-+*/
-+EOF
-+	    cat <<"EOF"
-+#ifdef _MSC_VER
-+# define _CRT_SECURE_NO_DEPRECATE 1
-+#endif
-+#include <stdio.h>
-+#include <stdlib.h>
-+#ifdef _MSC_VER
-+# include <direct.h>
-+# include <process.h>
-+# include <io.h>
-+#else
-+# include <unistd.h>
-+# include <stdint.h>
-+# ifdef __CYGWIN__
-+#  include <io.h>
-+# endif
-+#endif
-+#include <malloc.h>
-+#include <stdarg.h>
-+#include <assert.h>
-+#include <string.h>
-+#include <ctype.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <sys/stat.h>
-+
-+/* declarations of non-ANSI functions */
-+#if defined(__MINGW32__)
-+# ifdef __STRICT_ANSI__
-+int _putenv (const char *);
-+# endif
-+#elif defined(__CYGWIN__)
-+# ifdef __STRICT_ANSI__
-+char *realpath (const char *, char *);
-+int putenv (char *);
-+int setenv (const char *, const char *, int);
-+# endif
-+/* #elif defined (other platforms) ... */
-+#endif
-+
-+/* portability defines, excluding path handling macros */
-+#if defined(_MSC_VER)
-+# define setmode _setmode
-+# define stat    _stat
-+# define chmod   _chmod
-+# define getcwd  _getcwd
-+# define putenv  _putenv
-+# define S_IXUSR _S_IEXEC
-+# ifndef _INTPTR_T_DEFINED
-+#  define _INTPTR_T_DEFINED
-+#  define intptr_t int
-+# endif
-+#elif defined(__MINGW32__)
-+# define setmode _setmode
-+# define stat    _stat
-+# define chmod   _chmod
-+# define getcwd  _getcwd
-+# define putenv  _putenv
-+#elif defined(__CYGWIN__)
-+# define HAVE_SETENV
-+# define FOPEN_WB "wb"
-+/* #elif defined (other platforms) ... */
-+#endif
-+
-+#if defined(PATH_MAX)
-+# define LT_PATHMAX PATH_MAX
-+#elif defined(MAXPATHLEN)
-+# define LT_PATHMAX MAXPATHLEN
-+#else
-+# define LT_PATHMAX 1024
-+#endif
-+
-+#ifndef S_IXOTH
-+# define S_IXOTH 0
-+#endif
-+#ifndef S_IXGRP
-+# define S_IXGRP 0
-+#endif
-+
-+/* path handling portability macros */
-+#ifndef DIR_SEPARATOR
-+# define DIR_SEPARATOR '/'
-+# define PATH_SEPARATOR ':'
-+#endif
-+
-+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-+  defined (__OS2__)
-+# define HAVE_DOS_BASED_FILE_SYSTEM
-+# define FOPEN_WB "wb"
-+# ifndef DIR_SEPARATOR_2
-+#  define DIR_SEPARATOR_2 '\\'
-+# endif
-+# ifndef PATH_SEPARATOR_2
-+#  define PATH_SEPARATOR_2 ';'
-+# endif
-+#endif
-+
-+#ifndef DIR_SEPARATOR_2
-+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-+#else /* DIR_SEPARATOR_2 */
-+# define IS_DIR_SEPARATOR(ch) \
-+	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-+#endif /* DIR_SEPARATOR_2 */
-+
-+#ifndef PATH_SEPARATOR_2
-+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-+#else /* PATH_SEPARATOR_2 */
-+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-+#endif /* PATH_SEPARATOR_2 */
-+
-+#ifndef FOPEN_WB
-+# define FOPEN_WB "w"
-+#endif
-+#ifndef _O_BINARY
-+# define _O_BINARY 0
-+#endif
-+
-+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-+#define XFREE(stale) do { \
-+  if (stale) { free ((void *) stale); stale = 0; } \
-+} while (0)
-+
-+#if defined(LT_DEBUGWRAPPER)
-+static int lt_debug = 1;
-+#else
-+static int lt_debug = 0;
-+#endif
-+
-+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-+
-+void *xmalloc (size_t num);
-+char *xstrdup (const char *string);
-+const char *base_name (const char *name);
-+char *find_executable (const char *wrapper);
-+char *chase_symlinks (const char *pathspec);
-+int make_executable (const char *path);
-+int check_executable (const char *path);
-+char *strendzap (char *str, const char *pat);
-+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-+void lt_fatal (const char *file, int line, const char *message, ...);
-+static const char *nonnull (const char *s);
-+static const char *nonempty (const char *s);
-+void lt_setenv (const char *name, const char *value);
-+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-+void lt_update_exe_path (const char *name, const char *value);
-+void lt_update_lib_path (const char *name, const char *value);
-+char **prepare_spawn (char **argv);
-+void lt_dump_script (FILE *f);
-+EOF
-+
-+	    cat <<EOF
-+volatile const char * MAGIC_EXE = "$magic_exe";
-+const char * LIB_PATH_VARNAME = "$shlibpath_var";
-+EOF
-+
-+	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-+              func_to_host_path "$temp_rpath"
-+	      cat <<EOF
-+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
-+EOF
-+	    else
-+	      cat <<"EOF"
-+const char * LIB_PATH_VALUE   = "";
-+EOF
-+	    fi
-+
-+	    if test -n "$dllsearchpath"; then
-+              func_to_host_path "$dllsearchpath:"
-+	      cat <<EOF
-+const char * EXE_PATH_VARNAME = "PATH";
-+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
-+EOF
-+	    else
-+	      cat <<"EOF"
-+const char * EXE_PATH_VARNAME = "";
-+const char * EXE_PATH_VALUE   = "";
-+EOF
-+	    fi
-+
-+	    if test "$fast_install" = yes; then
-+	      cat <<EOF
-+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-+EOF
-+	    else
-+	      cat <<EOF
-+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-+EOF
-+	    fi
-+
-+
-+	    cat <<"EOF"
-+
-+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
-+
-+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
-+
-+int
-+main (int argc, char *argv[])
-+{
-+  char **newargz;
-+  int  newargc;
-+  char *tmp_pathspec;
-+  char *actual_cwrapper_path;
-+  char *actual_cwrapper_name;
-+  char *target_name;
-+  char *lt_argv_zero;
-+  intptr_t rval = 127;
-+
-+  int i;
-+
-+  program_name = (char *) xstrdup (base_name (argv[0]));
-+  newargz = XMALLOC (char *, argc + 1);
-+
-+  /* very simple arg parsing; don't want to rely on getopt
-+   * also, copy all non cwrapper options to newargz, except
-+   * argz[0], which is handled differently
-+   */
-+  newargc=0;
-+  for (i = 1; i < argc; i++)
-+    {
-+      if (strcmp (argv[i], dumpscript_opt) == 0)
-+	{
-+EOF
-+	    case "$host" in
-+	      *mingw* | *cygwin* )
-+		# make stdout use "unix" line endings
-+		echo "          setmode(1,_O_BINARY);"
-+		;;
-+	      esac
-+
-+	    cat <<"EOF"
-+	  lt_dump_script (stdout);
-+	  return 0;
-+	}
-+      if (strcmp (argv[i], debug_opt) == 0)
-+	{
-+          lt_debug = 1;
-+          continue;
-+	}
-+      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
-+        {
-+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-+             namespace, but it is not one of the ones we know about and
-+             have already dealt with, above (inluding dump-script), then
-+             report an error. Otherwise, targets might begin to believe
-+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-+             namespace. The first time any user complains about this, we'll
-+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-+             or a configure.ac-settable value.
-+           */
-+          lt_fatal (__FILE__, __LINE__,
-+		    "unrecognized %s option: '%s'",
-+                    ltwrapper_option_prefix, argv[i]);
-+        }
-+      /* otherwise ... */
-+      newargz[++newargc] = xstrdup (argv[i]);
-+    }
-+  newargz[++newargc] = NULL;
-+
-+EOF
-+	    cat <<EOF
-+  /* The GNU banner must be the first non-error debug message */
-+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-+EOF
-+	    cat <<"EOF"
-+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
-+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-+
-+  tmp_pathspec = find_executable (argv[0]);
-+  if (tmp_pathspec == NULL)
-+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
-+  lt_debugprintf (__FILE__, __LINE__,
-+                  "(main) found exe (before symlink chase) at: %s\n",
-+		  tmp_pathspec);
-+
-+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-+  lt_debugprintf (__FILE__, __LINE__,
-+                  "(main) found exe (after symlink chase) at: %s\n",
-+		  actual_cwrapper_path);
-+  XFREE (tmp_pathspec);
-+
-+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
-+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
-+
-+  /* wrapper name transforms */
-+  strendzap (actual_cwrapper_name, ".exe");
-+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
-+  XFREE (actual_cwrapper_name);
-+  actual_cwrapper_name = tmp_pathspec;
-+  tmp_pathspec = 0;
-+
-+  /* target_name transforms -- use actual target program name; might have lt- prefix */
-+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
-+  strendzap (target_name, ".exe");
-+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
-+  XFREE (target_name);
-+  target_name = tmp_pathspec;
-+  tmp_pathspec = 0;
-+
-+  lt_debugprintf (__FILE__, __LINE__,
-+		  "(main) libtool target name: %s\n",
-+		  target_name);
-+EOF
-+
-+	    cat <<EOF
-+  newargz[0] =
-+    XMALLOC (char, (strlen (actual_cwrapper_path) +
-+		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
-+  strcpy (newargz[0], actual_cwrapper_path);
-+  strcat (newargz[0], "$objdir");
-+  strcat (newargz[0], "/");
-+EOF
-+
-+	    cat <<"EOF"
-+  /* stop here, and copy so we don't have to do this twice */
-+  tmp_pathspec = xstrdup (newargz[0]);
-+
-+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
-+  strcat (newargz[0], actual_cwrapper_name);
-+
-+  /* DO want the lt- prefix here if it exists, so use target_name */
-+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
-+  XFREE (tmp_pathspec);
-+  tmp_pathspec = NULL;
-+EOF
-+
-+	    case $host_os in
-+	      mingw*)
-+	    cat <<"EOF"
-+  {
-+    char* p;
-+    while ((p = strchr (newargz[0], '\\')) != NULL)
-+      {
-+	*p = '/';
-+      }
-+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
-+      {
-+	*p = '/';
-+      }
-+  }
-+EOF
-+	    ;;
-+	    esac
-+
-+	    cat <<"EOF"
-+  XFREE (target_name);
-+  XFREE (actual_cwrapper_path);
-+  XFREE (actual_cwrapper_name);
-+
-+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
-+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
-+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
-+     because on Windows, both *_VARNAMEs are PATH but uninstalled
-+     libraries must come first. */
-+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
-+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-+
-+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
-+		  nonnull (lt_argv_zero));
-+  for (i = 0; i < newargc; i++)
-+    {
-+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
-+		      i, nonnull (newargz[i]));
-+    }
-+
-+EOF
-+
-+	    case $host_os in
-+	      mingw*)
-+		cat <<"EOF"
-+  /* execv doesn't actually work on mingw as expected on unix */
-+  newargz = prepare_spawn (newargz);
-+  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
-+  if (rval == -1)
-+    {
-+      /* failed to start process */
-+      lt_debugprintf (__FILE__, __LINE__,
-+		      "(main) failed to launch target \"%s\": %s\n",
-+		      lt_argv_zero, nonnull (strerror (errno)));
-+      return 127;
-+    }
-+  return rval;
-+EOF
-+		;;
-+	      *)
-+		cat <<"EOF"
-+  execv (lt_argv_zero, newargz);
-+  return rval; /* =127, but avoids unused variable warning */
-+EOF
-+		;;
-+	    esac
-+
-+	    cat <<"EOF"
-+}
-+
-+void *
-+xmalloc (size_t num)
-+{
-+  void *p = (void *) malloc (num);
-+  if (!p)
-+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
-+
-+  return p;
-+}
-+
-+char *
-+xstrdup (const char *string)
-+{
-+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
-+			  string) : NULL;
-+}
-+
-+const char *
-+base_name (const char *name)
-+{
-+  const char *base;
-+
-+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-+  /* Skip over the disk name in MSDOS pathnames. */
-+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
-+    name += 2;
-+#endif
-+
-+  for (base = name; *name; name++)
-+    if (IS_DIR_SEPARATOR (*name))
-+      base = name + 1;
-+  return base;
-+}
-+
-+int
-+check_executable (const char *path)
-+{
-+  struct stat st;
-+
-+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
-+                  nonempty (path));
-+  if ((!path) || (!*path))
-+    return 0;
-+
-+  if ((stat (path, &st) >= 0)
-+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
-+    return 1;
-+  else
-+    return 0;
-+}
-+
-+int
-+make_executable (const char *path)
-+{
-+  int rval = 0;
-+  struct stat st;
-+
-+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
-+                  nonempty (path));
-+  if ((!path) || (!*path))
-+    return 0;
-+
-+  if (stat (path, &st) >= 0)
-+    {
-+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
-+    }
-+  return rval;
-+}
-+
-+/* Searches for the full path of the wrapper.  Returns
-+   newly allocated full path name if found, NULL otherwise
-+   Does not chase symlinks, even on platforms that support them.
-+*/
-+char *
-+find_executable (const char *wrapper)
-+{
-+  int has_slash = 0;
-+  const char *p;
-+  const char *p_next;
-+  /* static buffer for getcwd */
-+  char tmp[LT_PATHMAX + 1];
-+  int tmp_len;
-+  char *concat_name;
-+
-+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
-+                  nonempty (wrapper));
-+
-+  if ((wrapper == NULL) || (*wrapper == '\0'))
-+    return NULL;
-+
-+  /* Absolute path? */
-+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
-+    {
-+      concat_name = xstrdup (wrapper);
-+      if (check_executable (concat_name))
-+	return concat_name;
-+      XFREE (concat_name);
-+    }
-+  else
-+    {
-+#endif
-+      if (IS_DIR_SEPARATOR (wrapper[0]))
-+	{
-+	  concat_name = xstrdup (wrapper);
-+	  if (check_executable (concat_name))
-+	    return concat_name;
-+	  XFREE (concat_name);
-+	}
-+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-+    }
-+#endif
-+
-+  for (p = wrapper; *p; p++)
-+    if (*p == '/')
-+      {
-+	has_slash = 1;
-+	break;
-+      }
-+  if (!has_slash)
-+    {
-+      /* no slashes; search PATH */
-+      const char *path = getenv ("PATH");
-+      if (path != NULL)
-+	{
-+	  for (p = path; *p; p = p_next)
-+	    {
-+	      const char *q;
-+	      size_t p_len;
-+	      for (q = p; *q; q++)
-+		if (IS_PATH_SEPARATOR (*q))
-+		  break;
-+	      p_len = q - p;
-+	      p_next = (*q == '\0' ? q : q + 1);
-+	      if (p_len == 0)
-+		{
-+		  /* empty path: current directory */
-+		  if (getcwd (tmp, LT_PATHMAX) == NULL)
-+		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-+                              nonnull (strerror (errno)));
-+		  tmp_len = strlen (tmp);
-+		  concat_name =
-+		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-+		  memcpy (concat_name, tmp, tmp_len);
-+		  concat_name[tmp_len] = '/';
-+		  strcpy (concat_name + tmp_len + 1, wrapper);
-+		}
-+	      else
-+		{
-+		  concat_name =
-+		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
-+		  memcpy (concat_name, p, p_len);
-+		  concat_name[p_len] = '/';
-+		  strcpy (concat_name + p_len + 1, wrapper);
-+		}
-+	      if (check_executable (concat_name))
-+		return concat_name;
-+	      XFREE (concat_name);
-+	    }
-+	}
-+      /* not found in PATH; assume curdir */
-+    }
-+  /* Relative path | not found in path: prepend cwd */
-+  if (getcwd (tmp, LT_PATHMAX) == NULL)
-+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-+              nonnull (strerror (errno)));
-+  tmp_len = strlen (tmp);
-+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-+  memcpy (concat_name, tmp, tmp_len);
-+  concat_name[tmp_len] = '/';
-+  strcpy (concat_name + tmp_len + 1, wrapper);
-+
-+  if (check_executable (concat_name))
-+    return concat_name;
-+  XFREE (concat_name);
-+  return NULL;
-+}
-+
-+char *
-+chase_symlinks (const char *pathspec)
-+{
-+#ifndef S_ISLNK
-+  return xstrdup (pathspec);
-+#else
-+  char buf[LT_PATHMAX];
-+  struct stat s;
-+  char *tmp_pathspec = xstrdup (pathspec);
-+  char *p;
-+  int has_symlinks = 0;
-+  while (strlen (tmp_pathspec) && !has_symlinks)
-+    {
-+      lt_debugprintf (__FILE__, __LINE__,
-+		      "checking path component for symlinks: %s\n",
-+		      tmp_pathspec);
-+      if (lstat (tmp_pathspec, &s) == 0)
-+	{
-+	  if (S_ISLNK (s.st_mode) != 0)
-+	    {
-+	      has_symlinks = 1;
-+	      break;
-+	    }
-+
-+	  /* search backwards for last DIR_SEPARATOR */
-+	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
-+	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
-+	    p--;
-+	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
-+	    {
-+	      /* no more DIR_SEPARATORS left */
-+	      break;
-+	    }
-+	  *p = '\0';
-+	}
-+      else
-+	{
-+	  lt_fatal (__FILE__, __LINE__,
-+		    "error accessing file \"%s\": %s",
-+		    tmp_pathspec, nonnull (strerror (errno)));
-+	}
-+    }
-+  XFREE (tmp_pathspec);
-+
-+  if (!has_symlinks)
-+    {
-+      return xstrdup (pathspec);
-+    }
-+
-+  tmp_pathspec = realpath (pathspec, buf);
-+  if (tmp_pathspec == 0)
-+    {
-+      lt_fatal (__FILE__, __LINE__,
-+		"could not follow symlinks for %s", pathspec);
-+    }
-+  return xstrdup (tmp_pathspec);
-+#endif
-+}
-+
-+char *
-+strendzap (char *str, const char *pat)
-+{
-+  size_t len, patlen;
-+
-+  assert (str != NULL);
-+  assert (pat != NULL);
-+
-+  len = strlen (str);
-+  patlen = strlen (pat);
-+
-+  if (patlen <= len)
-+    {
-+      str += len - patlen;
-+      if (strcmp (str, pat) == 0)
-+	*str = '\0';
-+    }
-+  return str;
-+}
-+
-+void
-+lt_debugprintf (const char *file, int line, const char *fmt, ...)
-+{
-+  va_list args;
-+  if (lt_debug)
-+    {
-+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
-+      va_start (args, fmt);
-+      (void) vfprintf (stderr, fmt, args);
-+      va_end (args);
-+    }
-+}
-+
-+static void
-+lt_error_core (int exit_status, const char *file,
-+	       int line, const char *mode,
-+	       const char *message, va_list ap)
-+{
-+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
-+  vfprintf (stderr, message, ap);
-+  fprintf (stderr, ".\n");
-+
-+  if (exit_status >= 0)
-+    exit (exit_status);
-+}
-+
-+void
-+lt_fatal (const char *file, int line, const char *message, ...)
-+{
-+  va_list ap;
-+  va_start (ap, message);
-+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
-+  va_end (ap);
-+}
-+
-+static const char *
-+nonnull (const char *s)
-+{
-+  return s ? s : "(null)";
-+}
-+
-+static const char *
-+nonempty (const char *s)
-+{
-+  return (s && !*s) ? "(empty)" : nonnull (s);
-+}
-+
-+void
-+lt_setenv (const char *name, const char *value)
-+{
-+  lt_debugprintf (__FILE__, __LINE__,
-+		  "(lt_setenv) setting '%s' to '%s'\n",
-+                  nonnull (name), nonnull (value));
-+  {
-+#ifdef HAVE_SETENV
-+    /* always make a copy, for consistency with !HAVE_SETENV */
-+    char *str = xstrdup (value);
-+    setenv (name, str, 1);
-+#else
-+    int len = strlen (name) + 1 + strlen (value) + 1;
-+    char *str = XMALLOC (char, len);
-+    sprintf (str, "%s=%s", name, value);
-+    if (putenv (str) != EXIT_SUCCESS)
-+      {
-+        XFREE (str);
-+      }
-+#endif
-+  }
-+}
-+
-+char *
-+lt_extend_str (const char *orig_value, const char *add, int to_end)
-+{
-+  char *new_value;
-+  if (orig_value && *orig_value)
-+    {
-+      int orig_value_len = strlen (orig_value);
-+      int add_len = strlen (add);
-+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
-+      if (to_end)
-+        {
-+          strcpy (new_value, orig_value);
-+          strcpy (new_value + orig_value_len, add);
-+        }
-+      else
-+        {
-+          strcpy (new_value, add);
-+          strcpy (new_value + add_len, orig_value);
-+        }
-+    }
-+  else
-+    {
-+      new_value = xstrdup (add);
-+    }
-+  return new_value;
-+}
-+
-+void
-+lt_update_exe_path (const char *name, const char *value)
-+{
-+  lt_debugprintf (__FILE__, __LINE__,
-+		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-+                  nonnull (name), nonnull (value));
-+
-+  if (name && *name && value && *value)
-+    {
-+      char *new_value = lt_extend_str (getenv (name), value, 0);
-+      /* some systems can't cope with a ':'-terminated path #' */
-+      int len = strlen (new_value);
-+      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
-+        {
-+          new_value[len-1] = '\0';
-+        }
-+      lt_setenv (name, new_value);
-+      XFREE (new_value);
-+    }
-+}
-+
-+void
-+lt_update_lib_path (const char *name, const char *value)
-+{
-+  lt_debugprintf (__FILE__, __LINE__,
-+		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-+                  nonnull (name), nonnull (value));
-+
-+  if (name && *name && value && *value)
-+    {
-+      char *new_value = lt_extend_str (getenv (name), value, 0);
-+      lt_setenv (name, new_value);
-+      XFREE (new_value);
-+    }
-+}
-+
-+EOF
-+	    case $host_os in
-+	      mingw*)
-+		cat <<"EOF"
-+
-+/* Prepares an argument vector before calling spawn().
-+   Note that spawn() does not by itself call the command interpreter
-+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
-+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-+         GetVersionEx(&v);
-+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
-+      }) ? "cmd.exe" : "command.com").
-+   Instead it simply concatenates the arguments, separated by ' ', and calls
-+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
-+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
-+   special way:
-+   - Space and tab are interpreted as delimiters. They are not treated as
-+     delimiters if they are surrounded by double quotes: "...".
-+   - Unescaped double quotes are removed from the input. Their only effect is
-+     that within double quotes, space and tab are treated like normal
-+     characters.
-+   - Backslashes not followed by double quotes are not special.
-+   - But 2*n+1 backslashes followed by a double quote become
-+     n backslashes followed by a double quote (n >= 0):
-+       \" -> "
-+       \\\" -> \"
-+       \\\\\" -> \\"
-+ */
-+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-+char **
-+prepare_spawn (char **argv)
-+{
-+  size_t argc;
-+  char **new_argv;
-+  size_t i;
-+
-+  /* Count number of arguments.  */
-+  for (argc = 0; argv[argc] != NULL; argc++)
-+    ;
-+
-+  /* Allocate new argument vector.  */
-+  new_argv = XMALLOC (char *, argc + 1);
-+
-+  /* Put quoted arguments into the new argument vector.  */
-+  for (i = 0; i < argc; i++)
-+    {
-+      const char *string = argv[i];
-+
-+      if (string[0] == '\0')
-+	new_argv[i] = xstrdup ("\"\"");
-+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
-+	{
-+	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
-+	  size_t length;
-+	  unsigned int backslashes;
-+	  const char *s;
-+	  char *quoted_string;
-+	  char *p;
-+
-+	  length = 0;
-+	  backslashes = 0;
-+	  if (quote_around)
-+	    length++;
-+	  for (s = string; *s != '\0'; s++)
-+	    {
-+	      char c = *s;
-+	      if (c == '"')
-+		length += backslashes + 1;
-+	      length++;
-+	      if (c == '\\')
-+		backslashes++;
-+	      else
-+		backslashes = 0;
-+	    }
-+	  if (quote_around)
-+	    length += backslashes + 1;
-+
-+	  quoted_string = XMALLOC (char, length + 1);
-+
-+	  p = quoted_string;
-+	  backslashes = 0;
-+	  if (quote_around)
-+	    *p++ = '"';
-+	  for (s = string; *s != '\0'; s++)
-+	    {
-+	      char c = *s;
-+	      if (c == '"')
-+		{
-+		  unsigned int j;
-+		  for (j = backslashes + 1; j > 0; j--)
-+		    *p++ = '\\';
-+		}
-+	      *p++ = c;
-+	      if (c == '\\')
-+		backslashes++;
-+	      else
-+		backslashes = 0;
-+	    }
-+	  if (quote_around)
-+	    {
-+	      unsigned int j;
-+	      for (j = backslashes; j > 0; j--)
-+		*p++ = '\\';
-+	      *p++ = '"';
-+	    }
-+	  *p = '\0';
-+
-+	  new_argv[i] = quoted_string;
-+	}
-+      else
-+	new_argv[i] = (char *) string;
-+    }
-+  new_argv[argc] = NULL;
-+
-+  return new_argv;
-+}
-+EOF
-+		;;
-+	    esac
-+
-+            cat <<"EOF"
-+void lt_dump_script (FILE* f)
-+{
-+EOF
-+	    func_emit_wrapper yes |
-+	      $SED -n -e '
-+s/^\(.\{79\}\)\(..*\)/\1\
-+\2/
-+h
-+s/\([\\"]\)/\\\1/g
-+s/$/\\n/
-+s/\([^\n]*\).*/  fputs ("\1", f);/p
-+g
-+D'
-+            cat <<"EOF"
-+}
-+EOF
-+}
-+# end: func_emit_cwrapperexe_src
-+
-+# func_win32_import_lib_p ARG
-+# True if ARG is an import lib, as indicated by $file_magic_cmd
-+func_win32_import_lib_p ()
-+{
-+    $opt_debug
-+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
-+    *import*) : ;;
-+    *) false ;;
-+    esac
-+}
-+
-+# func_mode_link arg...
-+func_mode_link ()
-+{
-+    $opt_debug
-+    case $host in
-+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-+      # 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 invocation.
-+      # 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
-+      ;;
-+    *)
-+      allow_undefined=yes
-+      ;;
-+    esac
-+    libtool_args=$nonopt
-+    base_compile="$nonopt $@"
-+    compile_command=$nonopt
-+    finalize_command=$nonopt
-+
-+    compile_rpath=
-+    finalize_rpath=
-+    compile_shlibpath=
-+    finalize_shlibpath=
-+    convenience=
-+    old_convenience=
-+    deplibs=
-+    old_deplibs=
-+    compiler_flags=
-+    linker_flags=
-+    dllsearchpath=
-+    lib_search_path=`pwd`
-+    inst_prefix_dir=
-+    new_inherited_linker_flags=
-+
-+    avoid_version=no
-+    bindir=
-+    dlfiles=
-+    dlprefiles=
-+    dlself=no
-+    export_dynamic=no
-+    export_symbols=
-+    export_symbols_regex=
-+    generated=
-+    libobjs=
-+    ltlibs=
-+    module=no
-+    no_install=no
-+    objs=
-+    non_pic_objects=
-+    precious_files_regex=
-+    prefer_static_libs=no
-+    preload=no
-+    prev=
-+    prevarg=
-+    release=
-+    rpath=
-+    xrpath=
-+    perm_rpath=
-+    temp_rpath=
-+    thread_safe=no
-+    vinfo=
-+    vinfo_number=no
-+    weak_libs=
-+    single_module="${wl}-single_module"
-+    func_infer_tag $base_compile
-+
-+    # We need to know -static, to get the right output filenames.
-+    for arg
-+    do
-+      case $arg in
-+      -shared)
-+	test "$build_libtool_libs" != yes && \
-+	  func_fatal_configuration "can not build a shared library"
-+	build_old_libs=no
-+	break
-+	;;
-+      -all-static | -static | -static-libtool-libs)
-+	case $arg in
-+	-all-static)
-+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-+	    func_warning "complete static linking is impossible in this configuration"
-+	  fi
-+	  if test -n "$link_static_flag"; then
-+	    dlopen_self=$dlopen_self_static
-+	  fi
-+	  prefer_static_libs=yes
-+	  ;;
-+	-static)
-+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-+	    dlopen_self=$dlopen_self_static
-+	  fi
-+	  prefer_static_libs=built
-+	  ;;
-+	-static-libtool-libs)
-+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-+	    dlopen_self=$dlopen_self_static
-+	  fi
-+	  prefer_static_libs=yes
-+	  ;;
-+	esac
-+	build_libtool_libs=no
-+	build_old_libs=yes
-+	break
-+	;;
-+      esac
-+    done
-+
-+    # See if our shared archives depend on static archives.
-+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-+
-+    # Go through the arguments, transforming them on the way.
-+    while test "$#" -gt 0; do
-+      arg="$1"
-+      shift
-+      func_quote_for_eval "$arg"
-+      qarg=$func_quote_for_eval_unquoted_result
-+      func_append libtool_args " $func_quote_for_eval_result"
-+
-+      # If the previous option needs an argument, assign it.
-+      if test -n "$prev"; then
-+	case $prev in
-+	output)
-+	  func_append compile_command " @OUTPUT@"
-+	  func_append finalize_command " @OUTPUT@"
-+	  ;;
-+	esac
-+
-+	case $prev in
-+	bindir)
-+	  bindir="$arg"
-+	  prev=
-+	  continue
-+	  ;;
-+	dlfiles|dlprefiles)
-+	  if test "$preload" = no; then
-+	    # Add the symbol object into the linking commands.
-+	    func_append compile_command " @SYMFILE@"
-+	    func_append finalize_command " @SYMFILE@"
-+	    preload=yes
-+	  fi
-+	  case $arg in
-+	  *.la | *.lo) ;;  # We handle these cases below.
-+	  force)
-+	    if test "$dlself" = no; then
-+	      dlself=needless
-+	      export_dynamic=yes
-+	    fi
-+	    prev=
-+	    continue
-+	    ;;
-+	  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
-+	      func_append dlfiles " $arg"
-+	    else
-+	      func_append dlprefiles " $arg"
-+	    fi
-+	    prev=
-+	    continue
-+	    ;;
-+	  esac
-+	  ;;
-+	expsyms)
-+	  export_symbols="$arg"
-+	  test -f "$arg" \
-+	    || func_fatal_error "symbol file \`$arg' does not exist"
-+	  prev=
-+	  continue
-+	  ;;
-+	expsyms_regex)
-+	  export_symbols_regex="$arg"
-+	  prev=
-+	  continue
-+	  ;;
-+	framework)
-+	  case $host in
-+	    *-*-darwin*)
-+	      case "$deplibs " in
-+		*" $qarg.ltframework "*) ;;
-+		*) func_append deplibs " $qarg.ltframework" # this is fixed later
-+		   ;;
-+	      esac
-+	      ;;
-+	  esac
-+	  prev=
-+	  continue
-+	  ;;
-+	inst_prefix)
-+	  inst_prefix_dir="$arg"
-+	  prev=
-+	  continue
-+	  ;;
-+	objectlist)
-+	  if test -f "$arg"; then
-+	    save_arg=$arg
-+	    moreargs=
-+	    for fil in `cat "$save_arg"`
-+	    do
-+#	      func_append moreargs " $fil"
-+	      arg=$fil
-+	      # A libtool-controlled object.
-+
-+	      # Check to see that this really is a libtool object.
-+	      if func_lalib_unsafe_p "$arg"; then
-+		pic_object=
-+		non_pic_object=
-+
-+		# Read the .lo file
-+		func_source "$arg"
-+
-+		if test -z "$pic_object" ||
-+		   test -z "$non_pic_object" ||
-+		   test "$pic_object" = none &&
-+		   test "$non_pic_object" = none; then
-+		  func_fatal_error "cannot find name of object for \`$arg'"
-+		fi
-+
-+		# Extract subdirectory from the argument.
-+		func_dirname "$arg" "/" ""
-+		xdir="$func_dirname_result"
-+
-+		if test "$pic_object" != none; then
-+		  # Prepend the subdirectory the object is found in.
-+		  pic_object="$xdir$pic_object"
-+
-+		  if test "$prev" = dlfiles; then
-+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-+		      func_append dlfiles " $pic_object"
-+		      prev=
-+		      continue
-+		    else
-+		      # If libtool objects are unsupported, then we need to preload.
-+		      prev=dlprefiles
-+		    fi
-+		  fi
-+
-+		  # CHECK ME:  I think I busted this.  -Ossama
-+		  if test "$prev" = dlprefiles; then
-+		    # Preload the old-style object.
-+		    func_append dlprefiles " $pic_object"
-+		    prev=
-+		  fi
-+
-+		  # A PIC object.
-+		  func_append libobjs " $pic_object"
-+		  arg="$pic_object"
-+		fi
-+
-+		# Non-PIC object.
-+		if test "$non_pic_object" != none; then
-+		  # Prepend the subdirectory the object is found in.
-+		  non_pic_object="$xdir$non_pic_object"
-+
-+		  # A standard non-PIC object
-+		  func_append non_pic_objects " $non_pic_object"
-+		  if test -z "$pic_object" || test "$pic_object" = none ; then
-+		    arg="$non_pic_object"
-+		  fi
-+		else
-+		  # If the PIC object exists, use it instead.
-+		  # $xdir was prepended to $pic_object above.
-+		  non_pic_object="$pic_object"
-+		  func_append non_pic_objects " $non_pic_object"
-+		fi
-+	      else
-+		# Only an error if not doing a dry-run.
-+		if $opt_dry_run; then
-+		  # Extract subdirectory from the argument.
-+		  func_dirname "$arg" "/" ""
-+		  xdir="$func_dirname_result"
-+
-+		  func_lo2o "$arg"
-+		  pic_object=$xdir$objdir/$func_lo2o_result
-+		  non_pic_object=$xdir$func_lo2o_result
-+		  func_append libobjs " $pic_object"
-+		  func_append non_pic_objects " $non_pic_object"
-+	        else
-+		  func_fatal_error "\`$arg' is not a valid libtool object"
-+		fi
-+	      fi
-+	    done
-+	  else
-+	    func_fatal_error "link input file \`$arg' does not exist"
-+	  fi
-+	  arg=$save_arg
-+	  prev=
-+	  continue
-+	  ;;
-+	precious_regex)
-+	  precious_files_regex="$arg"
-+	  prev=
-+	  continue
-+	  ;;
-+	release)
-+	  release="-$arg"
-+	  prev=
-+	  continue
-+	  ;;
-+	rpath | xrpath)
-+	  # We need an absolute path.
-+	  case $arg in
-+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-+	  *)
-+	    func_fatal_error "only absolute run-paths are allowed"
-+	    ;;
-+	  esac
-+	  if test "$prev" = rpath; then
-+	    case "$rpath " in
-+	    *" $arg "*) ;;
-+	    *) func_append rpath " $arg" ;;
-+	    esac
-+	  else
-+	    case "$xrpath " in
-+	    *" $arg "*) ;;
-+	    *) func_append xrpath " $arg" ;;
-+	    esac
-+	  fi
-+	  prev=
-+	  continue
-+	  ;;
-+	shrext)
-+	  shrext_cmds="$arg"
-+	  prev=
-+	  continue
-+	  ;;
-+	weak)
-+	  func_append weak_libs " $arg"
-+	  prev=
-+	  continue
-+	  ;;
-+	xcclinker)
-+	  func_append linker_flags " $qarg"
-+	  func_append compiler_flags " $qarg"
-+	  prev=
-+	  func_append compile_command " $qarg"
-+	  func_append finalize_command " $qarg"
-+	  continue
-+	  ;;
-+	xcompiler)
-+	  func_append compiler_flags " $qarg"
-+	  prev=
-+	  func_append compile_command " $qarg"
-+	  func_append finalize_command " $qarg"
-+	  continue
-+	  ;;
-+	xlinker)
-+	  func_append linker_flags " $qarg"
-+	  func_append compiler_flags " $wl$qarg"
-+	  prev=
-+	  func_append compile_command " $wl$qarg"
-+	  func_append finalize_command " $wl$qarg"
-+	  continue
-+	  ;;
-+	*)
-+	  eval "$prev=\"\$arg\""
-+	  prev=
-+	  continue
-+	  ;;
-+	esac
-+      fi # test -n "$prev"
-+
-+      prevarg="$arg"
-+
-+      case $arg in
-+      -all-static)
-+	if test -n "$link_static_flag"; then
-+	  # See comment for -static flag below, for more details.
-+	  func_append compile_command " $link_static_flag"
-+	  func_append finalize_command " $link_static_flag"
-+	fi
-+	continue
-+	;;
-+
-+      -allow-undefined)
-+	# FIXME: remove this flag sometime in the future.
-+	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
-+	;;
-+
-+      -avoid-version)
-+	avoid_version=yes
-+	continue
-+	;;
-+
-+      -bindir)
-+	prev=bindir
-+	continue
-+	;;
-+
-+      -dlopen)
-+	prev=dlfiles
-+	continue
-+	;;
-+
-+      -dlpreopen)
-+	prev=dlprefiles
-+	continue
-+	;;
-+
-+      -export-dynamic)
-+	export_dynamic=yes
-+	continue
-+	;;
-+
-+      -export-symbols | -export-symbols-regex)
-+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-+	  func_fatal_error "more than one -exported-symbols argument is not allowed"
-+	fi
-+	if test "X$arg" = "X-export-symbols"; then
-+	  prev=expsyms
-+	else
-+	  prev=expsyms_regex
-+	fi
-+	continue
-+	;;
-+
-+      -framework)
-+	prev=framework
-+	continue
-+	;;
-+
-+      -inst-prefix-dir)
-+	prev=inst_prefix
-+	continue
-+	;;
-+
-+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-+      # so, if we see these flags be careful not to treat them like -L
-+      -L[A-Z][A-Z]*:*)
-+	case $with_gcc/$host in
-+	no/*-*-irix* | /*-*-irix*)
-+	  func_append compile_command " $arg"
-+	  func_append finalize_command " $arg"
-+	  ;;
-+	esac
-+	continue
-+	;;
-+
-+      -L*)
-+	func_stripname "-L" '' "$arg"
-+	if test -z "$func_stripname_result"; then
-+	  if test "$#" -gt 0; then
-+	    func_fatal_error "require no space between \`-L' and \`$1'"
-+	  else
-+	    func_fatal_error "need path for \`-L' option"
-+	  fi
-+	fi
-+	func_resolve_sysroot "$func_stripname_result"
-+	dir=$func_resolve_sysroot_result
-+	# We need an absolute path.
-+	case $dir in
-+	[\\/]* | [A-Za-z]:[\\/]*) ;;
-+	*)
-+	  absdir=`cd "$dir" && pwd`
-+	  test -z "$absdir" && \
-+	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
-+	  dir="$absdir"
-+	  ;;
-+	esac
-+	case "$deplibs " in
-+	*" -L$dir "* | *" $arg "*)
-+	  # Will only happen for absolute or sysroot arguments
-+	  ;;
-+	*)
-+	  # Preserve sysroot, but never include relative directories
-+	  case $dir in
-+	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
-+	    *) func_append deplibs " -L$dir" ;;
-+	  esac
-+	  func_append lib_search_path " $dir"
-+	  ;;
-+	esac
-+	case $host in
-+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-+	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
-+	  case :$dllsearchpath: in
-+	  *":$dir:"*) ;;
-+	  ::) dllsearchpath=$dir;;
-+	  *) func_append dllsearchpath ":$dir";;
-+	  esac
-+	  case :$dllsearchpath: in
-+	  *":$testbindir:"*) ;;
-+	  ::) dllsearchpath=$testbindir;;
-+	  *) func_append dllsearchpath ":$testbindir";;
-+	  esac
-+	  ;;
-+	esac
-+	continue
-+	;;
-+
-+      -l*)
-+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-+	  case $host in
-+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
-+	    # These systems don't actually have a C or math library (as such)
-+	    continue
-+	    ;;
-+	  *-*-os2*)
-+	    # These systems don't actually have a C library (as such)
-+	    test "X$arg" = "X-lc" && continue
-+	    ;;
-+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-+	    # Do not include libc due to us having libc/libc_r.
-+	    test "X$arg" = "X-lc" && continue
-+	    ;;
-+	  *-*-rhapsody* | *-*-darwin1.[012])
-+	    # Rhapsody C and math libraries are in the System framework
-+	    func_append deplibs " System.ltframework"
-+	    continue
-+	    ;;
-+	  *-*-sco3.2v5* | *-*-sco5v6*)
-+	    # Causes problems with __ctype
-+	    test "X$arg" = "X-lc" && continue
-+	    ;;
-+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-+	    # Compiler inserts libc in the correct place for threads to work
-+	    test "X$arg" = "X-lc" && continue
-+	    ;;
-+	  esac
-+	elif test "X$arg" = "X-lc_r"; then
-+	 case $host in
-+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-+	   # Do not include libc_r directly, use -pthread flag.
-+	   continue
-+	   ;;
-+	 esac
-+	fi
-+	func_append deplibs " $arg"
-+	continue
-+	;;
-+
-+      -module)
-+	module=yes
-+	continue
-+	;;
-+
-+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
-+      # classes, name mangling, and exception handling.
-+      # Darwin uses the -arch flag to determine output architecture.
-+      -model|-arch|-isysroot|--sysroot)
-+	func_append compiler_flags " $arg"
-+	func_append compile_command " $arg"
-+	func_append finalize_command " $arg"
-+	prev=xcompiler
-+	continue
-+	;;
-+
-+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
-+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-+	func_append compiler_flags " $arg"
-+	func_append compile_command " $arg"
-+	func_append finalize_command " $arg"
-+	case "$new_inherited_linker_flags " in
-+	    *" $arg "*) ;;
-+	    * ) func_append new_inherited_linker_flags " $arg" ;;
-+	esac
-+	continue
-+	;;
-+
-+      -multi_module)
-+	single_module="${wl}-multi_module"
-+	continue
-+	;;
-+
-+      -no-fast-install)
-+	fast_install=no
-+	continue
-+	;;
-+
-+      -no-install)
-+	case $host in
-+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
-+	  # The PATH hackery in wrapper scripts is required on Windows
-+	  # and Darwin in order for the loader to find any dlls it needs.
-+	  func_warning "\`-no-install' is ignored for $host"
-+	  func_warning "assuming \`-no-fast-install' instead"
-+	  fast_install=no
-+	  ;;
-+	*) no_install=yes ;;
-+	esac
-+	continue
-+	;;
-+
-+      -no-undefined)
-+	allow_undefined=no
-+	continue
-+	;;
-+
-+      -objectlist)
-+	prev=objectlist
-+	continue
-+	;;
-+
-+      -o) prev=output ;;
-+
-+      -precious-files-regex)
-+	prev=precious_regex
-+	continue
-+	;;
-+
-+      -release)
-+	prev=release
-+	continue
-+	;;
-+
-+      -rpath)
-+	prev=rpath
-+	continue
-+	;;
-+
-+      -R)
-+	prev=xrpath
-+	continue
-+	;;
-+
-+      -R*)
-+	func_stripname '-R' '' "$arg"
-+	dir=$func_stripname_result
-+	# We need an absolute path.
-+	case $dir in
-+	[\\/]* | [A-Za-z]:[\\/]*) ;;
-+	=*)
-+	  func_stripname '=' '' "$dir"
-+	  dir=$lt_sysroot$func_stripname_result
-+	  ;;
-+	*)
-+	  func_fatal_error "only absolute run-paths are allowed"
-+	  ;;
-+	esac
-+	case "$xrpath " in
-+	*" $dir "*) ;;
-+	*) func_append xrpath " $dir" ;;
-+	esac
-+	continue
-+	;;
-+
-+      -shared)
-+	# The effects of -shared are defined in a previous loop.
-+	continue
-+	;;
-+
-+      -shrext)
-+	prev=shrext
-+	continue
-+	;;
-+
-+      -static | -static-libtool-libs)
-+	# The effects of -static are defined in a previous loop.
-+	# We used to do the same as -all-static on platforms that
-+	# didn't have a PIC flag, but the assumption that the effects
-+	# would be equivalent was wrong.  It would break on at least
-+	# Digital Unix and AIX.
-+	continue
-+	;;
-+
-+      -thread-safe)
-+	thread_safe=yes
-+	continue
-+	;;
-+
-+      -version-info)
-+	prev=vinfo
-+	continue
-+	;;
-+
-+      -version-number)
-+	prev=vinfo
-+	vinfo_number=yes
-+	continue
-+	;;
-+
-+      -weak)
-+        prev=weak
-+	continue
-+	;;
-+
-+      -Wc,*)
-+	func_stripname '-Wc,' '' "$arg"
-+	args=$func_stripname_result
-+	arg=
-+	save_ifs="$IFS"; IFS=','
-+	for flag in $args; do
-+	  IFS="$save_ifs"
-+          func_quote_for_eval "$flag"
-+	  func_append arg " $func_quote_for_eval_result"
-+	  func_append compiler_flags " $func_quote_for_eval_result"
-+	done
-+	IFS="$save_ifs"
-+	func_stripname ' ' '' "$arg"
-+	arg=$func_stripname_result
-+	;;
-+
-+      -Wl,*)
-+	func_stripname '-Wl,' '' "$arg"
-+	args=$func_stripname_result
-+	arg=
-+	save_ifs="$IFS"; IFS=','
-+	for flag in $args; do
-+	  IFS="$save_ifs"
-+          func_quote_for_eval "$flag"
-+	  func_append arg " $wl$func_quote_for_eval_result"
-+	  func_append compiler_flags " $wl$func_quote_for_eval_result"
-+	  func_append linker_flags " $func_quote_for_eval_result"
-+	done
-+	IFS="$save_ifs"
-+	func_stripname ' ' '' "$arg"
-+	arg=$func_stripname_result
-+	;;
-+
-+      -Xcompiler)
-+	prev=xcompiler
-+	continue
-+	;;
-+
-+      -Xlinker)
-+	prev=xlinker
-+	continue
-+	;;
-+
-+      -XCClinker)
-+	prev=xcclinker
-+	continue
-+	;;
-+
-+      # -msg_* for osf cc
-+      -msg_*)
-+	func_quote_for_eval "$arg"
-+	arg="$func_quote_for_eval_result"
-+	;;
-+
-+      # Flags to be passed through unchanged, with rationale:
-+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
-+      # -r[0-9][0-9]*        specify processor for the SGI compiler
-+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
-+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
-+      # -q*                  compiler args for the IBM compiler
-+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
-+      # -F/path              path to uninstalled frameworks, gcc on darwin
-+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
-+      # @file                GCC response files
-+      # -tp=*                Portland pgcc target processor selection
-+      # --sysroot=*          for sysroot support
-+      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
-+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
-+        func_quote_for_eval "$arg"
-+	arg="$func_quote_for_eval_result"
-+        func_append compile_command " $arg"
-+        func_append finalize_command " $arg"
-+        func_append compiler_flags " $arg"
-+        continue
-+        ;;
-+
-+      # Some other compiler flag.
-+      -* | +*)
-+        func_quote_for_eval "$arg"
-+	arg="$func_quote_for_eval_result"
-+	;;
-+
-+      *.$objext)
-+	# A standard object.
-+	func_append objs " $arg"
-+	;;
-+
-+      *.lo)
-+	# A libtool-controlled object.
-+
-+	# Check to see that this really is a libtool object.
-+	if func_lalib_unsafe_p "$arg"; then
-+	  pic_object=
-+	  non_pic_object=
-+
-+	  # Read the .lo file
-+	  func_source "$arg"
-+
-+	  if test -z "$pic_object" ||
-+	     test -z "$non_pic_object" ||
-+	     test "$pic_object" = none &&
-+	     test "$non_pic_object" = none; then
-+	    func_fatal_error "cannot find name of object for \`$arg'"
-+	  fi
-+
-+	  # Extract subdirectory from the argument.
-+	  func_dirname "$arg" "/" ""
-+	  xdir="$func_dirname_result"
-+
-+	  if test "$pic_object" != none; then
-+	    # Prepend the subdirectory the object is found in.
-+	    pic_object="$xdir$pic_object"
-+
-+	    if test "$prev" = dlfiles; then
-+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-+		func_append dlfiles " $pic_object"
-+		prev=
-+		continue
-+	      else
-+		# If libtool objects are unsupported, then we need to preload.
-+		prev=dlprefiles
-+	      fi
-+	    fi
-+
-+	    # CHECK ME:  I think I busted this.  -Ossama
-+	    if test "$prev" = dlprefiles; then
-+	      # Preload the old-style object.
-+	      func_append dlprefiles " $pic_object"
-+	      prev=
-+	    fi
-+
-+	    # A PIC object.
-+	    func_append libobjs " $pic_object"
-+	    arg="$pic_object"
-+	  fi
-+
-+	  # Non-PIC object.
-+	  if test "$non_pic_object" != none; then
-+	    # Prepend the subdirectory the object is found in.
-+	    non_pic_object="$xdir$non_pic_object"
-+
-+	    # A standard non-PIC object
-+	    func_append non_pic_objects " $non_pic_object"
-+	    if test -z "$pic_object" || test "$pic_object" = none ; then
-+	      arg="$non_pic_object"
-+	    fi
-+	  else
-+	    # If the PIC object exists, use it instead.
-+	    # $xdir was prepended to $pic_object above.
-+	    non_pic_object="$pic_object"
-+	    func_append non_pic_objects " $non_pic_object"
-+	  fi
-+	else
-+	  # Only an error if not doing a dry-run.
-+	  if $opt_dry_run; then
-+	    # Extract subdirectory from the argument.
-+	    func_dirname "$arg" "/" ""
-+	    xdir="$func_dirname_result"
-+
-+	    func_lo2o "$arg"
-+	    pic_object=$xdir$objdir/$func_lo2o_result
-+	    non_pic_object=$xdir$func_lo2o_result
-+	    func_append libobjs " $pic_object"
-+	    func_append non_pic_objects " $non_pic_object"
-+	  else
-+	    func_fatal_error "\`$arg' is not a valid libtool object"
-+	  fi
-+	fi
-+	;;
-+
-+      *.$libext)
-+	# An archive.
-+	func_append deplibs " $arg"
-+	func_append old_deplibs " $arg"
-+	continue
-+	;;
-+
-+      *.la)
-+	# A libtool-controlled library.
-+
-+	func_resolve_sysroot "$arg"
-+	if test "$prev" = dlfiles; then
-+	  # This library was specified with -dlopen.
-+	  func_append dlfiles " $func_resolve_sysroot_result"
-+	  prev=
-+	elif test "$prev" = dlprefiles; then
-+	  # The library was specified with -dlpreopen.
-+	  func_append dlprefiles " $func_resolve_sysroot_result"
-+	  prev=
-+	else
-+	  func_append deplibs " $func_resolve_sysroot_result"
-+	fi
-+	continue
-+	;;
-+
-+      # Some other compiler argument.
-+      *)
-+	# Unknown arguments in both finalize_command and compile_command need
-+	# to be aesthetically quoted because they are evaled later.
-+	func_quote_for_eval "$arg"
-+	arg="$func_quote_for_eval_result"
-+	;;
-+      esac # arg
-+
-+      # Now actually substitute the argument into the commands.
-+      if test -n "$arg"; then
-+	func_append compile_command " $arg"
-+	func_append finalize_command " $arg"
-+      fi
-+    done # argument parsing loop
-+
-+    test -n "$prev" && \
-+      func_fatal_help "the \`$prevarg' option requires an argument"
-+
-+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-+      eval arg=\"$export_dynamic_flag_spec\"
-+      func_append compile_command " $arg"
-+      func_append finalize_command " $arg"
-+    fi
-+
-+    oldlibs=
-+    # calculate the name of the file, without its directory
-+    func_basename "$output"
-+    outputname="$func_basename_result"
-+    libobjs_save="$libobjs"
-+
-+    if test -n "$shlibpath_var"; then
-+      # get the directories listed in $shlibpath_var
-+      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
-+    else
-+      shlib_search_path=
-+    fi
-+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-+
-+    func_dirname "$output" "/" ""
-+    output_objdir="$func_dirname_result$objdir"
-+    func_to_tool_file "$output_objdir/"
-+    tool_output_objdir=$func_to_tool_file_result
-+    # Create the object directory.
-+    func_mkdir_p "$output_objdir"
-+
-+    # Determine the type of output
-+    case $output in
-+    "")
-+      func_fatal_help "you must specify an output file"
-+      ;;
-+    *.$libext) linkmode=oldlib ;;
-+    *.lo | *.$objext) linkmode=obj ;;
-+    *.la) linkmode=lib ;;
-+    *) linkmode=prog ;; # Anything else should be a program.
-+    esac
-+
-+    specialdeplibs=
-+
-+    libs=
-+    # Find all interdependent deplibs by searching for libraries
-+    # that are linked more than once (e.g. -la -lb -la)
-+    for deplib in $deplibs; do
-+      if $opt_preserve_dup_deps ; then
-+	case "$libs " in
-+	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
-+	esac
-+      fi
-+      func_append libs " $deplib"
-+    done
-+
-+    if test "$linkmode" = lib; then
-+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-+
-+      # Compute libraries that are listed more than once in $predeps
-+      # $postdeps and mark them as special (i.e., whose duplicates are
-+      # not to be eliminated).
-+      pre_post_deps=
-+      if $opt_duplicate_compiler_generated_deps; then
-+	for pre_post_dep in $predeps $postdeps; do
-+	  case "$pre_post_deps " in
-+	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
-+	  esac
-+	  func_append pre_post_deps " $pre_post_dep"
-+	done
-+      fi
-+      pre_post_deps=
-+    fi
-+
-+    deplibs=
-+    newdependency_libs=
-+    newlib_search_path=
-+    need_relink=no # whether we're linking any uninstalled libtool libraries
-+    notinst_deplibs= # not-installed libtool libraries
-+    notinst_path= # paths that contain not-installed libtool libraries
-+
-+    case $linkmode in
-+    lib)
-+	passes="conv dlpreopen link"
-+	for file in $dlfiles $dlprefiles; do
-+	  case $file in
-+	  *.la) ;;
-+	  *)
-+	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
-+	    ;;
-+	  esac
-+	done
-+	;;
-+    prog)
-+	compile_deplibs=
-+	finalize_deplibs=
-+	alldeplibs=no
-+	newdlfiles=
-+	newdlprefiles=
-+	passes="conv scan dlopen dlpreopen link"
-+	;;
-+    *)  passes="conv"
-+	;;
-+    esac
-+
-+    for pass in $passes; do
-+      # The preopen pass in lib mode reverses $deplibs; put it back here
-+      # so that -L comes before libs that need it for instance...
-+      if test "$linkmode,$pass" = "lib,link"; then
-+	## FIXME: Find the place where the list is rebuilt in the wrong
-+	##        order, and fix it there properly
-+        tmp_deplibs=
-+	for deplib in $deplibs; do
-+	  tmp_deplibs="$deplib $tmp_deplibs"
-+	done
-+	deplibs="$tmp_deplibs"
-+      fi
-+
-+      if test "$linkmode,$pass" = "lib,link" ||
-+	 test "$linkmode,$pass" = "prog,scan"; then
-+	libs="$deplibs"
-+	deplibs=
-+      fi
-+      if test "$linkmode" = prog; then
-+	case $pass in
-+	dlopen) libs="$dlfiles" ;;
-+	dlpreopen) libs="$dlprefiles" ;;
-+	link)
-+	  libs="$deplibs %DEPLIBS%"
-+	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
-+	  ;;
-+	esac
-+      fi
-+      if test "$linkmode,$pass" = "lib,dlpreopen"; then
-+	# Collect and forward deplibs of preopened libtool libs
-+	for lib in $dlprefiles; do
-+	  # Ignore non-libtool-libs
-+	  dependency_libs=
-+	  func_resolve_sysroot "$lib"
-+	  case $lib in
-+	  *.la)	func_source "$func_resolve_sysroot_result" ;;
-+	  esac
-+
-+	  # Collect preopened libtool deplibs, except any this library
-+	  # has declared as weak libs
-+	  for deplib in $dependency_libs; do
-+	    func_basename "$deplib"
-+            deplib_base=$func_basename_result
-+	    case " $weak_libs " in
-+	    *" $deplib_base "*) ;;
-+	    *) func_append deplibs " $deplib" ;;
-+	    esac
-+	  done
-+	done
-+	libs="$dlprefiles"
-+      fi
-+      if test "$pass" = dlopen; then
-+	# Collect dlpreopened libraries
-+	save_deplibs="$deplibs"
-+	deplibs=
-+      fi
-+
-+      for deplib in $libs; do
-+	lib=
-+	found=no
-+	case $deplib in
-+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
-+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-+	  if test "$linkmode,$pass" = "prog,link"; then
-+	    compile_deplibs="$deplib $compile_deplibs"
-+	    finalize_deplibs="$deplib $finalize_deplibs"
-+	  else
-+	    func_append compiler_flags " $deplib"
-+	    if test "$linkmode" = lib ; then
-+		case "$new_inherited_linker_flags " in
-+		    *" $deplib "*) ;;
-+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
-+		esac
-+	    fi
-+	  fi
-+	  continue
-+	  ;;
-+	-l*)
-+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-+	    func_warning "\`-l' is ignored for archives/objects"
-+	    continue
-+	  fi
-+	  func_stripname '-l' '' "$deplib"
-+	  name=$func_stripname_result
-+	  if test "$linkmode" = lib; then
-+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
-+	  else
-+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
-+	  fi
-+	  for searchdir in $searchdirs; do
-+	    for search_ext in .la $std_shrext .so .a; do
-+	      # Search the libtool library
-+	      lib="$searchdir/lib${name}${search_ext}"
-+	      if test -f "$lib"; then
-+		if test "$search_ext" = ".la"; then
-+		  found=yes
-+		else
-+		  found=no
-+		fi
-+		break 2
-+	      fi
-+	    done
-+	  done
-+	  if test "$found" != yes; then
-+	    # deplib doesn't seem to be a libtool library
-+	    if test "$linkmode,$pass" = "prog,link"; then
-+	      compile_deplibs="$deplib $compile_deplibs"
-+	      finalize_deplibs="$deplib $finalize_deplibs"
-+	    else
-+	      deplibs="$deplib $deplibs"
-+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-+	    fi
-+	    continue
-+	  else # deplib is a libtool library
-+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-+	    # We need to do some special things here, and not later.
-+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-+	      case " $predeps $postdeps " in
-+	      *" $deplib "*)
-+		if func_lalib_p "$lib"; then
-+		  library_names=
-+		  old_library=
-+		  func_source "$lib"
-+		  for l in $old_library $library_names; do
-+		    ll="$l"
-+		  done
-+		  if test "X$ll" = "X$old_library" ; then # only static version available
-+		    found=no
-+		    func_dirname "$lib" "" "."
-+		    ladir="$func_dirname_result"
-+		    lib=$ladir/$old_library
-+		    if test "$linkmode,$pass" = "prog,link"; then
-+		      compile_deplibs="$deplib $compile_deplibs"
-+		      finalize_deplibs="$deplib $finalize_deplibs"
-+		    else
-+		      deplibs="$deplib $deplibs"
-+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-+		    fi
-+		    continue
-+		  fi
-+		fi
-+		;;
-+	      *) ;;
-+	      esac
-+	    fi
-+	  fi
-+	  ;; # -l
-+	*.ltframework)
-+	  if test "$linkmode,$pass" = "prog,link"; then
-+	    compile_deplibs="$deplib $compile_deplibs"
-+	    finalize_deplibs="$deplib $finalize_deplibs"
-+	  else
-+	    deplibs="$deplib $deplibs"
-+	    if test "$linkmode" = lib ; then
-+		case "$new_inherited_linker_flags " in
-+		    *" $deplib "*) ;;
-+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
-+		esac
-+	    fi
-+	  fi
-+	  continue
-+	  ;;
-+	-L*)
-+	  case $linkmode in
-+	  lib)
-+	    deplibs="$deplib $deplibs"
-+	    test "$pass" = conv && continue
-+	    newdependency_libs="$deplib $newdependency_libs"
-+	    func_stripname '-L' '' "$deplib"
-+	    func_resolve_sysroot "$func_stripname_result"
-+	    func_append newlib_search_path " $func_resolve_sysroot_result"
-+	    ;;
-+	  prog)
-+	    if test "$pass" = conv; then
-+	      deplibs="$deplib $deplibs"
-+	      continue
-+	    fi
-+	    if test "$pass" = scan; then
-+	      deplibs="$deplib $deplibs"
-+	    else
-+	      compile_deplibs="$deplib $compile_deplibs"
-+	      finalize_deplibs="$deplib $finalize_deplibs"
-+	    fi
-+	    func_stripname '-L' '' "$deplib"
-+	    func_resolve_sysroot "$func_stripname_result"
-+	    func_append newlib_search_path " $func_resolve_sysroot_result"
-+	    ;;
-+	  *)
-+	    func_warning "\`-L' is ignored for archives/objects"
-+	    ;;
-+	  esac # linkmode
-+	  continue
-+	  ;; # -L
-+	-R*)
-+	  if test "$pass" = link; then
-+	    func_stripname '-R' '' "$deplib"
-+	    func_resolve_sysroot "$func_stripname_result"
-+	    dir=$func_resolve_sysroot_result
-+	    # Make sure the xrpath contains only unique directories.
-+	    case "$xrpath " in
-+	    *" $dir "*) ;;
-+	    *) func_append xrpath " $dir" ;;
-+	    esac
-+	  fi
-+	  deplibs="$deplib $deplibs"
-+	  continue
-+	  ;;
-+	*.la)
-+	  func_resolve_sysroot "$deplib"
-+	  lib=$func_resolve_sysroot_result
-+	  ;;
-+	*.$libext)
-+	  if test "$pass" = conv; then
-+	    deplibs="$deplib $deplibs"
-+	    continue
-+	  fi
-+	  case $linkmode in
-+	  lib)
-+	    # Linking convenience modules into shared libraries is allowed,
-+	    # but linking other static libraries is non-portable.
-+	    case " $dlpreconveniencelibs " in
-+	    *" $deplib "*) ;;
-+	    *)
-+	      valid_a_lib=no
-+	      case $deplibs_check_method in
-+		match_pattern*)
-+		  set dummy $deplibs_check_method; shift
-+		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-+		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
-+		    | $EGREP "$match_pattern_regex" > /dev/null; then
-+		    valid_a_lib=yes
-+		  fi
-+		;;
-+		pass_all)
-+		  valid_a_lib=yes
-+		;;
-+	      esac
-+	      if test "$valid_a_lib" != yes; then
-+		echo
-+		$ECHO "*** Warning: Trying to link with static lib archive $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"
-+		echo "*** because the file extensions .$libext of this argument makes me believe"
-+		echo "*** that it is just a static archive that I should not use here."
-+	      else
-+		echo
-+		$ECHO "*** Warning: Linking the shared library $output against the"
-+		$ECHO "*** static library $deplib is not portable!"
-+		deplibs="$deplib $deplibs"
-+	      fi
-+	      ;;
-+	    esac
-+	    continue
-+	    ;;
-+	  prog)
-+	    if test "$pass" != link; then
-+	      deplibs="$deplib $deplibs"
-+	    else
-+	      compile_deplibs="$deplib $compile_deplibs"
-+	      finalize_deplibs="$deplib $finalize_deplibs"
-+	    fi
-+	    continue
-+	    ;;
-+	  esac # linkmode
-+	  ;; # *.$libext
-+	*.lo | *.$objext)
-+	  if test "$pass" = conv; then
-+	    deplibs="$deplib $deplibs"
-+	  elif test "$linkmode" = prog; then
-+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-+	      # If there is no dlopen support or we're linking statically,
-+	      # we need to preload.
-+	      func_append newdlprefiles " $deplib"
-+	      compile_deplibs="$deplib $compile_deplibs"
-+	      finalize_deplibs="$deplib $finalize_deplibs"
-+	    else
-+	      func_append newdlfiles " $deplib"
-+	    fi
-+	  fi
-+	  continue
-+	  ;;
-+	%DEPLIBS%)
-+	  alldeplibs=yes
-+	  continue
-+	  ;;
-+	esac # case $deplib
-+
-+	if test "$found" = yes || test -f "$lib"; then :
-+	else
-+	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
-+	fi
-+
-+	# Check to see that this really is a libtool archive.
-+	func_lalib_unsafe_p "$lib" \
-+	  || func_fatal_error "\`$lib' is not a valid libtool archive"
-+
-+	func_dirname "$lib" "" "."
-+	ladir="$func_dirname_result"
-+
-+	dlname=
-+	dlopen=
-+	dlpreopen=
-+	libdir=
-+	library_names=
-+	old_library=
-+	inherited_linker_flags=
-+	# If the library was installed with an old release of libtool,
-+	# it will not redefine variables installed, or shouldnotlink
-+	installed=yes
-+	shouldnotlink=no
-+	avoidtemprpath=
-+
-+
-+	# Read the .la file
-+	func_source "$lib"
-+
-+	# Convert "-framework foo" to "foo.ltframework"
-+	if test -n "$inherited_linker_flags"; then
-+	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
-+	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
-+	    case " $new_inherited_linker_flags " in
-+	      *" $tmp_inherited_linker_flag "*) ;;
-+	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
-+	    esac
-+	  done
-+	fi
-+	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-+	if test "$linkmode,$pass" = "lib,link" ||
-+	   test "$linkmode,$pass" = "prog,scan" ||
-+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-+	  test -n "$dlopen" && func_append dlfiles " $dlopen"
-+	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
-+	fi
-+
-+	if test "$pass" = conv; then
-+	  # Only check for convenience libraries
-+	  deplibs="$lib $deplibs"
-+	  if test -z "$libdir"; then
-+	    if test -z "$old_library"; then
-+	      func_fatal_error "cannot find name of link library for \`$lib'"
-+	    fi
-+	    # It is a libtool convenience library, so add in its objects.
-+	    func_append convenience " $ladir/$objdir/$old_library"
-+	    func_append old_convenience " $ladir/$objdir/$old_library"
-+	    tmp_libs=
-+	    for deplib in $dependency_libs; do
-+	      deplibs="$deplib $deplibs"
-+	      if $opt_preserve_dup_deps ; then
-+		case "$tmp_libs " in
-+		*" $deplib "*) func_append specialdeplibs " $deplib" ;;
-+		esac
-+	      fi
-+	      func_append tmp_libs " $deplib"
-+	    done
-+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-+	    func_fatal_error "\`$lib' is not a convenience library"
-+	  fi
-+	  continue
-+	fi # $pass = conv
-+
-+
-+	# Get the name of the library we link against.
-+	linklib=
-+	if test -n "$old_library" &&
-+	   { test "$prefer_static_libs" = yes ||
-+	     test "$prefer_static_libs,$installed" = "built,no"; }; then
-+	  linklib=$old_library
-+	else
-+	  for l in $old_library $library_names; do
-+	    linklib="$l"
-+	  done
-+	fi
-+	if test -z "$linklib"; then
-+	  func_fatal_error "cannot find name of link library for \`$lib'"
-+	fi
-+
-+	# This library was specified with -dlopen.
-+	if test "$pass" = dlopen; then
-+	  if test -z "$libdir"; then
-+	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
-+	  fi
-+	  if test -z "$dlname" ||
-+	     test "$dlopen_support" != yes ||
-+	     test "$build_libtool_libs" = no; then
-+	    # If there is no dlname, no dlopen support or we're linking
-+	    # statically, we need to preload.  We also need to preload any
-+	    # dependent libraries so libltdl's deplib preloader doesn't
-+	    # bomb out in the load deplibs phase.
-+	    func_append dlprefiles " $lib $dependency_libs"
-+	  else
-+	    func_append newdlfiles " $lib"
-+	  fi
-+	  continue
-+	fi # $pass = dlopen
-+
-+	# We need an absolute path.
-+	case $ladir in
-+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-+	*)
-+	  abs_ladir=`cd "$ladir" && pwd`
-+	  if test -z "$abs_ladir"; then
-+	    func_warning "cannot determine absolute directory name of \`$ladir'"
-+	    func_warning "passing it literally to the linker, although it might fail"
-+	    abs_ladir="$ladir"
-+	  fi
-+	  ;;
-+	esac
-+	func_basename "$lib"
-+	laname="$func_basename_result"
-+
-+	# Find the relevant object directory and library name.
-+	if test "X$installed" = Xyes; then
-+	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-+	    func_warning "library \`$lib' was moved."
-+	    dir="$ladir"
-+	    absdir="$abs_ladir"
-+	    libdir="$abs_ladir"
-+	  else
-+	    dir="$lt_sysroot$libdir"
-+	    absdir="$lt_sysroot$libdir"
-+	  fi
-+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-+	else
-+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-+	    dir="$ladir"
-+	    absdir="$abs_ladir"
-+	    # Remove this search path later
-+	    func_append notinst_path " $abs_ladir"
-+	  else
-+	    dir="$ladir/$objdir"
-+	    absdir="$abs_ladir/$objdir"
-+	    # Remove this search path later
-+	    func_append notinst_path " $abs_ladir"
-+	  fi
-+	fi # $installed = yes
-+	func_stripname 'lib' '.la' "$laname"
-+	name=$func_stripname_result
-+
-+	# This library was specified with -dlpreopen.
-+	if test "$pass" = dlpreopen; then
-+	  if test -z "$libdir" && test "$linkmode" = prog; then
-+	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
-+	  fi
-+	  case "$host" in
-+	    # special handling for platforms with PE-DLLs.
-+	    *cygwin* | *mingw* | *cegcc* )
-+	      # Linker will automatically link against shared library if both
-+	      # static and shared are present.  Therefore, ensure we extract
-+	      # symbols from the import library if a shared library is present
-+	      # (otherwise, the dlopen module name will be incorrect).  We do
-+	      # this by putting the import library name into $newdlprefiles.
-+	      # We recover the dlopen module name by 'saving' the la file
-+	      # name in a special purpose variable, and (later) extracting the
-+	      # dlname from the la file.
-+	      if test -n "$dlname"; then
-+	        func_tr_sh "$dir/$linklib"
-+	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
-+	        func_append newdlprefiles " $dir/$linklib"
-+	      else
-+	        func_append newdlprefiles " $dir/$old_library"
-+	        # Keep a list of preopened convenience libraries to check
-+	        # that they are being used correctly in the link pass.
-+	        test -z "$libdir" && \
-+	          func_append dlpreconveniencelibs " $dir/$old_library"
-+	      fi
-+	    ;;
-+	    * )
-+	      # Prefer using a static library (so that no silly _DYNAMIC symbols
-+	      # are required to link).
-+	      if test -n "$old_library"; then
-+	        func_append newdlprefiles " $dir/$old_library"
-+	        # Keep a list of preopened convenience libraries to check
-+	        # that they are being used correctly in the link pass.
-+	        test -z "$libdir" && \
-+	          func_append dlpreconveniencelibs " $dir/$old_library"
-+	      # Otherwise, use the dlname, so that lt_dlopen finds it.
-+	      elif test -n "$dlname"; then
-+	        func_append newdlprefiles " $dir/$dlname"
-+	      else
-+	        func_append newdlprefiles " $dir/$linklib"
-+	      fi
-+	    ;;
-+	  esac
-+	fi # $pass = dlpreopen
-+
-+	if test -z "$libdir"; then
-+	  # Link the convenience library
-+	  if test "$linkmode" = lib; then
-+	    deplibs="$dir/$old_library $deplibs"
-+	  elif test "$linkmode,$pass" = "prog,link"; then
-+	    compile_deplibs="$dir/$old_library $compile_deplibs"
-+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-+	  else
-+	    deplibs="$lib $deplibs" # used for prog,scan pass
-+	  fi
-+	  continue
-+	fi
-+
-+
-+	if test "$linkmode" = prog && test "$pass" != link; then
-+	  func_append newlib_search_path " $ladir"
-+	  deplibs="$lib $deplibs"
-+
-+	  linkalldeplibs=no
-+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-+	     test "$build_libtool_libs" = no; then
-+	    linkalldeplibs=yes
-+	  fi
-+
-+	  tmp_libs=
-+	  for deplib in $dependency_libs; do
-+	    case $deplib in
-+	    -L*) func_stripname '-L' '' "$deplib"
-+	         func_resolve_sysroot "$func_stripname_result"
-+	         func_append newlib_search_path " $func_resolve_sysroot_result"
-+		 ;;
-+	    esac
-+	    # Need to link against all dependency_libs?
-+	    if test "$linkalldeplibs" = yes; then
-+	      deplibs="$deplib $deplibs"
-+	    else
-+	      # Need to hardcode shared library paths
-+	      # or/and link against static libraries
-+	      newdependency_libs="$deplib $newdependency_libs"
-+	    fi
-+	    if $opt_preserve_dup_deps ; then
-+	      case "$tmp_libs " in
-+	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-+	      esac
-+	    fi
-+	    func_append tmp_libs " $deplib"
-+	  done # for deplib
-+	  continue
-+	fi # $linkmode = prog...
-+
-+	if test "$linkmode,$pass" = "prog,link"; then
-+	  if test -n "$library_names" &&
-+	     { { test "$prefer_static_libs" = no ||
-+	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
-+	       test -z "$old_library"; }; then
-+	    # We need to hardcode the library path
-+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
-+	      # Make sure the rpath contains only unique directories.
-+	      case "$temp_rpath:" in
-+	      *"$absdir:"*) ;;
-+	      *) func_append temp_rpath "$absdir:" ;;
-+	      esac
-+	    fi
-+
-+	    # Hardcode the library path.
-+	    # Skip directories that are in the system default run-time
-+	    # search path.
-+	    case " $sys_lib_dlsearch_path " in
-+	    *" $absdir "*) ;;
-+	    *)
-+	      case "$compile_rpath " in
-+	      *" $absdir "*) ;;
-+	      *) func_append compile_rpath " $absdir" ;;
-+	      esac
-+	      ;;
-+	    esac
-+	    case " $sys_lib_dlsearch_path " in
-+	    *" $libdir "*) ;;
-+	    *)
-+	      case "$finalize_rpath " in
-+	      *" $libdir "*) ;;
-+	      *) func_append finalize_rpath " $libdir" ;;
-+	      esac
-+	      ;;
-+	    esac
-+	  fi # $linkmode,$pass = prog,link...
-+
-+	  if test "$alldeplibs" = yes &&
-+	     { test "$deplibs_check_method" = pass_all ||
-+	       { test "$build_libtool_libs" = yes &&
-+		 test -n "$library_names"; }; }; then
-+	    # We only need to search for static libraries
-+	    continue
-+	  fi
-+	fi
-+
-+	link_static=no # Whether the deplib will be linked statically
-+	use_static_libs=$prefer_static_libs
-+	if test "$use_static_libs" = built && test "$installed" = yes; then
-+	  use_static_libs=no
-+	fi
-+	if test -n "$library_names" &&
-+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
-+	  case $host in
-+	  *cygwin* | *mingw* | *cegcc*)
-+	      # No point in relinking DLLs because paths are not encoded
-+	      func_append notinst_deplibs " $lib"
-+	      need_relink=no
-+	    ;;
-+	  *)
-+	    if test "$installed" = no; then
-+	      func_append notinst_deplibs " $lib"
-+	      need_relink=yes
-+	    fi
-+	    ;;
-+	  esac
-+	  # This is a shared library
-+
-+	  # Warn about portability, can't link against -module's on some
-+	  # systems (darwin).  Don't bleat about dlopened modules though!
-+	  dlopenmodule=""
-+	  for dlpremoduletest in $dlprefiles; do
-+	    if test "X$dlpremoduletest" = "X$lib"; then
-+	      dlopenmodule="$dlpremoduletest"
-+	      break
-+	    fi
-+	  done
-+	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-+	    echo
-+	    if test "$linkmode" = prog; then
-+	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
-+	    else
-+	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
-+	    fi
-+	    $ECHO "*** $linklib is not portable!"
-+	  fi
-+	  if test "$linkmode" = lib &&
-+	     test "$hardcode_into_libs" = yes; then
-+	    # Hardcode the library path.
-+	    # Skip directories that are in the system default run-time
-+	    # search path.
-+	    case " $sys_lib_dlsearch_path " in
-+	    *" $absdir "*) ;;
-+	    *)
-+	      case "$compile_rpath " in
-+	      *" $absdir "*) ;;
-+	      *) func_append compile_rpath " $absdir" ;;
-+	      esac
-+	      ;;
-+	    esac
-+	    case " $sys_lib_dlsearch_path " in
-+	    *" $libdir "*) ;;
-+	    *)
-+	      case "$finalize_rpath " in
-+	      *" $libdir "*) ;;
-+	      *) func_append finalize_rpath " $libdir" ;;
-+	      esac
-+	      ;;
-+	    esac
-+	  fi
-+
-+	  if test -n "$old_archive_from_expsyms_cmds"; then
-+	    # figure out the soname
-+	    set dummy $library_names
-+	    shift
-+	    realname="$1"
-+	    shift
-+	    libname=`eval "\\$ECHO \"$libname_spec\""`
-+	    # use dlname if we got it. it's perfectly good, no?
-+	    if test -n "$dlname"; then
-+	      soname="$dlname"
-+	    elif test -n "$soname_spec"; then
-+	      # bleh windows
-+	      case $host in
-+	      *cygwin* | mingw* | *cegcc*)
-+	        func_arith $current - $age
-+		major=$func_arith_result
-+		versuffix="-$major"
-+		;;
-+	      esac
-+	      eval soname=\"$soname_spec\"
-+	    else
-+	      soname="$realname"
-+	    fi
-+
-+	    # Make a new name for the extract_expsyms_cmds to use
-+	    soroot="$soname"
-+	    func_basename "$soroot"
-+	    soname="$func_basename_result"
-+	    func_stripname 'lib' '.dll' "$soname"
-+	    newlib=libimp-$func_stripname_result.a
-+
-+	    # If the library has no export list, then create one now
-+	    if test -f "$output_objdir/$soname-def"; then :
-+	    else
-+	      func_verbose "extracting exported symbol list from \`$soname'"
-+	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
-+	    fi
-+
-+	    # Create $newlib
-+	    if test -f "$output_objdir/$newlib"; then :; else
-+	      func_verbose "generating import library for \`$soname'"
-+	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
-+	    fi
-+	    # make sure the library variables are pointing to the new library
-+	    dir=$output_objdir
-+	    linklib=$newlib
-+	  fi # test -n "$old_archive_from_expsyms_cmds"
-+
-+	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
-+	    add_shlibpath=
-+	    add_dir=
-+	    add=
-+	    lib_linked=yes
-+	    case $hardcode_action in
-+	    immediate | unsupported)
-+	      if test "$hardcode_direct" = no; then
-+		add="$dir/$linklib"
-+		case $host in
-+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-+		    *-*-unixware7*) add_dir="-L$dir" ;;
-+		  *-*-darwin* )
-+		    # if the lib is a (non-dlopened) module then we can not
-+		    # link against it, someone is ignoring the earlier warnings
-+		    if /usr/bin/file -L $add 2> /dev/null |
-+			 $GREP ": [^:]* bundle" >/dev/null ; then
-+		      if test "X$dlopenmodule" != "X$lib"; then
-+			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
-+			if test -z "$old_library" ; then
-+			  echo
-+			  echo "*** And there doesn't seem to be a static archive available"
-+			  echo "*** The link will probably fail, sorry"
-+			else
-+			  add="$dir/$old_library"
-+			fi
-+		      elif test -n "$old_library"; then
-+			add="$dir/$old_library"
-+		      fi
-+		    fi
-+		esac
-+	      elif test "$hardcode_minus_L" = no; then
-+		case $host in
-+		*-*-sunos*) add_shlibpath="$dir" ;;
-+		esac
-+		add_dir="-L$dir"
-+		add="-l$name"
-+	      elif test "$hardcode_shlibpath_var" = no; then
-+		add_shlibpath="$dir"
-+		add="-l$name"
-+	      else
-+		lib_linked=no
-+	      fi
-+	      ;;
-+	    relink)
-+	      if test "$hardcode_direct" = yes &&
-+	         test "$hardcode_direct_absolute" = no; then
-+		add="$dir/$linklib"
-+	      elif test "$hardcode_minus_L" = yes; then
-+		add_dir="-L$absdir"
-+		# Try looking first in the location we're being installed to.
-+		if test -n "$inst_prefix_dir"; then
-+		  case $libdir in
-+		    [\\/]*)
-+		      func_append add_dir " -L$inst_prefix_dir$libdir"
-+		      ;;
-+		  esac
-+		fi
-+		add="-l$name"
-+	      elif test "$hardcode_shlibpath_var" = yes; then
-+		add_shlibpath="$dir"
-+		add="-l$name"
-+	      else
-+		lib_linked=no
-+	      fi
-+	      ;;
-+	    *) lib_linked=no ;;
-+	    esac
-+
-+	    if test "$lib_linked" != yes; then
-+	      func_fatal_configuration "unsupported hardcode properties"
-+	    fi
-+
-+	    if test -n "$add_shlibpath"; then
-+	      case :$compile_shlibpath: in
-+	      *":$add_shlibpath:"*) ;;
-+	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
-+	      esac
-+	    fi
-+	    if test "$linkmode" = prog; then
-+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-+	    else
-+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-+	      test -n "$add" && deplibs="$add $deplibs"
-+	      if test "$hardcode_direct" != yes &&
-+		 test "$hardcode_minus_L" != yes &&
-+		 test "$hardcode_shlibpath_var" = yes; then
-+		case :$finalize_shlibpath: in
-+		*":$libdir:"*) ;;
-+		*) func_append finalize_shlibpath "$libdir:" ;;
-+		esac
-+	      fi
-+	    fi
-+	  fi
-+
-+	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
-+	    add_shlibpath=
-+	    add_dir=
-+	    add=
-+	    # Finalize command for both is simple: just hardcode it.
-+	    if test "$hardcode_direct" = yes &&
-+	       test "$hardcode_direct_absolute" = no; then
-+	      add="$libdir/$linklib"
-+	    elif test "$hardcode_minus_L" = yes; then
-+	      add_dir="-L$libdir"
-+	      add="-l$name"
-+	    elif test "$hardcode_shlibpath_var" = yes; then
-+	      case :$finalize_shlibpath: in
-+	      *":$libdir:"*) ;;
-+	      *) func_append finalize_shlibpath "$libdir:" ;;
-+	      esac
-+	      add="-l$name"
-+	    elif test "$hardcode_automatic" = yes; then
-+	      if test -n "$inst_prefix_dir" &&
-+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
-+		add="$inst_prefix_dir$libdir/$linklib"
-+	      else
-+		add="$libdir/$linklib"
-+	      fi
-+	    else
-+	      # We cannot seem to hardcode it, guess we'll fake it.
-+	      add_dir="-L$libdir"
-+	      # Try looking first in the location we're being installed to.
-+	      if test -n "$inst_prefix_dir"; then
-+		case $libdir in
-+		  [\\/]*)
-+		    func_append add_dir " -L$inst_prefix_dir$libdir"
-+		    ;;
-+		esac
-+	      fi
-+	      add="-l$name"
-+	    fi
-+
-+	    if test "$linkmode" = prog; then
-+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-+	    else
-+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-+	      test -n "$add" && deplibs="$add $deplibs"
-+	    fi
-+	  fi
-+	elif test "$linkmode" = prog; then
-+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-+	  # is not unsupported.  This is valid on all known static and
-+	  # shared platforms.
-+	  if test "$hardcode_direct" != unsupported; then
-+	    test -n "$old_library" && linklib="$old_library"
-+	    compile_deplibs="$dir/$linklib $compile_deplibs"
-+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
-+	  else
-+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
-+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-+	  fi
-+	elif test "$build_libtool_libs" = yes; then
-+	  # Not a shared library
-+	  if test "$deplibs_check_method" != pass_all; then
-+	    # We're trying link a shared library against a static one
-+	    # but the system doesn't support it.
-+
-+	    # Just print a warning and add the library to dependency_libs so
-+	    # that the program can be linked against the static library.
-+	    echo
-+	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
-+	    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."
-+	    if test "$module" = yes; then
-+	      echo "*** But as you try to build a module library, libtool will still create "
-+	      echo "*** a static module, that should work as long as the dlopening application"
-+	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-+	      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
-+		build_libtool_libs=module
-+		build_old_libs=yes
-+	      else
-+		build_libtool_libs=no
-+	      fi
-+	    fi
-+	  else
-+	    deplibs="$dir/$old_library $deplibs"
-+	    link_static=yes
-+	  fi
-+	fi # link shared/static library?
-+
-+	if test "$linkmode" = lib; then
-+	  if test -n "$dependency_libs" &&
-+	     { test "$hardcode_into_libs" != yes ||
-+	       test "$build_old_libs" = yes ||
-+	       test "$link_static" = yes; }; then
-+	    # Extract -R from dependency_libs
-+	    temp_deplibs=
-+	    for libdir in $dependency_libs; do
-+	      case $libdir in
-+	      -R*) func_stripname '-R' '' "$libdir"
-+	           temp_xrpath=$func_stripname_result
-+		   case " $xrpath " in
-+		   *" $temp_xrpath "*) ;;
-+		   *) func_append xrpath " $temp_xrpath";;
-+		   esac;;
-+	      *) func_append temp_deplibs " $libdir";;
-+	      esac
-+	    done
-+	    dependency_libs="$temp_deplibs"
-+	  fi
-+
-+	  func_append newlib_search_path " $absdir"
-+	  # Link against this library
-+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-+	  # ... and its dependency_libs
-+	  tmp_libs=
-+	  for deplib in $dependency_libs; do
-+	    newdependency_libs="$deplib $newdependency_libs"
-+	    case $deplib in
-+              -L*) func_stripname '-L' '' "$deplib"
-+                   func_resolve_sysroot "$func_stripname_result";;
-+              *) func_resolve_sysroot "$deplib" ;;
-+            esac
-+	    if $opt_preserve_dup_deps ; then
-+	      case "$tmp_libs " in
-+	      *" $func_resolve_sysroot_result "*)
-+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
-+	      esac
-+	    fi
-+	    func_append tmp_libs " $func_resolve_sysroot_result"
-+	  done
-+
-+	  if test "$link_all_deplibs" != no; then
-+	    # Add the search paths of all dependency libraries
-+	    for deplib in $dependency_libs; do
-+	      path=
-+	      case $deplib in
-+	      -L*) path="$deplib" ;;
-+	      *.la)
-+	        func_resolve_sysroot "$deplib"
-+	        deplib=$func_resolve_sysroot_result
-+	        func_dirname "$deplib" "" "."
-+		dir=$func_dirname_result
-+		# We need an absolute path.
-+		case $dir in
-+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-+		*)
-+		  absdir=`cd "$dir" && pwd`
-+		  if test -z "$absdir"; then
-+		    func_warning "cannot determine absolute directory name of \`$dir'"
-+		    absdir="$dir"
-+		  fi
-+		  ;;
-+		esac
-+		if $GREP "^installed=no" $deplib > /dev/null; then
-+		case $host in
-+		*-*-darwin*)
-+		  depdepl=
-+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-+		  if test -n "$deplibrary_names" ; then
-+		    for tmp in $deplibrary_names ; do
-+		      depdepl=$tmp
-+		    done
-+		    if test -f "$absdir/$objdir/$depdepl" ; then
-+		      depdepl="$absdir/$objdir/$depdepl"
-+		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
-+                      if test -z "$darwin_install_name"; then
-+                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
-+                      fi
-+		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-+		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
-+		      path=
-+		    fi
-+		  fi
-+		  ;;
-+		*)
-+		  path="-L$absdir/$objdir"
-+		  ;;
-+		esac
-+		else
-+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-+		  test -z "$libdir" && \
-+		    func_fatal_error "\`$deplib' is not a valid libtool archive"
-+		  test "$absdir" != "$libdir" && \
-+		    func_warning "\`$deplib' seems to be moved"
-+
-+		  path="-L$absdir"
-+		fi
-+		;;
-+	      esac
-+	      case " $deplibs " in
-+	      *" $path "*) ;;
-+	      *) deplibs="$path $deplibs" ;;
-+	      esac
-+	    done
-+	  fi # link_all_deplibs != no
-+	fi # linkmode = lib
-+      done # for deplib in $libs
-+      if test "$pass" = link; then
-+	if test "$linkmode" = "prog"; then
-+	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
-+	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
-+	else
-+	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-+	fi
-+      fi
-+      dependency_libs="$newdependency_libs"
-+      if test "$pass" = dlpreopen; then
-+	# Link the dlpreopened libraries before other libraries
-+	for deplib in $save_deplibs; do
-+	  deplibs="$deplib $deplibs"
-+	done
-+      fi
-+      if test "$pass" != dlopen; then
-+	if test "$pass" != conv; then
-+	  # Make sure lib_search_path contains only unique directories.
-+	  lib_search_path=
-+	  for dir in $newlib_search_path; do
-+	    case "$lib_search_path " in
-+	    *" $dir "*) ;;
-+	    *) func_append lib_search_path " $dir" ;;
-+	    esac
-+	  done
-+	  newlib_search_path=
-+	fi
-+
-+	if test "$linkmode,$pass" != "prog,link"; then
-+	  vars="deplibs"
-+	else
-+	  vars="compile_deplibs finalize_deplibs"
-+	fi
-+	for var in $vars dependency_libs; do
-+	  # Add libraries to $var in reverse order
-+	  eval tmp_libs=\"\$$var\"
-+	  new_libs=
-+	  for deplib in $tmp_libs; do
-+	    # FIXME: Pedantically, this is the right thing to do, so
-+	    #        that some nasty dependency loop isn't accidentally
-+	    #        broken:
-+	    #new_libs="$deplib $new_libs"
-+	    # Pragmatically, this seems to cause very few problems in
-+	    # practice:
-+	    case $deplib in
-+	    -L*) new_libs="$deplib $new_libs" ;;
-+	    -R*) ;;
-+	    *)
-+	      # And here is the reason: when a library appears more
-+	      # than once as an explicit dependence of a library, or
-+	      # is implicitly linked in more than once by the
-+	      # compiler, it is considered special, and multiple
-+	      # occurrences thereof are not removed.  Compare this
-+	      # with having the same library being listed as a
-+	      # dependency of multiple other libraries: in this case,
-+	      # we know (pedantically, we assume) the library does not
-+	      # need to be listed more than once, so we keep only the
-+	      # last copy.  This is not always right, but it is rare
-+	      # enough that we require users that really mean to play
-+	      # such unportable linking tricks to link the library
-+	      # using -Wl,-lname, so that libtool does not consider it
-+	      # for duplicate removal.
-+	      case " $specialdeplibs " in
-+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-+	      *)
-+		case " $new_libs " in
-+		*" $deplib "*) ;;
-+		*) new_libs="$deplib $new_libs" ;;
-+		esac
-+		;;
-+	      esac
-+	      ;;
-+	    esac
-+	  done
-+	  tmp_libs=
-+	  for deplib in $new_libs; do
-+	    case $deplib in
-+	    -L*)
-+	      case " $tmp_libs " in
-+	      *" $deplib "*) ;;
-+	      *) func_append tmp_libs " $deplib" ;;
-+	      esac
-+	      ;;
-+	    *) func_append tmp_libs " $deplib" ;;
-+	    esac
-+	  done
-+	  eval $var=\"$tmp_libs\"
-+	done # for var
-+      fi
-+      # Last step: remove runtime libs from dependency_libs
-+      # (they stay in deplibs)
-+      tmp_libs=
-+      for i in $dependency_libs ; do
-+	case " $predeps $postdeps $compiler_lib_search_path " in
-+	*" $i "*)
-+	  i=""
-+	  ;;
-+	esac
-+	if test -n "$i" ; then
-+	  func_append tmp_libs " $i"
-+	fi
-+      done
-+      dependency_libs=$tmp_libs
-+    done # for pass
-+    if test "$linkmode" = prog; then
-+      dlfiles="$newdlfiles"
-+    fi
-+    if test "$linkmode" = prog || test "$linkmode" = lib; then
-+      dlprefiles="$newdlprefiles"
-+    fi
-+
-+    case $linkmode in
-+    oldlib)
-+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-+	func_warning "\`-dlopen' is ignored for archives"
-+      fi
-+
-+      case " $deplibs" in
-+      *\ -l* | *\ -L*)
-+	func_warning "\`-l' and \`-L' are ignored for archives" ;;
-+      esac
-+
-+      test -n "$rpath" && \
-+	func_warning "\`-rpath' is ignored for archives"
-+
-+      test -n "$xrpath" && \
-+	func_warning "\`-R' is ignored for archives"
-+
-+      test -n "$vinfo" && \
-+	func_warning "\`-version-info/-version-number' is ignored for archives"
-+
-+      test -n "$release" && \
-+	func_warning "\`-release' is ignored for archives"
-+
-+      test -n "$export_symbols$export_symbols_regex" && \
-+	func_warning "\`-export-symbols' is ignored for archives"
-+
-+      # Now set the variables for building old libraries.
-+      build_libtool_libs=no
-+      oldlibs="$output"
-+      func_append objs "$old_deplibs"
-+      ;;
-+
-+    lib)
-+      # Make sure we only generate libraries of the form `libNAME.la'.
-+      case $outputname in
-+      lib*)
-+	func_stripname 'lib' '.la' "$outputname"
-+	name=$func_stripname_result
-+	eval shared_ext=\"$shrext_cmds\"
-+	eval libname=\"$libname_spec\"
-+	;;
-+      *)
-+	test "$module" = no && \
-+	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
-+
-+	if test "$need_lib_prefix" != no; then
-+	  # Add the "lib" prefix for modules if required
-+	  func_stripname '' '.la' "$outputname"
-+	  name=$func_stripname_result
-+	  eval shared_ext=\"$shrext_cmds\"
-+	  eval libname=\"$libname_spec\"
-+	else
-+	  func_stripname '' '.la' "$outputname"
-+	  libname=$func_stripname_result
-+	fi
-+	;;
-+      esac
-+
-+      if test -n "$objs"; then
-+	if test "$deplibs_check_method" != pass_all; then
-+	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
-+	else
-+	  echo
-+	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
-+	  $ECHO "*** objects $objs is not portable!"
-+	  func_append libobjs " $objs"
-+	fi
-+      fi
-+
-+      test "$dlself" != no && \
-+	func_warning "\`-dlopen self' is ignored for libtool libraries"
-+
-+      set dummy $rpath
-+      shift
-+      test "$#" -gt 1 && \
-+	func_warning "ignoring multiple \`-rpath's for a libtool library"
-+
-+      install_libdir="$1"
-+
-+      oldlibs=
-+      if test -z "$rpath"; then
-+	if test "$build_libtool_libs" = yes; then
-+	  # Building a libtool convenience library.
-+	  # Some compilers have problems with a `.al' extension so
-+	  # convenience libraries should have the same extension an
-+	  # archive normally would.
-+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
-+	  build_libtool_libs=convenience
-+	  build_old_libs=yes
-+	fi
-+
-+	test -n "$vinfo" && \
-+	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-+
-+	test -n "$release" && \
-+	  func_warning "\`-release' is ignored for convenience libraries"
-+      else
-+
-+	# Parse the version information argument.
-+	save_ifs="$IFS"; IFS=':'
-+	set dummy $vinfo 0 0 0
-+	shift
-+	IFS="$save_ifs"
-+
-+	test -n "$7" && \
-+	  func_fatal_help "too many parameters to \`-version-info'"
-+
-+	# convert absolute version numbers to libtool ages
-+	# this retains compatibility with .la files and attempts
-+	# to make the code below a bit more comprehensible
-+
-+	case $vinfo_number in
-+	yes)
-+	  number_major="$1"
-+	  number_minor="$2"
-+	  number_revision="$3"
-+	  #
-+	  # There are really only two kinds -- those that
-+	  # use the current revision as the major version
-+	  # and those that subtract age and use age as
-+	  # a minor version.  But, then there is irix
-+	  # which has an extra 1 added just for fun
-+	  #
-+	  case $version_type in
-+	  # correct linux to gnu/linux during the next big refactor
-+	  darwin|linux|osf|windows|none)
-+	    func_arith $number_major + $number_minor
-+	    current=$func_arith_result
-+	    age="$number_minor"
-+	    revision="$number_revision"
-+	    ;;
-+	  freebsd-aout|freebsd-elf|qnx|sunos)
-+	    current="$number_major"
-+	    revision="$number_minor"
-+	    age="0"
-+	    ;;
-+	  irix|nonstopux)
-+	    func_arith $number_major + $number_minor
-+	    current=$func_arith_result
-+	    age="$number_minor"
-+	    revision="$number_minor"
-+	    lt_irix_increment=no
-+	    ;;
-+	  *)
-+	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
-+	    ;;
-+	  esac
-+	  ;;
-+	no)
-+	  current="$1"
-+	  revision="$2"
-+	  age="$3"
-+	  ;;
-+	esac
-+
-+	# Check that each of the things are valid numbers.
-+	case $current in
-+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-+	*)
-+	  func_error "CURRENT \`$current' must be a nonnegative integer"
-+	  func_fatal_error "\`$vinfo' is not valid version information"
-+	  ;;
-+	esac
-+
-+	case $revision in
-+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-+	*)
-+	  func_error "REVISION \`$revision' must be a nonnegative integer"
-+	  func_fatal_error "\`$vinfo' is not valid version information"
-+	  ;;
-+	esac
-+
-+	case $age in
-+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-+	*)
-+	  func_error "AGE \`$age' must be a nonnegative integer"
-+	  func_fatal_error "\`$vinfo' is not valid version information"
-+	  ;;
-+	esac
-+
-+	if test "$age" -gt "$current"; then
-+	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
-+	  func_fatal_error "\`$vinfo' is not valid version information"
-+	fi
-+
-+	# Calculate the version variables.
-+	major=
-+	versuffix=
-+	verstring=
-+	case $version_type in
-+	none) ;;
-+
-+	darwin)
-+	  # Like Linux, but with the current version available in
-+	  # verstring for coding it into the library header
-+	  func_arith $current - $age
-+	  major=.$func_arith_result
-+	  versuffix="$major.$age.$revision"
-+	  # Darwin ld doesn't like 0 for these options...
-+	  func_arith $current + 1
-+	  minor_current=$func_arith_result
-+	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
-+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-+	  ;;
-+
-+	freebsd-aout)
-+	  major=".$current"
-+	  versuffix=".$current.$revision";
-+	  ;;
-+
-+	freebsd-elf)
-+	  major=".$current"
-+	  versuffix=".$current"
-+	  ;;
-+
-+	irix | nonstopux)
-+	  if test "X$lt_irix_increment" = "Xno"; then
-+	    func_arith $current - $age
-+	  else
-+	    func_arith $current - $age + 1
-+	  fi
-+	  major=$func_arith_result
-+
-+	  case $version_type in
-+	    nonstopux) verstring_prefix=nonstopux ;;
-+	    *)         verstring_prefix=sgi ;;
-+	  esac
-+	  verstring="$verstring_prefix$major.$revision"
-+
-+	  # Add in all the interfaces that we are compatible with.
-+	  loop=$revision
-+	  while test "$loop" -ne 0; do
-+	    func_arith $revision - $loop
-+	    iface=$func_arith_result
-+	    func_arith $loop - 1
-+	    loop=$func_arith_result
-+	    verstring="$verstring_prefix$major.$iface:$verstring"
-+	  done
-+
-+	  # Before this point, $major must not contain `.'.
-+	  major=.$major
-+	  versuffix="$major.$revision"
-+	  ;;
-+
-+	linux) # correct to gnu/linux during the next big refactor
-+	  func_arith $current - $age
-+	  major=.$func_arith_result
-+	  versuffix="$major.$age.$revision"
-+	  ;;
-+
-+	osf)
-+	  func_arith $current - $age
-+	  major=.$func_arith_result
-+	  versuffix=".$current.$age.$revision"
-+	  verstring="$current.$age.$revision"
-+
-+	  # Add in all the interfaces that we are compatible with.
-+	  loop=$age
-+	  while test "$loop" -ne 0; do
-+	    func_arith $current - $loop
-+	    iface=$func_arith_result
-+	    func_arith $loop - 1
-+	    loop=$func_arith_result
-+	    verstring="$verstring:${iface}.0"
-+	  done
-+
-+	  # Make executables depend on our current version.
-+	  func_append verstring ":${current}.0"
-+	  ;;
-+
-+	qnx)
-+	  major=".$current"
-+	  versuffix=".$current"
-+	  ;;
-+
-+	sunos)
-+	  major=".$current"
-+	  versuffix=".$current.$revision"
-+	  ;;
-+
-+	windows)
-+	  # Use '-' rather than '.', since we only want one
-+	  # extension on DOS 8.3 filesystems.
-+	  func_arith $current - $age
-+	  major=$func_arith_result
-+	  versuffix="-$major"
-+	  ;;
-+
-+	*)
-+	  func_fatal_configuration "unknown library version type \`$version_type'"
-+	  ;;
-+	esac
-+
-+	# Clear the version info if we defaulted, and they specified a release.
-+	if test -z "$vinfo" && test -n "$release"; then
-+	  major=
-+	  case $version_type in
-+	  darwin)
-+	    # we can't check for "0.0" in archive_cmds due to quoting
-+	    # problems, so we reset it completely
-+	    verstring=
-+	    ;;
-+	  *)
-+	    verstring="0.0"
-+	    ;;
-+	  esac
-+	  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
-+	    func_warning "undefined symbols not allowed in $host shared libraries"
-+	    build_libtool_libs=no
-+	    build_old_libs=yes
-+	  fi
-+	else
-+	  # Don't allow undefined symbols.
-+	  allow_undefined_flag="$no_undefined_flag"
-+	fi
-+
-+      fi
-+
-+      func_generate_dlsyms "$libname" "$libname" "yes"
-+      func_append libobjs " $symfileobj"
-+      test "X$libobjs" = "X " && libobjs=
-+
-+      if test "$opt_mode" != relink; then
-+	# Remove our outputs, but don't remove object files since they
-+	# may have been created when compiling PIC objects.
-+	removelist=
-+	tempremovelist=`$ECHO "$output_objdir/*"`
-+	for p in $tempremovelist; do
-+	  case $p in
-+	    *.$objext | *.gcno)
-+	       ;;
-+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-+	       if test "X$precious_files_regex" != "X"; then
-+		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-+		 then
-+		   continue
-+		 fi
-+	       fi
-+	       func_append removelist " $p"
-+	       ;;
-+	    *) ;;
-+	  esac
-+	done
-+	test -n "$removelist" && \
-+	  func_show_eval "${RM}r \$removelist"
-+      fi
-+
-+      # Now set the variables for building old libraries.
-+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-+	func_append oldlibs " $output_objdir/$libname.$libext"
-+
-+	# Transform .lo files to .o files.
-+	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
-+      fi
-+
-+      # Eliminate all temporary directories.
-+      #for path in $notinst_path; do
-+      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
-+      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
-+      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
-+      #done
-+
-+      if test -n "$xrpath"; then
-+	# If the user specified any rpath flags, then add them.
-+	temp_xrpath=
-+	for libdir in $xrpath; do
-+	  func_replace_sysroot "$libdir"
-+	  func_append temp_xrpath " -R$func_replace_sysroot_result"
-+	  case "$finalize_rpath " in
-+	  *" $libdir "*) ;;
-+	  *) func_append finalize_rpath " $libdir" ;;
-+	  esac
-+	done
-+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-+	  dependency_libs="$temp_xrpath $dependency_libs"
-+	fi
-+      fi
-+
-+      # Make sure dlfiles contains only unique files that won't be dlpreopened
-+      old_dlfiles="$dlfiles"
-+      dlfiles=
-+      for lib in $old_dlfiles; do
-+	case " $dlprefiles $dlfiles " in
-+	*" $lib "*) ;;
-+	*) func_append dlfiles " $lib" ;;
-+	esac
-+      done
-+
-+      # Make sure dlprefiles contains only unique files
-+      old_dlprefiles="$dlprefiles"
-+      dlprefiles=
-+      for lib in $old_dlprefiles; do
-+	case "$dlprefiles " in
-+	*" $lib "*) ;;
-+	*) func_append dlprefiles " $lib" ;;
-+	esac
-+      done
-+
-+      if test "$build_libtool_libs" = yes; then
-+	if test -n "$rpath"; then
-+	  case $host in
-+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
-+	    # these systems don't actually have a c library (as such)!
-+	    ;;
-+	  *-*-rhapsody* | *-*-darwin1.[012])
-+	    # Rhapsody C library is in the System framework
-+	    func_append deplibs " System.ltframework"
-+	    ;;
-+	  *-*-netbsd*)
-+	    # Don't link with libc until the a.out ld.so is fixed.
-+	    ;;
-+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-+	    # Do not include libc due to us having libc/libc_r.
-+	    ;;
-+	  *-*-sco3.2v5* | *-*-sco5v6*)
-+	    # Causes problems with __ctype
-+	    ;;
-+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-+	    # Compiler inserts libc in the correct place for threads to work
-+	    ;;
-+	  *)
-+	    # Add libc to deplibs on all other systems if necessary.
-+	    if test "$build_libtool_need_lc" = "yes"; then
-+	      func_append deplibs " -lc"
-+	    fi
-+	    ;;
-+	  esac
-+	fi
-+
-+	# 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 behavior.
-+	  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.
-+	  $opt_dry_run || $RM conftest.c
-+	  cat > conftest.c <<EOF
-+	  int main() { return 0; }
-+EOF
-+	  $opt_dry_run || $RM conftest
-+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
-+	    ldd_output=`ldd conftest`
-+	    for i in $deplibs; do
-+	      case $i in
-+	      -l*)
-+		func_stripname -l '' "$i"
-+		name=$func_stripname_result
-+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-+		  case " $predeps $postdeps " in
-+		  *" $i "*)
-+		    func_append newdeplibs " $i"
-+		    i=""
-+		    ;;
-+		  esac
-+		fi
-+		if test -n "$i" ; then
-+		  libname=`eval "\\$ECHO \"$libname_spec\""`
-+		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-+		  set dummy $deplib_matches; shift
-+		  deplib_match=$1
-+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-+		    func_append newdeplibs " $i"
-+		  else
-+		    droppeddeps=yes
-+		    echo
-+		    $ECHO "*** Warning: dynamic linker does not accept needed library $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 I believe you do not have"
-+		    echo "*** because a test_compile did reveal that the linker did not use it for"
-+		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
-+		  fi
-+		fi
-+		;;
-+	      *)
-+		func_append newdeplibs " $i"
-+		;;
-+	      esac
-+	    done
-+	  else
-+	    # Error occurred in the first compile.  Let's try to salvage
-+	    # the situation: Compile a separate program for each library.
-+	    for i in $deplibs; do
-+	      case $i in
-+	      -l*)
-+		func_stripname -l '' "$i"
-+		name=$func_stripname_result
-+		$opt_dry_run || $RM conftest
-+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
-+		  ldd_output=`ldd conftest`
-+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-+		    case " $predeps $postdeps " in
-+		    *" $i "*)
-+		      func_append newdeplibs " $i"
-+		      i=""
-+		      ;;
-+		    esac
-+		  fi
-+		  if test -n "$i" ; then
-+		    libname=`eval "\\$ECHO \"$libname_spec\""`
-+		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-+		    set dummy $deplib_matches; shift
-+		    deplib_match=$1
-+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-+		      func_append newdeplibs " $i"
-+		    else
-+		      droppeddeps=yes
-+		      echo
-+		      $ECHO "*** Warning: dynamic linker does not accept needed library $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"
-+		      echo "*** because a test_compile did reveal that the linker did not use this one"
-+		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
-+		    fi
-+		  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
-+		;;
-+	      *)
-+		func_append newdeplibs " $i"
-+		;;
-+	      esac
-+	    done
-+	  fi
-+	  ;;
-+	file_magic*)
-+	  set dummy $deplibs_check_method; shift
-+	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-+	  for a_deplib in $deplibs; do
-+	    case $a_deplib in
-+	    -l*)
-+	      func_stripname -l '' "$a_deplib"
-+	      name=$func_stripname_result
-+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-+		case " $predeps $postdeps " in
-+		*" $a_deplib "*)
-+		  func_append newdeplibs " $a_deplib"
-+		  a_deplib=""
-+		  ;;
-+		esac
-+	      fi
-+	      if test -n "$a_deplib" ; then
-+		libname=`eval "\\$ECHO \"$libname_spec\""`
-+		if test -n "$file_magic_glob"; then
-+		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
-+		else
-+		  libnameglob=$libname
-+		fi
-+		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
-+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-+		  if test "$want_nocaseglob" = yes; then
-+		    shopt -s nocaseglob
-+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-+		    $nocaseglob
-+		  else
-+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-+		  fi
-+		  for potent_lib in $potential_libs; do
-+		      # Follow soft links.
-+		      if ls -lLd "$potent_lib" 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 "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
-+			esac
-+		      done
-+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
-+			 $SED -e 10q |
-+			 $EGREP "$file_magic_regex" > /dev/null; then
-+			func_append newdeplibs " $a_deplib"
-+			a_deplib=""
-+			break 2
-+		      fi
-+		  done
-+		done
-+	      fi
-+	      if test -n "$a_deplib" ; then
-+		droppeddeps=yes
-+		echo
-+		$ECHO "*** Warning: linker path does not have real file for library $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"
-+		echo "*** because I did check the linker path looking for a file starting"
-+		if test -z "$potlib" ; then
-+		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
-+		else
-+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
-+		  $ECHO "*** using a file magic. Last file checked: $potlib"
-+		fi
-+	      fi
-+	      ;;
-+	    *)
-+	      # Add a -L argument.
-+	      func_append newdeplibs " $a_deplib"
-+	      ;;
-+	    esac
-+	  done # Gone through all deplibs.
-+	  ;;
-+	match_pattern*)
-+	  set dummy $deplibs_check_method; shift
-+	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-+	  for a_deplib in $deplibs; do
-+	    case $a_deplib in
-+	    -l*)
-+	      func_stripname -l '' "$a_deplib"
-+	      name=$func_stripname_result
-+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-+		case " $predeps $postdeps " in
-+		*" $a_deplib "*)
-+		  func_append newdeplibs " $a_deplib"
-+		  a_deplib=""
-+		  ;;
-+		esac
-+	      fi
-+	      if test -n "$a_deplib" ; then
-+		libname=`eval "\\$ECHO \"$libname_spec\""`
-+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-+		  for potent_lib in $potential_libs; do
-+		    potlib="$potent_lib" # see symlink-check above in file_magic test
-+		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
-+		       $EGREP "$match_pattern_regex" > /dev/null; then
-+		      func_append newdeplibs " $a_deplib"
-+		      a_deplib=""
-+		      break 2
-+		    fi
-+		  done
-+		done
-+	      fi
-+	      if test -n "$a_deplib" ; then
-+		droppeddeps=yes
-+		echo
-+		$ECHO "*** Warning: linker path does not have real file for library $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"
-+		echo "*** because I did check the linker path looking for a file starting"
-+		if test -z "$potlib" ; then
-+		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
-+		else
-+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
-+		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
-+		fi
-+	      fi
-+	      ;;
-+	    *)
-+	      # Add a -L argument.
-+	      func_append newdeplibs " $a_deplib"
-+	      ;;
-+	    esac
-+	  done # Gone through all deplibs.
-+	  ;;
-+	none | unknown | *)
-+	  newdeplibs=""
-+	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
-+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-+	    for i in $predeps $postdeps ; do
-+	      # can't use Xsed below, because $i might contain '/'
-+	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
-+	    done
-+	  fi
-+	  case $tmp_deplibs in
-+	  *[!\	\ ]*)
-+	    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
-+	    ;;
-+	  esac
-+	  ;;
-+	esac
-+	versuffix=$versuffix_save
-+	major=$major_save
-+	release=$release_save
-+	libname=$libname_save
-+	name=$name_save
-+
-+	case $host in
-+	*-*-rhapsody* | *-*-darwin1.[012])
-+	  # On Rhapsody replace the C library with the System framework
-+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
-+	  ;;
-+	esac
-+
-+	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."
-+
-+	    if test "$allow_undefined" = no; then
-+	      echo
-+	      echo "*** Since this library must not contain undefined symbols,"
-+	      echo "*** because either the platform does not support them or"
-+	      echo "*** it was explicitly requested with -no-undefined,"
-+	      echo "*** libtool will only create a static version of it."
-+	      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
-+	    fi
-+	  fi
-+	fi
-+	# Done checking deplibs!
-+	deplibs=$newdeplibs
-+      fi
-+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-+      case $host in
-+	*-*-darwin*)
-+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-+	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-+	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-+	  ;;
-+      esac
-+
-+      # move library search paths that coincide with paths to not yet
-+      # installed libraries to the beginning of the library search list
-+      new_libs=
-+      for path in $notinst_path; do
-+	case " $new_libs " in
-+	*" -L$path/$objdir "*) ;;
-+	*)
-+	  case " $deplibs " in
-+	  *" -L$path/$objdir "*)
-+	    func_append new_libs " -L$path/$objdir" ;;
-+	  esac
-+	  ;;
-+	esac
-+      done
-+      for deplib in $deplibs; do
-+	case $deplib in
-+	-L*)
-+	  case " $new_libs " in
-+	  *" $deplib "*) ;;
-+	  *) func_append new_libs " $deplib" ;;
-+	  esac
-+	  ;;
-+	*) func_append new_libs " $deplib" ;;
-+	esac
-+      done
-+      deplibs="$new_libs"
-+
-+      # 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
-+	# Remove ${wl} instances when linking with ld.
-+	# FIXME: should test the right _cmds variable.
-+	case $archive_cmds in
-+	  *\$LD\ *) wl= ;;
-+        esac
-+	if test "$hardcode_into_libs" = yes; then
-+	  # Hardcode the library paths
-+	  hardcode_libdirs=
-+	  dep_rpath=
-+	  rpath="$finalize_rpath"
-+	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
-+	  for libdir in $rpath; do
-+	    if test -n "$hardcode_libdir_flag_spec"; then
-+	      if test -n "$hardcode_libdir_separator"; then
-+		func_replace_sysroot "$libdir"
-+		libdir=$func_replace_sysroot_result
-+		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"*)
-+		    ;;
-+		  *)
-+		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-+		    ;;
-+		  esac
-+		fi
-+	      else
-+		eval flag=\"$hardcode_libdir_flag_spec\"
-+		func_append dep_rpath " $flag"
-+	      fi
-+	    elif test -n "$runpath_var"; then
-+	      case "$perm_rpath " in
-+	      *" $libdir "*) ;;
-+	      *) func_append 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 "dep_rpath=\"$hardcode_libdir_flag_spec\""
-+	  fi
-+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-+	    # We should set the runpath_var.
-+	    rpath=
-+	    for dir in $perm_rpath; do
-+	      func_append rpath "$dir:"
-+	    done
-+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-+	  fi
-+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-+	fi
-+
-+	shlibpath="$finalize_shlibpath"
-+	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-+	if test -n "$shlibpath"; then
-+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-+	fi
-+
-+	# Get the real and link names of the library.
-+	eval shared_ext=\"$shrext_cmds\"
-+	eval library_names=\"$library_names_spec\"
-+	set dummy $library_names
-+	shift
-+	realname="$1"
-+	shift
-+
-+	if test -n "$soname_spec"; then
-+	  eval soname=\"$soname_spec\"
-+	else
-+	  soname="$realname"
-+	fi
-+	if test -z "$dlname"; then
-+	  dlname=$soname
-+	fi
-+
-+	lib="$output_objdir/$realname"
-+	linknames=
-+	for link
-+	do
-+	  func_append linknames " $link"
-+	done
-+
-+	# Use standard objects if they are pic
-+	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
-+	test "X$libobjs" = "X " && libobjs=
-+
-+	delfiles=
-+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-+	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
-+	  export_symbols="$output_objdir/$libname.uexp"
-+	  func_append delfiles " $export_symbols"
-+	fi
-+
-+	orig_export_symbols=
-+	case $host_os in
-+	cygwin* | mingw* | cegcc*)
-+	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
-+	    # exporting using user supplied symfile
-+	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
-+	      # and it's NOT already a .def file. Must figure out
-+	      # which of the given symbols are data symbols and tag
-+	      # them as such. So, trigger use of export_symbols_cmds.
-+	      # export_symbols gets reassigned inside the "prepare
-+	      # the list of exported symbols" if statement, so the
-+	      # include_expsyms logic still works.
-+	      orig_export_symbols="$export_symbols"
-+	      export_symbols=
-+	      always_export_symbols=yes
-+	    fi
-+	  fi
-+	  ;;
-+	esac
-+
-+	# Prepare the list of exported symbols
-+	if test -z "$export_symbols"; then
-+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-+	    func_verbose "generating symbol list for \`$libname.la'"
-+	    export_symbols="$output_objdir/$libname.exp"
-+	    $opt_dry_run || $RM $export_symbols
-+	    cmds=$export_symbols_cmds
-+	    save_ifs="$IFS"; IFS='~'
-+	    for cmd1 in $cmds; do
-+	      IFS="$save_ifs"
-+	      # Take the normal branch if the nm_file_list_spec branch
-+	      # doesn't work or if tool conversion is not needed.
-+	      case $nm_file_list_spec~$to_tool_file_cmd in
-+		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
-+		  try_normal_branch=yes
-+		  eval cmd=\"$cmd1\"
-+		  func_len " $cmd"
-+		  len=$func_len_result
-+		  ;;
-+		*)
-+		  try_normal_branch=no
-+		  ;;
-+	      esac
-+	      if test "$try_normal_branch" = yes \
-+		 && { test "$len" -lt "$max_cmd_len" \
-+		      || test "$max_cmd_len" -le -1; }
-+	      then
-+		func_show_eval "$cmd" 'exit $?'
-+		skipped_export=false
-+	      elif test -n "$nm_file_list_spec"; then
-+		func_basename "$output"
-+		output_la=$func_basename_result
-+		save_libobjs=$libobjs
-+		save_output=$output
-+		output=${output_objdir}/${output_la}.nm
-+		func_to_tool_file "$output"
-+		libobjs=$nm_file_list_spec$func_to_tool_file_result
-+		func_append delfiles " $output"
-+		func_verbose "creating $NM input file list: $output"
-+		for obj in $save_libobjs; do
-+		  func_to_tool_file "$obj"
-+		  $ECHO "$func_to_tool_file_result"
-+		done > "$output"
-+		eval cmd=\"$cmd1\"
-+		func_show_eval "$cmd" 'exit $?'
-+		output=$save_output
-+		libobjs=$save_libobjs
-+		skipped_export=false
-+	      else
-+		# The command line is too long to execute in one step.
-+		func_verbose "using reloadable object file for export list..."
-+		skipped_export=:
-+		# Break out early, otherwise skipped_export may be
-+		# set to false by a later but shorter cmd.
-+		break
-+	      fi
-+	    done
-+	    IFS="$save_ifs"
-+	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
-+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-+	    fi
-+	  fi
-+	fi
-+
-+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-+	  tmp_export_symbols="$export_symbols"
-+	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-+	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
-+	fi
-+
-+	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
-+	  # The given exports_symbols file has to be filtered, so filter it.
-+	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
-+	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
-+	  # 's' commands which not all seds can handle. GNU sed should be fine
-+	  # though. Also, the filter scales superlinearly with the number of
-+	  # global variables. join(1) would be nice here, but unfortunately
-+	  # isn't a blessed tool.
-+	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-+	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
-+	  export_symbols=$output_objdir/$libname.def
-+	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-+	fi
-+
-+	tmp_deplibs=
-+	for test_deplib in $deplibs; do
-+	  case " $convenience " in
-+	  *" $test_deplib "*) ;;
-+	  *)
-+	    func_append tmp_deplibs " $test_deplib"
-+	    ;;
-+	  esac
-+	done
-+	deplibs="$tmp_deplibs"
-+
-+	if test -n "$convenience"; then
-+	  if test -n "$whole_archive_flag_spec" &&
-+	    test "$compiler_needs_object" = yes &&
-+	    test -z "$libobjs"; then
-+	    # extract the archives, so we have objects to list.
-+	    # TODO: could optimize this to just extract one archive.
-+	    whole_archive_flag_spec=
-+	  fi
-+	  if test -n "$whole_archive_flag_spec"; then
-+	    save_libobjs=$libobjs
-+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-+	    test "X$libobjs" = "X " && libobjs=
-+	  else
-+	    gentop="$output_objdir/${outputname}x"
-+	    func_append generated " $gentop"
-+
-+	    func_extract_archives $gentop $convenience
-+	    func_append libobjs " $func_extract_archives_result"
-+	    test "X$libobjs" = "X " && libobjs=
-+	  fi
-+	fi
-+
-+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-+	  eval flag=\"$thread_safe_flag_spec\"
-+	  func_append linker_flags " $flag"
-+	fi
-+
-+	# Make a backup of the uninstalled library when relinking
-+	if test "$opt_mode" = relink; then
-+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
-+	fi
-+
-+	# Do each of the archive commands.
-+	if test "$module" = yes && test -n "$module_cmds" ; then
-+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-+	    eval test_cmds=\"$module_expsym_cmds\"
-+	    cmds=$module_expsym_cmds
-+	  else
-+	    eval test_cmds=\"$module_cmds\"
-+	    cmds=$module_cmds
-+	  fi
-+	else
-+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-+	    eval test_cmds=\"$archive_expsym_cmds\"
-+	    cmds=$archive_expsym_cmds
-+	  else
-+	    eval test_cmds=\"$archive_cmds\"
-+	    cmds=$archive_cmds
-+	  fi
-+	fi
-+
-+	if test "X$skipped_export" != "X:" &&
-+	   func_len " $test_cmds" &&
-+	   len=$func_len_result &&
-+	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-+	  :
-+	else
-+	  # The command line is too long to link in one step, link piecewise
-+	  # or, if using GNU ld and skipped_export is not :, use a linker
-+	  # script.
-+
-+	  # Save the value of $output and $libobjs because we want to
-+	  # use them later.  If we have whole_archive_flag_spec, we
-+	  # want to use save_libobjs as it was before
-+	  # whole_archive_flag_spec was expanded, because we can't
-+	  # assume the linker understands whole_archive_flag_spec.
-+	  # This may have to be revisited, in case too many
-+	  # convenience libraries get linked in and end up exceeding
-+	  # the spec.
-+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-+	    save_libobjs=$libobjs
-+	  fi
-+	  save_output=$output
-+	  func_basename "$output"
-+	  output_la=$func_basename_result
-+
-+	  # Clear the reloadable object creation command queue and
-+	  # initialize k to one.
-+	  test_cmds=
-+	  concat_cmds=
-+	  objlist=
-+	  last_robj=
-+	  k=1
-+
-+	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
-+	    output=${output_objdir}/${output_la}.lnkscript
-+	    func_verbose "creating GNU ld script: $output"
-+	    echo 'INPUT (' > $output
-+	    for obj in $save_libobjs
-+	    do
-+	      func_to_tool_file "$obj"
-+	      $ECHO "$func_to_tool_file_result" >> $output
-+	    done
-+	    echo ')' >> $output
-+	    func_append delfiles " $output"
-+	    func_to_tool_file "$output"
-+	    output=$func_to_tool_file_result
-+	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
-+	    output=${output_objdir}/${output_la}.lnk
-+	    func_verbose "creating linker input file list: $output"
-+	    : > $output
-+	    set x $save_libobjs
-+	    shift
-+	    firstobj=
-+	    if test "$compiler_needs_object" = yes; then
-+	      firstobj="$1 "
-+	      shift
-+	    fi
-+	    for obj
-+	    do
-+	      func_to_tool_file "$obj"
-+	      $ECHO "$func_to_tool_file_result" >> $output
-+	    done
-+	    func_append delfiles " $output"
-+	    func_to_tool_file "$output"
-+	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
-+	  else
-+	    if test -n "$save_libobjs"; then
-+	      func_verbose "creating reloadable object files..."
-+	      output=$output_objdir/$output_la-${k}.$objext
-+	      eval test_cmds=\"$reload_cmds\"
-+	      func_len " $test_cmds"
-+	      len0=$func_len_result
-+	      len=$len0
-+
-+	      # Loop over the list of objects to be linked.
-+	      for obj in $save_libobjs
-+	      do
-+		func_len " $obj"
-+		func_arith $len + $func_len_result
-+		len=$func_arith_result
-+		if test "X$objlist" = X ||
-+		   test "$len" -lt "$max_cmd_len"; then
-+		  func_append objlist " $obj"
-+		else
-+		  # The command $test_cmds is almost too long, add a
-+		  # command to the queue.
-+		  if test "$k" -eq 1 ; then
-+		    # The first file doesn't have a previous command to add.
-+		    reload_objs=$objlist
-+		    eval concat_cmds=\"$reload_cmds\"
-+		  else
-+		    # All subsequent reloadable object files will link in
-+		    # the last one created.
-+		    reload_objs="$objlist $last_robj"
-+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
-+		  fi
-+		  last_robj=$output_objdir/$output_la-${k}.$objext
-+		  func_arith $k + 1
-+		  k=$func_arith_result
-+		  output=$output_objdir/$output_la-${k}.$objext
-+		  objlist=" $obj"
-+		  func_len " $last_robj"
-+		  func_arith $len0 + $func_len_result
-+		  len=$func_arith_result
-+		fi
-+	      done
-+	      # Handle the remaining objects by creating one last
-+	      # reloadable object file.  All subsequent reloadable object
-+	      # files will link in the last one created.
-+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-+	      reload_objs="$objlist $last_robj"
-+	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
-+	      if test -n "$last_robj"; then
-+	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
-+	      fi
-+	      func_append delfiles " $output"
-+
-+	    else
-+	      output=
-+	    fi
-+
-+	    if ${skipped_export-false}; then
-+	      func_verbose "generating symbol list for \`$libname.la'"
-+	      export_symbols="$output_objdir/$libname.exp"
-+	      $opt_dry_run || $RM $export_symbols
-+	      libobjs=$output
-+	      # Append the command to create the export file.
-+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-+	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
-+	      if test -n "$last_robj"; then
-+		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
-+	      fi
-+	    fi
-+
-+	    test -n "$save_libobjs" &&
-+	      func_verbose "creating a temporary reloadable object file: $output"
-+
-+	    # Loop through the commands generated above and execute them.
-+	    save_ifs="$IFS"; IFS='~'
-+	    for cmd in $concat_cmds; do
-+	      IFS="$save_ifs"
-+	      $opt_silent || {
-+		  func_quote_for_expand "$cmd"
-+		  eval "func_echo $func_quote_for_expand_result"
-+	      }
-+	      $opt_dry_run || eval "$cmd" || {
-+		lt_exit=$?
-+
-+		# Restore the uninstalled library and exit
-+		if test "$opt_mode" = relink; then
-+		  ( cd "$output_objdir" && \
-+		    $RM "${realname}T" && \
-+		    $MV "${realname}U" "$realname" )
-+		fi
-+
-+		exit $lt_exit
-+	      }
-+	    done
-+	    IFS="$save_ifs"
-+
-+	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
-+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-+	    fi
-+	  fi
-+
-+          if ${skipped_export-false}; then
-+	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
-+	      tmp_export_symbols="$export_symbols"
-+	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-+	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
-+	    fi
-+
-+	    if test -n "$orig_export_symbols"; then
-+	      # The given exports_symbols file has to be filtered, so filter it.
-+	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
-+	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
-+	      # 's' commands which not all seds can handle. GNU sed should be fine
-+	      # though. Also, the filter scales superlinearly with the number of
-+	      # global variables. join(1) would be nice here, but unfortunately
-+	      # isn't a blessed tool.
-+	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-+	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
-+	      export_symbols=$output_objdir/$libname.def
-+	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-+	    fi
-+	  fi
-+
-+	  libobjs=$output
-+	  # Restore the value of output.
-+	  output=$save_output
-+
-+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-+	    test "X$libobjs" = "X " && libobjs=
-+	  fi
-+	  # Expand the library linking commands again to reset the
-+	  # value of $libobjs for piecewise linking.
-+
-+	  # Do each of the archive commands.
-+	  if test "$module" = yes && test -n "$module_cmds" ; then
-+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-+	      cmds=$module_expsym_cmds
-+	    else
-+	      cmds=$module_cmds
-+	    fi
-+	  else
-+	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-+	      cmds=$archive_expsym_cmds
-+	    else
-+	      cmds=$archive_cmds
-+	    fi
-+	  fi
-+	fi
-+
-+	if test -n "$delfiles"; then
-+	  # Append the command to remove temporary files to $cmds.
-+	  eval cmds=\"\$cmds~\$RM $delfiles\"
-+	fi
-+
-+	# Add any objects from preloaded convenience libraries
-+	if test -n "$dlprefiles"; then
-+	  gentop="$output_objdir/${outputname}x"
-+	  func_append generated " $gentop"
-+
-+	  func_extract_archives $gentop $dlprefiles
-+	  func_append libobjs " $func_extract_archives_result"
-+	  test "X$libobjs" = "X " && libobjs=
-+	fi
-+
-+	save_ifs="$IFS"; IFS='~'
-+	for cmd in $cmds; do
-+	  IFS="$save_ifs"
-+	  eval cmd=\"$cmd\"
-+	  $opt_silent || {
-+	    func_quote_for_expand "$cmd"
-+	    eval "func_echo $func_quote_for_expand_result"
-+	  }
-+	  $opt_dry_run || eval "$cmd" || {
-+	    lt_exit=$?
-+
-+	    # Restore the uninstalled library and exit
-+	    if test "$opt_mode" = relink; then
-+	      ( cd "$output_objdir" && \
-+	        $RM "${realname}T" && \
-+		$MV "${realname}U" "$realname" )
-+	    fi
-+
-+	    exit $lt_exit
-+	  }
-+	done
-+	IFS="$save_ifs"
-+
-+	# Restore the uninstalled library and exit
-+	if test "$opt_mode" = relink; then
-+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-+
-+	  if test -n "$convenience"; then
-+	    if test -z "$whole_archive_flag_spec"; then
-+	      func_show_eval '${RM}r "$gentop"'
-+	    fi
-+	  fi
-+
-+	  exit $EXIT_SUCCESS
-+	fi
-+
-+	# Create links to the real library.
-+	for linkname in $linknames; do
-+	  if test "$realname" != "$linkname"; then
-+	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
-+	  fi
-+	done
-+
-+	# 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
-+      ;;
-+
-+    obj)
-+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-+	func_warning "\`-dlopen' is ignored for objects"
-+      fi
-+
-+      case " $deplibs" in
-+      *\ -l* | *\ -L*)
-+	func_warning "\`-l' and \`-L' are ignored for objects" ;;
-+      esac
-+
-+      test -n "$rpath" && \
-+	func_warning "\`-rpath' is ignored for objects"
-+
-+      test -n "$xrpath" && \
-+	func_warning "\`-R' is ignored for objects"
-+
-+      test -n "$vinfo" && \
-+	func_warning "\`-version-info' is ignored for objects"
-+
-+      test -n "$release" && \
-+	func_warning "\`-release' is ignored for objects"
-+
-+      case $output in
-+      *.lo)
-+	test -n "$objs$old_deplibs" && \
-+	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-+
-+	libobj=$output
-+	func_lo2o "$libobj"
-+	obj=$func_lo2o_result
-+	;;
-+      *)
-+	libobj=
-+	obj="$output"
-+	;;
-+      esac
-+
-+      # Delete the old objects.
-+      $opt_dry_run || $RM $obj $libobj
-+
-+      # Objects from convenience libraries.  This assumes
-+      # single-version convenience libraries.  Whenever we create
-+      # different ones for PIC/non-PIC, this we'll have to duplicate
-+      # the extraction.
-+      reload_conv_objs=
-+      gentop=
-+      # reload_cmds runs $LD directly, so let us get rid of
-+      # -Wl from whole_archive_flag_spec and hope we can get by with
-+      # turning comma into space..
-+      wl=
-+
-+      if test -n "$convenience"; then
-+	if test -n "$whole_archive_flag_spec"; then
-+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-+	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
-+	else
-+	  gentop="$output_objdir/${obj}x"
-+	  func_append generated " $gentop"
-+
-+	  func_extract_archives $gentop $convenience
-+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
-+	fi
-+      fi
-+
-+      # If we're not building shared, we need to use non_pic_objs
-+      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-+
-+      # Create the old-style object.
-+      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-+
-+      output="$obj"
-+      func_execute_cmds "$reload_cmds" 'exit $?'
-+
-+      # Exit if we aren't doing a library object file.
-+      if test -z "$libobj"; then
-+	if test -n "$gentop"; then
-+	  func_show_eval '${RM}r "$gentop"'
-+	fi
-+
-+	exit $EXIT_SUCCESS
-+      fi
-+
-+      if test "$build_libtool_libs" != yes; then
-+	if test -n "$gentop"; then
-+	  func_show_eval '${RM}r "$gentop"'
-+	fi
-+
-+	# Create an invalid libtool object if no PIC, so that we don't
-+	# accidentally link it into a program.
-+	# $show "echo timestamp > $libobj"
-+	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
-+	exit $EXIT_SUCCESS
-+      fi
-+
-+      if test -n "$pic_flag" || test "$pic_mode" != default; then
-+	# Only do commands if we really have different PIC objects.
-+	reload_objs="$libobjs $reload_conv_objs"
-+	output="$libobj"
-+	func_execute_cmds "$reload_cmds" 'exit $?'
-+      fi
-+
-+      if test -n "$gentop"; then
-+	func_show_eval '${RM}r "$gentop"'
-+      fi
-+
-+      exit $EXIT_SUCCESS
-+      ;;
-+
-+    prog)
-+      case $host in
-+	*cygwin*) func_stripname '' '.exe' "$output"
-+	          output=$func_stripname_result.exe;;
-+      esac
-+      test -n "$vinfo" && \
-+	func_warning "\`-version-info' is ignored for programs"
-+
-+      test -n "$release" && \
-+	func_warning "\`-release' is ignored for programs"
-+
-+      test "$preload" = yes \
-+        && test "$dlopen_support" = unknown \
-+	&& test "$dlopen_self" = unknown \
-+	&& test "$dlopen_self_static" = unknown && \
-+	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-+
-+      case $host in
-+      *-*-rhapsody* | *-*-darwin1.[012])
-+	# On Rhapsody replace the C library is the System framework
-+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
-+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
-+	;;
-+      esac
-+
-+      case $host in
-+      *-*-darwin*)
-+	# Don't allow lazy linking, it breaks C++ global constructors
-+	# But is supposedly fixed on 10.4 or later (yay!).
-+	if test "$tagname" = CXX ; then
-+	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
-+	    10.[0123])
-+	      func_append compile_command " ${wl}-bind_at_load"
-+	      func_append finalize_command " ${wl}-bind_at_load"
-+	    ;;
-+	  esac
-+	fi
-+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
-+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-+	;;
-+      esac
-+
-+
-+      # move library search paths that coincide with paths to not yet
-+      # installed libraries to the beginning of the library search list
-+      new_libs=
-+      for path in $notinst_path; do
-+	case " $new_libs " in
-+	*" -L$path/$objdir "*) ;;
-+	*)
-+	  case " $compile_deplibs " in
-+	  *" -L$path/$objdir "*)
-+	    func_append new_libs " -L$path/$objdir" ;;
-+	  esac
-+	  ;;
-+	esac
-+      done
-+      for deplib in $compile_deplibs; do
-+	case $deplib in
-+	-L*)
-+	  case " $new_libs " in
-+	  *" $deplib "*) ;;
-+	  *) func_append new_libs " $deplib" ;;
-+	  esac
-+	  ;;
-+	*) func_append new_libs " $deplib" ;;
-+	esac
-+      done
-+      compile_deplibs="$new_libs"
-+
-+
-+      func_append compile_command " $compile_deplibs"
-+      func_append finalize_command " $finalize_deplibs"
-+
-+      if test -n "$rpath$xrpath"; then
-+	# If the user specified any rpath flags, then add them.
-+	for libdir in $rpath $xrpath; do
-+	  # This is the magic to use -rpath.
-+	  case "$finalize_rpath " in
-+	  *" $libdir "*) ;;
-+	  *) func_append finalize_rpath " $libdir" ;;
-+	  esac
-+	done
-+      fi
-+
-+      # 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"*)
-+		;;
-+	      *)
-+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-+		;;
-+	      esac
-+	    fi
-+	  else
-+	    eval flag=\"$hardcode_libdir_flag_spec\"
-+	    func_append rpath " $flag"
-+	  fi
-+	elif test -n "$runpath_var"; then
-+	  case "$perm_rpath " in
-+	  *" $libdir "*) ;;
-+	  *) func_append perm_rpath " $libdir" ;;
-+	  esac
-+	fi
-+	case $host in
-+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-+	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
-+	  case :$dllsearchpath: in
-+	  *":$libdir:"*) ;;
-+	  ::) dllsearchpath=$libdir;;
-+	  *) func_append dllsearchpath ":$libdir";;
-+	  esac
-+	  case :$dllsearchpath: in
-+	  *":$testbindir:"*) ;;
-+	  ::) dllsearchpath=$testbindir;;
-+	  *) func_append dllsearchpath ":$testbindir";;
-+	  esac
-+	  ;;
-+	esac
-+      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
-+      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"*)
-+		;;
-+	      *)
-+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-+		;;
-+	      esac
-+	    fi
-+	  else
-+	    eval flag=\"$hardcode_libdir_flag_spec\"
-+	    func_append rpath " $flag"
-+	  fi
-+	elif test -n "$runpath_var"; then
-+	  case "$finalize_perm_rpath " in
-+	  *" $libdir "*) ;;
-+	  *) func_append 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 -n "$libobjs" && test "$build_old_libs" = yes; then
-+	# Transform all the library objects into standard objects.
-+	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
-+	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
-+      fi
-+
-+      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-+
-+      # template prelinking step
-+      if test -n "$prelink_cmds"; then
-+	func_execute_cmds "$prelink_cmds" 'exit $?'
-+      fi
-+
-+      wrappers_required=yes
-+      case $host in
-+      *cegcc* | *mingw32ce*)
-+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
-+        wrappers_required=no
-+        ;;
-+      *cygwin* | *mingw* )
-+        if test "$build_libtool_libs" != yes; then
-+          wrappers_required=no
-+        fi
-+        ;;
-+      *)
-+        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-+          wrappers_required=no
-+        fi
-+        ;;
-+      esac
-+      if test "$wrappers_required" = no; then
-+	# Replace the output file specification.
-+	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-+	link_command="$compile_command$compile_rpath"
-+
-+	# We have no uninstalled library dependencies, so finalize right now.
-+	exit_status=0
-+	func_show_eval "$link_command" 'exit_status=$?'
-+
-+	if test -n "$postlink_cmds"; then
-+	  func_to_tool_file "$output"
-+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-+	  func_execute_cmds "$postlink_cmds" 'exit $?'
-+	fi
-+
-+	# Delete the generated files.
-+	if test -f "$output_objdir/${outputname}S.${objext}"; then
-+	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
-+	fi
-+
-+	exit $exit_status
-+      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"
-+      fi
-+
-+      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
-+	    func_append 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
-+	    func_append rpath "$dir:"
-+	  done
-+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-+	fi
-+      fi
-+
-+      if test "$no_install" = yes; then
-+	# We don't need to create a wrapper script.
-+	link_command="$compile_var$compile_command$compile_rpath"
-+	# Replace the output file specification.
-+	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-+	# Delete the old output file.
-+	$opt_dry_run || $RM $output
-+	# Link the executable and exit
-+	func_show_eval "$link_command" 'exit $?'
-+
-+	if test -n "$postlink_cmds"; then
-+	  func_to_tool_file "$output"
-+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-+	  func_execute_cmds "$postlink_cmds" 'exit $?'
-+	fi
-+
-+	exit $EXIT_SUCCESS
-+      fi
-+
-+      if test "$hardcode_action" = relink; then
-+	# Fast installation is not supported
-+	link_command="$compile_var$compile_command$compile_rpath"
-+	relink_command="$finalize_var$finalize_command$finalize_rpath"
-+
-+	func_warning "this platform does not like uninstalled shared libraries"
-+	func_warning "\`$output' will be relinked during installation"
-+      else
-+	if test "$fast_install" != no; then
-+	  link_command="$finalize_var$compile_command$finalize_rpath"
-+	  if test "$fast_install" = yes; then
-+	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED '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
-+
-+      # Replace the output file specification.
-+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-+
-+      # Delete the old output files.
-+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-+
-+      func_show_eval "$link_command" 'exit $?'
-+
-+      if test -n "$postlink_cmds"; then
-+	func_to_tool_file "$output_objdir/$outputname"
-+	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-+	func_execute_cmds "$postlink_cmds" 'exit $?'
-+      fi
-+
-+      # Now create the wrapper script.
-+      func_verbose "creating $output"
-+
-+      # Quote the relink command for shipping.
-+      if test -n "$relink_command"; then
-+	# Preserve any variables that may affect compiler behavior
-+	for var in $variables_saved_for_relink; do
-+	  if eval test -z \"\${$var+set}\"; then
-+	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-+	  elif eval var_value=\$$var; test -z "$var_value"; then
-+	    relink_command="$var=; export $var; $relink_command"
-+	  else
-+	    func_quote_for_eval "$var_value"
-+	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
-+	  fi
-+	done
-+	relink_command="(cd `pwd`; $relink_command)"
-+	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-+      fi
-+
-+      # Only actually do things if not in dry run mode.
-+      $opt_dry_run || {
-+	# win32 will think the script is a binary if it has
-+	# a .exe suffix, so we strip it off here.
-+	case $output in
-+	  *.exe) func_stripname '' '.exe' "$output"
-+	         output=$func_stripname_result ;;
-+	esac
-+	# test for cygwin because mv fails w/o .exe extensions
-+	case $host in
-+	  *cygwin*)
-+	    exeext=.exe
-+	    func_stripname '' '.exe' "$outputname"
-+	    outputname=$func_stripname_result ;;
-+	  *) exeext= ;;
-+	esac
-+	case $host in
-+	  *cygwin* | *mingw* )
-+	    func_dirname_and_basename "$output" "" "."
-+	    output_name=$func_basename_result
-+	    output_path=$func_dirname_result
-+	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
-+	    cwrapper="$output_path/$output_name.exe"
-+	    $RM $cwrappersource $cwrapper
-+	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-+
-+	    func_emit_cwrapperexe_src > $cwrappersource
-+
-+	    # The wrapper executable is built using the $host compiler,
-+	    # because it contains $host paths and files. If cross-
-+	    # compiling, it, like the target executable, must be
-+	    # executed on the $host or under an emulation environment.
-+	    $opt_dry_run || {
-+	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
-+	      $STRIP $cwrapper
-+	    }
-+
-+	    # Now, create the wrapper script for func_source use:
-+	    func_ltwrapper_scriptname $cwrapper
-+	    $RM $func_ltwrapper_scriptname_result
-+	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
-+	    $opt_dry_run || {
-+	      # note: this script will not be executed, so do not chmod.
-+	      if test "x$build" = "x$host" ; then
-+		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
-+	      else
-+		func_emit_wrapper no > $func_ltwrapper_scriptname_result
-+	      fi
-+	    }
-+	  ;;
-+	  * )
-+	    $RM $output
-+	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-+
-+	    func_emit_wrapper no > $output
-+	    chmod +x $output
-+	  ;;
-+	esac
-+      }
-+      exit $EXIT_SUCCESS
-+      ;;
-+    esac
-+
-+    # See if we need to build an old-fashioned archive.
-+    for oldlib in $oldlibs; do
-+
-+      if test "$build_libtool_libs" = convenience; then
-+	oldobjs="$libobjs_save $symfileobj"
-+	addlibs="$convenience"
-+	build_libtool_libs=no
-+      else
-+	if test "$build_libtool_libs" = module; then
-+	  oldobjs="$libobjs_save"
-+	  build_libtool_libs=no
-+	else
-+	  oldobjs="$old_deplibs $non_pic_objects"
-+	  if test "$preload" = yes && test -f "$symfileobj"; then
-+	    func_append oldobjs " $symfileobj"
-+	  fi
-+	fi
-+	addlibs="$old_convenience"
-+      fi
-+
-+      if test -n "$addlibs"; then
-+	gentop="$output_objdir/${outputname}x"
-+	func_append generated " $gentop"
-+
-+	func_extract_archives $gentop $addlibs
-+	func_append oldobjs " $func_extract_archives_result"
-+      fi
-+
-+      # Do each command in the archive commands.
-+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-+	cmds=$old_archive_from_new_cmds
-+      else
-+
-+	# Add any objects from preloaded convenience libraries
-+	if test -n "$dlprefiles"; then
-+	  gentop="$output_objdir/${outputname}x"
-+	  func_append generated " $gentop"
-+
-+	  func_extract_archives $gentop $dlprefiles
-+	  func_append oldobjs " $func_extract_archives_result"
-+	fi
-+
-+	# POSIX demands no paths to be encoded in archives.  We have
-+	# to avoid creating archives with duplicate basenames if we
-+	# might have to extract them afterwards, e.g., when creating a
-+	# static archive out of a convenience library, or when linking
-+	# the entirety of a libtool archive into another (currently
-+	# not supported by libtool).
-+	if (for obj in $oldobjs
-+	    do
-+	      func_basename "$obj"
-+	      $ECHO "$func_basename_result"
-+	    done | sort | sort -uc >/dev/null 2>&1); then
-+	  :
-+	else
-+	  echo "copying selected object files to avoid basename conflicts..."
-+	  gentop="$output_objdir/${outputname}x"
-+	  func_append generated " $gentop"
-+	  func_mkdir_p "$gentop"
-+	  save_oldobjs=$oldobjs
-+	  oldobjs=
-+	  counter=1
-+	  for obj in $save_oldobjs
-+	  do
-+	    func_basename "$obj"
-+	    objbase="$func_basename_result"
-+	    case " $oldobjs " in
-+	    " ") oldobjs=$obj ;;
-+	    *[\ /]"$objbase "*)
-+	      while :; do
-+		# Make sure we don't pick an alternate name that also
-+		# overlaps.
-+		newobj=lt$counter-$objbase
-+		func_arith $counter + 1
-+		counter=$func_arith_result
-+		case " $oldobjs " in
-+		*[\ /]"$newobj "*) ;;
-+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
-+		esac
-+	      done
-+	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-+	      func_append oldobjs " $gentop/$newobj"
-+	      ;;
-+	    *) func_append oldobjs " $obj" ;;
-+	    esac
-+	  done
-+	fi
-+	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
-+	tool_oldlib=$func_to_tool_file_result
-+	eval cmds=\"$old_archive_cmds\"
-+
-+	func_len " $cmds"
-+	len=$func_len_result
-+	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-+	  cmds=$old_archive_cmds
-+	elif test -n "$archiver_list_spec"; then
-+	  func_verbose "using command file archive linking..."
-+	  for obj in $oldobjs
-+	  do
-+	    func_to_tool_file "$obj"
-+	    $ECHO "$func_to_tool_file_result"
-+	  done > $output_objdir/$libname.libcmd
-+	  func_to_tool_file "$output_objdir/$libname.libcmd"
-+	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
-+	  cmds=$old_archive_cmds
-+	else
-+	  # the command line is too long to link in one step, link in parts
-+	  func_verbose "using piecewise archive linking..."
-+	  save_RANLIB=$RANLIB
-+	  RANLIB=:
-+	  objlist=
-+	  concat_cmds=
-+	  save_oldobjs=$oldobjs
-+	  oldobjs=
-+	  # Is there a better way of finding the last object in the list?
-+	  for obj in $save_oldobjs
-+	  do
-+	    last_oldobj=$obj
-+	  done
-+	  eval test_cmds=\"$old_archive_cmds\"
-+	  func_len " $test_cmds"
-+	  len0=$func_len_result
-+	  len=$len0
-+	  for obj in $save_oldobjs
-+	  do
-+	    func_len " $obj"
-+	    func_arith $len + $func_len_result
-+	    len=$func_arith_result
-+	    func_append objlist " $obj"
-+	    if test "$len" -lt "$max_cmd_len"; then
-+	      :
-+	    else
-+	      # the above command should be used before it gets too long
-+	      oldobjs=$objlist
-+	      if test "$obj" = "$last_oldobj" ; then
-+		RANLIB=$save_RANLIB
-+	      fi
-+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-+	      objlist=
-+	      len=$len0
-+	    fi
-+	  done
-+	  RANLIB=$save_RANLIB
-+	  oldobjs=$objlist
-+	  if test "X$oldobjs" = "X" ; then
-+	    eval cmds=\"\$concat_cmds\"
-+	  else
-+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
-+	  fi
-+	fi
-+      fi
-+      func_execute_cmds "$cmds" 'exit $?'
-+    done
-+
-+    test -n "$generated" && \
-+      func_show_eval "${RM}r$generated"
-+
-+    # Now create the libtool archive.
-+    case $output in
-+    *.la)
-+      old_library=
-+      test "$build_old_libs" = yes && old_library="$libname.$libext"
-+      func_verbose "creating $output"
-+
-+      # Preserve any variables that may affect compiler behavior
-+      for var in $variables_saved_for_relink; do
-+	if eval test -z \"\${$var+set}\"; then
-+	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-+	elif eval var_value=\$$var; test -z "$var_value"; then
-+	  relink_command="$var=; export $var; $relink_command"
-+	else
-+	  func_quote_for_eval "$var_value"
-+	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
-+	fi
-+      done
-+      # Quote the link command for shipping.
-+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-+      if test "$hardcode_automatic" = yes ; then
-+	relink_command=
-+      fi
-+
-+      # Only create the output if not a dry run.
-+      $opt_dry_run || {
-+	for installed in no yes; do
-+	  if test "$installed" = yes; then
-+	    if test -z "$install_libdir"; then
-+	      break
-+	    fi
-+	    output="$output_objdir/$outputname"i
-+	    # Replace all uninstalled libtool libraries with the installed ones
-+	    newdependency_libs=
-+	    for deplib in $dependency_libs; do
-+	      case $deplib in
-+	      *.la)
-+		func_basename "$deplib"
-+		name="$func_basename_result"
-+		func_resolve_sysroot "$deplib"
-+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
-+		test -z "$libdir" && \
-+		  func_fatal_error "\`$deplib' is not a valid libtool archive"
-+		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
-+		;;
-+	      -L*)
-+		func_stripname -L '' "$deplib"
-+		func_replace_sysroot "$func_stripname_result"
-+		func_append newdependency_libs " -L$func_replace_sysroot_result"
-+		;;
-+	      -R*)
-+		func_stripname -R '' "$deplib"
-+		func_replace_sysroot "$func_stripname_result"
-+		func_append newdependency_libs " -R$func_replace_sysroot_result"
-+		;;
-+	      *) func_append newdependency_libs " $deplib" ;;
-+	      esac
-+	    done
-+	    dependency_libs="$newdependency_libs"
-+	    newdlfiles=
-+
-+	    for lib in $dlfiles; do
-+	      case $lib in
-+	      *.la)
-+	        func_basename "$lib"
-+		name="$func_basename_result"
-+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-+		test -z "$libdir" && \
-+		  func_fatal_error "\`$lib' is not a valid libtool archive"
-+		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
-+		;;
-+	      *) func_append newdlfiles " $lib" ;;
-+	      esac
-+	    done
-+	    dlfiles="$newdlfiles"
-+	    newdlprefiles=
-+	    for lib in $dlprefiles; do
-+	      case $lib in
-+	      *.la)
-+		# Only pass preopened files to the pseudo-archive (for
-+		# eventual linking with the app. that links it) if we
-+		# didn't already link the preopened objects directly into
-+		# the library:
-+		func_basename "$lib"
-+		name="$func_basename_result"
-+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-+		test -z "$libdir" && \
-+		  func_fatal_error "\`$lib' is not a valid libtool archive"
-+		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
-+		;;
-+	      esac
-+	    done
-+	    dlprefiles="$newdlprefiles"
-+	  else
-+	    newdlfiles=
-+	    for lib in $dlfiles; do
-+	      case $lib in
-+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-+		*) abs=`pwd`"/$lib" ;;
-+	      esac
-+	      func_append newdlfiles " $abs"
-+	    done
-+	    dlfiles="$newdlfiles"
-+	    newdlprefiles=
-+	    for lib in $dlprefiles; do
-+	      case $lib in
-+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-+		*) abs=`pwd`"/$lib" ;;
-+	      esac
-+	      func_append newdlprefiles " $abs"
-+	    done
-+	    dlprefiles="$newdlprefiles"
-+	  fi
-+	  $RM $output
-+	  # place dlname in correct position for cygwin
-+	  # In fact, it would be nice if we could use this code for all target
-+	  # systems that can't hard-code library paths into their executables
-+	  # and that have no shared library path variable independent of PATH,
-+	  # but it turns out we can't easily determine that from inspecting
-+	  # libtool variables, so we have to hard-code the OSs to which it
-+	  # applies here; at the moment, that means platforms that use the PE
-+	  # object format with DLL files.  See the long comment at the top of
-+	  # tests/bindir.at for full details.
-+	  tdlname=$dlname
-+	  case $host,$output,$installed,$module,$dlname in
-+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
-+	      # If a -bindir argument was supplied, place the dll there.
-+	      if test "x$bindir" != x ;
-+	      then
-+		func_relative_path "$install_libdir" "$bindir"
-+		tdlname=$func_relative_path_result$dlname
-+	      else
-+		# Otherwise fall back on heuristic.
-+		tdlname=../bin/$dlname
-+	      fi
-+	      ;;
-+	  esac
-+	  $ECHO > $output "\
-+# $outputname - a libtool library file
-+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-+#
-+# Please DO NOT delete this file!
-+# It is necessary for linking the library.
-+
-+# The name that we can dlopen(3).
-+dlname='$tdlname'
-+
-+# Names of this library.
-+library_names='$library_names'
-+
-+# The name of the static archive.
-+old_library='$old_library'
-+
-+# Linker flags that can not go in dependency_libs.
-+inherited_linker_flags='$new_inherited_linker_flags'
-+
-+# Libraries that this one depends upon.
-+dependency_libs='$dependency_libs'
-+
-+# Names of additional weak libraries provided by this library
-+weak_library_names='$weak_libs'
-+
-+# Version information for $libname.
-+current=$current
-+age=$age
-+revision=$revision
-+
-+# Is this an already installed library?
-+installed=$installed
-+
-+# Should we warn about portability when linking against -modules?
-+shouldnotlink=$module
-+
-+# Files to dlopen/dlpreopen
-+dlopen='$dlfiles'
-+dlpreopen='$dlprefiles'
-+
-+# Directory that this library needs to be installed in:
-+libdir='$install_libdir'"
-+	  if test "$installed" = no && test "$need_relink" = yes; then
-+	    $ECHO >> $output "\
-+relink_command=\"$relink_command\""
-+	  fi
-+	done
-+      }
-+
-+      # Do a symbolic link so that the libtool archive can be found in
-+      # LD_LIBRARY_PATH before the program is installed.
-+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
-+      ;;
-+    esac
-+    exit $EXIT_SUCCESS
-+}
-+
-+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
-+    func_mode_link ${1+"$@"}
-+
-+
-+# func_mode_uninstall arg...
-+func_mode_uninstall ()
-+{
-+    $opt_debug
-+    RM="$nonopt"
-+    files=
-+    rmforce=
-+    exit_status=0
-+
-+    # This variable tells wrapper scripts just to set variables rather
-+    # than running their programs.
-+    libtool_install_magic="$magic"
-+
-+    for arg
-+    do
-+      case $arg in
-+      -f) func_append RM " $arg"; rmforce=yes ;;
-+      -*) func_append RM " $arg" ;;
-+      *) func_append files " $arg" ;;
-+      esac
-+    done
-+
-+    test -z "$RM" && \
-+      func_fatal_help "you must specify an RM program"
-+
-+    rmdirs=
-+
-+    for file in $files; do
-+      func_dirname "$file" "" "."
-+      dir="$func_dirname_result"
-+      if test "X$dir" = X.; then
-+	odir="$objdir"
-+      else
-+	odir="$dir/$objdir"
-+      fi
-+      func_basename "$file"
-+      name="$func_basename_result"
-+      test "$opt_mode" = uninstall && odir="$dir"
-+
-+      # Remember odir for removal later, being careful to avoid duplicates
-+      if test "$opt_mode" = clean; then
-+	case " $rmdirs " in
-+	  *" $odir "*) ;;
-+	  *) func_append rmdirs " $odir" ;;
-+	esac
-+      fi
-+
-+      # Don't error if the file doesn't exist and rm -f was used.
-+      if { test -L "$file"; } >/dev/null 2>&1 ||
-+	 { test -h "$file"; } >/dev/null 2>&1 ||
-+	 test -f "$file"; then
-+	:
-+      elif test -d "$file"; then
-+	exit_status=1
-+	continue
-+      elif test "$rmforce" = yes; then
-+	continue
-+      fi
-+
-+      rmfiles="$file"
-+
-+      case $name in
-+      *.la)
-+	# Possibly a libtool archive, so verify it.
-+	if func_lalib_p "$file"; then
-+	  func_source $dir/$name
-+
-+	  # Delete the libtool libraries and symlinks.
-+	  for n in $library_names; do
-+	    func_append rmfiles " $odir/$n"
-+	  done
-+	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-+
-+	  case "$opt_mode" in
-+	  clean)
-+	    case " $library_names " in
-+	    *" $dlname "*) ;;
-+	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
-+	    esac
-+	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
-+	    ;;
-+	  uninstall)
-+	    if test -n "$library_names"; then
-+	      # Do each command in the postuninstall commands.
-+	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
-+	    fi
-+
-+	    if test -n "$old_library"; then
-+	      # Do each command in the old_postuninstall commands.
-+	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
-+	    fi
-+	    # FIXME: should reinstall the best remaining shared library.
-+	    ;;
-+	  esac
-+	fi
-+	;;
-+
-+      *.lo)
-+	# Possibly a libtool object, so verify it.
-+	if func_lalib_p "$file"; then
-+
-+	  # Read the .lo file
-+	  func_source $dir/$name
-+
-+	  # Add PIC object to the list of files to remove.
-+	  if test -n "$pic_object" &&
-+	     test "$pic_object" != none; then
-+	    func_append rmfiles " $dir/$pic_object"
-+	  fi
-+
-+	  # Add non-PIC object to the list of files to remove.
-+	  if test -n "$non_pic_object" &&
-+	     test "$non_pic_object" != none; then
-+	    func_append rmfiles " $dir/$non_pic_object"
-+	  fi
-+	fi
-+	;;
-+
-+      *)
-+	if test "$opt_mode" = clean ; then
-+	  noexename=$name
-+	  case $file in
-+	  *.exe)
-+	    func_stripname '' '.exe' "$file"
-+	    file=$func_stripname_result
-+	    func_stripname '' '.exe' "$name"
-+	    noexename=$func_stripname_result
-+	    # $file with .exe has already been added to rmfiles,
-+	    # add $file without .exe
-+	    func_append rmfiles " $file"
-+	    ;;
-+	  esac
-+	  # Do a test to see if this is a libtool program.
-+	  if func_ltwrapper_p "$file"; then
-+	    if func_ltwrapper_executable_p "$file"; then
-+	      func_ltwrapper_scriptname "$file"
-+	      relink_command=
-+	      func_source $func_ltwrapper_scriptname_result
-+	      func_append rmfiles " $func_ltwrapper_scriptname_result"
-+	    else
-+	      relink_command=
-+	      func_source $dir/$noexename
-+	    fi
-+
-+	    # note $name still contains .exe if it was in $file originally
-+	    # as does the version of $file that was added into $rmfiles
-+	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
-+	    if test "$fast_install" = yes && test -n "$relink_command"; then
-+	      func_append rmfiles " $odir/lt-$name"
-+	    fi
-+	    if test "X$noexename" != "X$name" ; then
-+	      func_append rmfiles " $odir/lt-${noexename}.c"
-+	    fi
-+	  fi
-+	fi
-+	;;
-+      esac
-+      func_show_eval "$RM $rmfiles" 'exit_status=1'
-+    done
-+
-+    # Try to remove the ${objdir}s in the directories where we deleted files
-+    for dir in $rmdirs; do
-+      if test -d "$dir"; then
-+	func_show_eval "rmdir $dir >/dev/null 2>&1"
-+      fi
-+    done
-+
-+    exit $exit_status
-+}
-+
-+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
-+    func_mode_uninstall ${1+"$@"}
-+
-+test -z "$opt_mode" && {
-+  help="$generic_help"
-+  func_fatal_help "you must specify a MODE"
-+}
-+
-+test -z "$exec_cmd" && \
-+  func_fatal_help "invalid operation mode \`$opt_mode'"
-+
-+if test -n "$exec_cmd"; then
-+  eval exec "$exec_cmd"
-+  exit $EXIT_FAILURE
-+fi
-+
-+exit $exit_status
-+
-+
-+# The TAGs below are defined such that we never get into a situation
-+# in which we disable both kinds of libraries.  Given conflicting
-+# choices, we go for a static library, that is the most portable,
-+# since we can't tell whether shared libraries were disabled because
-+# the user asked for that or because the platform doesn't support
-+# them.  This is particularly important on AIX, because we don't
-+# support having both static and shared libraries enabled at the same
-+# time on that platform, so we default to a shared-only configuration.
-+# If a disable-shared tag is given, we'll fallback to a static-only
-+# configuration.  But we'll never go from static-only to shared-only.
-+
-+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-+build_libtool_libs=no
-+build_old_libs=yes
-+# ### END LIBTOOL TAG CONFIG: disable-shared
-+
-+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-+# ### END LIBTOOL TAG CONFIG: disable-static
-+
-+# Local Variables:
-+# mode:shell-script
-+# sh-indentation:2
-+# End:
-+# vi:sw=2
-+
-diff --git a/libclamav/libmspack-0.4alpha/m4/libtool.m4 b/libclamav/libmspack-0.4alpha/m4/libtool.m4
-new file mode 100644
-index 000000000000..828104cfde21
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/m4/libtool.m4
-@@ -0,0 +1,8001 @@
-+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-+#
-+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-+#                 Foundation, Inc.
-+#   Written by Gordon Matzigkeit, 1996
-+#
-+# This file 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.
-+
-+m4_define([_LT_COPYING], [dnl
-+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-+#                 Foundation, Inc.
-+#   Written by Gordon Matzigkeit, 1996
-+#
-+#   This file is part of GNU Libtool.
-+#
-+# GNU Libtool 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.
-+#
-+# As a special exception to the GNU General Public License,
-+# if you distribute this file as part of a program or library that
-+# is built using GNU Libtool, you may include this file under the
-+# same distribution terms that you use for the rest of that program.
-+#
-+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-+# obtained by writing to the Free Software Foundation, Inc.,
-+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-+])
-+
-+# serial 57 LT_INIT
-+
-+
-+# LT_PREREQ(VERSION)
-+# ------------------
-+# Complain and exit if this libtool version is less that VERSION.
-+m4_defun([LT_PREREQ],
-+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
-+       [m4_default([$3],
-+		   [m4_fatal([Libtool version $1 or higher is required],
-+		             63)])],
-+       [$2])])
-+
-+
-+# _LT_CHECK_BUILDDIR
-+# ------------------
-+# Complain if the absolute build directory name contains unusual characters
-+m4_defun([_LT_CHECK_BUILDDIR],
-+[case `pwd` in
-+  *\ * | *\	*)
-+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-+esac
-+])
-+
-+
-+# LT_INIT([OPTIONS])
-+# ------------------
-+AC_DEFUN([LT_INIT],
-+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-+AC_BEFORE([$0], [LT_LANG])dnl
-+AC_BEFORE([$0], [LT_OUTPUT])dnl
-+AC_BEFORE([$0], [LTDL_INIT])dnl
-+m4_require([_LT_CHECK_BUILDDIR])dnl
-+
-+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-+dnl unless we require an AC_DEFUNed macro:
-+AC_REQUIRE([LTOPTIONS_VERSION])dnl
-+AC_REQUIRE([LTSUGAR_VERSION])dnl
-+AC_REQUIRE([LTVERSION_VERSION])dnl
-+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-+m4_require([_LT_PROG_LTMAIN])dnl
-+
-+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-+
-+dnl Parse OPTIONS
-+_LT_SET_OPTIONS([$0], [$1])
-+
-+# This can be used to rebuild libtool when needed
-+LIBTOOL_DEPS="$ltmain"
-+
-+# Always use our own libtool.
-+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+AC_SUBST(LIBTOOL)dnl
-+
-+_LT_SETUP
-+
-+# Only expand once:
-+m4_define([LT_INIT])
-+])# LT_INIT
-+
-+# Old names:
-+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-+
-+
-+# _LT_CC_BASENAME(CC)
-+# -------------------
-+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-+m4_defun([_LT_CC_BASENAME],
-+[for cc_temp in $1""; do
-+  case $cc_temp in
-+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-+    \-*) ;;
-+    *) break;;
-+  esac
-+done
-+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-+])
-+
-+
-+# _LT_FILEUTILS_DEFAULTS
-+# ----------------------
-+# It is okay to use these file commands and assume they have been set
-+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-+m4_defun([_LT_FILEUTILS_DEFAULTS],
-+[: ${CP="cp -f"}
-+: ${MV="mv -f"}
-+: ${RM="rm -f"}
-+])# _LT_FILEUTILS_DEFAULTS
-+
-+
-+# _LT_SETUP
-+# ---------
-+m4_defun([_LT_SETUP],
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-+
-+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-+dnl
-+_LT_DECL([], [host_alias], [0], [The host system])dnl
-+_LT_DECL([], [host], [0])dnl
-+_LT_DECL([], [host_os], [0])dnl
-+dnl
-+_LT_DECL([], [build_alias], [0], [The build system])dnl
-+_LT_DECL([], [build], [0])dnl
-+_LT_DECL([], [build_os], [0])dnl
-+dnl
-+AC_REQUIRE([AC_PROG_CC])dnl
-+AC_REQUIRE([LT_PATH_LD])dnl
-+AC_REQUIRE([LT_PATH_NM])dnl
-+dnl
-+AC_REQUIRE([AC_PROG_LN_S])dnl
-+test -z "$LN_S" && LN_S="ln -s"
-+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-+dnl
-+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-+dnl
-+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-+m4_require([_LT_CMD_RELOAD])dnl
-+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-+m4_require([_LT_WITH_SYSROOT])dnl
-+
-+_LT_CONFIG_LIBTOOL_INIT([
-+# See if we are running on zsh, and set the options which allow our
-+# commands through without removal of \ escapes INIT.
-+if test -n "\${ZSH_VERSION+set}" ; then
-+   setopt NO_GLOB_SUBST
-+fi
-+])
-+if test -n "${ZSH_VERSION+set}" ; then
-+   setopt NO_GLOB_SUBST
-+fi
-+
-+_LT_CHECK_OBJDIR
-+
-+m4_require([_LT_TAG_COMPILER])dnl
-+
-+case $host_os in
-+aix3*)
-+  # AIX sometimes has problems with the GCC collect2 program.  For some
-+  # reason, if we set the COLLECT_NAMES environment variable, the problems
-+  # vanish in a puff of smoke.
-+  if test "X${COLLECT_NAMES+set}" != Xset; then
-+    COLLECT_NAMES=
-+    export COLLECT_NAMES
-+  fi
-+  ;;
-+esac
-+
-+# Global variables:
-+ofile=libtool
-+can_build_shared=yes
-+
-+# All known linkers require a `.a' archive for static linking (except MSVC,
-+# which needs '.lib').
-+libext=a
-+
-+with_gnu_ld="$lt_cv_prog_gnu_ld"
-+
-+old_CC="$CC"
-+old_CFLAGS="$CFLAGS"
-+
-+# Set sane defaults for various variables
-+test -z "$CC" && CC=cc
-+test -z "$LTCC" && LTCC=$CC
-+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-+test -z "$LD" && LD=ld
-+test -z "$ac_objext" && ac_objext=o
-+
-+_LT_CC_BASENAME([$compiler])
-+
-+# Only perform the check for file, if the check method requires it
-+test -z "$MAGIC_CMD" && MAGIC_CMD=file
-+case $deplibs_check_method in
-+file_magic*)
-+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-+    _LT_PATH_MAGIC
-+  fi
-+  ;;
-+esac
-+
-+# Use C for the default configuration in the libtool script
-+LT_SUPPORTED_TAG([CC])
-+_LT_LANG_C_CONFIG
-+_LT_LANG_DEFAULT_CONFIG
-+_LT_CONFIG_COMMANDS
-+])# _LT_SETUP
-+
-+
-+# _LT_PREPARE_SED_QUOTE_VARS
-+# --------------------------
-+# Define a few sed substitution that help us do robust quoting.
-+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-+[# Backslashify metacharacters that are still active within
-+# double-quoted strings.
-+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'
-+
-+# Sed substitution to delay expansion of an escaped single quote.
-+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-+
-+# Sed substitution to avoid accidental globbing in evaled expressions
-+no_glob_subst='s/\*/\\\*/g'
-+])
-+
-+# _LT_PROG_LTMAIN
-+# ---------------
-+# Note that this code is called both from `configure', and `config.status'
-+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-+# `config.status' has no value for ac_aux_dir unless we are using Automake,
-+# so we pass a copy along to make sure it has a sensible value anyway.
-+m4_defun([_LT_PROG_LTMAIN],
-+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-+ltmain="$ac_aux_dir/ltmain.sh"
-+])# _LT_PROG_LTMAIN
-+
-+
-+## ------------------------------------- ##
-+## Accumulate code for creating libtool. ##
-+## ------------------------------------- ##
-+
-+# So that we can recreate a full libtool script including additional
-+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-+# in macros and then make a single call at the end using the `libtool'
-+# label.
-+
-+
-+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-+# ----------------------------------------
-+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-+m4_define([_LT_CONFIG_LIBTOOL_INIT],
-+[m4_ifval([$1],
-+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
-+                     [$1
-+])])])
-+
-+# Initialize.
-+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-+
-+
-+# _LT_CONFIG_LIBTOOL([COMMANDS])
-+# ------------------------------
-+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-+m4_define([_LT_CONFIG_LIBTOOL],
-+[m4_ifval([$1],
-+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
-+                     [$1
-+])])])
-+
-+# Initialize.
-+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-+
-+
-+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-+# -----------------------------------------------------
-+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-+[_LT_CONFIG_LIBTOOL([$1])
-+_LT_CONFIG_LIBTOOL_INIT([$2])
-+])
-+
-+
-+# _LT_FORMAT_COMMENT([COMMENT])
-+# -----------------------------
-+# Add leading comment marks to the start of each line, and a trailing
-+# full-stop to the whole comment if one is not present already.
-+m4_define([_LT_FORMAT_COMMENT],
-+[m4_ifval([$1], [
-+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
-+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-+)])
-+
-+
-+
-+## ------------------------ ##
-+## FIXME: Eliminate VARNAME ##
-+## ------------------------ ##
-+
-+
-+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-+# -------------------------------------------------------------------
-+# CONFIGNAME is the name given to the value in the libtool script.
-+# VARNAME is the (base) name used in the configure script.
-+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-+# VARNAME.  Any other value will be used directly.
-+m4_define([_LT_DECL],
-+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
-+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
-+	[m4_ifval([$1], [$1], [$2])])
-+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
-+    m4_ifval([$4],
-+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
-+    lt_dict_add_subkey([lt_decl_dict], [$2],
-+	[tagged?], [m4_ifval([$5], [yes], [no])])])
-+])
-+
-+
-+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-+# --------------------------------------------------------
-+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-+
-+
-+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-+# ------------------------------------------------
-+m4_define([lt_decl_tag_varnames],
-+[_lt_decl_filter([tagged?], [yes], $@)])
-+
-+
-+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-+# ---------------------------------------------------------
-+m4_define([_lt_decl_filter],
-+[m4_case([$#],
-+  [0], [m4_fatal([$0: too few arguments: $#])],
-+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
-+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
-+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
-+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-+])
-+
-+
-+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-+# --------------------------------------------------
-+m4_define([lt_decl_quote_varnames],
-+[_lt_decl_filter([value], [1], $@)])
-+
-+
-+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-+# ---------------------------------------------------
-+m4_define([lt_decl_dquote_varnames],
-+[_lt_decl_filter([value], [2], $@)])
-+
-+
-+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-+# ---------------------------------------------------
-+m4_define([lt_decl_varnames_tagged],
-+[m4_assert([$# <= 2])dnl
-+_$0(m4_quote(m4_default([$1], [[, ]])),
-+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
-+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-+m4_define([_lt_decl_varnames_tagged],
-+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-+
-+
-+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-+# ------------------------------------------------
-+m4_define([lt_decl_all_varnames],
-+[_$0(m4_quote(m4_default([$1], [[, ]])),
-+     m4_if([$2], [],
-+	   m4_quote(lt_decl_varnames),
-+	m4_quote(m4_shift($@))))[]dnl
-+])
-+m4_define([_lt_decl_all_varnames],
-+[lt_join($@, lt_decl_varnames_tagged([$1],
-+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-+])
-+
-+
-+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-+# ------------------------------------
-+# Quote a variable value, and forward it to `config.status' so that its
-+# declaration there will have the same value as in `configure'.  VARNAME
-+# must have a single quote delimited value for this to work.
-+m4_define([_LT_CONFIG_STATUS_DECLARE],
-+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-+
-+
-+# _LT_CONFIG_STATUS_DECLARATIONS
-+# ------------------------------
-+# We delimit libtool config variables with single quotes, so when
-+# we write them to config.status, we have to be sure to quote all
-+# embedded single quotes properly.  In configure, this macro expands
-+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-+#
-+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
-+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-+
-+
-+# _LT_LIBTOOL_TAGS
-+# ----------------
-+# Output comment and list of tags supported by the script
-+m4_defun([_LT_LIBTOOL_TAGS],
-+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-+available_tags="_LT_TAGS"dnl
-+])
-+
-+
-+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-+# -----------------------------------
-+# Extract the dictionary values for VARNAME (optionally with TAG) and
-+# expand to a commented shell variable setting:
-+#
-+#    # Some comment about what VAR is for.
-+#    visible_name=$lt_internal_name
-+m4_define([_LT_LIBTOOL_DECLARE],
-+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
-+					   [description])))[]dnl
-+m4_pushdef([_libtool_name],
-+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
-+    [0], [_libtool_name=[$]$1],
-+    [1], [_libtool_name=$lt_[]$1],
-+    [2], [_libtool_name=$lt_[]$1],
-+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-+])
-+
-+
-+# _LT_LIBTOOL_CONFIG_VARS
-+# -----------------------
-+# Produce commented declarations of non-tagged libtool config variables
-+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
-+# section) are produced by _LT_LIBTOOL_TAG_VARS.
-+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-+[m4_foreach([_lt_var],
-+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
-+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-+
-+
-+# _LT_LIBTOOL_TAG_VARS(TAG)
-+# -------------------------
-+m4_define([_LT_LIBTOOL_TAG_VARS],
-+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
-+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-+
-+
-+# _LT_TAGVAR(VARNAME, [TAGNAME])
-+# ------------------------------
-+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-+
-+
-+# _LT_CONFIG_COMMANDS
-+# -------------------
-+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
-+# variables for single and double quote escaping we saved from calls
-+# to _LT_DECL, we can put quote escaped variables declarations
-+# into `config.status', and then the shell code to quote escape them in
-+# for loops in `config.status'.  Finally, any additional code accumulated
-+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-+m4_defun([_LT_CONFIG_COMMANDS],
-+[AC_PROVIDE_IFELSE([LT_OUTPUT],
-+	dnl If the libtool generation code has been placed in $CONFIG_LT,
-+	dnl instead of duplicating it all over again into config.status,
-+	dnl then we will have config.status run $CONFIG_LT later, so it
-+	dnl needs to know what name is stored there:
-+        [AC_CONFIG_COMMANDS([libtool],
-+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
-+    dnl If the libtool generation code is destined for config.status,
-+    dnl expand the accumulated commands and init code now:
-+    [AC_CONFIG_COMMANDS([libtool],
-+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-+])#_LT_CONFIG_COMMANDS
-+
-+
-+# Initialize.
-+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-+[
-+
-+# The HP-UX ksh and POSIX shell print the target directory to stdout
-+# if CDPATH is set.
-+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-+
-+sed_quote_subst='$sed_quote_subst'
-+double_quote_subst='$double_quote_subst'
-+delay_variable_subst='$delay_variable_subst'
-+_LT_CONFIG_STATUS_DECLARATIONS
-+LTCC='$LTCC'
-+LTCFLAGS='$LTCFLAGS'
-+compiler='$compiler_DEFAULT'
-+
-+# A function that is used when there is no print builtin or printf.
-+func_fallback_echo ()
-+{
-+  eval 'cat <<_LTECHO_EOF
-+\$[]1
-+_LTECHO_EOF'
-+}
-+
-+# Quote evaled strings.
-+for var in lt_decl_all_varnames([[ \
-+]], lt_decl_quote_varnames); do
-+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-+    *[[\\\\\\\`\\"\\\$]]*)
-+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-+      ;;
-+    *)
-+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-+      ;;
-+    esac
-+done
-+
-+# Double-quote double-evaled strings.
-+for var in lt_decl_all_varnames([[ \
-+]], lt_decl_dquote_varnames); do
-+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-+    *[[\\\\\\\`\\"\\\$]]*)
-+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-+      ;;
-+    *)
-+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-+      ;;
-+    esac
-+done
-+
-+_LT_OUTPUT_LIBTOOL_INIT
-+])
-+
-+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-+# ------------------------------------
-+# Generate a child script FILE with all initialization necessary to
-+# reuse the environment learned by the parent script, and make the
-+# file executable.  If COMMENT is supplied, it is inserted after the
-+# `#!' sequence but before initialization text begins.  After this
-+# macro, additional text can be appended to FILE to form the body of
-+# the child script.  The macro ends with non-zero status if the
-+# file could not be fully written (such as if the disk is full).
-+m4_ifdef([AS_INIT_GENERATED],
-+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-+[m4_defun([_LT_GENERATED_FILE_INIT],
-+[m4_require([AS_PREPARE])]dnl
-+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-+[lt_write_fail=0
-+cat >$1 <<_ASEOF || lt_write_fail=1
-+#! $SHELL
-+# Generated by $as_me.
-+$2
-+SHELL=\${CONFIG_SHELL-$SHELL}
-+export SHELL
-+_ASEOF
-+cat >>$1 <<\_ASEOF || lt_write_fail=1
-+AS_SHELL_SANITIZE
-+_AS_PREPARE
-+exec AS_MESSAGE_FD>&1
-+_ASEOF
-+test $lt_write_fail = 0 && chmod +x $1[]dnl
-+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-+
-+# LT_OUTPUT
-+# ---------
-+# This macro allows early generation of the libtool script (before
-+# AC_OUTPUT is called), incase it is used in configure for compilation
-+# tests.
-+AC_DEFUN([LT_OUTPUT],
-+[: ${CONFIG_LT=./config.lt}
-+AC_MSG_NOTICE([creating $CONFIG_LT])
-+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-+[# Run this file to recreate a libtool stub with the current configuration.])
-+
-+cat >>"$CONFIG_LT" <<\_LTEOF
-+lt_cl_silent=false
-+exec AS_MESSAGE_LOG_FD>>config.log
-+{
-+  echo
-+  AS_BOX([Running $as_me.])
-+} >&AS_MESSAGE_LOG_FD
-+
-+lt_cl_help="\
-+\`$as_me' creates a local libtool stub from the current configuration,
-+for use in further configure time tests before the real libtool is
-+generated.
-+
-+Usage: $[0] [[OPTIONS]]
-+
-+  -h, --help      print this help, then exit
-+  -V, --version   print version number, then exit
-+  -q, --quiet     do not print progress messages
-+  -d, --debug     don't remove temporary files
-+
-+Report bugs to <bug-libtool at gnu.org>."
-+
-+lt_cl_version="\
-+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-+configured by $[0], generated by m4_PACKAGE_STRING.
-+
-+Copyright (C) 2011 Free Software Foundation, Inc.
-+This config.lt script is free software; the Free Software Foundation
-+gives unlimited permision to copy, distribute and modify it."
-+
-+while test $[#] != 0
-+do
-+  case $[1] in
-+    --version | --v* | -V )
-+      echo "$lt_cl_version"; exit 0 ;;
-+    --help | --h* | -h )
-+      echo "$lt_cl_help"; exit 0 ;;
-+    --debug | --d* | -d )
-+      debug=: ;;
-+    --quiet | --q* | --silent | --s* | -q )
-+      lt_cl_silent=: ;;
-+
-+    -*) AC_MSG_ERROR([unrecognized option: $[1]
-+Try \`$[0] --help' for more information.]) ;;
-+
-+    *) AC_MSG_ERROR([unrecognized argument: $[1]
-+Try \`$[0] --help' for more information.]) ;;
-+  esac
-+  shift
-+done
-+
-+if $lt_cl_silent; then
-+  exec AS_MESSAGE_FD>/dev/null
-+fi
-+_LTEOF
-+
-+cat >>"$CONFIG_LT" <<_LTEOF
-+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-+_LTEOF
-+
-+cat >>"$CONFIG_LT" <<\_LTEOF
-+AC_MSG_NOTICE([creating $ofile])
-+_LT_OUTPUT_LIBTOOL_COMMANDS
-+AS_EXIT(0)
-+_LTEOF
-+chmod +x "$CONFIG_LT"
-+
-+# configure is writing to config.log, but config.lt does its own redirection,
-+# appending to config.log, which fails on DOS, as config.log is still kept
-+# open by configure.  Here we exec the FD to /dev/null, effectively closing
-+# config.log, so it can be properly (re)opened and appended to by config.lt.
-+lt_cl_success=:
-+test "$silent" = yes &&
-+  lt_config_lt_args="$lt_config_lt_args --quiet"
-+exec AS_MESSAGE_LOG_FD>/dev/null
-+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-+exec AS_MESSAGE_LOG_FD>>config.log
-+$lt_cl_success || AS_EXIT(1)
-+])# LT_OUTPUT
-+
-+
-+# _LT_CONFIG(TAG)
-+# ---------------
-+# If TAG is the built-in tag, create an initial libtool script with a
-+# default configuration from the untagged config vars.  Otherwise add code
-+# to config.status for appending the configuration named by TAG from the
-+# matching tagged config vars.
-+m4_defun([_LT_CONFIG],
-+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+_LT_CONFIG_SAVE_COMMANDS([
-+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
-+  m4_if(_LT_TAG, [C], [
-+    # See if we are running on zsh, and set the options which allow our
-+    # commands through without removal of \ escapes.
-+    if test -n "${ZSH_VERSION+set}" ; then
-+      setopt NO_GLOB_SUBST
-+    fi
-+
-+    cfgfile="${ofile}T"
-+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-+    $RM "$cfgfile"
-+
-+    cat <<_LT_EOF >> "$cfgfile"
-+#! $SHELL
-+
-+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-+#
-+_LT_COPYING
-+_LT_LIBTOOL_TAGS
-+
-+# ### BEGIN LIBTOOL CONFIG
-+_LT_LIBTOOL_CONFIG_VARS
-+_LT_LIBTOOL_TAG_VARS
-+# ### END LIBTOOL CONFIG
-+
-+_LT_EOF
-+
-+  case $host_os in
-+  aix3*)
-+    cat <<\_LT_EOF >> "$cfgfile"
-+# AIX sometimes has problems with the GCC collect2 program.  For some
-+# reason, if we set the COLLECT_NAMES environment variable, the problems
-+# vanish in a puff of smoke.
-+if test "X${COLLECT_NAMES+set}" != Xset; then
-+  COLLECT_NAMES=
-+  export COLLECT_NAMES
-+fi
-+_LT_EOF
-+    ;;
-+  esac
-+
-+  _LT_PROG_LTMAIN
-+
-+  # We use sed instead of cat because bash on DJGPP gets confused if
-+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-+  # text mode, it properly converts lines to CR/LF.  This bash problem
-+  # is reportedly fixed, but why not run on old versions too?
-+  sed '$q' "$ltmain" >> "$cfgfile" \
-+     || (rm -f "$cfgfile"; exit 1)
-+
-+  _LT_PROG_REPLACE_SHELLFNS
-+
-+   mv -f "$cfgfile" "$ofile" ||
-+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-+  chmod +x "$ofile"
-+],
-+[cat <<_LT_EOF >> "$ofile"
-+
-+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-+dnl in a comment (ie after a #).
-+# ### BEGIN LIBTOOL TAG CONFIG: $1
-+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-+# ### END LIBTOOL TAG CONFIG: $1
-+_LT_EOF
-+])dnl /m4_if
-+],
-+[m4_if([$1], [], [
-+    PACKAGE='$PACKAGE'
-+    VERSION='$VERSION'
-+    TIMESTAMP='$TIMESTAMP'
-+    RM='$RM'
-+    ofile='$ofile'], [])
-+])dnl /_LT_CONFIG_SAVE_COMMANDS
-+])# _LT_CONFIG
-+
-+
-+# LT_SUPPORTED_TAG(TAG)
-+# ---------------------
-+# Trace this macro to discover what tags are supported by the libtool
-+# --tag option, using:
-+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
-+AC_DEFUN([LT_SUPPORTED_TAG], [])
-+
-+
-+# C support is built-in for now
-+m4_define([_LT_LANG_C_enabled], [])
-+m4_define([_LT_TAGS], [])
-+
-+
-+# LT_LANG(LANG)
-+# -------------
-+# Enable libtool support for the given language if not already enabled.
-+AC_DEFUN([LT_LANG],
-+[AC_BEFORE([$0], [LT_OUTPUT])dnl
-+m4_case([$1],
-+  [C],			[_LT_LANG(C)],
-+  [C++],		[_LT_LANG(CXX)],
-+  [Go],			[_LT_LANG(GO)],
-+  [Java],		[_LT_LANG(GCJ)],
-+  [Fortran 77],		[_LT_LANG(F77)],
-+  [Fortran],		[_LT_LANG(FC)],
-+  [Windows Resource],	[_LT_LANG(RC)],
-+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
-+    [_LT_LANG($1)],
-+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
-+])# LT_LANG
-+
-+
-+# _LT_LANG(LANGNAME)
-+# ------------------
-+m4_defun([_LT_LANG],
-+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
-+  [LT_SUPPORTED_TAG([$1])dnl
-+  m4_append([_LT_TAGS], [$1 ])dnl
-+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
-+  _LT_LANG_$1_CONFIG($1)])dnl
-+])# _LT_LANG
-+
-+
-+m4_ifndef([AC_PROG_GO], [
-+############################################################
-+# NOTE: This macro has been submitted for inclusion into   #
-+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
-+#  a released version of Autoconf we should remove this    #
-+#  macro and use it instead.                               #
-+############################################################
-+m4_defun([AC_PROG_GO],
-+[AC_LANG_PUSH(Go)dnl
-+AC_ARG_VAR([GOC],     [Go compiler command])dnl
-+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-+_AC_ARG_VAR_LDFLAGS()dnl
-+AC_CHECK_TOOL(GOC, gccgo)
-+if test -z "$GOC"; then
-+  if test -n "$ac_tool_prefix"; then
-+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
-+  fi
-+fi
-+if test -z "$GOC"; then
-+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-+fi
-+])#m4_defun
-+])#m4_ifndef
-+
-+
-+# _LT_LANG_DEFAULT_CONFIG
-+# -----------------------
-+m4_defun([_LT_LANG_DEFAULT_CONFIG],
-+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
-+  [LT_LANG(CXX)],
-+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-+
-+AC_PROVIDE_IFELSE([AC_PROG_F77],
-+  [LT_LANG(F77)],
-+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-+
-+AC_PROVIDE_IFELSE([AC_PROG_FC],
-+  [LT_LANG(FC)],
-+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-+
-+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-+dnl pulling things in needlessly.
-+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-+  [LT_LANG(GCJ)],
-+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-+    [LT_LANG(GCJ)],
-+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
-+      [LT_LANG(GCJ)],
-+      [m4_ifdef([AC_PROG_GCJ],
-+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
-+       m4_ifdef([A][M_PROG_GCJ],
-+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
-+       m4_ifdef([LT_PROG_GCJ],
-+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-+
-+AC_PROVIDE_IFELSE([AC_PROG_GO],
-+  [LT_LANG(GO)],
-+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-+
-+AC_PROVIDE_IFELSE([LT_PROG_RC],
-+  [LT_LANG(RC)],
-+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-+])# _LT_LANG_DEFAULT_CONFIG
-+
-+# Obsolete macros:
-+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-+
-+
-+# _LT_TAG_COMPILER
-+# ----------------
-+m4_defun([_LT_TAG_COMPILER],
-+[AC_REQUIRE([AC_PROG_CC])dnl
-+
-+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-+
-+# If no C compiler was specified, use CC.
-+LTCC=${LTCC-"$CC"}
-+
-+# If no C compiler flags were specified, use CFLAGS.
-+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-+
-+# Allow CC to be a program name with arguments.
-+compiler=$CC
-+])# _LT_TAG_COMPILER
-+
-+
-+# _LT_COMPILER_BOILERPLATE
-+# ------------------------
-+# Check for compiler boilerplate output or warnings with
-+# the simple compiler test code.
-+m4_defun([_LT_COMPILER_BOILERPLATE],
-+[m4_require([_LT_DECL_SED])dnl
-+ac_outfile=conftest.$ac_objext
-+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-+_lt_compiler_boilerplate=`cat conftest.err`
-+$RM conftest*
-+])# _LT_COMPILER_BOILERPLATE
-+
-+
-+# _LT_LINKER_BOILERPLATE
-+# ----------------------
-+# Check for linker boilerplate output or warnings with
-+# the simple link test code.
-+m4_defun([_LT_LINKER_BOILERPLATE],
-+[m4_require([_LT_DECL_SED])dnl
-+ac_outfile=conftest.$ac_objext
-+echo "$lt_simple_link_test_code" >conftest.$ac_ext
-+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-+_lt_linker_boilerplate=`cat conftest.err`
-+$RM -r conftest*
-+])# _LT_LINKER_BOILERPLATE
-+
-+# _LT_REQUIRED_DARWIN_CHECKS
-+# -------------------------
-+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
-+  case $host_os in
-+    rhapsody* | darwin*)
-+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
-+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
-+    AC_CHECK_TOOL([LIPO], [lipo], [:])
-+    AC_CHECK_TOOL([OTOOL], [otool], [:])
-+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
-+    _LT_DECL([], [DSYMUTIL], [1],
-+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
-+    _LT_DECL([], [NMEDIT], [1],
-+      [Tool to change global to local symbols on Mac OS X])
-+    _LT_DECL([], [LIPO], [1],
-+      [Tool to manipulate fat objects and archives on Mac OS X])
-+    _LT_DECL([], [OTOOL], [1],
-+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
-+    _LT_DECL([], [OTOOL64], [1],
-+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-+
-+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
-+      [lt_cv_apple_cc_single_mod=no
-+      if test -z "${LT_MULTI_MODULE}"; then
-+	# By default we will add the -single_module flag. You can override
-+	# by either setting the environment variable LT_MULTI_MODULE
-+	# non-empty at configure time, or by adding -multi_module to the
-+	# link flags.
-+	rm -rf libconftest.dylib*
-+	echo "int foo(void){return 1;}" > conftest.c
-+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
-+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-+        _lt_result=$?
-+	# If there is a non-empty error log, and "single_module"
-+	# appears in it, assume the flag caused a linker warning
-+        if test -s conftest.err && $GREP single_module conftest.err; then
-+	  cat conftest.err >&AS_MESSAGE_LOG_FD
-+	# Otherwise, if the output was created with a 0 exit code from
-+	# the compiler, it worked.
-+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
-+	  lt_cv_apple_cc_single_mod=yes
-+	else
-+	  cat conftest.err >&AS_MESSAGE_LOG_FD
-+	fi
-+	rm -rf libconftest.dylib*
-+	rm -f conftest.*
-+      fi])
-+
-+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
-+      [lt_cv_ld_exported_symbols_list],
-+      [lt_cv_ld_exported_symbols_list=no
-+      save_LDFLAGS=$LDFLAGS
-+      echo "_main" > conftest.sym
-+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-+	[lt_cv_ld_exported_symbols_list=yes],
-+	[lt_cv_ld_exported_symbols_list=no])
-+	LDFLAGS="$save_LDFLAGS"
-+    ])
-+
-+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
-+      [lt_cv_ld_force_load=no
-+      cat > conftest.c << _LT_EOF
-+int forced_loaded() { return 2;}
-+_LT_EOF
-+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
-+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
-+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
-+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
-+      cat > conftest.c << _LT_EOF
-+int main() { return 0;}
-+_LT_EOF
-+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
-+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-+      _lt_result=$?
-+      if test -s conftest.err && $GREP force_load conftest.err; then
-+	cat conftest.err >&AS_MESSAGE_LOG_FD
-+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
-+	lt_cv_ld_force_load=yes
-+      else
-+	cat conftest.err >&AS_MESSAGE_LOG_FD
-+      fi
-+        rm -f conftest.err libconftest.a conftest conftest.c
-+        rm -rf conftest.dSYM
-+    ])
-+    case $host_os in
-+    rhapsody* | darwin1.[[012]])
-+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-+    darwin1.*)
-+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-+    darwin*) # darwin 5.x on
-+      # if running on 10.5 or later, the deployment target defaults
-+      # to the OS version, if on x86, and 10.4, the deployment
-+      # target defaults to 10.4. Don't you love it?
-+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-+	10.[[012]]*)
-+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-+	10.*)
-+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-+      esac
-+    ;;
-+  esac
-+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-+      _lt_dar_single_mod='$single_module'
-+    fi
-+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-+    else
-+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-+    fi
-+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-+      _lt_dsymutil='~$DSYMUTIL $lib || :'
-+    else
-+      _lt_dsymutil=
-+    fi
-+    ;;
-+  esac
-+])
-+
-+
-+# _LT_DARWIN_LINKER_FEATURES([TAG])
-+# ---------------------------------
-+# Checks for linker and compiler features on darwin
-+m4_defun([_LT_DARWIN_LINKER_FEATURES],
-+[
-+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
-+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+  _LT_TAGVAR(hardcode_direct, $1)=no
-+  _LT_TAGVAR(hardcode_automatic, $1)=yes
-+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-+  if test "$lt_cv_ld_force_load" = "yes"; then
-+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
-+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
-+  else
-+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
-+  fi
-+  _LT_TAGVAR(link_all_deplibs, $1)=yes
-+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
-+  case $cc_basename in
-+     ifort*) _lt_dar_can_shared=yes ;;
-+     *) _lt_dar_can_shared=$GCC ;;
-+  esac
-+  if test "$_lt_dar_can_shared" = "yes"; then
-+    output_verbose_link_cmd=func_echo_all
-+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-+    m4_if([$1], [CXX],
-+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-+    fi
-+],[])
-+  else
-+  _LT_TAGVAR(ld_shlibs, $1)=no
-+  fi
-+])
-+
-+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-+# ----------------------------------
-+# Links a minimal program and checks the executable
-+# for the system default hardcoded library path. In most cases,
-+# this is /usr/lib:/lib, but when the MPI compilers are used
-+# the location of the communication and MPI libs are included too.
-+# If we don't find anything, use the default library path according
-+# to the aix ld manual.
-+# Store the results from the different compilers for each TAGNAME.
-+# Allow to override them for all tags through lt_cv_aix_libpath.
-+m4_defun([_LT_SYS_MODULE_PATH_AIX],
-+[m4_require([_LT_DECL_SED])dnl
-+if test "${lt_cv_aix_libpath+set}" = set; then
-+  aix_libpath=$lt_cv_aix_libpath
-+else
-+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
-+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
-+  lt_aix_libpath_sed='[
-+      /Import File Strings/,/^$/ {
-+	  /^0/ {
-+	      s/^0  *\([^ ]*\) *$/\1/
-+	      p
-+	  }
-+      }]'
-+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  # Check for a 64-bit object if we didn't find anything.
-+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  fi],[])
-+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
-+  fi
-+  ])
-+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-+fi
-+])# _LT_SYS_MODULE_PATH_AIX
-+
-+
-+# _LT_SHELL_INIT(ARG)
-+# -------------------
-+m4_define([_LT_SHELL_INIT],
-+[m4_divert_text([M4SH-INIT], [$1
-+])])# _LT_SHELL_INIT
-+
-+
-+
-+# _LT_PROG_ECHO_BACKSLASH
-+# -----------------------
-+# Find how we can fake an echo command that does not interpret backslash.
-+# In particular, with Autoconf 2.60 or later we add some code to the start
-+# of the generated configure script which will find a shell with a builtin
-+# printf (which we can use as an echo command).
-+m4_defun([_LT_PROG_ECHO_BACKSLASH],
-+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-+
-+AC_MSG_CHECKING([how to print strings])
-+# Test print first, because it will be a builtin if present.
-+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-+  ECHO='print -r --'
-+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-+  ECHO='printf %s\n'
-+else
-+  # Use this function as a fallback that always works.
-+  func_fallback_echo ()
-+  {
-+    eval 'cat <<_LTECHO_EOF
-+$[]1
-+_LTECHO_EOF'
-+  }
-+  ECHO='func_fallback_echo'
-+fi
-+
-+# func_echo_all arg...
-+# Invoke $ECHO with all args, space-separated.
-+func_echo_all ()
-+{
-+    $ECHO "$*" 
-+}
-+
-+case "$ECHO" in
-+  printf*) AC_MSG_RESULT([printf]) ;;
-+  print*) AC_MSG_RESULT([print -r]) ;;
-+  *) AC_MSG_RESULT([cat]) ;;
-+esac
-+
-+m4_ifdef([_AS_DETECT_SUGGESTED],
-+[_AS_DETECT_SUGGESTED([
-+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
-+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-+    PATH=/empty FPATH=/empty; export PATH FPATH
-+    test "X`printf %s $ECHO`" = "X$ECHO" \
-+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-+
-+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-+])# _LT_PROG_ECHO_BACKSLASH
-+
-+
-+# _LT_WITH_SYSROOT
-+# ----------------
-+AC_DEFUN([_LT_WITH_SYSROOT],
-+[AC_MSG_CHECKING([for sysroot])
-+AC_ARG_WITH([sysroot],
-+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
-+                        (or the compiler's sysroot if not specified).],
-+[], [with_sysroot=no])
-+
-+dnl lt_sysroot will always be passed unquoted.  We quote it here
-+dnl in case the user passed a directory name.
-+lt_sysroot=
-+case ${with_sysroot} in #(
-+ yes)
-+   if test "$GCC" = yes; then
-+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-+   fi
-+   ;; #(
-+ /*)
-+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   ;; #(
-+ no|'')
-+   ;; #(
-+ *)
-+   AC_MSG_RESULT([${with_sysroot}])
-+   AC_MSG_ERROR([The sysroot must be an absolute path.])
-+   ;;
-+esac
-+
-+ AC_MSG_RESULT([${lt_sysroot:-no}])
-+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-+[dependent libraries, and in which our libraries should be installed.])])
-+
-+# _LT_ENABLE_LOCK
-+# ---------------
-+m4_defun([_LT_ENABLE_LOCK],
-+[AC_ARG_ENABLE([libtool-lock],
-+  [AS_HELP_STRING([--disable-libtool-lock],
-+    [avoid locking (might break parallel builds)])])
-+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-+
-+# Some flags need to be propagated to the compiler or linker for good
-+# libtool support.
-+case $host in
-+ia64-*-hpux*)
-+  # Find out which ABI we are using.
-+  echo 'int i;' > conftest.$ac_ext
-+  if AC_TRY_EVAL(ac_compile); then
-+    case `/usr/bin/file conftest.$ac_objext` in
-+      *ELF-32*)
-+	HPUX_IA64_MODE="32"
-+	;;
-+      *ELF-64*)
-+	HPUX_IA64_MODE="64"
-+	;;
-+    esac
-+  fi
-+  rm -rf conftest*
-+  ;;
-+*-*-irix6*)
-+  # Find out which ABI we are using.
-+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
-+  if AC_TRY_EVAL(ac_compile); then
-+    if test "$lt_cv_prog_gnu_ld" = yes; then
-+      case `/usr/bin/file conftest.$ac_objext` in
-+	*32-bit*)
-+	  LD="${LD-ld} -melf32bsmip"
-+	  ;;
-+	*N32*)
-+	  LD="${LD-ld} -melf32bmipn32"
-+	  ;;
-+	*64-bit*)
-+	  LD="${LD-ld} -melf64bmip"
-+	;;
-+      esac
-+    else
-+      case `/usr/bin/file conftest.$ac_objext` in
-+	*32-bit*)
-+	  LD="${LD-ld} -32"
-+	  ;;
-+	*N32*)
-+	  LD="${LD-ld} -n32"
-+	  ;;
-+	*64-bit*)
-+	  LD="${LD-ld} -64"
-+	  ;;
-+      esac
-+    fi
-+  fi
-+  rm -rf conftest*
-+  ;;
-+
-+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-+  # Find out which ABI we are using.
-+  echo 'int i;' > conftest.$ac_ext
-+  if AC_TRY_EVAL(ac_compile); then
-+    case `/usr/bin/file conftest.o` in
-+      *32-bit*)
-+	case $host in
-+	  x86_64-*kfreebsd*-gnu)
-+	    LD="${LD-ld} -m elf_i386_fbsd"
-+	    ;;
-+	  x86_64-*linux*)
-+	    LD="${LD-ld} -m elf_i386"
-+	    ;;
-+	  ppc64-*linux*|powerpc64-*linux*)
-+	    LD="${LD-ld} -m elf32ppclinux"
-+	    ;;
-+	  s390x-*linux*)
-+	    LD="${LD-ld} -m elf_s390"
-+	    ;;
-+	  sparc64-*linux*)
-+	    LD="${LD-ld} -m elf32_sparc"
-+	    ;;
-+	esac
-+	;;
-+      *64-bit*)
-+	case $host in
-+	  x86_64-*kfreebsd*-gnu)
-+	    LD="${LD-ld} -m elf_x86_64_fbsd"
-+	    ;;
-+	  x86_64-*linux*)
-+	    LD="${LD-ld} -m elf_x86_64"
-+	    ;;
-+	  ppc*-*linux*|powerpc*-*linux*)
-+	    LD="${LD-ld} -m elf64ppc"
-+	    ;;
-+	  s390*-*linux*|s390*-*tpf*)
-+	    LD="${LD-ld} -m elf64_s390"
-+	    ;;
-+	  sparc*-*linux*)
-+	    LD="${LD-ld} -m elf64_sparc"
-+	    ;;
-+	esac
-+	;;
-+    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_LANG_PUSH(C)
-+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-+     AC_LANG_POP])
-+  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
-+  ;;
-+*-*solaris*)
-+  # Find out which ABI we are using.
-+  echo 'int i;' > conftest.$ac_ext
-+  if AC_TRY_EVAL(ac_compile); then
-+    case `/usr/bin/file conftest.o` in
-+    *64-bit*)
-+      case $lt_cv_prog_gnu_ld in
-+      yes*)
-+        case $host in
-+        i?86-*-solaris*)
-+          LD="${LD-ld} -m elf_x86_64"
-+          ;;
-+        sparc*-*-solaris*)
-+          LD="${LD-ld} -m elf64_sparc"
-+          ;;
-+        esac
-+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-+          LD="${LD-ld}_sol2"
-+        fi
-+        ;;
-+      *)
-+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-+	  LD="${LD-ld} -64"
-+	fi
-+	;;
-+      esac
-+      ;;
-+    esac
-+  fi
-+  rm -rf conftest*
-+  ;;
-+esac
-+
-+need_locks="$enable_libtool_lock"
-+])# _LT_ENABLE_LOCK
-+
-+
-+# _LT_PROG_AR
-+# -----------
-+m4_defun([_LT_PROG_AR],
-+[AC_CHECK_TOOLS(AR, [ar], false)
-+: ${AR=ar}
-+: ${AR_FLAGS=cru}
-+_LT_DECL([], [AR], [1], [The archiver])
-+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-+
-+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
-+  [lt_cv_ar_at_file=no
-+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
-+     [echo conftest.$ac_objext > conftest.lst
-+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
-+      AC_TRY_EVAL([lt_ar_try])
-+      if test "$ac_status" -eq 0; then
-+	# Ensure the archiver fails upon bogus file names.
-+	rm -f conftest.$ac_objext libconftest.a
-+	AC_TRY_EVAL([lt_ar_try])
-+	if test "$ac_status" -ne 0; then
-+          lt_cv_ar_at_file=@
-+        fi
-+      fi
-+      rm -f conftest.* libconftest.a
-+     ])
-+  ])
-+
-+if test "x$lt_cv_ar_at_file" = xno; then
-+  archiver_list_spec=
-+else
-+  archiver_list_spec=$lt_cv_ar_at_file
-+fi
-+_LT_DECL([], [archiver_list_spec], [1],
-+  [How to feed a file listing to the archiver])
-+])# _LT_PROG_AR
-+
-+
-+# _LT_CMD_OLD_ARCHIVE
-+# -------------------
-+m4_defun([_LT_CMD_OLD_ARCHIVE],
-+[_LT_PROG_AR
-+
-+AC_CHECK_TOOL(STRIP, strip, :)
-+test -z "$STRIP" && STRIP=:
-+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-+
-+AC_CHECK_TOOL(RANLIB, ranlib, :)
-+test -z "$RANLIB" && RANLIB=:
-+_LT_DECL([], [RANLIB], [1],
-+    [Commands used to install an old-style archive])
-+
-+# Determine commands to create old-style static archives.
-+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-+old_postinstall_cmds='chmod 644 $oldlib'
-+old_postuninstall_cmds=
-+
-+if test -n "$RANLIB"; then
-+  case $host_os in
-+  openbsd*)
-+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
-+    ;;
-+  *)
-+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
-+    ;;
-+  esac
-+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-+fi
-+
-+case $host_os in
-+  darwin*)
-+    lock_old_archive_extraction=yes ;;
-+  *)
-+    lock_old_archive_extraction=no ;;
-+esac
-+_LT_DECL([], [old_postinstall_cmds], [2])
-+_LT_DECL([], [old_postuninstall_cmds], [2])
-+_LT_TAGDECL([], [old_archive_cmds], [2],
-+    [Commands used to build an old-style archive])
-+_LT_DECL([], [lock_old_archive_extraction], [0],
-+    [Whether to use a lock for old archive extraction])
-+])# _LT_CMD_OLD_ARCHIVE
-+
-+
-+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-+# ----------------------------------------------------------------
-+# Check whether the given compiler option works
-+AC_DEFUN([_LT_COMPILER_OPTION],
-+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+m4_require([_LT_DECL_SED])dnl
-+AC_CACHE_CHECK([$1], [$2],
-+  [$2=no
-+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-+   lt_compiler_flag="$3"
-+   # Insert the option either (1) after the last *FLAGS variable, or
-+   # (2) before a word containing "conftest.", or (3) at the end.
-+   # Note that $ac_compile itself does not contain backslashes and begins
-+   # with a dollar sign (not a hyphen), so the echo should work correctly.
-+   # The option is referenced via a variable to avoid confusing sed.
-+   lt_compile=`echo "$ac_compile" | $SED \
-+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-+   -e 's:$: $lt_compiler_flag:'`
-+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-+   (eval "$lt_compile" 2>conftest.err)
-+   ac_status=$?
-+   cat conftest.err >&AS_MESSAGE_LOG_FD
-+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-+   if (exit $ac_status) && test -s "$ac_outfile"; then
-+     # The compiler can only warn and ignore the option if not recognized
-+     # So say no if there are warnings other than the usual output.
-+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-+       $2=yes
-+     fi
-+   fi
-+   $RM conftest*
-+])
-+
-+if test x"[$]$2" = xyes; then
-+    m4_if([$5], , :, [$5])
-+else
-+    m4_if([$6], , :, [$6])
-+fi
-+])# _LT_COMPILER_OPTION
-+
-+# Old name:
-+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-+
-+
-+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
-+# ----------------------------------------------------
-+# Check whether the given linker option works
-+AC_DEFUN([_LT_LINKER_OPTION],
-+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+m4_require([_LT_DECL_SED])dnl
-+AC_CACHE_CHECK([$1], [$2],
-+  [$2=no
-+   save_LDFLAGS="$LDFLAGS"
-+   LDFLAGS="$LDFLAGS $3"
-+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-+     # The linker can only warn and ignore the option if not recognized
-+     # So say no if there are warnings
-+     if test -s conftest.err; then
-+       # Append any errors to the config.log.
-+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-+       if diff conftest.exp conftest.er2 >/dev/null; then
-+         $2=yes
-+       fi
-+     else
-+       $2=yes
-+     fi
-+   fi
-+   $RM -r conftest*
-+   LDFLAGS="$save_LDFLAGS"
-+])
-+
-+if test x"[$]$2" = xyes; then
-+    m4_if([$4], , :, [$4])
-+else
-+    m4_if([$5], , :, [$5])
-+fi
-+])# _LT_LINKER_OPTION
-+
-+# Old name:
-+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-+
-+
-+# LT_CMD_MAX_LEN
-+#---------------
-+AC_DEFUN([LT_CMD_MAX_LEN],
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+# find the maximum length of command line arguments
-+AC_MSG_CHECKING([the maximum length of command line arguments])
-+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-+  i=0
-+  teststring="ABCD"
-+
-+  case $build_os in
-+  msdosdjgpp*)
-+    # On DJGPP, this test can blow up pretty badly due to problems in libc
-+    # (any single argument exceeding 2000 bytes causes a buffer overrun
-+    # during glob expansion).  Even if it were fixed, the result of this
-+    # check would be larger than it should be.
-+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-+    ;;
-+
-+  gnu*)
-+    # Under GNU Hurd, this test is not required because there is
-+    # no limit to the length of command line arguments.
-+    # Libtool will interpret -1 as no limit whatsoever
-+    lt_cv_sys_max_cmd_len=-1;
-+    ;;
-+
-+  cygwin* | mingw* | cegcc*)
-+    # On Win9x/ME, this test blows up -- it succeeds, but takes
-+    # about 5 minutes as the teststring grows exponentially.
-+    # Worse, since 9x/ME are not pre-emptively multitasking,
-+    # you end up with a "frozen" computer, even though with patience
-+    # the test eventually succeeds (with a max line length of 256k).
-+    # Instead, let's just punt: use the minimum linelength reported by
-+    # all of the supported platforms: 8192 (on NT/2K/XP).
-+    lt_cv_sys_max_cmd_len=8192;
-+    ;;
-+
-+  mint*)
-+    # On MiNT this can take a long time and run out of memory.
-+    lt_cv_sys_max_cmd_len=8192;
-+    ;;
-+
-+  amigaos*)
-+    # On AmigaOS with pdksh, this test takes hours, literally.
-+    # So we just punt and use a minimum line length of 8192.
-+    lt_cv_sys_max_cmd_len=8192;
-+    ;;
-+
-+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-+    # This has been around since 386BSD, at least.  Likely further.
-+    if test -x /sbin/sysctl; then
-+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-+    elif test -x /usr/sbin/sysctl; then
-+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-+    else
-+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-+    fi
-+    # And add a safety zone
-+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-+    ;;
-+
-+  interix*)
-+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-+    lt_cv_sys_max_cmd_len=196608
-+    ;;
-+
-+  os2*)
-+    # The test takes a long time on OS/2.
-+    lt_cv_sys_max_cmd_len=8192
-+    ;;
-+
-+  osf*)
-+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-+    # nice to cause kernel panics so lets avoid the loop below.
-+    # First set a reasonable default.
-+    lt_cv_sys_max_cmd_len=16384
-+    #
-+    if test -x /sbin/sysconfig; then
-+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-+      esac
-+    fi
-+    ;;
-+  sco3.2v5*)
-+    lt_cv_sys_max_cmd_len=102400
-+    ;;
-+  sysv5* | sco5v6* | sysv4.2uw2*)
-+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-+    if test -n "$kargmax"; then
-+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
-+    else
-+      lt_cv_sys_max_cmd_len=32768
-+    fi
-+    ;;
-+  *)
-+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-+    if test -n "$lt_cv_sys_max_cmd_len"; then
-+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-+    else
-+      # Make teststring a little bigger before we do anything with it.
-+      # a 1K string should be a reasonable start.
-+      for i in 1 2 3 4 5 6 7 8 ; do
-+        teststring=$teststring$teststring
-+      done
-+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-+      # If test is not a shell built-in, we'll probably end up computing a
-+      # maximum length that is only half of the actual maximum length, but
-+      # we can't tell.
-+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
-+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-+	      test $i != 17 # 1/2 MB should be enough
-+      do
-+        i=`expr $i + 1`
-+        teststring=$teststring$teststring
-+      done
-+      # Only check the string length outside the loop.
-+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-+      teststring=
-+      # Add a significant safety factor because C++ compilers can tack on
-+      # massive amounts of additional arguments before passing them to the
-+      # linker.  It appears as though 1/2 is a usable value.
-+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-+    fi
-+    ;;
-+  esac
-+])
-+if test -n $lt_cv_sys_max_cmd_len ; then
-+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-+else
-+  AC_MSG_RESULT(none)
-+fi
-+max_cmd_len=$lt_cv_sys_max_cmd_len
-+_LT_DECL([], [max_cmd_len], [0],
-+    [What is the maximum length of a command?])
-+])# LT_CMD_MAX_LEN
-+
-+# Old name:
-+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-+
-+
-+# _LT_HEADER_DLFCN
-+# ----------------
-+m4_defun([_LT_HEADER_DLFCN],
-+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-+])# _LT_HEADER_DLFCN
-+
-+
-+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-+# ----------------------------------------------------------------
-+m4_defun([_LT_TRY_DLOPEN_SELF],
-+[m4_require([_LT_HEADER_DLFCN])dnl
-+if test "$cross_compiling" = yes; then :
-+  [$4]
-+else
-+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-+  lt_status=$lt_dlunknown
-+  cat > conftest.$ac_ext <<_LT_EOF
-+[#line $LINENO "configure"
-+#include "confdefs.h"
-+
-+#if HAVE_DLFCN_H
-+#include <dlfcn.h>
-+#endif
-+
-+#include <stdio.h>
-+
-+#ifdef RTLD_GLOBAL
-+#  define LT_DLGLOBAL		RTLD_GLOBAL
-+#else
-+#  ifdef DL_GLOBAL
-+#    define LT_DLGLOBAL		DL_GLOBAL
-+#  else
-+#    define LT_DLGLOBAL		0
-+#  endif
-+#endif
-+
-+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-+   find out it does not work in some platform. */
-+#ifndef LT_DLLAZY_OR_NOW
-+#  ifdef RTLD_LAZY
-+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-+#  else
-+#    ifdef DL_LAZY
-+#      define LT_DLLAZY_OR_NOW		DL_LAZY
-+#    else
-+#      ifdef RTLD_NOW
-+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-+#      else
-+#        ifdef DL_NOW
-+#          define LT_DLLAZY_OR_NOW	DL_NOW
-+#        else
-+#          define LT_DLLAZY_OR_NOW	0
-+#        endif
-+#      endif
-+#    endif
-+#  endif
-+#endif
-+
-+/* When -fvisbility=hidden is used, assume the code has been annotated
-+   correspondingly for the symbols needed.  */
-+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-+int fnord () __attribute__((visibility("default")));
-+#endif
-+
-+int fnord () { return 42; }
-+int main ()
-+{
-+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-+  int status = $lt_dlunknown;
-+
-+  if (self)
-+    {
-+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-+      else
-+        {
-+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-+          else puts (dlerror ());
-+	}
-+      /* dlclose (self); */
-+    }
-+  else
-+    puts (dlerror ());
-+
-+  return status;
-+}]
-+_LT_EOF
-+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
-+    lt_status=$?
-+    case x$lt_status in
-+      x$lt_dlno_uscore) $1 ;;
-+      x$lt_dlneed_uscore) $2 ;;
-+      x$lt_dlunknown|x*) $3 ;;
-+    esac
-+  else :
-+    # compilation failed
-+    $3
-+  fi
-+fi
-+rm -fr conftest*
-+])# _LT_TRY_DLOPEN_SELF
-+
-+
-+# LT_SYS_DLOPEN_SELF
-+# ------------------
-+AC_DEFUN([LT_SYS_DLOPEN_SELF],
-+[m4_require([_LT_HEADER_DLFCN])dnl
-+if test "x$enable_dlopen" != xyes; then
-+  enable_dlopen=unknown
-+  enable_dlopen_self=unknown
-+  enable_dlopen_self_static=unknown
-+else
-+  lt_cv_dlopen=no
-+  lt_cv_dlopen_libs=
-+
-+  case $host_os in
-+  beos*)
-+    lt_cv_dlopen="load_add_on"
-+    lt_cv_dlopen_libs=
-+    lt_cv_dlopen_self=yes
-+    ;;
-+
-+  mingw* | pw32* | cegcc*)
-+    lt_cv_dlopen="LoadLibrary"
-+    lt_cv_dlopen_libs=
-+    ;;
-+
-+  cygwin*)
-+    lt_cv_dlopen="dlopen"
-+    lt_cv_dlopen_libs=
-+    ;;
-+
-+  darwin*)
-+  # if libdl is installed we need to link against it
-+    AC_CHECK_LIB([dl], [dlopen],
-+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-+    lt_cv_dlopen="dyld"
-+    lt_cv_dlopen_libs=
-+    lt_cv_dlopen_self=yes
-+    ])
-+    ;;
-+
-+  *)
-+    AC_CHECK_FUNC([shl_load],
-+	  [lt_cv_dlopen="shl_load"],
-+      [AC_CHECK_LIB([dld], [shl_load],
-+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
-+	[AC_CHECK_FUNC([dlopen],
-+	      [lt_cv_dlopen="dlopen"],
-+	  [AC_CHECK_LIB([dl], [dlopen],
-+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-+	    [AC_CHECK_LIB([svld], [dlopen],
-+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-+	      [AC_CHECK_LIB([dld], [dld_link],
-+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
-+	      ])
-+	    ])
-+	  ])
-+	])
-+      ])
-+    ;;
-+  esac
-+
-+  if test "x$lt_cv_dlopen" != xno; then
-+    enable_dlopen=yes
-+  else
-+    enable_dlopen=no
-+  fi
-+
-+  case $lt_cv_dlopen in
-+  dlopen)
-+    save_CPPFLAGS="$CPPFLAGS"
-+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-+
-+    save_LDFLAGS="$LDFLAGS"
-+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-+
-+    save_LIBS="$LIBS"
-+    LIBS="$lt_cv_dlopen_libs $LIBS"
-+
-+    AC_CACHE_CHECK([whether a program can dlopen itself],
-+	  lt_cv_dlopen_self, [dnl
-+	  _LT_TRY_DLOPEN_SELF(
-+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-+    ])
-+
-+    if test "x$lt_cv_dlopen_self" = xyes; then
-+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-+	  lt_cv_dlopen_self_static, [dnl
-+	  _LT_TRY_DLOPEN_SELF(
-+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-+      ])
-+    fi
-+
-+    CPPFLAGS="$save_CPPFLAGS"
-+    LDFLAGS="$save_LDFLAGS"
-+    LIBS="$save_LIBS"
-+    ;;
-+  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
-+_LT_DECL([dlopen_support], [enable_dlopen], [0],
-+	 [Whether dlopen is supported])
-+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
-+	 [Whether dlopen of programs is supported])
-+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
-+	 [Whether dlopen of statically linked programs is supported])
-+])# LT_SYS_DLOPEN_SELF
-+
-+# Old name:
-+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-+
-+
-+# _LT_COMPILER_C_O([TAGNAME])
-+# ---------------------------
-+# Check to see if options -c and -o are simultaneously supported by compiler.
-+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-+m4_defun([_LT_COMPILER_C_O],
-+[m4_require([_LT_DECL_SED])dnl
-+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+m4_require([_LT_TAG_COMPILER])dnl
-+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-+   $RM -r conftest 2>/dev/null
-+   mkdir conftest
-+   cd conftest
-+   mkdir out
-+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-+
-+   lt_compiler_flag="-o out/conftest2.$ac_objext"
-+   # Insert the option either (1) after the last *FLAGS variable, or
-+   # (2) before a word containing "conftest.", or (3) at the end.
-+   # Note that $ac_compile itself does not contain backslashes and begins
-+   # with a dollar sign (not a hyphen), so the echo should work correctly.
-+   lt_compile=`echo "$ac_compile" | $SED \
-+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-+   -e 's:$: $lt_compiler_flag:'`
-+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-+   (eval "$lt_compile" 2>out/conftest.err)
-+   ac_status=$?
-+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-+   then
-+     # The compiler can only warn and ignore the option if not recognized
-+     # So say no if there are warnings
-+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-+     fi
-+   fi
-+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
-+   $RM conftest*
-+   # SGI C++ compiler will create directory out/ii_files/ for
-+   # template instantiation
-+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-+   $RM out/* && rmdir out
-+   cd ..
-+   $RM -r conftest
-+   $RM conftest*
-+])
-+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
-+	[Does compiler simultaneously support -c and -o options?])
-+])# _LT_COMPILER_C_O
-+
-+
-+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-+# ----------------------------------
-+# Check to see if we can do hard links to lock some files if needed
-+m4_defun([_LT_COMPILER_FILE_LOCKS],
-+[m4_require([_LT_ENABLE_LOCK])dnl
-+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+_LT_COMPILER_C_O([$1])
-+
-+hard_links="nottested"
-+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-+  # do not overwrite the value of need_locks provided by the user
-+  AC_MSG_CHECKING([if we can lock with hard links])
-+  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
-+  AC_MSG_RESULT([$hard_links])
-+  if test "$hard_links" = no; then
-+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-+    need_locks=warn
-+  fi
-+else
-+  need_locks=no
-+fi
-+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-+])# _LT_COMPILER_FILE_LOCKS
-+
-+
-+# _LT_CHECK_OBJDIR
-+# ----------------
-+m4_defun([_LT_CHECK_OBJDIR],
-+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-+[rm -f .libs 2>/dev/null
-+mkdir .libs 2>/dev/null
-+if test -d .libs; then
-+  lt_cv_objdir=.libs
-+else
-+  # MS-DOS does not allow filenames that begin with a dot.
-+  lt_cv_objdir=_libs
-+fi
-+rmdir .libs 2>/dev/null])
-+objdir=$lt_cv_objdir
-+_LT_DECL([], [objdir], [0],
-+         [The name of the directory that contains temporary libtool files])dnl
-+m4_pattern_allow([LT_OBJDIR])dnl
-+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
-+])# _LT_CHECK_OBJDIR
-+
-+
-+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-+# --------------------------------------
-+# Check hardcoding attributes.
-+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-+[AC_MSG_CHECKING([how to hardcode library paths into programs])
-+_LT_TAGVAR(hardcode_action, $1)=
-+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
-+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-+
-+  # We can hardcode non-existent directories.
-+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != 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 "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
-+    # Linking always hardcodes the temporary library directory.
-+    _LT_TAGVAR(hardcode_action, $1)=relink
-+  else
-+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-+    _LT_TAGVAR(hardcode_action, $1)=immediate
-+  fi
-+else
-+  # We cannot hardcode anything, or else we can only hardcode existing
-+  # directories.
-+  _LT_TAGVAR(hardcode_action, $1)=unsupported
-+fi
-+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-+
-+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; 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
-+_LT_TAGDECL([], [hardcode_action], [0],
-+    [How to hardcode a shared library path into an executable])
-+])# _LT_LINKER_HARDCODE_LIBPATH
-+
-+
-+# _LT_CMD_STRIPLIB
-+# ----------------
-+m4_defun([_LT_CMD_STRIPLIB],
-+[m4_require([_LT_DECL_EGREP])
-+striplib=
-+old_striplib=
-+AC_MSG_CHECKING([whether stripping libraries is possible])
-+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-+  AC_MSG_RESULT([yes])
-+else
-+# FIXME - insert some real tests, host_os isn't really good enough
-+  case $host_os in
-+  darwin*)
-+    if test -n "$STRIP" ; then
-+      striplib="$STRIP -x"
-+      old_striplib="$STRIP -S"
-+      AC_MSG_RESULT([yes])
-+    else
-+      AC_MSG_RESULT([no])
-+    fi
-+    ;;
-+  *)
-+    AC_MSG_RESULT([no])
-+    ;;
-+  esac
-+fi
-+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-+_LT_DECL([], [striplib], [1])
-+])# _LT_CMD_STRIPLIB
-+
-+
-+# _LT_SYS_DYNAMIC_LINKER([TAG])
-+# -----------------------------
-+# PORTME Fill in your ld.so characteristics
-+m4_defun([_LT_SYS_DYNAMIC_LINKER],
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+m4_require([_LT_DECL_EGREP])dnl
-+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+m4_require([_LT_DECL_OBJDUMP])dnl
-+m4_require([_LT_DECL_SED])dnl
-+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-+AC_MSG_CHECKING([dynamic linker characteristics])
-+m4_if([$1],
-+	[], [
-+if test "$GCC" = yes; then
-+  case $host_os in
-+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-+    *) lt_awk_arg="/^libraries:/" ;;
-+  esac
-+  case $host_os in
-+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
-+    *) lt_sed_strip_eq="s,=/,/,g" ;;
-+  esac
-+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-+  case $lt_search_path_spec in
-+  *\;*)
-+    # if the path contains ";" then we assume it to be the separator
-+    # otherwise default to the standard path separator (i.e. ":") - it is
-+    # assumed that no part of a normal pathname contains ";" but that should
-+    # okay in the real world where ";" in dirpaths is itself problematic.
-+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-+    ;;
-+  *)
-+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-+    ;;
-+  esac
-+  # Ok, now we have the path, separated by spaces, we can step through it
-+  # and add multilib dir if necessary.
-+  lt_tmp_lt_search_path_spec=
-+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-+  for lt_sys_path in $lt_search_path_spec; do
-+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-+    else
-+      test -d "$lt_sys_path" && \
-+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-+    fi
-+  done
-+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-+BEGIN {RS=" "; FS="/|\n";} {
-+  lt_foo="";
-+  lt_count=0;
-+  for (lt_i = NF; lt_i > 0; lt_i--) {
-+    if ($lt_i != "" && $lt_i != ".") {
-+      if ($lt_i == "..") {
-+        lt_count++;
-+      } else {
-+        if (lt_count == 0) {
-+          lt_foo="/" $lt_i lt_foo;
-+        } else {
-+          lt_count--;
-+        }
-+      }
-+    }
-+  }
-+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
-+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-+}'`
-+  # AWK program above erroneously prepends '/' to C:/dos/paths
-+  # for these hosts.
-+  case $host_os in
-+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
-+  esac
-+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-+else
-+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-+fi])
-+library_names_spec=
-+libname_spec='lib$name'
-+soname_spec=
-+shrext_cmds=".so"
-+postinstall_cmds=
-+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"
-+need_lib_prefix=unknown
-+hardcode_into_libs=no
-+
-+# when you set need_version to no, make sure it does not cause -set_version
-+# flags to be left without arguments
-+need_version=unknown
-+
-+case $host_os in
-+aix3*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-+  shlibpath_var=LIBPATH
-+
-+  # AIX 3 has no versioning support, so we append a major version to the name.
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  ;;
-+
-+aix[[4-9]]*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  hardcode_into_libs=yes
-+  if test "$host_cpu" = ia64; then
-+    # AIX 5 supports IA64
-+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-+    shlibpath_var=LD_LIBRARY_PATH
-+  else
-+    # With GCC up to 2.95.x, collect2 would create an import file
-+    # for dependence libraries.  The import file would start with
-+    # the line `#! .'.  This would cause the generated library to
-+    # depend on `.', always an invalid library.  This was fixed in
-+    # development snapshots of GCC prior to 3.0.
-+    case $host_os in
-+      aix4 | aix4.[[01]] | aix4.[[01]].*)
-+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-+	   echo ' yes '
-+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-+	:
-+      else
-+	can_build_shared=no
-+      fi
-+      ;;
-+    esac
-+    # AIX (on Power*) 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.
-+    if test "$aix_use_runtimelinking" = yes; then
-+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-+      # instead of lib<name>.a to let people know that these are not
-+      # typical AIX shared libraries.
-+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    else
-+      # We preserve .a as extension for shared libraries through AIX4.2
-+      # and later when we are not doing run time linking.
-+      library_names_spec='${libname}${release}.a $libname.a'
-+      soname_spec='${libname}${release}${shared_ext}$major'
-+    fi
-+    shlibpath_var=LIBPATH
-+  fi
-+  ;;
-+
-+amigaos*)
-+  case $host_cpu in
-+  powerpc)
-+    # Since July 2007 AmigaOS4 officially supports .so libraries.
-+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    ;;
-+  m68k)
-+    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=`func_echo_all "$lib" | $SED '\''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'
-+    ;;
-+  esac
-+  ;;
-+
-+beos*)
-+  library_names_spec='${libname}${shared_ext}'
-+  dynamic_linker="$host_os ld.so"
-+  shlibpath_var=LIBRARY_PATH
-+  ;;
-+
-+bsdi[[45]]*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  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* | pw32* | cegcc*)
-+  version_type=windows
-+  shrext_cmds=".dll"
-+  need_version=no
-+  need_lib_prefix=no
-+
-+  case $GCC,$cc_basename in
-+  yes,*)
-+    # gcc
-+    library_names_spec='$libname.dll.a'
-+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-+    postinstall_cmds='base_file=`basename \${file}`~
-+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-+      dldir=$destdir/`dirname \$dlpath`~
-+      test -d \$dldir || mkdir -p \$dldir~
-+      $install_prog $dir/$dlname \$dldir/$dlname~
-+      chmod a+x \$dldir/$dlname~
-+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-+      fi'
-+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-+      dlpath=$dir/\$dldll~
-+       $RM \$dlpath'
-+    shlibpath_overrides_runpath=yes
-+
-+    case $host_os in
-+    cygwin*)
-+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-+m4_if([$1], [],[
-+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
-+      ;;
-+    mingw* | cegcc*)
-+      # MinGW DLLs use traditional 'lib' prefix
-+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-+      ;;
-+    pw32*)
-+      # pw32 DLLs use 'pw' prefix rather than 'lib'
-+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-+      ;;
-+    esac
-+    dynamic_linker='Win32 ld.exe'
-+    ;;
-+
-+  *,cl*)
-+    # Native MSVC
-+    libname_spec='$name'
-+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-+    library_names_spec='${libname}.dll.lib'
-+
-+    case $build_os in
-+    mingw*)
-+      sys_lib_search_path_spec=
-+      lt_save_ifs=$IFS
-+      IFS=';'
-+      for lt_path in $LIB
-+      do
-+        IFS=$lt_save_ifs
-+        # Let DOS variable expansion print the short 8.3 style file name.
-+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-+      done
-+      IFS=$lt_save_ifs
-+      # Convert to MSYS style.
-+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
-+      ;;
-+    cygwin*)
-+      # Convert to unix form, then to dos form, then back to unix form
-+      # but this time dos style (no spaces!) so that the unix form looks
-+      # like /cygdrive/c/PROGRA~1:/cygdr...
-+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-+      ;;
-+    *)
-+      sys_lib_search_path_spec="$LIB"
-+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-+        # It is most probably a Windows format PATH.
-+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-+      else
-+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-+      fi
-+      # FIXME: find the short name or the path components, as spaces are
-+      # common. (e.g. "Program Files" -> "PROGRA~1")
-+      ;;
-+    esac
-+
-+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-+    postinstall_cmds='base_file=`basename \${file}`~
-+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-+      dldir=$destdir/`dirname \$dlpath`~
-+      test -d \$dldir || mkdir -p \$dldir~
-+      $install_prog $dir/$dlname \$dldir/$dlname'
-+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-+      dlpath=$dir/\$dldll~
-+       $RM \$dlpath'
-+    shlibpath_overrides_runpath=yes
-+    dynamic_linker='Win32 link.exe'
-+    ;;
-+
-+  *)
-+    # Assume MSVC wrapper
-+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-+    dynamic_linker='Win32 ld.exe'
-+    ;;
-+  esac
-+  # FIXME: first we should search . and the directory the executable is in
-+  shlibpath_var=PATH
-+  ;;
-+
-+darwin* | rhapsody*)
-+  dynamic_linker="$host_os dyld"
-+  version_type=darwin
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-+  soname_spec='${libname}${release}${major}$shared_ext'
-+  shlibpath_overrides_runpath=yes
-+  shlibpath_var=DYLD_LIBRARY_PATH
-+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-+m4_if([$1], [],[
-+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
-+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-+  ;;
-+
-+dgux*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  ;;
-+
-+freebsd* | dragonfly*)
-+  # DragonFly does not have aout.  When/if they implement a new
-+  # versioning mechanism, adjust this.
-+  if test -x /usr/bin/objformat; then
-+    objformat=`/usr/bin/objformat`
-+  else
-+    case $host_os in
-+    freebsd[[23]].*) objformat=aout ;;
-+    *) objformat=elf ;;
-+    esac
-+  fi
-+  version_type=freebsd-$objformat
-+  case $version_type in
-+    freebsd-elf*)
-+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-+      need_version=no
-+      need_lib_prefix=no
-+      ;;
-+    freebsd-*)
-+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-+      need_version=yes
-+      ;;
-+  esac
-+  shlibpath_var=LD_LIBRARY_PATH
-+  case $host_os in
-+  freebsd2.*)
-+    shlibpath_overrides_runpath=yes
-+    ;;
-+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-+    shlibpath_overrides_runpath=yes
-+    hardcode_into_libs=yes
-+    ;;
-+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-+    shlibpath_overrides_runpath=no
-+    hardcode_into_libs=yes
-+    ;;
-+  *) # from 4.6 on, and DragonFly
-+    shlibpath_overrides_runpath=yes
-+    hardcode_into_libs=yes
-+    ;;
-+  esac
-+  ;;
-+
-+gnu*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  ;;
-+
-+haiku*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  dynamic_linker="$host_os runtime_loader"
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-+  hardcode_into_libs=yes
-+  ;;
-+
-+hpux9* | hpux10* | hpux11*)
-+  # Give a soname corresponding to the major version so that dld.sl refuses to
-+  # link against other versions.
-+  version_type=sunos
-+  need_lib_prefix=no
-+  need_version=no
-+  case $host_cpu in
-+  ia64*)
-+    shrext_cmds='.so'
-+    hardcode_into_libs=yes
-+    dynamic_linker="$host_os dld.so"
-+    shlibpath_var=LD_LIBRARY_PATH
-+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    soname_spec='${libname}${release}${shared_ext}$major'
-+    if test "X$HPUX_IA64_MODE" = X32; then
-+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-+    else
-+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-+    fi
-+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-+    ;;
-+  hppa*64*)
-+    shrext_cmds='.sl'
-+    hardcode_into_libs=yes
-+    dynamic_linker="$host_os dld.sl"
-+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    soname_spec='${libname}${release}${shared_ext}$major'
-+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-+    ;;
-+  *)
-+    shrext_cmds='.sl'
-+    dynamic_linker="$host_os dld.sl"
-+    shlibpath_var=SHLIB_PATH
-+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+    soname_spec='${libname}${release}${shared_ext}$major'
-+    ;;
-+  esac
-+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-+  postinstall_cmds='chmod 555 $lib'
-+  # or fails outright, so override atomically:
-+  install_override_mode=555
-+  ;;
-+
-+interix[[3-9]]*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  ;;
-+
-+irix5* | irix6* | nonstopux*)
-+  case $host_os in
-+    nonstopux*) version_type=nonstopux ;;
-+    *)
-+	if test "$lt_cv_prog_gnu_ld" = yes; then
-+		version_type=linux # correct to gnu/linux during the next big refactor
-+	else
-+		version_type=irix
-+	fi ;;
-+  esac
-+  need_lib_prefix=no
-+  need_version=no
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-+  case $host_os in
-+  irix5* | nonstopux*)
-+    libsuff= shlibsuff=
-+    ;;
-+  *)
-+    case $LD in # libtool.m4 will add one of these switches to LD
-+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-+      libsuff= shlibsuff= libmagic=32-bit;;
-+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-+      libsuff=32 shlibsuff=N32 libmagic=N32;;
-+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-+    *) libsuff= shlibsuff= libmagic=never-match;;
-+    esac
-+    ;;
-+  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}"
-+  hardcode_into_libs=yes
-+  ;;
-+
-+# No shared lib support for Linux oldld, aout, or coff.
-+linux*oldld* | linux*aout* | linux*coff*)
-+  dynamic_linker=no
-+  ;;
-+
-+# This must be glibc/ELF.
-+linux* | k*bsd*-gnu | kopensolaris*-gnu)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+
-+  # Some binutils ld are patched to set DT_RUNPATH
-+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
-+    [lt_cv_shlibpath_overrides_runpath=no
-+    save_LDFLAGS=$LDFLAGS
-+    save_libdir=$libdir
-+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-+	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-+	 [lt_cv_shlibpath_overrides_runpath=yes])])
-+    LDFLAGS=$save_LDFLAGS
-+    libdir=$save_libdir
-+    ])
-+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-+
-+  # This implies no fast_install, which is unacceptable.
-+  # Some rework will be needed to allow for fast_install
-+  # before this can be enabled.
-+  hardcode_into_libs=yes
-+
-+  # Append ld.so.conf contents to the search path
-+  if test -f /etc/ld.so.conf; then
-+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-+  fi
-+
-+  # We used to test for /lib/ld.so.1 and disable shared libraries on
-+  # powerpc, because MkLinux only supported shared libraries with the
-+  # GNU dynamic linker.  Since this was broken with cross compilers,
-+  # most powerpc-linux boxes support dynamic linking these days and
-+  # people can always --disable-shared, the test was removed, and we
-+  # assume the GNU/Linux dynamic linker is in use.
-+  dynamic_linker='GNU/Linux ld.so'
-+  ;;
-+
-+netbsdelf*-gnu)
-+  version_type=linux
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  dynamic_linker='NetBSD ld.elf_so'
-+  ;;
-+
-+netbsd*)
-+  version_type=sunos
-+  need_lib_prefix=no
-+  need_version=no
-+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-+    dynamic_linker='NetBSD (a.out) ld.so'
-+  else
-+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-+    soname_spec='${libname}${release}${shared_ext}$major'
-+    dynamic_linker='NetBSD ld.elf_so'
-+  fi
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  hardcode_into_libs=yes
-+  ;;
-+
-+newsos6)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  ;;
-+
-+*nto* | *qnx*)
-+  version_type=qnx
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  dynamic_linker='ldqnx.so'
-+  ;;
-+
-+openbsd*)
-+  version_type=sunos
-+  sys_lib_dlsearch_path_spec="/usr/lib"
-+  need_lib_prefix=no
-+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-+  case $host_os in
-+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-+    *)				need_version=no  ;;
-+  esac
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+    case $host_os in
-+      openbsd2.[[89]] | openbsd2.[[89]].*)
-+	shlibpath_overrides_runpath=no
-+	;;
-+      *)
-+	shlibpath_overrides_runpath=yes
-+	;;
-+      esac
-+  else
-+    shlibpath_overrides_runpath=yes
-+  fi
-+  ;;
-+
-+os2*)
-+  libname_spec='$name'
-+  shrext_cmds=".dll"
-+  need_lib_prefix=no
-+  library_names_spec='$libname${shared_ext} $libname.a'
-+  dynamic_linker='OS/2 ld.exe'
-+  shlibpath_var=LIBPATH
-+  ;;
-+
-+osf3* | osf4* | osf5*)
-+  version_type=osf
-+  need_lib_prefix=no
-+  need_version=no
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  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"
-+  ;;
-+
-+rdos*)
-+  dynamic_linker=no
-+  ;;
-+
-+solaris*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  hardcode_into_libs=yes
-+  # ldd complains unless libraries are executable
-+  postinstall_cmds='chmod +x $lib'
-+  ;;
-+
-+sunos4*)
-+  version_type=sunos
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$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 | sysv4.3*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  case $host_vendor in
-+    sni)
-+      shlibpath_overrides_runpath=no
-+      need_lib_prefix=no
-+      runpath_var=LD_RUN_PATH
-+      ;;
-+    siemens)
-+      need_lib_prefix=no
-+      ;;
-+    motorola)
-+      need_lib_prefix=no
-+      need_version=no
-+      shlibpath_overrides_runpath=no
-+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-+      ;;
-+  esac
-+  ;;
-+
-+sysv4*MP*)
-+  if test -d /usr/nec ;then
-+    version_type=linux # correct to gnu/linux during the next big refactor
-+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-+    soname_spec='$libname${shared_ext}.$major'
-+    shlibpath_var=LD_LIBRARY_PATH
-+  fi
-+  ;;
-+
-+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-+  version_type=freebsd-elf
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
-+  hardcode_into_libs=yes
-+  if test "$with_gnu_ld" = yes; then
-+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-+  else
-+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-+    case $host_os in
-+      sco3.2v5*)
-+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-+	;;
-+    esac
-+  fi
-+  sys_lib_dlsearch_path_spec='/usr/lib'
-+  ;;
-+
-+tpf*)
-+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  hardcode_into_libs=yes
-+  ;;
-+
-+uts4*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-+  soname_spec='${libname}${release}${shared_ext}$major'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  ;;
-+
-+*)
-+  dynamic_linker=no
-+  ;;
-+esac
-+AC_MSG_RESULT([$dynamic_linker])
-+test "$dynamic_linker" = no && can_build_shared=no
-+
-+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-+if test "$GCC" = yes; then
-+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-+fi
-+
-+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-+fi
-+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-+fi
-+
-+_LT_DECL([], [variables_saved_for_relink], [1],
-+    [Variables whose values should be saved in libtool wrapper scripts and
-+    restored at link time])
-+_LT_DECL([], [need_lib_prefix], [0],
-+    [Do we need the "lib" prefix for modules?])
-+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-+_LT_DECL([], [version_type], [0], [Library versioning type])
-+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
-+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-+_LT_DECL([], [shlibpath_overrides_runpath], [0],
-+    [Is shlibpath searched before the hard-coded library search path?])
-+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-+_LT_DECL([], [library_names_spec], [1],
-+    [[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]])
-+_LT_DECL([], [soname_spec], [1],
-+    [[The coded name of the library, if different from the real name]])
-+_LT_DECL([], [install_override_mode], [1],
-+    [Permission mode override for installation of shared libraries])
-+_LT_DECL([], [postinstall_cmds], [2],
-+    [Command to use after installation of a shared archive])
-+_LT_DECL([], [postuninstall_cmds], [2],
-+    [Command to use after uninstallation of a shared archive])
-+_LT_DECL([], [finish_cmds], [2],
-+    [Commands used to finish a libtool library installation in a directory])
-+_LT_DECL([], [finish_eval], [1],
-+    [[As "finish_cmds", except a single script fragment to be evaled but
-+    not shown]])
-+_LT_DECL([], [hardcode_into_libs], [0],
-+    [Whether we should hardcode library paths into libraries])
-+_LT_DECL([], [sys_lib_search_path_spec], [2],
-+    [Compile-time system search path for libraries])
-+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-+    [Run-time system search path for libraries])
-+])# _LT_SYS_DYNAMIC_LINKER
-+
-+
-+# _LT_PATH_TOOL_PREFIX(TOOL)
-+# --------------------------
-+# find a file program which can recognize shared library
-+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-+[m4_require([_LT_DECL_EGREP])dnl
-+AC_MSG_CHECKING([for $1])
-+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-+[case $MAGIC_CMD in
-+[[\\/*] |  ?:[\\/]*])
-+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-+  ;;
-+*)
-+  lt_save_MAGIC_CMD="$MAGIC_CMD"
-+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-+dnl $ac_dummy forces splitting on constant user-supplied paths.
-+dnl POSIX.2 word splitting is done only on the output of word expansions,
-+dnl not every word.  This closes a longstanding sh security hole.
-+  ac_dummy="m4_if([$2], , $PATH, [$2])"
-+  for ac_dir in $ac_dummy; do
-+    IFS="$lt_save_ifs"
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f $ac_dir/$1; then
-+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-+      if test -n "$file_magic_test_file"; then
-+	case $deplibs_check_method in
-+	"file_magic "*)
-+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-+	    $EGREP "$file_magic_regex" > /dev/null; then
-+	    :
-+	  else
-+	    cat <<_LT_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 at gnu.org
-+
-+_LT_EOF
-+	  fi ;;
-+	esac
-+      fi
-+      break
-+    fi
-+  done
-+  IFS="$lt_save_ifs"
-+  MAGIC_CMD="$lt_save_MAGIC_CMD"
-+  ;;
-+esac])
-+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-+if test -n "$MAGIC_CMD"; then
-+  AC_MSG_RESULT($MAGIC_CMD)
-+else
-+  AC_MSG_RESULT(no)
-+fi
-+_LT_DECL([], [MAGIC_CMD], [0],
-+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-+])# _LT_PATH_TOOL_PREFIX
-+
-+# Old name:
-+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-+
-+
-+# _LT_PATH_MAGIC
-+# --------------
-+# find a file program which can recognize a shared library
-+m4_defun([_LT_PATH_MAGIC],
-+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-+if test -z "$lt_cv_path_MAGIC_CMD"; then
-+  if test -n "$ac_tool_prefix"; then
-+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-+  else
-+    MAGIC_CMD=:
-+  fi
-+fi
-+])# _LT_PATH_MAGIC
-+
-+
-+# LT_PATH_LD
-+# ----------
-+# find the pathname to the GNU or non-GNU linker
-+AC_DEFUN([LT_PATH_LD],
-+[AC_REQUIRE([AC_PROG_CC])dnl
-+AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-+m4_require([_LT_DECL_SED])dnl
-+m4_require([_LT_DECL_EGREP])dnl
-+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-+
-+AC_ARG_WITH([gnu-ld],
-+    [AS_HELP_STRING([--with-gnu-ld],
-+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-+    [test "$withval" = no || with_gnu_ld=yes],
-+    [with_gnu_ld=no])dnl
-+
-+ac_prog=ld
-+if test "$GCC" = yes; then
-+  # Check if gcc -print-prog-name=ld gives a path.
-+  AC_MSG_CHECKING([for ld used by $CC])
-+  case $host in
-+  *-*-mingw*)
-+    # gcc leaves a trailing carriage return which upsets mingw
-+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-+  *)
-+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-+  esac
-+  case $ac_prog in
-+    # Accept absolute paths.
-+    [[\\/]]* | ?:[[\\/]]*)
-+      re_direlt='/[[^/]][[^/]]*/\.\./'
-+      # Canonicalize the pathname 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(lt_cv_path_LD,
-+[if test -z "$LD"; then
-+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-+  for ac_dir in $PATH; do
-+    IFS="$lt_save_ifs"
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-+      lt_cv_path_LD="$ac_dir/$ac_prog"
-+      # Check to see if the program is GNU ld.  I'd rather use --version,
-+      # but apparently some variants of GNU ld only accept -v.
-+      # Break only if it was the GNU/non-GNU ld that we prefer.
-+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-+      *GNU* | *'with BFD'*)
-+	test "$with_gnu_ld" != no && break
-+	;;
-+      *)
-+	test "$with_gnu_ld" != yes && break
-+	;;
-+      esac
-+    fi
-+  done
-+  IFS="$lt_save_ifs"
-+else
-+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-+fi])
-+LD="$lt_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])
-+_LT_PATH_LD_GNU
-+AC_SUBST([LD])
-+
-+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-+])# LT_PATH_LD
-+
-+# Old names:
-+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AM_PROG_LD], [])
-+dnl AC_DEFUN([AC_PROG_LD], [])
-+
-+
-+# _LT_PATH_LD_GNU
-+#- --------------
-+m4_defun([_LT_PATH_LD_GNU],
-+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-+case `$LD -v 2>&1 </dev/null` in
-+*GNU* | *'with BFD'*)
-+  lt_cv_prog_gnu_ld=yes
-+  ;;
-+*)
-+  lt_cv_prog_gnu_ld=no
-+  ;;
-+esac])
-+with_gnu_ld=$lt_cv_prog_gnu_ld
-+])# _LT_PATH_LD_GNU
-+
-+
-+# _LT_CMD_RELOAD
-+# --------------
-+# find reload flag for linker
-+#   -- PORTME Some linkers may need a different reload flag.
-+m4_defun([_LT_CMD_RELOAD],
-+[AC_CACHE_CHECK([for $LD option to reload object files],
-+  lt_cv_ld_reload_flag,
-+  [lt_cv_ld_reload_flag='-r'])
-+reload_flag=$lt_cv_ld_reload_flag
-+case $reload_flag in
-+"" | " "*) ;;
-+*) reload_flag=" $reload_flag" ;;
-+esac
-+reload_cmds='$LD$reload_flag -o $output$reload_objs'
-+case $host_os in
-+  cygwin* | mingw* | pw32* | cegcc*)
-+    if test "$GCC" != yes; then
-+      reload_cmds=false
-+    fi
-+    ;;
-+  darwin*)
-+    if test "$GCC" = yes; then
-+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-+    else
-+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-+    fi
-+    ;;
-+esac
-+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-+_LT_TAGDECL([], [reload_cmds], [2])dnl
-+])# _LT_CMD_RELOAD
-+
-+
-+# _LT_CHECK_MAGIC_METHOD
-+# ----------------------
-+# how to check for library dependencies
-+#  -- PORTME fill in with the dynamic library characteristics
-+m4_defun([_LT_CHECK_MAGIC_METHOD],
-+[m4_require([_LT_DECL_EGREP])
-+m4_require([_LT_DECL_OBJDUMP])
-+AC_CACHE_CHECK([how to recognize dependent libraries],
-+lt_cv_deplibs_check_method,
-+[lt_cv_file_magic_cmd='$MAGIC_CMD'
-+lt_cv_file_magic_test_file=
-+lt_cv_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 extended 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.
-+
-+case $host_os in
-+aix[[4-9]]*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+beos*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+bsdi[[45]]*)
-+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-+  lt_cv_file_magic_cmd='/usr/bin/file -L'
-+  lt_cv_file_magic_test_file=/shlib/libc.so
-+  ;;
-+
-+cygwin*)
-+  # func_win32_libid is a shell function defined in ltmain.sh
-+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-+  lt_cv_file_magic_cmd='func_win32_libid'
-+  ;;
-+
-+mingw* | pw32*)
-+  # Base MSYS/MinGW do not provide the 'file' command needed by
-+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-+  # unless we find 'file', for example because we are cross-compiling.
-+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-+    lt_cv_file_magic_cmd='func_win32_libid'
-+  else
-+    # Keep this pattern in sync with the one in func_win32_libid.
-+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-+    lt_cv_file_magic_cmd='$OBJDUMP -f'
-+  fi
-+  ;;
-+
-+cegcc*)
-+  # use the weaker test based on 'objdump'. See mingw*.
-+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-+  lt_cv_file_magic_cmd='$OBJDUMP -f'
-+  ;;
-+
-+darwin* | rhapsody*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+freebsd* | dragonfly*)
-+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-+    case $host_cpu in
-+    i*86 )
-+      # Not sure whether the presence of OpenBSD here was a mistake.
-+      # Let's accept both of them until this is cleared up.
-+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-+      lt_cv_file_magic_cmd=/usr/bin/file
-+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-+      ;;
-+    esac
-+  else
-+    lt_cv_deplibs_check_method=pass_all
-+  fi
-+  ;;
-+
-+gnu*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+haiku*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+hpux10.20* | hpux11*)
-+  lt_cv_file_magic_cmd=/usr/bin/file
-+  case $host_cpu in
-+  ia64*)
-+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-+    ;;
-+  hppa*64*)
-+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
-+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-+    ;;
-+  *)
-+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
-+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-+    ;;
-+  esac
-+  ;;
-+
-+interix[[3-9]]*)
-+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-+  ;;
-+
-+irix5* | irix6* | nonstopux*)
-+  case $LD in
-+  *-32|*"-32 ") libmagic=32-bit;;
-+  *-n32|*"-n32 ") libmagic=N32;;
-+  *-64|*"-64 ") libmagic=64-bit;;
-+  *) libmagic=never-match;;
-+  esac
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+# This must be glibc/ELF.
-+linux* | k*bsd*-gnu | kopensolaris*-gnu)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+netbsd* | netbsdelf*-gnu)
-+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-+  else
-+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-+  fi
-+  ;;
-+
-+newos6*)
-+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-+  lt_cv_file_magic_cmd=/usr/bin/file
-+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-+  ;;
-+
-+*nto* | *qnx*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+openbsd*)
-+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
-+  else
-+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-+  fi
-+  ;;
-+
-+osf3* | osf4* | osf5*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+rdos*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+solaris*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+
-+sysv4 | sysv4.3*)
-+  case $host_vendor in
-+  motorola)
-+    lt_cv_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]]'
-+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-+    ;;
-+  ncr)
-+    lt_cv_deplibs_check_method=pass_all
-+    ;;
-+  sequent)
-+    lt_cv_file_magic_cmd='/bin/file'
-+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-+    ;;
-+  sni)
-+    lt_cv_file_magic_cmd='/bin/file'
-+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-+    lt_cv_file_magic_test_file=/lib/libc.so
-+    ;;
-+  siemens)
-+    lt_cv_deplibs_check_method=pass_all
-+    ;;
-+  pc)
-+    lt_cv_deplibs_check_method=pass_all
-+    ;;
-+  esac
-+  ;;
-+
-+tpf*)
-+  lt_cv_deplibs_check_method=pass_all
-+  ;;
-+esac
-+])
-+
-+file_magic_glob=
-+want_nocaseglob=no
-+if test "$build" = "$host"; then
-+  case $host_os in
-+  mingw* | pw32*)
-+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-+      want_nocaseglob=yes
-+    else
-+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
-+    fi
-+    ;;
-+  esac
-+fi
-+
-+file_magic_cmd=$lt_cv_file_magic_cmd
-+deplibs_check_method=$lt_cv_deplibs_check_method
-+test -z "$deplibs_check_method" && deplibs_check_method=unknown
-+
-+_LT_DECL([], [deplibs_check_method], [1],
-+    [Method to check whether dependent libraries are shared objects])
-+_LT_DECL([], [file_magic_cmd], [1],
-+    [Command to use when deplibs_check_method = "file_magic"])
-+_LT_DECL([], [file_magic_glob], [1],
-+    [How to find potential files when deplibs_check_method = "file_magic"])
-+_LT_DECL([], [want_nocaseglob], [1],
-+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-+])# _LT_CHECK_MAGIC_METHOD
-+
-+
-+# LT_PATH_NM
-+# ----------
-+# find the pathname to a BSD- or MS-compatible name lister
-+AC_DEFUN([LT_PATH_NM],
-+[AC_REQUIRE([AC_PROG_CC])dnl
-+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-+[if test -n "$NM"; then
-+  # Let the user override the test.
-+  lt_cv_path_NM="$NM"
-+else
-+  lt_nm_to_check="${ac_tool_prefix}nm"
-+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-+    lt_nm_to_check="$lt_nm_to_check nm"
-+  fi
-+  for lt_tmp_nm in $lt_nm_to_check; do
-+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-+      IFS="$lt_save_ifs"
-+      test -z "$ac_dir" && ac_dir=.
-+      tmp_nm="$ac_dir/$lt_tmp_nm"
-+      if test -f "$tmp_nm" || test -f "$tmp_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
-+	# Tru64's nm complains that /dev/null is an invalid object file
-+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-+	*/dev/null* | *'Invalid file or object type'*)
-+	  lt_cv_path_NM="$tmp_nm -B"
-+	  break
-+	  ;;
-+	*)
-+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-+	  */dev/null*)
-+	    lt_cv_path_NM="$tmp_nm -p"
-+	    break
-+	    ;;
-+	  *)
-+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-+	    continue # so that we can try to find one that supports BSD flags
-+	    ;;
-+	  esac
-+	  ;;
-+	esac
-+      fi
-+    done
-+    IFS="$lt_save_ifs"
-+  done
-+  : ${lt_cv_path_NM=no}
-+fi])
-+if test "$lt_cv_path_NM" != "no"; then
-+  NM="$lt_cv_path_NM"
-+else
-+  # Didn't find any BSD compatible name lister, look for dumpbin.
-+  if test -n "$DUMPBIN"; then :
-+    # Let the user override the test.
-+  else
-+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-+    *COFF*)
-+      DUMPBIN="$DUMPBIN -symbols"
-+      ;;
-+    *)
-+      DUMPBIN=:
-+      ;;
-+    esac
-+  fi
-+  AC_SUBST([DUMPBIN])
-+  if test "$DUMPBIN" != ":"; then
-+    NM="$DUMPBIN"
-+  fi
-+fi
-+test -z "$NM" && NM=nm
-+AC_SUBST([NM])
-+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-+
-+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
-+  [lt_cv_nm_interface="BSD nm"
-+  echo "int some_variable = 0;" > conftest.$ac_ext
-+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
-+  (eval "$ac_compile" 2>conftest.err)
-+  cat conftest.err >&AS_MESSAGE_LOG_FD
-+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
-+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-+  cat conftest.err >&AS_MESSAGE_LOG_FD
-+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
-+  cat conftest.out >&AS_MESSAGE_LOG_FD
-+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-+    lt_cv_nm_interface="MS dumpbin"
-+  fi
-+  rm -f conftest*])
-+])# LT_PATH_NM
-+
-+# Old names:
-+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AM_PROG_NM], [])
-+dnl AC_DEFUN([AC_PROG_NM], [])
-+
-+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-+# --------------------------------
-+# how to determine the name of the shared library
-+# associated with a specific link library.
-+#  -- PORTME fill in with the dynamic library characteristics
-+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-+[m4_require([_LT_DECL_EGREP])
-+m4_require([_LT_DECL_OBJDUMP])
-+m4_require([_LT_DECL_DLLTOOL])
-+AC_CACHE_CHECK([how to associate runtime and link libraries],
-+lt_cv_sharedlib_from_linklib_cmd,
-+[lt_cv_sharedlib_from_linklib_cmd='unknown'
-+
-+case $host_os in
-+cygwin* | mingw* | pw32* | cegcc*)
-+  # two different shell functions defined in ltmain.sh
-+  # decide which to use based on capabilities of $DLLTOOL
-+  case `$DLLTOOL --help 2>&1` in
-+  *--identify-strict*)
-+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-+    ;;
-+  *)
-+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-+    ;;
-+  esac
-+  ;;
-+*)
-+  # fallback: assume linklib IS sharedlib
-+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-+  ;;
-+esac
-+])
-+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-+
-+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
-+    [Command to associate shared and link libraries])
-+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-+
-+
-+# _LT_PATH_MANIFEST_TOOL
-+# ----------------------
-+# locate the manifest tool
-+m4_defun([_LT_PATH_MANIFEST_TOOL],
-+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
-+  [lt_cv_path_mainfest_tool=no
-+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
-+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-+  cat conftest.err >&AS_MESSAGE_LOG_FD
-+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-+    lt_cv_path_mainfest_tool=yes
-+  fi
-+  rm -f conftest*])
-+if test "x$lt_cv_path_mainfest_tool" != xyes; then
-+  MANIFEST_TOOL=:
-+fi
-+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-+])# _LT_PATH_MANIFEST_TOOL
-+
-+
-+# LT_LIB_M
-+# --------
-+# check for math library
-+AC_DEFUN([LT_LIB_M],
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+LIBM=
-+case $host in
-+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
-+  # These system don't have libm, or don't need it
-+  ;;
-+*-ncr-sysv4.3*)
-+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-+  ;;
-+*)
-+  AC_CHECK_LIB(m, cos, LIBM="-lm")
-+  ;;
-+esac
-+AC_SUBST([LIBM])
-+])# LT_LIB_M
-+
-+# Old name:
-+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_CHECK_LIBM], [])
-+
-+
-+# _LT_COMPILER_NO_RTTI([TAGNAME])
-+# -------------------------------
-+m4_defun([_LT_COMPILER_NO_RTTI],
-+[m4_require([_LT_TAG_COMPILER])dnl
-+
-+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-+
-+if test "$GCC" = yes; then
-+  case $cc_basename in
-+  nvcc*)
-+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
-+  *)
-+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
-+  esac
-+
-+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-+    lt_cv_prog_compiler_rtti_exceptions,
-+    [-fno-rtti -fno-exceptions], [],
-+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-+fi
-+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
-+	[Compiler flag to turn off builtin functions])
-+])# _LT_COMPILER_NO_RTTI
-+
-+
-+# _LT_CMD_GLOBAL_SYMBOLS
-+# ----------------------
-+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+AC_REQUIRE([AC_PROG_CC])dnl
-+AC_REQUIRE([AC_PROG_AWK])dnl
-+AC_REQUIRE([LT_PATH_NM])dnl
-+AC_REQUIRE([LT_PATH_LD])dnl
-+m4_require([_LT_DECL_SED])dnl
-+m4_require([_LT_DECL_EGREP])dnl
-+m4_require([_LT_TAG_COMPILER])dnl
-+
-+# Check for command to grab the raw symbol name followed by C symbol from nm.
-+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-+AC_CACHE_VAL([lt_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?!! ;)]
-+
-+# Character class describing NM global symbol codes.
-+symcode='[[BCDEGRST]]'
-+
-+# Regexp to match symbols that can be accessed directly from C.
-+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-+
-+# Define system-specific variables.
-+case $host_os in
-+aix*)
-+  symcode='[[BCDT]]'
-+  ;;
-+cygwin* | mingw* | pw32* | cegcc*)
-+  symcode='[[ABCDGISTW]]'
-+  ;;
-+hpux*)
-+  if test "$host_cpu" = ia64; then
-+    symcode='[[ABCDEGRST]]'
-+  fi
-+  ;;
-+irix* | nonstopux*)
-+  symcode='[[BCDEGRST]]'
-+  ;;
-+osf*)
-+  symcode='[[BCDEGQRST]]'
-+  ;;
-+solaris*)
-+  symcode='[[BDRT]]'
-+  ;;
-+sco3.2v5*)
-+  symcode='[[DT]]'
-+  ;;
-+sysv4.2uw2*)
-+  symcode='[[DT]]'
-+  ;;
-+sysv5* | sco5v6* | unixware* | OpenUNIX*)
-+  symcode='[[ABDT]]'
-+  ;;
-+sysv4)
-+  symcode='[[DFNSTU]]'
-+  ;;
-+esac
-+
-+# If we're using GNU nm, then use its standard symbol codes.
-+case `$NM -V 2>&1` in
-+*GNU* | *'with BFD'*)
-+  symcode='[[ABCDGIRSTW]]' ;;
-+esac
-+
-+# Transform an extracted symbol line into a proper C declaration.
-+# Some systems (esp. on ia64) link data and code symbols differently,
-+# so use this general approach.
-+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-+
-+# Transform an extracted symbol line into symbol name and symbol address
-+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-+
-+# Handle CRLF in mingw tool chain
-+opt_cr=
-+case $build_os in
-+mingw*)
-+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-+  ;;
-+esac
-+
-+# Try without a prefix underscore, then with it.
-+for ac_symprfx in "" "_"; do
-+
-+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-+  symxfrm="\\1 $ac_symprfx\\2 \\2"
-+
-+  # Write the raw and C identifiers.
-+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-+    # Fake it for dumpbin and say T for any non-static function
-+    # and D for any global variable.
-+    # Also find C++ and __fastcall symbols from MSVC++,
-+    # which start with @ or ?.
-+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
-+"     {last_section=section; section=\$ 3};"\
-+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-+"     \$ 0!~/External *\|/{next};"\
-+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-+"     {if(hide[section]) next};"\
-+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-+"     ' prfx=^$ac_symprfx]"
-+  else
-+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-+  fi
-+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-+
-+  # Check to see that the pipe works correctly.
-+  pipe_works=no
-+
-+  rm -f conftest*
-+  cat > conftest.$ac_ext <<_LT_EOF
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+char nm_test_var;
-+void nm_test_func(void);
-+void nm_test_func(void){}
-+#ifdef __cplusplus
-+}
-+#endif
-+int main(){nm_test_var='a';nm_test_func();return(0);}
-+_LT_EOF
-+
-+  if AC_TRY_EVAL(ac_compile); then
-+    # Now try to grab the symbols.
-+    nlist=conftest.nm
-+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && 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 $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-+	  cat <<_LT_EOF > conftest.$ac_ext
-+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-+/* DATA imports from DLLs on WIN32 con't be const, because runtime
-+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-+# define LT@&t at _DLSYM_CONST
-+#elif defined(__osf__)
-+/* This system does not cope well with relocations in const data.  */
-+# define LT@&t at _DLSYM_CONST
-+#else
-+# define LT@&t at _DLSYM_CONST const
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+_LT_EOF
-+	  # Now generate the symbol file.
-+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-+
-+	  cat <<_LT_EOF >> conftest.$ac_ext
-+
-+/* The mapping between symbol names and symbols.  */
-+LT@&t at _DLSYM_CONST struct {
-+  const char *name;
-+  void       *address;
-+}
-+lt__PROGRAM__LTX_preloaded_symbols[[]] =
-+{
-+  { "@PROGRAM@", (void *) 0 },
-+_LT_EOF
-+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-+	  cat <<\_LT_EOF >> conftest.$ac_ext
-+  {0, (void *) 0}
-+};
-+
-+/* This works around a problem in FreeBSD linker */
-+#ifdef FREEBSD_WORKAROUND
-+static const void *lt_preloaded_setup() {
-+  return lt__PROGRAM__LTX_preloaded_symbols;
-+}
-+#endif
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+_LT_EOF
-+	  # Now try linking the two files.
-+	  mv conftest.$ac_objext conftstm.$ac_objext
-+	  lt_globsym_save_LIBS=$LIBS
-+	  lt_globsym_save_CFLAGS=$CFLAGS
-+	  LIBS="conftstm.$ac_objext"
-+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-+	    pipe_works=yes
-+	  fi
-+	  LIBS=$lt_globsym_save_LIBS
-+	  CFLAGS=$lt_globsym_save_CFLAGS
-+	else
-+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-+	fi
-+      else
-+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-+      fi
-+    else
-+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-+    fi
-+  else
-+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-+    cat conftest.$ac_ext >&5
-+  fi
-+  rm -rf conftest* conftst*
-+
-+  # Do not use the global_symbol_pipe unless it works.
-+  if test "$pipe_works" = yes; then
-+    break
-+  else
-+    lt_cv_sys_global_symbol_pipe=
-+  fi
-+done
-+])
-+if test -z "$lt_cv_sys_global_symbol_pipe"; then
-+  lt_cv_sys_global_symbol_to_cdecl=
-+fi
-+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-+  AC_MSG_RESULT(failed)
-+else
-+  AC_MSG_RESULT(ok)
-+fi
-+
-+# Response file support.
-+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-+  nm_file_list_spec='@'
-+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
-+  nm_file_list_spec='@'
-+fi
-+
-+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
-+    [Take the output of nm and produce a listing of raw symbols and C names])
-+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
-+    [Transform the output of nm in a proper C declaration])
-+_LT_DECL([global_symbol_to_c_name_address],
-+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
-+    [Transform the output of nm in a C name address pair])
-+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
-+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
-+    [Transform the output of nm in a C name address pair when lib prefix is needed])
-+_LT_DECL([], [nm_file_list_spec], [1],
-+    [Specify filename containing input files for $NM])
-+]) # _LT_CMD_GLOBAL_SYMBOLS
-+
-+
-+# _LT_COMPILER_PIC([TAGNAME])
-+# ---------------------------
-+m4_defun([_LT_COMPILER_PIC],
-+[m4_require([_LT_TAG_COMPILER])dnl
-+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-+_LT_TAGVAR(lt_prog_compiler_static, $1)=
-+
-+m4_if([$1], [CXX], [
-+  # C++ specific cases for pic, static, wl, etc.
-+  if test "$GXX" = yes; then
-+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-+
-+    case $host_os in
-+    aix*)
-+      # All AIX code is PIC.
-+      if test "$host_cpu" = ia64; then
-+	# AIX 5 now supports IA64 processor
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      fi
-+      ;;
-+
-+    amigaos*)
-+      case $host_cpu in
-+      powerpc)
-+            # see comment about AmigaOS4 .so support
-+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+        ;;
-+      m68k)
-+            # FIXME: we need at least 68020 code to build shared libraries, but
-+            # adding the `-m68020' flag to GCC prevents building anything better,
-+            # like `-m68040'.
-+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-+        ;;
-+      esac
-+      ;;
-+
-+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-+      # PIC is the default for these OSes.
-+      ;;
-+    mingw* | cygwin* | os2* | pw32* | cegcc*)
-+      # This hack is so that the source file can tell whether it is being
-+      # built for inclusion in a dll (and should export symbols for example).
-+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-+      # (--disable-auto-import) libraries
-+      m4_if([$1], [GCJ], [],
-+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-+      ;;
-+    darwin* | rhapsody*)
-+      # PIC is the default on this platform
-+      # Common symbols not allowed in MH_DYLIB files
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-+      ;;
-+    *djgpp*)
-+      # DJGPP does not support shared libraries at all
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-+      ;;
-+    haiku*)
-+      # PIC is the default for Haiku.
-+      # The "-static" flag exists, but is broken.
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-+      ;;
-+    interix[[3-9]]*)
-+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-+      # Instead, we relocate shared libraries at runtime.
-+      ;;
-+    sysv4*MP*)
-+      if test -d /usr/nec; then
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-+      fi
-+      ;;
-+    hpux*)
-+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-+      # sets the default TLS model and affects inlining.
-+      case $host_cpu in
-+      hppa*64*)
-+	;;
-+      *)
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+	;;
-+      esac
-+      ;;
-+    *qnx* | *nto*)
-+      # QNX uses GNU C++, but need to define -shared option too, otherwise
-+      # it will coredump.
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-+      ;;
-+    *)
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+      ;;
-+    esac
-+  else
-+    case $host_os in
-+      aix[[4-9]]*)
-+	# All AIX code is PIC.
-+	if test "$host_cpu" = ia64; then
-+	  # AIX 5 now supports IA64 processor
-+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	else
-+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-+	fi
-+	;;
-+      chorus*)
-+	case $cc_basename in
-+	cxch68*)
-+	  # Green Hills C++ Compiler
-+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-+	  ;;
-+	esac
-+	;;
-+      mingw* | cygwin* | os2* | pw32* | cegcc*)
-+	# This hack is so that the source file can tell whether it is being
-+	# built for inclusion in a dll (and should export symbols for example).
-+	m4_if([$1], [GCJ], [],
-+	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-+	;;
-+      dgux*)
-+	case $cc_basename in
-+	  ec++*)
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	    ;;
-+	  ghcx*)
-+	    # Green Hills C++ Compiler
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-+	    ;;
-+	  *)
-+	    ;;
-+	esac
-+	;;
-+      freebsd* | dragonfly*)
-+	# FreeBSD uses GNU C++
-+	;;
-+      hpux9* | hpux10* | hpux11*)
-+	case $cc_basename in
-+	  CC*)
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-+	    if test "$host_cpu" != ia64; then
-+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-+	    fi
-+	    ;;
-+	  aCC*)
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-+	    case $host_cpu in
-+	    hppa*64*|ia64*)
-+	      # +Z the default
-+	      ;;
-+	    *)
-+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-+	      ;;
-+	    esac
-+	    ;;
-+	  *)
-+	    ;;
-+	esac
-+	;;
-+      interix*)
-+	# This is c89, which is MS Visual C++ (no shared libs)
-+	# Anyone wants to do a port?
-+	;;
-+      irix5* | irix6* | nonstopux*)
-+	case $cc_basename in
-+	  CC*)
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-+	    # CC pic flag -KPIC is the default.
-+	    ;;
-+	  *)
-+	    ;;
-+	esac
-+	;;
-+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-+	case $cc_basename in
-+	  KCC*)
-+	    # KAI C++ Compiler
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+	    ;;
-+	  ecpc* )
-+	    # old Intel C++ for x86_64 which still supported -KPIC.
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-+	    ;;
-+	  icpc* )
-+	    # Intel C++, used to be incompatible with GCC.
-+	    # ICC 10 doesn't accept -KPIC any more.
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-+	    ;;
-+	  pgCC* | pgcpp*)
-+	    # Portland Group C++ compiler
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	    ;;
-+	  cxx*)
-+	    # Compaq C++
-+	    # Make sure the PIC flag is empty.  It appears that all Alpha
-+	    # Linux and Compaq Tru64 Unix objects are PIC.
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-+	    ;;
-+	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
-+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-+	    ;;
-+	  *)
-+	    case `$CC -V 2>&1 | sed 5q` in
-+	    *Sun\ C*)
-+	      # Sun C++ 5.9
-+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-+	      ;;
-+	    esac
-+	    ;;
-+	esac
-+	;;
-+      lynxos*)
-+	;;
-+      m88k*)
-+	;;
-+      mvs*)
-+	case $cc_basename in
-+	  cxx*)
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-+	    ;;
-+	  *)
-+	    ;;
-+	esac
-+	;;
-+      netbsd* | netbsdelf*-gnu)
-+	;;
-+      *qnx* | *nto*)
-+        # QNX uses GNU C++, but need to define -shared option too, otherwise
-+        # it will coredump.
-+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-+        ;;
-+      osf3* | osf4* | osf5*)
-+	case $cc_basename in
-+	  KCC*)
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-+	    ;;
-+	  RCC*)
-+	    # Rational C++ 2.4.1
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-+	    ;;
-+	  cxx*)
-+	    # Digital/Compaq C++
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    # Make sure the PIC flag is empty.  It appears that all Alpha
-+	    # Linux and Compaq Tru64 Unix objects are PIC.
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-+	    ;;
-+	  *)
-+	    ;;
-+	esac
-+	;;
-+      psos*)
-+	;;
-+      solaris*)
-+	case $cc_basename in
-+	  CC* | sunCC*)
-+	    # Sun C++ 4.2, 5.x and Centerline C++
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-+	    ;;
-+	  gcx*)
-+	    # Green Hills C++ Compiler
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-+	    ;;
-+	  *)
-+	    ;;
-+	esac
-+	;;
-+      sunos4*)
-+	case $cc_basename in
-+	  CC*)
-+	    # Sun C++ 4.x
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	    ;;
-+	  lcc*)
-+	    # Lucid
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-+	    ;;
-+	  *)
-+	    ;;
-+	esac
-+	;;
-+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-+	case $cc_basename in
-+	  CC*)
-+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	    ;;
-+	esac
-+	;;
-+      tandem*)
-+	case $cc_basename in
-+	  NCC*)
-+	    # NonStop-UX NCC 3.20
-+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	    ;;
-+	  *)
-+	    ;;
-+	esac
-+	;;
-+      vxworks*)
-+	;;
-+      *)
-+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-+	;;
-+    esac
-+  fi
-+],
-+[
-+  if test "$GCC" = yes; then
-+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-+
-+    case $host_os in
-+      aix*)
-+      # All AIX code is PIC.
-+      if test "$host_cpu" = ia64; then
-+	# AIX 5 now supports IA64 processor
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      fi
-+      ;;
-+
-+    amigaos*)
-+      case $host_cpu in
-+      powerpc)
-+            # see comment about AmigaOS4 .so support
-+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+        ;;
-+      m68k)
-+            # FIXME: we need at least 68020 code to build shared libraries, but
-+            # adding the `-m68020' flag to GCC prevents building anything better,
-+            # like `-m68040'.
-+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-+        ;;
-+      esac
-+      ;;
-+
-+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-+      # PIC is the default for these OSes.
-+      ;;
-+
-+    mingw* | cygwin* | pw32* | os2* | cegcc*)
-+      # This hack is so that the source file can tell whether it is being
-+      # built for inclusion in a dll (and should export symbols for example).
-+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-+      # (--disable-auto-import) libraries
-+      m4_if([$1], [GCJ], [],
-+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-+      ;;
-+
-+    darwin* | rhapsody*)
-+      # PIC is the default on this platform
-+      # Common symbols not allowed in MH_DYLIB files
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-+      ;;
-+
-+    haiku*)
-+      # PIC is the default for Haiku.
-+      # The "-static" flag exists, but is broken.
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-+      ;;
-+
-+    hpux*)
-+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-+      # sets the default TLS model and affects inlining.
-+      case $host_cpu in
-+      hppa*64*)
-+	# +Z the default
-+	;;
-+      *)
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+	;;
-+      esac
-+      ;;
-+
-+    interix[[3-9]]*)
-+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-+      # Instead, we relocate shared libraries at runtime.
-+      ;;
-+
-+    msdosdjgpp*)
-+      # Just because we use GCC doesn't mean we suddenly get shared libraries
-+      # on systems that don't support them.
-+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-+      enable_shared=no
-+      ;;
-+
-+    *nto* | *qnx*)
-+      # QNX uses GNU C++, but need to define -shared option too, otherwise
-+      # it will coredump.
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-+      ;;
-+
-+    sysv4*MP*)
-+      if test -d /usr/nec; then
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-+      fi
-+      ;;
-+
-+    *)
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+      ;;
-+    esac
-+
-+    case $cc_basename in
-+    nvcc*) # Cuda Compiler Driver 2.2
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
-+      fi
-+      ;;
-+    esac
-+  else
-+    # PORTME Check for flag to pass linker flags through the system compiler.
-+    case $host_os in
-+    aix*)
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+      if test "$host_cpu" = ia64; then
-+	# AIX 5 now supports IA64 processor
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      else
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-+      fi
-+      ;;
-+
-+    mingw* | cygwin* | pw32* | os2* | cegcc*)
-+      # This hack is so that the source file can tell whether it is being
-+      # built for inclusion in a dll (and should export symbols for example).
-+      m4_if([$1], [GCJ], [],
-+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-+      ;;
-+
-+    hpux9* | hpux10* | hpux11*)
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-+      # not for PA HP-UX.
-+      case $host_cpu in
-+      hppa*64*|ia64*)
-+	# +Z the default
-+	;;
-+      *)
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-+	;;
-+      esac
-+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-+      ;;
-+
-+    irix5* | irix6* | nonstopux*)
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+      # PIC (with -KPIC) is the default.
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-+      ;;
-+
-+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-+      case $cc_basename in
-+      # old Intel for x86_64 which still supported -KPIC.
-+      ecc*)
-+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-+        ;;
-+      # icc used to be incompatible with GCC.
-+      # ICC 10 doesn't accept -KPIC any more.
-+      icc* | ifort*)
-+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-+        ;;
-+      # Lahey Fortran 8.1.
-+      lf95*)
-+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
-+	;;
-+      nagfor*)
-+	# NAG Fortran compiler
-+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	;;
-+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-+        # Portland Group compilers (*not* the Pentium gcc compiler,
-+	# which looks to be a dead project)
-+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+        ;;
-+      ccc*)
-+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+        # All Alpha code is PIC.
-+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-+        ;;
-+      xl* | bgxl* | bgf* | mpixl*)
-+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-+	;;
-+      *)
-+	case `$CC -V 2>&1 | sed 5q` in
-+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
-+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
-+	  ;;
-+	*Sun\ F* | *Sun*Fortran*)
-+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-+	  ;;
-+	*Sun\ C*)
-+	  # Sun C 5.9
-+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	  ;;
-+        *Intel*\ [[CF]]*Compiler*)
-+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-+	  ;;
-+	*Portland\ Group*)
-+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+	  ;;
-+	esac
-+	;;
-+      esac
-+      ;;
-+
-+    newsos6)
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      ;;
-+
-+    *nto* | *qnx*)
-+      # QNX uses GNU C++, but need to define -shared option too, otherwise
-+      # it will coredump.
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-+      ;;
-+
-+    osf3* | osf4* | osf5*)
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+      # All OSF/1 code is PIC.
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-+      ;;
-+
-+    rdos*)
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-+      ;;
-+
-+    solaris*)
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      case $cc_basename in
-+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-+      *)
-+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-+      esac
-+      ;;
-+
-+    sunos4*)
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      ;;
-+
-+    sysv4 | sysv4.2uw2* | sysv4.3*)
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      ;;
-+
-+    sysv4*MP*)
-+      if test -d /usr/nec ;then
-+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      fi
-+      ;;
-+
-+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      ;;
-+
-+    unicos*)
-+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-+      ;;
-+
-+    uts4*)
-+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+      ;;
-+
-+    *)
-+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-+      ;;
-+    esac
-+  fi
-+])
-+case $host_os in
-+  # For platforms which do not support PIC, -DPIC is meaningless:
-+  *djgpp*)
-+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-+    ;;
-+  *)
-+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
-+    ;;
-+esac
-+
-+AC_CACHE_CHECK([for $compiler option to produce PIC],
-+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
-+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-+
-+#
-+# Check to make sure the PIC flag actually works.
-+#
-+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
-+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
-+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
-+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
-+     "" | " "*) ;;
-+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-+     esac],
-+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-+fi
-+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
-+	[Additional compiler flags for building library objects])
-+
-+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-+	[How to pass a linker flag through the compiler])
-+#
-+# Check to make sure the static flag actually works.
-+#
-+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
-+  $lt_tmp_static_flag,
-+  [],
-+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
-+	[Compiler flag to prevent dynamic linking])
-+])# _LT_COMPILER_PIC
-+
-+
-+# _LT_LINKER_SHLIBS([TAGNAME])
-+# ----------------------------
-+# See if the linker supports building shared libraries.
-+m4_defun([_LT_LINKER_SHLIBS],
-+[AC_REQUIRE([LT_PATH_LD])dnl
-+AC_REQUIRE([LT_PATH_NM])dnl
-+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+m4_require([_LT_DECL_EGREP])dnl
-+m4_require([_LT_DECL_SED])dnl
-+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-+m4_require([_LT_TAG_COMPILER])dnl
-+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-+m4_if([$1], [CXX], [
-+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-+  case $host_os in
-+  aix[[4-9]]*)
-+    # If we're using GNU nm, then we don't want the "-C" option.
-+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-+    # Also, AIX nm treats weak defined symbols like other global defined
-+    # symbols, whereas GNU nm marks them as "W".
-+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-+    else
-+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-+    fi
-+    ;;
-+  pw32*)
-+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-+    ;;
-+  cygwin* | mingw* | cegcc*)
-+    case $cc_basename in
-+    cl*)
-+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-+      ;;
-+    *)
-+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-+      ;;
-+    esac
-+    ;;
-+  linux* | k*bsd*-gnu | gnu*)
-+    _LT_TAGVAR(link_all_deplibs, $1)=no
-+    ;;
-+  *)
-+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-+    ;;
-+  esac
-+], [
-+  runpath_var=
-+  _LT_TAGVAR(allow_undefined_flag, $1)=
-+  _LT_TAGVAR(always_export_symbols, $1)=no
-+  _LT_TAGVAR(archive_cmds, $1)=
-+  _LT_TAGVAR(archive_expsym_cmds, $1)=
-+  _LT_TAGVAR(compiler_needs_object, $1)=no
-+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-+  _LT_TAGVAR(hardcode_automatic, $1)=no
-+  _LT_TAGVAR(hardcode_direct, $1)=no
-+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
-+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-+  _LT_TAGVAR(hardcode_minus_L, $1)=no
-+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-+  _LT_TAGVAR(inherit_rpath, $1)=no
-+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
-+  _LT_TAGVAR(module_cmds, $1)=
-+  _LT_TAGVAR(module_expsym_cmds, $1)=
-+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
-+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
-+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-+  # include_expsyms should be a list of space-separated symbols to be *always*
-+  # included in the symbol list
-+  _LT_TAGVAR(include_expsyms, $1)=
-+  # exclude_expsyms can be an extended regexp 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'.
-+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-+  # 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.
-+  # Exclude shared library initialization/finalization symbols.
-+dnl Note also adjust exclude_expsyms for C++ above.
-+  extract_expsyms_cmds=
-+
-+  case $host_os in
-+  cygwin* | mingw* | pw32* | cegcc*)
-+    # 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 "$GCC" != yes; then
-+      with_gnu_ld=no
-+    fi
-+    ;;
-+  interix*)
-+    # we just hope/assume this is gcc and not c89 (= MSVC++)
-+    with_gnu_ld=yes
-+    ;;
-+  openbsd*)
-+    with_gnu_ld=no
-+    ;;
-+  linux* | k*bsd*-gnu | gnu*)
-+    _LT_TAGVAR(link_all_deplibs, $1)=no
-+    ;;
-+  esac
-+
-+  _LT_TAGVAR(ld_shlibs, $1)=yes
-+
-+  # On some targets, GNU ld is compatible enough with the native linker
-+  # that we're better off using the native interface for both.
-+  lt_use_gnu_ld_interface=no
-+  if test "$with_gnu_ld" = yes; then
-+    case $host_os in
-+      aix*)
-+	# The AIX port of GNU ld has always aspired to compatibility
-+	# with the native linker.  However, as the warning in the GNU ld
-+	# block says, versions before 2.19.5* couldn't really create working
-+	# shared libraries, regardless of the interface used.
-+	case `$LD -v 2>&1` in
-+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-+	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
-+	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
-+	  *)
-+	    lt_use_gnu_ld_interface=yes
-+	    ;;
-+	esac
-+	;;
-+      *)
-+	lt_use_gnu_ld_interface=yes
-+	;;
-+    esac
-+  fi
-+
-+  if test "$lt_use_gnu_ld_interface" = yes; then
-+    # If archive_cmds runs LD, not CC, wlarc should be empty
-+    wlarc='${wl}'
-+
-+    # Set some defaults for GNU ld with shared library support. These
-+    # are reset later if shared libraries are not supported. Putting them
-+    # here allows them to be overridden if necessary.
-+    runpath_var=LD_RUN_PATH
-+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-+    # ancient GNU ld didn't support --whole-archive et. al.
-+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-+    else
-+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-+    fi
-+    supports_anon_versioning=no
-+    case `$LD -v 2>&1` in
-+      *GNU\ gold*) supports_anon_versioning=yes ;;
-+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-+      *\ 2.11.*) ;; # other 2.11 versions
-+      *) supports_anon_versioning=yes ;;
-+    esac
-+
-+    # See if GNU ld supports shared libraries.
-+    case $host_os in
-+    aix[[3-9]]*)
-+      # On AIX/PPC, the GNU linker is very broken
-+      if test "$host_cpu" != ia64; then
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+	cat <<_LT_EOF 1>&2
-+
-+*** Warning: the GNU linker, at least up to release 2.19, 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 install binutils
-+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-+*** You will then need to restart the configuration process.
-+
-+_LT_EOF
-+      fi
-+      ;;
-+
-+    amigaos*)
-+      case $host_cpu in
-+      powerpc)
-+            # see comment about AmigaOS4 .so support
-+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-+        ;;
-+      m68k)
-+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+        ;;
-+      esac
-+      ;;
-+
-+    beos*)
-+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-+	# support --undefined.  This deserves some investigation.  FIXME
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+      else
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+      fi
-+      ;;
-+
-+    cygwin* | mingw* | pw32* | cegcc*)
-+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-+      # as there is no search path for DLLs.
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+      _LT_TAGVAR(always_export_symbols, $1)=no
-+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-+
-+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-+	# If the export-symbols file already is a .def file (1st line
-+	# is EXPORTS), use it as is; otherwise, prepend...
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+	  cp $export_symbols $output_objdir/$soname.def;
-+	else
-+	  echo EXPORTS > $output_objdir/$soname.def;
-+	  cat $export_symbols >> $output_objdir/$soname.def;
-+	fi~
-+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-+      else
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+      fi
-+      ;;
-+
-+    haiku*)
-+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+      _LT_TAGVAR(link_all_deplibs, $1)=yes
-+      ;;
-+
-+    interix[[3-9]]*)
-+      _LT_TAGVAR(hardcode_direct, $1)=no
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-+      # Instead, shared libraries are loaded at an image base (0x10000000 by
-+      # default) and relocated if they conflict, which is a slow very memory
-+      # consuming and fragmenting process.  To avoid this, we pick a random,
-+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-+      ;;
-+
-+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-+      tmp_diet=no
-+      if test "$host_os" = linux-dietlibc; then
-+	case $cc_basename in
-+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-+	esac
-+      fi
-+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-+	 && test "$tmp_diet" = no
-+      then
-+	tmp_addflag=' $pic_flag'
-+	tmp_sharedflag='-shared'
-+	case $cc_basename,$host_cpu in
-+        pgcc*)				# Portland Group C compiler
-+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	  tmp_addflag=' $pic_flag'
-+	  ;;
-+	pgf77* | pgf90* | pgf95* | pgfortran*)
-+					# Portland Group f77 and f90 compilers
-+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	  tmp_addflag=' $pic_flag -Mnomain' ;;
-+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-+	  tmp_addflag=' -i_dynamic' ;;
-+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-+	ifc* | ifort*)			# Intel Fortran compiler
-+	  tmp_addflag=' -nofor_main' ;;
-+	lf95*)				# Lahey Fortran 8.1
-+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-+	  tmp_sharedflag='--shared' ;;
-+	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-+	  tmp_sharedflag='-qmkshrobj'
-+	  tmp_addflag= ;;
-+	nvcc*)	# Cuda Compiler Driver 2.2
-+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-+	  ;;
-+	esac
-+	case `$CC -V 2>&1 | sed 5q` in
-+	*Sun\ C*)			# Sun C 5.9
-+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-+	  tmp_sharedflag='-G' ;;
-+	*Sun\ F*)			# Sun Fortran 8.3
-+	  tmp_sharedflag='-G' ;;
-+	esac
-+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+
-+        if test "x$supports_anon_versioning" = xyes; then
-+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-+	    echo "local: *; };" >> $output_objdir/$libname.ver~
-+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-+        fi
-+
-+	case $cc_basename in
-+	xlf* | bgf* | bgxlf* | mpixlf*)
-+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-+	  if test "x$supports_anon_versioning" = xyes; then
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-+	      echo "local: *; };" >> $output_objdir/$libname.ver~
-+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-+	  fi
-+	  ;;
-+	esac
-+      else
-+        _LT_TAGVAR(ld_shlibs, $1)=no
-+      fi
-+      ;;
-+
-+    netbsd* | netbsdelf*-gnu)
-+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-+	wlarc=
-+      else
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+      fi
-+      ;;
-+
-+    solaris*)
-+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+	cat <<_LT_EOF 1>&2
-+
-+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-+*** create shared libraries on Solaris systems.  Therefore, libtool
-+*** is disabling shared libraries support.  We urge you to upgrade GNU
-+*** binutils to release 2.9.1 or newer.  Another option is to modify
-+*** your PATH or compiler configuration so that the native linker is
-+*** used, and then restart.
-+
-+_LT_EOF
-+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+      else
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+      fi
-+      ;;
-+
-+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-+      case `$LD -v 2>&1` in
-+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+	cat <<_LT_EOF 1>&2
-+
-+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-+*** reliably create shared libraries on SCO systems.  Therefore, libtool
-+*** is disabling shared libraries support.  We urge you to upgrade GNU
-+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-+*** your PATH or compiler configuration so that the native linker is
-+*** used, and then restart.
-+
-+_LT_EOF
-+	;;
-+	*)
-+	  # For security reasons, it is highly recommended that you always
-+	  # use absolute paths for naming shared libraries, and exclude the
-+	  # DT_RUNPATH tag from executables and libraries.  But doing so
-+	  # requires that you compile everything twice, which is a pain.
-+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+	  else
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	  fi
-+	;;
-+      esac
-+      ;;
-+
-+    sunos4*)
-+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-+      wlarc=
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    *)
-+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+      else
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+      fi
-+      ;;
-+    esac
-+
-+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
-+      runpath_var=
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-+    fi
-+  else
-+    # PORTME fill in a description of your system's linker (not GNU ld)
-+    case $host_os in
-+    aix3*)
-+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+      _LT_TAGVAR(always_export_symbols, $1)=yes
-+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-+      # Note: this linker hardcodes the directories in LIBPATH if there
-+      # are no directories specified by -L.
-+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-+	# Neither direct hardcoding nor static linking is supported with a
-+	# broken collect2.
-+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
-+      fi
-+      ;;
-+
-+    aix[[4-9]]*)
-+      if test "$host_cpu" = ia64; then
-+	# On IA64, the linker does run time linking by default, so we don't
-+	# have to do anything special.
-+	aix_use_runtimelinking=no
-+	exp_sym_flag='-Bexport'
-+	no_entry_flag=""
-+      else
-+	# If we're using GNU nm, then we don't want the "-C" option.
-+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-+	# Also, AIX nm treats weak defined symbols like other global
-+	# defined symbols, whereas GNU nm marks them as "W".
-+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-+	else
-+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-+	fi
-+	aix_use_runtimelinking=no
-+
-+	# Test if we are trying to use run time linking or normal
-+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-+	# need to do runtime linking.
-+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-+	  for ld_flag in $LDFLAGS; do
-+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-+	    aix_use_runtimelinking=yes
-+	    break
-+	  fi
-+	  done
-+	  ;;
-+	esac
-+
-+	exp_sym_flag='-bexport'
-+	no_entry_flag='-bnoentry'
-+      fi
-+
-+      # When large executables or shared objects are built, AIX ld can
-+      # have problems creating the table of contents.  If linking a library
-+      # or program results in "error TOC overflow" add -mminimal-toc to
-+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-+
-+      _LT_TAGVAR(archive_cmds, $1)=''
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-+      _LT_TAGVAR(link_all_deplibs, $1)=yes
-+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-+
-+      if test "$GCC" = yes; then
-+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
-+	# We only want to do this on AIX 4.2 and lower, the check
-+	# below for broken collect2 doesn't work under 4.3+
-+	  collect2name=`${CC} -print-prog-name=collect2`
-+	  if test -f "$collect2name" &&
-+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-+	  then
-+	  # We have reworked collect2
-+	  :
-+	  else
-+	  # We have old collect2
-+	  _LT_TAGVAR(hardcode_direct, $1)=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
-+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-+	  fi
-+	  ;;
-+	esac
-+	shared_flag='-shared'
-+	if test "$aix_use_runtimelinking" = yes; then
-+	  shared_flag="$shared_flag "'${wl}-G'
-+	fi
-+	_LT_TAGVAR(link_all_deplibs, $1)=no
-+      else
-+	# not using gcc
-+	if test "$host_cpu" = ia64; then
-+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-+	# chokes on -Wl,-G. The following line is correct:
-+	  shared_flag='-G'
-+	else
-+	  if test "$aix_use_runtimelinking" = yes; then
-+	    shared_flag='${wl}-G'
-+	  else
-+	    shared_flag='${wl}-bM:SRE'
-+	  fi
-+	fi
-+      fi
-+
-+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-+      # It seems that -bexpall does not export symbols beginning with
-+      # underscore (_), so it is better to generate a list of symbols to export.
-+      _LT_TAGVAR(always_export_symbols, $1)=yes
-+      if test "$aix_use_runtimelinking" = yes; then
-+	# Warning - without using the other runtime loading flags (-brtl),
-+	# -berok will link without error, but may produce a broken library.
-+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-+        # Determine the default libpath from the value encoded in an
-+        # empty executable.
-+        _LT_SYS_MODULE_PATH_AIX([$1])
-+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-+      else
-+	if test "$host_cpu" = ia64; then
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-+	else
-+	 # Determine the default libpath from the value encoded in an
-+	 # empty executable.
-+	 _LT_SYS_MODULE_PATH_AIX([$1])
-+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-+	  # Warning - without using the other run time loading flags,
-+	  # -berok will link without error, but may produce a broken library.
-+	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-+	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-+	  if test "$with_gnu_ld" = yes; then
-+	    # We only use this code for GNU lds that support --whole-archive.
-+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-+	  else
-+	    # Exported symbols can be pulled into shared objects from archives
-+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-+	  fi
-+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-+	  # This is similar to how AIX traditionally builds its shared libraries.
-+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-+	fi
-+      fi
-+      ;;
-+
-+    amigaos*)
-+      case $host_cpu in
-+      powerpc)
-+            # see comment about AmigaOS4 .so support
-+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-+        ;;
-+      m68k)
-+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+        ;;
-+      esac
-+      ;;
-+
-+    bsdi[[45]]*)
-+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-+      ;;
-+
-+    cygwin* | mingw* | pw32* | cegcc*)
-+      # 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.
-+      case $cc_basename in
-+      cl*)
-+	# Native MSVC
-+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+	_LT_TAGVAR(always_export_symbols, $1)=yes
-+	_LT_TAGVAR(file_list_spec, $1)='@'
-+	# Tell ltmain to make .lib files, not .a files.
-+	libext=lib
-+	# Tell ltmain to make .dll files, not .so files.
-+	shrext_cmds=".dll"
-+	# FIXME: Setting linknames here is a bad hack.
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-+	  else
-+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-+	  fi~
-+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-+	  linknames='
-+	# The linker will not automatically build a static lib if we build a DLL.
-+	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-+	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-+	# Don't use ranlib
-+	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-+	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-+	  case $lt_outputfile in
-+	    *.exe|*.EXE) ;;
-+	    *)
-+	      lt_outputfile="$lt_outputfile.exe"
-+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-+	      ;;
-+	  esac~
-+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-+	    $RM "$lt_outputfile.manifest";
-+	  fi'
-+	;;
-+      *)
-+	# Assume MSVC wrapper
-+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+	# Tell ltmain to make .lib files, not .a files.
-+	libext=lib
-+	# Tell ltmain to make .dll files, not .so files.
-+	shrext_cmds=".dll"
-+	# FIXME: Setting linknames here is a bad hack.
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-+	# The linker will automatically build a .lib file if we build a DLL.
-+	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-+	# FIXME: Should let the user specify the lib program.
-+	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+	;;
-+      esac
-+      ;;
-+
-+    darwin* | rhapsody*)
-+      _LT_DARWIN_LINKER_FEATURES($1)
-+      ;;
-+
-+    dgux*)
-+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-+    # support.  Future versions do this automatically, but an explicit c++rt0.o
-+    # does not break anything, and helps significantly (at the cost of a little
-+    # extra space).
-+    freebsd2.2*)
-+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-+    freebsd2.*)
-+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-+    freebsd* | dragonfly*)
-+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    hpux9*)
-+      if test "$GCC" = yes; then
-+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+      else
-+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+      fi
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+
-+      # hardcode_minus_L: Not really in the search PATH,
-+      # but as the default location of the library.
-+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+      ;;
-+
-+    hpux10*)
-+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+      else
-+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-+      fi
-+      if test "$with_gnu_ld" = no; then
-+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+	_LT_TAGVAR(hardcode_direct, $1)=yes
-+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+	# hardcode_minus_L: Not really in the search PATH,
-+	# but as the default location of the library.
-+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
-+      fi
-+      ;;
-+
-+    hpux11*)
-+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-+	case $host_cpu in
-+	hppa*64*)
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	ia64*)
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	*)
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	esac
-+      else
-+	case $host_cpu in
-+	hppa*64*)
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	ia64*)
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	*)
-+	m4_if($1, [], [
-+	  # Older versions of the 11.00 compiler do not understand -b yet
-+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-+	  _LT_LINKER_OPTION([if $CC understands -b],
-+	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-+	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
-+	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-+	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
-+	  ;;
-+	esac
-+      fi
-+      if test "$with_gnu_ld" = no; then
-+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+
-+	case $host_cpu in
-+	hppa*64*|ia64*)
-+	  _LT_TAGVAR(hardcode_direct, $1)=no
-+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+	  ;;
-+	*)
-+	  _LT_TAGVAR(hardcode_direct, $1)=yes
-+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+
-+	  # hardcode_minus_L: Not really in the search PATH,
-+	  # but as the default location of the library.
-+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+	  ;;
-+	esac
-+      fi
-+      ;;
-+
-+    irix5* | irix6* | nonstopux*)
-+      if test "$GCC" = yes; then
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+	# Try to use the -exported_symbol ld option, if it does not
-+	# work, assume that -exports_file does not work either and
-+	# implicitly export all symbols.
-+	# This should be the same for all languages, so no per-tag cache variable.
-+	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
-+	  [lt_cv_irix_exported_symbol],
-+	  [save_LDFLAGS="$LDFLAGS"
-+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-+	   AC_LINK_IFELSE(
-+	     [AC_LANG_SOURCE(
-+	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
-+			      [C++], [[int foo (void) { return 0; }]],
-+			      [Fortran 77], [[
-+      subroutine foo
-+      end]],
-+			      [Fortran], [[
-+      subroutine foo
-+      end]])])],
-+	      [lt_cv_irix_exported_symbol=yes],
-+	      [lt_cv_irix_exported_symbol=no])
-+           LDFLAGS="$save_LDFLAGS"])
-+	if test "$lt_cv_irix_exported_symbol" = yes; then
-+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-+	fi
-+      else
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-+      fi
-+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+      _LT_TAGVAR(inherit_rpath, $1)=yes
-+      _LT_TAGVAR(link_all_deplibs, $1)=yes
-+      ;;
-+
-+    netbsd* | netbsdelf*-gnu)
-+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-+      else
-+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-+      fi
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    newsos6)
-+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    *nto* | *qnx*)
-+      ;;
-+
-+    openbsd*)
-+      if test -f /usr/libexec/ld.so; then
-+	_LT_TAGVAR(hardcode_direct, $1)=yes
-+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+	else
-+	  case $host_os in
-+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-+	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-+	     ;;
-+	   *)
-+	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-+	     ;;
-+	  esac
-+	fi
-+      else
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+      fi
-+      ;;
-+
-+    os2*)
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-+      ;;
-+
-+    osf3*)
-+      if test "$GCC" = yes; then
-+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+      else
-+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+      fi
-+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+      ;;
-+
-+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-+      if test "$GCC" = yes; then
-+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+      else
-+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-+
-+	# Both c and cxx compiler support -rpath directly
-+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-+      fi
-+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+      ;;
-+
-+    solaris*)
-+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-+      if test "$GCC" = yes; then
-+	wlarc='${wl}'
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-+      else
-+	case `$CC -V 2>&1` in
-+	*"Compilers 5.0"*)
-+	  wlarc=''
-+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+	  _LT_TAGVAR(archive_expsym_cmds, $1)='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 $linker_flags~$RM $lib.exp'
-+	  ;;
-+	*)
-+	  wlarc='${wl}'
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-+	  ;;
-+	esac
-+      fi
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      case $host_os in
-+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-+      *)
-+	# The compiler driver will combine and reorder linker options,
-+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-+	# but is careful enough not to reorder.
-+	# Supported since Solaris 2.6 (maybe 2.5.1?)
-+	if test "$GCC" = yes; then
-+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-+	else
-+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-+	fi
-+	;;
-+      esac
-+      _LT_TAGVAR(link_all_deplibs, $1)=yes
-+      ;;
-+
-+    sunos4*)
-+      if test "x$host_vendor" = xsequent; then
-+	# Use $CC to link under sequent, because it throws in some extra .o
-+	# files that make .init and .fini sections work.
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-+      else
-+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-+      fi
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+      _LT_TAGVAR(hardcode_direct, $1)=yes
-+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    sysv4)
-+      case $host_vendor in
-+	sni)
-+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-+	;;
-+	siemens)
-+	  ## LD is ld it makes a PLAMLIB
-+	  ## CC just makes a GrossModule.
-+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-+	  _LT_TAGVAR(hardcode_direct, $1)=no
-+        ;;
-+	motorola)
-+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-+	;;
-+      esac
-+      runpath_var='LD_RUN_PATH'
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    sysv4.3*)
-+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-+      ;;
-+
-+    sysv4*MP*)
-+      if test -d /usr/nec; then
-+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+	runpath_var=LD_RUN_PATH
-+	hardcode_runpath_var=yes
-+	_LT_TAGVAR(ld_shlibs, $1)=yes
-+      fi
-+      ;;
-+
-+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      runpath_var='LD_RUN_PATH'
-+
-+      if test "$GCC" = yes; then
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+      else
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+      fi
-+      ;;
-+
-+    sysv5* | sco3.2v5* | sco5v6*)
-+      # Note: We can NOT use -z defs as we might desire, because we do not
-+      # link with -lc, and that would cause any symbols used from libc to
-+      # always be unresolved, which means just about no library would
-+      # ever link correctly.  If we're not using GNU ld we use -z text
-+      # though, which does catch some bad symbols but isn't as heavy-handed
-+      # as -z defs.
-+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-+      _LT_TAGVAR(link_all_deplibs, $1)=yes
-+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-+      runpath_var='LD_RUN_PATH'
-+
-+      if test "$GCC" = yes; then
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+      else
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+      fi
-+      ;;
-+
-+    uts4*)
-+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      ;;
-+
-+    *)
-+      _LT_TAGVAR(ld_shlibs, $1)=no
-+      ;;
-+    esac
-+
-+    if test x$host_vendor = xsni; then
-+      case $host in
-+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
-+	;;
-+      esac
-+    fi
-+  fi
-+])
-+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-+
-+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-+
-+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-+_LT_DECL([], [extract_expsyms_cmds], [2],
-+    [The commands to extract the exported symbol list from a shared archive])
-+
-+#
-+# Do we need to explicitly link libc?
-+#
-+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-+x|xyes)
-+  # Assume -lc should be added
-+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-+
-+  if test "$enable_shared" = yes && test "$GCC" = yes; then
-+    case $_LT_TAGVAR(archive_cmds, $1) in
-+    *'~'*)
-+      # FIXME: we may have to deal with multi-command sequences.
-+      ;;
-+    '$CC '*)
-+      # Test whether the compiler implicitly links with -lc since on some
-+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-+      # to ld, don't add -lc before -lgcc.
-+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
-+	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
-+	[$RM conftest*
-+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-+
-+	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-+	  soname=conftest
-+	  lib=conftest
-+	  libobjs=conftest.$ac_objext
-+	  deplibs=
-+	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-+	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-+	  compiler_flags=-v
-+	  linker_flags=-v
-+	  verstring=
-+	  output_objdir=.
-+	  libname=conftest
-+	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-+	  _LT_TAGVAR(allow_undefined_flag, $1)=
-+	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-+	  then
-+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+	  else
-+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-+	  fi
-+	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-+	else
-+	  cat conftest.err 1>&5
-+	fi
-+	$RM conftest*
-+	])
-+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
-+      ;;
-+    esac
-+  fi
-+  ;;
-+esac
-+
-+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
-+    [Whether or not to add -lc for building shared libraries])
-+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
-+    [enable_shared_with_static_runtimes], [0],
-+    [Whether or not to disallow shared libs when runtime libs are static])
-+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
-+    [Compiler flag to allow reflexive dlopens])
-+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
-+    [Compiler flag to generate shared objects directly from archives])
-+_LT_TAGDECL([], [compiler_needs_object], [1],
-+    [Whether the compiler copes with passing no objects directly])
-+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
-+    [Create an old-style archive from a shared archive])
-+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
-+    [Create a temporary old-style archive to link instead of a shared archive])
-+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-+_LT_TAGDECL([], [archive_expsym_cmds], [2])
-+_LT_TAGDECL([], [module_cmds], [2],
-+    [Commands used to build a loadable module if different from building
-+    a shared archive.])
-+_LT_TAGDECL([], [module_expsym_cmds], [2])
-+_LT_TAGDECL([], [with_gnu_ld], [1],
-+    [Whether we are building with GNU ld or not])
-+_LT_TAGDECL([], [allow_undefined_flag], [1],
-+    [Flag that allows shared libraries with undefined symbols to be built])
-+_LT_TAGDECL([], [no_undefined_flag], [1],
-+    [Flag that enforces no undefined symbols])
-+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
-+    [Flag to hardcode $libdir into a binary during linking.
-+    This must work even if $libdir does not exist])
-+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
-+    [Whether we need a single "-rpath" flag with a separated argument])
-+_LT_TAGDECL([], [hardcode_direct], [0],
-+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-+    DIR into the resulting binary])
-+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
-+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-+    DIR into the resulting binary and the resulting library dependency is
-+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
-+    library is relocated])
-+_LT_TAGDECL([], [hardcode_minus_L], [0],
-+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-+    into the resulting binary])
-+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
-+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-+    into the resulting binary])
-+_LT_TAGDECL([], [hardcode_automatic], [0],
-+    [Set to "yes" if building a shared library automatically hardcodes DIR
-+    into the library and all subsequent libraries and executables linked
-+    against it])
-+_LT_TAGDECL([], [inherit_rpath], [0],
-+    [Set to yes if linker adds runtime paths of dependent libraries
-+    to runtime path list])
-+_LT_TAGDECL([], [link_all_deplibs], [0],
-+    [Whether libtool must link a program against all its dependency libraries])
-+_LT_TAGDECL([], [always_export_symbols], [0],
-+    [Set to "yes" if exported symbols are required])
-+_LT_TAGDECL([], [export_symbols_cmds], [2],
-+    [The commands to list exported symbols])
-+_LT_TAGDECL([], [exclude_expsyms], [1],
-+    [Symbols that should not be listed in the preloaded symbols])
-+_LT_TAGDECL([], [include_expsyms], [1],
-+    [Symbols that must always be exported])
-+_LT_TAGDECL([], [prelink_cmds], [2],
-+    [Commands necessary for linking programs (against libraries) with templates])
-+_LT_TAGDECL([], [postlink_cmds], [2],
-+    [Commands necessary for finishing linking programs])
-+_LT_TAGDECL([], [file_list_spec], [1],
-+    [Specify filename containing input files])
-+dnl FIXME: Not yet implemented
-+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-+dnl    [Compiler flag to generate thread safe objects])
-+])# _LT_LINKER_SHLIBS
-+
-+
-+# _LT_LANG_C_CONFIG([TAG])
-+# ------------------------
-+# Ensure that the configuration variables for a C compiler are suitably
-+# defined.  These variables are subsequently used by _LT_CONFIG to write
-+# the compiler configuration to `libtool'.
-+m4_defun([_LT_LANG_C_CONFIG],
-+[m4_require([_LT_DECL_EGREP])dnl
-+lt_save_CC="$CC"
-+AC_LANG_PUSH(C)
-+
-+# Source file extension for C test sources.
-+ac_ext=c
-+
-+# Object file extension for compiled C test sources.
-+objext=o
-+_LT_TAGVAR(objext, $1)=$objext
-+
-+# Code to be used in simple compile tests
-+lt_simple_compile_test_code="int some_variable = 0;"
-+
-+# Code to be used in simple link tests
-+lt_simple_link_test_code='int main(){return(0);}'
-+
-+_LT_TAG_COMPILER
-+# Save the default compiler, since it gets overwritten when the other
-+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-+compiler_DEFAULT=$CC
-+
-+# save warnings/boilerplate of simple test code
-+_LT_COMPILER_BOILERPLATE
-+_LT_LINKER_BOILERPLATE
-+
-+## CAVEAT EMPTOR:
-+## There is no encapsulation within the following macros, do not change
-+## the running order or otherwise move them around unless you know exactly
-+## what you are doing...
-+if test -n "$compiler"; then
-+  _LT_COMPILER_NO_RTTI($1)
-+  _LT_COMPILER_PIC($1)
-+  _LT_COMPILER_C_O($1)
-+  _LT_COMPILER_FILE_LOCKS($1)
-+  _LT_LINKER_SHLIBS($1)
-+  _LT_SYS_DYNAMIC_LINKER($1)
-+  _LT_LINKER_HARDCODE_LIBPATH($1)
-+  LT_SYS_DLOPEN_SELF
-+  _LT_CMD_STRIPLIB
-+
-+  # Report which library types will actually be built
-+  AC_MSG_CHECKING([if libtool supports shared libraries])
-+  AC_MSG_RESULT([$can_build_shared])
-+
-+  AC_MSG_CHECKING([whether to build shared libraries])
-+  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
-+  aix3*)
-+    test "$enable_shared" = yes && enable_static=no
-+    if test -n "$RANLIB"; then
-+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-+      postinstall_cmds='$RANLIB $lib'
-+    fi
-+    ;;
-+
-+  aix[[4-9]]*)
-+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-+      test "$enable_shared" = yes && enable_static=no
-+    fi
-+    ;;
-+  esac
-+  AC_MSG_RESULT([$enable_shared])
-+
-+  AC_MSG_CHECKING([whether to build static libraries])
-+  # Make sure either enable_shared or enable_static is yes.
-+  test "$enable_shared" = yes || enable_static=yes
-+  AC_MSG_RESULT([$enable_static])
-+
-+  _LT_CONFIG($1)
-+fi
-+AC_LANG_POP
-+CC="$lt_save_CC"
-+])# _LT_LANG_C_CONFIG
-+
-+
-+# _LT_LANG_CXX_CONFIG([TAG])
-+# --------------------------
-+# Ensure that the configuration variables for a C++ compiler are suitably
-+# defined.  These variables are subsequently used by _LT_CONFIG to write
-+# the compiler configuration to `libtool'.
-+m4_defun([_LT_LANG_CXX_CONFIG],
-+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+m4_require([_LT_DECL_EGREP])dnl
-+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-+    (test "X$CXX" != "Xg++"))) ; then
-+  AC_PROG_CXXCPP
-+else
-+  _lt_caught_CXX_error=yes
-+fi
-+
-+AC_LANG_PUSH(C++)
-+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+_LT_TAGVAR(allow_undefined_flag, $1)=
-+_LT_TAGVAR(always_export_symbols, $1)=no
-+_LT_TAGVAR(archive_expsym_cmds, $1)=
-+_LT_TAGVAR(compiler_needs_object, $1)=no
-+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-+_LT_TAGVAR(hardcode_direct, $1)=no
-+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-+_LT_TAGVAR(hardcode_libdir_separator, $1)=
-+_LT_TAGVAR(hardcode_minus_L, $1)=no
-+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-+_LT_TAGVAR(hardcode_automatic, $1)=no
-+_LT_TAGVAR(inherit_rpath, $1)=no
-+_LT_TAGVAR(module_cmds, $1)=
-+_LT_TAGVAR(module_expsym_cmds, $1)=
-+_LT_TAGVAR(link_all_deplibs, $1)=unknown
-+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-+_LT_TAGVAR(reload_flag, $1)=$reload_flag
-+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-+_LT_TAGVAR(no_undefined_flag, $1)=
-+_LT_TAGVAR(whole_archive_flag_spec, $1)=
-+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-+
-+# Source file extension for C++ test sources.
-+ac_ext=cpp
-+
-+# Object file extension for compiled C++ test sources.
-+objext=o
-+_LT_TAGVAR(objext, $1)=$objext
-+
-+# No sense in running all these tests if we already determined that
-+# the CXX compiler isn't working.  Some variables (like enable_shared)
-+# are currently assumed to apply to all compilers on this platform,
-+# and will be corrupted by setting them based on a non-working compiler.
-+if test "$_lt_caught_CXX_error" != yes; then
-+  # Code to be used in simple compile tests
-+  lt_simple_compile_test_code="int some_variable = 0;"
-+
-+  # Code to be used in simple link tests
-+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-+
-+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-+  _LT_TAG_COMPILER
-+
-+  # save warnings/boilerplate of simple test code
-+  _LT_COMPILER_BOILERPLATE
-+  _LT_LINKER_BOILERPLATE
-+
-+  # Allow CC to be a program name with arguments.
-+  lt_save_CC=$CC
-+  lt_save_CFLAGS=$CFLAGS
-+  lt_save_LD=$LD
-+  lt_save_GCC=$GCC
-+  GCC=$GXX
-+  lt_save_with_gnu_ld=$with_gnu_ld
-+  lt_save_path_LD=$lt_cv_path_LD
-+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-+  else
-+    $as_unset lt_cv_prog_gnu_ld
-+  fi
-+  if test -n "${lt_cv_path_LDCXX+set}"; then
-+    lt_cv_path_LD=$lt_cv_path_LDCXX
-+  else
-+    $as_unset lt_cv_path_LD
-+  fi
-+  test -z "${LDCXX+set}" || LD=$LDCXX
-+  CC=${CXX-"c++"}
-+  CFLAGS=$CXXFLAGS
-+  compiler=$CC
-+  _LT_TAGVAR(compiler, $1)=$CC
-+  _LT_CC_BASENAME([$compiler])
-+
-+  if test -n "$compiler"; then
-+    # We don't want -fno-exception when compiling C++ code, so set the
-+    # no_builtin_flag separately
-+    if test "$GXX" = yes; then
-+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-+    else
-+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-+    fi
-+
-+    if test "$GXX" = yes; then
-+      # Set up default GNU C++ configuration
-+
-+      LT_PATH_LD
-+
-+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-+      # archiving commands below assume that GNU ld is being used.
-+      if test "$with_gnu_ld" = yes; then
-+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+
-+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-+
-+        # If archive_cmds runs LD, not CC, wlarc should be empty
-+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-+        #     investigate it a little bit more. (MM)
-+        wlarc='${wl}'
-+
-+        # ancient GNU ld didn't support --whole-archive et. al.
-+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-+	  $GREP 'no-whole-archive' > /dev/null; then
-+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-+        else
-+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
-+        fi
-+      else
-+        with_gnu_ld=no
-+        wlarc=
-+
-+        # A generic and very simple default shared library creation
-+        # command for GNU C++ for the case where it uses the native
-+        # linker, instead of GNU ld.  If possible, this setting should
-+        # overridden to take advantage of the native linker features on
-+        # the platform it is being used on.
-+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-+      fi
-+
-+      # Commands to make compiler produce verbose output that lists
-+      # what "hidden" libraries, object files and flags are used when
-+      # linking a shared library.
-+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-+
-+    else
-+      GXX=no
-+      with_gnu_ld=no
-+      wlarc=
-+    fi
-+
-+    # PORTME: fill in a description of your system's C++ link characteristics
-+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-+    _LT_TAGVAR(ld_shlibs, $1)=yes
-+    case $host_os in
-+      aix3*)
-+        # FIXME: insert proper C++ library support
-+        _LT_TAGVAR(ld_shlibs, $1)=no
-+        ;;
-+      aix[[4-9]]*)
-+        if test "$host_cpu" = ia64; then
-+          # On IA64, the linker does run time linking by default, so we don't
-+          # have to do anything special.
-+          aix_use_runtimelinking=no
-+          exp_sym_flag='-Bexport'
-+          no_entry_flag=""
-+        else
-+          aix_use_runtimelinking=no
-+
-+          # Test if we are trying to use run time linking or normal
-+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-+          # need to do runtime linking.
-+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-+	    for ld_flag in $LDFLAGS; do
-+	      case $ld_flag in
-+	      *-brtl*)
-+	        aix_use_runtimelinking=yes
-+	        break
-+	        ;;
-+	      esac
-+	    done
-+	    ;;
-+          esac
-+
-+          exp_sym_flag='-bexport'
-+          no_entry_flag='-bnoentry'
-+        fi
-+
-+        # When large executables or shared objects are built, AIX ld can
-+        # have problems creating the table of contents.  If linking a library
-+        # or program results in "error TOC overflow" add -mminimal-toc to
-+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-+
-+        _LT_TAGVAR(archive_cmds, $1)=''
-+        _LT_TAGVAR(hardcode_direct, $1)=yes
-+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-+        _LT_TAGVAR(link_all_deplibs, $1)=yes
-+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-+
-+        if test "$GXX" = yes; then
-+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
-+          # We only want to do this on AIX 4.2 and lower, the check
-+          # below for broken collect2 doesn't work under 4.3+
-+	  collect2name=`${CC} -print-prog-name=collect2`
-+	  if test -f "$collect2name" &&
-+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-+	  then
-+	    # We have reworked collect2
-+	    :
-+	  else
-+	    # We have old collect2
-+	    _LT_TAGVAR(hardcode_direct, $1)=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
-+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
-+	  fi
-+          esac
-+          shared_flag='-shared'
-+	  if test "$aix_use_runtimelinking" = yes; then
-+	    shared_flag="$shared_flag "'${wl}-G'
-+	  fi
-+        else
-+          # not using gcc
-+          if test "$host_cpu" = ia64; then
-+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-+	  # chokes on -Wl,-G. The following line is correct:
-+	  shared_flag='-G'
-+          else
-+	    if test "$aix_use_runtimelinking" = yes; then
-+	      shared_flag='${wl}-G'
-+	    else
-+	      shared_flag='${wl}-bM:SRE'
-+	    fi
-+          fi
-+        fi
-+
-+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-+        # It seems that -bexpall does not export symbols beginning with
-+        # underscore (_), so it is better to generate a list of symbols to
-+	# export.
-+        _LT_TAGVAR(always_export_symbols, $1)=yes
-+        if test "$aix_use_runtimelinking" = yes; then
-+          # Warning - without using the other runtime loading flags (-brtl),
-+          # -berok will link without error, but may produce a broken library.
-+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-+          # Determine the default libpath from the value encoded in an empty
-+          # executable.
-+          _LT_SYS_MODULE_PATH_AIX([$1])
-+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-+
-+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-+        else
-+          if test "$host_cpu" = ia64; then
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-+          else
-+	    # Determine the default libpath from the value encoded in an
-+	    # empty executable.
-+	    _LT_SYS_MODULE_PATH_AIX([$1])
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-+	    # Warning - without using the other run time loading flags,
-+	    # -berok will link without error, but may produce a broken library.
-+	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-+	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-+	    if test "$with_gnu_ld" = yes; then
-+	      # We only use this code for GNU lds that support --whole-archive.
-+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-+	    else
-+	      # Exported symbols can be pulled into shared objects from archives
-+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-+	    fi
-+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-+	    # This is similar to how AIX traditionally builds its shared
-+	    # libraries.
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-+          fi
-+        fi
-+        ;;
-+
-+      beos*)
-+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-+	  # support --undefined.  This deserves some investigation.  FIXME
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	else
-+	  _LT_TAGVAR(ld_shlibs, $1)=no
-+	fi
-+	;;
-+
-+      chorus*)
-+        case $cc_basename in
-+          *)
-+	  # FIXME: insert proper C++ library support
-+	  _LT_TAGVAR(ld_shlibs, $1)=no
-+	  ;;
-+        esac
-+        ;;
-+
-+      cygwin* | mingw* | pw32* | cegcc*)
-+	case $GXX,$cc_basename in
-+	,cl* | no,cl*)
-+	  # Native MSVC
-+	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-+	  # no search path for DLLs.
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+	  _LT_TAGVAR(always_export_symbols, $1)=yes
-+	  _LT_TAGVAR(file_list_spec, $1)='@'
-+	  # Tell ltmain to make .lib files, not .a files.
-+	  libext=lib
-+	  # Tell ltmain to make .dll files, not .so files.
-+	  shrext_cmds=".dll"
-+	  # FIXME: Setting linknames here is a bad hack.
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-+	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-+	    else
-+	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-+	    fi~
-+	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-+	    linknames='
-+	  # The linker will not automatically build a static lib if we build a DLL.
-+	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+	  # Don't use ranlib
-+	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-+	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-+	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-+	    case $lt_outputfile in
-+	      *.exe|*.EXE) ;;
-+	      *)
-+		lt_outputfile="$lt_outputfile.exe"
-+		lt_tool_outputfile="$lt_tool_outputfile.exe"
-+		;;
-+	    esac~
-+	    func_to_tool_file "$lt_outputfile"~
-+	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-+	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-+	      $RM "$lt_outputfile.manifest";
-+	    fi'
-+	  ;;
-+	*)
-+	  # g++
-+	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-+	  # as there is no search path for DLLs.
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+	  _LT_TAGVAR(always_export_symbols, $1)=no
-+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+
-+	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-+	    # If the export-symbols file already is a .def file (1st line
-+	    # is EXPORTS), use it as is; otherwise, prepend...
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+	      cp $export_symbols $output_objdir/$soname.def;
-+	    else
-+	      echo EXPORTS > $output_objdir/$soname.def;
-+	      cat $export_symbols >> $output_objdir/$soname.def;
-+	    fi~
-+	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-+	  else
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	  fi
-+	  ;;
-+	esac
-+	;;
-+      darwin* | rhapsody*)
-+        _LT_DARWIN_LINKER_FEATURES($1)
-+	;;
-+
-+      dgux*)
-+        case $cc_basename in
-+          ec++*)
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+          ghcx*)
-+	    # Green Hills C++ Compiler
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+          *)
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+        esac
-+        ;;
-+
-+      freebsd2.*)
-+        # C++ shared libraries reported to be fairly broken before
-+	# switch to ELF
-+        _LT_TAGVAR(ld_shlibs, $1)=no
-+        ;;
-+
-+      freebsd-elf*)
-+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+        ;;
-+
-+      freebsd* | dragonfly*)
-+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-+        # conventions
-+        _LT_TAGVAR(ld_shlibs, $1)=yes
-+        ;;
-+
-+      gnu*)
-+        ;;
-+
-+      haiku*)
-+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+        _LT_TAGVAR(link_all_deplibs, $1)=yes
-+        ;;
-+
-+      hpux9*)
-+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+        _LT_TAGVAR(hardcode_direct, $1)=yes
-+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-+				             # but as the default
-+				             # location of the library.
-+
-+        case $cc_basename in
-+          CC*)
-+            # FIXME: insert proper C++ library support
-+            _LT_TAGVAR(ld_shlibs, $1)=no
-+            ;;
-+          aCC*)
-+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+            # Commands to make compiler produce verbose output that lists
-+            # what "hidden" libraries, object files and flags are used when
-+            # linking a shared library.
-+            #
-+            # There doesn't appear to be a way to prevent this compiler from
-+            # explicitly linking system object files so we need to strip them
-+            # from the output so that they don't get included in the library
-+            # dependencies.
-+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-+            ;;
-+          *)
-+            if test "$GXX" = yes; then
-+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+            else
-+              # FIXME: insert proper C++ library support
-+              _LT_TAGVAR(ld_shlibs, $1)=no
-+            fi
-+            ;;
-+        esac
-+        ;;
-+
-+      hpux10*|hpux11*)
-+        if test $with_gnu_ld = no; then
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+
-+          case $host_cpu in
-+            hppa*64*|ia64*)
-+              ;;
-+            *)
-+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+              ;;
-+          esac
-+        fi
-+        case $host_cpu in
-+          hppa*64*|ia64*)
-+            _LT_TAGVAR(hardcode_direct, $1)=no
-+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+            ;;
-+          *)
-+            _LT_TAGVAR(hardcode_direct, $1)=yes
-+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-+					         # but as the default
-+					         # location of the library.
-+            ;;
-+        esac
-+
-+        case $cc_basename in
-+          CC*)
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+          aCC*)
-+	    case $host_cpu in
-+	      hppa*64*)
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+	        ;;
-+	      ia64*)
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+	        ;;
-+	      *)
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+	        ;;
-+	    esac
-+	    # Commands to make compiler produce verbose output that lists
-+	    # what "hidden" libraries, object files and flags are used when
-+	    # linking a shared library.
-+	    #
-+	    # There doesn't appear to be a way to prevent this compiler from
-+	    # explicitly linking system object files so we need to strip them
-+	    # from the output so that they don't get included in the library
-+	    # dependencies.
-+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-+	    ;;
-+          *)
-+	    if test "$GXX" = yes; then
-+	      if test $with_gnu_ld = no; then
-+	        case $host_cpu in
-+	          hppa*64*)
-+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+	            ;;
-+	          ia64*)
-+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+	            ;;
-+	          *)
-+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+	            ;;
-+	        esac
-+	      fi
-+	    else
-+	      # FIXME: insert proper C++ library support
-+	      _LT_TAGVAR(ld_shlibs, $1)=no
-+	    fi
-+	    ;;
-+        esac
-+        ;;
-+
-+      interix[[3-9]]*)
-+	_LT_TAGVAR(hardcode_direct, $1)=no
-+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-+	# Instead, shared libraries are loaded at an image base (0x10000000 by
-+	# default) and relocated if they conflict, which is a slow very memory
-+	# consuming and fragmenting process.  To avoid this, we pick a random,
-+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-+	;;
-+      irix5* | irix6*)
-+        case $cc_basename in
-+          CC*)
-+	    # SGI C++
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+
-+	    # Archives containing C++ object files must be created using
-+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-+	    # necessary to make sure instantiated templates are included
-+	    # in the archive.
-+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-+	    ;;
-+          *)
-+	    if test "$GXX" = yes; then
-+	      if test "$with_gnu_ld" = no; then
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+	      else
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
-+	      fi
-+	    fi
-+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-+	    ;;
-+        esac
-+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+        _LT_TAGVAR(inherit_rpath, $1)=yes
-+        ;;
-+
-+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-+        case $cc_basename in
-+          KCC*)
-+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-+
-+	    # KCC will only create a shared library if the output file
-+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-+	    # to its proper name (with version) after linking.
-+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-+	    # Commands to make compiler produce verbose output that lists
-+	    # what "hidden" libraries, object files and flags are used when
-+	    # linking a shared library.
-+	    #
-+	    # There doesn't appear to be a way to prevent this compiler from
-+	    # explicitly linking system object files so we need to strip them
-+	    # from the output so that they don't get included in the library
-+	    # dependencies.
-+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-+
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-+
-+	    # Archives containing C++ object files must be created using
-+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-+	    ;;
-+	  icpc* | ecpc* )
-+	    # Intel C++
-+	    with_gnu_ld=yes
-+	    # version 8.0 and above of icpc choke on multiply defined symbols
-+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-+	    # earlier do not add the objects themselves.
-+	    case `$CC -V 2>&1` in
-+	      *"Version 7."*)
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+		;;
-+	      *)  # Version 8.0 or newer
-+	        tmp_idyn=
-+	        case $host_cpu in
-+		  ia64*) tmp_idyn=' -i_dynamic';;
-+		esac
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+		;;
-+	    esac
-+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-+	    ;;
-+          pgCC* | pgcpp*)
-+            # Portland Group C++ compiler
-+	    case `$CC -V` in
-+	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
-+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-+		rm -rf $tpldir~
-+		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-+		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-+		rm -rf $tpldir~
-+		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-+		$RANLIB $oldlib'
-+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-+		rm -rf $tpldir~
-+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-+		rm -rf $tpldir~
-+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-+	      ;;
-+	    *) # Version 6 and above use weak symbols
-+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-+	      ;;
-+	    esac
-+
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+            ;;
-+	  cxx*)
-+	    # Compaq C++
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-+
-+	    runpath_var=LD_RUN_PATH
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+
-+	    # Commands to make compiler produce verbose output that lists
-+	    # what "hidden" libraries, object files and flags are used when
-+	    # linking a shared library.
-+	    #
-+	    # There doesn't appear to be a way to prevent this compiler from
-+	    # explicitly linking system object files so we need to strip them
-+	    # from the output so that they don't get included in the library
-+	    # dependencies.
-+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-+	    ;;
-+	  xl* | mpixl* | bgxl*)
-+	    # IBM XL 8.0 on PPC, with GNU ld
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	    if test "x$supports_anon_versioning" = xyes; then
-+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-+		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-+		echo "local: *; };" >> $output_objdir/$libname.ver~
-+		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-+	    fi
-+	    ;;
-+	  *)
-+	    case `$CC -V 2>&1 | sed 5q` in
-+	    *Sun\ C*)
-+	      # Sun C++ 5.9
-+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
-+
-+	      # Not sure whether something based on
-+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-+	      # would be better.
-+	      output_verbose_link_cmd='func_echo_all'
-+
-+	      # Archives containing C++ object files must be created using
-+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-+	      # necessary to make sure instantiated templates are included
-+	      # in the archive.
-+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-+	      ;;
-+	    esac
-+	    ;;
-+	esac
-+	;;
-+
-+      lynxos*)
-+        # FIXME: insert proper C++ library support
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+	;;
-+
-+      m88k*)
-+        # FIXME: insert proper C++ library support
-+        _LT_TAGVAR(ld_shlibs, $1)=no
-+	;;
-+
-+      mvs*)
-+        case $cc_basename in
-+          cxx*)
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+	  *)
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+	esac
-+	;;
-+
-+      netbsd*)
-+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-+	  wlarc=
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-+	  _LT_TAGVAR(hardcode_direct, $1)=yes
-+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+	fi
-+	# Workaround some broken pre-1.5 toolchains
-+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-+	;;
-+
-+      *nto* | *qnx*)
-+        _LT_TAGVAR(ld_shlibs, $1)=yes
-+	;;
-+
-+      openbsd2*)
-+        # C++ shared libraries are fairly broken
-+	_LT_TAGVAR(ld_shlibs, $1)=no
-+	;;
-+
-+      openbsd*)
-+	if test -f /usr/libexec/ld.so; then
-+	  _LT_TAGVAR(hardcode_direct, $1)=yes
-+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-+	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-+	  fi
-+	  output_verbose_link_cmd=func_echo_all
-+	else
-+	  _LT_TAGVAR(ld_shlibs, $1)=no
-+	fi
-+	;;
-+
-+      osf3* | osf4* | osf5*)
-+        case $cc_basename in
-+          KCC*)
-+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-+
-+	    # KCC will only create a shared library if the output file
-+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-+	    # to its proper name (with version) after linking.
-+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-+
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+
-+	    # Archives containing C++ object files must be created using
-+	    # the KAI C++ compiler.
-+	    case $host in
-+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
-+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
-+	    esac
-+	    ;;
-+          RCC*)
-+	    # Rational C++ 2.4.1
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+          cxx*)
-+	    case $host in
-+	      osf3*)
-+	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+		;;
-+	      *)
-+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-+	          echo "-hidden">> $lib.exp~
-+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-+	          $RM $lib.exp'
-+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-+		;;
-+	    esac
-+
-+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+
-+	    # Commands to make compiler produce verbose output that lists
-+	    # what "hidden" libraries, object files and flags are used when
-+	    # linking a shared library.
-+	    #
-+	    # There doesn't appear to be a way to prevent this compiler from
-+	    # explicitly linking system object files so we need to strip them
-+	    # from the output so that they don't get included in the library
-+	    # dependencies.
-+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-+	    ;;
-+	  *)
-+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-+	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-+	      case $host in
-+	        osf3*)
-+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+		  ;;
-+	        *)
-+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+		  ;;
-+	      esac
-+
-+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-+
-+	      # Commands to make compiler produce verbose output that lists
-+	      # what "hidden" libraries, object files and flags are used when
-+	      # linking a shared library.
-+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-+
-+	    else
-+	      # FIXME: insert proper C++ library support
-+	      _LT_TAGVAR(ld_shlibs, $1)=no
-+	    fi
-+	    ;;
-+        esac
-+        ;;
-+
-+      psos*)
-+        # FIXME: insert proper C++ library support
-+        _LT_TAGVAR(ld_shlibs, $1)=no
-+        ;;
-+
-+      sunos4*)
-+        case $cc_basename in
-+          CC*)
-+	    # Sun C++ 4.x
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+          lcc*)
-+	    # Lucid
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+          *)
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+        esac
-+        ;;
-+
-+      solaris*)
-+        case $cc_basename in
-+          CC* | sunCC*)
-+	    # Sun C++ 4.2, 5.x and Centerline C++
-+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
-+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-+	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-+
-+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+	    case $host_os in
-+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-+	      *)
-+		# The compiler driver will combine and reorder linker options,
-+		# but understands `-z linker_flag'.
-+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-+	        ;;
-+	    esac
-+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-+
-+	    output_verbose_link_cmd='func_echo_all'
-+
-+	    # Archives containing C++ object files must be created using
-+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-+	    # necessary to make sure instantiated templates are included
-+	    # in the archive.
-+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-+	    ;;
-+          gcx*)
-+	    # Green Hills C++ Compiler
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-+
-+	    # The C++ compiler must be used to create the archive.
-+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-+	    ;;
-+          *)
-+	    # GNU C++ compiler with Solaris linker
-+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-+	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-+		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-+
-+	        # Commands to make compiler produce verbose output that lists
-+	        # what "hidden" libraries, object files and flags are used when
-+	        # linking a shared library.
-+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-+	      else
-+	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-+	        # platform.
-+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-+		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-+
-+	        # Commands to make compiler produce verbose output that lists
-+	        # what "hidden" libraries, object files and flags are used when
-+	        # linking a shared library.
-+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-+	      fi
-+
-+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-+	      case $host_os in
-+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-+		*)
-+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-+		  ;;
-+	      esac
-+	    fi
-+	    ;;
-+        esac
-+        ;;
-+
-+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+      runpath_var='LD_RUN_PATH'
-+
-+      case $cc_basename in
-+        CC*)
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+	*)
-+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	  ;;
-+      esac
-+      ;;
-+
-+      sysv5* | sco3.2v5* | sco5v6*)
-+	# Note: We can NOT use -z defs as we might desire, because we do not
-+	# link with -lc, and that would cause any symbols used from libc to
-+	# always be unresolved, which means just about no library would
-+	# ever link correctly.  If we're not using GNU ld we use -z text
-+	# though, which does catch some bad symbols but isn't as heavy-handed
-+	# as -z defs.
-+	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-+	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-+	_LT_TAGVAR(link_all_deplibs, $1)=yes
-+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-+	runpath_var='LD_RUN_PATH'
-+
-+	case $cc_basename in
-+          CC*)
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-+	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
-+	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-+	      '"$_LT_TAGVAR(reload_cmds, $1)"
-+	    ;;
-+	  *)
-+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	    ;;
-+	esac
-+      ;;
-+
-+      tandem*)
-+        case $cc_basename in
-+          NCC*)
-+	    # NonStop-UX NCC 3.20
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+          *)
-+	    # FIXME: insert proper C++ library support
-+	    _LT_TAGVAR(ld_shlibs, $1)=no
-+	    ;;
-+        esac
-+        ;;
-+
-+      vxworks*)
-+        # FIXME: insert proper C++ library support
-+        _LT_TAGVAR(ld_shlibs, $1)=no
-+        ;;
-+
-+      *)
-+        # FIXME: insert proper C++ library support
-+        _LT_TAGVAR(ld_shlibs, $1)=no
-+        ;;
-+    esac
-+
-+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-+
-+    _LT_TAGVAR(GCC, $1)="$GXX"
-+    _LT_TAGVAR(LD, $1)="$LD"
-+
-+    ## CAVEAT EMPTOR:
-+    ## There is no encapsulation within the following macros, do not change
-+    ## the running order or otherwise move them around unless you know exactly
-+    ## what you are doing...
-+    _LT_SYS_HIDDEN_LIBDEPS($1)
-+    _LT_COMPILER_PIC($1)
-+    _LT_COMPILER_C_O($1)
-+    _LT_COMPILER_FILE_LOCKS($1)
-+    _LT_LINKER_SHLIBS($1)
-+    _LT_SYS_DYNAMIC_LINKER($1)
-+    _LT_LINKER_HARDCODE_LIBPATH($1)
-+
-+    _LT_CONFIG($1)
-+  fi # test -n "$compiler"
-+
-+  CC=$lt_save_CC
-+  CFLAGS=$lt_save_CFLAGS
-+  LDCXX=$LD
-+  LD=$lt_save_LD
-+  GCC=$lt_save_GCC
-+  with_gnu_ld=$lt_save_with_gnu_ld
-+  lt_cv_path_LDCXX=$lt_cv_path_LD
-+  lt_cv_path_LD=$lt_save_path_LD
-+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-+fi # test "$_lt_caught_CXX_error" != yes
-+
-+AC_LANG_POP
-+])# _LT_LANG_CXX_CONFIG
-+
-+
-+# _LT_FUNC_STRIPNAME_CNF
-+# ----------------------
-+# func_stripname_cnf prefix suffix name
-+# strip PREFIX and SUFFIX off of NAME.
-+# PREFIX and SUFFIX must not contain globbing or regex special
-+# characters, hashes, percent signs, but SUFFIX may contain a leading
-+# dot (in which case that matches only a dot).
-+#
-+# This function is identical to the (non-XSI) version of func_stripname,
-+# except this one can be used by m4 code that may be executed by configure,
-+# rather than the libtool script.
-+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-+AC_REQUIRE([_LT_DECL_SED])
-+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-+func_stripname_cnf ()
-+{
-+  case ${2} in
-+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-+  esac
-+} # func_stripname_cnf
-+])# _LT_FUNC_STRIPNAME_CNF
-+
-+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-+# ---------------------------------
-+# Figure out "hidden" library dependencies from verbose
-+# compiler output when linking a shared library.
-+# Parse the compiler output and extract the necessary
-+# objects, libraries and library flags.
-+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-+# Dependencies to place before and after the object being linked:
-+_LT_TAGVAR(predep_objects, $1)=
-+_LT_TAGVAR(postdep_objects, $1)=
-+_LT_TAGVAR(predeps, $1)=
-+_LT_TAGVAR(postdeps, $1)=
-+_LT_TAGVAR(compiler_lib_search_path, $1)=
-+
-+dnl we can't use the lt_simple_compile_test_code here,
-+dnl because it contains code intended for an executable,
-+dnl not a library.  It's possible we should let each
-+dnl tag define a new lt_????_link_test_code variable,
-+dnl but it's only used here...
-+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-+int a;
-+void foo (void) { a = 0; }
-+_LT_EOF
-+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-+class Foo
-+{
-+public:
-+  Foo (void) { a = 0; }
-+private:
-+  int a;
-+};
-+_LT_EOF
-+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
-+      subroutine foo
-+      implicit none
-+      integer*4 a
-+      a=0
-+      return
-+      end
-+_LT_EOF
-+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
-+      subroutine foo
-+      implicit none
-+      integer a
-+      a=0
-+      return
-+      end
-+_LT_EOF
-+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-+public class foo {
-+  private int a;
-+  public void bar (void) {
-+    a = 0;
-+  }
-+};
-+_LT_EOF
-+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-+package foo
-+func foo() {
-+}
-+_LT_EOF
-+])
-+
-+_lt_libdeps_save_CFLAGS=$CFLAGS
-+case "$CC $CFLAGS " in #(
-+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-+esac
-+
-+dnl Parse the compiler output and extract the necessary
-+dnl objects, libraries and library flags.
-+if AC_TRY_EVAL(ac_compile); then
-+  # Parse the compiler output and extract the necessary
-+  # objects, libraries and library flags.
-+
-+  # Sentinel used to keep track of whether or not we are before
-+  # the conftest object file.
-+  pre_test_object_deps_done=no
-+
-+  for p in `eval "$output_verbose_link_cmd"`; do
-+    case ${prev}${p} in
-+
-+    -L* | -R* | -l*)
-+       # Some compilers place space between "-{L,R}" and the path.
-+       # Remove the space.
-+       if test $p = "-L" ||
-+          test $p = "-R"; then
-+	 prev=$p
-+	 continue
-+       fi
-+
-+       # Expand the sysroot to ease extracting the directories later.
-+       if test -z "$prev"; then
-+         case $p in
-+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-+         esac
-+       fi
-+       case $p in
-+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-+       esac
-+       if test "$pre_test_object_deps_done" = no; then
-+	 case ${prev} in
-+	 -L | -R)
-+	   # Internal compiler library paths should come after those
-+	   # provided the user.  The postdeps already come after the
-+	   # user supplied libs so there is no need to process them.
-+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-+	   else
-+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-+	   fi
-+	   ;;
-+	 # The "-l" case would never come before the object being
-+	 # linked, so don't bother handling this case.
-+	 esac
-+       else
-+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-+	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
-+	 else
-+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
-+	 fi
-+       fi
-+       prev=
-+       ;;
-+
-+    *.lto.$objext) ;; # Ignore GCC LTO objects
-+    *.$objext)
-+       # This assumes that the test object file only shows up
-+       # once in the compiler output.
-+       if test "$p" = "conftest.$objext"; then
-+	 pre_test_object_deps_done=yes
-+	 continue
-+       fi
-+
-+       if test "$pre_test_object_deps_done" = no; then
-+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-+	   _LT_TAGVAR(predep_objects, $1)="$p"
-+	 else
-+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
-+	 fi
-+       else
-+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-+	   _LT_TAGVAR(postdep_objects, $1)="$p"
-+	 else
-+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
-+	 fi
-+       fi
-+       ;;
-+
-+    *) ;; # Ignore the rest.
-+
-+    esac
-+  done
-+
-+  # Clean up.
-+  rm -f a.out a.exe
-+else
-+  echo "libtool.m4: error: problem compiling $1 test program"
-+fi
-+
-+$RM -f confest.$objext
-+CFLAGS=$_lt_libdeps_save_CFLAGS
-+
-+# PORTME: override above test on systems where it is broken
-+m4_if([$1], [CXX],
-+[case $host_os in
-+interix[[3-9]]*)
-+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-+  # hack all around it, let's just trust "g++" to DTRT.
-+  _LT_TAGVAR(predep_objects,$1)=
-+  _LT_TAGVAR(postdep_objects,$1)=
-+  _LT_TAGVAR(postdeps,$1)=
-+  ;;
-+
-+linux*)
-+  case `$CC -V 2>&1 | sed 5q` in
-+  *Sun\ C*)
-+    # Sun C++ 5.9
-+
-+    # The more standards-conforming stlport4 library is
-+    # incompatible with the Cstd library. Avoid specifying
-+    # it if it's in CXXFLAGS. Ignore libCrun as
-+    # -library=stlport4 depends on it.
-+    case " $CXX $CXXFLAGS " in
-+    *" -library=stlport4 "*)
-+      solaris_use_stlport4=yes
-+      ;;
-+    esac
-+
-+    if test "$solaris_use_stlport4" != yes; then
-+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-+    fi
-+    ;;
-+  esac
-+  ;;
-+
-+solaris*)
-+  case $cc_basename in
-+  CC* | sunCC*)
-+    # The more standards-conforming stlport4 library is
-+    # incompatible with the Cstd library. Avoid specifying
-+    # it if it's in CXXFLAGS. Ignore libCrun as
-+    # -library=stlport4 depends on it.
-+    case " $CXX $CXXFLAGS " in
-+    *" -library=stlport4 "*)
-+      solaris_use_stlport4=yes
-+      ;;
-+    esac
-+
-+    # Adding this requires a known-good setup of shared libraries for
-+    # Sun compiler versions before 5.6, else PIC objects from an old
-+    # archive will be linked into the output, leading to subtle bugs.
-+    if test "$solaris_use_stlport4" != yes; then
-+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-+    fi
-+    ;;
-+  esac
-+  ;;
-+esac
-+])
-+
-+case " $_LT_TAGVAR(postdeps, $1) " in
-+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-+esac
-+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
-+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-+fi
-+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
-+    [The directories searched by this compiler when creating a shared library])
-+_LT_TAGDECL([], [predep_objects], [1],
-+    [Dependencies to place before and after the objects being linked to
-+    create a shared library])
-+_LT_TAGDECL([], [postdep_objects], [1])
-+_LT_TAGDECL([], [predeps], [1])
-+_LT_TAGDECL([], [postdeps], [1])
-+_LT_TAGDECL([], [compiler_lib_search_path], [1],
-+    [The library search path used internally by the compiler when linking
-+    a shared library])
-+])# _LT_SYS_HIDDEN_LIBDEPS
-+
-+
-+# _LT_LANG_F77_CONFIG([TAG])
-+# --------------------------
-+# Ensure that the configuration variables for a Fortran 77 compiler are
-+# suitably defined.  These variables are subsequently used by _LT_CONFIG
-+# to write the compiler configuration to `libtool'.
-+m4_defun([_LT_LANG_F77_CONFIG],
-+[AC_LANG_PUSH(Fortran 77)
-+if test -z "$F77" || test "X$F77" = "Xno"; then
-+  _lt_disable_F77=yes
-+fi
-+
-+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+_LT_TAGVAR(allow_undefined_flag, $1)=
-+_LT_TAGVAR(always_export_symbols, $1)=no
-+_LT_TAGVAR(archive_expsym_cmds, $1)=
-+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-+_LT_TAGVAR(hardcode_direct, $1)=no
-+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-+_LT_TAGVAR(hardcode_libdir_separator, $1)=
-+_LT_TAGVAR(hardcode_minus_L, $1)=no
-+_LT_TAGVAR(hardcode_automatic, $1)=no
-+_LT_TAGVAR(inherit_rpath, $1)=no
-+_LT_TAGVAR(module_cmds, $1)=
-+_LT_TAGVAR(module_expsym_cmds, $1)=
-+_LT_TAGVAR(link_all_deplibs, $1)=unknown
-+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-+_LT_TAGVAR(reload_flag, $1)=$reload_flag
-+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-+_LT_TAGVAR(no_undefined_flag, $1)=
-+_LT_TAGVAR(whole_archive_flag_spec, $1)=
-+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-+
-+# Source file extension for f77 test sources.
-+ac_ext=f
-+
-+# Object file extension for compiled f77 test sources.
-+objext=o
-+_LT_TAGVAR(objext, $1)=$objext
-+
-+# No sense in running all these tests if we already determined that
-+# the F77 compiler isn't working.  Some variables (like enable_shared)
-+# are currently assumed to apply to all compilers on this platform,
-+# and will be corrupted by setting them based on a non-working compiler.
-+if test "$_lt_disable_F77" != yes; then
-+  # Code to be used in simple compile tests
-+  lt_simple_compile_test_code="\
-+      subroutine t
-+      return
-+      end
-+"
-+
-+  # Code to be used in simple link tests
-+  lt_simple_link_test_code="\
-+      program t
-+      end
-+"
-+
-+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-+  _LT_TAG_COMPILER
-+
-+  # save warnings/boilerplate of simple test code
-+  _LT_COMPILER_BOILERPLATE
-+  _LT_LINKER_BOILERPLATE
-+
-+  # Allow CC to be a program name with arguments.
-+  lt_save_CC="$CC"
-+  lt_save_GCC=$GCC
-+  lt_save_CFLAGS=$CFLAGS
-+  CC=${F77-"f77"}
-+  CFLAGS=$FFLAGS
-+  compiler=$CC
-+  _LT_TAGVAR(compiler, $1)=$CC
-+  _LT_CC_BASENAME([$compiler])
-+  GCC=$G77
-+  if test -n "$compiler"; then
-+    AC_MSG_CHECKING([if libtool supports shared libraries])
-+    AC_MSG_RESULT([$can_build_shared])
-+
-+    AC_MSG_CHECKING([whether to build shared libraries])
-+    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
-+      aix3*)
-+        test "$enable_shared" = yes && enable_static=no
-+        if test -n "$RANLIB"; then
-+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-+          postinstall_cmds='$RANLIB $lib'
-+        fi
-+        ;;
-+      aix[[4-9]]*)
-+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-+	  test "$enable_shared" = yes && enable_static=no
-+	fi
-+        ;;
-+    esac
-+    AC_MSG_RESULT([$enable_shared])
-+
-+    AC_MSG_CHECKING([whether to build static libraries])
-+    # Make sure either enable_shared or enable_static is yes.
-+    test "$enable_shared" = yes || enable_static=yes
-+    AC_MSG_RESULT([$enable_static])
-+
-+    _LT_TAGVAR(GCC, $1)="$G77"
-+    _LT_TAGVAR(LD, $1)="$LD"
-+
-+    ## CAVEAT EMPTOR:
-+    ## There is no encapsulation within the following macros, do not change
-+    ## the running order or otherwise move them around unless you know exactly
-+    ## what you are doing...
-+    _LT_COMPILER_PIC($1)
-+    _LT_COMPILER_C_O($1)
-+    _LT_COMPILER_FILE_LOCKS($1)
-+    _LT_LINKER_SHLIBS($1)
-+    _LT_SYS_DYNAMIC_LINKER($1)
-+    _LT_LINKER_HARDCODE_LIBPATH($1)
-+
-+    _LT_CONFIG($1)
-+  fi # test -n "$compiler"
-+
-+  GCC=$lt_save_GCC
-+  CC="$lt_save_CC"
-+  CFLAGS="$lt_save_CFLAGS"
-+fi # test "$_lt_disable_F77" != yes
-+
-+AC_LANG_POP
-+])# _LT_LANG_F77_CONFIG
-+
-+
-+# _LT_LANG_FC_CONFIG([TAG])
-+# -------------------------
-+# Ensure that the configuration variables for a Fortran compiler are
-+# suitably defined.  These variables are subsequently used by _LT_CONFIG
-+# to write the compiler configuration to `libtool'.
-+m4_defun([_LT_LANG_FC_CONFIG],
-+[AC_LANG_PUSH(Fortran)
-+
-+if test -z "$FC" || test "X$FC" = "Xno"; then
-+  _lt_disable_FC=yes
-+fi
-+
-+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+_LT_TAGVAR(allow_undefined_flag, $1)=
-+_LT_TAGVAR(always_export_symbols, $1)=no
-+_LT_TAGVAR(archive_expsym_cmds, $1)=
-+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-+_LT_TAGVAR(hardcode_direct, $1)=no
-+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-+_LT_TAGVAR(hardcode_libdir_separator, $1)=
-+_LT_TAGVAR(hardcode_minus_L, $1)=no
-+_LT_TAGVAR(hardcode_automatic, $1)=no
-+_LT_TAGVAR(inherit_rpath, $1)=no
-+_LT_TAGVAR(module_cmds, $1)=
-+_LT_TAGVAR(module_expsym_cmds, $1)=
-+_LT_TAGVAR(link_all_deplibs, $1)=unknown
-+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-+_LT_TAGVAR(reload_flag, $1)=$reload_flag
-+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-+_LT_TAGVAR(no_undefined_flag, $1)=
-+_LT_TAGVAR(whole_archive_flag_spec, $1)=
-+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-+
-+# Source file extension for fc test sources.
-+ac_ext=${ac_fc_srcext-f}
-+
-+# Object file extension for compiled fc test sources.
-+objext=o
-+_LT_TAGVAR(objext, $1)=$objext
-+
-+# No sense in running all these tests if we already determined that
-+# the FC compiler isn't working.  Some variables (like enable_shared)
-+# are currently assumed to apply to all compilers on this platform,
-+# and will be corrupted by setting them based on a non-working compiler.
-+if test "$_lt_disable_FC" != yes; then
-+  # Code to be used in simple compile tests
-+  lt_simple_compile_test_code="\
-+      subroutine t
-+      return
-+      end
-+"
-+
-+  # Code to be used in simple link tests
-+  lt_simple_link_test_code="\
-+      program t
-+      end
-+"
-+
-+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-+  _LT_TAG_COMPILER
-+
-+  # save warnings/boilerplate of simple test code
-+  _LT_COMPILER_BOILERPLATE
-+  _LT_LINKER_BOILERPLATE
-+
-+  # Allow CC to be a program name with arguments.
-+  lt_save_CC="$CC"
-+  lt_save_GCC=$GCC
-+  lt_save_CFLAGS=$CFLAGS
-+  CC=${FC-"f95"}
-+  CFLAGS=$FCFLAGS
-+  compiler=$CC
-+  GCC=$ac_cv_fc_compiler_gnu
-+
-+  _LT_TAGVAR(compiler, $1)=$CC
-+  _LT_CC_BASENAME([$compiler])
-+
-+  if test -n "$compiler"; then
-+    AC_MSG_CHECKING([if libtool supports shared libraries])
-+    AC_MSG_RESULT([$can_build_shared])
-+
-+    AC_MSG_CHECKING([whether to build shared libraries])
-+    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
-+      aix3*)
-+        test "$enable_shared" = yes && enable_static=no
-+        if test -n "$RANLIB"; then
-+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-+          postinstall_cmds='$RANLIB $lib'
-+        fi
-+        ;;
-+      aix[[4-9]]*)
-+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-+	  test "$enable_shared" = yes && enable_static=no
-+	fi
-+        ;;
-+    esac
-+    AC_MSG_RESULT([$enable_shared])
-+
-+    AC_MSG_CHECKING([whether to build static libraries])
-+    # Make sure either enable_shared or enable_static is yes.
-+    test "$enable_shared" = yes || enable_static=yes
-+    AC_MSG_RESULT([$enable_static])
-+
-+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-+    _LT_TAGVAR(LD, $1)="$LD"
-+
-+    ## CAVEAT EMPTOR:
-+    ## There is no encapsulation within the following macros, do not change
-+    ## the running order or otherwise move them around unless you know exactly
-+    ## what you are doing...
-+    _LT_SYS_HIDDEN_LIBDEPS($1)
-+    _LT_COMPILER_PIC($1)
-+    _LT_COMPILER_C_O($1)
-+    _LT_COMPILER_FILE_LOCKS($1)
-+    _LT_LINKER_SHLIBS($1)
-+    _LT_SYS_DYNAMIC_LINKER($1)
-+    _LT_LINKER_HARDCODE_LIBPATH($1)
-+
-+    _LT_CONFIG($1)
-+  fi # test -n "$compiler"
-+
-+  GCC=$lt_save_GCC
-+  CC=$lt_save_CC
-+  CFLAGS=$lt_save_CFLAGS
-+fi # test "$_lt_disable_FC" != yes
-+
-+AC_LANG_POP
-+])# _LT_LANG_FC_CONFIG
-+
-+
-+# _LT_LANG_GCJ_CONFIG([TAG])
-+# --------------------------
-+# Ensure that the configuration variables for the GNU Java Compiler compiler
-+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-+# to write the compiler configuration to `libtool'.
-+m4_defun([_LT_LANG_GCJ_CONFIG],
-+[AC_REQUIRE([LT_PROG_GCJ])dnl
-+AC_LANG_SAVE
-+
-+# Source file extension for Java test sources.
-+ac_ext=java
-+
-+# Object file extension for compiled Java test sources.
-+objext=o
-+_LT_TAGVAR(objext, $1)=$objext
-+
-+# Code to be used in simple compile tests
-+lt_simple_compile_test_code="class foo {}"
-+
-+# Code to be used in simple link tests
-+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-+
-+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-+_LT_TAG_COMPILER
-+
-+# save warnings/boilerplate of simple test code
-+_LT_COMPILER_BOILERPLATE
-+_LT_LINKER_BOILERPLATE
-+
-+# Allow CC to be a program name with arguments.
-+lt_save_CC=$CC
-+lt_save_CFLAGS=$CFLAGS
-+lt_save_GCC=$GCC
-+GCC=yes
-+CC=${GCJ-"gcj"}
-+CFLAGS=$GCJFLAGS
-+compiler=$CC
-+_LT_TAGVAR(compiler, $1)=$CC
-+_LT_TAGVAR(LD, $1)="$LD"
-+_LT_CC_BASENAME([$compiler])
-+
-+# GCJ did not exist at the time GCC didn't implicitly link libc in.
-+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+
-+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-+_LT_TAGVAR(reload_flag, $1)=$reload_flag
-+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-+
-+## CAVEAT EMPTOR:
-+## There is no encapsulation within the following macros, do not change
-+## the running order or otherwise move them around unless you know exactly
-+## what you are doing...
-+if test -n "$compiler"; then
-+  _LT_COMPILER_NO_RTTI($1)
-+  _LT_COMPILER_PIC($1)
-+  _LT_COMPILER_C_O($1)
-+  _LT_COMPILER_FILE_LOCKS($1)
-+  _LT_LINKER_SHLIBS($1)
-+  _LT_LINKER_HARDCODE_LIBPATH($1)
-+
-+  _LT_CONFIG($1)
-+fi
-+
-+AC_LANG_RESTORE
-+
-+GCC=$lt_save_GCC
-+CC=$lt_save_CC
-+CFLAGS=$lt_save_CFLAGS
-+])# _LT_LANG_GCJ_CONFIG
-+
-+
-+# _LT_LANG_GO_CONFIG([TAG])
-+# --------------------------
-+# Ensure that the configuration variables for the GNU Go compiler
-+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-+# to write the compiler configuration to `libtool'.
-+m4_defun([_LT_LANG_GO_CONFIG],
-+[AC_REQUIRE([LT_PROG_GO])dnl
-+AC_LANG_SAVE
-+
-+# Source file extension for Go test sources.
-+ac_ext=go
-+
-+# Object file extension for compiled Go test sources.
-+objext=o
-+_LT_TAGVAR(objext, $1)=$objext
-+
-+# Code to be used in simple compile tests
-+lt_simple_compile_test_code="package main; func main() { }"
-+
-+# Code to be used in simple link tests
-+lt_simple_link_test_code='package main; func main() { }'
-+
-+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-+_LT_TAG_COMPILER
-+
-+# save warnings/boilerplate of simple test code
-+_LT_COMPILER_BOILERPLATE
-+_LT_LINKER_BOILERPLATE
-+
-+# Allow CC to be a program name with arguments.
-+lt_save_CC=$CC
-+lt_save_CFLAGS=$CFLAGS
-+lt_save_GCC=$GCC
-+GCC=yes
-+CC=${GOC-"gccgo"}
-+CFLAGS=$GOFLAGS
-+compiler=$CC
-+_LT_TAGVAR(compiler, $1)=$CC
-+_LT_TAGVAR(LD, $1)="$LD"
-+_LT_CC_BASENAME([$compiler])
-+
-+# Go did not exist at the time GCC didn't implicitly link libc in.
-+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-+
-+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-+_LT_TAGVAR(reload_flag, $1)=$reload_flag
-+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-+
-+## CAVEAT EMPTOR:
-+## There is no encapsulation within the following macros, do not change
-+## the running order or otherwise move them around unless you know exactly
-+## what you are doing...
-+if test -n "$compiler"; then
-+  _LT_COMPILER_NO_RTTI($1)
-+  _LT_COMPILER_PIC($1)
-+  _LT_COMPILER_C_O($1)
-+  _LT_COMPILER_FILE_LOCKS($1)
-+  _LT_LINKER_SHLIBS($1)
-+  _LT_LINKER_HARDCODE_LIBPATH($1)
-+
-+  _LT_CONFIG($1)
-+fi
-+
-+AC_LANG_RESTORE
-+
-+GCC=$lt_save_GCC
-+CC=$lt_save_CC
-+CFLAGS=$lt_save_CFLAGS
-+])# _LT_LANG_GO_CONFIG
-+
-+
-+# _LT_LANG_RC_CONFIG([TAG])
-+# -------------------------
-+# Ensure that the configuration variables for the Windows resource compiler
-+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-+# to write the compiler configuration to `libtool'.
-+m4_defun([_LT_LANG_RC_CONFIG],
-+[AC_REQUIRE([LT_PROG_RC])dnl
-+AC_LANG_SAVE
-+
-+# Source file extension for RC test sources.
-+ac_ext=rc
-+
-+# Object file extension for compiled RC test sources.
-+objext=o
-+_LT_TAGVAR(objext, $1)=$objext
-+
-+# Code to be used in simple compile tests
-+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-+
-+# Code to be used in simple link tests
-+lt_simple_link_test_code="$lt_simple_compile_test_code"
-+
-+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-+_LT_TAG_COMPILER
-+
-+# save warnings/boilerplate of simple test code
-+_LT_COMPILER_BOILERPLATE
-+_LT_LINKER_BOILERPLATE
-+
-+# Allow CC to be a program name with arguments.
-+lt_save_CC="$CC"
-+lt_save_CFLAGS=$CFLAGS
-+lt_save_GCC=$GCC
-+GCC=
-+CC=${RC-"windres"}
-+CFLAGS=
-+compiler=$CC
-+_LT_TAGVAR(compiler, $1)=$CC
-+_LT_CC_BASENAME([$compiler])
-+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-+
-+if test -n "$compiler"; then
-+  :
-+  _LT_CONFIG($1)
-+fi
-+
-+GCC=$lt_save_GCC
-+AC_LANG_RESTORE
-+CC=$lt_save_CC
-+CFLAGS=$lt_save_CFLAGS
-+])# _LT_LANG_RC_CONFIG
-+
-+
-+# LT_PROG_GCJ
-+# -----------
-+AC_DEFUN([LT_PROG_GCJ],
-+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
-+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
-+    [AC_CHECK_TOOL(GCJ, gcj,)
-+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-+      AC_SUBST(GCJFLAGS)])])[]dnl
-+])
-+
-+# Old name:
-+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-+
-+
-+# LT_PROG_GO
-+# ----------
-+AC_DEFUN([LT_PROG_GO],
-+[AC_CHECK_TOOL(GOC, gccgo,)
-+])
-+
-+
-+# LT_PROG_RC
-+# ----------
-+AC_DEFUN([LT_PROG_RC],
-+[AC_CHECK_TOOL(RC, windres,)
-+])
-+
-+# Old name:
-+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([LT_AC_PROG_RC], [])
-+
-+
-+# _LT_DECL_EGREP
-+# --------------
-+# If we don't have a new enough Autoconf to choose the best grep
-+# available, choose the one first in the user's PATH.
-+m4_defun([_LT_DECL_EGREP],
-+[AC_REQUIRE([AC_PROG_EGREP])dnl
-+AC_REQUIRE([AC_PROG_FGREP])dnl
-+test -z "$GREP" && GREP=grep
-+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-+_LT_DECL([], [EGREP], [1], [An ERE matcher])
-+_LT_DECL([], [FGREP], [1], [A literal string matcher])
-+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-+AC_SUBST([GREP])
-+])
-+
-+
-+# _LT_DECL_OBJDUMP
-+# --------------
-+# If we don't have a new enough Autoconf to choose the best objdump
-+# available, choose the one first in the user's PATH.
-+m4_defun([_LT_DECL_OBJDUMP],
-+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-+test -z "$OBJDUMP" && OBJDUMP=objdump
-+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-+AC_SUBST([OBJDUMP])
-+])
-+
-+# _LT_DECL_DLLTOOL
-+# ----------------
-+# Ensure DLLTOOL variable is set.
-+m4_defun([_LT_DECL_DLLTOOL],
-+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-+test -z "$DLLTOOL" && DLLTOOL=dlltool
-+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-+AC_SUBST([DLLTOOL])
-+])
-+
-+# _LT_DECL_SED
-+# ------------
-+# Check for a fully-functional sed program, that truncates
-+# as few characters as possible.  Prefer GNU sed if found.
-+m4_defun([_LT_DECL_SED],
-+[AC_PROG_SED
-+test -z "$SED" && SED=sed
-+Xsed="$SED -e 1s/^X//"
-+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
-+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-+])# _LT_DECL_SED
-+
-+m4_ifndef([AC_PROG_SED], [
-+############################################################
-+# NOTE: This macro has been submitted for inclusion into   #
-+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-+#  a released version of Autoconf we should remove this    #
-+#  macro and use it instead.                               #
-+############################################################
-+
-+m4_defun([AC_PROG_SED],
-+[AC_MSG_CHECKING([for a sed that does not truncate output])
-+AC_CACHE_VAL(lt_cv_path_SED,
-+[# Loop through the user's path and test for sed and gsed.
-+# Then use that list of sed's as ones to test for truncation.
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+  for lt_ac_prog in sed gsed; do
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-+      fi
-+    done
-+  done
-+done
-+IFS=$as_save_IFS
-+lt_ac_max=0
-+lt_ac_count=0
-+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-+# along with /bin/sed that truncates output.
-+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-+  test ! -f $lt_ac_sed && continue
-+  cat /dev/null > conftest.in
-+  lt_ac_count=0
-+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-+  # Check for GNU sed and select it if it is found.
-+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-+    lt_cv_path_SED=$lt_ac_sed
-+    break
-+  fi
-+  while true; do
-+    cat conftest.in conftest.in >conftest.tmp
-+    mv conftest.tmp conftest.in
-+    cp conftest.in conftest.nl
-+    echo >>conftest.nl
-+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-+    cmp -s conftest.out conftest.nl || break
-+    # 10000 chars as input seems more than enough
-+    test $lt_ac_count -gt 10 && break
-+    lt_ac_count=`expr $lt_ac_count + 1`
-+    if test $lt_ac_count -gt $lt_ac_max; then
-+      lt_ac_max=$lt_ac_count
-+      lt_cv_path_SED=$lt_ac_sed
-+    fi
-+  done
-+done
-+])
-+SED=$lt_cv_path_SED
-+AC_SUBST([SED])
-+AC_MSG_RESULT([$SED])
-+])#AC_PROG_SED
-+])#m4_ifndef
-+
-+# Old name:
-+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([LT_AC_PROG_SED], [])
-+
-+
-+# _LT_CHECK_SHELL_FEATURES
-+# ------------------------
-+# Find out whether the shell is Bourne or XSI compatible,
-+# or has some other useful features.
-+m4_defun([_LT_CHECK_SHELL_FEATURES],
-+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-+# Try some XSI features
-+xsi_shell=no
-+( _lt_dummy="a/b/c"
-+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-+      = c,a/b,b/c, \
-+    && eval 'test $(( 1 + 1 )) -eq 2 \
-+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-+  && xsi_shell=yes
-+AC_MSG_RESULT([$xsi_shell])
-+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-+
-+AC_MSG_CHECKING([whether the shell understands "+="])
-+lt_shell_append=no
-+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-+    >/dev/null 2>&1 \
-+  && lt_shell_append=yes
-+AC_MSG_RESULT([$lt_shell_append])
-+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-+
-+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-+  lt_unset=unset
-+else
-+  lt_unset=false
-+fi
-+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-+
-+# test EBCDIC or ASCII
-+case `echo X|tr X '\101'` in
-+ A) # ASCII based system
-+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-+  lt_SP2NL='tr \040 \012'
-+  lt_NL2SP='tr \015\012 \040\040'
-+  ;;
-+ *) # EBCDIC based system
-+  lt_SP2NL='tr \100 \n'
-+  lt_NL2SP='tr \r\n \100\100'
-+  ;;
-+esac
-+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-+])# _LT_CHECK_SHELL_FEATURES
-+
-+
-+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-+# ------------------------------------------------------
-+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-+m4_defun([_LT_PROG_FUNCTION_REPLACE],
-+[dnl {
-+sed -e '/^$1 ()$/,/^} # $1 /c\
-+$1 ()\
-+{\
-+m4_bpatsubsts([$2], [$], [\\], [^\([	 ]\)], [\\\1])
-+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+])
-+
-+
-+# _LT_PROG_REPLACE_SHELLFNS
-+# -------------------------
-+# Replace existing portable implementations of several shell functions with
-+# equivalent extended shell implementations where those features are available..
-+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-+[if test x"$xsi_shell" = xyes; then
-+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-+    case ${1} in
-+      */*) func_dirname_result="${1%/*}${2}" ;;
-+      *  ) func_dirname_result="${3}" ;;
-+    esac])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-+    func_basename_result="${1##*/}"])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-+    case ${1} in
-+      */*) func_dirname_result="${1%/*}${2}" ;;
-+      *  ) func_dirname_result="${3}" ;;
-+    esac
-+    func_basename_result="${1##*/}"])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-+    # positional parameters, so assign one to ordinary parameter first.
-+    func_stripname_result=${3}
-+    func_stripname_result=${func_stripname_result#"${1}"}
-+    func_stripname_result=${func_stripname_result%"${2}"}])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-+    func_split_long_opt_name=${1%%=*}
-+    func_split_long_opt_arg=${1#*=}])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-+    func_split_short_opt_arg=${1#??}
-+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-+    case ${1} in
-+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-+      *)    func_lo2o_result=${1} ;;
-+    esac])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
-+fi
-+
-+if test x"$lt_shell_append" = xyes; then
-+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
-+
-+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-+    func_quote_for_eval "${2}"
-+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-+
-+  # Save a `func_append' function call where possible by direct use of '+='
-+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-+    && mv -f "$cfgfile.tmp" "$cfgfile" \
-+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+  test 0 -eq $? || _lt_function_replace_fail=:
-+else
-+  # Save a `func_append' function call even when '+=' is not available
-+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-+    && mv -f "$cfgfile.tmp" "$cfgfile" \
-+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+  test 0 -eq $? || _lt_function_replace_fail=:
-+fi
-+
-+if test x"$_lt_function_replace_fail" = x":"; then
-+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-+fi
-+])
-+
-+# _LT_PATH_CONVERSION_FUNCTIONS
-+# -----------------------------
-+# Determine which file name conversion functions should be used by
-+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
-+# for certain cross-compile configurations and native mingw.
-+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-+AC_MSG_CHECKING([how to convert $build file names to $host format])
-+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-+[case $host in
-+  *-*-mingw* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-+        ;;
-+      *-*-cygwin* )
-+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-+        ;;
-+      * ) # otherwise, assume *nix
-+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-+        ;;
-+    esac
-+    ;;
-+  *-*-cygwin* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-+        ;;
-+      *-*-cygwin* )
-+        lt_cv_to_host_file_cmd=func_convert_file_noop
-+        ;;
-+      * ) # otherwise, assume *nix
-+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-+        ;;
-+    esac
-+    ;;
-+  * ) # unhandled hosts (and "normal" native builds)
-+    lt_cv_to_host_file_cmd=func_convert_file_noop
-+    ;;
-+esac
-+])
-+to_host_file_cmd=$lt_cv_to_host_file_cmd
-+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
-+         [0], [convert $build file names to $host format])dnl
-+
-+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-+[#assume ordinary cross tools, or native build.
-+lt_cv_to_tool_file_cmd=func_convert_file_noop
-+case $host in
-+  *-*-mingw* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-+        ;;
-+    esac
-+    ;;
-+esac
-+])
-+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
-+         [0], [convert $build files to toolchain format])dnl
-+])# _LT_PATH_CONVERSION_FUNCTIONS
-diff --git a/libclamav/libmspack-0.4alpha/m4/ltoptions.m4 b/libclamav/libmspack-0.4alpha/m4/ltoptions.m4
-new file mode 100644
-index 000000000000..5d9acd8e23bc
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/m4/ltoptions.m4
-@@ -0,0 +1,384 @@
-+# Helper functions for option handling.                    -*- Autoconf -*-
-+#
-+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-+#   Inc.
-+#   Written by Gary V. Vaughan, 2004
-+#
-+# This file 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.
-+
-+# serial 7 ltoptions.m4
-+
-+# This is to help aclocal find these macros, as it can't see m4_define.
-+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-+
-+
-+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-+# ------------------------------------------
-+m4_define([_LT_MANGLE_OPTION],
-+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-+
-+
-+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-+# ---------------------------------------
-+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
-+# saved as a flag.
-+m4_define([_LT_SET_OPTION],
-+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
-+        _LT_MANGLE_DEFUN([$1], [$2]),
-+    [m4_warning([Unknown $1 option `$2'])])[]dnl
-+])
-+
-+
-+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-+# ------------------------------------------------------------
-+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-+m4_define([_LT_IF_OPTION],
-+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-+
-+
-+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-+# -------------------------------------------------------
-+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-+# are set.
-+m4_define([_LT_UNLESS_OPTIONS],
-+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
-+		      [m4_define([$0_found])])])[]dnl
-+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-+])[]dnl
-+])
-+
-+
-+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-+# ----------------------------------------
-+# OPTION-LIST is a space-separated list of Libtool options associated
-+# with MACRO-NAME.  If any OPTION has a matching handler declared with
-+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-+# the unknown option and exit.
-+m4_defun([_LT_SET_OPTIONS],
-+[# Set options
-+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-+    [_LT_SET_OPTION([$1], _LT_Option)])
-+
-+m4_if([$1],[LT_INIT],[
-+  dnl
-+  dnl Simply set some default values (i.e off) if boolean options were not
-+  dnl specified:
-+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
-+  ])
-+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
-+  ])
-+  dnl
-+  dnl If no reference was made to various pairs of opposing options, then
-+  dnl we run the default mode handler for the pair.  For example, if neither
-+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
-+  dnl archives by default:
-+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
-+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
-+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
-+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-+  		   [_LT_ENABLE_FAST_INSTALL])
-+  ])
-+])# _LT_SET_OPTIONS
-+
-+
-+## --------------------------------- ##
-+## Macros to handle LT_INIT options. ##
-+## --------------------------------- ##
-+
-+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-+# -----------------------------------------
-+m4_define([_LT_MANGLE_DEFUN],
-+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-+
-+
-+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-+# -----------------------------------------------
-+m4_define([LT_OPTION_DEFINE],
-+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-+])# LT_OPTION_DEFINE
-+
-+
-+# dlopen
-+# ------
-+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-+])
-+
-+AU_DEFUN([AC_LIBTOOL_DLOPEN],
-+[_LT_SET_OPTION([LT_INIT], [dlopen])
-+AC_DIAGNOSE([obsolete],
-+[$0: Remove this warning and the call to _LT_SET_OPTION when you
-+put the `dlopen' option into LT_INIT's first parameter.])
-+])
-+
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-+
-+
-+# win32-dll
-+# ---------
-+# Declare package support for building win32 dll's.
-+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-+[enable_win32_dll=yes
-+
-+case $host in
-+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
-+  AC_CHECK_TOOL(AS, as, false)
-+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-+  ;;
-+esac
-+
-+test -z "$AS" && AS=as
-+_LT_DECL([], [AS],      [1], [Assembler program])dnl
-+
-+test -z "$DLLTOOL" && DLLTOOL=dlltool
-+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-+
-+test -z "$OBJDUMP" && OBJDUMP=objdump
-+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-+])# win32-dll
-+
-+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+_LT_SET_OPTION([LT_INIT], [win32-dll])
-+AC_DIAGNOSE([obsolete],
-+[$0: Remove this warning and the call to _LT_SET_OPTION when you
-+put the `win32-dll' option into LT_INIT's first parameter.])
-+])
-+
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-+
-+
-+# _LT_ENABLE_SHARED([DEFAULT])
-+# ----------------------------
-+# implement the --enable-shared flag, and supports the `shared' and
-+# `disable-shared' LT_INIT options.
-+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-+m4_define([_LT_ENABLE_SHARED],
-+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-+AC_ARG_ENABLE([shared],
-+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
-+    [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.
-+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-+      for pkg in $enableval; do
-+	IFS="$lt_save_ifs"
-+	if test "X$pkg" = "X$p"; then
-+	  enable_shared=yes
-+	fi
-+      done
-+      IFS="$lt_save_ifs"
-+      ;;
-+    esac],
-+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-+
-+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
-+	[Whether or not to build shared libraries])
-+])# _LT_ENABLE_SHARED
-+
-+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-+
-+# Old names:
-+AC_DEFUN([AC_ENABLE_SHARED],
-+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-+])
-+
-+AC_DEFUN([AC_DISABLE_SHARED],
-+[_LT_SET_OPTION([LT_INIT], [disable-shared])
-+])
-+
-+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-+
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-+
-+
-+
-+# _LT_ENABLE_STATIC([DEFAULT])
-+# ----------------------------
-+# implement the --enable-static flag, and support the `static' and
-+# `disable-static' LT_INIT options.
-+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-+m4_define([_LT_ENABLE_STATIC],
-+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-+AC_ARG_ENABLE([static],
-+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
-+    [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.
-+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-+      for pkg in $enableval; do
-+	IFS="$lt_save_ifs"
-+	if test "X$pkg" = "X$p"; then
-+	  enable_static=yes
-+	fi
-+      done
-+      IFS="$lt_save_ifs"
-+      ;;
-+    esac],
-+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-+
-+    _LT_DECL([build_old_libs], [enable_static], [0],
-+	[Whether or not to build static libraries])
-+])# _LT_ENABLE_STATIC
-+
-+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-+
-+# Old names:
-+AC_DEFUN([AC_ENABLE_STATIC],
-+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-+])
-+
-+AC_DEFUN([AC_DISABLE_STATIC],
-+[_LT_SET_OPTION([LT_INIT], [disable-static])
-+])
-+
-+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-+
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-+
-+
-+
-+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-+# ----------------------------------
-+# implement the --enable-fast-install flag, and support the `fast-install'
-+# and `disable-fast-install' LT_INIT options.
-+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-+m4_define([_LT_ENABLE_FAST_INSTALL],
-+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-+AC_ARG_ENABLE([fast-install],
-+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-+    [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.
-+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-+      for pkg in $enableval; do
-+	IFS="$lt_save_ifs"
-+	if test "X$pkg" = "X$p"; then
-+	  enable_fast_install=yes
-+	fi
-+      done
-+      IFS="$lt_save_ifs"
-+      ;;
-+    esac],
-+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-+
-+_LT_DECL([fast_install], [enable_fast_install], [0],
-+	 [Whether or not to optimize for fast installation])dnl
-+])# _LT_ENABLE_FAST_INSTALL
-+
-+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-+
-+# Old names:
-+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-+AC_DIAGNOSE([obsolete],
-+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-+the `fast-install' option into LT_INIT's first parameter.])
-+])
-+
-+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-+AC_DIAGNOSE([obsolete],
-+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-+the `disable-fast-install' option into LT_INIT's first parameter.])
-+])
-+
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-+
-+
-+# _LT_WITH_PIC([MODE])
-+# --------------------
-+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-+# LT_INIT options.
-+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-+m4_define([_LT_WITH_PIC],
-+[AC_ARG_WITH([pic],
-+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
-+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-+    [lt_p=${PACKAGE-default}
-+    case $withval in
-+    yes|no) pic_mode=$withval ;;
-+    *)
-+      pic_mode=default
-+      # Look at the argument we got.  We use all the common list separators.
-+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-+      for lt_pkg in $withval; do
-+	IFS="$lt_save_ifs"
-+	if test "X$lt_pkg" = "X$lt_p"; then
-+	  pic_mode=yes
-+	fi
-+      done
-+      IFS="$lt_save_ifs"
-+      ;;
-+    esac],
-+    [pic_mode=default])
-+
-+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-+
-+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-+])# _LT_WITH_PIC
-+
-+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-+
-+# Old name:
-+AU_DEFUN([AC_LIBTOOL_PICMODE],
-+[_LT_SET_OPTION([LT_INIT], [pic-only])
-+AC_DIAGNOSE([obsolete],
-+[$0: Remove this warning and the call to _LT_SET_OPTION when you
-+put the `pic-only' option into LT_INIT's first parameter.])
-+])
-+
-+dnl aclocal-1.4 backwards compatibility:
-+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-+
-+## ----------------- ##
-+## LTDL_INIT Options ##
-+## ----------------- ##
-+
-+m4_define([_LTDL_MODE], [])
-+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
-+		 [m4_define([_LTDL_MODE], [nonrecursive])])
-+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
-+		 [m4_define([_LTDL_MODE], [recursive])])
-+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
-+		 [m4_define([_LTDL_MODE], [subproject])])
-+
-+m4_define([_LTDL_TYPE], [])
-+LT_OPTION_DEFINE([LTDL_INIT], [installable],
-+		 [m4_define([_LTDL_TYPE], [installable])])
-+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
-+		 [m4_define([_LTDL_TYPE], [convenience])])
-diff --git a/libclamav/libmspack-0.4alpha/m4/ltsugar.m4 b/libclamav/libmspack-0.4alpha/m4/ltsugar.m4
-new file mode 100644
-index 000000000000..9000a057d31d
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/m4/ltsugar.m4
-@@ -0,0 +1,123 @@
-+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
-+#
-+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-+# Written by Gary V. Vaughan, 2004
-+#
-+# This file 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.
-+
-+# serial 6 ltsugar.m4
-+
-+# This is to help aclocal find these macros, as it can't see m4_define.
-+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-+
-+
-+# lt_join(SEP, ARG1, [ARG2...])
-+# -----------------------------
-+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-+# associated separator.
-+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-+# versions in m4sugar had bugs.
-+m4_define([lt_join],
-+[m4_if([$#], [1], [],
-+       [$#], [2], [[$2]],
-+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-+m4_define([_lt_join],
-+[m4_if([$#$2], [2], [],
-+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-+
-+
-+# lt_car(LIST)
-+# lt_cdr(LIST)
-+# ------------
-+# Manipulate m4 lists.
-+# These macros are necessary as long as will still need to support
-+# Autoconf-2.59 which quotes differently.
-+m4_define([lt_car], [[$1]])
-+m4_define([lt_cdr],
-+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
-+       [$#], 1, [],
-+       [m4_dquote(m4_shift($@))])])
-+m4_define([lt_unquote], $1)
-+
-+
-+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-+# ------------------------------------------
-+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-+# Note that neither SEPARATOR nor STRING are expanded; they are appended
-+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-+# than defined and empty).
-+#
-+# This macro is needed until we can rely on Autoconf 2.62, since earlier
-+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-+m4_define([lt_append],
-+[m4_define([$1],
-+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-+
-+
-+
-+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-+# ----------------------------------------------------------
-+# Produce a SEP delimited list of all paired combinations of elements of
-+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
-+# has the form PREFIXmINFIXSUFFIXn.
-+# Needed until we can rely on m4_combine added in Autoconf 2.62.
-+m4_define([lt_combine],
-+[m4_if(m4_eval([$# > 3]), [1],
-+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-+[[m4_foreach([_Lt_prefix], [$2],
-+	     [m4_foreach([_Lt_suffix],
-+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
-+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-+
-+
-+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-+# -----------------------------------------------------------------------
-+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-+m4_define([lt_if_append_uniq],
-+[m4_ifdef([$1],
-+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
-+		 [lt_append([$1], [$2], [$3])$4],
-+		 [$5])],
-+	  [lt_append([$1], [$2], [$3])$4])])
-+
-+
-+# lt_dict_add(DICT, KEY, VALUE)
-+# -----------------------------
-+m4_define([lt_dict_add],
-+[m4_define([$1($2)], [$3])])
-+
-+
-+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-+# --------------------------------------------
-+m4_define([lt_dict_add_subkey],
-+[m4_define([$1($2:$3)], [$4])])
-+
-+
-+# lt_dict_fetch(DICT, KEY, [SUBKEY])
-+# ----------------------------------
-+m4_define([lt_dict_fetch],
-+[m4_ifval([$3],
-+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
-+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-+
-+
-+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-+# -----------------------------------------------------------------
-+m4_define([lt_if_dict_fetch],
-+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
-+	[$5],
-+    [$6])])
-+
-+
-+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-+# --------------------------------------------------------------
-+m4_define([lt_dict_filter],
-+[m4_if([$5], [], [],
-+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
-+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
-+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-+])
-diff --git a/libclamav/libmspack-0.4alpha/m4/ltversion.m4 b/libclamav/libmspack-0.4alpha/m4/ltversion.m4
-new file mode 100644
-index 000000000000..07a8602d48d6
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/m4/ltversion.m4
-@@ -0,0 +1,23 @@
-+# ltversion.m4 -- version numbers			-*- Autoconf -*-
-+#
-+#   Copyright (C) 2004 Free Software Foundation, Inc.
-+#   Written by Scott James Remnant, 2004
-+#
-+# This file 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.
-+
-+# @configure_input@
-+
-+# serial 3337 ltversion.m4
-+# This file is part of GNU Libtool
-+
-+m4_define([LT_PACKAGE_VERSION], [2.4.2])
-+m4_define([LT_PACKAGE_REVISION], [1.3337])
-+
-+AC_DEFUN([LTVERSION_VERSION],
-+[macro_version='2.4.2'
-+macro_revision='1.3337'
-+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-+_LT_DECL(, macro_revision, 0)
-+])
-diff --git a/libclamav/libmspack-0.4alpha/m4/lt~obsolete.m4 b/libclamav/libmspack-0.4alpha/m4/lt~obsolete.m4
-new file mode 100644
-index 000000000000..c573da90c5cc
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/m4/lt~obsolete.m4
-@@ -0,0 +1,98 @@
-+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
-+#
-+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-+#   Written by Scott James Remnant, 2004.
-+#
-+# This file 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.
-+
-+# serial 5 lt~obsolete.m4
-+
-+# These exist entirely to fool aclocal when bootstrapping libtool.
-+#
-+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-+# which have later been changed to m4_define as they aren't part of the
-+# exported API, or moved to Autoconf or Automake where they belong.
-+#
-+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
-+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-+# using a macro with the same name in our local m4/libtool.m4 it'll
-+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-+# and doesn't know about Autoconf macros at all.)
-+#
-+# So we provide this file, which has a silly filename so it's always
-+# included after everything else.  This provides aclocal with the
-+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-+# because those macros already exist, or will be overwritten later.
-+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
-+#
-+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-+# Yes, that means every name once taken will need to remain here until
-+# we give up compatibility with versions before 1.7, at which point
-+# we need to keep only those names which we still refer to.
-+
-+# This is to help aclocal find these macros, as it can't see m4_define.
-+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-+
-+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
-+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
-+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
-+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
-+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
-+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
-+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
-+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
-+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
-+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
-+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
-+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
-+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
-+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
-+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
-+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
-+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
-+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
-+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
-+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-+m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-+m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
-+m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
-+m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
-diff --git a/libclamav/libmspack-0.4alpha/missing b/libclamav/libmspack-0.4alpha/missing
-new file mode 100755
-index 000000000000..86a8fc31e3c2
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/missing
-@@ -0,0 +1,331 @@
-+#! /bin/sh
-+# Common stub for a few missing GNU programs while installing.
-+
-+scriptversion=2012-01-06.13; # UTC
-+
-+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-+# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 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, 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, see <http://www.gnu.org/licenses/>.
-+
-+# 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.
-+
-+if test $# -eq 0; then
-+  echo 1>&2 "Try \`$0 --help' for more information"
-+  exit 1
-+fi
-+
-+run=:
-+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-+
-+# In the cases where this matters, `missing' is being run in the
-+# srcdir already.
-+if test -f configure.ac; then
-+  configure_ac=configure.ac
-+else
-+  configure_ac=configure.in
-+fi
-+
-+msg="missing on your system"
-+
-+case $1 in
-+--run)
-+  # Try to run requested program, and just exit if it succeeds.
-+  run=
-+  shift
-+  "$@" && exit 0
-+  # Exit code 63 means version mismatch.  This often happens
-+  # when the user try to use an ancient version of a tool on
-+  # a file that requires a minimum version.  In this case we
-+  # we should proceed has if the program had been absent, or
-+  # if --run hadn't been passed.
-+  if test $? = 63; then
-+    run=:
-+    msg="probably too old"
-+  fi
-+  ;;
-+
-+  -h|--h|--he|--hel|--help)
-+    echo "\
-+$0 [OPTION]... PROGRAM [ARGUMENT]...
-+
-+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-+error status if there is no known handling for PROGRAM.
-+
-+Options:
-+  -h, --help      display this help and exit
-+  -v, --version   output version information and exit
-+  --run           try to run the given command, and emulate it if it fails
-+
-+Supported PROGRAM values:
-+  aclocal      touch file \`aclocal.m4'
-+  autoconf     touch file \`configure'
-+  autoheader   touch file \`config.h.in'
-+  autom4te     touch the output file, or create a stub one
-+  automake     touch all \`Makefile.in' files
-+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-+  flex         create \`lex.yy.c', if possible, from existing .c
-+  help2man     touch the output file
-+  lex          create \`lex.yy.c', if possible, from existing .c
-+  makeinfo     touch the output file
-+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
-+
-+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-+\`g' are ignored when checking the name.
-+
-+Send bug reports to <bug-automake at gnu.org>."
-+    exit $?
-+    ;;
-+
-+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-+    echo "missing $scriptversion (GNU Automake)"
-+    exit $?
-+    ;;
-+
-+  -*)
-+    echo 1>&2 "$0: Unknown \`$1' option"
-+    echo 1>&2 "Try \`$0 --help' for more information"
-+    exit 1
-+    ;;
-+
-+esac
-+
-+# normalize program name to check for.
-+program=`echo "$1" | sed '
-+  s/^gnu-//; t
-+  s/^gnu//; t
-+  s/^g//; t'`
-+
-+# Now exit if we have it, but it failed.  Also exit now if we
-+# don't have it and --version was passed (most likely to detect
-+# the program).  This is about non-GNU programs, so use $1 not
-+# $program.
-+case $1 in
-+  lex*|yacc*)
-+    # Not GNU programs, they don't have --version.
-+    ;;
-+
-+  *)
-+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-+       # We have it, but it failed.
-+       exit 1
-+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-+       # Could not run --version or --help.  This is probably someone
-+       # running `$TOOL --version' or `$TOOL --help' to check whether
-+       # $TOOL exists and not knowing $TOOL uses missing.
-+       exit 1
-+    fi
-+    ;;
-+esac
-+
-+# If it does not exist, or fails to run (possibly an outdated version),
-+# try to emulate it.
-+case $program in
-+  aclocal*)
-+    echo 1>&2 "\
-+WARNING: \`$1' is $msg.  You should only need it if
-+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-+         to install the \`Automake' and \`Perl' packages.  Grab them from
-+         any GNU archive site."
-+    touch aclocal.m4
-+    ;;
-+
-+  autoconf*)
-+    echo 1>&2 "\
-+WARNING: \`$1' is $msg.  You should only need it if
-+         you modified \`${configure_ac}'.  You might want to install the
-+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-+         archive site."
-+    touch configure
-+    ;;
-+
-+  autoheader*)
-+    echo 1>&2 "\
-+WARNING: \`$1' is $msg.  You should only need it if
-+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-+         from any GNU archive site."
-+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-+    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*)
-+    echo 1>&2 "\
-+WARNING: \`$1' is $msg.  You should only need it if
-+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-+         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$/.in/' |
-+	   while read f; do touch "$f"; done
-+    ;;
-+
-+  autom4te*)
-+    echo 1>&2 "\
-+WARNING: \`$1' is needed, but is $msg.
-+         You might have modified some files without having the
-+         proper tools for further handling them.
-+         You can get \`$1' as part of \`Autoconf' from any GNU
-+         archive site."
-+
-+    file=`echo "$*" | sed -n "$sed_output"`
-+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-+    if test -f "$file"; then
-+	touch $file
-+    else
-+	test -z "$file" || exec >$file
-+	echo "#! /bin/sh"
-+	echo "# Created by GNU Automake missing as a replacement of"
-+	echo "#  $ $@"
-+	echo "exit 0"
-+	chmod +x $file
-+	exit 1
-+    fi
-+    ;;
-+
-+  bison*|yacc*)
-+    echo 1>&2 "\
-+WARNING: \`$1' $msg.  You should only need it if
-+         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."
-+    rm -f y.tab.c y.tab.h
-+    if test $# -ne 1; then
-+        eval LASTARG=\${$#}
-+	case $LASTARG in
-+	*.y)
-+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-+	    if test -f "$SRCFILE"; then
-+	         cp "$SRCFILE" y.tab.c
-+	    fi
-+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-+	    if test -f "$SRCFILE"; then
-+	         cp "$SRCFILE" y.tab.h
-+	    fi
-+	  ;;
-+	esac
-+    fi
-+    if test ! -f y.tab.h; then
-+	echo >y.tab.h
-+    fi
-+    if test ! -f y.tab.c; then
-+	echo 'main() { return 0; }' >y.tab.c
-+    fi
-+    ;;
-+
-+  lex*|flex*)
-+    echo 1>&2 "\
-+WARNING: \`$1' is $msg.  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 test $# -ne 1; then
-+        eval LASTARG=\${$#}
-+	case $LASTARG in
-+	*.l)
-+	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-+	    if test -f "$SRCFILE"; then
-+	         cp "$SRCFILE" lex.yy.c
-+	    fi
-+	  ;;
-+	esac
-+    fi
-+    if test ! -f lex.yy.c; then
-+	echo 'main() { return 0; }' >lex.yy.c
-+    fi
-+    ;;
-+
-+  help2man*)
-+    echo 1>&2 "\
-+WARNING: \`$1' is $msg.  You should only need it if
-+	 you modified a dependency of a manual page.  You may need the
-+	 \`Help2man' package in order for those modifications to take
-+	 effect.  You can get \`Help2man' from any GNU archive site."
-+
-+    file=`echo "$*" | sed -n "$sed_output"`
-+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-+    if test -f "$file"; then
-+	touch $file
-+    else
-+	test -z "$file" || exec >$file
-+	echo ".ab help2man is required to generate this page"
-+	exit $?
-+    fi
-+    ;;
-+
-+  makeinfo*)
-+    echo 1>&2 "\
-+WARNING: \`$1' is $msg.  You should only need it if
-+         you modified a \`.texi' or \`.texinfo' file, or any other file
-+         indirectly affecting the aspect of the manual.  The spurious
-+         call might also be the consequence of using a buggy \`make' (AIX,
-+         DU, IRIX).  You might want to install the \`Texinfo' package or
-+         the \`GNU make' package.  Grab either from any GNU archive site."
-+    # The file to touch is that specified with -o ...
-+    file=`echo "$*" | sed -n "$sed_output"`
-+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-+    if test -z "$file"; then
-+      # ... or it is the one specified with @setfilename ...
-+      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-+      file=`sed -n '
-+	/^@setfilename/{
-+	  s/.* \([^ ]*\) *$/\1/
-+	  p
-+	  q
-+	}' $infile`
-+      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-+      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
-+    fi
-+    # If the file does not exist, the user really needs makeinfo;
-+    # let's fail without touching anything.
-+    test -f $file || exit 1
-+    touch $file
-+    ;;
-+
-+  *)
-+    echo 1>&2 "\
-+WARNING: \`$1' is needed, and is $msg.
-+         You might have modified some files without having the
-+         proper tools for further handling them.  Check the \`README' file,
-+         it often tells you about the needed prerequisites for installing
-+         this package.  You may also peek at any GNU archive site, in case
-+         some other package would contain this missing \`$1' program."
-+    exit 1
-+    ;;
-+esac
-+
-+exit 0
-+
-+# Local variables:
-+# eval: (add-hook 'write-file-hooks 'time-stamp)
-+# time-stamp-start: "scriptversion="
-+# time-stamp-format: "%:y-%02m-%02d.%02H"
-+# time-stamp-time-zone: "UTC"
-+# time-stamp-end: "; # UTC"
-+# End:
-diff --git a/libclamav/libmspack-0.4alpha/mspack/cab.h b/libclamav/libmspack-0.4alpha/mspack/cab.h
-new file mode 100644
-index 000000000000..9f449d1f29bd
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/cab.h
-@@ -0,0 +1,127 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_CAB_H
-+#define MSPACK_CAB_H 1
-+
-+#include <mszip.h>
-+#include <qtm.h>
-+#include <lzx.h>
-+
-+/* generic CAB definitions */
-+
-+/* structure offsets */
-+#define cfhead_Signature         (0x00)
-+#define cfhead_CabinetSize       (0x08)
-+#define cfhead_FileOffset        (0x10)
-+#define cfhead_MinorVersion      (0x18)
-+#define cfhead_MajorVersion      (0x19)
-+#define cfhead_NumFolders        (0x1A)
-+#define cfhead_NumFiles          (0x1C)
-+#define cfhead_Flags             (0x1E)
-+#define cfhead_SetID             (0x20)
-+#define cfhead_CabinetIndex      (0x22)
-+#define cfhead_SIZEOF            (0x24)
-+#define cfheadext_HeaderReserved (0x00)
-+#define cfheadext_FolderReserved (0x02)
-+#define cfheadext_DataReserved   (0x03)
-+#define cfheadext_SIZEOF         (0x04)
-+#define cffold_DataOffset        (0x00)
-+#define cffold_NumBlocks         (0x04)
-+#define cffold_CompType          (0x06)
-+#define cffold_SIZEOF            (0x08)
-+#define cffile_UncompressedSize  (0x00)
-+#define cffile_FolderOffset      (0x04)
-+#define cffile_FolderIndex       (0x08)
-+#define cffile_Date              (0x0A)
-+#define cffile_Time              (0x0C)
-+#define cffile_Attribs           (0x0E)
-+#define cffile_SIZEOF            (0x10)
-+#define cfdata_CheckSum          (0x00)
-+#define cfdata_CompressedSize    (0x04)
-+#define cfdata_UncompressedSize  (0x06)
-+#define cfdata_SIZEOF            (0x08)
-+
-+/* flags */
-+#define cffoldCOMPTYPE_MASK            (0x000f)
-+#define cffoldCOMPTYPE_NONE            (0x0000)
-+#define cffoldCOMPTYPE_MSZIP           (0x0001)
-+#define cffoldCOMPTYPE_QUANTUM         (0x0002)
-+#define cffoldCOMPTYPE_LZX             (0x0003)
-+#define cfheadPREV_CABINET             (0x0001)
-+#define cfheadNEXT_CABINET             (0x0002)
-+#define cfheadRESERVE_PRESENT          (0x0004)
-+#define cffileCONTINUED_FROM_PREV      (0xFFFD)
-+#define cffileCONTINUED_TO_NEXT        (0xFFFE)
-+#define cffileCONTINUED_PREV_AND_NEXT  (0xFFFF)
-+
-+/* CAB data blocks are <= 32768 bytes in uncompressed form. Uncompressed
-+ * blocks have zero growth. MSZIP guarantees that it won't grow above
-+ * uncompressed size by more than 12 bytes. LZX guarantees it won't grow
-+ * more than 6144 bytes. Quantum has no documentation, but the largest
-+ * block seen in the wild is 337 bytes above uncompressed size.
-+ */
-+#define CAB_BLOCKMAX (32768)
-+#define CAB_INPUTMAX (CAB_BLOCKMAX+6144)
-+
-+/* CAB compression definitions */
-+
-+struct mscab_compressor_p {
-+  struct mscab_compressor base;
-+  struct mspack_system *system;
-+  /* todo */
-+};
-+
-+/* CAB decompression definitions */
-+
-+struct mscabd_decompress_state {
-+  struct mscabd_folder_p *folder;    /* current folder we're extracting from */
-+  struct mscabd_folder_data *data;   /* current folder split we're in        */
-+  unsigned int offset;               /* uncompressed offset within folder    */
-+  unsigned int block;                /* which block are we decompressing?    */
-+  struct mspack_system sys;          /* special I/O code for decompressor    */
-+  int comp_type;                     /* type of compression used by folder   */
-+  int (*decompress)(void *, off_t);  /* decompressor code                    */
-+  void *state;                       /* decompressor state                   */
-+  struct mscabd_cabinet_p *incab;    /* cabinet where input data comes from  */
-+  struct mspack_file *infh;          /* input file handle                    */
-+  struct mspack_file *outfh;         /* output file handle                   */
-+  unsigned char *i_ptr, *i_end;      /* input data consumed, end             */
-+  unsigned char input[CAB_INPUTMAX]; /* one input block of data              */
-+};
-+
-+struct mscab_decompressor_p {
-+  struct mscab_decompressor base;
-+  struct mscabd_decompress_state *d;
-+  struct mspack_system *system;
-+  int param[3]; /* !!! MATCH THIS TO NUM OF PARAMS IN MSPACK.H !!! */
-+  int error, read_error;
-+};
-+
-+struct mscabd_cabinet_p {
-+  struct mscabd_cabinet base;
-+  off_t blocks_off;                  /* offset to data blocks                */
-+  int block_resv;                    /* reserved space in data blocks        */
-+};
-+
-+/* there is one of these for every cabinet a folder spans */
-+struct mscabd_folder_data {
-+  struct mscabd_folder_data *next;
-+  struct mscabd_cabinet_p *cab;      /* cabinet file of this folder span     */
-+  off_t offset;                      /* cabinet offset of first datablock    */
-+};
-+
-+struct mscabd_folder_p {
-+  struct mscabd_folder base;
-+  struct mscabd_folder_data data;    /* where are the data blocks?           */
-+  struct mscabd_file *merge_prev;    /* first file needing backwards merge   */
-+  struct mscabd_file *merge_next;    /* first file needing forwards merge    */
-+};
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/cabc.c b/libclamav/libmspack-0.4alpha/mspack/cabc.c
-new file mode 100644
-index 000000000000..242e0347c3f9
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/cabc.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* CAB compression implementation */
-+
-+#include <system.h>
-+#include <cab.h>
-+
-+struct mscab_compressor *
-+  mspack_create_cab_compressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_cab_compressor(struct mscab_compressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/cabd.c b/libclamav/libmspack-0.4alpha/mspack/cabd.c
-new file mode 100644
-index 000000000000..cce5c60e869a
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/cabd.c
-@@ -0,0 +1,1444 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2011 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* Cabinet (.CAB) files are a form of file archive. Each cabinet contains
-+ * "folders", which are compressed spans of data. Each cabinet has
-+ * "files", whose metadata is in the cabinet header, but whose actual data
-+ * is stored compressed in one of the "folders". Cabinets can span more
-+ * than one physical file on disk, in which case they are a "cabinet set",
-+ * and usually the last folder of each cabinet extends into the next
-+ * cabinet.
-+ *
-+ * For a complete description of the format, see the MSDN site:
-+ *   http://msdn.microsoft.com/en-us/library/bb267310.aspx
-+ */
-+
-+/* CAB decompression implementation */
-+
-+#include <system.h>
-+#include <cab.h>
-+#include <assert.h>
-+
-+/* Notes on compliance with cabinet specification:
-+ *
-+ * One of the main changes between cabextract 0.6 and libmspack's cab
-+ * decompressor is the move from block-oriented decompression to
-+ * stream-oriented decompression.
-+ *
-+ * cabextract would read one data block from disk, decompress it with the
-+ * appropriate method, then write the decompressed data. The CAB
-+ * specification is specifically designed to work like this, as it ensures
-+ * compression matches do not span the maximum decompressed block size
-+ * limit of 32kb.
-+ *
-+ * However, the compression algorithms used are stream oriented, with
-+ * specific hacks added to them to enforce the "individual 32kb blocks"
-+ * rule in CABs. In other file formats, they do not have this limitation.
-+ *
-+ * In order to make more generalised decompressors, libmspack's CAB
-+ * decompressor has moved from being block-oriented to more stream
-+ * oriented. This also makes decompression slightly faster.
-+ *
-+ * However, this leads to incompliance with the CAB specification. The
-+ * CAB controller can no longer ensure each block of input given to the
-+ * decompressors is matched with their output. The "decompressed size" of
-+ * each individual block is thrown away.
-+ *
-+ * Each CAB block is supposed to be seen as individually compressed. This
-+ * means each consecutive data block can have completely different
-+ * "uncompressed" sizes, ranging from 1 to 32768 bytes. However, in
-+ * reality, all data blocks in a folder decompress to exactly 32768 bytes,
-+ * excepting the final block. 
-+ *
-+ * Given this situation, the decompression algorithms are designed to
-+ * realign their input bitstreams on 32768 output-byte boundaries, and
-+ * various other special cases have been made. libmspack will not
-+ * correctly decompress LZX or Quantum compressed folders where the blocks
-+ * do not follow this "32768 bytes until last block" pattern. It could be
-+ * implemented if needed, but hopefully this is not necessary -- it has
-+ * not been seen in over 3Gb of CAB archives.
-+ */
-+
-+/* prototypes */
-+static struct mscabd_cabinet * cabd_open(
-+  struct mscab_decompressor *base, const char *filename);
-+static void cabd_close(
-+  struct mscab_decompressor *base, struct mscabd_cabinet *origcab);
-+static int cabd_read_headers(
-+  struct mspack_system *sys, struct mspack_file *fh,
-+  struct mscabd_cabinet_p *cab, off_t offset, int quiet);
-+static char *cabd_read_string(
-+  struct mspack_system *sys, struct mspack_file *fh,
-+  struct mscabd_cabinet_p *cab, int *error);
-+
-+static struct mscabd_cabinet *cabd_search(
-+  struct mscab_decompressor *base, const char *filename);
-+static int cabd_find(
-+  struct mscab_decompressor_p *self, unsigned char *buf,
-+  struct mspack_file *fh, const char *filename, off_t flen,
-+  off_t *firstlen, struct mscabd_cabinet_p **firstcab);
-+
-+static int cabd_prepend(
-+  struct mscab_decompressor *base, struct mscabd_cabinet *cab,
-+  struct mscabd_cabinet *prevcab);
-+static int cabd_append(
-+  struct mscab_decompressor *base, struct mscabd_cabinet *cab,
-+  struct mscabd_cabinet *nextcab);
-+static int cabd_merge(
-+  struct mscab_decompressor *base, struct mscabd_cabinet *lcab,
-+  struct mscabd_cabinet *rcab);
-+static int cabd_can_merge_folders(
-+  struct mspack_system *sys, struct mscabd_folder_p *lfol,
-+  struct mscabd_folder_p *rfol);
-+
-+static int cabd_extract(
-+  struct mscab_decompressor *base, struct mscabd_file *file,
-+  const char *filename);
-+static int cabd_init_decomp(
-+  struct mscab_decompressor_p *self, unsigned int ct);
-+static void cabd_free_decomp(
-+  struct mscab_decompressor_p *self);
-+static int cabd_sys_read(
-+  struct mspack_file *file, void *buffer, int bytes);
-+static int cabd_sys_write(
-+  struct mspack_file *file, void *buffer, int bytes);
-+static int cabd_sys_read_block(
-+  struct mspack_system *sys, struct mscabd_decompress_state *d, int *out,
-+  int ignore_cksum);
-+static unsigned int cabd_checksum(
-+  unsigned char *data, unsigned int bytes, unsigned int cksum);
-+static struct noned_state *noned_init(
-+  struct mspack_system *sys, struct mspack_file *in, struct mspack_file *out,
-+  int bufsize);
-+
-+static int noned_decompress(
-+  struct noned_state *s, off_t bytes);
-+static void noned_free(
-+  struct noned_state *state);
-+
-+static int cabd_param(
-+  struct mscab_decompressor *base, int param, int value);
-+
-+static int cabd_error(
-+  struct mscab_decompressor *base);
-+
-+
-+/***************************************
-+ * MSPACK_CREATE_CAB_DECOMPRESSOR
-+ ***************************************
-+ * constructor
-+ */
-+struct mscab_decompressor *
-+  mspack_create_cab_decompressor(struct mspack_system *sys)
-+{
-+  struct mscab_decompressor_p *self = NULL;
-+
-+  if (!sys) sys = mspack_default_system;
-+  if (!mspack_valid_system(sys)) return NULL;
-+
-+  if ((self = (struct mscab_decompressor_p *) sys->alloc(sys, sizeof(struct mscab_decompressor_p)))) {
-+    self->base.open       = &cabd_open;
-+    self->base.close      = &cabd_close;
-+    self->base.search     = &cabd_search;
-+    self->base.extract    = &cabd_extract;
-+    self->base.prepend    = &cabd_prepend;
-+    self->base.append     = &cabd_append;
-+    self->base.set_param  = &cabd_param;
-+    self->base.last_error = &cabd_error;
-+    self->system          = sys;
-+    self->d               = NULL;
-+    self->error           = MSPACK_ERR_OK;
-+
-+    self->param[MSCABD_PARAM_SEARCHBUF] = 32768;
-+    self->param[MSCABD_PARAM_FIXMSZIP]  = 0;
-+    self->param[MSCABD_PARAM_DECOMPBUF] = 4096;
-+  }
-+  return (struct mscab_decompressor *) self;
-+}
-+
-+/***************************************
-+ * MSPACK_DESTROY_CAB_DECOMPRESSOR
-+ ***************************************
-+ * destructor
-+ */
-+void mspack_destroy_cab_decompressor(struct mscab_decompressor *base) {
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) base;
-+  if (self) {
-+    struct mspack_system *sys = self->system;
-+    cabd_free_decomp(self);
-+    if (self->d) {
-+      if (self->d->infh) sys->close(self->d->infh);
-+      sys->free(self->d);
-+    }
-+    sys->free(self);
-+  }
-+}
-+
-+
-+/***************************************
-+ * CABD_OPEN
-+ ***************************************
-+ * opens a file and tries to read it as a cabinet file
-+ */
-+static struct mscabd_cabinet *cabd_open(struct mscab_decompressor *base,
-+					const char *filename)
-+{
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) base;
-+  struct mscabd_cabinet_p *cab = NULL;
-+  struct mspack_system *sys;
-+  struct mspack_file *fh;
-+  int error;
-+
-+  if (!base) return NULL;
-+  sys = self->system;
-+
-+  if ((fh = sys->open(sys, filename, MSPACK_SYS_OPEN_READ))) {
-+    if ((cab = (struct mscabd_cabinet_p *) sys->alloc(sys, sizeof(struct mscabd_cabinet_p)))) {
-+      cab->base.filename = filename;
-+      error = cabd_read_headers(sys, fh, cab, (off_t) 0, 0);
-+      if (error) {
-+	cabd_close(base, (struct mscabd_cabinet *) cab);
-+	cab = NULL;
-+      }
-+      self->error = error;
-+    }
-+    else {
-+      self->error = MSPACK_ERR_NOMEMORY;
-+    }
-+    sys->close(fh);
-+  }
-+  else {
-+    self->error = MSPACK_ERR_OPEN;
-+  }
-+  return (struct mscabd_cabinet *) cab;
-+}
-+
-+/***************************************
-+ * CABD_CLOSE
-+ ***************************************
-+ * frees all memory associated with a given mscabd_cabinet.
-+ */
-+static void cabd_close(struct mscab_decompressor *base,
-+		       struct mscabd_cabinet *origcab)
-+{
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) base;
-+  struct mscabd_folder_data *dat, *ndat;
-+  struct mscabd_cabinet *cab, *ncab;
-+  struct mscabd_folder *fol, *nfol;
-+  struct mscabd_file *fi, *nfi;
-+  struct mspack_system *sys;
-+
-+  if (!base) return;
-+  sys = self->system;
-+
-+  self->error = MSPACK_ERR_OK;
-+
-+  while (origcab) {
-+    /* free files */
-+    for (fi = origcab->files; fi; fi = nfi) {
-+      nfi = fi->next;
-+      sys->free(fi->filename);
-+      sys->free(fi);
-+    }
-+
-+    /* free folders */
-+    for (fol = origcab->folders; fol; fol = nfol) {
-+      nfol = fol->next;
-+
-+      /* free folder decompression state if it has been decompressed */
-+      if (self->d && (self->d->folder == (struct mscabd_folder_p *) fol)) {
-+	if (self->d->infh) sys->close(self->d->infh);
-+	cabd_free_decomp(self);
-+	sys->free(self->d);
-+	self->d = NULL;
-+      }
-+
-+      /* free folder data segments */
-+      for (dat = ((struct mscabd_folder_p *)fol)->data.next; dat; dat = ndat) {
-+	ndat = dat->next;
-+	sys->free(dat);
-+      }
-+      sys->free(fol);
-+    }
-+
-+    /* free predecessor cabinets (and the original cabinet's strings) */
-+    for (cab = origcab; cab; cab = ncab) {
-+      ncab = cab->prevcab;
-+      sys->free(cab->prevname);
-+      sys->free(cab->nextname);
-+      sys->free(cab->previnfo);
-+      sys->free(cab->nextinfo);
-+      if (cab != origcab) sys->free(cab);
-+    }
-+
-+    /* free successor cabinets */
-+    for (cab = origcab->nextcab; cab; cab = ncab) {
-+      ncab = cab->nextcab;
-+      sys->free(cab->prevname);
-+      sys->free(cab->nextname);
-+      sys->free(cab->previnfo);
-+      sys->free(cab->nextinfo);
-+      sys->free(cab);
-+    }
-+
-+    /* free actual cabinet structure */
-+    cab = origcab->next;
-+    sys->free(origcab);
-+
-+    /* repeat full procedure again with the cab->next pointer (if set) */
-+    origcab = cab;
-+  }
-+}
-+
-+/***************************************
-+ * CABD_READ_HEADERS
-+ ***************************************
-+ * reads the cabinet file header, folder list and file list.
-+ * fills out a pre-existing mscabd_cabinet structure, allocates memory
-+ * for folders and files as necessary
-+ */
-+static int cabd_read_headers(struct mspack_system *sys,
-+			     struct mspack_file *fh,
-+			     struct mscabd_cabinet_p *cab,
-+			     off_t offset, int quiet)
-+{
-+  int num_folders, num_files, folder_resv, i, x;
-+  struct mscabd_folder_p *fol, *linkfol = NULL;
-+  struct mscabd_file *file, *linkfile = NULL;
-+  unsigned char buf[64];
-+
-+  /* initialise pointers */
-+  cab->base.next     = NULL;
-+  cab->base.files    = NULL;
-+  cab->base.folders  = NULL;
-+  cab->base.prevcab  = cab->base.nextcab  = NULL;
-+  cab->base.prevname = cab->base.nextname = NULL;
-+  cab->base.previnfo = cab->base.nextinfo = NULL;
-+
-+  cab->base.base_offset = offset;
-+
-+  /* seek to CFHEADER */
-+  if (sys->seek(fh, offset, MSPACK_SYS_SEEK_START)) {
-+    return MSPACK_ERR_SEEK;
-+  }
-+
-+  /* read in the CFHEADER */
-+  if (sys->read(fh, &buf[0], cfhead_SIZEOF) != cfhead_SIZEOF) {
-+    return MSPACK_ERR_READ;
-+  }
-+
-+  /* check for "MSCF" signature */
-+  if (EndGetI32(&buf[cfhead_Signature]) != 0x4643534D) {
-+    return MSPACK_ERR_SIGNATURE;
-+  }
-+
-+  /* some basic header fields */
-+  cab->base.length    = EndGetI32(&buf[cfhead_CabinetSize]);
-+  cab->base.set_id    = EndGetI16(&buf[cfhead_SetID]);
-+  cab->base.set_index = EndGetI16(&buf[cfhead_CabinetIndex]);
-+
-+  /* get the number of folders */
-+  num_folders = EndGetI16(&buf[cfhead_NumFolders]);
-+  if (num_folders == 0) {
-+    if (!quiet) sys->message(fh, "no folders in cabinet.");
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* get the number of files */
-+  num_files = EndGetI16(&buf[cfhead_NumFiles]);
-+  if (num_files == 0) {
-+    if (!quiet) sys->message(fh, "no files in cabinet.");
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* check cabinet version */
-+  if ((buf[cfhead_MajorVersion] != 1) && (buf[cfhead_MinorVersion] != 3)) {
-+    if (!quiet) sys->message(fh, "WARNING; cabinet version is not 1.3");
-+  }
-+
-+  /* read the reserved-sizes part of header, if present */
-+  cab->base.flags = EndGetI16(&buf[cfhead_Flags]);
-+  if (cab->base.flags & cfheadRESERVE_PRESENT) {
-+    if (sys->read(fh, &buf[0], cfheadext_SIZEOF) != cfheadext_SIZEOF) {
-+      return MSPACK_ERR_READ;
-+    }
-+    cab->base.header_resv = EndGetI16(&buf[cfheadext_HeaderReserved]);
-+    folder_resv           = buf[cfheadext_FolderReserved];
-+    cab->block_resv       = buf[cfheadext_DataReserved];
-+
-+    if (cab->base.header_resv > 60000) {
-+      if (!quiet) sys->message(fh, "WARNING; reserved header > 60000.");
-+    }
-+
-+    /* skip the reserved header */
-+    if (cab->base.header_resv) {
-+      if (sys->seek(fh, (off_t) cab->base.header_resv, MSPACK_SYS_SEEK_CUR)) {
-+	return MSPACK_ERR_SEEK;
-+      }
-+    }
-+  }
-+  else {
-+    cab->base.header_resv = 0;
-+    folder_resv           = 0; 
-+    cab->block_resv       = 0;
-+  }
-+
-+  /* read name and info of preceeding cabinet in set, if present */
-+  if (cab->base.flags & cfheadPREV_CABINET) {
-+    cab->base.prevname = cabd_read_string(sys, fh, cab, &x); if (x) return x;
-+    cab->base.previnfo = cabd_read_string(sys, fh, cab, &x); if (x) return x;
-+  }
-+
-+  /* read name and info of next cabinet in set, if present */
-+  if (cab->base.flags & cfheadNEXT_CABINET) {
-+    cab->base.nextname = cabd_read_string(sys, fh, cab, &x); if (x) return x;
-+    cab->base.nextinfo = cabd_read_string(sys, fh, cab, &x); if (x) return x;
-+  }
-+
-+  /* read folders */
-+  for (i = 0; i < num_folders; i++) {
-+    if (sys->read(fh, &buf[0], cffold_SIZEOF) != cffold_SIZEOF) {
-+      return MSPACK_ERR_READ;
-+    }
-+    if (folder_resv) {
-+      if (sys->seek(fh, (off_t) folder_resv, MSPACK_SYS_SEEK_CUR)) {
-+	return MSPACK_ERR_SEEK;
-+      }
-+    }
-+
-+    if (!(fol = (struct mscabd_folder_p *) sys->alloc(sys, sizeof(struct mscabd_folder_p)))) {
-+      return MSPACK_ERR_NOMEMORY;
-+    }
-+    fol->base.next       = NULL;
-+    fol->base.comp_type  = EndGetI16(&buf[cffold_CompType]);
-+    fol->base.num_blocks = EndGetI16(&buf[cffold_NumBlocks]);
-+    fol->data.next       = NULL;
-+    fol->data.cab        = (struct mscabd_cabinet_p *) cab;
-+    fol->data.offset     = offset + (off_t)
-+      ( (unsigned int) EndGetI32(&buf[cffold_DataOffset]) );
-+    fol->merge_prev      = NULL;
-+    fol->merge_next      = NULL;
-+
-+    /* link folder into list of folders */
-+    if (!linkfol) cab->base.folders = (struct mscabd_folder *) fol;
-+    else linkfol->base.next = (struct mscabd_folder *) fol;
-+    linkfol = fol;
-+  }
-+
-+  /* read files */
-+  for (i = 0; i < num_files; i++) {
-+    if (sys->read(fh, &buf[0], cffile_SIZEOF) != cffile_SIZEOF) {
-+      return MSPACK_ERR_READ;
-+    }
-+
-+    if (!(file = (struct mscabd_file *) sys->alloc(sys, sizeof(struct mscabd_file)))) {
-+      return MSPACK_ERR_NOMEMORY;
-+    }
-+
-+    file->next     = NULL;
-+    file->length   = EndGetI32(&buf[cffile_UncompressedSize]);
-+    file->attribs  = EndGetI16(&buf[cffile_Attribs]);
-+    file->offset   = EndGetI32(&buf[cffile_FolderOffset]);
-+
-+    /* set folder pointer */
-+    x = EndGetI16(&buf[cffile_FolderIndex]);
-+    if (x < cffileCONTINUED_FROM_PREV) {
-+      /* normal folder index; count up to the correct folder. the folder
-+       * pointer will be NULL if folder index is invalid */
-+      struct mscabd_folder *ifol = cab->base.folders; 
-+      while (x--) if (ifol) ifol = ifol->next;
-+      file->folder = ifol;
-+
-+      if (!ifol) {
-+	sys->free(file);
-+	D(("invalid folder index"))
-+	return MSPACK_ERR_DATAFORMAT;
-+      }
-+    }
-+    else {
-+      /* either CONTINUED_TO_NEXT, CONTINUED_FROM_PREV or
-+       * CONTINUED_PREV_AND_NEXT */
-+      if ((x == cffileCONTINUED_TO_NEXT) ||
-+	  (x == cffileCONTINUED_PREV_AND_NEXT))
-+      {
-+	/* get last folder */
-+	struct mscabd_folder *ifol = cab->base.folders;
-+	while (ifol->next) ifol = ifol->next;
-+	file->folder = ifol;
-+
-+	/* set "merge next" pointer */
-+	fol = (struct mscabd_folder_p *) ifol;
-+	if (!fol->merge_next) fol->merge_next = file;
-+      }
-+
-+      if ((x == cffileCONTINUED_FROM_PREV) ||
-+	  (x == cffileCONTINUED_PREV_AND_NEXT))
-+      {
-+	/* get first folder */
-+	file->folder = cab->base.folders;
-+
-+	/* set "merge prev" pointer */
-+	fol = (struct mscabd_folder_p *) file->folder;
-+	if (!fol->merge_prev) fol->merge_prev = file;
-+      }
-+    }
-+
-+    /* get time */
-+    x = EndGetI16(&buf[cffile_Time]);
-+    file->time_h = x >> 11;
-+    file->time_m = (x >> 5) & 0x3F;
-+    file->time_s = (x << 1) & 0x3E;
-+
-+    /* get date */
-+    x = EndGetI16(&buf[cffile_Date]);
-+    file->date_d = x & 0x1F;
-+    file->date_m = (x >> 5) & 0xF;
-+    file->date_y = (x >> 9) + 1980;
-+
-+    /* get filename */
-+    file->filename = cabd_read_string(sys, fh, cab, &x);
-+    if (x) { 
-+      sys->free(file);
-+      return x;
-+    }
-+
-+    /* link file entry into file list */
-+    if (!linkfile) cab->base.files = file;
-+    else linkfile->next = file;
-+    linkfile = file;
-+  }
-+
-+  return MSPACK_ERR_OK;
-+}
-+
-+static char *cabd_read_string(struct mspack_system *sys,
-+			      struct mspack_file *fh,
-+			      struct mscabd_cabinet_p *cab, int *error)
-+{
-+  off_t base = sys->tell(fh);
-+  char buf[256], *str;
-+  unsigned int len, i, ok;
-+
-+  /* read up to 256 bytes */
-+  len = sys->read(fh, &buf[0], 256);
-+
-+  /* search for a null terminator in the buffer */
-+  for (i = 0, ok = 0; i < len; i++) if (!buf[i]) { ok = 1; break; }
-+  if (!ok) {
-+    *error = MSPACK_ERR_DATAFORMAT;
-+    return NULL;
-+  }
-+
-+  len = i + 1;
-+
-+  /* set the data stream to just after the string and return */
-+  if (sys->seek(fh, base + (off_t)len, MSPACK_SYS_SEEK_START)) {
-+    *error = MSPACK_ERR_SEEK;
-+    return NULL;
-+  }
-+
-+  if (!(str = (char *) sys->alloc(sys, len))) {
-+    *error = MSPACK_ERR_NOMEMORY;
-+    return NULL;
-+  }
-+
-+  sys->copy(&buf[0], str, len);
-+  *error = MSPACK_ERR_OK;
-+  return str;
-+}
-+    
-+/***************************************
-+ * CABD_SEARCH, CABD_FIND
-+ ***************************************
-+ * cabd_search opens a file, finds its extent, allocates a search buffer,
-+ * then reads through the whole file looking for possible cabinet headers.
-+ * if it finds any, it tries to read them as real cabinets. returns a linked
-+ * list of results
-+ *
-+ * cabd_find is the inner loop of cabd_search, to make it easier to
-+ * break out of the loop and be sure that all resources are freed
-+ */
-+static struct mscabd_cabinet *cabd_search(struct mscab_decompressor *base,
-+					  const char *filename)
-+{
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) base;
-+  struct mscabd_cabinet_p *cab = NULL;
-+  struct mspack_system *sys;
-+  unsigned char *search_buf;
-+  struct mspack_file *fh;
-+  off_t filelen, firstlen = 0;
-+
-+  if (!base) return NULL;
-+  sys = self->system;
-+
-+  /* allocate a search buffer */
-+  search_buf = (unsigned char *) sys->alloc(sys, (size_t) self->param[MSCABD_PARAM_SEARCHBUF]);
-+  if (!search_buf) {
-+    self->error = MSPACK_ERR_NOMEMORY;
-+    return NULL;
-+  }
-+
-+  /* open file and get its full file length */
-+  if ((fh = sys->open(sys, filename, MSPACK_SYS_OPEN_READ))) {
-+    if (!(self->error = mspack_sys_filelen(sys, fh, &filelen))) {
-+      self->error = cabd_find(self, search_buf, fh, filename,
-+			      filelen, &firstlen, &cab);
-+    }
-+
-+    /* truncated / extraneous data warning: */
-+    if (firstlen && (firstlen != filelen) &&
-+	(!cab || (cab->base.base_offset == 0)))
-+    {
-+      if (firstlen < filelen) {
-+	sys->message(fh, "WARNING; possible %" LD
-+		     " extra bytes at end of file.",
-+		     filelen - firstlen);
-+      }
-+      else {
-+	sys->message(fh, "WARNING; file possibly truncated by %" LD " bytes.",
-+		     firstlen - filelen);
-+      }
-+    }
-+    
-+    sys->close(fh);
-+  }
-+  else {
-+    self->error = MSPACK_ERR_OPEN;
-+  }
-+
-+  /* free the search buffer */
-+  sys->free(search_buf);
-+
-+  return (struct mscabd_cabinet *) cab;
-+}
-+
-+static int cabd_find(struct mscab_decompressor_p *self, unsigned char *buf,
-+		     struct mspack_file *fh, const char *filename, off_t flen,
-+		     off_t *firstlen, struct mscabd_cabinet_p **firstcab)
-+{
-+  struct mscabd_cabinet_p *cab, *link = NULL;
-+  off_t caboff, offset, length;
-+  struct mspack_system *sys = self->system;
-+  unsigned char *p, *pend, state = 0;
-+  unsigned int cablen_u32 = 0, foffset_u32 = 0;
-+  int false_cabs = 0;
-+
-+#ifndef LARGEFILE_SUPPORT
-+  /* detect 32-bit off_t overflow */
-+  if (flen < 0) {
-+    sys->message(fh, largefile_msg);
-+    return MSPACK_ERR_OK;
-+  }
-+#endif
-+
-+  /* search through the full file length */
-+  for (offset = 0; offset < flen; offset += length) {
-+    /* search length is either the full length of the search buffer, or the
-+     * amount of data remaining to the end of the file, whichever is less. */
-+    length = flen - offset;
-+    if (length > self->param[MSCABD_PARAM_SEARCHBUF]) {
-+      length = self->param[MSCABD_PARAM_SEARCHBUF];
-+    }
-+
-+    /* fill the search buffer with data from disk */
-+    if (sys->read(fh, &buf[0], (int) length) != (int) length) {
-+      return MSPACK_ERR_READ;
-+    }
-+
-+    /* FAQ avoidance strategy */
-+    if ((offset == 0) && (EndGetI32(&buf[0]) == 0x28635349)) {
-+      sys->message(fh, "WARNING; found InstallShield header. "
-+		   "This is probably an InstallShield file. "
-+		   "Use UNSHIELD from www.synce.org to unpack it.");
-+    }
-+
-+    /* read through the entire buffer. */
-+    for (p = &buf[0], pend = &buf[length]; p < pend; ) {
-+      switch (state) {
-+	/* starting state */
-+      case 0:
-+	/* we spend most of our time in this while loop, looking for
-+	 * a leading 'M' of the 'MSCF' signature */
-+	while (p < pend && *p != 0x4D) p++;
-+	/* if we found tht 'M', advance state */
-+	if (p++ < pend) state = 1;
-+	break;
-+
-+      /* verify that the next 3 bytes are 'S', 'C' and 'F' */
-+      case 1: state = (*p++ == 0x53) ? 2 : 0; break;
-+      case 2: state = (*p++ == 0x43) ? 3 : 0; break;
-+      case 3: state = (*p++ == 0x46) ? 4 : 0; break;
-+
-+      /* we don't care about bytes 4-7 (see default: for action) */
-+
-+      /* bytes 8-11 are the overall length of the cabinet */
-+      case 8:  cablen_u32  = *p++;       state++; break;
-+      case 9:  cablen_u32 |= *p++ << 8;  state++; break;
-+      case 10: cablen_u32 |= *p++ << 16; state++; break;
-+      case 11: cablen_u32 |= *p++ << 24; state++; break;
-+
-+      /* we don't care about bytes 12-15 (see default: for action) */
-+
-+      /* bytes 16-19 are the offset within the cabinet of the filedata */
-+      case 16: foffset_u32  = *p++;       state++; break;
-+      case 17: foffset_u32 |= *p++ << 8;  state++; break;
-+      case 18: foffset_u32 |= *p++ << 16; state++; break;
-+      case 19: foffset_u32 |= *p++ << 24;
-+	/* now we have recieved 20 bytes of potential cab header. work out
-+	 * the offset in the file of this potential cabinet */
-+	caboff = offset + (p - &buf[0]) - 20;
-+
-+	/* should reading cabinet fail, restart search just after 'MSCF' */
-+	offset = caboff + 4;
-+
-+	/* capture the "length of cabinet" field if there is a cabinet at
-+	 * offset 0 in the file, regardless of whether the cabinet can be
-+	 * read correctly or not */
-+	if (caboff == 0) *firstlen = (off_t) cablen_u32;
-+
-+	/* check that the files offset is less than the alleged length of
-+	 * the cabinet, and that the offset + the alleged length are
-+	 * 'roughly' within the end of overall file length */
-+	if ((foffset_u32 < cablen_u32) &&
-+	    ((caboff + (off_t) foffset_u32) < (flen + 32)) &&
-+	    ((caboff + (off_t) cablen_u32)  < (flen + 32)) )
-+	{
-+	  /* likely cabinet found -- try reading it */
-+	  if (!(cab = (struct mscabd_cabinet_p *) sys->alloc(sys, sizeof(struct mscabd_cabinet_p)))) {
-+	    return MSPACK_ERR_NOMEMORY;
-+	  }
-+	  cab->base.filename = filename;
-+	  if (cabd_read_headers(sys, fh, cab, caboff, 1)) {
-+	    /* destroy the failed cabinet */
-+	    cabd_close((struct mscab_decompressor *) self,
-+		       (struct mscabd_cabinet *) cab);
-+	    false_cabs++;
-+	  }
-+	  else {
-+	    /* cabinet read correctly! */
-+
-+	    /* link the cab into the list */
-+	    if (!link) *firstcab = cab;
-+	    else link->base.next = (struct mscabd_cabinet *) cab;
-+	    link = cab;
-+
-+	    /* cause the search to restart after this cab's data. */
-+	    offset = caboff + (off_t) cablen_u32;
-+
-+#ifndef LARGEFILE_SUPPORT
-+	    /* detect 32-bit off_t overflow */
-+	    if (offset < caboff) {
-+	      sys->message(fh, largefile_msg);
-+	      return MSPACK_ERR_OK;
-+	    }
-+#endif	      
-+	  }
-+	}
-+
-+	/* restart search */
-+	if (offset >= flen) return MSPACK_ERR_OK;
-+	if (sys->seek(fh, offset, MSPACK_SYS_SEEK_START)) {
-+	  return MSPACK_ERR_SEEK;
-+	}
-+	length = 0;
-+	p = pend;
-+	state = 0;
-+	break;
-+
-+      /* for bytes 4-7 and 12-15, just advance state/pointer */
-+      default:
-+	p++, state++;
-+      } /* switch(state) */
-+    } /* for (... p < pend ...) */
-+  } /* for (... offset < length ...) */
-+
-+  if (false_cabs) {
-+    D(("%d false cabinets found", false_cabs))
-+  }
-+
-+  return MSPACK_ERR_OK;
-+}
-+					     
-+/***************************************
-+ * CABD_MERGE, CABD_PREPEND, CABD_APPEND
-+ ***************************************
-+ * joins cabinets together, also merges split folders between these two
-+ * cabinets only. This includes freeing the duplicate folder and file(s)
-+ * and allocating a further mscabd_folder_data structure to append to the
-+ * merged folder's data parts list.
-+ */
-+static int cabd_prepend(struct mscab_decompressor *base,
-+			struct mscabd_cabinet *cab,
-+			struct mscabd_cabinet *prevcab)
-+{
-+  return cabd_merge(base, prevcab, cab);
-+}
-+
-+static int cabd_append(struct mscab_decompressor *base,
-+			struct mscabd_cabinet *cab,
-+			struct mscabd_cabinet *nextcab)
-+{
-+  return cabd_merge(base, cab, nextcab);
-+}
-+
-+static int cabd_merge(struct mscab_decompressor *base,
-+		      struct mscabd_cabinet *lcab,
-+		      struct mscabd_cabinet *rcab)
-+{
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) base;
-+  struct mscabd_folder_data *data, *ndata;
-+  struct mscabd_folder_p *lfol, *rfol;
-+  struct mscabd_file *fi, *rfi, *lfi;
-+  struct mscabd_cabinet *cab;
-+  struct mspack_system *sys;
-+
-+  if (!self) return MSPACK_ERR_ARGS;
-+  sys = self->system;
-+
-+  /* basic args check */
-+  if (!lcab || !rcab || (lcab == rcab)) {
-+    D(("lcab NULL, rcab NULL or lcab = rcab"))
-+    return self->error = MSPACK_ERR_ARGS;
-+  }
-+
-+  /* check there's not already a cabinet attached */
-+  if (lcab->nextcab || rcab->prevcab) {
-+    D(("cabs already joined"))
-+    return self->error = MSPACK_ERR_ARGS;
-+  }
-+
-+  /* do not create circular cabinet chains */
-+  for (cab = lcab->prevcab; cab; cab = cab->prevcab) {
-+    if (cab == rcab) {D(("circular!")) return self->error = MSPACK_ERR_ARGS;}
-+  }
-+  for (cab = rcab->nextcab; cab; cab = cab->nextcab) {
-+    if (cab == lcab) {D(("circular!")) return self->error = MSPACK_ERR_ARGS;}
-+  }
-+
-+  /* warn about odd set IDs or indices */
-+  if (lcab->set_id != rcab->set_id) {
-+    sys->message(NULL, "WARNING; merged cabinets with differing Set IDs.");
-+  }
-+
-+  if (lcab->set_index > rcab->set_index) {
-+    sys->message(NULL, "WARNING; merged cabinets with odd order.");
-+  }
-+
-+  /* merging the last folder in lcab with the first folder in rcab */
-+  lfol = (struct mscabd_folder_p *) lcab->folders;
-+  rfol = (struct mscabd_folder_p *) rcab->folders;
-+  while (lfol->base.next) lfol = (struct mscabd_folder_p *) lfol->base.next;
-+
-+  /* do we need to merge folders? */
-+  if (!lfol->merge_next && !rfol->merge_prev) {
-+    /* no, at least one of the folders is not for merging */
-+
-+    /* attach cabs */
-+    lcab->nextcab = rcab;
-+    rcab->prevcab = lcab;
-+
-+    /* attach folders */
-+    lfol->base.next = (struct mscabd_folder *) rfol;
-+
-+    /* attach files */
-+    fi = lcab->files;
-+    while (fi->next) fi = fi->next;
-+    fi->next = rcab->files;
-+  }
-+  else {
-+    /* folder merge required - do the files match? */
-+    if (! cabd_can_merge_folders(sys, lfol, rfol)) {
-+      return self->error = MSPACK_ERR_DATAFORMAT;
-+    }
-+
-+    /* allocate a new folder data structure */
-+    if (!(data = (struct mscabd_folder_data *) sys->alloc(sys, sizeof(struct mscabd_folder_data)))) {
-+      return self->error = MSPACK_ERR_NOMEMORY;
-+    }
-+
-+    /* attach cabs */
-+    lcab->nextcab = rcab;
-+    rcab->prevcab = lcab;
-+
-+    /* append rfol's data to lfol */
-+    ndata = &lfol->data;
-+    while (ndata->next) ndata = ndata->next;
-+    ndata->next = data;
-+    *data = rfol->data;
-+    rfol->data.next = NULL;
-+
-+    /* lfol becomes rfol.
-+     * NOTE: special case, don't merge if rfol is merge prev and next,
-+     * rfol->merge_next is going to be deleted, so keep lfol's version
-+     * instead */
-+    lfol->base.num_blocks += rfol->base.num_blocks - 1;
-+    if ((rfol->merge_next == NULL) ||
-+	(rfol->merge_next->folder != (struct mscabd_folder *) rfol))
-+    {
-+      lfol->merge_next = rfol->merge_next;
-+    }
-+
-+    /* attach the rfol's folder (except the merge folder) */
-+    while (lfol->base.next) lfol = (struct mscabd_folder_p *) lfol->base.next;
-+    lfol->base.next = rfol->base.next;
-+
-+    /* free disused merge folder */
-+    sys->free(rfol);
-+
-+    /* attach rfol's files */
-+    fi = lcab->files;
-+    while (fi->next) fi = fi->next;
-+    fi->next = rcab->files;
-+
-+    /* delete all files from rfol's merge folder */
-+    lfi = NULL;
-+    for (fi = lcab->files; fi ; fi = rfi) {
-+      rfi = fi->next;
-+      /* if file's folder matches the merge folder, unlink and free it */
-+      if (fi->folder == (struct mscabd_folder *) rfol) {
-+	if (lfi) lfi->next = rfi; else lcab->files = rfi;
-+	sys->free(fi->filename);
-+	sys->free(fi);
-+      }
-+      else lfi = fi;
-+    }
-+  }
-+
-+  /* all done! fix files and folders pointers in all cabs so they all
-+   * point to the same list  */
-+  for (cab = lcab->prevcab; cab; cab = cab->prevcab) {
-+    cab->files   = lcab->files;
-+    cab->folders = lcab->folders;
-+  }
-+
-+  for (cab = lcab->nextcab; cab; cab = cab->nextcab) {
-+    cab->files   = lcab->files;
-+    cab->folders = lcab->folders;
-+  }
-+
-+  return self->error = MSPACK_ERR_OK;
-+}
-+
-+/* decides if two folders are OK to merge */
-+static int cabd_can_merge_folders(struct mspack_system *sys,
-+                                  struct mscabd_folder_p *lfol,
-+                                  struct mscabd_folder_p *rfol)
-+{
-+    struct mscabd_file *lfi, *rfi, *l, *r;
-+    int matching = 1;
-+
-+    /* check that both folders use the same compression method/settings */
-+    if (lfol->base.comp_type != rfol->base.comp_type) {
-+        D(("folder merge: compression type mismatch"))
-+        return 0;
-+    }
-+
-+    if (!(lfi = lfol->merge_next) || !(rfi = rfol->merge_prev)) {
-+        D(("folder merge: one cabinet has no files to merge"))
-+        return 0;
-+    }
-+
-+    /* for all files in lfol (which is the last folder in whichever cab and
-+     * only has files to merge), compare them to the files from rfol. They
-+     * should be identical in number and order. to verify this, check the
-+     * offset and length of each file. */
-+    for (l=lfi, r=rfi; l; l=l->next, r=r->next) {
-+	if (!r || (l->offset != r->offset) || (l->length != r->length)) {
-+	    matching = 0;
-+	    break;
-+	}
-+    }
-+
-+    if (matching) return 1;
-+
-+    /* if rfol does not begin with an identical copy of the files in lfol, make
-+     * make a judgement call; if at least ONE file from lfol is in rfol, allow
-+     * the merge with a warning about missing files. */
-+    matching = 0;
-+    for (l = lfi; l; l = l->next) {
-+	for (r = rfi; r; r = r->next) {
-+	    if (l->offset == r->offset && l->length == r->length) break;
-+	}
-+        if (r) matching = 1; else sys->message(NULL,
-+            "WARNING; merged file %s not listed in both cabinets", l->filename);
-+    }
-+    return matching;
-+}
-+
-+
-+/***************************************
-+ * CABD_EXTRACT
-+ ***************************************
-+ * extracts a file from a cabinet
-+ */
-+static int cabd_extract(struct mscab_decompressor *base,
-+                        struct mscabd_file *file, const char *filename)
-+{
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) base;
-+  struct mscabd_folder_p *fol;
-+  struct mspack_system *sys;
-+  struct mspack_file *fh;
-+
-+  if (!self) return MSPACK_ERR_ARGS;
-+  if (!file) return self->error = MSPACK_ERR_ARGS;
-+
-+  sys = self->system;
-+  fol = (struct mscabd_folder_p *) file->folder;
-+
-+  /* check if file can be extracted */
-+  if ((!fol) || (fol->merge_prev) ||
-+      (((file->offset + file->length) / CAB_BLOCKMAX) > fol->base.num_blocks))
-+  {
-+    sys->message(NULL, "ERROR; file \"%s\" cannot be extracted, "
-+		 "cabinet set is incomplete.", file->filename);
-+    return self->error = MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* allocate generic decompression state */
-+  if (!self->d) {
-+    self->d = (struct mscabd_decompress_state *) sys->alloc(sys, sizeof(struct mscabd_decompress_state));
-+    if (!self->d) return self->error = MSPACK_ERR_NOMEMORY;
-+    self->d->folder     = NULL;
-+    self->d->data       = NULL;
-+    self->d->sys        = *sys;
-+    self->d->sys.read   = &cabd_sys_read;
-+    self->d->sys.write  = &cabd_sys_write;
-+    self->d->state      = NULL;
-+    self->d->infh       = NULL;
-+    self->d->incab      = NULL;
-+  }
-+
-+  /* do we need to change folder or reset the current folder? */
-+  if ((self->d->folder != fol) || (self->d->offset > file->offset)) {
-+    /* do we need to open a new cab file? */
-+    if (!self->d->infh || (fol->data.cab != self->d->incab)) {
-+      /* close previous file handle if from a different cab */
-+      if (self->d->infh) sys->close(self->d->infh);
-+      self->d->incab = fol->data.cab;
-+      self->d->infh = sys->open(sys, fol->data.cab->base.filename,
-+				MSPACK_SYS_OPEN_READ);
-+      if (!self->d->infh) return self->error = MSPACK_ERR_OPEN;
-+    }
-+    /* seek to start of data blocks */
-+    if (sys->seek(self->d->infh, fol->data.offset, MSPACK_SYS_SEEK_START)) {
-+      return self->error = MSPACK_ERR_SEEK;
-+    }
-+
-+    /* set up decompressor */
-+    if (cabd_init_decomp(self, (unsigned int) fol->base.comp_type)) {
-+      return self->error;
-+    }
-+
-+    /* initialise new folder state */
-+    self->d->folder = fol;
-+    self->d->data   = &fol->data;
-+    self->d->offset = 0;
-+    self->d->block  = 0;
-+    self->d->i_ptr = self->d->i_end = &self->d->input[0];
-+
-+    /* read_error lasts for the lifetime of a decompressor */
-+    self->read_error = MSPACK_ERR_OK;
-+  }
-+
-+  /* open file for output */
-+  if (!(fh = sys->open(sys, filename, MSPACK_SYS_OPEN_WRITE))) {
-+    return self->error = MSPACK_ERR_OPEN;
-+  }
-+
-+  self->error = MSPACK_ERR_OK;
-+
-+  /* if file has more than 0 bytes */
-+  if (file->length) {
-+    off_t bytes;
-+    int error;
-+    /* get to correct offset.
-+     * - use NULL fh to say 'no writing' to cabd_sys_write()
-+     * - if cabd_sys_read() has an error, it will set self->read_error
-+     *   and pass back MSPACK_ERR_READ
-+     */
-+    self->d->outfh = NULL;
-+    if ((bytes = file->offset - self->d->offset)) {
-+      error = self->d->decompress(self->d->state, bytes);
-+      self->error = (error == MSPACK_ERR_READ) ? self->read_error : error;
-+    }
-+
-+    /* if getting to the correct offset was error free, unpack file */
-+    if (!self->error) {
-+      self->d->outfh = fh;
-+      error = self->d->decompress(self->d->state, (off_t) file->length);
-+      self->error = (error == MSPACK_ERR_READ) ? self->read_error : error;
-+    }
-+  }
-+
-+  /* close output file */
-+  sys->close(fh);
-+  self->d->outfh = NULL;
-+
-+  return self->error;
-+}
-+
-+/***************************************
-+ * CABD_INIT_DECOMP, CABD_FREE_DECOMP
-+ ***************************************
-+ * cabd_init_decomp initialises decompression state, according to which
-+ * decompression method was used. relies on self->d->folder being the same
-+ * as when initialised.
-+ *
-+ * cabd_free_decomp frees decompression state, according to which method
-+ * was used.
-+ */
-+static int cabd_init_decomp(struct mscab_decompressor_p *self, unsigned int ct)
-+{
-+  struct mspack_file *fh = (struct mspack_file *) self;
-+
-+  assert(self && self->d);
-+
-+  /* free any existing decompressor */
-+  cabd_free_decomp(self);
-+
-+  self->d->comp_type = ct;
-+
-+  switch (ct & cffoldCOMPTYPE_MASK) {
-+  case cffoldCOMPTYPE_NONE:
-+    self->d->decompress = (int (*)(void *, off_t)) &noned_decompress;
-+    self->d->state = noned_init(&self->d->sys, fh, fh,
-+				self->param[MSCABD_PARAM_DECOMPBUF]);
-+    break;
-+  case cffoldCOMPTYPE_MSZIP:
-+    self->d->decompress = (int (*)(void *, off_t)) &mszipd_decompress;
-+    self->d->state = mszipd_init(&self->d->sys, fh, fh,
-+				 self->param[MSCABD_PARAM_DECOMPBUF],
-+				 self->param[MSCABD_PARAM_FIXMSZIP]);
-+    break;
-+  case cffoldCOMPTYPE_QUANTUM:
-+    self->d->decompress = (int (*)(void *, off_t)) &qtmd_decompress;
-+    self->d->state = qtmd_init(&self->d->sys, fh, fh, (int) (ct >> 8) & 0x1f,
-+			       self->param[MSCABD_PARAM_DECOMPBUF]);
-+    break;
-+  case cffoldCOMPTYPE_LZX:
-+    self->d->decompress = (int (*)(void *, off_t)) &lzxd_decompress;
-+    self->d->state = lzxd_init(&self->d->sys, fh, fh, (int) (ct >> 8) & 0x1f, 0,
-+			       self->param[MSCABD_PARAM_DECOMPBUF], (off_t)0,0);
-+    break;
-+  default:
-+    return self->error = MSPACK_ERR_DATAFORMAT;
-+  }
-+  return self->error = (self->d->state) ? MSPACK_ERR_OK : MSPACK_ERR_NOMEMORY;
-+}
-+
-+static void cabd_free_decomp(struct mscab_decompressor_p *self) {
-+  if (!self || !self->d || !self->d->folder || !self->d->state) return;
-+
-+  switch (self->d->comp_type & cffoldCOMPTYPE_MASK) {
-+  case cffoldCOMPTYPE_NONE:    noned_free((struct noned_state *) self->d->state);   break;
-+  case cffoldCOMPTYPE_MSZIP:   mszipd_free((struct mszipd_stream *) self->d->state);  break;
-+  case cffoldCOMPTYPE_QUANTUM: qtmd_free((struct qtmd_stream *) self->d->state);    break;
-+  case cffoldCOMPTYPE_LZX:     lzxd_free((struct lzxd_stream *) self->d->state);    break;
-+  }
-+  self->d->decompress = NULL;
-+  self->d->state      = NULL;
-+}
-+
-+/***************************************
-+ * CABD_SYS_READ, CABD_SYS_WRITE
-+ ***************************************
-+ * cabd_sys_read is the internal reader function which the decompressors
-+ * use. will read data blocks (and merge split blocks) from the cabinet
-+ * and serve the read bytes to the decompressors
-+ *
-+ * cabd_sys_write is the internal writer function which the decompressors
-+ * use. it either writes data to disk (self->d->outfh) with the real
-+ * sys->write() function, or does nothing with the data when
-+ * self->d->outfh == NULL. advances self->d->offset
-+ */
-+static int cabd_sys_read(struct mspack_file *file, void *buffer, int bytes) {
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) file;
-+  unsigned char *buf = (unsigned char *) buffer;
-+  struct mspack_system *sys = self->system;
-+  int avail, todo, outlen, ignore_cksum;
-+
-+  ignore_cksum = self->param[MSCABD_PARAM_FIXMSZIP] &&
-+    ((self->d->comp_type & cffoldCOMPTYPE_MASK) == cffoldCOMPTYPE_MSZIP);
-+
-+  todo = bytes;
-+  while (todo > 0) {
-+    avail = self->d->i_end - self->d->i_ptr;
-+
-+    /* if out of input data, read a new block */
-+    if (avail) {
-+      /* copy as many input bytes available as possible */
-+      if (avail > todo) avail = todo;
-+      sys->copy(self->d->i_ptr, buf, (size_t) avail);
-+      self->d->i_ptr += avail;
-+      buf  += avail;
-+      todo -= avail;
-+    }
-+    else {
-+      /* out of data, read a new block */
-+
-+      /* check if we're out of input blocks, advance block counter */
-+      if (self->d->block++ >= self->d->folder->base.num_blocks) {
-+	self->read_error = MSPACK_ERR_DATAFORMAT;
-+	break;
-+      }
-+
-+      /* read a block */
-+      self->read_error = cabd_sys_read_block(sys, self->d, &outlen, ignore_cksum);
-+      if (self->read_error) return -1;
-+
-+      /* special Quantum hack -- trailer byte to allow the decompressor
-+       * to realign itself. CAB Quantum blocks, unlike LZX blocks, can have
-+       * anything from 0 to 4 trailing null bytes. */
-+      if ((self->d->comp_type & cffoldCOMPTYPE_MASK)==cffoldCOMPTYPE_QUANTUM) {
-+	*self->d->i_end++ = 0xFF;
-+      }
-+
-+      /* is this the last block? */
-+      if (self->d->block >= self->d->folder->base.num_blocks) {
-+	/* last block */
-+	if ((self->d->comp_type & cffoldCOMPTYPE_MASK) == cffoldCOMPTYPE_LZX) {
-+	  /* special LZX hack -- on the last block, inform LZX of the
-+	   * size of the output data stream. */
-+	  lzxd_set_output_length((struct lzxd_stream *) self->d->state, (off_t)
-+				 ((self->d->block-1) * CAB_BLOCKMAX + outlen));
-+	}
-+      }
-+      else {
-+	/* not the last block */
-+	if (outlen != CAB_BLOCKMAX) {
-+	  self->system->message(self->d->infh,
-+				"WARNING; non-maximal data block");
-+	}
-+      }
-+    } /* if (avail) */
-+  } /* while (todo > 0) */
-+  return bytes - todo;
-+}
-+
-+static int cabd_sys_write(struct mspack_file *file, void *buffer, int bytes) {
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) file;
-+  self->d->offset += bytes;
-+  if (self->d->outfh) {
-+    return self->system->write(self->d->outfh, buffer, bytes);
-+  }
-+  return bytes;
-+}
-+
-+/***************************************
-+ * CABD_SYS_READ_BLOCK
-+ ***************************************
-+ * reads a whole data block from a cab file. the block may span more than
-+ * one cab file, if it does then the fragments will be reassembled
-+ */
-+static int cabd_sys_read_block(struct mspack_system *sys,
-+			       struct mscabd_decompress_state *d,
-+			       int *out, int ignore_cksum)
-+{
-+  unsigned char hdr[cfdata_SIZEOF];
-+  unsigned int cksum;
-+  int len;
-+
-+  /* reset the input block pointer and end of block pointer */
-+  d->i_ptr = d->i_end = &d->input[0];
-+
-+  do {
-+    /* read the block header */
-+    if (sys->read(d->infh, &hdr[0], cfdata_SIZEOF) != cfdata_SIZEOF) {
-+      return MSPACK_ERR_READ;
-+    }
-+
-+    /* skip any reserved block headers */
-+    if (d->data->cab->block_resv &&
-+	sys->seek(d->infh, (off_t) d->data->cab->block_resv,
-+		  MSPACK_SYS_SEEK_CUR))
-+    {
-+      return MSPACK_ERR_SEEK;
-+    }
-+
-+    /* blocks must not be over CAB_INPUTMAX in size */
-+    len = EndGetI16(&hdr[cfdata_CompressedSize]);
-+    if (((d->i_end - d->i_ptr) + len) > CAB_INPUTMAX) {
-+      D(("block size > CAB_INPUTMAX (%ld + %d)", d->i_end - d->i_ptr, len))
-+      return MSPACK_ERR_DATAFORMAT;
-+    }
-+
-+     /* blocks must not expand to more than CAB_BLOCKMAX */
-+    if (EndGetI16(&hdr[cfdata_UncompressedSize]) > CAB_BLOCKMAX) {
-+      D(("block size > CAB_BLOCKMAX"))
-+      return MSPACK_ERR_DATAFORMAT;
-+    }
-+
-+    /* read the block data */
-+    if (sys->read(d->infh, d->i_end, len) != len) {
-+      return MSPACK_ERR_READ;
-+    }
-+
-+    /* perform checksum test on the block (if one is stored) */
-+    if ((cksum = EndGetI32(&hdr[cfdata_CheckSum]))) {
-+      unsigned int sum2 = cabd_checksum(d->i_end, (unsigned int) len, 0);
-+      if (cabd_checksum(&hdr[4], 4, sum2) != cksum) {
-+	if (!ignore_cksum) return MSPACK_ERR_CHECKSUM;
-+	sys->message(d->infh, "WARNING; bad block checksum found");
-+      }
-+    }
-+
-+    /* advance end of block pointer to include newly read data */
-+    d->i_end += len;
-+
-+    /* uncompressed size == 0 means this block was part of a split block
-+     * and it continues as the first block of the next cabinet in the set.
-+     * otherwise, this is the last part of the block, and no more block
-+     * reading needs to be done.
-+     */
-+    /* EXIT POINT OF LOOP -- uncompressed size != 0 */
-+    if ((*out = EndGetI16(&hdr[cfdata_UncompressedSize]))) {
-+      return MSPACK_ERR_OK;
-+    }
-+
-+    /* otherwise, advance to next cabinet */
-+
-+    /* close current file handle */
-+    sys->close(d->infh);
-+    d->infh = NULL;
-+
-+    /* advance to next member in the cabinet set */
-+    if (!(d->data = d->data->next)) {
-+      D(("ran out of splits in cabinet set"))
-+      return MSPACK_ERR_DATAFORMAT;
-+    }
-+
-+    /* open next cab file */
-+    d->incab = d->data->cab;
-+    if (!(d->infh = sys->open(sys, d->incab->base.filename,
-+			      MSPACK_SYS_OPEN_READ)))
-+    {
-+      return MSPACK_ERR_OPEN;
-+    }
-+
-+    /* seek to start of data blocks */
-+    if (sys->seek(d->infh, d->data->offset, MSPACK_SYS_SEEK_START)) {
-+      return MSPACK_ERR_SEEK;
-+    }
-+  } while (1);
-+
-+  /* not reached */
-+  return MSPACK_ERR_OK;
-+}
-+
-+static unsigned int cabd_checksum(unsigned char *data, unsigned int bytes,
-+				  unsigned int cksum)
-+{
-+  unsigned int len, ul = 0;
-+
-+  for (len = bytes >> 2; len--; data += 4) {
-+    cksum ^= ((data[0]) | (data[1]<<8) | (data[2]<<16) | (data[3]<<24));
-+  }
-+
-+  switch (bytes & 3) {
-+  case 3: ul |= *data++ << 16;
-+  case 2: ul |= *data++ <<  8;
-+  case 1: ul |= *data;
-+  }
-+  cksum ^= ul;
-+
-+  return cksum;
-+}
-+
-+/***************************************
-+ * NONED_INIT, NONED_DECOMPRESS, NONED_FREE
-+ ***************************************
-+ * the "not compressed" method decompressor
-+ */
-+struct noned_state {
-+  struct mspack_system *sys;
-+  struct mspack_file *i;
-+  struct mspack_file *o;
-+  unsigned char *buf;
-+  int bufsize;
-+};
-+
-+static struct noned_state *noned_init(struct mspack_system *sys,
-+				      struct mspack_file *in,
-+				      struct mspack_file *out,
-+				      int bufsize)
-+{
-+  struct noned_state *state = (struct noned_state *) sys->alloc(sys, sizeof(struct noned_state));
-+  unsigned char *buf = (unsigned char *) sys->alloc(sys, (size_t) bufsize);
-+  if (state && buf) {
-+    state->sys     = sys;
-+    state->i       = in;
-+    state->o       = out;
-+    state->buf     = buf;
-+    state->bufsize = bufsize;
-+  }
-+  else {
-+    sys->free(buf);
-+    sys->free(state);
-+    state = NULL;
-+  }
-+  return state;
-+}
-+
-+static int noned_decompress(struct noned_state *s, off_t bytes) {
-+  int run;
-+  while (bytes > 0) {
-+    run = (bytes > s->bufsize) ? s->bufsize : (int) bytes;
-+    if (s->sys->read(s->i, &s->buf[0], run) != run) return MSPACK_ERR_READ;
-+    if (s->sys->write(s->o, &s->buf[0], run) != run) return MSPACK_ERR_WRITE;
-+    bytes -= run;
-+  }
-+  return MSPACK_ERR_OK;
-+}
-+
-+static void noned_free(struct noned_state *state) {
-+  struct mspack_system *sys;
-+  if (state) {
-+    sys = state->sys;
-+    sys->free(state->buf);
-+    sys->free(state);
-+  }
-+}
-+
-+
-+/***************************************
-+ * CABD_PARAM
-+ ***************************************
-+ * allows a parameter to be set
-+ */
-+static int cabd_param(struct mscab_decompressor *base, int param, int value) {
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) base;
-+  if (!self) return MSPACK_ERR_ARGS;
-+
-+  switch (param) {
-+  case MSCABD_PARAM_SEARCHBUF:
-+    if (value < 4) return MSPACK_ERR_ARGS;
-+    self->param[MSCABD_PARAM_SEARCHBUF] = value;
-+    break;
-+  case MSCABD_PARAM_FIXMSZIP:
-+    self->param[MSCABD_PARAM_FIXMSZIP] = value;
-+    break;
-+  case MSCABD_PARAM_DECOMPBUF:
-+    if (value < 4) return MSPACK_ERR_ARGS;
-+    self->param[MSCABD_PARAM_DECOMPBUF] = value;
-+    break;
-+  default:
-+    return MSPACK_ERR_ARGS;
-+  }
-+  return MSPACK_ERR_OK;
-+}
-+
-+/***************************************
-+ * CABD_ERROR
-+ ***************************************
-+ * returns the last error that occurred
-+ */
-+static int cabd_error(struct mscab_decompressor *base) {
-+  struct mscab_decompressor_p *self = (struct mscab_decompressor_p *) base;
-+  return (self) ? self->error : MSPACK_ERR_ARGS;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/chm.h b/libclamav/libmspack-0.4alpha/mspack/chm.h
-new file mode 100644
-index 000000000000..a85d2e173157
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/chm.h
-@@ -0,0 +1,122 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_CHM_H
-+#define MSPACK_CHM_H 1
-+
-+#include <lzx.h>
-+
-+/* generic CHM definitions */
-+
-+#define chmhead_Signature   (0x0000)
-+#define chmhead_Version     (0x0004)
-+#define chmhead_HeaderLen   (0x0008)
-+#define chmhead_Unknown1    (0x000C)
-+#define chmhead_Timestamp   (0x0010)
-+#define chmhead_LanguageID  (0x0014)
-+#define chmhead_GUID1       (0x0018)
-+#define chmhead_GUID2       (0x0028)
-+#define chmhead_SIZEOF      (0x0038)
-+
-+#define chmhst_OffsetHS0    (0x0000)
-+#define chmhst_LengthHS0    (0x0008)
-+#define chmhst_OffsetHS1    (0x0010)
-+#define chmhst_LengthHS1    (0x0018)
-+#define chmhst_SIZEOF       (0x0020)
-+#define chmhst3_OffsetCS0   (0x0020)
-+#define chmhst3_SIZEOF      (0x0028)
-+
-+#define chmhs0_Unknown1     (0x0000)
-+#define chmhs0_Unknown2     (0x0004)
-+#define chmhs0_FileLen      (0x0008)
-+#define chmhs0_Unknown3     (0x0010)
-+#define chmhs0_Unknown4     (0x0014)
-+#define chmhs0_SIZEOF       (0x0018)
-+
-+#define chmhs1_Signature    (0x0000)
-+#define chmhs1_Version      (0x0004)
-+#define chmhs1_HeaderLen    (0x0008)
-+#define chmhs1_Unknown1     (0x000C)
-+#define chmhs1_ChunkSize    (0x0010)
-+#define chmhs1_Density      (0x0014)
-+#define chmhs1_Depth        (0x0018)
-+#define chmhs1_IndexRoot    (0x001C)
-+#define chmhs1_FirstPMGL    (0x0020)
-+#define chmhs1_LastPMGL     (0x0024)
-+#define chmhs1_Unknown2     (0x0028)
-+#define chmhs1_NumChunks    (0x002C)
-+#define chmhs1_LanguageID   (0x0030)
-+#define chmhs1_GUID         (0x0034)
-+#define chmhs1_Unknown3     (0x0044)
-+#define chmhs1_Unknown4     (0x0048)
-+#define chmhs1_Unknown5     (0x004C)
-+#define chmhs1_Unknown6     (0x0050)
-+#define chmhs1_SIZEOF       (0x0054)
-+
-+#define pmgl_Signature      (0x0000)
-+#define pmgl_QuickRefSize   (0x0004)
-+#define pmgl_Unknown1       (0x0008)
-+#define pmgl_PrevChunk      (0x000C)
-+#define pmgl_NextChunk      (0x0010)
-+#define pmgl_Entries        (0x0014)
-+#define pmgl_headerSIZEOF   (0x0014)
-+
-+#define pmgi_Signature      (0x0000)
-+#define pmgi_QuickRefSize   (0x0004)
-+#define pmgi_Entries        (0x0008)
-+#define pmgi_headerSIZEOF   (0x000C)
-+
-+#define lzxcd_Length        (0x0000)
-+#define lzxcd_Signature     (0x0004)
-+#define lzxcd_Version       (0x0008)
-+#define lzxcd_ResetInterval (0x000C)
-+#define lzxcd_WindowSize    (0x0010)
-+#define lzxcd_CacheSize     (0x0014)
-+#define lzxcd_Unknown1      (0x0018)
-+#define lzxcd_SIZEOF        (0x001C)
-+
-+#define lzxrt_Unknown1      (0x0000)
-+#define lzxrt_NumEntries    (0x0004)
-+#define lzxrt_EntrySize     (0x0008)
-+#define lzxrt_TableOffset   (0x000C)
-+#define lzxrt_UncompLen     (0x0010)
-+#define lzxrt_CompLen       (0x0018)
-+#define lzxrt_FrameLen      (0x0020)
-+#define lzxrt_Entries       (0x0028)
-+#define lzxrt_headerSIZEOF  (0x0028)
-+
-+/* CHM compression definitions */
-+
-+struct mschm_compressor_p {
-+  struct mschm_compressor base;
-+  struct mspack_system *system;
-+  char *temp_file;
-+  int use_temp_file;
-+  int error;
-+};
-+
-+/* CHM decompression definitions */
-+struct mschmd_decompress_state {
-+  struct mschmd_header *chm;         /* CHM file being decompressed          */
-+  off_t offset;                      /* uncompressed offset within folder    */
-+  off_t inoffset;                    /* offset in input file                 */
-+  struct lzxd_stream *state;         /* LZX decompressor state               */
-+  struct mspack_system sys;          /* special I/O code for decompressor    */
-+  struct mspack_file *infh;          /* input file handle                    */
-+  struct mspack_file *outfh;         /* output file handle                   */
-+};
-+
-+struct mschm_decompressor_p {
-+  struct mschm_decompressor base;
-+  struct mspack_system *system;
-+  struct mschmd_decompress_state *d;
-+  int error;
-+};
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/chmc.c b/libclamav/libmspack-0.4alpha/mspack/chmc.c
-new file mode 100644
-index 000000000000..72f6c5b389e4
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/chmc.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* CHM compression implementation */
-+
-+#include <system.h>
-+#include <chm.h>
-+
-+struct mschm_compressor *
-+  mspack_create_chm_compressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_chm_compressor(struct mschm_compressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/chmd.c b/libclamav/libmspack-0.4alpha/mspack/chmd.c
-new file mode 100644
-index 000000000000..19dc47b56ec0
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/chmd.c
-@@ -0,0 +1,1392 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2011 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* CHM decompression implementation */
-+
-+#include <system.h>
-+#include <chm.h>
-+
-+/* prototypes */
-+static struct mschmd_header * chmd_open(
-+  struct mschm_decompressor *base, const char *filename);
-+static struct mschmd_header * chmd_fast_open(
-+  struct mschm_decompressor *base, const char *filename);
-+static struct mschmd_header *chmd_real_open(
-+  struct mschm_decompressor *base, const char *filename, int entire);
-+static void chmd_close(
-+  struct mschm_decompressor *base, struct mschmd_header *chm);
-+static int chmd_read_headers(
-+  struct mspack_system *sys, struct mspack_file *fh,
-+  struct mschmd_header *chm, int entire);
-+static int chmd_fast_find(
-+  struct mschm_decompressor *base, struct mschmd_header *chm,
-+  const char *filename, struct mschmd_file *f_ptr, int f_size);
-+static unsigned char *read_chunk(
-+  struct mschm_decompressor_p *self, struct mschmd_header *chm,
-+  struct mspack_file *fh, unsigned int chunk);
-+static int search_chunk(
-+  struct mschmd_header *chm, const unsigned char *chunk, const char *filename,
-+  const unsigned char **result, const unsigned char **result_end);
-+static inline int compare(
-+  const char *s1, const char *s2, int l1, int l2);
-+static int chmd_extract(
-+  struct mschm_decompressor *base, struct mschmd_file *file,
-+  const char *filename);
-+static int chmd_sys_write(
-+  struct mspack_file *file, void *buffer, int bytes);
-+static int chmd_init_decomp(
-+  struct mschm_decompressor_p *self, struct mschmd_file *file);
-+static int read_reset_table(
-+  struct mschm_decompressor_p *self, struct mschmd_sec_mscompressed *sec,
-+  int entry, off_t *length_ptr, off_t *offset_ptr);
-+static int read_spaninfo(
-+  struct mschm_decompressor_p *self, struct mschmd_sec_mscompressed *sec,
-+  off_t *length_ptr);
-+static int find_sys_file(
-+  struct mschm_decompressor_p *self, struct mschmd_sec_mscompressed *sec,
-+  struct mschmd_file **f_ptr, const char *name);
-+static unsigned char *read_sys_file(
-+  struct mschm_decompressor_p *self, struct mschmd_file *file);
-+static int chmd_error(
-+  struct mschm_decompressor *base);
-+static int read_off64(
-+  off_t *var, unsigned char *mem, struct mspack_system *sys,
-+  struct mspack_file *fh);
-+
-+/* filenames of the system files used for decompression.
-+ * Content and ControlData are essential.
-+ * ResetTable is preferred, but SpanInfo can be used if not available
-+ */
-+static const char *content_name  = "::DataSpace/Storage/MSCompressed/Content";
-+static const char *control_name  = "::DataSpace/Storage/MSCompressed/ControlData";
-+static const char *spaninfo_name = "::DataSpace/Storage/MSCompressed/SpanInfo";
-+static const char *rtable_name   = "::DataSpace/Storage/MSCompressed/Transform/"
-+  "{7FC28940-9D31-11D0-9B27-00A0C91E9C7C}/InstanceData/ResetTable";
-+
-+/***************************************
-+ * MSPACK_CREATE_CHM_DECOMPRESSOR
-+ ***************************************
-+ * constructor
-+ */
-+struct mschm_decompressor *
-+  mspack_create_chm_decompressor(struct mspack_system *sys)
-+{
-+  struct mschm_decompressor_p *self = NULL;
-+
-+  if (!sys) sys = mspack_default_system;
-+  if (!mspack_valid_system(sys)) return NULL;
-+
-+  if ((self = (struct mschm_decompressor_p *) sys->alloc(sys, sizeof(struct mschm_decompressor_p)))) {
-+    self->base.open       = &chmd_open;
-+    self->base.close      = &chmd_close;
-+    self->base.extract    = &chmd_extract;
-+    self->base.last_error = &chmd_error;
-+    self->base.fast_open  = &chmd_fast_open;
-+    self->base.fast_find  = &chmd_fast_find;
-+    self->system          = sys;
-+    self->error           = MSPACK_ERR_OK;
-+    self->d               = NULL;
-+  }
-+  return (struct mschm_decompressor *) self;
-+}
-+
-+/***************************************
-+ * MSPACK_DESTROY_CAB_DECOMPRESSOR
-+ ***************************************
-+ * destructor
-+ */
-+void mspack_destroy_chm_decompressor(struct mschm_decompressor *base) {
-+  struct mschm_decompressor_p *self = (struct mschm_decompressor_p *) base;
-+  if (self) {
-+    struct mspack_system *sys = self->system;
-+    if (self->d) {
-+      if (self->d->infh)  sys->close(self->d->infh);
-+      if (self->d->state) lzxd_free(self->d->state);
-+      sys->free(self->d);
-+    }
-+    sys->free(self);
-+  }
-+}
-+
-+/***************************************
-+ * CHMD_OPEN
-+ ***************************************
-+ * opens a file and tries to read it as a CHM file.
-+ * Calls chmd_real_open() with entire=1.
-+ */
-+static struct mschmd_header *chmd_open(struct mschm_decompressor *base,
-+				       const char *filename)
-+{
-+  return chmd_real_open(base, filename, 1);
-+}
-+
-+/***************************************
-+ * CHMD_FAST_OPEN
-+ ***************************************
-+ * opens a file and tries to read it as a CHM file, but does not read
-+ * the file headers. Calls chmd_real_open() with entire=0
-+ */
-+static struct mschmd_header *chmd_fast_open(struct mschm_decompressor *base,
-+					    const char *filename)
-+{
-+  return chmd_real_open(base, filename, 0);
-+}
-+
-+/***************************************
-+ * CHMD_REAL_OPEN
-+ ***************************************
-+ * the real implementation of chmd_open() and chmd_fast_open(). It simply
-+ * passes the "entire" parameter to chmd_read_headers(), which will then
-+ * either read all headers, or a bare mininum.
-+ */
-+static struct mschmd_header *chmd_real_open(struct mschm_decompressor *base,
-+					    const char *filename, int entire)
-+{
-+  struct mschm_decompressor_p *self = (struct mschm_decompressor_p *) base;
-+  struct mschmd_header *chm = NULL;
-+  struct mspack_system *sys;
-+  struct mspack_file *fh;
-+  int error;
-+
-+  if (!base) return NULL;
-+  sys = self->system;
-+
-+  if ((fh = sys->open(sys, filename, MSPACK_SYS_OPEN_READ))) {
-+    if ((chm = (struct mschmd_header *) sys->alloc(sys, sizeof(struct mschmd_header)))) {
-+      chm->filename = filename;
-+      error = chmd_read_headers(sys, fh, chm, entire);
-+      if (error) {
-+	/* if the error is DATAFORMAT, and there are some results, return
-+	 * partial results with a warning, rather than nothing */
-+	if (error == MSPACK_ERR_DATAFORMAT && (chm->files || chm->sysfiles)) {
-+	  sys->message(fh, "WARNING; contents are corrupt");
-+	  error = MSPACK_ERR_OK;
-+	}
-+	else {
-+	  chmd_close(base, chm);
-+	  chm = NULL;
-+	}
-+      }
-+      self->error = error;
-+    }
-+    else {
-+      self->error = MSPACK_ERR_NOMEMORY;
-+    }
-+    sys->close(fh);
-+  }
-+  else {
-+    self->error = MSPACK_ERR_OPEN;
-+  }
-+  return chm;
-+}
-+
-+/***************************************
-+ * CHMD_CLOSE
-+ ***************************************
-+ * frees all memory associated with a given mschmd_header
-+ */
-+static void chmd_close(struct mschm_decompressor *base,
-+		       struct mschmd_header *chm)
-+{
-+  struct mschm_decompressor_p *self = (struct mschm_decompressor_p *) base;
-+  struct mschmd_file *fi, *nfi;
-+  struct mspack_system *sys;
-+  unsigned int i;
-+
-+  if (!base) return;
-+  sys = self->system;
-+
-+  self->error = MSPACK_ERR_OK;
-+
-+  /* free files */
-+  for (fi = chm->files; fi; fi = nfi) {
-+    nfi = fi->next;
-+    sys->free(fi);
-+  }
-+  for (fi = chm->sysfiles; fi; fi = nfi) {
-+    nfi = fi->next;
-+    sys->free(fi);
-+  }
-+
-+  /* if this CHM was being decompressed, free decompression state */
-+  if (self->d && (self->d->chm == chm)) {
-+    if (self->d->infh) sys->close(self->d->infh);
-+    if (self->d->state) lzxd_free(self->d->state);
-+    sys->free(self->d);
-+    self->d = NULL;
-+  }
-+
-+  /* if this CHM had a chunk cache, free it and contents */
-+  if (chm->chunk_cache) {
-+      for (i = 0; i < chm->num_chunks; i++) sys->free(chm->chunk_cache[i]);
-+      sys->free(chm->chunk_cache);
-+  }
-+
-+  sys->free(chm);
-+}
-+
-+/***************************************
-+ * CHMD_READ_HEADERS
-+ ***************************************
-+ * reads the basic CHM file headers. If the "entire" parameter is
-+ * non-zero, all file entries will also be read. fills out a pre-existing
-+ * mschmd_header structure, allocates memory for files as necessary
-+ */
-+
-+/* The GUIDs found in CHM headers */
-+static const unsigned char guids[32] = {
-+  /* {7C01FD10-7BAA-11D0-9E0C-00A0-C922-E6EC} */
-+  0x10, 0xFD, 0x01, 0x7C, 0xAA, 0x7B, 0xD0, 0x11,
-+  0x9E, 0x0C, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEC,
-+  /* {7C01FD11-7BAA-11D0-9E0C-00A0-C922-E6EC} */
-+  0x11, 0xFD, 0x01, 0x7C, 0xAA, 0x7B, 0xD0, 0x11,
-+  0x9E, 0x0C, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEC
-+};
-+
-+/* reads an encoded integer into a variable; 7 bits of data per byte,
-+ * the high bit is used to indicate that there is another byte */
-+#define READ_ENCINT(var) do {			\
-+    (var) = 0;					\
-+    do {					\
-+	if (p > end) goto chunk_end;		\
-+	(var) = ((var) << 7) | (*p & 0x7F);	\
-+    } while (*p++ & 0x80);			\
-+} while (0)
-+
-+static int chmd_read_headers(struct mspack_system *sys, struct mspack_file *fh,
-+			     struct mschmd_header *chm, int entire)
-+{
-+  unsigned int section, name_len, x, errors, num_chunks;
-+  unsigned char buf[0x54], *chunk = NULL, *name, *p, *end;
-+  struct mschmd_file *fi, *link = NULL;
-+  off_t offset, length;
-+  int num_entries, i;
-+
-+  /* initialise pointers */
-+  chm->files         = NULL;
-+  chm->sysfiles      = NULL;
-+  chm->chunk_cache   = NULL;
-+  chm->sec0.base.chm = chm;
-+  chm->sec0.base.id  = 0;
-+  chm->sec1.base.chm = chm;
-+  chm->sec1.base.id  = 1;
-+  chm->sec1.content  = NULL;
-+  chm->sec1.control  = NULL;
-+  chm->sec1.spaninfo = NULL;
-+  chm->sec1.rtable   = NULL;
-+
-+  /* read the first header */
-+  if (sys->read(fh, &buf[0], chmhead_SIZEOF) != chmhead_SIZEOF) {
-+    return MSPACK_ERR_READ;
-+  }
-+
-+  /* check ITSF signature */
-+  if (EndGetI32(&buf[chmhead_Signature]) != 0x46535449) {
-+    return MSPACK_ERR_SIGNATURE;
-+  }
-+
-+  /* check both header GUIDs */
-+  if (mspack_memcmp(&buf[chmhead_GUID1], &guids[0], 32L) != 0) {
-+    D(("incorrect GUIDs"))
-+    return MSPACK_ERR_SIGNATURE;
-+  }
-+
-+  chm->version   = EndGetI32(&buf[chmhead_Version]);
-+  chm->timestamp = EndGetM32(&buf[chmhead_Timestamp]);
-+  chm->language  = EndGetI32(&buf[chmhead_LanguageID]);
-+  if (chm->version > 3) {
-+    sys->message(fh, "WARNING; CHM version > 3");
-+  }
-+
-+  /* read the header section table */
-+  if (sys->read(fh, &buf[0], chmhst3_SIZEOF) != chmhst3_SIZEOF) {
-+    return MSPACK_ERR_READ;
-+  }
-+
-+  /* chmhst3_OffsetCS0 does not exist in version 1 or 2 CHM files.
-+   * The offset will be corrected later, once HS1 is read.
-+   */
-+  if (read_off64(&offset,           &buf[chmhst_OffsetHS0],  sys, fh) ||
-+      read_off64(&chm->dir_offset,  &buf[chmhst_OffsetHS1],  sys, fh) ||
-+      read_off64(&chm->sec0.offset, &buf[chmhst3_OffsetCS0], sys, fh))
-+  {
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* seek to header section 0 */
-+  if (sys->seek(fh, offset, MSPACK_SYS_SEEK_START)) {
-+    return MSPACK_ERR_SEEK;
-+  }
-+
-+  /* read header section 0 */
-+  if (sys->read(fh, &buf[0], chmhs0_SIZEOF) != chmhs0_SIZEOF) {
-+    return MSPACK_ERR_READ;
-+  }
-+  if (read_off64(&chm->length, &buf[chmhs0_FileLen], sys, fh)) {
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* seek to header section 1 */
-+  if (sys->seek(fh, chm->dir_offset, MSPACK_SYS_SEEK_START)) {
-+    return MSPACK_ERR_SEEK;
-+  }
-+
-+  /* read header section 1 */
-+  if (sys->read(fh, &buf[0], chmhs1_SIZEOF) != chmhs1_SIZEOF) {
-+    return MSPACK_ERR_READ;
-+  }
-+
-+  chm->dir_offset = sys->tell(fh);
-+  chm->chunk_size = EndGetI32(&buf[chmhs1_ChunkSize]);
-+  chm->density    = EndGetI32(&buf[chmhs1_Density]);
-+  chm->depth      = EndGetI32(&buf[chmhs1_Depth]);
-+  chm->index_root = EndGetI32(&buf[chmhs1_IndexRoot]);
-+  chm->num_chunks = EndGetI32(&buf[chmhs1_NumChunks]);
-+  chm->first_pmgl = EndGetI32(&buf[chmhs1_FirstPMGL]);
-+  chm->last_pmgl  = EndGetI32(&buf[chmhs1_LastPMGL]);
-+
-+  if (chm->version < 3) {
-+    /* versions before 3 don't have chmhst3_OffsetCS0 */
-+    chm->sec0.offset = chm->dir_offset + (chm->chunk_size * chm->num_chunks);
-+  }
-+
-+  /* check if content offset or file size is wrong */
-+  if (chm->sec0.offset > chm->length) {
-+    D(("content section begins after file has ended"))
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+  
-+  /* ensure there are chunks and that chunk size is
-+   * large enough for signature and num_entries */
-+  if (chm->chunk_size < (pmgl_Entries + 2)) {
-+    D(("chunk size not large enough"))
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+  if (chm->num_chunks == 0) {
-+    D(("no chunks"))
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* The chunk_cache data structure is not great; large values for num_chunks
-+   * or num_chunks*chunk_size can exhaust all memory. Until a better chunk
-+   * cache is implemented, put arbitrary limits on num_chunks and chunk size.
-+   */
-+  if (chm->num_chunks > 100000) {
-+    D(("more than 100,000 chunks"))
-+    return MSPACK_ERR_DATAFORMAT;
-+  }   
-+  if ((off_t)chm->chunk_size * (off_t)chm->num_chunks > chm->length) {
-+    D(("chunks larger than entire file"))
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* common sense checks on header section 1 fields */
-+  if ((chm->chunk_size & (chm->chunk_size - 1)) != 0) {
-+    sys->message(fh, "WARNING; chunk size is not a power of two");
-+  }
-+  if (chm->first_pmgl != 0) {
-+    sys->message(fh, "WARNING; first PMGL chunk is not zero");
-+  }
-+  if (chm->first_pmgl > chm->last_pmgl) {
-+    D(("first pmgl chunk is after last pmgl chunk"))
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+  if (chm->index_root != 0xFFFFFFFF && chm->index_root > chm->num_chunks) {
-+    D(("index_root outside valid range"))
-+    return MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* if we are doing a quick read, stop here! */
-+  if (!entire) {
-+    return MSPACK_ERR_OK;
-+  }
-+
-+  /* seek to the first PMGL chunk, and reduce the number of chunks to read */
-+  if ((x = chm->first_pmgl) != 0) {
-+    if (sys->seek(fh,(off_t) (x * chm->chunk_size), MSPACK_SYS_SEEK_CUR)) {
-+      return MSPACK_ERR_SEEK;
-+    }
-+  }
-+  num_chunks = chm->last_pmgl - x + 1;
-+
-+  if (!(chunk = (unsigned char *) sys->alloc(sys, (size_t)chm->chunk_size))) {
-+    return MSPACK_ERR_NOMEMORY;
-+  }
-+
-+  /* read and process all chunks from FirstPMGL to LastPMGL */
-+  errors = 0;
-+  while (num_chunks--) {
-+    /* read next chunk */
-+    if (sys->read(fh, chunk, (int)chm->chunk_size) != (int)chm->chunk_size) {
-+      sys->free(chunk);
-+      return MSPACK_ERR_READ;
-+    }
-+
-+    /* process only directory (PMGL) chunks */
-+    if (EndGetI32(&chunk[pmgl_Signature]) != 0x4C474D50) continue;
-+
-+    if (EndGetI32(&chunk[pmgl_QuickRefSize]) < 2) {
-+      sys->message(fh, "WARNING; PMGL quickref area is too small");
-+    }
-+    if (EndGetI32(&chunk[pmgl_QuickRefSize]) > 
-+	((int)chm->chunk_size - pmgl_Entries))
-+    {
-+      sys->message(fh, "WARNING; PMGL quickref area is too large");
-+    }
-+
-+    p = &chunk[pmgl_Entries];
-+    end = &chunk[chm->chunk_size - 2];
-+    num_entries = EndGetI16(end);
-+
-+    while (num_entries--) {
-+      READ_ENCINT(name_len); name = p; p += name_len;
-+      READ_ENCINT(section);
-+      READ_ENCINT(offset);
-+      READ_ENCINT(length);
-+
-+      /* empty files and directory names are stored as a file entry at
-+       * offset 0 with length 0. We want to keep empty files, but not
-+       * directory names, which end with a "/" */
-+      if ((offset == 0) && (length == 0)) {
-+	if ((name_len > 0) && (name[name_len-1] == '/')) continue;
-+      }
-+
-+      if (section > 1) {
-+	sys->message(fh, "invalid section number '%u'.", section);
-+	continue;
-+      }
-+
-+      if (!(fi = (struct mschmd_file *) sys->alloc(sys, sizeof(struct mschmd_file) + name_len + 1))) {
-+	sys->free(chunk);
-+	return MSPACK_ERR_NOMEMORY;
-+      }
-+
-+      fi->next     = NULL;
-+      fi->filename = (char *) &fi[1];
-+      fi->section  = ((section == 0) ? (struct mschmd_section *) (&chm->sec0)
-+		                     : (struct mschmd_section *) (&chm->sec1));
-+      fi->offset   = offset;
-+      fi->length   = length;
-+      sys->copy(name, fi->filename, (size_t) name_len);
-+      fi->filename[name_len] = '\0';
-+
-+      if (name[0] == ':' && name[1] == ':') {
-+	/* system file */
-+	if (mspack_memcmp(&name[2], &content_name[2], 31L) == 0) {
-+	  if (mspack_memcmp(&name[33], &content_name[33], 8L) == 0) {
-+	    chm->sec1.content = fi;
-+	  }
-+	  else if (mspack_memcmp(&name[33], &control_name[33], 11L) == 0) {
-+	    chm->sec1.control = fi;
-+	  }
-+	  else if (mspack_memcmp(&name[33], &spaninfo_name[33], 8L) == 0) {
-+	    chm->sec1.spaninfo = fi;
-+	  }
-+	  else if (mspack_memcmp(&name[33], &rtable_name[33], 72L) == 0) {
-+	    chm->sec1.rtable = fi;
-+	  }
-+	}
-+	fi->next = chm->sysfiles;
-+	chm->sysfiles = fi;
-+      }
-+      else {
-+	/* normal file */
-+	if (link) link->next = fi; else chm->files = fi;
-+	link = fi;
-+      }
-+    }
-+
-+    /* this is reached either when num_entries runs out, or if
-+     * reading data from the chunk reached a premature end of chunk */
-+  chunk_end:
-+    if (num_entries >= 0) {
-+      D(("chunk ended before all entries could be read"))
-+      errors++;
-+    }
-+
-+  }
-+  sys->free(chunk);
-+  return (errors > 0) ? MSPACK_ERR_DATAFORMAT : MSPACK_ERR_OK;
-+}
-+
-+/***************************************
-+ * CHMD_FAST_FIND
-+ ***************************************
-+ * uses PMGI index chunks and quickref data to quickly locate a file
-+ * directly from the on-disk index.
-+ *
-+ * TODO: protect against infinite loops in chunks (where pgml_NextChunk
-+ * or a PGMI index entry point to an already visited chunk)
-+ */
-+static int chmd_fast_find(struct mschm_decompressor *base,
-+			  struct mschmd_header *chm, const char *filename,
-+			  struct mschmd_file *f_ptr, int f_size)
-+{
-+    struct mschm_decompressor_p *self = (struct mschm_decompressor_p *) base;
-+    struct mspack_system *sys;
-+    struct mspack_file *fh;
-+    const unsigned char *chunk, *p, *end;
-+    int err = MSPACK_ERR_OK, result = -1;
-+    unsigned int n, sec;
-+
-+    if (!self || !chm || !f_ptr || (f_size != sizeof(struct mschmd_file))) {
-+	return MSPACK_ERR_ARGS;
-+    }
-+    sys = self->system;
-+
-+    /* clear the results structure */
-+    memset(f_ptr, 0, f_size);
-+
-+    if (!(fh = sys->open(sys, chm->filename, MSPACK_SYS_OPEN_READ))) {
-+	return MSPACK_ERR_OPEN;
-+    }
-+
-+    /* go through PMGI chunk hierarchy to reach PMGL chunk */
-+    if (chm->index_root < chm->num_chunks) {
-+	n = chm->index_root;
-+	for (;;) {
-+	    if (!(chunk = read_chunk(self, chm, fh, n))) {
-+		sys->close(fh);
-+		return self->error;
-+	    }
-+
-+	    /* search PMGI/PMGL chunk. exit early if no entry found */
-+	    if ((result = search_chunk(chm, chunk, filename, &p, &end)) <= 0) {
-+		break;
-+	    }
-+
-+	    /* found result. loop around for next chunk if this is PMGI */
-+	    if (chunk[3] == 0x4C) break; else READ_ENCINT(n);
-+	}
-+    }
-+    else {
-+	/* PMGL chunks only, search from first_pmgl to last_pmgl */
-+	for (n = chm->first_pmgl; n <= chm->last_pmgl;
-+	     n = EndGetI32(&chunk[pmgl_NextChunk]))
-+	{
-+	    if (!(chunk = read_chunk(self, chm, fh, n))) {
-+		err = self->error;
-+		break;
-+	    }
-+
-+	    /* search PMGL chunk. exit if file found */
-+	    if ((result = search_chunk(chm, chunk, filename, &p, &end)) > 0) {
-+		break;
-+	    }
-+
-+            /* stop simple infinite loops: can't visit the same chunk twice */
-+            if ((int)n == EndGetI32(&chunk[pmgl_NextChunk])) {
-+                break;
-+            }
-+	}
-+    }
-+
-+    /* if we found a file, read it */
-+    if (result > 0) {
-+	READ_ENCINT(sec);
-+	f_ptr->section  = (sec == 0) ? (struct mschmd_section *) &chm->sec0
-+	                             : (struct mschmd_section *) &chm->sec1;
-+	READ_ENCINT(f_ptr->offset);
-+	READ_ENCINT(f_ptr->length);
-+    }
-+    else if (result < 0) {
-+	err = MSPACK_ERR_DATAFORMAT;
-+    }
-+
-+    sys->close(fh);
-+    return self->error = err;
-+
-+ chunk_end:
-+    D(("read beyond end of chunk entries"))
-+    sys->close(fh);
-+    return self->error = MSPACK_ERR_DATAFORMAT;
-+}
-+
-+/* reads the given chunk into memory, storing it in a chunk cache
-+ * so it doesn't need to be read from disk more than once
-+ */
-+static unsigned char *read_chunk(struct mschm_decompressor_p *self,
-+				 struct mschmd_header *chm,
-+				 struct mspack_file *fh,
-+				 unsigned int chunk_num)
-+{
-+    struct mspack_system *sys = self->system;
-+    unsigned char *buf;
-+
-+    /* check arguments - most are already checked by chmd_fast_find */
-+    if (chunk_num > chm->num_chunks) return NULL;
-+    
-+    /* ensure chunk cache is available */
-+    if (!chm->chunk_cache) {
-+	size_t size = sizeof(unsigned char *) * chm->num_chunks;
-+	if (!(chm->chunk_cache = (unsigned char **) sys->alloc(sys, size))) {
-+	    self->error = MSPACK_ERR_NOMEMORY;
-+	    return NULL;
-+	}
-+	memset(chm->chunk_cache, 0, size);
-+    }
-+
-+    /* try to answer out of chunk cache */
-+    if (chm->chunk_cache[chunk_num]) return chm->chunk_cache[chunk_num];
-+
-+    /* need to read chunk - allocate memory for it */
-+    if (!(buf = (unsigned char *) sys->alloc(sys, chm->chunk_size))) {
-+	self->error = MSPACK_ERR_NOMEMORY;
-+	return NULL;
-+    }
-+
-+    /* seek to block and read it */
-+    if (sys->seek(fh, (off_t) (chm->dir_offset + (chunk_num * chm->chunk_size)),
-+		      MSPACK_SYS_SEEK_START))
-+    {
-+	self->error = MSPACK_ERR_SEEK;
-+	sys->free(buf);
-+	return NULL;
-+    }
-+    if (sys->read(fh, buf, (int)chm->chunk_size) != (int)chm->chunk_size) {
-+	self->error = MSPACK_ERR_READ;
-+	sys->free(buf);
-+	return NULL;
-+    }
-+
-+    /* check the signature. Is is PMGL or PMGI? */
-+    if (!((buf[0] == 0x50) && (buf[1] == 0x4D) && (buf[2] == 0x47) &&
-+	  ((buf[3] == 0x4C) || (buf[3] == 0x49))))
-+    {
-+	self->error = MSPACK_ERR_SEEK;
-+	sys->free(buf);
-+	return NULL;
-+    }
-+
-+    /* all OK. Store chunk in cache and return it */
-+    return chm->chunk_cache[chunk_num] = buf;
-+}
-+
-+/* searches a PMGI/PMGL chunk for a given filename entry. Returns -1 on
-+ * data format error, 0 if entry definitely not found, 1 if entry
-+ * found. In the latter case, *result and *result_end are set pointing
-+ * to that entry's data (either the "next chunk" ENCINT for a PMGI or
-+ * the section, offset and length ENCINTs for a PMGL).
-+ *
-+ * In the case of PMGL chunks, the entry has definitely been
-+ * found. In the case of PMGI chunks, the entry which points to the
-+ * chunk that may eventually contain that entry has been found.
-+ */
-+static int search_chunk(struct mschmd_header *chm,
-+			const unsigned char *chunk,
-+			const char *filename,
-+			const unsigned char **result,
-+			const unsigned char **result_end)
-+{
-+    const unsigned char *start, *end, *p;
-+    unsigned int qr_size, num_entries, qr_entries, qr_density, name_len;
-+    unsigned int L, R, M, sec, fname_len, entries_off, is_pmgl;
-+    int cmp;
-+
-+    fname_len = strlen(filename);
-+
-+    /* PMGL chunk or PMGI chunk? (note: read_chunk() has already
-+     * checked the rest of the characters in the chunk signature) */
-+    if (chunk[3] == 0x4C) {
-+	is_pmgl = 1;
-+	entries_off = pmgl_Entries;
-+    }
-+    else {
-+	is_pmgl = 0;
-+	entries_off = pmgi_Entries;
-+    }
-+
-+    /*  Step 1: binary search first filename of each QR entry
-+     *  - target filename == entry
-+     *    found file
-+     *  - target filename < all entries
-+     *    file not found
-+     *  - target filename > all entries
-+     *    proceed to step 2 using final entry
-+     *  - target filename between two searched entries
-+     *    proceed to step 2
-+     */
-+    qr_size     = EndGetI32(&chunk[pmgl_QuickRefSize]);
-+    start       = &chunk[chm->chunk_size - 2];
-+    end         = &chunk[chm->chunk_size - qr_size];
-+    num_entries = EndGetI16(start);
-+    qr_density  = 1 + (1 << chm->density);
-+    qr_entries  = (num_entries + qr_density-1) / qr_density;
-+
-+    if (num_entries == 0) {
-+	D(("chunk has no entries"))
-+	return -1;
-+    }
-+
-+    if (qr_size > chm->chunk_size) {
-+	D(("quickref size > chunk size"))
-+	return -1;
-+    }
-+
-+    *result_end = end;
-+
-+    if (((int)qr_entries * 2) > (start - end)) {
-+	D(("WARNING; more quickrefs than quickref space"))
-+	qr_entries = 0; /* but we can live with it */
-+    }
-+
-+    if (qr_entries > 0) {
-+	L = 0;
-+	R = qr_entries - 1;
-+	do {
-+	    /* pick new midpoint */
-+	    M = (L + R) >> 1;
-+
-+	    /* compare filename with entry QR points to */
-+	    p = &chunk[entries_off + (M ? EndGetI16(start - (M << 1)) : 0)];
-+	    READ_ENCINT(name_len);
-+	    if (p + name_len > end) goto chunk_end;
-+	    cmp = compare(filename, (char *)p, fname_len, name_len);
-+
-+	    if (cmp == 0) break;
-+	    else if (cmp < 0) { if (M) R = M - 1; else return 0; }
-+	    else if (cmp > 0) L = M + 1;
-+	} while (L <= R);
-+	M = (L + R) >> 1;
-+
-+	if (cmp == 0) {
-+	    /* exact match! */
-+	    p += name_len;
-+	    *result = p;
-+	    return 1;
-+	}
-+
-+	/* otherwise, read the group of entries for QR entry M */
-+	p = &chunk[entries_off + (M ? EndGetI16(start - (M << 1)) : 0)];
-+	num_entries -= (M * qr_density);
-+	if (num_entries > qr_density) num_entries = qr_density;
-+    }
-+    else {
-+	p = &chunk[entries_off];
-+    }
-+
-+    /* Step 2: linear search through the set of entries reached in step 1.
-+     * - filename == any entry
-+     *   found entry
-+     * - filename < all entries (PMGI) or any entry (PMGL)
-+     *   entry not found, stop now
-+     * - filename > all entries
-+     *   entry not found (PMGL) / maybe found (PMGI)
-+     * - 
-+     */
-+    *result = NULL;
-+    while (num_entries-- > 0) {
-+	READ_ENCINT(name_len);
-+	if (p + name_len > end) goto chunk_end;
-+	cmp = compare(filename, (char *)p, fname_len, name_len);
-+	p += name_len;
-+
-+	if (cmp == 0) {
-+	    /* entry found */
-+	    *result = p;
-+	    return 1;
-+	}
-+
-+	if (cmp < 0) {
-+	    /* entry not found (PMGL) / maybe found (PMGI) */
-+	    break;
-+	}
-+
-+	/* read and ignore the rest of this entry */
-+	if (is_pmgl) {
-+	    READ_ENCINT(R); /* skip section */
-+	    READ_ENCINT(R); /* skip offset */
-+	    READ_ENCINT(R); /* skip length */
-+	}
-+	else {
-+	    *result = p; /* store potential final result */
-+	    READ_ENCINT(R); /* skip chunk number */
-+	}
-+    }
-+
-+     /* PMGL? not found. PMGI? maybe found */
-+     return (is_pmgl) ? 0 : (*result ? 1 : 0);
-+
-+ chunk_end:
-+    D(("reached end of chunk data while searching"))
-+    return -1;
-+}
-+
-+#if HAVE_TOWLOWER
-+# if HAVE_WCTYPE_H
-+#  include <wctype.h>
-+# endif
-+# define TOLOWER(x) towlower(x)
-+#elif HAVE_TOLOWER
-+# if HAVE_CTYPE_H
-+#  include <ctype.h>
-+# endif
-+# define TOLOWER(x) tolower(x)
-+#else
-+# define TOLOWER(x) (((x)<0||(x)>256)?(x):mspack_tolower_map[(x)])
-+/* Map of char -> lowercase char for the first 256 chars. Generated with:
-+ * LC_CTYPE=en_GB.utf-8 perl -Mlocale -le 'print map{ord(lc chr).","} 0..255'
-+ */
-+static const unsigned char mspack_tolower_map[256] = {
-+    0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,
-+    28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,
-+    53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,
-+    107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,
-+    95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
-+    115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,
-+    134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,
-+    153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,
-+    172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,
-+    191,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,
-+    242,243,244,245,246,215,248,249,250,251,252,253,254,223,224,225,226,227,228,
-+    229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,
-+    248,249,250,251,252,253,254,255
-+};
-+#endif
-+
-+/* decodes a UTF-8 character from s[] into c. Will not read past e. */
-+#define GET_UTF8_CHAR(s, e, c) do {					\
-+    unsigned char x = *s++;						\
-+    if (x < 0x80) c = x;						\
-+    else if (x < 0xC0) c = -1;						\
-+    else if (x < 0xE0) {						\
-+	c = (s >= e) ? -1 : ((x & 0x1F) << 6) | (*s++ & 0x3F);		\
-+    }									\
-+    else if (x < 0xF0) {						\
-+        c = (s+2 > e) ? -1 : ((x & 0x0F) << 12)	| ((s[0] & 0x3F) <<  6)	\
-+	    | (s[1] & 0x3F);						\
-+	s += 2;								\
-+    }									\
-+    else if (x < 0xF8) {						\
-+	c = (s+3 > e) ? -1 : ((x & 0x07) << 18) | ((s[0] & 0x3F) << 12) \
-+	    | ((s[1] & 0x3F) << 6) | (s[2] & 0x3F);			\
-+	s += 3;								\
-+    }									\
-+    else if (x < 0xFC) {						\
-+	c = (s+4 > e) ? -1 : ((x & 0x03) << 24) | ((s[0] & 0x3F) << 18) \
-+	    | ((s[1] & 0x3F) << 12)|((s[2] & 0x3F) << 6)|(s[3] & 0x3F);	\
-+	s += 4;								\
-+    }									\
-+    else if (x < 0xFE) {						\
-+        c = (s+5>e)?-1:((x&1)<<30)|((s[0]&0x3F)<<24)|((s[1]&0x3F)<<18)| \
-+	    ((s[2] & 0x3F) << 12) | ((s[3] & 0x3F) << 6)|(s[4] & 0x3F);	\
-+	s += 5;								\
-+    }									\
-+    else c = -1;							\
-+} while (0)
-+
-+/* case-insensitively compares two UTF8 encoded strings. String length for
-+ * both strings must be provided, null bytes are not terminators */
-+static inline int compare(const char *s1, const char *s2, int l1, int l2) {
-+    register const unsigned char *p1 = (const unsigned char *) s1;
-+    register const unsigned char *p2 = (const unsigned char *) s2;
-+    register const unsigned char *e1 = p1 + l1, *e2 = p2 + l2;
-+    int c1, c2;
-+
-+    while (p1 < e1 && p2 < e2) {
-+	GET_UTF8_CHAR(p1, e1, c1);
-+	GET_UTF8_CHAR(p2, e2, c2);
-+	if (c1 == c2) continue;
-+	c1 = TOLOWER(c1);
-+	c2 = TOLOWER(c2);
-+	if (c1 != c2) return c1 - c2;
-+    }
-+    return l1 - l2;
-+}
-+
-+
-+/***************************************
-+ * CHMD_EXTRACT
-+ ***************************************
-+ * extracts a file from a CHM helpfile
-+ */
-+static int chmd_extract(struct mschm_decompressor *base,
-+			struct mschmd_file *file, const char *filename)
-+{
-+  struct mschm_decompressor_p *self = (struct mschm_decompressor_p *) base;
-+  struct mspack_system *sys;
-+  struct mschmd_header *chm;
-+  struct mspack_file *fh;
-+  off_t bytes;
-+
-+  if (!self) return MSPACK_ERR_ARGS;
-+  if (!file || !file->section) return self->error = MSPACK_ERR_ARGS;
-+  sys = self->system;
-+  chm = file->section->chm;
-+
-+  /* create decompression state if it doesn't exist */
-+  if (!self->d) {
-+    self->d = (struct mschmd_decompress_state *) sys->alloc(sys, sizeof(struct mschmd_decompress_state));
-+    if (!self->d) return self->error = MSPACK_ERR_NOMEMORY;
-+    self->d->chm       = chm;
-+    self->d->offset    = 0;
-+    self->d->state     = NULL;
-+    self->d->sys       = *sys;
-+    self->d->sys.write = &chmd_sys_write;
-+    self->d->infh      = NULL;
-+    self->d->outfh     = NULL;
-+  }
-+
-+  /* open input chm file if not open, or the open one is a different chm */
-+  if (!self->d->infh || (self->d->chm != chm)) {
-+    if (self->d->infh)  sys->close(self->d->infh);
-+    if (self->d->state) lzxd_free(self->d->state);
-+    self->d->chm    = chm;
-+    self->d->offset = 0;
-+    self->d->state  = NULL;
-+    self->d->infh   = sys->open(sys, chm->filename, MSPACK_SYS_OPEN_READ);
-+    if (!self->d->infh) return self->error = MSPACK_ERR_OPEN;
-+  }
-+
-+  /* open file for output */
-+  if (!(fh = sys->open(sys, filename, MSPACK_SYS_OPEN_WRITE))) {
-+    return self->error = MSPACK_ERR_OPEN;
-+  }
-+
-+  /* if file is empty, simply creating it is enough */
-+  if (!file->length) {
-+    sys->close(fh);
-+    return self->error = MSPACK_ERR_OK;
-+  }
-+
-+  self->error = MSPACK_ERR_OK;
-+
-+  switch (file->section->id) {
-+  case 0: /* Uncompressed section file */
-+    /* simple seek + copy */
-+    if (sys->seek(self->d->infh, file->section->chm->sec0.offset
-+		  + file->offset, MSPACK_SYS_SEEK_START))
-+    {
-+      self->error = MSPACK_ERR_SEEK;
-+    }
-+    else {
-+      unsigned char buf[512];
-+      off_t length = file->length;
-+      while (length > 0) {
-+	int run = sizeof(buf);
-+	if ((off_t)run > length) run = (int)length;
-+	if (sys->read(self->d->infh, &buf[0], run) != run) {
-+	  self->error = MSPACK_ERR_READ;
-+	  break;
-+	}
-+	if (sys->write(fh, &buf[0], run) != run) {
-+	  self->error = MSPACK_ERR_WRITE;
-+	  break;
-+	}
-+	length -= run;
-+      }
-+    }
-+    break;
-+
-+  case 1: /* MSCompressed section file */
-+    /* (re)initialise compression state if we it is not yet initialised,
-+     * or we have advanced too far and have to backtrack
-+     */
-+    if (!self->d->state || (file->offset < self->d->offset)) {
-+      if (self->d->state) {
-+	lzxd_free(self->d->state);
-+	self->d->state = NULL;
-+      }
-+      if (chmd_init_decomp(self, file)) break;
-+    }
-+
-+    /* seek to input data */
-+    if (sys->seek(self->d->infh, self->d->inoffset, MSPACK_SYS_SEEK_START)) {
-+      self->error = MSPACK_ERR_SEEK;
-+      break;
-+    }
-+
-+    /* get to correct offset. */
-+    self->d->outfh = NULL;
-+    if ((bytes = file->offset - self->d->offset)) {
-+      self->error = lzxd_decompress(self->d->state, bytes);
-+    }
-+
-+    /* if getting to the correct offset was error free, unpack file */
-+    if (!self->error) {
-+      self->d->outfh = fh;
-+      self->error = lzxd_decompress(self->d->state, file->length);
-+    }
-+
-+    /* save offset in input source stream, in case there is a section 0
-+     * file between now and the next section 1 file extracted */
-+    self->d->inoffset = sys->tell(self->d->infh);
-+
-+    /* if an LZX error occured, the LZX decompressor is now useless */
-+    if (self->error) {
-+      if (self->d->state) lzxd_free(self->d->state);
-+      self->d->state = NULL;
-+    }
-+    break;
-+  }
-+
-+  sys->close(fh);
-+  return self->error;
-+}
-+
-+/***************************************
-+ * CHMD_SYS_WRITE
-+ ***************************************
-+ * chmd_sys_write is the internal writer function which the decompressor
-+ * uses. If either writes data to disk (self->d->outfh) with the real
-+ * sys->write() function, or does nothing with the data when
-+ * self->d->outfh == NULL. advances self->d->offset.
-+ */
-+static int chmd_sys_write(struct mspack_file *file, void *buffer, int bytes) {
-+  struct mschm_decompressor_p *self = (struct mschm_decompressor_p *) file;
-+  self->d->offset += bytes;
-+  if (self->d->outfh) {
-+    return self->system->write(self->d->outfh, buffer, bytes);
-+  }
-+  return bytes;
-+}
-+
-+/***************************************
-+ * CHMD_INIT_DECOMP
-+ ***************************************
-+ * Initialises the LZX decompressor to decompress the compressed stream,
-+ * from the nearest reset offset and length that is needed for the given
-+ * file.
-+ */
-+static int chmd_init_decomp(struct mschm_decompressor_p *self,
-+			    struct mschmd_file *file)
-+{
-+  int window_size, window_bits, reset_interval, entry, err;
-+  struct mspack_system *sys = self->system;
-+  struct mschmd_sec_mscompressed *sec;
-+  unsigned char *data;
-+  off_t length, offset;
-+
-+  sec = (struct mschmd_sec_mscompressed *) file->section;
-+
-+  /* ensure we have a mscompressed content section */
-+  err = find_sys_file(self, sec, &sec->content, content_name);
-+  if (err) return self->error = err;
-+
-+  /* ensure we have a ControlData file */
-+  err = find_sys_file(self, sec, &sec->control, control_name);
-+  if (err) return self->error = err;
-+
-+  /* read ControlData */
-+  if (sec->control->length < lzxcd_SIZEOF) {
-+    D(("ControlData file is too short"))
-+    return self->error = MSPACK_ERR_DATAFORMAT;
-+  }
-+  if (!(data = read_sys_file(self, sec->control))) {
-+    D(("can't read mscompressed control data file"))
-+    return self->error;
-+  }
-+
-+  /* check LZXC signature */
-+  if (EndGetI32(&data[lzxcd_Signature]) != 0x43585A4C) {
-+    sys->free(data);
-+    return self->error = MSPACK_ERR_SIGNATURE;
-+  }
-+
-+  /* read reset_interval and window_size and validate version number */
-+  switch (EndGetI32(&data[lzxcd_Version])) {
-+  case 1:
-+    reset_interval = EndGetI32(&data[lzxcd_ResetInterval]);
-+    window_size    = EndGetI32(&data[lzxcd_WindowSize]);
-+    break;
-+  case 2:
-+    reset_interval = EndGetI32(&data[lzxcd_ResetInterval]) * LZX_FRAME_SIZE;
-+    window_size    = EndGetI32(&data[lzxcd_WindowSize])    * LZX_FRAME_SIZE;
-+    break;
-+  default:
-+    D(("bad controldata version"))
-+    sys->free(data);
-+    return self->error = MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* free ControlData */
-+  sys->free(data);
-+
-+  /* find window_bits from window_size */
-+  switch (window_size) {
-+  case 0x008000: window_bits = 15; break;
-+  case 0x010000: window_bits = 16; break;
-+  case 0x020000: window_bits = 17; break;
-+  case 0x040000: window_bits = 18; break;
-+  case 0x080000: window_bits = 19; break;
-+  case 0x100000: window_bits = 20; break;
-+  case 0x200000: window_bits = 21; break;
-+  default:
-+    D(("bad controldata window size"))
-+    return self->error = MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* validate reset_interval */
-+  if (reset_interval % LZX_FRAME_SIZE) {
-+    D(("bad controldata reset interval"))
-+    return self->error = MSPACK_ERR_DATAFORMAT;
-+  }
-+
-+  /* which reset table entry would we like? */
-+  entry = file->offset / reset_interval;
-+  /* convert from reset interval multiple (usually 64k) to 32k frames */
-+  entry *= reset_interval / LZX_FRAME_SIZE;
-+
-+  /* read the reset table entry */
-+  if (read_reset_table(self, sec, entry, &length, &offset)) {
-+    /* the uncompressed length given in the reset table is dishonest.
-+     * the uncompressed data is always padded out from the given
-+     * uncompressed length up to the next reset interval */
-+    length += reset_interval - 1;
-+    length &= -reset_interval;
-+  }
-+  else {
-+    /* if we can't read the reset table entry, just start from
-+     * the beginning. Use spaninfo to get the uncompressed length */
-+    entry = 0;
-+    offset = 0;
-+    err = read_spaninfo(self, sec, &length);
-+  }
-+  if (err) return self->error = err;
-+
-+  /* get offset of compressed data stream:
-+   * = offset of uncompressed section from start of file
-+   * + offset of compressed stream from start of uncompressed section
-+   * + offset of chosen reset interval from start of compressed stream */
-+  self->d->inoffset = file->section->chm->sec0.offset + sec->content->offset + offset;
-+
-+  /* set start offset and overall remaining stream length */
-+  self->d->offset = entry * LZX_FRAME_SIZE;
-+  length -= self->d->offset;
-+
-+  /* initialise LZX stream */
-+  self->d->state = lzxd_init(&self->d->sys, self->d->infh,
-+			     (struct mspack_file *) self, window_bits,
-+			     reset_interval / LZX_FRAME_SIZE,
-+			     4096, length, 0);
-+  if (!self->d->state) self->error = MSPACK_ERR_NOMEMORY;
-+  return self->error;
-+}
-+
-+/***************************************
-+ * READ_RESET_TABLE
-+ ***************************************
-+ * Reads one entry out of the reset table. Also reads the uncompressed
-+ * data length. Writes these to offset_ptr and length_ptr respectively.
-+ * Returns non-zero for success, zero for failure.
-+ */
-+static int read_reset_table(struct mschm_decompressor_p *self,
-+			    struct mschmd_sec_mscompressed *sec,
-+			    int entry, off_t *length_ptr, off_t *offset_ptr)
-+{
-+    struct mspack_system *sys = self->system;
-+    unsigned char *data;
-+    unsigned int pos, entrysize;
-+
-+    /* do we have a ResetTable file? */
-+    int err = find_sys_file(self, sec, &sec->rtable, rtable_name);
-+    if (err) return 0;
-+
-+    /* read ResetTable file */
-+    if (sec->rtable->length < lzxrt_headerSIZEOF) {
-+	D(("ResetTable file is too short"))
-+	return 0;
-+    }
-+    if (!(data = read_sys_file(self, sec->rtable))) {
-+	D(("can't read reset table"))
-+	return 0;
-+    }
-+
-+    /* check sanity of reset table */
-+    if (EndGetI32(&data[lzxrt_FrameLen]) != LZX_FRAME_SIZE) {
-+	D(("bad reset table frame length"))
-+	sys->free(data);
-+	return 0;
-+    }
-+
-+    /* get the uncompressed length of the LZX stream */
-+    if (read_off64(length_ptr, &data[lzxrt_UncompLen], sys, self->d->infh)) {
-+	sys->free(data);
-+	return 0;
-+    }
-+
-+    entrysize = EndGetI32(&data[lzxrt_EntrySize]);
-+    pos = EndGetI32(&data[lzxrt_TableOffset]) + (entry * entrysize);
-+
-+    /* ensure reset table entry for this offset exists */
-+    if (entry < EndGetI32(&data[lzxrt_NumEntries]) &&
-+	pos <= (sec->rtable->length - entrysize))
-+    {
-+	switch (entrysize) {
-+	case 4:
-+	    *offset_ptr = EndGetI32(&data[pos]);
-+	    err = 0;
-+	    break;
-+	case 8:
-+	    err = read_off64(offset_ptr, &data[pos], sys, self->d->infh);
-+	    break;
-+	default:
-+	    D(("reset table entry size neither 4 nor 8"))
-+	    err = 1;
-+	    break;
-+	}
-+    }
-+    else {
-+	D(("bad reset interval"))
-+	err = 1;
-+    }
-+
-+    /* free the reset table */
-+    sys->free(data);
-+
-+    /* return success */
-+    return (err == 0);
-+}
-+
-+/***************************************
-+ * READ_SPANINFO
-+ ***************************************
-+ * Reads the uncompressed data length from the spaninfo file.
-+ * Returns zero for success or a non-zero error code for failure.
-+ */
-+static int read_spaninfo(struct mschm_decompressor_p *self,
-+			 struct mschmd_sec_mscompressed *sec,
-+			 off_t *length_ptr)
-+{
-+    struct mspack_system *sys = self->system;
-+    unsigned char *data;
-+    
-+    /* find SpanInfo file */
-+    int err = find_sys_file(self, sec, &sec->spaninfo, spaninfo_name);
-+    if (err) return MSPACK_ERR_DATAFORMAT;
-+
-+    /* check it's large enough */
-+    if (sec->spaninfo->length != 8) {
-+	D(("SpanInfo file is wrong size"))
-+	return MSPACK_ERR_DATAFORMAT;
-+    }
-+
-+    /* read the SpanInfo file */
-+    if (!(data = read_sys_file(self, sec->spaninfo))) {
-+	D(("can't read SpanInfo file"))
-+	return self->error;
-+    }
-+
-+    /* get the uncompressed length of the LZX stream */
-+    err = read_off64(length_ptr, data, sys, self->d->infh);
-+
-+    sys->free(data);
-+    return (err) ? MSPACK_ERR_DATAFORMAT : MSPACK_ERR_OK;
-+}
-+
-+/***************************************
-+ * FIND_SYS_FILE
-+ ***************************************
-+ * Uses chmd_fast_find to locate a system file, and fills out that system
-+ * file's entry and links it into the list of system files. Returns zero
-+ * for success, non-zero for both failure and the file not existing.
-+ */
-+static int find_sys_file(struct mschm_decompressor_p *self,
-+			 struct mschmd_sec_mscompressed *sec,
-+			 struct mschmd_file **f_ptr, const char *name)
-+{
-+    struct mspack_system *sys = self->system;
-+    struct mschmd_file result;
-+
-+    /* already loaded */
-+    if (*f_ptr) return MSPACK_ERR_OK;
-+
-+    /* try using fast_find to find the file - return DATAFORMAT error if
-+     * it fails, or successfully doesn't find the file */
-+    if (chmd_fast_find((struct mschm_decompressor *) self, sec->base.chm,
-+		       name, &result, (int)sizeof(result)) || !result.section)
-+    {
-+	return MSPACK_ERR_DATAFORMAT;
-+    }
-+
-+    if (!(*f_ptr = (struct mschmd_file *) sys->alloc(sys, sizeof(result)))) {
-+	return MSPACK_ERR_NOMEMORY;
-+    }
-+
-+    /* copy result */
-+    *(*f_ptr) = result;
-+    (*f_ptr)->filename = (char *) name;
-+
-+    /* link file into sysfiles list */
-+    (*f_ptr)->next = sec->base.chm->sysfiles;
-+    sec->base.chm->sysfiles = *f_ptr;
-+    return MSPACK_ERR_OK;
-+}
-+
-+/***************************************
-+ * READ_SYS_FILE
-+ ***************************************
-+ * Allocates memory for a section 0 (uncompressed) file and reads it into
-+ * memory.
-+ */
-+static unsigned char *read_sys_file(struct mschm_decompressor_p *self,
-+				    struct mschmd_file *file)
-+{
-+  struct mspack_system *sys = self->system;
-+  unsigned char *data = NULL;
-+  int len;
-+
-+  if (!file || !file->section || (file->section->id != 0)) {
-+    self->error = MSPACK_ERR_DATAFORMAT;
-+    return NULL;
-+  }
-+
-+  len = (int) file->length;
-+
-+  if (!(data = (unsigned char *) sys->alloc(sys, (size_t) len))) {
-+    self->error = MSPACK_ERR_NOMEMORY;
-+    return NULL;
-+  }
-+  if (sys->seek(self->d->infh, file->section->chm->sec0.offset
-+		+ file->offset, MSPACK_SYS_SEEK_START))
-+  {
-+    self->error = MSPACK_ERR_SEEK;
-+    sys->free(data);
-+    return NULL;
-+  }
-+  if (sys->read(self->d->infh, data, len) != len) {
-+    self->error = MSPACK_ERR_READ;
-+    sys->free(data);
-+    return NULL;
-+  }
-+  return data;
-+}
-+
-+/***************************************
-+ * CHMD_ERROR
-+ ***************************************
-+ * returns the last error that occurred
-+ */
-+static int chmd_error(struct mschm_decompressor *base) {
-+  struct mschm_decompressor_p *self = (struct mschm_decompressor_p *) base;
-+  return (self) ? self->error : MSPACK_ERR_ARGS;
-+}
-+
-+/***************************************
-+ * READ_OFF64
-+ ***************************************
-+ * Reads a 64-bit signed integer from memory in Intel byte order.
-+ * If running on a system with a 64-bit off_t, this is simply done.
-+ * If running on a system with a 32-bit off_t, offsets up to 0x7FFFFFFF
-+ * are accepted, offsets beyond that cause an error message.
-+ */
-+static int read_off64(off_t *var, unsigned char *mem,
-+		      struct mspack_system *sys, struct mspack_file *fh)
-+{
-+#ifdef LARGEFILE_SUPPORT
-+    *var = EndGetI64(mem);
-+#else
-+    *var = EndGetI32(mem);
-+    if ((*var & 0x80000000) || EndGetI32(mem+4)) {
-+	sys->message(fh, (char *)largefile_msg);
-+	return 1;
-+    }
-+#endif
-+    return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/crc32.c b/libclamav/libmspack-0.4alpha/mspack/crc32.c
-new file mode 100644
-index 000000000000..4bb0ef49ba29
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/crc32.c
-@@ -0,0 +1,95 @@
-+/*
-+ *  COPYRIGHT (C) 1986 Gary S. Brown.  You may use this program, or
-+ *  code or tables extracted from it, as desired without restriction.
-+ *
-+ *  First, the polynomial itself and its table of feedback terms.  The
-+ *  polynomial is
-+ *  X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
-+ *
-+ *  Note that we take it "backwards" and put the highest-order term in
-+ *  the lowest-order bit.  The X^32 term is "implied"; the LSB is the
-+ *  X^31 term, etc.  The X^0 term (usually shown as "+1") results in
-+ *  the MSB being 1
-+ *
-+ *  Note that the usual hardware shift register implementation, which
-+ *  is what we're using (we're merely optimizing it by doing eight-bit
-+ *  chunks at a time) shifts bits into the lowest-order term.  In our
-+ *  implementation, that means shifting towards the right.  Why do we
-+ *  do it this way?  Because the calculated CRC must be transmitted in
-+ *  order from highest-order term to lowest-order term.  UARTs transmit
-+ *  characters in order from LSB to MSB.  By storing the CRC this way
-+ *  we hand it to the UART in the order low-byte to high-byte; the UART
-+ *  sends each low-bit to hight-bit; and the result is transmission bit
-+ *  by bit from highest- to lowest-order term without requiring any bit
-+ *  shuffling on our part.  Reception works similarly
-+ *
-+ *  The feedback terms table consists of 256, 32-bit entries.  Notes
-+ *
-+ *      The table can be generated at runtime if desired; code to do so
-+ *      is shown later.  It might not be obvious, but the feedback
-+ *      terms simply represent the results of eight shift/xor opera
-+ *      tions for all combinations of data and CRC register values
-+ *
-+ *      The values must be right-shifted by eight bits by the "updcrc
-+ *      logic; the shift must be unsigned (bring in zeroes).  On some
-+ *      hardware you could probably optimize the shift in assembler by
-+ *      using byte-swap instructions
-+ *      polynomial $edb88320
-+ */
-+
-+#include "crc32.h"
-+
-+const unsigned int crc32_table[256] = {
-+	0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
-+	0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
-+	0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
-+	0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
-+	0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
-+	0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
-+	0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
-+	0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
-+	0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
-+	0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
-+	0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
-+	0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
-+	0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
-+	0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
-+	0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
-+	0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
-+	0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
-+	0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
-+	0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
-+	0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
-+	0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
-+	0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
-+	0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
-+	0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
-+	0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
-+	0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
-+	0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
-+	0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
-+	0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
-+	0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
-+	0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
-+	0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
-+	0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
-+	0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
-+	0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
-+	0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
-+	0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
-+	0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
-+	0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
-+	0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
-+	0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
-+	0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
-+	0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
-+	0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
-+	0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
-+	0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
-+	0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
-+	0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
-+	0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
-+	0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
-+	0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
-+	0x2d02ef8dL
-+};
-diff --git a/libclamav/libmspack-0.4alpha/mspack/crc32.h b/libclamav/libmspack-0.4alpha/mspack/crc32.h
-new file mode 100644
-index 000000000000..8415f2eef602
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/crc32.h
-@@ -0,0 +1,17 @@
-+#ifndef CRC32_H
-+#define CRC32_H
-+
-+extern const unsigned int crc32_table[256];
-+
-+/* Return a 32-bit CRC of the contents of the buffer. */
-+
-+static inline unsigned int
-+crc32(unsigned int val, const void *ss, int len)
-+{
-+	const unsigned char *s = ss;
-+        while (--len >= 0)
-+                val = crc32_table[(val ^ *s++) & 0xff] ^ (val >> 8);
-+        return val;
-+}
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/des.h b/libclamav/libmspack-0.4alpha/mspack/des.h
-new file mode 100644
-index 000000000000..64a1ed27e4d4
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/des.h
-@@ -0,0 +1,15 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_DES_H
-+#define MSPACK_DES_H 1
-+
-+/* DES encryption / decryption definitions */
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/hlp.h b/libclamav/libmspack-0.4alpha/mspack/hlp.h
-new file mode 100644
-index 000000000000..b7486fa16068
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/hlp.h
-@@ -0,0 +1,33 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_HLP_H
-+#define MSPACK_HLP_H 1
-+
-+#include <lzss.h>
-+
-+/* generic HLP definitions */
-+
-+/* HLP compression definitions */
-+
-+struct mshlp_compressor_p {
-+  struct mshlp_compressor base;
-+  struct mspack_system *system;
-+  /* todo */
-+};
-+
-+/* HLP decompression definitions */
-+
-+struct mshlp_decompressor_p {
-+  struct mshlp_decompressor base;
-+  struct mspack_system *system;
-+  /* todo */
-+};
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/hlpc.c b/libclamav/libmspack-0.4alpha/mspack/hlpc.c
-new file mode 100644
-index 000000000000..60eabfe207d8
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/hlpc.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* HLP compression implementation */
-+
-+#include <system.h>
-+#include <hlp.h>
-+
-+struct mshlp_compressor *
-+  mspack_create_hlp_compressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_hlp_compressor(struct mshlp_compressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/hlpd.c b/libclamav/libmspack-0.4alpha/mspack/hlpd.c
-new file mode 100644
-index 000000000000..43354f008f4f
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/hlpd.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* HLP decompression implementation */
-+
-+#include <system.h>
-+#include <hlp.h>
-+
-+struct mshlp_decompressor *
-+  mspack_create_hlp_decompressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_hlp_decompressor(struct mshlp_decompressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/kwaj.h b/libclamav/libmspack-0.4alpha/mspack/kwaj.h
-new file mode 100644
-index 000000000000..09673c07793e
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/kwaj.h
-@@ -0,0 +1,118 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2010 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_KWAJ_H
-+#define MSPACK_KWAJ_H 1
-+
-+#include <lzss.h>
-+
-+/* generic KWAJ definitions */
-+#define kwajh_Signature1 (0x00)
-+#define kwajh_Signature2 (0x04)
-+#define kwajh_CompMethod (0x08)
-+#define kwajh_DataOffset (0x0a)
-+#define kwajh_Flags      (0x0c)
-+#define kwajh_SIZEOF     (0x0e)
-+
-+/* KWAJ compression definitions */
-+
-+struct mskwaj_compressor_p {
-+  struct mskwaj_compressor base;
-+  struct mspack_system *system;
-+  /* todo */
-+  int param[2]; /* !!! MATCH THIS TO NUM OF PARAMS IN MSPACK.H !!! */
-+  int error;
-+};
-+
-+/* KWAJ decompression definitions */
-+
-+struct mskwaj_decompressor_p {
-+  struct mskwaj_decompressor base;
-+  struct mspack_system *system;
-+  int error;
-+};
-+
-+struct mskwajd_header_p {
-+  struct mskwajd_header base;
-+  struct mspack_file *fh;
-+};
-+
-+/* input buffer size during decompression - not worth parameterising IMHO */
-+#define KWAJ_INPUT_SIZE (2048)
-+
-+/* huffman codes that are 9 bits or less are decoded immediately */
-+#define KWAJ_TABLEBITS (9)
-+
-+/* number of codes in each huffman table */
-+#define KWAJ_MATCHLEN1_SYMS (16)
-+#define KWAJ_MATCHLEN2_SYMS (16)
-+#define KWAJ_LITLEN_SYMS    (32)
-+#define KWAJ_OFFSET_SYMS    (64)
-+#define KWAJ_LITERAL_SYMS   (256)
-+
-+/* define decoding table sizes */
-+#define KWAJ_TABLESIZE (1 << KWAJ_TABLEBITS)
-+#if KWAJ_TABLESIZE < (KWAJ_MATCHLEN1_SYMS * 2)
-+# define KWAJ_MATCHLEN1_TBLSIZE (KWAJ_MATCHLEN1_SYMS * 4)
-+#else
-+# define KWAJ_MATCHLEN1_TBLSIZE (KWAJ_TABLESIZE + (KWAJ_MATCHLEN1_SYMS * 2))
-+#endif
-+#if KWAJ_TABLESIZE < (KWAJ_MATCHLEN2_SYMS * 2)
-+# define KWAJ_MATCHLEN2_TBLSIZE (KWAJ_MATCHLEN2_SYMS * 4)
-+#else
-+# define KWAJ_MATCHLEN2_TBLSIZE (KWAJ_TABLESIZE + (KWAJ_MATCHLEN2_SYMS * 2))
-+#endif
-+#if KWAJ_TABLESIZE < (KWAJ_LITLEN_SYMS * 2)
-+# define KWAJ_LITLEN_TBLSIZE (KWAJ_LITLEN_SYMS * 4)
-+#else
-+# define KWAJ_LITLEN_TBLSIZE (KWAJ_TABLESIZE + (KWAJ_LITLEN_SYMS * 2))
-+#endif
-+#if KWAJ_TABLESIZE < (KWAJ_OFFSET_SYMS * 2)
-+# define KWAJ_OFFSET_TBLSIZE (KWAJ_OFFSET_SYMS * 4)
-+#else
-+# define KWAJ_OFFSET_TBLSIZE (KWAJ_TABLESIZE + (KWAJ_OFFSET_SYMS * 2))
-+#endif
-+#if KWAJ_TABLESIZE < (KWAJ_LITERAL_SYMS * 2)
-+# define KWAJ_LITERAL_TBLSIZE (KWAJ_LITERAL_SYMS * 4)
-+#else
-+# define KWAJ_LITERAL_TBLSIZE (KWAJ_TABLESIZE + (KWAJ_LITERAL_SYMS * 2))
-+#endif
-+
-+struct kwajd_stream {
-+    /* I/O buffering */
-+    struct mspack_system *sys;
-+    struct mspack_file *input;
-+    struct mspack_file *output;
-+    unsigned char *i_ptr, *i_end;
-+    unsigned int bit_buffer, bits_left;
-+    int input_end;
-+
-+    /* huffman code lengths */
-+    unsigned char  MATCHLEN1_len [KWAJ_MATCHLEN1_SYMS];
-+    unsigned char  MATCHLEN2_len [KWAJ_MATCHLEN2_SYMS];
-+    unsigned char  LITLEN_len    [KWAJ_LITLEN_SYMS];
-+    unsigned char  OFFSET_len    [KWAJ_OFFSET_SYMS];
-+    unsigned char  LITERAL_len   [KWAJ_LITERAL_SYMS];
-+
-+    /* huffman decoding tables */
-+    unsigned short MATCHLEN1_table [KWAJ_MATCHLEN1_TBLSIZE];
-+    unsigned short MATCHLEN2_table [KWAJ_MATCHLEN2_TBLSIZE];
-+    unsigned short LITLEN_table    [KWAJ_LITLEN_TBLSIZE];
-+    unsigned short OFFSET_table    [KWAJ_OFFSET_TBLSIZE];
-+    unsigned short LITERAL_table   [KWAJ_LITERAL_TBLSIZE];
-+
-+    /* input buffer */
-+    unsigned char inbuf[KWAJ_INPUT_SIZE];
-+
-+    /* history window */
-+    unsigned char window[LZSS_WINDOW_SIZE];
-+};
-+
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/kwajc.c b/libclamav/libmspack-0.4alpha/mspack/kwajc.c
-new file mode 100644
-index 000000000000..b88ed7690a8a
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/kwajc.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* KWAJ compression implementation */
-+
-+#include <system.h>
-+#include <kwaj.h>
-+
-+struct mskwaj_compressor *
-+  mspack_create_kwaj_compressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_kwaj_compressor(struct mskwaj_compressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/kwajd.c b/libclamav/libmspack-0.4alpha/mspack/kwajd.c
-new file mode 100644
-index 000000000000..bd4ee87739a0
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/kwajd.c
-@@ -0,0 +1,561 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2011 Stuart Caie.
-+ *
-+ * KWAJ is a format very similar to SZDD. KWAJ method 3 (LZH) was
-+ * written by Jeff Johnson.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* KWAJ decompression implementation */
-+
-+#include <system.h>
-+#include <kwaj.h>
-+#include <mszip.h>
-+
-+/* prototypes */
-+static struct mskwajd_header *kwajd_open(
-+    struct mskwaj_decompressor *base, const char *filename);
-+static void kwajd_close(
-+    struct mskwaj_decompressor *base, struct mskwajd_header *hdr);
-+static int kwajd_read_headers(
-+    struct mspack_system *sys, struct mspack_file *fh,
-+    struct mskwajd_header *hdr);
-+static int kwajd_extract(
-+    struct mskwaj_decompressor *base, struct mskwajd_header *hdr,
-+    const char *filename);
-+static int kwajd_decompress(
-+    struct mskwaj_decompressor *base, const char *input, const char *output);
-+static int kwajd_error(
-+    struct mskwaj_decompressor *base);
-+
-+static struct kwajd_stream *lzh_init(
-+    struct mspack_system *sys, struct mspack_file *in, struct mspack_file *out);
-+static int lzh_decompress(
-+    struct kwajd_stream *kwaj);
-+static void lzh_free(
-+    struct kwajd_stream *kwaj);
-+static int lzh_read_lens(
-+    struct kwajd_stream *kwaj,
-+    unsigned int type, unsigned int numsyms,
-+    unsigned char *lens, unsigned short *table);
-+static int lzh_read_input(
-+    struct kwajd_stream *kwaj);
-+
-+
-+/***************************************
-+ * MSPACK_CREATE_KWAJ_DECOMPRESSOR
-+ ***************************************
-+ * constructor
-+ */
-+struct mskwaj_decompressor *
-+    mspack_create_kwaj_decompressor(struct mspack_system *sys)
-+{
-+  struct mskwaj_decompressor_p *self = NULL;
-+
-+  if (!sys) sys = mspack_default_system;
-+  if (!mspack_valid_system(sys)) return NULL;
-+
-+  if ((self = (struct mskwaj_decompressor_p *) sys->alloc(sys, sizeof(struct mskwaj_decompressor_p)))) {
-+    self->base.open       = &kwajd_open;
-+    self->base.close      = &kwajd_close;
-+    self->base.extract    = &kwajd_extract;
-+    self->base.decompress = &kwajd_decompress;
-+    self->base.last_error = &kwajd_error;
-+    self->system          = sys;
-+    self->error           = MSPACK_ERR_OK;
-+  }
-+  return (struct mskwaj_decompressor *) self;
-+}
-+
-+/***************************************
-+ * MSPACK_DESTROY_KWAJ_DECOMPRESSOR
-+ ***************************************
-+ * destructor
-+ */
-+void mspack_destroy_kwaj_decompressor(struct mskwaj_decompressor *base)
-+{
-+    struct mskwaj_decompressor_p *self = (struct mskwaj_decompressor_p *) base;
-+    if (self) {
-+	struct mspack_system *sys = self->system;
-+	sys->free(self);
-+    }
-+}
-+
-+/***************************************
-+ * KWAJD_OPEN
-+ ***************************************
-+ * opens a KWAJ file without decompressing, reads header
-+ */
-+static struct mskwajd_header *kwajd_open(struct mskwaj_decompressor *base,
-+					 const char *filename)
-+{
-+    struct mskwaj_decompressor_p *self = (struct mskwaj_decompressor_p *) base;
-+    struct mskwajd_header *hdr;
-+    struct mspack_system *sys;
-+    struct mspack_file *fh;
-+
-+    if (!self) return NULL;
-+    sys = self->system;
-+
-+    fh  = sys->open(sys, filename, MSPACK_SYS_OPEN_READ);
-+    hdr = (struct mskwajd_header *) sys->alloc(sys, sizeof(struct mskwajd_header_p));
-+    if (fh && hdr) {
-+	((struct mskwajd_header_p *) hdr)->fh = fh;
-+	self->error = kwajd_read_headers(sys, fh, hdr);
-+    }
-+    else {
-+	if (!fh)  self->error = MSPACK_ERR_OPEN;
-+	if (!hdr) self->error = MSPACK_ERR_NOMEMORY;
-+    }
-+    
-+    if (self->error) {
-+	if (fh)  sys->close(fh);
-+	if (hdr) sys->free(hdr);
-+	hdr = NULL;
-+    }
-+
-+    return hdr;
-+}
-+
-+/***************************************
-+ * KWAJD_CLOSE
-+ ***************************************
-+ * closes a KWAJ file
-+ */
-+static void kwajd_close(struct mskwaj_decompressor *base,
-+			struct mskwajd_header *hdr)
-+{
-+    struct mskwaj_decompressor_p *self = (struct mskwaj_decompressor_p *) base;
-+    struct mskwajd_header_p *hdr_p = (struct mskwajd_header_p *) hdr;
-+
-+    if (!self || !self->system) return;
-+
-+    /* close the file handle associated */
-+    self->system->close(hdr_p->fh);
-+
-+    /* free the memory associated */
-+    self->system->free(hdr);
-+
-+    self->error = MSPACK_ERR_OK;
-+}
-+
-+/***************************************
-+ * KWAJD_READ_HEADERS
-+ ***************************************
-+ * reads the headers of a KWAJ format file
-+ */
-+static int kwajd_read_headers(struct mspack_system *sys,
-+			      struct mspack_file *fh,
-+			      struct mskwajd_header *hdr)
-+{
-+    unsigned char buf[16];
-+    int i;
-+
-+    /* read in the header */
-+    if (sys->read(fh, &buf[0], kwajh_SIZEOF) != kwajh_SIZEOF) {
-+	return MSPACK_ERR_READ;
-+    }
-+
-+    /* check for "KWAJ" signature */
-+    if (((unsigned int) EndGetI32(&buf[kwajh_Signature1]) != 0x4A41574B) ||
-+	((unsigned int) EndGetI32(&buf[kwajh_Signature2]) != 0xD127F088))
-+    {
-+	return MSPACK_ERR_SIGNATURE;
-+    }
-+
-+    /* basic header fields */
-+    hdr->comp_type    = EndGetI16(&buf[kwajh_CompMethod]);
-+    hdr->data_offset  = EndGetI16(&buf[kwajh_DataOffset]);
-+    hdr->headers      = EndGetI16(&buf[kwajh_Flags]);
-+    hdr->length       = 0;
-+    hdr->filename     = NULL;
-+    hdr->extra        = NULL;
-+    hdr->extra_length = 0;
-+
-+    /* optional headers */
-+
-+    /* 4 bytes: length of unpacked file */
-+    if (hdr->headers & MSKWAJ_HDR_HASLENGTH) {
-+	if (sys->read(fh, &buf[0], 4) != 4) return MSPACK_ERR_READ;
-+	hdr->length = EndGetI32(&buf[0]);
-+    }
-+
-+    /* 2 bytes: unknown purpose */
-+    if (hdr->headers & MSKWAJ_HDR_HASUNKNOWN1) {
-+	if (sys->read(fh, &buf[0], 2) != 2) return MSPACK_ERR_READ;
-+    }
-+
-+    /* 2 bytes: length of section, then [length] bytes: unknown purpose */
-+    if (hdr->headers & MSKWAJ_HDR_HASUNKNOWN2) {
-+	if (sys->read(fh, &buf[0], 2) != 2) return MSPACK_ERR_READ;
-+	i = EndGetI16(&buf[0]);
-+	if (sys->seek(fh, (off_t)i, MSPACK_SYS_SEEK_CUR)) return MSPACK_ERR_SEEK;
-+    }
-+
-+    /* filename and extension */
-+    if (hdr->headers & (MSKWAJ_HDR_HASFILENAME | MSKWAJ_HDR_HASFILEEXT)) {
-+	off_t pos = sys->tell(fh);
-+	char *fn = (char *) sys->alloc(sys, (size_t) 13);
-+
-+	/* allocate memory for maximum length filename */
-+	if (! fn) return MSPACK_ERR_NOMEMORY;
-+	hdr->filename = fn;
-+
-+	/* copy filename if present */
-+	if (hdr->headers & MSKWAJ_HDR_HASFILENAME) {
-+	    if (sys->read(fh, &buf[0], 9) != 9) return MSPACK_ERR_READ;
-+	    for (i = 0; i < 9; i++, fn++) if (!(*fn = buf[i])) break;
-+	    pos += (i < 9) ? i+1 : 9;
-+	    if (sys->seek(fh, pos, MSPACK_SYS_SEEK_START))
-+		return MSPACK_ERR_SEEK;
-+	}
-+
-+	/* copy extension if present */
-+	if (hdr->headers & MSKWAJ_HDR_HASFILEEXT) {
-+	    *fn++ = '.';
-+	    if (sys->read(fh, &buf[0], 4) != 4) return MSPACK_ERR_READ;
-+	    for (i = 0; i < 4; i++, fn++) if (!(*fn = buf[i])) break;
-+	    pos += (i < 4) ? i+1 : 4;
-+	    if (sys->seek(fh, pos, MSPACK_SYS_SEEK_START))
-+		return MSPACK_ERR_SEEK;
-+	}
-+	*fn = '\0';
-+    }
-+
-+    /* 2 bytes: extra text length then [length] bytes of extra text data */
-+    if (hdr->headers & MSKWAJ_HDR_HASEXTRATEXT) {
-+	if (sys->read(fh, &buf[0], 2) != 2) return MSPACK_ERR_READ;
-+	i = EndGetI16(&buf[0]);
-+	hdr->extra = (char *) sys->alloc(sys, (size_t)i+1);
-+	if (! hdr->extra) return MSPACK_ERR_NOMEMORY;
-+	if (sys->read(fh, hdr->extra, i) != i) return MSPACK_ERR_READ;
-+	hdr->extra[i] = '\0';
-+	hdr->extra_length = i;
-+    }
-+    return MSPACK_ERR_OK;
-+}
-+
-+/***************************************
-+ * KWAJD_EXTRACT
-+ ***************************************
-+ * decompresses a KWAJ file
-+ */
-+static int kwajd_extract(struct mskwaj_decompressor *base,
-+			 struct mskwajd_header *hdr, const char *filename)
-+{
-+    struct mskwaj_decompressor_p *self = (struct mskwaj_decompressor_p *) base;
-+    struct mspack_system *sys;
-+    struct mspack_file *fh, *outfh;
-+
-+    if (!self) return MSPACK_ERR_ARGS;
-+    if (!hdr) return self->error = MSPACK_ERR_ARGS;
-+
-+    sys = self->system;
-+    fh = ((struct mskwajd_header_p *) hdr)->fh;
-+
-+    /* seek to the compressed data */
-+    if (sys->seek(fh, hdr->data_offset, MSPACK_SYS_SEEK_START)) {
-+	return self->error = MSPACK_ERR_SEEK;
-+    }
-+
-+    /* open file for output */
-+    if (!(outfh = sys->open(sys, filename, MSPACK_SYS_OPEN_WRITE))) {
-+	return self->error = MSPACK_ERR_OPEN;
-+    }
-+
-+    self->error = MSPACK_ERR_OK;
-+
-+    /* decompress based on format */
-+    if (hdr->comp_type == MSKWAJ_COMP_NONE ||
-+	hdr->comp_type == MSKWAJ_COMP_XOR)
-+    {
-+	/* NONE is a straight copy. XOR is a copy xored with 0xFF */
-+	unsigned char *buf = (unsigned char *) sys->alloc(sys, (size_t) KWAJ_INPUT_SIZE);
-+	if (buf) {
-+	    int read, i;
-+	    while ((read = sys->read(fh, buf, KWAJ_INPUT_SIZE)) > 0) {
-+		if (hdr->comp_type == MSKWAJ_COMP_XOR) {
-+		    for (i = 0; i < read; i++) buf[i] ^= 0xFF;
-+		}
-+		if (sys->write(outfh, buf, read) != read) {
-+		    self->error = MSPACK_ERR_WRITE;
-+		    break;
-+		}
-+	    }
-+	    if (read < 0) self->error = MSPACK_ERR_READ;
-+	    sys->free(buf);
-+	}
-+	else {
-+	    self->error = MSPACK_ERR_NOMEMORY;
-+	}
-+    }
-+    else if (hdr->comp_type == MSKWAJ_COMP_SZDD) {
-+	self->error = lzss_decompress(sys, fh, outfh, KWAJ_INPUT_SIZE,
-+				      LZSS_MODE_EXPAND);
-+    }
-+    else if (hdr->comp_type == MSKWAJ_COMP_LZH) {
-+	struct kwajd_stream *lzh = lzh_init(sys, fh, outfh);
-+	self->error = (lzh) ? lzh_decompress(lzh) : MSPACK_ERR_NOMEMORY;
-+	lzh_free(lzh);
-+    }
-+    else if (hdr->comp_type == MSKWAJ_COMP_MSZIP) {
-+        struct mszipd_stream *zip = mszipd_init(sys,fh,outfh,KWAJ_INPUT_SIZE,0);
-+        self->error = (zip) ? mszipd_decompress_kwaj(zip) : MSPACK_ERR_NOMEMORY;
-+        mszipd_free(zip);
-+    }
-+    else {
-+	self->error = MSPACK_ERR_DATAFORMAT;
-+    }
-+
-+    /* close output file */
-+    sys->close(outfh);
-+
-+    return self->error;
-+}
-+
-+/***************************************
-+ * KWAJD_DECOMPRESS
-+ ***************************************
-+ * unpacks directly from input to output
-+ */
-+static int kwajd_decompress(struct mskwaj_decompressor *base,
-+			    const char *input, const char *output)
-+{
-+    struct mskwaj_decompressor_p *self = (struct mskwaj_decompressor_p *) base;
-+    struct mskwajd_header *hdr;
-+    int error;
-+
-+    if (!self) return MSPACK_ERR_ARGS;
-+
-+    if (!(hdr = kwajd_open(base, input))) return self->error;
-+    error = kwajd_extract(base, hdr, output);
-+    kwajd_close(base, hdr);
-+    return self->error = error;
-+}
-+
-+/***************************************
-+ * KWAJD_ERROR
-+ ***************************************
-+ * returns the last error that occurred
-+ */
-+static int kwajd_error(struct mskwaj_decompressor *base)
-+{
-+    struct mskwaj_decompressor_p *self = (struct mskwaj_decompressor_p *) base;
-+    return (self) ? self->error : MSPACK_ERR_ARGS;
-+}
-+
-+/***************************************
-+ * LZH_INIT, LZH_DECOMPRESS, LZH_FREE
-+ ***************************************
-+ * unpacks KWAJ method 3 files
-+ */
-+
-+/* import bit-reading macros and code */
-+#define BITS_TYPE struct kwajd_stream
-+#define BITS_VAR lzh
-+#define BITS_ORDER_MSB
-+#define BITS_NO_READ_INPUT
-+#define READ_BYTES do {					\
-+    if (i_ptr >= i_end) {				\
-+	if ((err = lzh_read_input(lzh))) return err;	\
-+	i_ptr = lzh->i_ptr;				\
-+	i_end = lzh->i_end;				\
-+    }							\
-+    INJECT_BITS(*i_ptr++, 8);				\
-+} while (0)
-+#include <readbits.h>
-+
-+/* import huffman-reading macros and code */
-+#define TABLEBITS(tbl)      KWAJ_TABLEBITS
-+#define MAXSYMBOLS(tbl)     KWAJ_##tbl##_SYMS
-+#define HUFF_TABLE(tbl,idx) lzh->tbl##_table[idx]
-+#define HUFF_LEN(tbl,idx)   lzh->tbl##_len[idx]
-+#define HUFF_ERROR          return MSPACK_ERR_DATAFORMAT
-+#include <readhuff.h>
-+
-+/* In the KWAJ LZH format, there is no special 'eof' marker, it just
-+ * ends. Depending on how many bits are left in the final byte when
-+ * the stream ends, that might be enough to start another literal or
-+ * match. The only easy way to detect that we've come to an end is to
-+ * guard all bit-reading. We allow fake bits to be read once we reach
-+ * the end of the stream, but we check if we then consumed any of
-+ * those fake bits, after doing the READ_BITS / READ_HUFFSYM. This
-+ * isn't how the default readbits.h read_input() works (it simply lets
-+ * 2 fake bytes in then stops), so we implement our own.
-+ */
-+#define READ_BITS_SAFE(val, n) do {			\
-+    READ_BITS(val, n);					\
-+    if (lzh->input_end && bits_left < lzh->input_end)	\
-+	return MSPACK_ERR_OK;				\
-+} while (0)
-+
-+#define READ_HUFFSYM_SAFE(tbl, val) do {		\
-+    READ_HUFFSYM(tbl, val);				\
-+    if (lzh->input_end && bits_left < lzh->input_end)	\
-+	return MSPACK_ERR_OK;				\
-+} while (0)
-+
-+#define BUILD_TREE(tbl, type)					\
-+    STORE_BITS;							\
-+    err = lzh_read_lens(lzh, type, MAXSYMBOLS(tbl),		\
-+			 &HUFF_LEN(tbl,0), &HUFF_TABLE(tbl,0));	\
-+    if (err) return err;					\
-+    RESTORE_BITS;						\
-+    if (make_decode_table(MAXSYMBOLS(tbl), TABLEBITS(tbl),	\
-+	&HUFF_LEN(tbl,0), &HUFF_TABLE(tbl,0)))			\
-+	return MSPACK_ERR_DATAFORMAT;
-+
-+#define WRITE_BYTE do {							\
-+    if (lzh->sys->write(lzh->output, &lzh->window[pos], 1) != 1)	\
-+        return MSPACK_ERR_WRITE;					\
-+} while (0)
-+
-+static struct kwajd_stream *lzh_init(struct mspack_system *sys,
-+    struct mspack_file *in, struct mspack_file *out)
-+{
-+    struct kwajd_stream *lzh;
-+
-+    if (!sys || !in || !out) return NULL;
-+    if (!(lzh = (struct kwajd_stream *) sys->alloc(sys, sizeof(struct kwajd_stream)))) return NULL;
-+
-+    lzh->sys    = sys;
-+    lzh->input  = in;
-+    lzh->output = out;
-+    return lzh;
-+}
-+
-+static int lzh_decompress(struct kwajd_stream *lzh)
-+{
-+    register unsigned int bit_buffer;
-+    register int bits_left, i;
-+    register unsigned short sym;
-+    unsigned char *i_ptr, *i_end, lit_run = 0;
-+    int j, pos = 0, len, offset, err;
-+    unsigned int types[6];
-+
-+    /* reset global state */
-+    INIT_BITS;
-+    RESTORE_BITS;
-+    memset(&lzh->window[0], LZSS_WINDOW_FILL, (size_t) LZSS_WINDOW_SIZE);
-+
-+    /* read 6 encoding types (for byte alignment) but only 5 are needed */
-+    for (i = 0; i < 6; i++) READ_BITS_SAFE(types[i], 4);
-+
-+    /* read huffman table symbol lengths and build huffman trees */
-+    BUILD_TREE(MATCHLEN1, types[0]);
-+    BUILD_TREE(MATCHLEN2, types[1]);
-+    BUILD_TREE(LITLEN,    types[2]);
-+    BUILD_TREE(OFFSET,    types[3]);
-+    BUILD_TREE(LITERAL,   types[4]);
-+
-+    while (!lzh->input_end) {
-+	if (lit_run) READ_HUFFSYM_SAFE(MATCHLEN2, len);
-+	else         READ_HUFFSYM_SAFE(MATCHLEN1, len);
-+
-+	if (len > 0) {
-+	    len += 2;
-+	    lit_run = 0; /* not the end of a literal run */
-+	    READ_HUFFSYM_SAFE(OFFSET, j); offset = j << 6;
-+	    READ_BITS_SAFE(j, 6);         offset |= j;
-+
-+	    /* copy match as output and into the ring buffer */
-+	    while (len-- > 0) {
-+		lzh->window[pos] = lzh->window[(pos+4096-offset) & 4095];
-+		WRITE_BYTE;
-+		pos++; pos &= 4095;
-+	    }
-+	}
-+	else {
-+	    READ_HUFFSYM_SAFE(LITLEN, len); len++;
-+	    lit_run = (len == 32) ? 0 : 1; /* end of a literal run? */
-+	    while (len-- > 0) {
-+		READ_HUFFSYM_SAFE(LITERAL, j);
-+		/* copy as output and into the ring buffer */
-+		lzh->window[pos] = j;
-+		WRITE_BYTE;
-+		pos++; pos &= 4095;
-+	    }
-+	}
-+    }
-+    return MSPACK_ERR_OK;
-+}
-+
-+static void lzh_free(struct kwajd_stream *lzh)
-+{
-+    struct mspack_system *sys;
-+    if (!lzh || !lzh->sys) return;
-+    sys = lzh->sys;
-+    sys->free(lzh);
-+}
-+
-+static int lzh_read_lens(struct kwajd_stream *lzh,
-+			 unsigned int type, unsigned int numsyms,
-+			 unsigned char *lens, unsigned short *table)
-+{
-+    register unsigned int bit_buffer;
-+    register int bits_left;
-+    unsigned char *i_ptr, *i_end;
-+    unsigned int i, c, sel;
-+    int err;
-+
-+    RESTORE_BITS;
-+    switch (type) {
-+    case 0:
-+	i = numsyms; c = (i==16)?4: (i==32)?5: (i==64)?6: (i==256)?8 :0;
-+	for (i = 0; i < numsyms; i++) lens[i] = c;
-+	break;
-+
-+    case 1:
-+	READ_BITS_SAFE(c, 4); lens[0] = c;
-+	for (i = 1; i < numsyms; i++) {
-+    	           READ_BITS_SAFE(sel, 1); if (sel == 0)  lens[i] = c;
-+	    else { READ_BITS_SAFE(sel, 1); if (sel == 0)  lens[i] = ++c;
-+	    else { READ_BITS_SAFE(c, 4);                  lens[i] = c; }}
-+	}
-+	break;
-+
-+    case 2:
-+	READ_BITS_SAFE(c, 4); lens[0] = c;
-+	for (i = 1; i < numsyms; i++) {
-+	    READ_BITS_SAFE(sel, 2);
-+	    if (sel == 3) READ_BITS_SAFE(c, 4); else c += (char) sel-1;
-+	    lens[i] = c;
-+	}
-+	break;
-+
-+    case 3:
-+	for (i = 0; i < numsyms; i++) {
-+	    READ_BITS_SAFE(c, 4); lens[i] = c;
-+	}
-+	break;
-+    }
-+    STORE_BITS;
-+    return MSPACK_ERR_OK;
-+}
-+
-+static int lzh_read_input(struct kwajd_stream *lzh) {
-+    int read;
-+    if (lzh->input_end) {
-+	lzh->input_end += 8;
-+	lzh->inbuf[0] = 0;
-+	read = 1;
-+    }
-+    else {
-+	read = lzh->sys->read(lzh->input, &lzh->inbuf[0], KWAJ_INPUT_SIZE);
-+	if (read < 0) return MSPACK_ERR_READ;
-+	if (read == 0) {
-+	    lzh->input_end = 8;
-+	    lzh->inbuf[0] = 0;
-+	    read = 1;
-+	}
-+    }
-+
-+    /* update i_ptr and i_end */
-+    lzh->i_ptr = &lzh->inbuf[0];
-+    lzh->i_end = &lzh->inbuf[read];
-+    return MSPACK_ERR_OK;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/lit.h b/libclamav/libmspack-0.4alpha/mspack/lit.h
-new file mode 100644
-index 000000000000..79ba44d87729
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/lit.h
-@@ -0,0 +1,35 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_LIT_H
-+#define MSPACK_LIT_H 1
-+
-+#include <lzx.h>
-+#include <des.h>
-+#include <sha.h>
-+
-+/* generic LIT definitions */
-+
-+/* LIT compression definitions */
-+
-+struct mslit_compressor_p {
-+  struct mslit_compressor base;
-+  struct mspack_system *system;
-+  /* todo */
-+};
-+
-+/* LIT decompression definitions */
-+
-+struct mslit_decompressor_p {
-+  struct mslit_decompressor base;
-+  struct mspack_system *system;
-+  /* todo */
-+};
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/litc.c b/libclamav/libmspack-0.4alpha/mspack/litc.c
-new file mode 100644
-index 000000000000..a8a709af07af
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/litc.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* LIT compression implementation */
-+
-+#include <system.h>
-+#include <lit.h>
-+
-+struct mslit_compressor *
-+  mspack_create_lit_compressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_lit_compressor(struct mslit_compressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/litd.c b/libclamav/libmspack-0.4alpha/mspack/litd.c
-new file mode 100644
-index 000000000000..6e0dc9af27c4
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/litd.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* LIT decompression implementation */
-+
-+#include <system.h>
-+#include <lit.h>
-+
-+struct mslit_decompressor *
-+  mspack_create_lit_decompressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_lit_decompressor(struct mslit_decompressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/lzss.h b/libclamav/libmspack-0.4alpha/mspack/lzss.h
-new file mode 100644
-index 000000000000..55e761b5bf91
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/lzss.h
-@@ -0,0 +1,66 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_LZSS_H
-+#define MSPACK_LZSS_H 1
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* LZSS compression / decompression definitions */
-+
-+#define LZSS_WINDOW_SIZE (4096)
-+#define LZSS_WINDOW_FILL (0x20)
-+
-+#define LZSS_MODE_EXPAND  (0)
-+#define LZSS_MODE_MSHELP  (1)
-+#define LZSS_MODE_QBASIC  (2)
-+
-+/**
-+ * Decompresses an LZSS stream.
-+ *
-+ * Input bytes will be read in as necessary using the system->read()
-+ * function with the input file handle given. This will continue until
-+ * system->read() returns 0 bytes, or an error. Errors will be passed
-+ * out of the function as MSPACK_ERR_READ errors. Input streams should
-+ * convey an "end of input stream" by refusing to supply all the bytes
-+ * that LZSS asks for when they reach the end of the stream, rather
-+ * than return an error code.
-+ *
-+ * Output bytes will be passed to the system->write() function, using
-+ * the output file handle given. More than one call may be made to
-+ * system->write().
-+ *
-+ * As EXPAND.EXE (SZDD/KWAJ), Microsoft Help and QBasic have slightly
-+ * different encodings for the control byte and matches, a "mode"
-+ * parameter is allowed, to choose the encoding.
-+ *
-+ * @param system             an mspack_system structure used to read from
-+ *                           the input stream and write to the output
-+ *                           stream, also to allocate and free memory.
-+ * @param input              an input stream with the LZSS data.
-+ * @param output             an output stream to write the decoded data to.
-+ * @param input_buffer_size  the number of bytes to use as an input
-+ *                           bitstream buffer.
-+ * @param mode               one of #LZSS_MODE_EXPAND, #LZSS_MODE_MSHELP or
-+ *                           #LZSS_MODE_QBASIC
-+ * @return an error code, or MSPACK_ERR_OK if successful
-+ */
-+extern int lzss_decompress(struct mspack_system *system,
-+			   struct mspack_file *input,
-+			   struct mspack_file *output,
-+			   int input_buffer_size,
-+			   int mode);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/lzssd.c b/libclamav/libmspack-0.4alpha/mspack/lzssd.c
-new file mode 100644
-index 000000000000..df294bc13258
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/lzssd.c
-@@ -0,0 +1,93 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2010 Stuart Caie.
-+ *
-+ * LZSS is a derivative of LZ77 and was created by James Storer and
-+ * Thomas Szymanski in 1982. Haruhiko Okumura wrote a very popular C
-+ * implementation.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#include <system.h>
-+#include <lzss.h>
-+
-+#define ENSURE_BYTES do {				\
-+    if (i_ptr >= i_end) {				\
-+	read = system->read(input, &inbuf[0],		\
-+			    input_buffer_size);		\
-+        if (read <= 0) {				\
-+	    system->free(window);			\
-+	    return (read < 0) ? MSPACK_ERR_READ		\
-+		              : MSPACK_ERR_OK;		\
-+	}						\
-+        i_ptr = &inbuf[0]; i_end = &inbuf[read];	\
-+    }							\
-+} while (0)
-+
-+#define WRITE_BYTE do {					\
-+    if (system->write(output, &window[pos], 1) != 1) {	\
-+	system->free(window);				\
-+	return MSPACK_ERR_WRITE;			\
-+    }							\
-+} while (0)
-+
-+int lzss_decompress(struct mspack_system *system,
-+		    struct mspack_file *input,
-+		    struct mspack_file *output,
-+		    int input_buffer_size,
-+		    int mode)
-+{
-+    unsigned char *window, *inbuf, *i_ptr, *i_end;
-+    unsigned int pos, i, c, invert, mpos, len;
-+    int read;
-+
-+    /* check parameters */
-+    if (!system || input_buffer_size < 1 || (mode != LZSS_MODE_EXPAND &&
-+        mode != LZSS_MODE_MSHELP && mode != LZSS_MODE_QBASIC))
-+    {
-+	return MSPACK_ERR_ARGS;
-+    }
-+
-+    /* allocate memory */
-+    window = (unsigned char *) system->alloc(system, LZSS_WINDOW_SIZE + input_buffer_size);
-+    if (!window) return MSPACK_ERR_NOMEMORY;
-+
-+    /* initialise decompression */
-+    inbuf = &window[LZSS_WINDOW_SIZE];
-+    memset(window, LZSS_WINDOW_FILL, (size_t) LZSS_WINDOW_SIZE);
-+    pos = LZSS_WINDOW_SIZE - ((mode == LZSS_MODE_QBASIC) ? 18 : 16);
-+    invert = (mode == LZSS_MODE_MSHELP) ? ~0 : 0;
-+    i_ptr = i_end = &inbuf[0];
-+
-+    /* loop forever; exit condition is in ENSURE_BYTES macro */
-+    for (;;) {
-+	ENSURE_BYTES; c = *i_ptr++ ^ invert;
-+	for (i = 0x01; i & 0xFF; i <<= 1) {
-+	    if (c & i) {
-+		/* literal */
-+		ENSURE_BYTES; window[pos] = *i_ptr++;
-+		WRITE_BYTE;
-+		pos++; pos &= LZSS_WINDOW_SIZE - 1;
-+	    }
-+	    else {
-+		/* match */
-+		ENSURE_BYTES; mpos = *i_ptr++;
-+		ENSURE_BYTES; mpos |= (*i_ptr & 0xF0) << 4;
-+		len = (*i_ptr++ & 0x0F) + 3;
-+		while (len--) {
-+		    window[pos] = window[mpos];
-+		    WRITE_BYTE;
-+		    pos++;  pos  &= LZSS_WINDOW_SIZE - 1;
-+		    mpos++; mpos &= LZSS_WINDOW_SIZE - 1;
-+		}
-+	    }
-+	}
-+    }
-+
-+    /* not reached */
-+    system->free(window);
-+    return MSPACK_ERR_OK;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/lzx.h b/libclamav/libmspack-0.4alpha/mspack/lzx.h
-new file mode 100644
-index 000000000000..4d3189ea5730
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/lzx.h
-@@ -0,0 +1,221 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2013 Stuart Caie.
-+ *
-+ * The LZX method was created by Jonathan Forbes and Tomi Poutanen, adapted
-+ * by Microsoft Corporation.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_LZX_H
-+#define MSPACK_LZX_H 1
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* LZX compression / decompression definitions */
-+
-+/* some constants defined by the LZX specification */
-+#define LZX_MIN_MATCH                (2)
-+#define LZX_MAX_MATCH                (257)
-+#define LZX_NUM_CHARS                (256)
-+#define LZX_BLOCKTYPE_INVALID        (0)   /* also blocktypes 4-7 invalid */
-+#define LZX_BLOCKTYPE_VERBATIM       (1)
-+#define LZX_BLOCKTYPE_ALIGNED        (2)
-+#define LZX_BLOCKTYPE_UNCOMPRESSED   (3)
-+#define LZX_PRETREE_NUM_ELEMENTS     (20)
-+#define LZX_ALIGNED_NUM_ELEMENTS     (8)   /* aligned offset tree #elements */
-+#define LZX_NUM_PRIMARY_LENGTHS      (7)   /* this one missing from spec! */
-+#define LZX_NUM_SECONDARY_LENGTHS    (249) /* length tree #elements */
-+
-+/* LZX huffman defines: tweak tablebits as desired */
-+#define LZX_PRETREE_MAXSYMBOLS  (LZX_PRETREE_NUM_ELEMENTS)
-+#define LZX_PRETREE_TABLEBITS   (6)
-+#define LZX_MAINTREE_MAXSYMBOLS (LZX_NUM_CHARS + 290*8)
-+#define LZX_MAINTREE_TABLEBITS  (12)
-+#define LZX_LENGTH_MAXSYMBOLS   (LZX_NUM_SECONDARY_LENGTHS+1)
-+#define LZX_LENGTH_TABLEBITS    (12)
-+#define LZX_ALIGNED_MAXSYMBOLS  (LZX_ALIGNED_NUM_ELEMENTS)
-+#define LZX_ALIGNED_TABLEBITS   (7)
-+#define LZX_LENTABLE_SAFETY (64)  /* table decoding overruns are allowed */
-+
-+#define LZX_FRAME_SIZE (32768) /* the size of a frame in LZX */
-+
-+struct lzxd_stream {
-+  struct mspack_system *sys;      /* I/O routines                            */
-+  struct mspack_file   *input;    /* input file handle                       */
-+  struct mspack_file   *output;   /* output file handle                      */
-+
-+  off_t   offset;                 /* number of bytes actually output         */
-+  off_t   length;                 /* overall decompressed length of stream   */
-+
-+  unsigned char *window;          /* decoding window                         */
-+  unsigned int   window_size;     /* window size                             */
-+  unsigned int   ref_data_size;   /* LZX DELTA reference data size           */
-+  unsigned int   num_offsets;     /* number of match_offset entries in table */
-+  unsigned int   window_posn;     /* decompression offset within window      */
-+  unsigned int   frame_posn;      /* current frame offset within in window   */
-+  unsigned int   frame;           /* the number of 32kb frames processed     */
-+  unsigned int   reset_interval;  /* which frame do we reset the compressor? */
-+
-+  unsigned int   R0, R1, R2;      /* for the LRU offset system               */
-+  unsigned int   block_length;    /* uncompressed length of this LZX block   */
-+  unsigned int   block_remaining; /* uncompressed bytes still left to decode */
-+
-+  signed int     intel_filesize;  /* magic header value used for transform   */
-+  signed int     intel_curpos;    /* current offset in transform space       */
-+
-+  unsigned char  intel_started;   /* has intel E8 decoding started?          */
-+  unsigned char  block_type;      /* type of the current block               */
-+  unsigned char  header_read;     /* have we started decoding at all yet?    */
-+  unsigned char  input_end;       /* have we reached the end of input?       */
-+  unsigned char  is_delta;        /* does stream follow LZX DELTA spec?      */
-+
-+  int error;
-+
-+  /* I/O buffering */
-+  unsigned char *inbuf, *i_ptr, *i_end, *o_ptr, *o_end;
-+  unsigned int  bit_buffer, bits_left, inbuf_size;
-+
-+  /* huffman code lengths */
-+  unsigned char PRETREE_len  [LZX_PRETREE_MAXSYMBOLS  + LZX_LENTABLE_SAFETY];
-+  unsigned char MAINTREE_len [LZX_MAINTREE_MAXSYMBOLS + LZX_LENTABLE_SAFETY];
-+  unsigned char LENGTH_len   [LZX_LENGTH_MAXSYMBOLS   + LZX_LENTABLE_SAFETY];
-+  unsigned char ALIGNED_len  [LZX_ALIGNED_MAXSYMBOLS  + LZX_LENTABLE_SAFETY];
-+
-+  /* huffman decoding tables */
-+  unsigned short PRETREE_table [(1 << LZX_PRETREE_TABLEBITS) +
-+				(LZX_PRETREE_MAXSYMBOLS * 2)];
-+  unsigned short MAINTREE_table[(1 << LZX_MAINTREE_TABLEBITS) +
-+				(LZX_MAINTREE_MAXSYMBOLS * 2)];
-+  unsigned short LENGTH_table  [(1 << LZX_LENGTH_TABLEBITS) +
-+				(LZX_LENGTH_MAXSYMBOLS * 2)];
-+  unsigned short ALIGNED_table [(1 << LZX_ALIGNED_TABLEBITS) +
-+				(LZX_ALIGNED_MAXSYMBOLS * 2)];
-+  unsigned char LENGTH_empty;
-+
-+  /* this is used purely for doing the intel E8 transform */
-+  unsigned char  e8_buf[LZX_FRAME_SIZE];
-+};
-+
-+/**
-+ * Allocates and initialises LZX decompression state for decoding an LZX
-+ * stream.
-+ *
-+ * This routine uses system->alloc() to allocate memory. If memory
-+ * allocation fails, or the parameters to this function are invalid,
-+ * NULL is returned.
-+ *
-+ * @param system             an mspack_system structure used to read from
-+ *                           the input stream and write to the output
-+ *                           stream, also to allocate and free memory.
-+ * @param input              an input stream with the LZX data.
-+ * @param output             an output stream to write the decoded data to.
-+ * @param window_bits        the size of the decoding window, which must be
-+ *                           between 15 and 21 inclusive for regular LZX
-+ *                           data, or between 17 and 25 inclusive for
-+ *                           LZX DELTA data.
-+ * @param reset_interval     the interval at which the LZX bitstream is
-+ *                           reset, in multiples of LZX frames (32678
-+ *                           bytes), e.g. a value of 2 indicates the input
-+ *                           stream resets after every 65536 output bytes.
-+ *                           A value of 0 indicates that the bitstream never
-+ *                           resets, such as in CAB LZX streams.
-+ * @param input_buffer_size  the number of bytes to use as an input
-+ *                           bitstream buffer.
-+ * @param output_length      the length in bytes of the entirely
-+ *                           decompressed output stream, if known in
-+ *                           advance. It is used to correctly perform the
-+ *                           Intel E8 transformation, which must stop 6
-+ *                           bytes before the very end of the
-+ *                           decompressed stream. It is not otherwise used
-+ *                           or adhered to. If the full decompressed
-+ *                           length is known in advance, set it here.
-+ *                           If it is NOT known, use the value 0, and call
-+ *                           lzxd_set_output_length() once it is
-+ *                           known. If never set, 4 of the final 6 bytes
-+ *                           of the output stream may be incorrect.
-+ * @param is_delta           should be zero for all regular LZX data,
-+ *                           non-zero for LZX DELTA encoded data.
-+ * @return a pointer to an initialised lzxd_stream structure, or NULL if
-+ * there was not enough memory or parameters to the function were wrong.
-+ */
-+extern struct lzxd_stream *lzxd_init(struct mspack_system *system,
-+				     struct mspack_file *input,
-+				     struct mspack_file *output,
-+				     int window_bits,
-+				     int reset_interval,
-+				     int input_buffer_size,
-+				     off_t output_length,
-+                                     char is_delta);
-+
-+/* see description of output_length in lzxd_init() */
-+extern void lzxd_set_output_length(struct lzxd_stream *lzx,
-+				   off_t output_length);
-+
-+/**
-+ * Reads LZX DELTA reference data into the window and allows
-+ * lzxd_decompress() to reference it.
-+ *
-+ * Call this before the first call to lzxd_decompress().
-+
-+ * @param lzx    the LZX stream to apply this reference data to
-+ * @param system an mspack_system implementation to use with the
-+ *               input param. Only read() will be called.
-+ * @param input  an input file handle to read reference data using
-+ *               system->read().
-+ * @param length the length of the reference data. Cannot be longer
-+ *               than the LZX window size.
-+ * @return an error code, or MSPACK_ERR_OK if successful
-+ */
-+extern int lzxd_set_reference_data(struct lzxd_stream *lzx,
-+                                   struct mspack_system *system,
-+                                   struct mspack_file *input,
-+                                   unsigned int length);
-+
-+/**
-+ * Decompresses entire or partial LZX streams.
-+ *
-+ * The number of bytes of data that should be decompressed is given as the
-+ * out_bytes parameter. If more bytes are decoded than are needed, they
-+ * will be kept over for a later invocation.
-+ *
-+ * The output bytes will be passed to the system->write() function given in
-+ * lzxd_init(), using the output file handle given in lzxd_init(). More than
-+ * one call may be made to system->write().
-+
-+ * Input bytes will be read in as necessary using the system->read()
-+ * function given in lzxd_init(), using the input file handle given in
-+ * lzxd_init().  This will continue until system->read() returns 0 bytes,
-+ * or an error. Errors will be passed out of the function as
-+ * MSPACK_ERR_READ errors.  Input streams should convey an "end of input
-+ * stream" by refusing to supply all the bytes that LZX asks for when they
-+ * reach the end of the stream, rather than return an error code.
-+ *
-+ * If any error code other than MSPACK_ERR_OK is returned, the stream
-+ * should be considered unusable and lzxd_decompress() should not be
-+ * called again on this stream.
-+ *
-+ * @param lzx       LZX decompression state, as allocated by lzxd_init().
-+ * @param out_bytes the number of bytes of data to decompress.
-+ * @return an error code, or MSPACK_ERR_OK if successful
-+ */
-+extern int lzxd_decompress(struct lzxd_stream *lzx, off_t out_bytes);
-+
-+/**
-+ * Frees all state associated with an LZX data stream. This will call
-+ * system->free() using the system pointer given in lzxd_init().
-+ *
-+ * @param lzx LZX decompression state to free.
-+ */
-+void lzxd_free(struct lzxd_stream *lzx);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/lzxc.c b/libclamav/libmspack-0.4alpha/mspack/lzxc.c
-new file mode 100644
-index 000000000000..1207a0d747d5
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/lzxc.c
-@@ -0,0 +1,18 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * The LZX method was created by Jonathan Forbes and Tomi Poutanen, adapted
-+ * by Microsoft Corporation.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* LZX compression implementation */
-+
-+#include <system.h>
-+#include <lzx.h>
-+
-+/* todo */
-diff --git a/libclamav/libmspack-0.4alpha/mspack/lzxd.c b/libclamav/libmspack-0.4alpha/mspack/lzxd.c
-new file mode 100644
-index 000000000000..b552e78414c1
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/lzxd.c
-@@ -0,0 +1,895 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2013 Stuart Caie.
-+ *
-+ * The LZX method was created by Jonathan Forbes and Tomi Poutanen, adapted
-+ * by Microsoft Corporation.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* LZX decompression implementation */
-+
-+#include <system.h>
-+#include <lzx.h>
-+
-+/* Microsoft's LZX document (in cab-sdk.exe) and their implementation
-+ * of the com.ms.util.cab Java package do not concur.
-+ *
-+ * In the LZX document, there is a table showing the correlation between
-+ * window size and the number of position slots. It states that the 1MB
-+ * window = 40 slots and the 2MB window = 42 slots. In the implementation,
-+ * 1MB = 42 slots, 2MB = 50 slots. The actual calculation is 'find the
-+ * first slot whose position base is equal to or more than the required
-+ * window size'. This would explain why other tables in the document refer
-+ * to 50 slots rather than 42.
-+ *
-+ * The constant NUM_PRIMARY_LENGTHS used in the decompression pseudocode
-+ * is not defined in the specification.
-+ *
-+ * The LZX document does not state the uncompressed block has an
-+ * uncompressed length field. Where does this length field come from, so
-+ * we can know how large the block is? The implementation has it as the 24
-+ * bits following after the 3 blocktype bits, before the alignment
-+ * padding.
-+ *
-+ * The LZX document states that aligned offset blocks have their aligned
-+ * offset huffman tree AFTER the main and length trees. The implementation
-+ * suggests that the aligned offset tree is BEFORE the main and length
-+ * trees.
-+ *
-+ * The LZX document decoding algorithm states that, in an aligned offset
-+ * block, if an extra_bits value is 1, 2 or 3, then that number of bits
-+ * should be read and the result added to the match offset. This is
-+ * correct for 1 and 2, but not 3, where just a huffman symbol (using the
-+ * aligned tree) should be read.
-+ *
-+ * Regarding the E8 preprocessing, the LZX document states 'No translation
-+ * may be performed on the last 6 bytes of the input block'. This is
-+ * correct.  However, the pseudocode provided checks for the *E8 leader*
-+ * up to the last 6 bytes. If the leader appears between -10 and -7 bytes
-+ * from the end, this would cause the next four bytes to be modified, at
-+ * least one of which would be in the last 6 bytes, which is not allowed
-+ * according to the spec.
-+ *
-+ * The specification states that the huffman trees must always contain at
-+ * least one element. However, many CAB files contain blocks where the
-+ * length tree is completely empty (because there are no matches), and
-+ * this is expected to succeed.
-+ *
-+ * The errors in LZX documentation appear have been corrected in the
-+ * new documentation for the LZX DELTA format.
-+ *
-+ *     http://msdn.microsoft.com/en-us/library/cc483133.aspx
-+ *
-+ * However, this is a different format, an extension of regular LZX.
-+ * I have noticed the following differences, there may be more:
-+ *
-+ * The maximum window size has increased from 2MB to 32MB. This also
-+ * increases the maximum number of position slots, etc.
-+ *
-+ * If the match length is 257 (the maximum possible), this signals
-+ * a further length decoding step, that allows for matches up to
-+ * 33024 bytes long.
-+ *
-+ * The format now allows for "reference data", supplied by the caller.
-+ * If match offsets go further back than the number of bytes
-+ * decompressed so far, that is them accessing the reference data.
-+ */
-+
-+/* import bit-reading macros and code */
-+#define BITS_TYPE struct lzxd_stream
-+#define BITS_VAR lzx
-+#define BITS_ORDER_MSB
-+#define READ_BYTES do {			\
-+    unsigned char b0, b1;		\
-+    READ_IF_NEEDED; b0 = *i_ptr++;	\
-+    READ_IF_NEEDED; b1 = *i_ptr++;	\
-+    INJECT_BITS((b1 << 8) | b0, 16);	\
-+} while (0)
-+#include <readbits.h>
-+
-+/* import huffman-reading macros and code */
-+#define TABLEBITS(tbl)      LZX_##tbl##_TABLEBITS
-+#define MAXSYMBOLS(tbl)     LZX_##tbl##_MAXSYMBOLS
-+#define HUFF_TABLE(tbl,idx) lzx->tbl##_table[idx]
-+#define HUFF_LEN(tbl,idx)   lzx->tbl##_len[idx]
-+#define HUFF_ERROR          return lzx->error = MSPACK_ERR_DECRUNCH
-+#include <readhuff.h>
-+
-+/* BUILD_TABLE(tbl) builds a huffman lookup table from code lengths */
-+#define BUILD_TABLE(tbl)						\
-+    if (make_decode_table(MAXSYMBOLS(tbl), TABLEBITS(tbl),		\
-+			  &HUFF_LEN(tbl,0), &HUFF_TABLE(tbl,0)))	\
-+    {									\
-+        D(("failed to build %s table", #tbl))				\
-+	return lzx->error = MSPACK_ERR_DECRUNCH;			\
-+    }
-+
-+#define BUILD_TABLE_MAYBE_EMPTY(tbl) do {				\
-+    lzx->tbl##_empty = 0;						\
-+    if (make_decode_table(MAXSYMBOLS(tbl), TABLEBITS(tbl),		\
-+                          &HUFF_LEN(tbl,0), &HUFF_TABLE(tbl,0)))	\
-+    {									\
-+	for (i = 0; i < MAXSYMBOLS(tbl); i++) {				\
-+	    if (HUFF_LEN(tbl, i) > 0) {					\
-+		D(("failed to build %s table", #tbl))			\
-+		return lzx->error = MSPACK_ERR_DECRUNCH;		\
-+	    }								\
-+	}								\
-+	/* empty tree - allow it, but don't decode symbols with it */	\
-+	lzx->tbl##_empty = 1;						\
-+    }									\
-+} while (0)
-+
-+/* READ_LENGTHS(tablename, first, last) reads in code lengths for symbols
-+ * first to last in the given table. The code lengths are stored in their
-+ * own special LZX way.
-+ */
-+#define READ_LENGTHS(tbl, first, last) do {		\
-+  STORE_BITS;						\
-+  if (lzxd_read_lens(lzx, &HUFF_LEN(tbl, 0), (first),	\
-+    (unsigned int)(last))) return lzx->error;		\
-+  RESTORE_BITS;						\
-+} while (0)
-+
-+static int lzxd_read_lens(struct lzxd_stream *lzx, unsigned char *lens,
-+			  unsigned int first, unsigned int last)
-+{
-+  /* bit buffer and huffman symbol decode variables */
-+  register unsigned int bit_buffer;
-+  register int bits_left, i;
-+  register unsigned short sym;
-+  unsigned char *i_ptr, *i_end;
-+
-+  unsigned int x, y;
-+  int z;
-+
-+  RESTORE_BITS;
-+  
-+  /* read lengths for pretree (20 symbols, lengths stored in fixed 4 bits) */
-+  for (x = 0; x < 20; x++) {
-+    READ_BITS(y, 4);
-+    lzx->PRETREE_len[x] = y;
-+  }
-+  BUILD_TABLE(PRETREE);
-+
-+  for (x = first; x < last; ) {
-+    READ_HUFFSYM(PRETREE, z);
-+    if (z == 17) {
-+      /* code = 17, run of ([read 4 bits]+4) zeros */
-+      READ_BITS(y, 4); y += 4;
-+      while (y--) lens[x++] = 0;
-+    }
-+    else if (z == 18) {
-+      /* code = 18, run of ([read 5 bits]+20) zeros */
-+      READ_BITS(y, 5); y += 20;
-+      while (y--) lens[x++] = 0;
-+    }
-+    else if (z == 19) {
-+      /* code = 19, run of ([read 1 bit]+4) [read huffman symbol] */
-+      READ_BITS(y, 1); y += 4;
-+      READ_HUFFSYM(PRETREE, z);
-+      z = lens[x] - z; if (z < 0) z += 17;
-+      while (y--) lens[x++] = z;
-+    }
-+    else {
-+      /* code = 0 to 16, delta current length entry */
-+      z = lens[x] - z; if (z < 0) z += 17;
-+      lens[x++] = z;
-+    }
-+  }
-+
-+  STORE_BITS;
-+
-+  return MSPACK_ERR_OK;
-+}
-+
-+/* LZX static data tables:
-+ *
-+ * LZX uses 'position slots' to represent match offsets.  For every match,
-+ * a small 'position slot' number and a small offset from that slot are
-+ * encoded instead of one large offset.
-+ *
-+ * The number of slots is decided by how many are needed to encode the
-+ * largest offset for a given window size. This is easy when the gap between
-+ * slots is less than 128Kb, it's a linear relationship. But when extra_bits
-+ * reaches its limit of 17 (because LZX can only ensure reading 17 bits of
-+ * data at a time), we can only jump 128Kb at a time and have to start
-+ * using more and more position slots as each window size doubles.
-+ *
-+ * position_base[] is an index to the position slot bases
-+ *
-+ * extra_bits[] states how many bits of offset-from-base data is needed.
-+ *
-+ * They are calculated as follows:
-+ * extra_bits[i] = 0 where i < 4
-+ * extra_bits[i] = floor(i/2)-1 where i >= 4 && i < 36
-+ * extra_bits[i] = 17 where i >= 36
-+ * position_base[0] = 0
-+ * position_base[i] = position_base[i-1] + (1 << extra_bits[i-1])
-+ */
-+static const unsigned int position_slots[11] = {
-+    30, 32, 34, 36, 38, 42, 50, 66, 98, 162, 290
-+};
-+static const unsigned char extra_bits[36] = {
-+    0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+    9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16
-+};
-+static const unsigned int position_base[290] = {
-+    0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512,
-+    768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576, 32768,
-+    49152, 65536, 98304, 131072, 196608, 262144, 393216, 524288, 655360,
-+    786432, 917504, 1048576, 1179648, 1310720, 1441792, 1572864, 1703936,
-+    1835008, 1966080, 2097152, 2228224, 2359296, 2490368, 2621440, 2752512,
-+    2883584, 3014656, 3145728, 3276800, 3407872, 3538944, 3670016, 3801088,
-+    3932160, 4063232, 4194304, 4325376, 4456448, 4587520, 4718592, 4849664,
-+    4980736, 5111808, 5242880, 5373952, 5505024, 5636096, 5767168, 5898240,
-+    6029312, 6160384, 6291456, 6422528, 6553600, 6684672, 6815744, 6946816,
-+    7077888, 7208960, 7340032, 7471104, 7602176, 7733248, 7864320, 7995392,
-+    8126464, 8257536, 8388608, 8519680, 8650752, 8781824, 8912896, 9043968,
-+    9175040, 9306112, 9437184, 9568256, 9699328, 9830400, 9961472, 10092544,
-+    10223616, 10354688, 10485760, 10616832, 10747904, 10878976, 11010048,
-+    11141120, 11272192, 11403264, 11534336, 11665408, 11796480, 11927552,
-+    12058624, 12189696, 12320768, 12451840, 12582912, 12713984, 12845056,
-+    12976128, 13107200, 13238272, 13369344, 13500416, 13631488, 13762560,
-+    13893632, 14024704, 14155776, 14286848, 14417920, 14548992, 14680064,
-+    14811136, 14942208, 15073280, 15204352, 15335424, 15466496, 15597568,
-+    15728640, 15859712, 15990784, 16121856, 16252928, 16384000, 16515072,
-+    16646144, 16777216, 16908288, 17039360, 17170432, 17301504, 17432576,
-+    17563648, 17694720, 17825792, 17956864, 18087936, 18219008, 18350080,
-+    18481152, 18612224, 18743296, 18874368, 19005440, 19136512, 19267584,
-+    19398656, 19529728, 19660800, 19791872, 19922944, 20054016, 20185088,
-+    20316160, 20447232, 20578304, 20709376, 20840448, 20971520, 21102592,
-+    21233664, 21364736, 21495808, 21626880, 21757952, 21889024, 22020096,
-+    22151168, 22282240, 22413312, 22544384, 22675456, 22806528, 22937600,
-+    23068672, 23199744, 23330816, 23461888, 23592960, 23724032, 23855104,
-+    23986176, 24117248, 24248320, 24379392, 24510464, 24641536, 24772608,
-+    24903680, 25034752, 25165824, 25296896, 25427968, 25559040, 25690112,
-+    25821184, 25952256, 26083328, 26214400, 26345472, 26476544, 26607616,
-+    26738688, 26869760, 27000832, 27131904, 27262976, 27394048, 27525120,
-+    27656192, 27787264, 27918336, 28049408, 28180480, 28311552, 28442624,
-+    28573696, 28704768, 28835840, 28966912, 29097984, 29229056, 29360128,
-+    29491200, 29622272, 29753344, 29884416, 30015488, 30146560, 30277632,
-+    30408704, 30539776, 30670848, 30801920, 30932992, 31064064, 31195136,
-+    31326208, 31457280, 31588352, 31719424, 31850496, 31981568, 32112640,
-+    32243712, 32374784, 32505856, 32636928, 32768000, 32899072, 33030144,
-+    33161216, 33292288, 33423360
-+};
-+
-+static void lzxd_reset_state(struct lzxd_stream *lzx) {
-+  int i;
-+
-+  lzx->R0              = 1;
-+  lzx->R1              = 1;
-+  lzx->R2              = 1;
-+  lzx->header_read     = 0;
-+  lzx->block_remaining = 0;
-+  lzx->block_type      = LZX_BLOCKTYPE_INVALID;
-+
-+  /* initialise tables to 0 (because deltas will be applied to them) */
-+  for (i = 0; i < LZX_MAINTREE_MAXSYMBOLS; i++) lzx->MAINTREE_len[i] = 0;
-+  for (i = 0; i < LZX_LENGTH_MAXSYMBOLS; i++)   lzx->LENGTH_len[i]   = 0;
-+}
-+
-+/*-------- main LZX code --------*/
-+
-+struct lzxd_stream *lzxd_init(struct mspack_system *system,
-+			      struct mspack_file *input,
-+			      struct mspack_file *output,
-+			      int window_bits,
-+			      int reset_interval,
-+			      int input_buffer_size,
-+			      off_t output_length,
-+			      char is_delta)
-+{
-+  unsigned int window_size = 1 << window_bits;
-+  struct lzxd_stream *lzx;
-+
-+  if (!system) return NULL;
-+
-+  /* LZX DELTA window sizes are between 2^17 (128KiB) and 2^25 (32MiB),
-+   * regular LZX windows are between 2^15 (32KiB) and 2^21 (2MiB)
-+   */
-+  if (is_delta) {
-+      if (window_bits < 17 || window_bits > 25) return NULL;
-+  }
-+  else {
-+      if (window_bits < 15 || window_bits > 21) return NULL;
-+  }
-+
-+  input_buffer_size = (input_buffer_size + 1) & -2;
-+  if (!input_buffer_size) return NULL;
-+
-+  /* allocate decompression state */
-+  if (!(lzx = (struct lzxd_stream *) system->alloc(system, sizeof(struct lzxd_stream)))) {
-+    return NULL;
-+  }
-+
-+  /* allocate decompression window and input buffer */
-+  lzx->window = (unsigned char *) system->alloc(system, (size_t) window_size);
-+  lzx->inbuf  = (unsigned char *) system->alloc(system, (size_t) input_buffer_size);
-+  if (!lzx->window || !lzx->inbuf) {
-+    system->free(lzx->window);
-+    system->free(lzx->inbuf);
-+    system->free(lzx);
-+    return NULL;
-+  }
-+
-+  /* initialise decompression state */
-+  lzx->sys             = system;
-+  lzx->input           = input;
-+  lzx->output          = output;
-+  lzx->offset          = 0;
-+  lzx->length          = output_length;
-+
-+  lzx->inbuf_size      = input_buffer_size;
-+  lzx->window_size     = 1 << window_bits;
-+  lzx->ref_data_size   = 0;
-+  lzx->window_posn     = 0;
-+  lzx->frame_posn      = 0;
-+  lzx->frame           = 0;
-+  lzx->reset_interval  = reset_interval;
-+  lzx->intel_filesize  = 0;
-+  lzx->intel_curpos    = 0;
-+  lzx->intel_started   = 0;
-+  lzx->error           = MSPACK_ERR_OK;
-+  lzx->num_offsets     = position_slots[window_bits - 15] << 3;
-+  lzx->is_delta        = is_delta;
-+
-+  lzx->o_ptr = lzx->o_end = &lzx->e8_buf[0];
-+  lzxd_reset_state(lzx);
-+  INIT_BITS;
-+  return lzx;
-+}
-+
-+int lzxd_set_reference_data(struct lzxd_stream *lzx,
-+			    struct mspack_system *system,
-+			    struct mspack_file *input,
-+			    unsigned int length)
-+{
-+    if (!lzx) return MSPACK_ERR_ARGS;
-+
-+    if (!lzx->is_delta) {
-+        D(("only LZX DELTA streams support reference data"))
-+        return MSPACK_ERR_ARGS;
-+    }
-+    if (lzx->offset) {
-+	D(("too late to set reference data after decoding starts"))
-+	return MSPACK_ERR_ARGS;
-+    }
-+    if (length > lzx->window_size) {
-+	D(("reference length (%u) is longer than the window", length))
-+	return MSPACK_ERR_ARGS;
-+    }
-+    if (length > 0 && (!system || !input)) {
-+        D(("length > 0 but no system or input"))
-+        return MSPACK_ERR_ARGS;
-+    }
-+
-+    lzx->ref_data_size = length;
-+    if (length > 0) {
-+        /* copy reference data */
-+        unsigned char *pos = &lzx->window[lzx->window_size - length];
-+	int bytes = system->read(input, pos, length);
-+        /* length can't be more than 2^25, so no signedness problem */
-+	if (bytes < (int)length) return MSPACK_ERR_READ;
-+    }
-+    lzx->ref_data_size = length;
-+    return MSPACK_ERR_OK;
-+}
-+
-+void lzxd_set_output_length(struct lzxd_stream *lzx, off_t out_bytes) {
-+  if (lzx) lzx->length = out_bytes;
-+}
-+
-+int lzxd_decompress(struct lzxd_stream *lzx, off_t out_bytes) {
-+  /* bitstream and huffman reading variables */
-+  register unsigned int bit_buffer;
-+  register int bits_left, i=0;
-+  unsigned char *i_ptr, *i_end;
-+  register unsigned short sym;
-+
-+  int match_length, length_footer, extra, verbatim_bits, bytes_todo;
-+  int this_run, main_element, aligned_bits, j;
-+  unsigned char *window, *runsrc, *rundest, buf[12];
-+  unsigned int frame_size=0, end_frame, match_offset, window_posn;
-+  unsigned int R0, R1, R2;
-+
-+  /* easy answers */
-+  if (!lzx || (out_bytes < 0)) return MSPACK_ERR_ARGS;
-+  if (lzx->error) return lzx->error;
-+
-+  /* flush out any stored-up bytes before we begin */
-+  i = lzx->o_end - lzx->o_ptr;
-+  if ((off_t) i > out_bytes) i = (int) out_bytes;
-+  if (i) {
-+    if (lzx->sys->write(lzx->output, lzx->o_ptr, i) != i) {
-+      return lzx->error = MSPACK_ERR_WRITE;
-+    }
-+    lzx->o_ptr  += i;
-+    lzx->offset += i;
-+    out_bytes   -= i;
-+  }
-+  if (out_bytes == 0) return MSPACK_ERR_OK;
-+
-+  /* restore local state */
-+  RESTORE_BITS;
-+  window = lzx->window;
-+  window_posn = lzx->window_posn;
-+  R0 = lzx->R0;
-+  R1 = lzx->R1;
-+  R2 = lzx->R2;
-+
-+  end_frame = (unsigned int)((lzx->offset + out_bytes) / LZX_FRAME_SIZE) + 1;
-+
-+  while (lzx->frame < end_frame) {
-+    /* have we reached the reset interval? (if there is one?) */
-+    if (lzx->reset_interval && ((lzx->frame % lzx->reset_interval) == 0)) {
-+      if (lzx->block_remaining) {
-+	D(("%d bytes remaining at reset interval", lzx->block_remaining))
-+	return lzx->error = MSPACK_ERR_DECRUNCH;
-+      }
-+
-+      /* re-read the intel header and reset the huffman lengths */
-+      lzxd_reset_state(lzx);
-+      R0 = lzx->R0;
-+      R1 = lzx->R1;
-+      R2 = lzx->R2;
-+    }
-+
-+    /* LZX DELTA format has chunk_size, not present in LZX format */
-+    if (lzx->is_delta) {
-+      ENSURE_BITS(16);
-+      REMOVE_BITS(16);
-+    }
-+
-+    /* read header if necessary */
-+    if (!lzx->header_read) {
-+      /* read 1 bit. if bit=0, intel filesize = 0.
-+       * if bit=1, read intel filesize (32 bits) */
-+      j = 0; READ_BITS(i, 1); if (i) { READ_BITS(i, 16); READ_BITS(j, 16); }
-+      lzx->intel_filesize = (i << 16) | j;
-+      lzx->header_read = 1;
-+    } 
-+
-+    /* calculate size of frame: all frames are 32k except the final frame
-+     * which is 32kb or less. this can only be calculated when lzx->length
-+     * has been filled in. */
-+    frame_size = LZX_FRAME_SIZE;
-+    if (lzx->length && (lzx->length - lzx->offset) < (off_t)frame_size) {
-+      frame_size = lzx->length - lzx->offset;
-+    }
-+
-+    /* decode until one more frame is available */
-+    bytes_todo = lzx->frame_posn + frame_size - window_posn;
-+    while (bytes_todo > 0) {
-+      /* initialise new block, if one is needed */
-+      if (lzx->block_remaining == 0) {
-+	/* realign if previous block was an odd-sized UNCOMPRESSED block */
-+	if ((lzx->block_type == LZX_BLOCKTYPE_UNCOMPRESSED) &&
-+	    (lzx->block_length & 1))
-+	{
-+	  READ_IF_NEEDED;
-+	  i_ptr++;
-+	}
-+
-+	/* read block type (3 bits) and block length (24 bits) */
-+	READ_BITS(lzx->block_type, 3);
-+	READ_BITS(i, 16); READ_BITS(j, 8);
-+	lzx->block_remaining = lzx->block_length = (i << 8) | j;
-+	/*D(("new block t%d len %u", lzx->block_type, lzx->block_length))*/
-+
-+	/* read individual block headers */
-+	switch (lzx->block_type) {
-+	case LZX_BLOCKTYPE_ALIGNED:
-+	  /* read lengths of and build aligned huffman decoding tree */
-+	  for (i = 0; i < 8; i++) { READ_BITS(j, 3); lzx->ALIGNED_len[i] = j; }
-+	  BUILD_TABLE(ALIGNED);
-+	  /* no break -- rest of aligned header is same as verbatim */
-+	case LZX_BLOCKTYPE_VERBATIM:
-+	  /* read lengths of and build main huffman decoding tree */
-+	  READ_LENGTHS(MAINTREE, 0, 256);
-+	  READ_LENGTHS(MAINTREE, 256, LZX_NUM_CHARS + lzx->num_offsets);
-+	  BUILD_TABLE(MAINTREE);
-+	  /* if the literal 0xE8 is anywhere in the block... */
-+	  if (lzx->MAINTREE_len[0xE8] != 0) lzx->intel_started = 1;
-+	  /* read lengths of and build lengths huffman decoding tree */
-+	  READ_LENGTHS(LENGTH, 0, LZX_NUM_SECONDARY_LENGTHS);
-+	  BUILD_TABLE_MAYBE_EMPTY(LENGTH);
-+	  break;
-+
-+	case LZX_BLOCKTYPE_UNCOMPRESSED:
-+	  /* because we can't assume otherwise */
-+	  lzx->intel_started = 1;
-+
-+	  /* read 1-16 (not 0-15) bits to align to bytes */
-+	  ENSURE_BITS(16);
-+	  if (bits_left > 16) i_ptr -= 2;
-+	  bits_left = 0; bit_buffer = 0;
-+
-+	  /* read 12 bytes of stored R0 / R1 / R2 values */
-+	  for (rundest = &buf[0], i = 0; i < 12; i++) {
-+	    READ_IF_NEEDED;
-+	    *rundest++ = *i_ptr++;
-+	  }
-+	  R0 = buf[0] | (buf[1] << 8) | (buf[2]  << 16) | (buf[3]  << 24);
-+	  R1 = buf[4] | (buf[5] << 8) | (buf[6]  << 16) | (buf[7]  << 24);
-+	  R2 = buf[8] | (buf[9] << 8) | (buf[10] << 16) | (buf[11] << 24);
-+	  break;
-+
-+	default:
-+	  D(("bad block type"))
-+	  return lzx->error = MSPACK_ERR_DECRUNCH;
-+	}
-+      }
-+
-+      /* decode more of the block:
-+       * run = min(what's available, what's needed) */
-+      this_run = lzx->block_remaining;
-+      if (this_run > bytes_todo) this_run = bytes_todo;
-+
-+      /* assume we decode exactly this_run bytes, for now */
-+      bytes_todo           -= this_run;
-+      lzx->block_remaining -= this_run;
-+
-+      /* decode at least this_run bytes */
-+      switch (lzx->block_type) {
-+      case LZX_BLOCKTYPE_VERBATIM:
-+	while (this_run > 0) {
-+	  READ_HUFFSYM(MAINTREE, main_element);
-+	  if (main_element < LZX_NUM_CHARS) {
-+	    /* literal: 0 to LZX_NUM_CHARS-1 */
-+	    window[window_posn++] = main_element;
-+	    this_run--;
-+	  }
-+	  else {
-+	    /* match: LZX_NUM_CHARS + ((slot<<3) | length_header (3 bits)) */
-+	    main_element -= LZX_NUM_CHARS;
-+
-+	    /* get match length */
-+	    match_length = main_element & LZX_NUM_PRIMARY_LENGTHS;
-+	    if (match_length == LZX_NUM_PRIMARY_LENGTHS) {
-+	      if (lzx->LENGTH_empty) {
-+                D(("LENGTH symbol needed but tree is empty"))
-+                return lzx->error = MSPACK_ERR_DECRUNCH;
-+              }
-+	      READ_HUFFSYM(LENGTH, length_footer);
-+	      match_length += length_footer;
-+	    }
-+	    match_length += LZX_MIN_MATCH;
-+
-+	    /* get match offset */
-+	    switch ((match_offset = (main_element >> 3))) {
-+	    case 0: match_offset = R0;                                  break;
-+	    case 1: match_offset = R1; R1=R0;        R0 = match_offset; break;
-+	    case 2: match_offset = R2; R2=R0;        R0 = match_offset; break;
-+	    case 3: match_offset = 1;  R2=R1; R1=R0; R0 = match_offset; break;
-+	    default:
-+	      extra = (match_offset >= 36) ? 17 : extra_bits[match_offset];
-+	      READ_BITS(verbatim_bits, extra);
-+	      match_offset = position_base[match_offset] - 2 + verbatim_bits;
-+	      R2 = R1; R1 = R0; R0 = match_offset;
-+	    }
-+
-+	    /* LZX DELTA uses max match length to signal even longer match */
-+	    if (match_length == LZX_MAX_MATCH && lzx->is_delta) {
-+		int extra_len = 0;
-+		ENSURE_BITS(3); /* 4 entry huffman tree */
-+		if (PEEK_BITS(1) == 0) {
-+		    REMOVE_BITS(1); /* '0' -> 8 extra length bits */
-+		    READ_BITS(extra_len, 8);
-+		}
-+		else if (PEEK_BITS(2) == 2) {
-+		    REMOVE_BITS(2); /* '10' -> 10 extra length bits + 0x100 */
-+		    READ_BITS(extra_len, 10);
-+		    extra_len += 0x100;
-+		}
-+		else if (PEEK_BITS(3) == 6) {
-+		    REMOVE_BITS(3); /* '110' -> 12 extra length bits + 0x500 */
-+		    READ_BITS(extra_len, 12);
-+		    extra_len += 0x500;
-+		}
-+		else {
-+		    REMOVE_BITS(3); /* '111' -> 15 extra length bits */
-+		    READ_BITS(extra_len, 15);
-+		}
-+		match_length += extra_len;
-+	    }
-+
-+	    if ((window_posn + match_length) > lzx->window_size) {
-+	      D(("match ran over window wrap"))
-+	      return lzx->error = MSPACK_ERR_DECRUNCH;
-+	    }
-+	    
-+	    /* copy match */
-+	    rundest = &window[window_posn];
-+	    i = match_length;
-+	    /* does match offset wrap the window? */
-+	    if (match_offset > window_posn) {
-+	      if (match_offset > lzx->offset &&
-+		  (match_offset - window_posn) > lzx->ref_data_size)
-+	      {
-+		D(("match offset beyond LZX stream"))
-+		return lzx->error = MSPACK_ERR_DECRUNCH;
-+	      }
-+	      /* j = length from match offset to end of window */
-+	      j = match_offset - window_posn;
-+	      if (j > (int) lzx->window_size) {
-+		D(("match offset beyond window boundaries"))
-+		return lzx->error = MSPACK_ERR_DECRUNCH;
-+	      }
-+	      runsrc = &window[lzx->window_size - j];
-+	      if (j < i) {
-+		/* if match goes over the window edge, do two copy runs */
-+		i -= j; while (j-- > 0) *rundest++ = *runsrc++;
-+		runsrc = window;
-+	      }
-+	      while (i-- > 0) *rundest++ = *runsrc++;
-+	    }
-+	    else {
-+	      runsrc = rundest - match_offset;
-+	      while (i-- > 0) *rundest++ = *runsrc++;
-+	    }
-+
-+	    this_run    -= match_length;
-+	    window_posn += match_length;
-+	  }
-+	} /* while (this_run > 0) */
-+	break;
-+
-+      case LZX_BLOCKTYPE_ALIGNED:
-+	while (this_run > 0) {
-+	  READ_HUFFSYM(MAINTREE, main_element);
-+	  if (main_element < LZX_NUM_CHARS) {
-+	    /* literal: 0 to LZX_NUM_CHARS-1 */
-+	    window[window_posn++] = main_element;
-+	    this_run--;
-+	  }
-+	  else {
-+	    /* match: LZX_NUM_CHARS + ((slot<<3) | length_header (3 bits)) */
-+	    main_element -= LZX_NUM_CHARS;
-+
-+	    /* get match length */
-+	    match_length = main_element & LZX_NUM_PRIMARY_LENGTHS;
-+	    if (match_length == LZX_NUM_PRIMARY_LENGTHS) {
-+              if (lzx->LENGTH_empty) {
-+                D(("LENGTH symbol needed but tree is empty"))
-+                return lzx->error = MSPACK_ERR_DECRUNCH;
-+              } 
-+	      READ_HUFFSYM(LENGTH, length_footer);
-+	      match_length += length_footer;
-+	    }
-+	    match_length += LZX_MIN_MATCH;
-+
-+	    /* get match offset */
-+	    switch ((match_offset = (main_element >> 3))) {
-+	    case 0: match_offset = R0;                             break;
-+	    case 1: match_offset = R1; R1 = R0; R0 = match_offset; break;
-+	    case 2: match_offset = R2; R2 = R0; R0 = match_offset; break;
-+	    default:
-+	      extra = (match_offset >= 36) ? 17 : extra_bits[match_offset];
-+	      match_offset = position_base[match_offset] - 2;
-+	      if (extra > 3) {
-+		/* verbatim and aligned bits */
-+		extra -= 3;
-+		READ_BITS(verbatim_bits, extra);
-+		match_offset += (verbatim_bits << 3);
-+		READ_HUFFSYM(ALIGNED, aligned_bits);
-+		match_offset += aligned_bits;
-+	      }
-+	      else if (extra == 3) {
-+		/* aligned bits only */
-+		READ_HUFFSYM(ALIGNED, aligned_bits);
-+		match_offset += aligned_bits;
-+	      }
-+	      else if (extra > 0) { /* extra==1, extra==2 */
-+		/* verbatim bits only */
-+		READ_BITS(verbatim_bits, extra);
-+		match_offset += verbatim_bits;
-+	      }
-+	      else /* extra == 0 */ {
-+		/* ??? not defined in LZX specification! */
-+		match_offset = 1;
-+	      }
-+	      /* update repeated offset LRU queue */
-+	      R2 = R1; R1 = R0; R0 = match_offset;
-+	    }
-+
-+	    /* LZX DELTA uses max match length to signal even longer match */
-+	    if (match_length == LZX_MAX_MATCH && lzx->is_delta) {
-+		int extra_len = 0;
-+		ENSURE_BITS(3); /* 4 entry huffman tree */
-+		if (PEEK_BITS(1) == 0) {
-+		    REMOVE_BITS(1); /* '0' -> 8 extra length bits */
-+		    READ_BITS(extra_len, 8);
-+		}
-+		else if (PEEK_BITS(2) == 2) {
-+		    REMOVE_BITS(2); /* '10' -> 10 extra length bits + 0x100 */
-+		    READ_BITS(extra_len, 10);
-+		    extra_len += 0x100;
-+		}
-+		else if (PEEK_BITS(3) == 6) {
-+		    REMOVE_BITS(3); /* '110' -> 12 extra length bits + 0x500 */
-+		    READ_BITS(extra_len, 12);
-+		    extra_len += 0x500;
-+		}
-+		else {
-+		    REMOVE_BITS(3); /* '111' -> 15 extra length bits */
-+		    READ_BITS(extra_len, 15);
-+		}
-+		match_length += extra_len;
-+	    }
-+
-+	    if ((window_posn + match_length) > lzx->window_size) {
-+	      D(("match ran over window wrap"))
-+	      return lzx->error = MSPACK_ERR_DECRUNCH;
-+	    }
-+
-+	    /* copy match */
-+	    rundest = &window[window_posn];
-+	    i = match_length;
-+	    /* does match offset wrap the window? */
-+	    if (match_offset > window_posn) {
-+	      if (match_offset > lzx->offset &&
-+		  (match_offset - window_posn) > lzx->ref_data_size)
-+	      {
-+		D(("match offset beyond LZX stream"))
-+		return lzx->error = MSPACK_ERR_DECRUNCH;
-+	      }
-+	      /* j = length from match offset to end of window */
-+	      j = match_offset - window_posn;
-+	      if (j > (int) lzx->window_size) {
-+		D(("match offset beyond window boundaries"))
-+		return lzx->error = MSPACK_ERR_DECRUNCH;
-+	      }
-+	      runsrc = &window[lzx->window_size - j];
-+	      if (j < i) {
-+		/* if match goes over the window edge, do two copy runs */
-+		i -= j; while (j-- > 0) *rundest++ = *runsrc++;
-+		runsrc = window;
-+	      }
-+	      while (i-- > 0) *rundest++ = *runsrc++;
-+	    }
-+	    else {
-+	      runsrc = rundest - match_offset;
-+	      while (i-- > 0) *rundest++ = *runsrc++;
-+	    }
-+
-+	    this_run    -= match_length;
-+	    window_posn += match_length;
-+	  }
-+	} /* while (this_run > 0) */
-+	break;
-+
-+      case LZX_BLOCKTYPE_UNCOMPRESSED:
-+	/* as this_run is limited not to wrap a frame, this also means it
-+	 * won't wrap the window (as the window is a multiple of 32k) */
-+	rundest = &window[window_posn];
-+	window_posn += this_run;
-+	while (this_run > 0) {
-+	  if ((i = i_end - i_ptr) == 0) {
-+	    READ_IF_NEEDED;
-+	  }
-+	  else {
-+	    if (i > this_run) i = this_run;
-+	    lzx->sys->copy(i_ptr, rundest, (size_t) i);
-+	    rundest  += i;
-+	    i_ptr    += i;
-+	    this_run -= i;
-+	  }
-+	}
-+	break;
-+
-+      default:
-+	return lzx->error = MSPACK_ERR_DECRUNCH; /* might as well */
-+      }
-+
-+      /* did the final match overrun our desired this_run length? */
-+      if (this_run < 0) {
-+	if ((unsigned int)(-this_run) > lzx->block_remaining) {
-+	  D(("overrun went past end of block by %d (%d remaining)",
-+	     -this_run, lzx->block_remaining ))
-+	  return lzx->error = MSPACK_ERR_DECRUNCH;
-+	}
-+	lzx->block_remaining -= -this_run;
-+      }
-+    } /* while (bytes_todo > 0) */
-+
-+    /* streams don't extend over frame boundaries */
-+    if ((window_posn - lzx->frame_posn) != frame_size) {
-+      D(("decode beyond output frame limits! %d != %d",
-+	 window_posn - lzx->frame_posn, frame_size))
-+      return lzx->error = MSPACK_ERR_DECRUNCH;
-+    }
-+
-+    /* re-align input bitstream */
-+    if (bits_left > 0) ENSURE_BITS(16);
-+    if (bits_left & 15) REMOVE_BITS(bits_left & 15);
-+
-+    /* check that we've used all of the previous frame first */
-+    if (lzx->o_ptr != lzx->o_end) {
-+      D(("%ld avail bytes, new %d frame", lzx->o_end-lzx->o_ptr, frame_size))
-+      return lzx->error = MSPACK_ERR_DECRUNCH;
-+    }
-+
-+    /* does this intel block _really_ need decoding? */
-+    if (lzx->intel_started && lzx->intel_filesize &&
-+	(lzx->frame <= 32768) && (frame_size > 10))
-+    {
-+      unsigned char *data    = &lzx->e8_buf[0];
-+      unsigned char *dataend = &lzx->e8_buf[frame_size - 10];
-+      signed int curpos      = lzx->intel_curpos;
-+      signed int filesize    = lzx->intel_filesize;
-+      signed int abs_off, rel_off;
-+
-+      /* copy e8 block to the e8 buffer and tweak if needed */
-+      lzx->o_ptr = data;
-+      lzx->sys->copy(&lzx->window[lzx->frame_posn], data, frame_size);
-+
-+      while (data < dataend) {
-+	if (*data++ != 0xE8) { curpos++; continue; }
-+	abs_off = data[0] | (data[1]<<8) | (data[2]<<16) | (data[3]<<24);
-+	if ((abs_off >= -curpos) && (abs_off < filesize)) {
-+	  rel_off = (abs_off >= 0) ? abs_off - curpos : abs_off + filesize;
-+	  data[0] = (unsigned char) rel_off;
-+	  data[1] = (unsigned char) (rel_off >> 8);
-+	  data[2] = (unsigned char) (rel_off >> 16);
-+	  data[3] = (unsigned char) (rel_off >> 24);
-+	}
-+	data += 4;
-+	curpos += 5;
-+      }
-+      lzx->intel_curpos += frame_size;
-+    }
-+    else {
-+      lzx->o_ptr = &lzx->window[lzx->frame_posn];
-+      if (lzx->intel_filesize) lzx->intel_curpos += frame_size;
-+    }
-+    lzx->o_end = &lzx->o_ptr[frame_size];
-+
-+    /* write a frame */
-+    i = (out_bytes < (off_t)frame_size) ? (unsigned int)out_bytes : frame_size;
-+    if (lzx->sys->write(lzx->output, lzx->o_ptr, i) != i) {
-+      return lzx->error = MSPACK_ERR_WRITE;
-+    }
-+    lzx->o_ptr  += i;
-+    lzx->offset += i;
-+    out_bytes   -= i;
-+
-+    /* advance frame start position */
-+    lzx->frame_posn += frame_size;
-+    lzx->frame++;
-+
-+    /* wrap window / frame position pointers */
-+    if (window_posn == lzx->window_size)     window_posn = 0;
-+    if (lzx->frame_posn == lzx->window_size) lzx->frame_posn = 0;
-+
-+  } /* while (lzx->frame < end_frame) */
-+
-+  if (out_bytes) {
-+    D(("bytes left to output"))
-+    return lzx->error = MSPACK_ERR_DECRUNCH;
-+  }
-+
-+  /* store local state */
-+  STORE_BITS;
-+  lzx->window_posn = window_posn;
-+  lzx->R0 = R0;
-+  lzx->R1 = R1;
-+  lzx->R2 = R2;
-+
-+  return MSPACK_ERR_OK;
-+}
-+
-+void lzxd_free(struct lzxd_stream *lzx) {
-+  struct mspack_system *sys;
-+  if (lzx) {
-+    sys = lzx->sys;
-+    sys->free(lzx->inbuf);
-+    sys->free(lzx->window);
-+    sys->free(lzx);
-+  }
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/mspack.h b/libclamav/libmspack-0.4alpha/mspack/mspack.h
-new file mode 100755
-index 000000000000..9d05e23fec35
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/mspack.h
-@@ -0,0 +1,2353 @@
-+/* libmspack -- a library for working with Microsoft compression formats.
-+ * (C) 2003-2013 Stuart Caie <kyzer at 4u.net>
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * 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 Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+/** \mainpage
-+ *
-+ * \section intro Introduction
-+ *
-+ * libmspack is a library which provides compressors and decompressors,
-+ * archivers and dearchivers for Microsoft compression formats.
-+ *
-+ * \section formats Formats supported
-+ *
-+ * The following file formats are supported:
-+ * - SZDD files, which use LZSS compression
-+ * - KWAJ files, which use LZSS, LZSS+Huffman or deflate compression
-+ * - .HLP (MS Help) files, which use LZSS compression
-+ * - .CAB (MS Cabinet) files, which use deflate, LZX or Quantum compression
-+ * - .CHM (HTML Help) files, which use LZX compression
-+ * - .LIT (MS EBook) files, which use LZX compression and DES encryption
-+ * - .LZX (Exchange Offline Addressbook) files, which use LZX compression
-+ *
-+ * To determine the capabilities of the library, and the binary
-+ * compatibility version of any particular compressor or decompressor, use
-+ * the mspack_version() function. The UNIX library interface version is
-+ * defined as the highest-versioned library component.
-+ *
-+ * \section starting Getting started
-+ *
-+ * The macro MSPACK_SYS_SELFTEST() should be used to ensure the library can
-+ * be used. In particular, it checks if the caller is using 32-bit file I/O
-+ * when the library is compiled for 64-bit file I/O and vice versa.
-+ *
-+ * If compiled normally, the library includes basic file I/O and memory
-+ * management functionality using the standard C library. This can be
-+ * customised and replaced entirely by creating a mspack_system structure.
-+ *
-+ * A compressor or decompressor for the required format must be
-+ * instantiated before it can be used. Each construction function takes
-+ * one parameter, which is either a pointer to a custom mspack_system
-+ * structure, or NULL to use the default. The instantiation returned, if
-+ * not NULL, contains function pointers (methods) to work with the given
-+ * file format.
-+ * 
-+ * For compression:
-+ * - mspack_create_cab_compressor() creates a mscab_compressor
-+ * - mspack_create_chm_compressor() creates a mschm_compressor
-+ * - mspack_create_lit_compressor() creates a mslit_compressor
-+ * - mspack_create_hlp_compressor() creates a mshlp_compressor
-+ * - mspack_create_szdd_compressor() creates a msszdd_compressor
-+ * - mspack_create_kwaj_compressor() creates a mskwaj_compressor
-+ * - mspack_create_oab_compressor() creates a msoab_compressor
-+ *
-+ * For decompression:
-+ * - mspack_create_cab_decompressor() creates a mscab_decompressor
-+ * - mspack_create_chm_decompressor() creates a mschm_decompressor
-+ * - mspack_create_lit_decompressor() creates a mslit_decompressor
-+ * - mspack_create_hlp_decompressor() creates a mshlp_decompressor
-+ * - mspack_create_szdd_decompressor() creates a msszdd_decompressor
-+ * - mspack_create_kwaj_decompressor() creates a mskwaj_decompressor
-+ * - mspack_create_oab_decompressor() creates a msoab_decompressor
-+ *
-+ * Once finished working with a format, each kind of
-+ * compressor/decompressor has its own specific destructor:
-+ * - mspack_destroy_cab_compressor()
-+ * - mspack_destroy_cab_decompressor()
-+ * - mspack_destroy_chm_compressor()
-+ * - mspack_destroy_chm_decompressor()
-+ * - mspack_destroy_lit_compressor()
-+ * - mspack_destroy_lit_decompressor()
-+ * - mspack_destroy_hlp_compressor()
-+ * - mspack_destroy_hlp_decompressor()
-+ * - mspack_destroy_szdd_compressor()
-+ * - mspack_destroy_szdd_decompressor()
-+ * - mspack_destroy_kwaj_compressor()
-+ * - mspack_destroy_kwaj_decompressor()
-+ * - mspack_destroy_oab_compressor()
-+ * - mspack_destroy_oab_decompressor()
-+ *
-+ * Destroying a compressor or decompressor does not destroy any objects,
-+ * structures or handles that have been created using that compressor or
-+ * decompressor. Ensure that everything created or opened is destroyed or
-+ * closed before compressor/decompressor is itself destroyed.
-+ *
-+ * \section errors Error codes
-+ *
-+ * All compressors and decompressors use the same set of error codes. Most
-+ * methods return an error code directly. For methods which do not
-+ * return error codes directly, the error code can be obtained with the
-+ * last_error() method.
-+ *
-+ * - #MSPACK_ERR_OK is used to indicate success. This error code is defined
-+ *   as zero, all other code are non-zero.
-+ * - #MSPACK_ERR_ARGS indicates that a method was called with inappropriate
-+ *   arguments.
-+ * - #MSPACK_ERR_OPEN indicates that mspack_system::open() failed.
-+ * - #MSPACK_ERR_READ indicates that mspack_system::read() failed.
-+ * - #MSPACK_ERR_WRITE indicates that mspack_system::write() failed.
-+ * - #MSPACK_ERR_SEEK indicates that mspack_system::seek() failed.
-+ * - #MSPACK_ERR_NOMEMORY indicates that mspack_system::alloc() failed.
-+ * - #MSPACK_ERR_SIGNATURE indicates that the file being read does not
-+ *   have the correct "signature". It is probably not a valid file for
-+ *   whatever format is being read.
-+ * - #MSPACK_ERR_DATAFORMAT indicates that the file being used or read
-+ *   is corrupt.
-+ * - #MSPACK_ERR_CHECKSUM indicates that a data checksum has failed.
-+ * - #MSPACK_ERR_CRUNCH indicates an error occured during compression.
-+ * - #MSPACK_ERR_DECRUNCH indicates an error occured during decompression.
-+ *
-+ * \section threading Multi-threading
-+ *
-+ * libmspack methods are reentrant and multithreading-safe when each
-+ * thread has its own compressor or decompressor.
-+
-+ * You should not call multiple methods simultaneously on a single
-+ * compressor or decompressor instance.
-+ *
-+ * If this may happen, you can either use one compressor or
-+ * decompressor per thread, or you can use your preferred lock,
-+ * semaphore or mutex library to ensure no more than one method on a
-+ * compressor/decompressor is called simultaneously. libmspack will
-+ * not do this locking for you.
-+ *
-+ * Example of incorrect behaviour:
-+ * - thread 1 calls mspack_create_cab_decompressor()
-+ * - thread 1 calls open()
-+ * - thread 1 calls extract() for one file
-+ * - thread 2 simultaneously calls extract() for another file
-+ *
-+ * Correct behaviour:
-+ * - thread 1 calls mspack_create_cab_decompressor()
-+ * - thread 2 calls mspack_create_cab_decompressor()
-+ * - thread 1 calls its own open() / extract()
-+ * - thread 2 simultaneously calls its own open() / extract()
-+ *
-+ * Also correct behaviour:
-+ * - thread 1 calls mspack_create_cab_decompressor()
-+ * - thread 1 locks a mutex for with the decompressor before
-+ *   calling any methods on it, and unlocks the mutex after each
-+ *   method returns.
-+ * - thread 1 can share the results of open() with thread 2, and both
-+ *   can call extract(), provided they both guard against simultaneous
-+ *   use of extract(), and any other methods, with the mutex
-+ */
-+
-+#ifndef LIB_MSPACK_H
-+#define LIB_MSPACK_H 1
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+#include <sys/types.h>
-+#include <stdlib.h>
-+
-+/**
-+ * System self-test function, to ensure both library and calling program
-+ * can use one another.
-+ *
-+ * A result of MSPACK_ERR_OK means the library and caller are
-+ * compatible. Any other result indicates that the library and caller are
-+ * not compatible and should not be used. In particular, a value of
-+ * MSPACK_ERR_SEEK means the library and caller use different off_t
-+ * datatypes.
-+ *
-+ * It should be used like so:
-+ *
-+ * @code
-+ * int selftest_result;
-+ * MSPACK_SYS_SELFTEST(selftest_result);
-+ * if (selftest_result != MSPACK_ERR_OK) {
-+ *   fprintf(stderr, "incompatible with this build of libmspack\n");
-+ *   exit(0);
-+ * }
-+ * @endcode
-+ *
-+ * @param  result   an int variable to store the result of the self-test
-+ */
-+#define MSPACK_SYS_SELFTEST(result)  do { \
-+  (result) = mspack_sys_selftest_internal(sizeof(off_t)); \
-+} while (0)
-+
-+/** Part of the MSPACK_SYS_SELFTEST() macro, must not be used directly. */
-+extern int mspack_sys_selftest_internal(int);
-+
-+/**
-+ * Enquire about the binary compatibility version of a specific interface in
-+ * the library. Currently, the following interfaces are defined:
-+ *
-+ * - #MSPACK_VER_LIBRARY: the overall library
-+ * - #MSPACK_VER_SYSTEM: the mspack_system interface
-+ * - #MSPACK_VER_MSCABD: the mscab_decompressor interface
-+ * - #MSPACK_VER_MSCABC: the mscab_compressor interface
-+ * - #MSPACK_VER_MSCHMD: the mschm_decompressor interface
-+ * - #MSPACK_VER_MSCHMC: the mschm_compressor interface
-+ * - #MSPACK_VER_MSLITD: the mslit_decompressor interface
-+ * - #MSPACK_VER_MSLITC: the mslit_compressor interface
-+ * - #MSPACK_VER_MSHLPD: the mshlp_decompressor interface
-+ * - #MSPACK_VER_MSHLPC: the mshlp_compressor interface
-+ * - #MSPACK_VER_MSSZDDD: the msszdd_decompressor interface
-+ * - #MSPACK_VER_MSSZDDC: the msszdd_compressor interface
-+ * - #MSPACK_VER_MSKWAJD: the mskwaj_decompressor interface
-+ * - #MSPACK_VER_MSKWAJC: the mskwaj_compressor interface
-+ * - #MSPACK_VER_MSOABD: the msoab_decompressor interface
-+ * - #MSPACK_VER_MSOABC: the msoab_compressor interface
-+ *
-+ * The result of the function should be interpreted as follows:
-+ * - -1: this interface is completely unknown to the library
-+ * - 0: this interface is known, but non-functioning
-+ * - 1: this interface has all basic functionality
-+ * - 2, 3, ...: this interface has additional functionality, clearly marked
-+ *   in the documentation as "version 2", "version 3" and so on.
-+ *
-+ * @param entity the interface to request current version of
-+ * @return the version of the requested interface
-+ */
-+extern int mspack_version(int entity);
-+
-+/** Pass to mspack_version() to get the overall library version */
-+#define MSPACK_VER_LIBRARY   (0)
-+/** Pass to mspack_version() to get the mspack_system version */
-+#define MSPACK_VER_SYSTEM    (1)
-+/** Pass to mspack_version() to get the mscab_decompressor version */
-+#define MSPACK_VER_MSCABD    (2)
-+/** Pass to mspack_version() to get the mscab_compressor version */
-+#define MSPACK_VER_MSCABC    (3)
-+/** Pass to mspack_version() to get the mschm_decompressor version */
-+#define MSPACK_VER_MSCHMD    (4)
-+/** Pass to mspack_version() to get the mschm_compressor version */
-+#define MSPACK_VER_MSCHMC    (5)
-+/** Pass to mspack_version() to get the mslit_decompressor version */
-+#define MSPACK_VER_MSLITD    (6)
-+/** Pass to mspack_version() to get the mslit_compressor version */
-+#define MSPACK_VER_MSLITC    (7)
-+/** Pass to mspack_version() to get the mshlp_decompressor version */
-+#define MSPACK_VER_MSHLPD    (8)
-+/** Pass to mspack_version() to get the mshlp_compressor version */
-+#define MSPACK_VER_MSHLPC    (9)
-+/** Pass to mspack_version() to get the msszdd_decompressor version */
-+#define MSPACK_VER_MSSZDDD   (10)
-+/** Pass to mspack_version() to get the msszdd_compressor version */
-+#define MSPACK_VER_MSSZDDC   (11)
-+/** Pass to mspack_version() to get the mskwaj_decompressor version */
-+#define MSPACK_VER_MSKWAJD   (12)
-+/** Pass to mspack_version() to get the mskwaj_compressor version */
-+#define MSPACK_VER_MSKWAJC   (13)
-+/** Pass to mspack_version() to get the msoab_decompressor version */
-+#define MSPACK_VER_MSOABD    (14)
-+/** Pass to mspack_version() to get the msoab_compressor version */
-+#define MSPACK_VER_MSOABC    (15)
-+
-+/* --- file I/O abstraction ------------------------------------------------ */
-+
-+/**
-+ * A structure which abstracts file I/O and memory management.
-+ *
-+ * The library always uses the mspack_system structure for interaction
-+ * with the file system and to allocate, free and copy all memory. It also
-+ * uses it to send literal messages to the library user.
-+ *
-+ * When the library is compiled normally, passing NULL to a compressor or
-+ * decompressor constructor will result in a default mspack_system being
-+ * used, where all methods are implemented with the standard C library.
-+ * However, all constructors support being given a custom created
-+ * mspack_system structure, with the library user's own methods. This
-+ * allows for more abstract interaction, such as reading and writing files
-+ * directly to memory, or from a network socket or pipe.
-+ *
-+ * Implementors of an mspack_system structure should read all
-+ * documentation entries for every structure member, and write methods
-+ * which conform to those standards.
-+ */
-+struct mspack_system {
-+  /**
-+   * Opens a file for reading, writing, appending or updating.
-+   *
-+   * @param self     a self-referential pointer to the mspack_system
-+   *                 structure whose open() method is being called. If
-+   *                 this pointer is required by close(), read(), write(),
-+   *                 seek() or tell(), it should be stored in the result
-+   *                 structure at this time.
-+   * @param filename the file to be opened. It is passed directly from the
-+   *                 library caller without being modified, so it is up to
-+   *                 the caller what this parameter actually represents.
-+   * @param mode     one of #MSPACK_SYS_OPEN_READ (open an existing file
-+   *                 for reading), #MSPACK_SYS_OPEN_WRITE (open a new file
-+   *                 for writing), #MSPACK_SYS_OPEN_UPDATE (open an existing
-+   *                 file for reading/writing from the start of the file) or
-+   *                 #MSPACK_SYS_OPEN_APPEND (open an existing file for
-+   *                 reading/writing from the end of the file)
-+   * @return a pointer to a mspack_file structure. This structure officially
-+   *         contains no members, its true contents are up to the
-+   *         mspack_system implementor. It should contain whatever is needed
-+   *         for other mspack_system methods to operate. Returning the NULL
-+   *         pointer indicates an error condition.
-+   * @see close(), read(), write(), seek(), tell(), message()
-+   */
-+  struct mspack_file * (*open)(struct mspack_system *self,
-+			       const char *filename,
-+			       int mode);
-+
-+  /**
-+   * Closes a previously opened file. If any memory was allocated for this
-+   * particular file handle, it should be freed at this time.
-+   * 
-+   * @param file the file to close
-+   * @see open()
-+   */
-+  void (*close)(struct mspack_file *file);
-+
-+  /**
-+   * Reads a given number of bytes from an open file.
-+   *
-+   * @param file    the file to read from
-+   * @param buffer  the location where the read bytes should be stored
-+   * @param bytes   the number of bytes to read from the file.
-+   * @return the number of bytes successfully read (this can be less than
-+   *         the number requested), zero to mark the end of file, or less
-+   *         than zero to indicate an error.
-+   * @see open(), write()
-+   */
-+  int (*read)(struct mspack_file *file,
-+	      void *buffer,
-+	      int bytes);
-+
-+  /**
-+   * Writes a given number of bytes to an open file.
-+   *
-+   * @param file    the file to write to
-+   * @param buffer  the location where the written bytes should be read from
-+   * @param bytes   the number of bytes to write to the file.
-+   * @return the number of bytes successfully written, this can be less
-+   *         than the number requested. Zero or less can indicate an error
-+   *         where no bytes at all could be written. All cases where less
-+   *         bytes were written than requested are considered by the library
-+   *         to be an error.
-+   * @see open(), read()
-+   */
-+  int (*write)(struct mspack_file *file,
-+	       void *buffer,
-+	       int bytes);
-+
-+  /**
-+   * Seeks to a specific file offset within an open file.
-+   *
-+   * Sometimes the library needs to know the length of a file. It does
-+   * this by seeking to the end of the file with seek(file, 0,
-+   * MSPACK_SYS_SEEK_END), then calling tell(). Implementations may want
-+   * to make a special case for this.
-+   *
-+   * Due to the potentially varying 32/64 bit datatype off_t on some
-+   * architectures, the #MSPACK_SYS_SELFTEST macro MUST be used before
-+   * using the library. If not, the error caused by the library passing an
-+   * inappropriate stackframe to seek() is subtle and hard to trace.
-+   *
-+   * @param file   the file to be seeked
-+   * @param offset an offset to seek, measured in bytes
-+   * @param mode   one of #MSPACK_SYS_SEEK_START (the offset should be
-+   *               measured from the start of the file), #MSPACK_SYS_SEEK_CUR
-+   *               (the offset should be measured from the current file offset)
-+   *               or #MSPACK_SYS_SEEK_END (the offset should be measured from
-+   *               the end of the file)
-+   * @return zero for success, non-zero for an error
-+   * @see open(), tell()
-+   */
-+  int (*seek)(struct mspack_file *file,
-+	      off_t offset,
-+	      int mode);
-+
-+  /**
-+   * Returns the current file position (in bytes) of the given file.
-+   *
-+   * @param file the file whose file position is wanted
-+   * @return the current file position of the file
-+   * @see open(), seek()
-+   */
-+  off_t (*tell)(struct mspack_file *file);
-+  
-+  /**
-+   * Used to send messages from the library to the user.
-+   *
-+   * Occasionally, the library generates warnings or other messages in
-+   * plain english to inform the human user. These are informational only
-+   * and can be ignored if not wanted.
-+   *
-+   * @param file   may be a file handle returned from open() if this message
-+   *               pertains to a specific open file, or NULL if not related to
-+   *               a specific file.
-+   * @param format a printf() style format string. It does NOT include a
-+   *               trailing newline.
-+   * @see open()
-+   */
-+  void (*message)(struct mspack_file *file,
-+		  const char *format,
-+		  ...);
-+
-+  /**
-+   * Allocates memory.
-+   *
-+   * @param self     a self-referential pointer to the mspack_system
-+   *                 structure whose alloc() method is being called.
-+   * @param bytes    the number of bytes to allocate
-+   * @result a pointer to the requested number of bytes, or NULL if
-+   *         not enough memory is available
-+   * @see free()
-+   */
-+  void * (*alloc)(struct mspack_system *self,
-+		  size_t bytes);
-+  
-+  /**
-+   * Frees memory.
-+   * 
-+   * @param ptr the memory to be freed.
-+   * @see alloc()
-+   */
-+  void (*free)(void *ptr);
-+
-+  /**
-+   * Copies from one region of memory to another.
-+   * 
-+   * The regions of memory are guaranteed not to overlap, are usually less
-+   * than 256 bytes, and may not be aligned. Please note that the source
-+   * parameter comes before the destination parameter, unlike the standard
-+   * C function memcpy().
-+   *
-+   * @param src   the region of memory to copy from
-+   * @param dest  the region of memory to copy to
-+   * @param bytes the size of the memory region, in bytes
-+   */
-+  void (*copy)(void *src,
-+	       void *dest,
-+	       size_t bytes);
-+
-+  /**
-+   * A null pointer to mark the end of mspack_system. It must equal NULL.
-+   *
-+   * Should the mspack_system structure extend in the future, this NULL
-+   * will be seen, rather than have an invalid method pointer called.
-+   */
-+  void *null_ptr;
-+};
-+
-+/** mspack_system::open() mode: open existing file for reading. */
-+#define MSPACK_SYS_OPEN_READ   (0)
-+/** mspack_system::open() mode: open new file for writing */
-+#define MSPACK_SYS_OPEN_WRITE  (1)
-+/** mspack_system::open() mode: open existing file for writing */
-+#define MSPACK_SYS_OPEN_UPDATE (2)
-+/** mspack_system::open() mode: open existing file for writing */
-+#define MSPACK_SYS_OPEN_APPEND (3)
-+
-+/** mspack_system::seek() mode: seek relative to start of file */
-+#define MSPACK_SYS_SEEK_START  (0)
-+/** mspack_system::seek() mode: seek relative to current offset */
-+#define MSPACK_SYS_SEEK_CUR    (1)
-+/** mspack_system::seek() mode: seek relative to end of file */
-+#define MSPACK_SYS_SEEK_END    (2)
-+
-+/** 
-+ * A structure which represents an open file handle. The contents of this
-+ * structure are determined by the implementation of the
-+ * mspack_system::open() method.
-+ */
-+struct mspack_file {
-+  int dummy;
-+};
-+
-+/* --- error codes --------------------------------------------------------- */
-+
-+/** Error code: no error */
-+#define MSPACK_ERR_OK          (0)
-+/** Error code: bad arguments to method */
-+#define MSPACK_ERR_ARGS        (1)
-+/** Error code: error opening file */
-+#define MSPACK_ERR_OPEN        (2)
-+/** Error code: error reading file */
-+#define MSPACK_ERR_READ        (3)
-+/** Error code: error writing file */
-+#define MSPACK_ERR_WRITE       (4)
-+/** Error code: seek error */
-+#define MSPACK_ERR_SEEK        (5)
-+/** Error code: out of memory */
-+#define MSPACK_ERR_NOMEMORY    (6)
-+/** Error code: bad "magic id" in file */
-+#define MSPACK_ERR_SIGNATURE   (7)
-+/** Error code: bad or corrupt file format */
-+#define MSPACK_ERR_DATAFORMAT  (8)
-+/** Error code: bad checksum or CRC */
-+#define MSPACK_ERR_CHECKSUM    (9)
-+/** Error code: error during compression */
-+#define MSPACK_ERR_CRUNCH      (10)
-+/** Error code: error during decompression */
-+#define MSPACK_ERR_DECRUNCH    (11)
-+
-+/* --- functions available in library -------------------------------------- */
-+
-+/** Creates a new CAB compressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mscab_compressor or NULL
-+ */
-+extern struct mscab_compressor *
-+  mspack_create_cab_compressor(struct mspack_system *sys);
-+
-+/** Creates a new CAB decompressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mscab_decompressor or NULL
-+ */
-+extern struct mscab_decompressor *
-+  mspack_create_cab_decompressor(struct mspack_system *sys);
-+
-+/** Destroys an existing CAB compressor.
-+ * @param self the #mscab_compressor to destroy
-+ */
-+extern void mspack_destroy_cab_compressor(struct mscab_compressor *self);
-+
-+/** Destroys an existing CAB decompressor.
-+ * @param self the #mscab_decompressor to destroy
-+ */
-+extern void mspack_destroy_cab_decompressor(struct mscab_decompressor *self);
-+
-+
-+/** Creates a new CHM compressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mschm_compressor or NULL
-+ */
-+extern struct mschm_compressor *
-+  mspack_create_chm_compressor(struct mspack_system *sys);
-+
-+/** Creates a new CHM decompressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mschm_decompressor or NULL
-+ */
-+extern struct mschm_decompressor *
-+  mspack_create_chm_decompressor(struct mspack_system *sys);
-+
-+/** Destroys an existing CHM compressor.
-+ * @param self the #mschm_compressor to destroy
-+ */
-+extern void mspack_destroy_chm_compressor(struct mschm_compressor *self);
-+
-+/** Destroys an existing CHM decompressor.
-+ * @param self the #mschm_decompressor to destroy
-+ */
-+extern void mspack_destroy_chm_decompressor(struct mschm_decompressor *self);
-+
-+
-+/** Creates a new LIT compressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mslit_compressor or NULL
-+ */
-+extern struct mslit_compressor *
-+  mspack_create_lit_compressor(struct mspack_system *sys);
-+
-+/** Creates a new LIT decompressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mslit_decompressor or NULL
-+ */
-+extern struct mslit_decompressor *
-+  mspack_create_lit_decompressor(struct mspack_system *sys);
-+
-+/** Destroys an existing LIT compressor.
-+ * @param self the #mslit_compressor to destroy
-+ */
-+extern void mspack_destroy_lit_compressor(struct mslit_compressor *self);
-+
-+/** Destroys an existing LIT decompressor.
-+ * @param self the #mslit_decompressor to destroy
-+ */
-+extern void mspack_destroy_lit_decompressor(struct mslit_decompressor *self);
-+
-+
-+/** Creates a new HLP compressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mshlp_compressor or NULL
-+ */
-+extern struct mshlp_compressor *
-+  mspack_create_hlp_compressor(struct mspack_system *sys);
-+
-+/** Creates a new HLP decompressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mshlp_decompressor or NULL
-+ */
-+extern struct mshlp_decompressor *
-+  mspack_create_hlp_decompressor(struct mspack_system *sys);
-+
-+/** Destroys an existing hlp compressor.
-+ * @param self the #mshlp_compressor to destroy
-+ */
-+extern void mspack_destroy_hlp_compressor(struct mshlp_compressor *self);
-+
-+/** Destroys an existing hlp decompressor.
-+ * @param self the #mshlp_decompressor to destroy
-+ */
-+extern void mspack_destroy_hlp_decompressor(struct mshlp_decompressor *self);
-+
-+
-+/** Creates a new SZDD compressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #msszdd_compressor or NULL
-+ */
-+extern struct msszdd_compressor *
-+  mspack_create_szdd_compressor(struct mspack_system *sys);
-+
-+/** Creates a new SZDD decompressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #msszdd_decompressor or NULL
-+ */
-+extern struct msszdd_decompressor *
-+  mspack_create_szdd_decompressor(struct mspack_system *sys);
-+
-+/** Destroys an existing SZDD compressor.
-+ * @param self the #msszdd_compressor to destroy
-+ */
-+extern void mspack_destroy_szdd_compressor(struct msszdd_compressor *self);
-+
-+/** Destroys an existing SZDD decompressor.
-+ * @param self the #msszdd_decompressor to destroy
-+ */
-+extern void mspack_destroy_szdd_decompressor(struct msszdd_decompressor *self);
-+
-+
-+/** Creates a new KWAJ compressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mskwaj_compressor or NULL
-+ */
-+extern struct mskwaj_compressor *
-+  mspack_create_kwaj_compressor(struct mspack_system *sys);
-+
-+/** Creates a new KWAJ decompressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #mskwaj_decompressor or NULL
-+ */
-+extern struct mskwaj_decompressor *
-+  mspack_create_kwaj_decompressor(struct mspack_system *sys);
-+
-+/** Destroys an existing KWAJ compressor.
-+ * @param self the #mskwaj_compressor to destroy
-+ */
-+extern void mspack_destroy_kwaj_compressor(struct mskwaj_compressor *self);
-+
-+/** Destroys an existing KWAJ decompressor.
-+ * @param self the #mskwaj_decompressor to destroy
-+ */
-+extern void mspack_destroy_kwaj_decompressor(struct mskwaj_decompressor *self);
-+
-+
-+/** Creates a new OAB compressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #msoab_compressor or NULL
-+ */
-+extern struct msoab_compressor *
-+  mspack_create_oab_compressor(struct mspack_system *sys);
-+
-+/** Creates a new OAB decompressor.
-+ * @param sys a custom mspack_system structure, or NULL to use the default
-+ * @return a #msoab_decompressor or NULL
-+ */
-+extern struct msoab_decompressor *
-+  mspack_create_oab_decompressor(struct mspack_system *sys);
-+
-+/** Destroys an existing OAB compressor.
-+ * @param self the #msoab_compressor to destroy
-+ */
-+extern void mspack_destroy_oab_compressor(struct msoab_compressor *self);
-+
-+/** Destroys an existing OAB decompressor.
-+ * @param self the #msoab_decompressor to destroy
-+ */
-+extern void mspack_destroy_oab_decompressor(struct msoab_decompressor *self);
-+
-+
-+/* --- support for .CAB (MS Cabinet) file format --------------------------- */
-+
-+/**
-+ * A structure which represents a single cabinet file.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * If this cabinet is part of a merged cabinet set, the #files and #folders
-+ * fields are common to all cabinets in the set, and will be identical.
-+ *
-+ * @see mscab_decompressor::open(), mscab_decompressor::close(),
-+ *      mscab_decompressor::search()
-+ */
-+struct mscabd_cabinet {
-+  /**
-+   * The next cabinet in a chained list, if this cabinet was opened with
-+   * mscab_decompressor::search(). May be NULL to mark the end of the
-+   * list.
-+   */
-+  struct mscabd_cabinet *next;
-+
-+  /**
-+   * The filename of the cabinet. More correctly, the filename of the
-+   * physical file that the cabinet resides in. This is given by the
-+   * library user and may be in any format.
-+   */
-+  const char *filename;
-+  
-+  /** The file offset of cabinet within the physical file it resides in. */
-+  off_t base_offset;
-+
-+  /** The length of the cabinet file in bytes. */
-+  unsigned int length;
-+
-+  /** The previous cabinet in a cabinet set, or NULL. */
-+  struct mscabd_cabinet *prevcab;
-+
-+  /** The next cabinet in a cabinet set, or NULL. */
-+  struct mscabd_cabinet *nextcab;
-+
-+  /** The filename of the previous cabinet in a cabinet set, or NULL. */
-+  char *prevname;
-+
-+  /** The filename of the next cabinet in a cabinet set, or NULL. */
-+  char *nextname;
-+
-+  /** The name of the disk containing the previous cabinet in a cabinet
-+   * set, or NULL.
-+   */
-+  char *previnfo;
-+
-+  /** The name of the disk containing the next cabinet in a cabinet set,
-+   * or NULL.
-+   */
-+  char *nextinfo;
-+
-+  /** A list of all files in the cabinet or cabinet set. */
-+  struct mscabd_file *files;
-+
-+  /** A list of all folders in the cabinet or cabinet set. */
-+  struct mscabd_folder *folders;
-+
-+  /** 
-+   * The set ID of the cabinet. All cabinets in the same set should have
-+   * the same set ID.
-+   */
-+  unsigned short set_id;
-+
-+  /**
-+   * The index number of the cabinet within the set. Numbering should
-+   * start from 0 for the first cabinet in the set, and increment by 1 for
-+   * each following cabinet.
-+   */
-+  unsigned short set_index;
-+
-+  /**
-+   * The number of bytes reserved in the header area of the cabinet.
-+   *
-+   * If this is non-zero and flags has MSCAB_HDR_RESV set, this data can
-+   * be read by the calling application. It is of the given length,
-+   * located at offset (base_offset + MSCAB_HDR_RESV_OFFSET) in the
-+   * cabinet file.
-+   *
-+   * @see flags
-+   */
-+  unsigned short header_resv;
-+
-+  /**
-+   * Header flags.
-+   *
-+   * - MSCAB_HDR_PREVCAB indicates the cabinet is part of a cabinet set, and
-+   *                     has a predecessor cabinet.
-+   * - MSCAB_HDR_NEXTCAB indicates the cabinet is part of a cabinet set, and
-+   *                     has a successor cabinet.
-+   * - MSCAB_HDR_RESV indicates the cabinet has reserved header space.
-+   *
-+   * @see prevname, previnfo, nextname, nextinfo, header_resv
-+   */
-+  int flags;
-+};
-+
-+/** Offset from start of cabinet to the reserved header data (if present). */
-+#define MSCAB_HDR_RESV_OFFSET (0x28)
-+
-+/** Cabinet header flag: cabinet has a predecessor */
-+#define MSCAB_HDR_PREVCAB (0x01)
-+/** Cabinet header flag: cabinet has a successor */
-+#define MSCAB_HDR_NEXTCAB (0x02)
-+/** Cabinet header flag: cabinet has reserved header space */
-+#define MSCAB_HDR_RESV    (0x04)
-+
-+/**
-+ * A structure which represents a single folder in a cabinet or cabinet set.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * A folder is a single compressed stream of data. When uncompressed, it
-+ * holds the data of one or more files. A folder may be split across more
-+ * than one cabinet.
-+ */
-+struct mscabd_folder {
-+  /**
-+   * A pointer to the next folder in this cabinet or cabinet set, or NULL
-+   * if this is the final folder.
-+   */
-+  struct mscabd_folder *next;
-+
-+  /** 
-+   * The compression format used by this folder.
-+   *
-+   * The macro MSCABD_COMP_METHOD() should be used on this field to get
-+   * the algorithm used. The macro MSCABD_COMP_LEVEL() should be used to get
-+   * the "compression level".
-+   *
-+   * @see MSCABD_COMP_METHOD(), MSCABD_COMP_LEVEL()
-+   */
-+  int comp_type;
-+
-+  /**
-+   * The total number of data blocks used by this folder. This includes
-+   * data blocks present in other files, if this folder spans more than
-+   * one cabinet.
-+   */
-+  unsigned int num_blocks;
-+};
-+
-+/**
-+ * Returns the compression method used by a folder.
-+ *
-+ * @param comp_type a mscabd_folder::comp_type value
-+ * @return one of #MSCAB_COMP_NONE, #MSCAB_COMP_MSZIP, #MSCAB_COMP_QUANTUM
-+ *         or #MSCAB_COMP_LZX
-+ */
-+#define MSCABD_COMP_METHOD(comp_type) ((comp_type) & 0x0F)
-+/**
-+ * Returns the compression level used by a folder.
-+ *
-+ * @param comp_type a mscabd_folder::comp_type value
-+ * @return the compression level. This is only defined by LZX and Quantum
-+ *         compression
-+ */
-+#define MSCABD_COMP_LEVEL(comp_type) (((comp_type) >> 8) & 0x1F)
-+
-+/** Compression mode: no compression. */
-+#define MSCAB_COMP_NONE       (0)
-+/** Compression mode: MSZIP (deflate) compression. */
-+#define MSCAB_COMP_MSZIP      (1)
-+/** Compression mode: Quantum compression */
-+#define MSCAB_COMP_QUANTUM    (2)
-+/** Compression mode: LZX compression */
-+#define MSCAB_COMP_LZX        (3)
-+
-+/**
-+ * A structure which represents a single file in a cabinet or cabinet set.
-+ *
-+ * All fields are READ ONLY.
-+ */
-+struct mscabd_file {
-+  /**
-+   * The next file in the cabinet or cabinet set, or NULL if this is the
-+   * final file.
-+   */
-+  struct mscabd_file *next;
-+
-+  /**
-+   * The filename of the file.
-+   *
-+   * A null terminated string of up to 255 bytes in length, it may be in
-+   * either ISO-8859-1 or UTF8 format, depending on the file attributes.
-+   *
-+   * @see attribs
-+   */
-+  char *filename;
-+
-+  /** The uncompressed length of the file, in bytes. */
-+  unsigned int length;
-+
-+  /**
-+   * File attributes.
-+   *
-+   * The following attributes are defined:
-+   * - #MSCAB_ATTRIB_RDONLY indicates the file is write protected.
-+   * - #MSCAB_ATTRIB_HIDDEN indicates the file is hidden.
-+   * - #MSCAB_ATTRIB_SYSTEM indicates the file is a operating system file.
-+   * - #MSCAB_ATTRIB_ARCH indicates the file is "archived".
-+   * - #MSCAB_ATTRIB_EXEC indicates the file is an executable program.
-+   * - #MSCAB_ATTRIB_UTF_NAME indicates the filename is in UTF8 format rather
-+   *   than ISO-8859-1.
-+   */
-+  int attribs;
-+
-+  /** File's last modified time, hour field. */
-+  char time_h;
-+  /** File's last modified time, minute field. */
-+  char time_m;
-+  /** File's last modified time, second field. */
-+  char time_s;
-+
-+  /** File's last modified date, day field. */
-+  char date_d;
-+  /** File's last modified date, month field. */
-+  char date_m;
-+  /** File's last modified date, year field. */
-+  int date_y;
-+
-+  /** A pointer to the folder that contains this file. */
-+  struct mscabd_folder *folder;
-+
-+  /** The uncompressed offset of this file in its folder. */
-+  unsigned int offset;
-+};
-+
-+/** mscabd_file::attribs attribute: file is read-only. */
-+#define MSCAB_ATTRIB_RDONLY   (0x01)
-+/** mscabd_file::attribs attribute: file is hidden. */
-+#define MSCAB_ATTRIB_HIDDEN   (0x02)
-+/** mscabd_file::attribs attribute: file is an operating system file. */
-+#define MSCAB_ATTRIB_SYSTEM   (0x04)
-+/** mscabd_file::attribs attribute: file is "archived". */
-+#define MSCAB_ATTRIB_ARCH     (0x20)
-+/** mscabd_file::attribs attribute: file is an executable program. */
-+#define MSCAB_ATTRIB_EXEC     (0x40)
-+/** mscabd_file::attribs attribute: filename is UTF8, not ISO-8859-1. */
-+#define MSCAB_ATTRIB_UTF_NAME (0x80)
-+
-+/** mscab_decompressor::set_param() parameter: search buffer size. */
-+#define MSCABD_PARAM_SEARCHBUF (0)
-+/** mscab_decompressor::set_param() parameter: repair MS-ZIP streams? */
-+#define MSCABD_PARAM_FIXMSZIP  (1)
-+/** mscab_decompressor::set_param() parameter: size of decompression buffer */
-+#define MSCABD_PARAM_DECOMPBUF (2)
-+
-+/** TODO */
-+struct mscab_compressor {
-+  int dummy; 
-+};
-+
-+/**
-+ * A decompressor for .CAB (Microsoft Cabinet) files
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_cab_decompressor(), mspack_destroy_cab_decompressor()
-+ */
-+struct mscab_decompressor {
-+  /**
-+   * Opens a cabinet file and reads its contents.
-+   *
-+   * If the file opened is a valid cabinet file, all headers will be read
-+   * and a mscabd_cabinet structure will be returned, with a full list of
-+   * folders and files.
-+   *
-+   * In the case of an error occuring, NULL is returned and the error code
-+   * is available from last_error().
-+   *
-+   * The filename pointer should be considered "in use" until close() is
-+   * called on the cabinet.
-+   *
-+   * @param  self     a self-referential pointer to the mscab_decompressor
-+   *                  instance being called
-+   * @param  filename the filename of the cabinet file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @return a pointer to a mscabd_cabinet structure, or NULL on failure
-+   * @see close(), search(), last_error()
-+   */
-+  struct mscabd_cabinet * (*open) (struct mscab_decompressor *self,
-+				   const char *filename);
-+
-+  /**
-+   * Closes a previously opened cabinet or cabinet set.
-+   *
-+   * This closes a cabinet, all cabinets associated with it via the
-+   * mscabd_cabinet::next, mscabd_cabinet::prevcab and
-+   * mscabd_cabinet::nextcab pointers, and all folders and files. All
-+   * memory used by these entities is freed.
-+   *
-+   * The cabinet pointer is now invalid and cannot be used again. All
-+   * mscabd_folder and mscabd_file pointers from that cabinet or cabinet
-+   * set are also now invalid, and cannot be used again.
-+   *
-+   * If the cabinet pointer given was created using search(), it MUST be
-+   * the cabinet pointer returned by search() and not one of the later
-+   * cabinet pointers further along the mscabd_cabinet::next chain.
-+
-+   * If extra cabinets have been added using append() or prepend(), these
-+   * will all be freed, even if the cabinet pointer given is not the first
-+   * cabinet in the set. Do NOT close() more than one cabinet in the set.
-+   *
-+   * The mscabd_cabinet::filename is not freed by the library, as it is
-+   * not allocated by the library. The caller should free this itself if
-+   * necessary, before it is lost forever.
-+   *
-+   * @param  self     a self-referential pointer to the mscab_decompressor
-+   *                  instance being called
-+   * @param  cab      the cabinet to close
-+   * @see open(), search(), append(), prepend()
-+   */
-+  void (*close)(struct mscab_decompressor *self,
-+		struct mscabd_cabinet *cab);
-+
-+  /**
-+   * Searches a regular file for embedded cabinets.
-+   *
-+   * This opens a normal file with the given filename and will search the
-+   * entire file for embedded cabinet files
-+   *
-+   * If any cabinets are found, the equivalent of open() is called on each
-+   * potential cabinet file at the offset it was found. All successfully
-+   * open()ed cabinets are kept in a list.
-+   *
-+   * The first cabinet found will be returned directly as the result of
-+   * this method. Any further cabinets found will be chained in a list
-+   * using the mscabd_cabinet::next field.
-+   *
-+   * In the case of an error occuring anywhere other than the simulated
-+   * open(), NULL is returned and the error code is available from
-+   * last_error().
-+   *
-+   * If no error occurs, but no cabinets can be found in the file, NULL is
-+   * returned and last_error() returns MSPACK_ERR_OK.
-+   *
-+   * The filename pointer should be considered in use until close() is
-+   * called on the cabinet.
-+   *
-+   * close() should only be called on the result of search(), not on any
-+   * subsequent cabinets in the mscabd_cabinet::next chain.
-+   *
-+   * @param  self     a self-referential pointer to the mscab_decompressor
-+   *                  instance being called
-+   * @param  filename the filename of the file to search for cabinets. This
-+   *                  is passed directly to mspack_system::open().
-+   * @return a pointer to a mscabd_cabinet structure, or NULL
-+   * @see close(), open(), last_error()
-+   */
-+  struct mscabd_cabinet * (*search) (struct mscab_decompressor *self,
-+				     const char *filename);
-+
-+  /**
-+   * Appends one mscabd_cabinet to another, forming or extending a cabinet
-+   * set.
-+   *
-+   * This will attempt to append one cabinet to another such that
-+   * <tt>(cab->nextcab == nextcab) && (nextcab->prevcab == cab)</tt> and
-+   * any folders split between the two cabinets are merged.
-+   *
-+   * The cabinets MUST be part of a cabinet set -- a cabinet set is a
-+   * cabinet that spans more than one physical cabinet file on disk -- and
-+   * must be appropriately matched.
-+   *
-+   * It can be determined if a cabinet has further parts to load by
-+   * examining the mscabd_cabinet::flags field:
-+   *
-+   * - if <tt>(flags & MSCAB_HDR_PREVCAB)</tt> is non-zero, there is a
-+   *   predecessor cabinet to open() and prepend(). Its MS-DOS
-+   *   case-insensitive filename is mscabd_cabinet::prevname
-+   * - if <tt>(flags & MSCAB_HDR_NEXTCAB)</tt> is non-zero, there is a
-+   *   successor cabinet to open() and append(). Its MS-DOS case-insensitive
-+   *   filename is mscabd_cabinet::nextname
-+   *
-+   * If the cabinets do not match, an error code will be returned. Neither
-+   * cabinet has been altered, and both should be closed seperately.
-+   *
-+   * Files and folders in a cabinet set are a single entity. All cabinets
-+   * in a set use the same file list, which is updated as cabinets in the
-+   * set are added. All pointers to mscabd_folder and mscabd_file
-+   * structures in either cabinet must be discarded and re-obtained after
-+   * merging.
-+   *
-+   * @param  self     a self-referential pointer to the mscab_decompressor
-+   *                  instance being called
-+   * @param  cab      the cabinet which will be appended to,
-+   *                  predecessor of nextcab
-+   * @param  nextcab  the cabinet which will be appended,
-+   *                  successor of cab
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   * @see prepend(), open(), close()
-+   */
-+  int (*append) (struct mscab_decompressor *self,
-+		 struct mscabd_cabinet *cab,
-+		 struct mscabd_cabinet *nextcab);
-+
-+  /**
-+   * Prepends one mscabd_cabinet to another, forming or extending a
-+   * cabinet set.
-+   *
-+   * This will attempt to prepend one cabinet to another, such that
-+   * <tt>(cab->prevcab == prevcab) && (prevcab->nextcab == cab)</tt>. In
-+   * all other respects, it is identical to append(). See append() for the
-+   * full documentation.
-+   *
-+   * @param  self     a self-referential pointer to the mscab_decompressor
-+   *                  instance being called
-+   * @param  cab      the cabinet which will be prepended to,
-+   *                  successor of prevcab
-+   * @param  prevcab  the cabinet which will be prepended,
-+   *                  predecessor of cab
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   * @see append(), open(), close()
-+   */
-+  int (*prepend) (struct mscab_decompressor *self,
-+		  struct mscabd_cabinet *cab,
-+		  struct mscabd_cabinet *prevcab);
-+
-+  /**
-+   * Extracts a file from a cabinet or cabinet set.
-+   *
-+   * This extracts a compressed file in a cabinet and writes it to the given
-+   * filename.
-+   *
-+   * The MS-DOS filename of the file, mscabd_file::filename, is NOT USED
-+   * by extract(). The caller must examine this MS-DOS filename, copy and
-+   * change it as necessary, create directories as necessary, and provide
-+   * the correct filename as a parameter, which will be passed unchanged
-+   * to the decompressor's mspack_system::open()
-+   *
-+   * If the file belongs to a split folder in a multi-part cabinet set,
-+   * and not enough parts of the cabinet set have been loaded and appended
-+   * or prepended, an error will be returned immediately.
-+   *
-+   * @param  self     a self-referential pointer to the mscab_decompressor
-+   *                  instance being called
-+   * @param  file     the file to be decompressed
-+   * @param  filename the filename of the file being written to
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*extract)(struct mscab_decompressor *self,
-+		 struct mscabd_file *file,
-+		 const char *filename);
-+
-+  /**
-+   * Sets a CAB decompression engine parameter.
-+   *
-+   * The following parameters are defined:
-+   * - #MSCABD_PARAM_SEARCHBUF: How many bytes should be allocated as a
-+   *   buffer when using search()? The minimum value is 4.  The default
-+   *   value is 32768.
-+   * - #MSCABD_PARAM_FIXMSZIP: If non-zero, extract() will ignore bad
-+   *   checksums and recover from decompression errors in MS-ZIP
-+   *   compressed folders. The default value is 0 (don't recover).
-+   * - #MSCABD_PARAM_DECOMPBUF: How many bytes should be used as an input
-+   *   bit buffer by decompressors? The minimum value is 4. The default
-+   *   value is 4096.
-+   *
-+   * @param  self     a self-referential pointer to the mscab_decompressor
-+   *                  instance being called
-+   * @param  param    the parameter to set
-+   * @param  value    the value to set the parameter to
-+   * @return MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if there
-+   *         is a problem with either parameter or value.
-+   * @see search(), extract()
-+   */
-+  int (*set_param)(struct mscab_decompressor *self,
-+		   int param,
-+		   int value);
-+
-+  /**
-+   * Returns the error code set by the most recently called method.
-+   *
-+   * This is useful for open() and search(), which do not return an error
-+   * code directly.
-+   *
-+   * @param  self     a self-referential pointer to the mscab_decompressor
-+   *                  instance being called
-+   * @return the most recent error code
-+   * @see open(), search()
-+   */
-+  int (*last_error)(struct mscab_decompressor *self);
-+};
-+
-+/* --- support for .CHM (HTMLHelp) file format ----------------------------- */
-+
-+/**
-+ * A structure which represents a file to be placed in a CHM helpfile.
-+ *
-+ * A contiguous array of these structures should be passed to
-+ * mschm_compressor::generate(). The array list is terminated with an
-+ * entry whose mschmc_file::section field is set to #MSCHMC_ENDLIST, the
-+ * other fields in this entry are ignored.
-+ */
-+struct mschmc_file {
-+  /** One of #MSCHMC_ENDLIST, #MSCHMC_UNCOMP or #MSCHMC_MSCOMP. */
-+  int section;
-+
-+  /** The filename of the source file that will be added to the CHM. This
-+   * is passed directly to mspack_system::open(). */
-+  const char *filename;
-+
-+  /** The full path and filename of the file within the CHM helpfile, a
-+   * UTF-1 encoded null-terminated string. */
-+  char *chm_filename;
-+
-+  /** The length of the file, in bytes. This will be adhered to strictly
-+   * and a read error will be issued if this many bytes cannot be read
-+   * from the real file at CHM generation time. */
-+  off_t length;
-+};
-+
-+/**
-+ * A structure which represents a section of a CHM helpfile.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * Not used directly, but used as a generic base type for
-+ * mschmd_sec_uncompressed and mschmd_sec_mscompressed.
-+ */
-+struct mschmd_section {
-+  /** A pointer to the CHM helpfile that contains this section. */
-+  struct mschmd_header *chm;
-+
-+  /**
-+   * The section ID. Either 0 for the uncompressed section
-+   * mschmd_sec_uncompressed, or 1 for the LZX compressed section
-+   * mschmd_sec_mscompressed. No other section IDs are known.
-+   */
-+  unsigned int id;
-+};
-+
-+/**
-+ * A structure which represents the uncompressed section of a CHM helpfile.
-+ * 
-+ * All fields are READ ONLY.
-+ */
-+struct mschmd_sec_uncompressed {
-+  /** Generic section data. */
-+  struct mschmd_section base;
-+
-+  /** The file offset of where this section begins in the CHM helpfile. */
-+  off_t offset;
-+};
-+
-+/**
-+ * A structure which represents the LZX compressed section of a CHM helpfile. 
-+ * 
-+ * All fields are READ ONLY.
-+ */
-+struct mschmd_sec_mscompressed {
-+  /** Generic section data. */
-+  struct mschmd_section base;
-+
-+  /** A pointer to the meta-file which represents all LZX compressed data. */
-+  struct mschmd_file *content;
-+
-+  /** A pointer to the file which contains the LZX control data. */
-+  struct mschmd_file *control;
-+
-+  /** A pointer to the file which contains the LZX reset table. */
-+  struct mschmd_file *rtable;
-+
-+  /** A pointer to the file which contains the LZX span information.
-+   * Available only in CHM decoder version 2 and above.
-+   */
-+  struct mschmd_file *spaninfo;
-+};
-+
-+/**
-+ * A structure which represents a CHM helpfile.
-+ * 
-+ * All fields are READ ONLY.
-+ */
-+struct mschmd_header {
-+  /** The version of the CHM file format used in this file. */
-+  unsigned int version;
-+
-+  /**
-+   * The "timestamp" of the CHM helpfile. 
-+   *
-+   * It is the lower 32 bits of a 64-bit value representing the number of
-+   * centiseconds since 1601-01-01 00:00:00 UTC, plus 42. It is not useful
-+   * as a timestamp, but it is useful as a semi-unique ID.
-+   */
-+  unsigned int timestamp;
-+      
-+  /**
-+   * The default Language and Country ID (LCID) of the user who ran the
-+   * HTMLHelp Compiler. This is not the language of the CHM file itself.
-+   */
-+  unsigned int language;
-+
-+  /**
-+   * The filename of the CHM helpfile. This is given by the library user
-+   * and may be in any format.
-+   */
-+  const char *filename;
-+
-+  /** The length of the CHM helpfile, in bytes. */
-+  off_t length;
-+
-+  /** A list of all non-system files in the CHM helpfile. */
-+  struct mschmd_file *files;
-+
-+  /**
-+   * A list of all system files in the CHM helpfile.
-+   *
-+   * System files are files which begin with "::". They are meta-files
-+   * generated by the CHM creation process.
-+   */
-+  struct mschmd_file *sysfiles;
-+
-+  /** The section 0 (uncompressed) data in this CHM helpfile. */
-+  struct mschmd_sec_uncompressed sec0;
-+
-+  /** The section 1 (MSCompressed) data in this CHM helpfile. */
-+  struct mschmd_sec_mscompressed sec1;
-+
-+  /** The file offset of the first PMGL/PMGI directory chunk. */
-+  off_t dir_offset;
-+
-+  /** The number of PMGL/PMGI directory chunks in this CHM helpfile. */
-+  unsigned int num_chunks;
-+
-+  /** The size of each PMGL/PMGI chunk, in bytes. */
-+  unsigned int chunk_size;
-+
-+  /** The "density" of the quick-reference section in PMGL/PMGI chunks. */
-+  unsigned int density;
-+
-+  /** The depth of the index tree.
-+   *
-+   * - if 1, there are no PMGI chunks, only PMGL chunks.
-+   * - if 2, there is 1 PMGI chunk. All chunk indices point to PMGL chunks.
-+   * - if 3, the root PMGI chunk points to secondary PMGI chunks, which in
-+   *         turn point to PMGL chunks.
-+   * - and so on...
-+   */
-+  unsigned int depth;
-+
-+  /**
-+   * The number of the root PMGI chunk.
-+   *
-+   * If there is no index in the CHM helpfile, this will be 0xFFFFFFFF.
-+   */
-+  unsigned int index_root;
-+
-+  /**
-+   * The number of the first PMGL chunk. Usually zero.
-+   * Available only in CHM decoder version 2 and above.
-+   */
-+  unsigned int first_pmgl;
-+
-+  /**
-+   * The number of the last PMGL chunk. Usually num_chunks-1.
-+   * Available only in CHM decoder version 2 and above.
-+   */
-+  unsigned int last_pmgl;
-+
-+  /**
-+   * A cache of loaded chunks, filled in by mschm_decoder::fast_find().
-+   * Available only in CHM decoder version 2 and above.
-+   */
-+  unsigned char **chunk_cache;
-+};
-+
-+/**
-+ * A structure which represents a file stored in a CHM helpfile.
-+ * 
-+ * All fields are READ ONLY.
-+ */
-+struct mschmd_file {
-+  /**
-+   * A pointer to the next file in the list, or NULL if this is the final
-+   * file.
-+   */
-+  struct mschmd_file *next;
-+
-+  /**
-+   * A pointer to the section that this file is located in. Indirectly,
-+   * it also points to the CHM helpfile the file is located in.
-+   */
-+  struct mschmd_section *section;
-+
-+  /** The offset within the section data that this file is located at. */
-+  off_t offset;
-+
-+  /** The length of this file, in bytes */
-+  off_t length;
-+
-+  /** The filename of this file -- a null terminated string in UTF-8. */
-+  char *filename;
-+};
-+
-+/** mschmc_file::section value: end of CHM file list */
-+#define MSCHMC_ENDLIST   (0)
-+/** mschmc_file::section value: this file is in the Uncompressed section */
-+#define MSCHMC_UNCOMP    (1)
-+/** mschmc_file::section value: this file is in the MSCompressed section */
-+#define MSCHMC_MSCOMP    (2)
-+ 
-+/** mschm_compressor::set_param() parameter: "timestamp" header */
-+#define MSCHMC_PARAM_TIMESTAMP  (0)
-+/** mschm_compressor::set_param() parameter: "language" header */
-+#define MSCHMC_PARAM_LANGUAGE   (1)
-+/** mschm_compressor::set_param() parameter: LZX window size */
-+#define MSCHMC_PARAM_LZXWINDOW  (2)
-+/** mschm_compressor::set_param() parameter: intra-chunk quickref density */
-+#define MSCHMC_PARAM_DENSITY    (3)
-+/** mschm_compressor::set_param() parameter: whether to create indices */
-+#define MSCHMC_PARAM_INDEX      (4)
-+
-+/**
-+ * A compressor for .CHM (Microsoft HTMLHelp) files.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_chm_compressor(), mspack_destroy_chm_compressor()
-+ */
-+struct mschm_compressor {
-+  /**
-+   * Generates a CHM help file.
-+   *
-+   * The help file will contain up to two sections, an Uncompressed
-+   * section and potentially an MSCompressed (LZX compressed)
-+   * section.
-+   *
-+   * While the contents listing of a CHM file is always in lexical order,
-+   * the file list passed in will be taken as the correct order for files
-+   * within the sections.  It is in your interest to place similar files
-+   * together for better compression.
-+   *
-+   * There are two modes of generation, to use a temporary file or not to
-+   * use one. See use_temporary_file() for the behaviour of generate() in
-+   * these two different modes.
-+   *
-+   * @param  self        a self-referential pointer to the mschm_compressor
-+   *                     instance being called
-+   * @param  file_list   an array of mschmc_file structures, terminated
-+   *                     with an entry whose mschmc_file::section field is
-+   *                     #MSCHMC_ENDLIST. The order of the list is
-+   *                     preserved within each section. The length of any
-+   *                     mschmc_file::chm_filename string cannot exceed
-+   *                     roughly 4096 bytes. Each source file must be able
-+   *                     to supply as many bytes as given in the
-+   *                     mschmc_file::length field.
-+   * @param  output_file the file to write the generated CHM helpfile to.
-+   *                     This is passed directly to mspack_system::open()
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   * @see use_temporary_file() set_param()
-+   */
-+  int (*generate)(struct mschm_compressor *self,
-+		  struct mschmc_file file_list[],
-+		  const char *output_file);
-+
-+  /**
-+   * Specifies whether a temporary file is used during CHM generation.
-+   *
-+   * The CHM file format includes data about the compressed section (such
-+   * as its overall size) that is stored in the output CHM file prior to
-+   * the compressed section itself. This unavoidably requires that the
-+   * compressed section has to be generated, before these details can be
-+   * set. There are several ways this can be handled. Firstly, the
-+   * compressed section could be generated entirely in memory before
-+   * writing any of the output CHM file. This approach is not used in
-+   * libmspack, as the compressed section can exceed the addressable
-+   * memory space on most architectures.
-+   *
-+   * libmspack has two options, either to write these unknowable sections
-+   * with blank data, generate the compressed section, then re-open the
-+   * output file for update once the compressed section has been
-+   * completed, or to write the compressed section to a temporary file,
-+   * then write the entire output file at once, performing a simple
-+   * file-to-file copy for the compressed section.
-+   *
-+   * The simple solution of buffering the entire compressed section in
-+   * memory can still be used, if desired. As the temporary file's
-+   * filename is passed directly to mspack_system::open(), it is possible
-+   * for a custom mspack_system implementation to hold this file in memory,
-+   * without writing to a disk.
-+   *
-+   * If a temporary file is set, generate() performs the following
-+   * sequence of events: the temporary file is opened for writing, the
-+   * compression algorithm writes to the temporary file, the temporary
-+   * file is closed.  Then the output file is opened for writing and the
-+   * temporary file is re-opened for reading. The output file is written
-+   * and the temporary file is read from. Both files are then closed. The
-+   * temporary file itself is not deleted. If that is desired, the
-+   * temporary file should be deleted after the completion of generate(),
-+   * if it exists.
-+   *
-+   * If a temporary file is set not to be used, generate() performs the
-+   * following sequence of events: the output file is opened for writing,
-+   * then it is written and closed. The output file is then re-opened for
-+   * update, the appropriate sections are seek()ed to and re-written, then
-+   * the output file is closed.
-+   *
-+   * @param  self          a self-referential pointer to the
-+   *                       mschm_compressor instance being called
-+   * @param  use_temp_file non-zero if the temporary file should be used,
-+   *                       zero if the temporary file should not be used.
-+   * @param  temp_file     a file to temporarily write compressed data to,
-+   *                       before opening it for reading and copying the
-+   *                       contents to the output file. This is passed
-+   *                       directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   * @see generate()
-+   */
-+  int (*use_temporary_file)(struct mschm_compressor *self,
-+			    int use_temp_file,
-+			    const char *temp_file);
-+  /**
-+   * Sets a CHM compression engine parameter.
-+   *
-+   * The following parameters are defined:
-+
-+   * - #MSCHMC_PARAM_TIMESTAMP: Sets the "timestamp" of the CHM file
-+   *   generated. This is not a timestamp, see mschmd_header::timestamp
-+   *   for a description. If this timestamp is 0, generate() will use its
-+   *   own algorithm for making a unique ID, based on the lengths and
-+   *   names of files in the CHM itself. Defaults to 0, any value between
-+   *   0 and (2^32)-1 is valid.
-+   * - #MSCHMC_PARAM_LANGUAGE: Sets the "language" of the CHM file
-+   *   generated.  This is not the language used in the CHM file, but the
-+   *   language setting of the user who ran the HTMLHelp compiler. It
-+   *   defaults to 0x0409. The valid range is between 0x0000 and 0x7F7F.
-+   * - #MSCHMC_PARAM_LZXWINDOW: Sets the size of the LZX history window,
-+   *   which is also the interval at which the compressed data stream can be
-+   *   randomly accessed. The value is not a size in bytes, but a power of
-+   *   two. The default value is 16 (which makes the window 2^16 bytes, or
-+   *   64 kilobytes), the valid range is from 15 (32 kilobytes) to 21 (2
-+   *   megabytes).
-+   * - #MSCHMC_PARAM_DENSITY: Sets the "density" of quick reference
-+   *   entries stored at the end of directory listing chunk. Each chunk is
-+   *   4096 bytes in size, and contains as many file entries as there is
-+   *   room for. At the other end of the chunk, a list of "quick reference"
-+   *   pointers is included. The offset of every 'N'th file entry is given a
-+   *   quick reference, where N = (2^density) + 1. The default density is
-+   *   2. The smallest density is 0 (N=2), the maximum is 10 (N=1025). As
-+   *   each file entry requires at least 5 bytes, the maximum number of
-+   *   entries in a single chunk is roughly 800, so the maximum value 10
-+   *   can be used to indicate there are no quickrefs at all.
-+   * - #MSCHMC_PARAM_INDEX: Sets whether or not to include quick lookup
-+   *   index chunk(s), in addition to normal directory listing chunks. A
-+   *   value of zero means no index chunks will be created, a non-zero value
-+   *   means index chunks will be created. The default is zero, "don't
-+   *   create an index".
-+   *
-+   * @param  self     a self-referential pointer to the mschm_compressor
-+   *                  instance being called
-+   * @param  param    the parameter to set
-+   * @param  value    the value to set the parameter to
-+   * @return MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if there
-+   *         is a problem with either parameter or value.
-+   * @see generate()
-+   */
-+  int (*set_param)(struct mschm_compressor *self,
-+		   int param,
-+		   unsigned int value);
-+
-+  /**
-+   * Returns the error code set by the most recently called method.
-+   *
-+   * @param  self     a self-referential pointer to the mschm_compressor
-+   *                  instance being called
-+   * @return the most recent error code
-+   * @see set_param(), generate()
-+   */
-+  int (*last_error)(struct mschm_compressor *self);
-+};
-+
-+/**
-+ * A decompressor for .CHM (Microsoft HTMLHelp) files
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_chm_decompressor(), mspack_destroy_chm_decompressor()
-+ */
-+struct mschm_decompressor {
-+  /**
-+   * Opens a CHM helpfile and reads its contents.
-+   *
-+   * If the file opened is a valid CHM helpfile, all headers will be read
-+   * and a mschmd_header structure will be returned, with a full list of
-+   * files.
-+   *
-+   * In the case of an error occuring, NULL is returned and the error code
-+   * is available from last_error().
-+   *
-+   * The filename pointer should be considered "in use" until close() is
-+   * called on the CHM helpfile.
-+   *
-+   * @param  self     a self-referential pointer to the mschm_decompressor
-+   *                  instance being called
-+   * @param  filename the filename of the CHM helpfile. This is passed
-+   *                  directly to mspack_system::open().
-+   * @return a pointer to a mschmd_header structure, or NULL on failure
-+   * @see close()
-+   */
-+  struct mschmd_header *(*open)(struct mschm_decompressor *self,
-+				const char *filename);
-+
-+  /**
-+   * Closes a previously opened CHM helpfile.
-+   *
-+   * This closes a CHM helpfile, frees the mschmd_header and all
-+   * mschmd_file structures associated with it (if any). This works on
-+   * both helpfiles opened with open() and helpfiles opened with
-+   * fast_open().
-+   *
-+   * The CHM header pointer is now invalid and cannot be used again. All
-+   * mschmd_file pointers referencing that CHM are also now invalid, and
-+   * cannot be used again.
-+   *
-+   * @param  self     a self-referential pointer to the mschm_decompressor
-+   *                  instance being called
-+   * @param  chm      the CHM helpfile to close
-+   * @see open(), fast_open()
-+   */
-+  void (*close)(struct mschm_decompressor *self,
-+		struct mschmd_header *chm);
-+
-+  /**
-+   * Extracts a file from a CHM helpfile.
-+   *
-+   * This extracts a file from a CHM helpfile and writes it to the given
-+   * filename. The filename of the file, mscabd_file::filename, is not
-+   * used by extract(), but can be used by the caller as a guide for
-+   * constructing an appropriate filename.
-+   *
-+   * This method works both with files found in the mschmd_header::files
-+   * and mschmd_header::sysfiles list and mschmd_file structures generated
-+   * on the fly by fast_find().
-+   *
-+   * @param  self     a self-referential pointer to the mschm_decompressor
-+   *                  instance being called
-+   * @param  file     the file to be decompressed
-+   * @param  filename the filename of the file being written to
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*extract)(struct mschm_decompressor *self,
-+		 struct mschmd_file *file,
-+		 const char *filename);
-+
-+  /**
-+   * Returns the error code set by the most recently called method.
-+   *
-+   * This is useful for open() and fast_open(), which do not return an
-+   * error code directly.
-+   *
-+   * @param  self     a self-referential pointer to the mschm_decompressor
-+   *                  instance being called
-+   * @return the most recent error code
-+   * @see open(), extract()
-+   */
-+  int (*last_error)(struct mschm_decompressor *self);
-+
-+  /**
-+   * Opens a CHM helpfile quickly.
-+   *
-+   * If the file opened is a valid CHM helpfile, only essential headers
-+   * will be read. A mschmd_header structure will be still be returned, as
-+   * with open(), but the mschmd_header::files field will be NULL. No
-+   * files details will be automatically read.  The fast_find() method
-+   * must be used to obtain file details.
-+   *
-+   * In the case of an error occuring, NULL is returned and the error code
-+   * is available from last_error().
-+   *
-+   * The filename pointer should be considered "in use" until close() is
-+   * called on the CHM helpfile.
-+   *
-+   * @param  self     a self-referential pointer to the mschm_decompressor
-+   *                  instance being called
-+   * @param  filename the filename of the CHM helpfile. This is passed
-+   *                  directly to mspack_system::open().
-+   * @return a pointer to a mschmd_header structure, or NULL on failure
-+   * @see open(), close(), fast_find(), extract()
-+   */
-+  struct mschmd_header *(*fast_open)(struct mschm_decompressor *self,
-+				     const char *filename);
-+
-+  /**
-+   * Finds file details quickly.
-+   *
-+   * Instead of reading all CHM helpfile headers and building a list of
-+   * files, fast_open() and fast_find() are intended for finding file
-+   * details only when they are needed. The CHM file format includes an
-+   * on-disk file index to allow this.
-+   *
-+   * Given a case-sensitive filename, fast_find() will search the on-disk
-+   * index for that file.
-+   *
-+   * If the file was found, the caller-provided mschmd_file structure will
-+   * be filled out like so:
-+   * - section: the correct value for the found file
-+   * - offset: the correct value for the found file
-+   * - length: the correct value for the found file
-+   * - all other structure elements: NULL or 0
-+   *
-+   * If the file was not found, MSPACK_ERR_OK will still be returned as the
-+   * result, but the caller-provided structure will be filled out like so:
-+   * - section: NULL
-+   * - offset: 0
-+   * - length: 0
-+   * - all other structure elements: NULL or 0
-+   *
-+   * This method is intended to be used in conjunction with CHM helpfiles
-+   * opened with fast_open(), but it also works with helpfiles opened
-+   * using the regular open().
-+   *
-+   * @param  self     a self-referential pointer to the mschm_decompressor
-+   *                  instance being called
-+   * @param  chm      the CHM helpfile to search for the file
-+   * @param  filename the filename of the file to search for
-+   * @param  f_ptr    a pointer to a caller-provded mschmd_file structure
-+   * @param  f_size   <tt>sizeof(struct mschmd_file)</tt>
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   * @see open(), close(), fast_find(), extract()
-+   */
-+  int (*fast_find)(struct mschm_decompressor *self,
-+		   struct mschmd_header *chm,
-+		   const char *filename,
-+		   struct mschmd_file *f_ptr,
-+		   int f_size);
-+};
-+
-+/* --- support for .LIT (EBook) file format -------------------------------- */
-+
-+/** TODO */
-+struct mslit_compressor {
-+  int dummy; 
-+};
-+
-+/** TODO */
-+struct mslit_decompressor {
-+  int dummy; 
-+};
-+
-+
-+/* --- support for .HLP (MS Help) file format ------------------------------ */
-+
-+/** TODO */
-+struct mshlp_compressor {
-+  int dummy; 
-+};
-+
-+/** TODO */
-+struct mshlp_decompressor {
-+  int dummy; 
-+};
-+
-+
-+/* --- support for SZDD file format ---------------------------------------- */
-+
-+/** msszdd_compressor::set_param() parameter: the missing character */
-+#define MSSZDDC_PARAM_MISSINGCHAR (0)
-+
-+/** msszddd_header::format value - a regular SZDD file */
-+#define MSSZDD_FMT_NORMAL (0)
-+
-+/** msszddd_header::format value - a special QBasic SZDD file */
-+#define MSSZDD_FMT_QBASIC (1)
-+
-+/**
-+ * A structure which represents an SZDD compressed file.
-+ *
-+ * All fields are READ ONLY.
-+ */
-+struct msszddd_header {
-+  /** The file format; either #MSSZDD_FMT_NORMAL or #MSSZDD_FMT_QBASIC */
-+  int format;
-+
-+  /** The amount of data in the SZDD file once uncompressed. */
-+  off_t length;
-+
-+  /**
-+   * The last character in the filename, traditionally replaced with an
-+   * underscore to show the file is compressed. The null character is used
-+   * to show that this character has not been stored (e.g. because the
-+   * filename is not known). Generally, only characters that may appear in
-+   * an MS-DOS filename (except ".") are valid.
-+   */
-+  char missing_char;
-+};
-+
-+/**
-+ * A compressor for the SZDD file format.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_szdd_compressor(), mspack_destroy_szdd_compressor()
-+ */
-+struct msszdd_compressor {
-+  /**
-+   * Reads an input file and creates a compressed output file in the
-+   * SZDD compressed file format. The SZDD compression format is quick
-+   * but gives poor compression. It is possible for the compressed output
-+   * file to be larger than the input file.
-+   *
-+   * Conventionally, SZDD compressed files have the final character in
-+   * their filename replaced with an underscore, to show they are
-+   * compressed.  The missing character is stored in the compressed file
-+   * itself. This is due to the restricted filename conventions of MS-DOS,
-+   * most operating systems, such as UNIX, simply append another file
-+   * extension to the existing filename. As mspack does not deal with
-+   * filenames, this is left up to you. If you wish to set the missing
-+   * character stored in the file header, use set_param() with the
-+   * #MSSZDDC_PARAM_MISSINGCHAR parameter.
-+   *
-+   * "Stream" compression (where the length of the input data is not
-+   * known) is not possible. The length of the input data is stored in the
-+   * header of the SZDD file and must therefore be known before any data
-+   * is compressed. Due to technical limitations of the file format, the
-+   * maximum size of uncompressed file that will be accepted is 2147483647
-+   * bytes.
-+   *
-+   * @param  self    a self-referential pointer to the msszdd_compressor
-+   *                 instance being called
-+   * @param  input   the name of the file to compressed. This is passed
-+   *                 passed directly to mspack_system::open()
-+   * @param  output  the name of the file to write compressed data to.
-+   *                 This is passed directly to mspack_system::open().
-+   * @param  length  the length of the uncompressed file, or -1 to indicate
-+   *                 that this should be determined automatically by using
-+   *                 mspack_system::seek() on the input file.
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   * @see set_param()
-+   */
-+  int (*compress)(struct msszdd_compressor *self,
-+		  const char *input,
-+		  const char *output,
-+		  off_t length);
-+
-+  /**
-+   * Sets an SZDD compression engine parameter.
-+   *
-+   * The following parameters are defined:
-+
-+   * - #MSSZDDC_PARAM_CHARACTER: the "missing character", the last character
-+   *   in the uncompressed file's filename, which is traditionally replaced
-+   *   with an underscore to show the file is compressed. Traditionally,
-+   *   this can only be a character that is a valid part of an MS-DOS,
-+   *   filename, but libmspack permits any character between 0x00 and 0xFF
-+   *   to be stored. 0x00 is the default, and it represents "no character
-+   *   stored".
-+   *
-+   * @param  self     a self-referential pointer to the msszdd_compressor
-+   *                  instance being called
-+   * @param  param    the parameter to set
-+   * @param  value    the value to set the parameter to
-+   * @return MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if there
-+   *         is a problem with either parameter or value.
-+   * @see compress()
-+   */
-+  int (*set_param)(struct msszdd_compressor *self,
-+		   int param,
-+		   unsigned int value);
-+
-+  /**
-+   * Returns the error code set by the most recently called method.
-+   *
-+   * @param  self     a self-referential pointer to the msszdd_compressor
-+   *                  instance being called
-+   * @return the most recent error code
-+   * @see compress()
-+   */
-+  int (*last_error)(struct mschm_decompressor *self);
-+};
-+
-+/**
-+ * A decompressor for SZDD compressed files.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_szdd_decompressor(), mspack_destroy_szdd_decompressor()
-+ */
-+struct msszdd_decompressor {
-+  /**
-+   * Opens a SZDD file and reads the header.
-+   *
-+   * If the file opened is a valid SZDD file, all headers will be read and
-+   * a msszddd_header structure will be returned.
-+   *
-+   * In the case of an error occuring, NULL is returned and the error code
-+   * is available from last_error().
-+   *
-+   * The filename pointer should be considered "in use" until close() is
-+   * called on the SZDD file.
-+   *
-+   * @param  self     a self-referential pointer to the msszdd_decompressor
-+   *                  instance being called
-+   * @param  filename the filename of the SZDD compressed file. This is
-+   *                  passed directly to mspack_system::open().
-+   * @return a pointer to a msszddd_header structure, or NULL on failure
-+   * @see close()
-+   */
-+  struct msszddd_header *(*open)(struct msszdd_decompressor *self,
-+				 const char *filename);
-+
-+  /**
-+   * Closes a previously opened SZDD file.
-+   *
-+   * This closes a SZDD file and frees the msszddd_header associated with
-+   * it.
-+   *
-+   * The SZDD header pointer is now invalid and cannot be used again.
-+   *
-+   * @param  self     a self-referential pointer to the msszdd_decompressor
-+   *                  instance being called
-+   * @param  szdd     the SZDD file to close
-+   * @see open()
-+   */
-+  void (*close)(struct msszdd_decompressor *self,
-+		struct msszddd_header *szdd);
-+
-+  /**
-+   * Extracts the compressed data from a SZDD file.
-+   *
-+   * This decompresses the compressed SZDD data stream and writes it to
-+   * an output file.
-+   *
-+   * @param  self     a self-referential pointer to the msszdd_decompressor
-+   *                  instance being called
-+   * @param  szdd     the SZDD file to extract data from
-+   * @param  filename the filename to write the decompressed data to. This
-+   *                  is passed directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*extract)(struct msszdd_decompressor *self,
-+		 struct msszddd_header *szdd,
-+		 const char *filename);
-+
-+  /**
-+   * Decompresses an SZDD file to an output file in one step.
-+   *
-+   * This opens an SZDD file as input, reads the header, then decompresses
-+   * the compressed data immediately to an output file, finally closing
-+   * both the input and output file. It is more convenient to use than
-+   * open() then extract() then close(), if you do not need to know the
-+   * SZDD output size or missing character.
-+   *
-+   * @param  self     a self-referential pointer to the msszdd_decompressor
-+   *                  instance being called
-+   * @param  input    the filename of the input SZDD file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @param  output   the filename to write the decompressed data to. This
-+   *                  is passed directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*decompress)(struct msszdd_decompressor *self,
-+		    const char *input,
-+		    const char *output);
-+
-+  /**
-+   * Returns the error code set by the most recently called method.
-+   *
-+   * This is useful for open() which does not return an
-+   * error code directly.
-+   *
-+   * @param  self     a self-referential pointer to the msszdd_decompressor
-+   *                  instance being called
-+   * @return the most recent error code
-+   * @see open(), extract(), decompress()
-+   */
-+  int (*last_error)(struct msszdd_decompressor *self);
-+};
-+
-+/* --- support for KWAJ file format ---------------------------------------- */
-+
-+/** mskwaj_compressor::set_param() parameter: compression type */
-+#define MSKWAJC_PARAM_COMP_TYPE  (0)
-+
-+/** mskwaj_compressor::set_param() parameter: include the length of the
-+ * uncompressed file in the header?
-+ */
-+#define MSKWAJC_PARAM_INCLUDE_LENGTH (1)
-+
-+/** KWAJ compression type: no compression. */
-+#define MSKWAJ_COMP_NONE (0)
-+/** KWAJ compression type: no compression, 0xFF XOR "encryption". */
-+#define MSKWAJ_COMP_XOR (1)
-+/** KWAJ compression type: LZSS (same method as SZDD) */
-+#define MSKWAJ_COMP_SZDD (2)
-+/** KWAJ compression type: LZ+Huffman compression */
-+#define MSKWAJ_COMP_LZH (3)
-+/** KWAJ compression type: MSZIP */
-+#define MSKWAJ_COMP_MSZIP (4)
-+
-+/** KWAJ optional header flag: decompressed file length is included */
-+#define MSKWAJ_HDR_HASLENGTH (0x01)
-+
-+/** KWAJ optional header flag: unknown 2-byte structure is included */
-+#define MSKWAJ_HDR_HASUNKNOWN1 (0x02)
-+
-+/** KWAJ optional header flag: unknown multi-sized structure is included */
-+#define MSKWAJ_HDR_HASUNKNOWN2 (0x04)
-+
-+/** KWAJ optional header flag: file name (no extension) is included */
-+#define MSKWAJ_HDR_HASFILENAME (0x08)
-+
-+/** KWAJ optional header flag: file extension is included */
-+#define MSKWAJ_HDR_HASFILEEXT (0x10)
-+
-+/** KWAJ optional header flag: extra text is included */
-+#define MSKWAJ_HDR_HASEXTRATEXT (0x20)
-+
-+/**
-+ * A structure which represents an KWAJ compressed file.
-+ *
-+ * All fields are READ ONLY.
-+ */
-+struct mskwajd_header {
-+  /** The compression type; should be one of #MSKWAJ_COMP_NONE,
-+   * #MSKWAJ_COMP_XOR, #MSKWAJ_COMP_SZDD or #MSKWAJ_COMP_LZH
-+   */
-+  unsigned short comp_type;
-+
-+  /** The offset in the file where the compressed data stream begins */
-+  off_t data_offset;
-+
-+  /** Flags indicating which optional headers were included. */
-+  int headers;
-+
-+  /** The amount of uncompressed data in the file, or 0 if not present. */
-+  off_t length;
-+
-+  /** output filename, or NULL if not present */
-+  char *filename;
-+
-+  /** extra uncompressed data (usually text) in the header.
-+   * This data can contain nulls so use extra_length to get the size.
-+   */
-+  char *extra;
-+
-+  /** length of extra uncompressed data in the header */
-+  unsigned short extra_length;
-+};
-+
-+/**
-+ * A compressor for the KWAJ file format.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_kwaj_compressor(), mspack_destroy_kwaj_compressor()
-+ */
-+struct mskwaj_compressor {
-+  /**
-+   * Reads an input file and creates a compressed output file in the
-+   * KWAJ compressed file format. The KWAJ compression format is quick
-+   * but gives poor compression. It is possible for the compressed output
-+   * file to be larger than the input file.
-+   *
-+   * @param  self    a self-referential pointer to the mskwaj_compressor
-+   *                 instance being called
-+   * @param  input   the name of the file to compressed. This is passed
-+   *                 passed directly to mspack_system::open()
-+   * @param  output  the name of the file to write compressed data to.
-+   *                 This is passed directly to mspack_system::open().
-+   * @param  length  the length of the uncompressed file, or -1 to indicate
-+   *                 that this should be determined automatically by using
-+   *                 mspack_system::seek() on the input file.
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   * @see set_param()
-+   */
-+  int (*compress)(struct mskwaj_compressor *self,
-+		  const char *input,
-+		  const char *output,
-+		  off_t length);
-+
-+  /**
-+   * Sets an KWAJ compression engine parameter.
-+   *
-+   * The following parameters are defined:
-+   *
-+   * - #MSKWAJC_PARAM_COMP_TYPE: the compression method to use. Must
-+   *   be one of #MSKWAJC_COMP_NONE, #MSKWAJC_COMP_XOR, #MSKWAJ_COMP_SZDD
-+   *   or #MSKWAJ_COMP_LZH. The default is #MSKWAJ_COMP_LZH.
-+   *
-+   * - #MSKWAJC_PARAM_INCLUDE_LENGTH: a boolean; should the compressed
-+   *   output file should include the uncompressed length of the input
-+   *   file in the header? This adds 4 bytes to the size of the output
-+   *   file. A value of zero says "no", non-zero says "yes". The default
-+   *   is "no".
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_compressor
-+   *                  instance being called
-+   * @param  param    the parameter to set
-+   * @param  value    the value to set the parameter to
-+   * @return MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if there
-+   *         is a problem with either parameter or value.
-+   * @see generate()
-+   */
-+  int (*set_param)(struct mskwaj_compressor *self,
-+		   int param,
-+		   unsigned int value);
-+
-+
-+  /**
-+   * Sets the original filename of the file before compression,
-+   * which will be stored in the header of the output file.
-+   *
-+   * The filename should be a null-terminated string, it must be an
-+   * MS-DOS "8.3" type filename (up to 8 bytes for the filename, then
-+   * optionally a "." and up to 3 bytes for a filename extension).
-+   *
-+   * If NULL is passed as the filename, no filename is included in the
-+   * header. This is the default.
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_compressor
-+   *                  instance being called
-+   * @param  filename the original filename to use
-+   * @return MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if the
-+   *         filename is too long
-+   */
-+  int (*set_filename)(struct mskwaj_compressor *self,
-+		      const char *filename);
-+
-+  /**
-+   * Sets arbitrary data that will be stored in the header of the
-+   * output file, uncompressed. It can be up to roughly 64 kilobytes,
-+   * as the overall size of the header must not exceed 65535 bytes.
-+   * The data can contain null bytes if desired.
-+   *
-+   * If NULL is passed as the data pointer, or zero is passed as the
-+   * length, no extra data is included in the header. This is the
-+   * default.
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_compressor
-+   *                  instance being called
-+   * @param  data     a pointer to the data to be stored in the header
-+   * @param  bytes    the length of the data in bytes
-+   * @return MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS extra data
-+   *         is too long
-+   */
-+  int (*set_extra_data)(struct mskwaj_compressor *self,
-+			void *data,
-+			size_t bytes);
-+
-+  /**
-+   * Returns the error code set by the most recently called method.
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_compressor
-+   *                  instance being called
-+   * @return the most recent error code
-+   * @see compress()
-+   */
-+  int (*last_error)(struct mschm_decompressor *self);
-+};
-+
-+/**
-+ * A decompressor for KWAJ compressed files.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_kwaj_decompressor(), mspack_destroy_kwaj_decompressor()
-+ */
-+struct mskwaj_decompressor {
-+  /**
-+   * Opens a KWAJ file and reads the header.
-+   *
-+   * If the file opened is a valid KWAJ file, all headers will be read and
-+   * a mskwajd_header structure will be returned.
-+   *
-+   * In the case of an error occuring, NULL is returned and the error code
-+   * is available from last_error().
-+   *
-+   * The filename pointer should be considered "in use" until close() is
-+   * called on the KWAJ file.
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_decompressor
-+   *                  instance being called
-+   * @param  filename the filename of the KWAJ compressed file. This is
-+   *                  passed directly to mspack_system::open().
-+   * @return a pointer to a mskwajd_header structure, or NULL on failure
-+   * @see close()
-+   */
-+  struct mskwajd_header *(*open)(struct mskwaj_decompressor *self,
-+				 const char *filename);
-+
-+  /**
-+   * Closes a previously opened KWAJ file.
-+   *
-+   * This closes a KWAJ file and frees the mskwajd_header associated
-+   * with it. The KWAJ header pointer is now invalid and cannot be
-+   * used again.
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_decompressor
-+   *                  instance being called
-+   * @param  kwaj     the KWAJ file to close
-+   * @see open()
-+   */
-+  void (*close)(struct mskwaj_decompressor *self,
-+		struct mskwajd_header *kwaj);
-+
-+  /**
-+   * Extracts the compressed data from a KWAJ file.
-+   *
-+   * This decompresses the compressed KWAJ data stream and writes it to
-+   * an output file.
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_decompressor
-+   *                  instance being called
-+   * @param  kwaj     the KWAJ file to extract data from
-+   * @param  filename the filename to write the decompressed data to. This
-+   *                  is passed directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*extract)(struct mskwaj_decompressor *self,
-+		 struct mskwajd_header *kwaj,
-+		 const char *filename);
-+
-+  /**
-+   * Decompresses an KWAJ file to an output file in one step.
-+   *
-+   * This opens an KWAJ file as input, reads the header, then decompresses
-+   * the compressed data immediately to an output file, finally closing
-+   * both the input and output file. It is more convenient to use than
-+   * open() then extract() then close(), if you do not need to know the
-+   * KWAJ output size or output filename.
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_decompressor
-+   *                  instance being called
-+   * @param  input    the filename of the input KWAJ file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @param  output   the filename to write the decompressed data to. This
-+   *                  is passed directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*decompress)(struct mskwaj_decompressor *self,
-+		    const char *input,
-+		    const char *output);
-+
-+  /**
-+   * Returns the error code set by the most recently called method.
-+   *
-+   * This is useful for open() which does not return an
-+   * error code directly.
-+   *
-+   * @param  self     a self-referential pointer to the mskwaj_decompressor
-+   *                  instance being called
-+   * @return the most recent error code
-+   * @see open(), search()
-+   */
-+  int (*last_error)(struct mskwaj_decompressor *self);
-+};
-+
-+/* --- support for .LZX (Offline Address Book) file format ----------------- */
-+
-+/**
-+ * A compressor for the Offline Address Book (OAB) format.
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_oab_compressor(), mspack_destroy_oab_compressor()
-+ */
-+struct msoab_compressor {
-+  /**
-+   * Compress a full OAB file.
-+   *
-+   * The input file will be read and the compressed contents written to the
-+   * output file.
-+   *
-+   * @param  self     a self-referential pointer to the msoab_decompressor
-+   *                  instance being called
-+   * @param  input    the filename of the input file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @param  output   the filename of the output file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*compress) (struct msoab_compressor *self,
-+		   const char *input,
-+		   const char *output);
-+
-+  /**
-+   * Generate a compressed incremental OAB patch file.
-+   *
-+   * The two uncompressed files "input" and "base" will be read, and an
-+   * incremental patch to generate "input" from "base" will be written to
-+   * the output file.
-+   *
-+   * @param  self     a self-referential pointer to the msoab_compressor
-+   *                  instance being called
-+   * @param  input    the filename of the input file containing the new
-+   *                  version of its contents. This is passed directly
-+   *                  to mspack_system::open().
-+   * @param  base     the filename of the original base file containing
-+   *                  the old version of its contents, against which the
-+   *                  incremental patch shall generated. This is passed
-+   *                  directly to mspack_system::open().
-+   * @param  output   the filename of the output file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*compress_incremental) (struct msoab_compressor *self,
-+			       const char *input,
-+			       const char *base,
-+			       const char *output);
-+};
-+
-+/**
-+ * A decompressor for .LZX (Offline Address Book) files
-+ *
-+ * All fields are READ ONLY.
-+ *
-+ * @see mspack_create_oab_decompressor(), mspack_destroy_oab_decompressor()
-+ */
-+struct msoab_decompressor {
-+  /**
-+   * Decompresses a full Offline Address Book file.
-+   *
-+   * If the input file is a valid compressed Offline Address Book file, 
-+   * it will be read and the decompressed contents will be written to
-+   * the output file.
-+   *
-+   * @param  self     a self-referential pointer to the msoab_decompressor
-+   *                  instance being called
-+   * @param  input    the filename of the input file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @param  output   the filename of the output file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*decompress) (struct msoab_decompressor *self,
-+		     const char *input,
-+		     const char *output);
-+
-+  /**
-+   * Decompresses an Offline Address Book with an incremental patch file.
-+   *
-+   * This requires both a full UNCOMPRESSED Offline Address Book file to
-+   * act as the "base", and a compressed incremental patch file as input.
-+   * If the input file is valid, it will be decompressed with reference to
-+   * the base file, and the decompressed contents will be written to the
-+   * output file.
-+   *
-+   * There is no way to tell what the right base file is for the given
-+   * incremental patch, but if you get it wrong, this will usually result
-+   * in incorrect data being decompressed, which will then fail a checksum
-+   * test.
-+   *
-+   * @param  self     a self-referential pointer to the msoab_decompressor
-+   *                  instance being called
-+   * @param  input    the filename of the input file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @param  base     the filename of the base file to which the
-+   *                  incremental patch shall be applied. This is passed
-+   *                  directly to mspack_system::open().
-+   * @param  output   the filename of the output file. This is passed
-+   *                  directly to mspack_system::open().
-+   * @return an error code, or MSPACK_ERR_OK if successful
-+   */
-+  int (*decompress_incremental) (struct msoab_decompressor *self,
-+				 const char *input,
-+				 const char *base,
-+				 const char *output);
-+};
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/mszip.h b/libclamav/libmspack-0.4alpha/mspack/mszip.h
-new file mode 100644
-index 000000000000..0fe79e4af516
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/mszip.h
-@@ -0,0 +1,126 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * The deflate method was created by Phil Katz. MSZIP is equivalent to the
-+ * deflate method.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_MSZIP_H
-+#define MSPACK_MSZIP_H 1
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* MSZIP (deflate) compression / (inflate) decompression definitions */
-+
-+#define MSZIP_FRAME_SIZE          (32768) /* size of LZ history window */
-+#define MSZIP_LITERAL_MAXSYMBOLS  (288)   /* literal/length huffman tree */
-+#define MSZIP_LITERAL_TABLEBITS   (9)
-+#define MSZIP_DISTANCE_MAXSYMBOLS (32)    /* distance huffman tree */
-+#define MSZIP_DISTANCE_TABLEBITS  (6)
-+
-+/* if there are less direct lookup entries than symbols, the longer
-+ * code pointers will be <= maxsymbols. This must not happen, or we
-+ * will decode entries badly */
-+#if (1 << MSZIP_LITERAL_TABLEBITS) < (MSZIP_LITERAL_MAXSYMBOLS * 2)
-+# define MSZIP_LITERAL_TABLESIZE (MSZIP_LITERAL_MAXSYMBOLS * 4)
-+#else
-+# define MSZIP_LITERAL_TABLESIZE ((1 << MSZIP_LITERAL_TABLEBITS) + \
-+				  (MSZIP_LITERAL_MAXSYMBOLS * 2))
-+#endif
-+
-+#if (1 << MSZIP_DISTANCE_TABLEBITS) < (MSZIP_DISTANCE_MAXSYMBOLS * 2)
-+# define MSZIP_DISTANCE_TABLESIZE (MSZIP_DISTANCE_MAXSYMBOLS * 4)
-+#else
-+# define MSZIP_DISTANCE_TABLESIZE ((1 << MSZIP_DISTANCE_TABLEBITS) + \
-+				  (MSZIP_DISTANCE_MAXSYMBOLS * 2))
-+#endif
-+
-+struct mszipd_stream {
-+  struct mspack_system *sys;            /* I/O routines          */
-+  struct mspack_file   *input;          /* input file handle     */
-+  struct mspack_file   *output;         /* output file handle    */
-+  unsigned int window_posn;             /* offset within window  */
-+
-+  /* inflate() will call this whenever the window should be emptied. */
-+  int (*flush_window)(struct mszipd_stream *, unsigned int);
-+
-+  int error, repair_mode, bytes_output;
-+
-+  /* I/O buffering */
-+  unsigned char *inbuf, *i_ptr, *i_end, *o_ptr, *o_end, input_end;
-+  unsigned int bit_buffer, bits_left, inbuf_size;
-+
-+
-+  /* huffman code lengths */
-+  unsigned char  LITERAL_len[MSZIP_LITERAL_MAXSYMBOLS];
-+  unsigned char  DISTANCE_len[MSZIP_DISTANCE_MAXSYMBOLS];
-+
-+  /* huffman decoding tables */
-+  unsigned short LITERAL_table [MSZIP_LITERAL_TABLESIZE];
-+  unsigned short DISTANCE_table[MSZIP_DISTANCE_TABLESIZE];
-+
-+  /* 32kb history window */
-+  unsigned char window[MSZIP_FRAME_SIZE];
-+};
-+
-+/* allocates MS-ZIP decompression stream for decoding the given stream.
-+ *
-+ * - uses system->alloc() to allocate memory
-+ *
-+ * - returns NULL if not enough memory
-+ *
-+ * - input_buffer_size is how many bytes to use as an input bitstream buffer
-+ *
-+ * - if repair_mode is non-zero, errors in decompression will be skipped
-+ *   and 'holes' left will be filled with zero bytes. This allows at least
-+ *   a partial recovery of erroneous data.
-+ */
-+extern struct mszipd_stream *mszipd_init(struct mspack_system *system,
-+					struct mspack_file *input,
-+					struct mspack_file *output,
-+					int input_buffer_size,
-+					int repair_mode);
-+
-+/* decompresses, or decompresses more of, an MS-ZIP stream.
-+ *
-+ * - out_bytes of data will be decompressed and the function will return
-+ *   with an MSPACK_ERR_OK return code.
-+ *
-+ * - decompressing will stop as soon as out_bytes is reached. if the true
-+ *   amount of bytes decoded spills over that amount, they will be kept for
-+ *   a later invocation of mszipd_decompress().
-+ *
-+ * - the output bytes will be passed to the system->write() function given in
-+ *   mszipd_init(), using the output file handle given in mszipd_init(). More
-+ *   than one call may be made to system->write()
-+ *
-+ * - MS-ZIP will read input bytes as necessary using the system->read()
-+ *   function given in mszipd_init(), using the input file handle given in
-+ *   mszipd_init(). This will continue until system->read() returns 0 bytes,
-+ *   or an error.
-+ */
-+extern int mszipd_decompress(struct mszipd_stream *zip, off_t out_bytes);
-+
-+/* decompresses an entire MS-ZIP stream in a KWAJ file. Acts very much
-+ * like mszipd_decompress(), but doesn't take an out_bytes parameter
-+ */
-+extern int mszipd_decompress_kwaj(struct mszipd_stream *zip);
-+
-+/* frees all stream associated with an MS-ZIP data stream
-+ *
-+ * - calls system->free() using the system pointer given in mszipd_init()
-+ */
-+void mszipd_free(struct mszipd_stream *zip);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/mszipc.c b/libclamav/libmspack-0.4alpha/mspack/mszipc.c
-new file mode 100644
-index 000000000000..2f1ecb2e8757
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/mszipc.c
-@@ -0,0 +1,18 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * The deflate method was created by Phil Katz. MSZIP is equivalent to the
-+ * deflate method.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* MS-ZIP compression implementation */
-+
-+#include <system.h>
-+#include <mszip.h>
-+
-+/* todo */
-diff --git a/libclamav/libmspack-0.4alpha/mspack/mszipd.c b/libclamav/libmspack-0.4alpha/mspack/mszipd.c
-new file mode 100644
-index 000000000000..cd85bb9fa1ca
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/mszipd.c
-@@ -0,0 +1,514 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2010 Stuart Caie.
-+ *
-+ * The deflate method was created by Phil Katz. MSZIP is equivalent to the
-+ * deflate method.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* MS-ZIP decompression implementation. */
-+
-+#include <system.h>
-+#include <mszip.h>
-+
-+/* import bit-reading macros and code */
-+#define BITS_TYPE struct mszipd_stream
-+#define BITS_VAR zip
-+#define BITS_ORDER_LSB
-+#define BITS_LSB_TABLE
-+#define READ_BYTES do {		\
-+    READ_IF_NEEDED;		\
-+    INJECT_BITS(*i_ptr++, 8);	\
-+} while (0)
-+#include <readbits.h>
-+
-+/* import huffman macros and code */
-+#define TABLEBITS(tbl)      MSZIP_##tbl##_TABLEBITS
-+#define MAXSYMBOLS(tbl)     MSZIP_##tbl##_MAXSYMBOLS
-+#define HUFF_TABLE(tbl,idx) zip->tbl##_table[idx]
-+#define HUFF_LEN(tbl,idx)   zip->tbl##_len[idx]
-+#define HUFF_ERROR          return INF_ERR_HUFFSYM
-+#include <readhuff.h>
-+
-+#define FLUSH_IF_NEEDED do {				\
-+    if (zip->window_posn == MSZIP_FRAME_SIZE) {		\
-+	if (zip->flush_window(zip, MSZIP_FRAME_SIZE)) {	\
-+	    return INF_ERR_FLUSH;			\
-+	}						\
-+	zip->window_posn = 0;				\
-+    }							\
-+} while (0)
-+
-+/* match lengths for literal codes 257.. 285 */
-+static const unsigned short lit_lengths[29] = {
-+  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27,
-+  31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258
-+};
-+
-+/* match offsets for distance codes 0 .. 29 */
-+static const unsigned short dist_offsets[30] = {
-+  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385,
-+  513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577
-+};
-+
-+/* extra bits required for literal codes 257.. 285 */
-+static const unsigned char lit_extrabits[29] = {
-+  0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2,
-+  2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0
-+};
-+
-+/* extra bits required for distance codes 0 .. 29 */
-+static const unsigned char dist_extrabits[30] = {
-+  0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
-+  6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
-+};
-+
-+/* the order of the bit length Huffman code lengths */
-+static const unsigned char bitlen_order[19] = {
-+  16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15
-+};
-+
-+/* inflate() error codes */
-+#define INF_ERR_BLOCKTYPE   (-1)  /* unknown block type                      */
-+#define INF_ERR_COMPLEMENT  (-2)  /* block size complement mismatch          */
-+#define INF_ERR_FLUSH       (-3)  /* error from flush_window() callback      */
-+#define INF_ERR_BITBUF      (-4)  /* too many bits in bit buffer             */
-+#define INF_ERR_SYMLENS     (-5)  /* too many symbols in blocktype 2 header  */
-+#define INF_ERR_BITLENTBL   (-6)  /* failed to build bitlens huffman table   */
-+#define INF_ERR_LITERALTBL  (-7)  /* failed to build literals huffman table  */
-+#define INF_ERR_DISTANCETBL (-8)  /* failed to build distance huffman table  */
-+#define INF_ERR_BITOVERRUN  (-9)  /* bitlen RLE code goes over table size    */
-+#define INF_ERR_BADBITLEN   (-10) /* invalid bit-length code                 */
-+#define INF_ERR_LITCODE     (-11) /* out-of-range literal code               */
-+#define INF_ERR_DISTCODE    (-12) /* out-of-range distance code              */
-+#define INF_ERR_DISTANCE    (-13) /* somehow, distance is beyond 32k         */
-+#define INF_ERR_HUFFSYM     (-14) /* out of bits decoding huffman symbol     */
-+
-+static int zip_read_lens(struct mszipd_stream *zip) {
-+  /* for the bit buffer and huffman decoding */
-+  register unsigned int bit_buffer;
-+  register int bits_left;
-+  unsigned char *i_ptr, *i_end;
-+
-+  /* bitlen Huffman codes -- immediate lookup, 7 bit max code length */
-+  unsigned short bl_table[(1 << 7)];
-+  unsigned char bl_len[19];
-+
-+  unsigned char lens[MSZIP_LITERAL_MAXSYMBOLS + MSZIP_DISTANCE_MAXSYMBOLS];
-+  unsigned int lit_codes, dist_codes, code, last_code=0, bitlen_codes, i, run;
-+
-+  RESTORE_BITS;
-+
-+  /* read the number of codes */
-+  READ_BITS(lit_codes,    5); lit_codes    += 257;
-+  READ_BITS(dist_codes,   5); dist_codes   += 1;
-+  READ_BITS(bitlen_codes, 4); bitlen_codes += 4;
-+  if (lit_codes  > MSZIP_LITERAL_MAXSYMBOLS)  return INF_ERR_SYMLENS;
-+  if (dist_codes > MSZIP_DISTANCE_MAXSYMBOLS) return INF_ERR_SYMLENS;
-+
-+  /* read in the bit lengths in their unusual order */
-+  for (i = 0; i < bitlen_codes; i++) READ_BITS(bl_len[bitlen_order[i]], 3);
-+  while (i < 19) bl_len[bitlen_order[i++]] = 0;
-+
-+  /* create decoding table with an immediate lookup */
-+  if (make_decode_table(19, 7, &bl_len[0], &bl_table[0])) {
-+    return INF_ERR_BITLENTBL;
-+  }
-+
-+  /* read literal / distance code lengths */
-+  for (i = 0; i < (lit_codes + dist_codes); i++) {
-+    /* single-level huffman lookup */
-+    ENSURE_BITS(7);
-+    code = bl_table[PEEK_BITS(7)];
-+    REMOVE_BITS(bl_len[code]);
-+
-+    if (code < 16) lens[i] = last_code = code;
-+    else {
-+      switch (code) {
-+      case 16: READ_BITS(run, 2); run += 3;  code = last_code; break;
-+      case 17: READ_BITS(run, 3); run += 3;  code = 0;         break;
-+      case 18: READ_BITS(run, 7); run += 11; code = 0;         break;
-+      default: D(("bad code!: %u", code)) return INF_ERR_BADBITLEN;
-+      }
-+      if ((i + run) > (lit_codes + dist_codes)) return INF_ERR_BITOVERRUN;
-+      while (run--) lens[i++] = code;
-+      i--;
-+    }
-+  }
-+
-+  /* copy LITERAL code lengths and clear any remaining */
-+  i = lit_codes;
-+  zip->sys->copy(&lens[0], &zip->LITERAL_len[0], i);
-+  while (i < MSZIP_LITERAL_MAXSYMBOLS) zip->LITERAL_len[i++] = 0;
-+
-+  i = dist_codes;
-+  zip->sys->copy(&lens[lit_codes], &zip->DISTANCE_len[0], i);
-+  while (i < MSZIP_DISTANCE_MAXSYMBOLS) zip->DISTANCE_len[i++] = 0;
-+
-+  STORE_BITS;
-+  return 0;
-+}
-+
-+/* a clean implementation of RFC 1951 / inflate */
-+static int inflate(struct mszipd_stream *zip) {
-+  unsigned int last_block, block_type, distance, length, this_run, i;
-+
-+  /* for the bit buffer and huffman decoding */
-+  register unsigned int bit_buffer;
-+  register int bits_left;
-+  register unsigned short sym;
-+  unsigned char *i_ptr, *i_end;
-+
-+  RESTORE_BITS;
-+
-+  do {
-+    /* read in last block bit */
-+    READ_BITS(last_block, 1);
-+
-+    /* read in block type */
-+    READ_BITS(block_type, 2);
-+
-+    if (block_type == 0) {
-+      /* uncompressed block */
-+      unsigned char lens_buf[4];
-+
-+      /* go to byte boundary */
-+      i = bits_left & 7; REMOVE_BITS(i);
-+
-+      /* read 4 bytes of data, emptying the bit-buffer if necessary */
-+      for (i = 0; (bits_left >= 8); i++) {
-+	if (i == 4) return INF_ERR_BITBUF;
-+	lens_buf[i] = PEEK_BITS(8);
-+	REMOVE_BITS(8);
-+      }
-+      if (bits_left != 0) return INF_ERR_BITBUF;
-+      while (i < 4) {
-+	READ_IF_NEEDED;
-+	lens_buf[i++] = *i_ptr++;
-+      }
-+
-+      /* get the length and its complement */
-+      length = lens_buf[0] | (lens_buf[1] << 8);
-+      i      = lens_buf[2] | (lens_buf[3] << 8);
-+      if (length != (~i & 0xFFFF)) return INF_ERR_COMPLEMENT;
-+
-+      /* read and copy the uncompressed data into the window */
-+      while (length > 0) {
-+	READ_IF_NEEDED;
-+
-+	this_run = length;
-+	if (this_run > (unsigned int)(i_end - i_ptr)) this_run = i_end - i_ptr;
-+	if (this_run > (MSZIP_FRAME_SIZE - zip->window_posn))
-+	  this_run = MSZIP_FRAME_SIZE - zip->window_posn;
-+
-+	zip->sys->copy(i_ptr, &zip->window[zip->window_posn], this_run);
-+	zip->window_posn += this_run;
-+	i_ptr    += this_run;
-+	length   -= this_run;
-+	FLUSH_IF_NEEDED;
-+      }
-+    }
-+    else if ((block_type == 1) || (block_type == 2)) {
-+      /* Huffman-compressed LZ77 block */
-+      unsigned int match_posn, code;
-+
-+      if (block_type == 1) {
-+	/* block with fixed Huffman codes */
-+	i = 0;
-+	while (i < 144) zip->LITERAL_len[i++] = 8;
-+	while (i < 256) zip->LITERAL_len[i++] = 9;
-+	while (i < 280) zip->LITERAL_len[i++] = 7;
-+	while (i < 288) zip->LITERAL_len[i++] = 8;
-+	for (i = 0; i < 32; i++) zip->DISTANCE_len[i] = 5;
-+      }
-+      else {
-+	/* block with dynamic Huffman codes */
-+	STORE_BITS;
-+	if ((i = zip_read_lens(zip))) return i;
-+	RESTORE_BITS;
-+      }
-+
-+      /* now huffman lengths are read for either kind of block, 
-+       * create huffman decoding tables */
-+      if (make_decode_table(MSZIP_LITERAL_MAXSYMBOLS, MSZIP_LITERAL_TABLEBITS,
-+			    &zip->LITERAL_len[0], &zip->LITERAL_table[0]))
-+      {
-+	return INF_ERR_LITERALTBL;
-+      }
-+
-+      if (make_decode_table(MSZIP_DISTANCE_MAXSYMBOLS,MSZIP_DISTANCE_TABLEBITS,
-+			    &zip->DISTANCE_len[0], &zip->DISTANCE_table[0]))
-+      {
-+	return INF_ERR_DISTANCETBL;
-+      }
-+
-+      /* decode forever until end of block code */
-+      for (;;) {
-+	READ_HUFFSYM(LITERAL, code);
-+	if (code < 256) {
-+	  zip->window[zip->window_posn++] = (unsigned char) code;
-+	  FLUSH_IF_NEEDED;
-+	}
-+	else if (code == 256) {
-+	  /* END OF BLOCK CODE: loop break point */
-+	  break;
-+	}
-+	else {
-+	  code -= 257; /* codes 257-285 are matches */
-+	  if (code >= 29) return INF_ERR_LITCODE; /* codes 286-287 are illegal */
-+	  READ_BITS_T(length, lit_extrabits[code]);
-+	  length += lit_lengths[code];
-+
-+	  READ_HUFFSYM(DISTANCE, code);
-+	  if (code > 30) return INF_ERR_DISTCODE;
-+	  READ_BITS_T(distance, dist_extrabits[code]);
-+	  distance += dist_offsets[code];
-+
-+	  /* match position is window position minus distance. If distance
-+	   * is more than window position numerically, it must 'wrap
-+	   * around' the frame size. */ 
-+	  match_posn = ((distance > zip->window_posn) ? MSZIP_FRAME_SIZE : 0)
-+	    + zip->window_posn - distance;
-+
-+	  /* copy match */
-+	  if (length < 12) {
-+	    /* short match, use slower loop but no loop setup code */
-+	    while (length--) {
-+	      zip->window[zip->window_posn++] = zip->window[match_posn++];
-+	      match_posn &= MSZIP_FRAME_SIZE - 1;
-+	      FLUSH_IF_NEEDED;
-+	    }
-+	  }
-+	  else {
-+	    /* longer match, use faster loop but with setup expense */
-+	    unsigned char *runsrc, *rundest;
-+	    do {
-+	      this_run = length;
-+	      if ((match_posn + this_run) > MSZIP_FRAME_SIZE)
-+		this_run = MSZIP_FRAME_SIZE - match_posn;
-+	      if ((zip->window_posn + this_run) > MSZIP_FRAME_SIZE)
-+		this_run = MSZIP_FRAME_SIZE - zip->window_posn;
-+
-+	      rundest = &zip->window[zip->window_posn]; zip->window_posn += this_run;
-+	      runsrc  = &zip->window[match_posn];  match_posn  += this_run;
-+	      length -= this_run;
-+	      while (this_run--) *rundest++ = *runsrc++;
-+	      if (match_posn == MSZIP_FRAME_SIZE) match_posn = 0;
-+	      FLUSH_IF_NEEDED;
-+	    } while (length > 0);
-+	  }
-+
-+	} /* else (code >= 257) */
-+
-+      } /* for(;;) -- break point at 'code == 256' */
-+    }
-+    else {
-+      /* block_type == 3 -- bad block type */
-+      return INF_ERR_BLOCKTYPE;
-+    }
-+  } while (!last_block);
-+
-+  /* flush the remaining data */
-+  if (zip->window_posn) {
-+    if (zip->flush_window(zip, zip->window_posn)) return INF_ERR_FLUSH;
-+  }
-+  STORE_BITS;
-+
-+  /* return success */
-+  return 0;
-+}
-+
-+/* inflate() calls this whenever the window should be flushed. As
-+ * MSZIP only expands to the size of the window, the implementation used
-+ * simply keeps track of the amount of data flushed, and if more than 32k
-+ * is flushed, an error is raised.
-+ */  
-+static int mszipd_flush_window(struct mszipd_stream *zip,
-+			       unsigned int data_flushed)
-+{
-+  zip->bytes_output += data_flushed;
-+  if (zip->bytes_output > MSZIP_FRAME_SIZE) {
-+    D(("overflow: %u bytes flushed, total is now %u",
-+       data_flushed, zip->bytes_output))
-+    return 1;
-+  }
-+  return 0;
-+}
-+
-+struct mszipd_stream *mszipd_init(struct mspack_system *system,
-+				  struct mspack_file *input,
-+				  struct mspack_file *output,
-+				  int input_buffer_size,
-+				  int repair_mode)
-+{
-+  struct mszipd_stream *zip;
-+
-+  if (!system) return NULL;
-+
-+  input_buffer_size = (input_buffer_size + 1) & -2;
-+  if (!input_buffer_size) return NULL;
-+
-+  /* allocate decompression state */
-+  if (!(zip = (struct mszipd_stream *) system->alloc(system, sizeof(struct mszipd_stream)))) {
-+    return NULL;
-+  }
-+
-+  /* allocate input buffer */
-+  zip->inbuf  = (unsigned char *) system->alloc(system, (size_t) input_buffer_size);
-+  if (!zip->inbuf) {
-+    system->free(zip);
-+    return NULL;
-+  }
-+
-+  /* initialise decompression state */
-+  zip->sys             = system;
-+  zip->input           = input;
-+  zip->output          = output;
-+  zip->inbuf_size      = input_buffer_size;
-+  zip->input_end       = 0;
-+  zip->error           = MSPACK_ERR_OK;
-+  zip->repair_mode     = repair_mode;
-+  zip->flush_window    = &mszipd_flush_window;
-+
-+  zip->i_ptr = zip->i_end = &zip->inbuf[0];
-+  zip->o_ptr = zip->o_end = NULL;
-+  zip->bit_buffer = 0; zip->bits_left = 0;
-+  return zip;
-+}
-+
-+int mszipd_decompress(struct mszipd_stream *zip, off_t out_bytes) {
-+  /* for the bit buffer */
-+  register unsigned int bit_buffer;
-+  register int bits_left;
-+  unsigned char *i_ptr, *i_end;
-+
-+  int i, state, error;
-+
-+  /* easy answers */
-+  if (!zip || (out_bytes < 0)) return MSPACK_ERR_ARGS;
-+  if (zip->error) return zip->error;
-+
-+  /* flush out any stored-up bytes before we begin */
-+  i = zip->o_end - zip->o_ptr;
-+  if ((off_t) i > out_bytes) i = (int) out_bytes;
-+  if (i) {
-+    if (zip->sys->write(zip->output, zip->o_ptr, i) != i) {
-+      return zip->error = MSPACK_ERR_WRITE;
-+    }
-+    zip->o_ptr  += i;
-+    out_bytes   -= i;
-+  }
-+  if (out_bytes == 0) return MSPACK_ERR_OK;
-+
-+
-+  while (out_bytes > 0) {
-+    /* unpack another block */
-+    RESTORE_BITS;
-+
-+    /* skip to next read 'CK' header */
-+    i = bits_left & 7; REMOVE_BITS(i); /* align to bytestream */
-+    state = 0;
-+    do {
-+      READ_BITS(i, 8);
-+      if (i == 'C') state = 1;
-+      else if ((state == 1) && (i == 'K')) state = 2;
-+      else state = 0;
-+    } while (state != 2);
-+
-+    /* inflate a block, repair and realign if necessary */
-+    zip->window_posn = 0;
-+    zip->bytes_output = 0;
-+    STORE_BITS;
-+    if ((error = inflate(zip))) {
-+      D(("inflate error %d", error))
-+      if (zip->repair_mode) {
-+	/* recover partially-inflated buffers */
-+	if (zip->bytes_output == 0 && zip->window_posn > 0) {
-+	  zip->flush_window(zip, zip->window_posn);
-+	}
-+	zip->sys->message(NULL, "MSZIP error, %u bytes of data lost.",
-+			  MSZIP_FRAME_SIZE - zip->bytes_output);
-+	for (i = zip->bytes_output; i < MSZIP_FRAME_SIZE; i++) {
-+	  zip->window[i] = '\0';
-+	}
-+	zip->bytes_output = MSZIP_FRAME_SIZE;
-+      }
-+      else {
-+	return zip->error = (error > 0) ? error : MSPACK_ERR_DECRUNCH;
-+      }
-+    }
-+    zip->o_ptr = &zip->window[0];
-+    zip->o_end = &zip->o_ptr[zip->bytes_output];
-+
-+    /* write a frame */
-+    i = (out_bytes < (off_t)zip->bytes_output) ?
-+      (int)out_bytes : zip->bytes_output;
-+    if (zip->sys->write(zip->output, zip->o_ptr, i) != i) {
-+      return zip->error = MSPACK_ERR_WRITE;
-+    }
-+
-+    /* mspack errors (i.e. read errors) are fatal and can't be recovered */
-+    if ((error > 0) && zip->repair_mode) return error;
-+
-+    zip->o_ptr  += i;
-+    out_bytes   -= i;
-+  }
-+
-+  if (out_bytes) {
-+    D(("bytes left to output"))
-+    return zip->error = MSPACK_ERR_DECRUNCH;
-+  }
-+  return MSPACK_ERR_OK;
-+}
-+
-+int mszipd_decompress_kwaj(struct mszipd_stream *zip) {
-+    /* for the bit buffer */
-+    register unsigned int bit_buffer;
-+    register int bits_left;
-+    unsigned char *i_ptr, *i_end;
-+
-+    int i, error, block_len;
-+
-+    /* unpack blocks until block_len == 0 */
-+    for (;;) {
-+	RESTORE_BITS;
-+
-+	/* align to bytestream, read block_len */
-+	i = bits_left & 7; REMOVE_BITS(i);
-+	READ_BITS(block_len, 8);
-+	READ_BITS(i, 8); block_len |= i << 8;
-+
-+	if (block_len == 0) break;
-+
-+	/* read "CK" header */
-+	READ_BITS(i, 8); if (i != 'C') return MSPACK_ERR_DATAFORMAT;
-+	READ_BITS(i, 8); if (i != 'K') return MSPACK_ERR_DATAFORMAT;
-+
-+	/* inflate block */
-+	zip->window_posn = 0;
-+	zip->bytes_output = 0;
-+	STORE_BITS;
-+	if ((error = inflate(zip))) {
-+	    D(("inflate error %d", error))
-+	    return zip->error = (error > 0) ? error : MSPACK_ERR_DECRUNCH;
-+	}
-+
-+	/* write inflated block */
-+	if (zip->sys->write(zip->output, &zip->window[0], zip->bytes_output)
-+	    != zip->bytes_output) return zip->error = MSPACK_ERR_WRITE;
-+    }
-+    return MSPACK_ERR_OK;
-+}
-+
-+void mszipd_free(struct mszipd_stream *zip) {
-+  struct mspack_system *sys;
-+  if (zip) {
-+    sys = zip->sys;
-+    sys->free(zip->inbuf);
-+    sys->free(zip);
-+  }
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/oab.h b/libclamav/libmspack-0.4alpha/mspack/oab.h
-new file mode 100644
-index 000000000000..565220888097
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/oab.h
-@@ -0,0 +1,60 @@
-+/* This file is part of libmspack.
-+ * © 2013 Intel Corporation
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_OAB_H
-+#define MSPACK_OAB_H 1
-+
-+#include <system.h>
-+
-+/* generic OAB definitions */
-+
-+/* OAB compression definitions */
-+
-+struct msoab_compressor_p {
-+  struct msoab_compressor base;
-+  struct mspack_system *system;
-+  /* todo */
-+};
-+
-+/* OAB decompression definitions */
-+
-+struct msoab_decompressor_p {
-+  struct msoab_decompressor base;
-+  struct mspack_system *system;
-+  /* todo */
-+};
-+
-+#define oabhead_VersionHi    (0x0000)
-+#define oabhead_VersionLo    (0x0004)
-+#define oabhead_BlockMax     (0x0008)
-+#define oabhead_TargetSize   (0x000c)
-+#define oabhead_SIZEOF       (0x0010)
-+
-+#define oabblk_Flags         (0x0000)
-+#define oabblk_CompSize      (0x0004)
-+#define oabblk_UncompSize    (0x0008)
-+#define oabblk_CRC           (0x000c)
-+#define oabblk_SIZEOF        (0x0010)
-+
-+#define patchhead_VersionHi  (0x0000)
-+#define patchhead_VersionLo  (0x0004)
-+#define patchhead_BlockMax   (0x0008)
-+#define patchhead_SourceSize (0x000c)
-+#define patchhead_TargetSize (0x0010)
-+#define patchhead_SourceCRC  (0x0014)
-+#define patchhead_TargetCRC  (0x0018)
-+#define patchhead_SIZEOF     (0x001c)
-+
-+#define patchblk_PatchSize   (0x0000)
-+#define patchblk_TargetSize  (0x0004)
-+#define patchblk_SourceSize  (0x0008)
-+#define patchblk_CRC         (0x000c)
-+#define patchblk_SIZEOF      (0x0010)
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/oabc.c b/libclamav/libmspack-0.4alpha/mspack/oabc.c
-new file mode 100644
-index 000000000000..327ce61ba12c
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/oabc.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * © 2013 Intel Corporation
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* OAB compression implementation */
-+
-+#include <system.h>
-+#include <oab.h>
-+
-+struct msoab_compressor *
-+  mspack_create_oab_compressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_oab_compressor(struct msoab_compressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/oabd.c b/libclamav/libmspack-0.4alpha/mspack/oabd.c
-new file mode 100644
-index 000000000000..e4b9e4bbc084
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/oabd.c
-@@ -0,0 +1,408 @@
-+/* This file is part of libmspack.
-+ * © 2013 Intel Corporation
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* The Exchange Online Addressbook (OAB or sometimes OAL) is distributed
-+ * as a .LZX file in one of two forms. Either a "full download" containing
-+ * the entire address list, or an incremental binary patch which should be
-+ * applied to a previous version of the full decompressed data.
-+ *
-+ * The contents and format of the decompressed OAB are not handled here.
-+ *
-+ * For a complete description of the format, see the MSDN site:
-+ *
-+ * http://msdn.microsoft.com/en-us/library/cc463914 - [MS-OXOAB].pdf
-+ * http://msdn.microsoft.com/en-us/library/cc483133 - [MS-PATCH].pdf
-+ */
-+
-+/* OAB decompression implementation */
-+
-+#include <system.h>
-+#include <oab.h>
-+#include <lzx.h>
-+#include <crc32.h>
-+
-+/* prototypes */
-+static int oabd_decompress(struct msoab_decompressor *self, const char *input,
-+			   const char *output);
-+static int oabd_decompress_incremental(struct msoab_decompressor *self,
-+				       const char *input, const char *base,
-+				       const char *output);
-+
-+struct msoab_decompressor *
-+  mspack_create_oab_decompressor(struct mspack_system *sys)
-+{
-+  struct msoab_decompressor_p *self = NULL;
-+
-+  if (!sys) sys = mspack_default_system;
-+  if (!mspack_valid_system(sys)) return NULL;
-+
-+  if ((self = (struct msoab_decompressor_p *) sys->alloc(sys, sizeof(struct msoab_decompressor_p)))) {
-+    self->base.decompress             = &oabd_decompress;
-+    self->base.decompress_incremental = &oabd_decompress_incremental;
-+    self->system                      = sys;
-+  }
-+  return (struct msoab_decompressor *) self;
-+}
-+
-+void mspack_destroy_oab_decompressor(struct msoab_decompressor *base) {
-+  struct msoab_decompressor_p *self = (struct msoab_decompressor_p *)base;
-+  if (self) {
-+    struct mspack_system *sys = self->system;
-+    sys->free(self);
-+  }
-+}
-+
-+struct oabd_file {
-+  struct mspack_system *orig_sys;
-+  struct mspack_file *orig_file;
-+  unsigned int crc;
-+  size_t available;
-+};
-+
-+
-+static int oabd_sys_read (struct mspack_file *base_file, void *buf, int size)
-+{
-+  struct oabd_file *file = (struct oabd_file *)base_file;
-+  int bytes_read;
-+
-+  if ((size_t)size > file->available)
-+    size = file->available;
-+
-+  bytes_read = file->orig_sys->read(file->orig_file, buf, size);
-+  if (bytes_read < 0)
-+    return bytes_read;
-+
-+  file->available -= bytes_read;
-+  return bytes_read;
-+}
-+
-+static int oabd_sys_write (struct mspack_file *base_file, void *buf, int size)
-+{
-+  struct oabd_file *file = (struct oabd_file *)base_file;
-+  int bytes_written = file->orig_sys->write(file->orig_file, buf, size);
-+
-+  if (bytes_written > 0)
-+    file->crc = crc32(file->crc, buf, bytes_written);
-+
-+  return bytes_written;
-+}
-+
-+static int oabd_decompress(struct msoab_decompressor *_self, const char *input,
-+			   const char *output)
-+{
-+  struct msoab_decompressor_p *self = (struct msoab_decompressor_p *) _self;
-+  struct mspack_system *sys;
-+  struct mspack_file *infh = NULL;
-+  struct mspack_file *outfh = NULL;
-+  unsigned char *buf = NULL;
-+  unsigned char hdrbuf[oabhead_SIZEOF];
-+  unsigned int block_max, target_size;
-+  struct lzxd_stream *lzx = NULL;
-+  struct mspack_system oabd_sys;
-+  struct oabd_file in_ofh, out_ofh;
-+  unsigned int window_bits;
-+  int ret = MSPACK_ERR_OK;
-+
-+  if (!self) return MSPACK_ERR_ARGS;
-+  sys = self->system;
-+
-+  infh = sys->open(sys, input, MSPACK_SYS_OPEN_READ);
-+  if (!infh) {
-+    ret = MSPACK_ERR_OPEN;
-+    goto out;
-+  }
-+
-+  if (sys->read(infh, hdrbuf, oabhead_SIZEOF) != oabhead_SIZEOF) {
-+    ret = MSPACK_ERR_READ;
-+    goto out;
-+  }
-+
-+  if (EndGetI32(&hdrbuf[oabhead_VersionHi]) != 3 ||
-+      EndGetI32(&hdrbuf[oabhead_VersionLo]) != 1) {
-+    ret = MSPACK_ERR_SIGNATURE;
-+    goto out;
-+  }
-+
-+  block_max   = EndGetI32(&hdrbuf[oabhead_BlockMax]);
-+  target_size = EndGetI32(&hdrbuf[oabhead_TargetSize]);
-+
-+  /* We use it for reading block headers too */
-+  if (block_max < oabblk_SIZEOF)
-+    block_max = oabblk_SIZEOF;
-+
-+  outfh = sys->open(sys, output, MSPACK_SYS_OPEN_WRITE);
-+  if (!outfh) {
-+    ret = MSPACK_ERR_OPEN;
-+    goto out;
-+  }
-+
-+  buf = sys->alloc(sys, block_max);
-+  if (!buf) {
-+    ret = MSPACK_ERR_NOMEMORY;
-+    goto out;
-+  }
-+
-+  oabd_sys = *sys;
-+  oabd_sys.read = oabd_sys_read;
-+  oabd_sys.write = oabd_sys_write;
-+
-+  in_ofh.orig_sys = sys;
-+  in_ofh.orig_file = infh;
-+
-+  out_ofh.orig_sys = sys;
-+  out_ofh.orig_file = outfh;
-+
-+  while (target_size) {
-+    unsigned int blk_csize, blk_dsize, blk_crc, blk_flags;
-+
-+    if (sys->read(infh, buf, oabblk_SIZEOF) != oabblk_SIZEOF) {
-+      ret = MSPACK_ERR_READ;
-+      goto out;
-+    }
-+    blk_flags = EndGetI32(&buf[oabblk_Flags]);
-+    blk_csize = EndGetI32(&buf[oabblk_CompSize]);
-+    blk_dsize = EndGetI32(&buf[oabblk_UncompSize]);
-+    blk_crc   = EndGetI32(&buf[oabblk_CRC]);
-+
-+    if (blk_dsize > block_max || blk_dsize > target_size || blk_flags > 1) {
-+      ret = MSPACK_ERR_DATAFORMAT;
-+      goto out;
-+    }
-+
-+    if (!blk_flags) {
-+      /* Uncompressed block */
-+      if (blk_dsize != blk_csize) {
-+	ret = MSPACK_ERR_DATAFORMAT;
-+	goto out;
-+      }
-+      if (sys->read(infh, buf, blk_dsize) != (int)blk_dsize) {
-+	ret = MSPACK_ERR_READ;
-+	goto out;
-+      }
-+      if (sys->write(outfh, buf, blk_dsize) != (int)blk_dsize) {
-+	ret = MSPACK_ERR_WRITE;
-+	goto out;
-+      }
-+    } else {
-+      /* LZX compressed block */
-+      window_bits = 17;
-+
-+      while (window_bits < 25 && (1U << window_bits) < blk_dsize)
-+	window_bits++;
-+
-+      in_ofh.available = blk_csize;
-+      out_ofh.crc = 0xffffffff;
-+
-+      lzx = lzxd_init(&oabd_sys, (void *)&in_ofh, (void *)&out_ofh, window_bits,
-+		      0, 4096, blk_dsize, 1);
-+      if (!lzx) {
-+	ret = MSPACK_ERR_NOMEMORY;
-+	goto out;
-+      }
-+
-+      ret = lzxd_decompress(lzx, blk_dsize);
-+      if (ret != MSPACK_ERR_OK)
-+	goto out;
-+
-+      lzxd_free(lzx);
-+      lzx = NULL;
-+
-+      /* Consume any trailing padding bytes before the next block */
-+      while (in_ofh.available) {
-+	int count = block_max;
-+	if ((size_t)count > in_ofh.available)
-+	  count = in_ofh.available;
-+
-+	count = sys->read(infh, buf, count);
-+	if (count < 0) {
-+	  ret = MSPACK_ERR_READ;
-+	  goto out;
-+	}
-+	in_ofh.available -= count;
-+      }
-+
-+      if (out_ofh.crc != blk_crc) {
-+	ret = MSPACK_ERR_CHECKSUM;
-+	goto out;
-+      }
-+    }
-+    target_size -= blk_dsize;
-+  }
-+
-+ out:
-+  if (lzx)
-+    lzxd_free(lzx);
-+  if (buf)
-+    sys->free(buf);
-+  if (outfh)
-+    sys->close(outfh);
-+  if (infh)
-+    sys->close(infh);
-+
-+  return ret;
-+}
-+
-+static int oabd_decompress_incremental(struct msoab_decompressor *_self,
-+				       const char *input, const char *base,
-+				       const char *output)
-+{
-+  struct msoab_decompressor_p *self = (struct msoab_decompressor_p *) _self;
-+  struct mspack_system *sys;
-+  struct mspack_file *infh = NULL;
-+  struct mspack_file *basefh = NULL;
-+  struct mspack_file *outfh = NULL;
-+  unsigned char *buf = NULL;
-+  unsigned char hdrbuf[patchhead_SIZEOF];
-+  unsigned int block_max, source_size, target_size, source_crc, target_crc;
-+  struct lzxd_stream *lzx = NULL;
-+  struct mspack_system oabd_sys;
-+  struct oabd_file in_ofh, out_ofh;
-+  unsigned int window_bits, window_size;
-+  int ret = MSPACK_ERR_OK;
-+
-+  if (!self) return MSPACK_ERR_ARGS;
-+  sys = self->system;
-+
-+  infh = sys->open(sys, input, MSPACK_SYS_OPEN_READ);
-+  if (!infh) {
-+    ret = MSPACK_ERR_OPEN;
-+    goto out;
-+  }
-+
-+  if (sys->read(infh, hdrbuf, patchhead_SIZEOF) != patchhead_SIZEOF) {
-+    ret = MSPACK_ERR_READ;
-+    goto out;
-+  }
-+
-+  if (EndGetI32(&hdrbuf[patchhead_VersionHi]) != 3 ||
-+      EndGetI32(&hdrbuf[patchhead_VersionLo]) != 2) {
-+    ret = MSPACK_ERR_SIGNATURE;
-+    goto out;
-+  }
-+
-+  block_max = EndGetI32(&hdrbuf[patchhead_BlockMax]);
-+  source_size = EndGetI32(&hdrbuf[patchhead_SourceSize]);
-+  target_size = EndGetI32(&hdrbuf[patchhead_TargetSize]);
-+  source_crc = EndGetI32(&hdrbuf[patchhead_SourceCRC]);
-+  target_crc = EndGetI32(&hdrbuf[patchhead_TargetCRC]);
-+
-+  /* We use it for reading block headers too */
-+  if (block_max < patchblk_SIZEOF)
-+    block_max = patchblk_SIZEOF;
-+
-+  basefh = sys->open(sys, base, MSPACK_SYS_OPEN_READ);
-+  if (!basefh) {
-+    ret = MSPACK_ERR_OPEN;
-+    goto out;
-+  }
-+
-+  outfh = sys->open(sys, output, MSPACK_SYS_OPEN_WRITE);
-+  if (!outfh) {
-+    ret = MSPACK_ERR_OPEN;
-+    goto out;
-+  }
-+
-+  buf = sys->alloc(sys, block_max);
-+  if (!buf) {
-+    ret = MSPACK_ERR_NOMEMORY;
-+    goto out;
-+  }
-+
-+  oabd_sys = *sys;
-+  oabd_sys.read = oabd_sys_read;
-+  oabd_sys.write = oabd_sys_write;
-+
-+  in_ofh.orig_sys = sys;
-+  in_ofh.orig_file = infh;
-+
-+  out_ofh.orig_sys = sys;
-+  out_ofh.orig_file = outfh;
-+
-+  while (target_size) {
-+    unsigned int blk_csize, blk_dsize, blk_ssize, blk_crc;
-+
-+    if (sys->read(infh, buf, patchblk_SIZEOF) != patchblk_SIZEOF) {
-+      ret = MSPACK_ERR_READ;
-+      goto out;
-+    }
-+    blk_csize = EndGetI32(&buf[patchblk_PatchSize]);
-+    blk_dsize = EndGetI32(&buf[patchblk_TargetSize]);
-+    blk_ssize = EndGetI32(&buf[patchblk_SourceSize]);
-+    blk_crc   = EndGetI32(&buf[patchblk_CRC]);
-+
-+    if (blk_dsize > block_max || blk_dsize > target_size ||
-+	blk_ssize > block_max) {
-+      ret = MSPACK_ERR_DATAFORMAT;
-+      goto out;
-+    }
-+
-+
-+    window_size = (blk_ssize + 32767) & ~32767;
-+    window_size += blk_dsize;
-+    window_bits = 17;
-+
-+    while (window_bits < 25 && (1U << window_bits) < window_size)
-+      window_bits++;
-+
-+    in_ofh.available = blk_csize;
-+    out_ofh.crc = 0xffffffff;
-+
-+    lzx = lzxd_init(&oabd_sys, (void *)&in_ofh, (void *)&out_ofh, window_bits,
-+		    0, 4096, blk_dsize, 1);
-+    if (!lzx) {
-+      ret = MSPACK_ERR_NOMEMORY;
-+      goto out;
-+    }
-+    ret = lzxd_set_reference_data(lzx, sys, basefh, blk_ssize);
-+    if (ret != MSPACK_ERR_OK)
-+      goto out;
-+
-+    ret = lzxd_decompress(lzx, blk_dsize);
-+    if (ret != MSPACK_ERR_OK)
-+      goto out;
-+
-+    lzxd_free(lzx);
-+    lzx = NULL;
-+
-+    /* Consume any trailing padding bytes before the next block */
-+    while (in_ofh.available) {
-+      int count = block_max;
-+      if ((size_t)count > in_ofh.available)
-+	count = in_ofh.available;
-+
-+      count = sys->read(infh, buf, count);
-+      if (count < 0) {
-+	ret = MSPACK_ERR_READ;
-+	goto out;
-+      }
-+      in_ofh.available -= count;
-+    }
-+
-+    if (out_ofh.crc != blk_crc) {
-+      ret = MSPACK_ERR_CHECKSUM;
-+      goto out;
-+    }
-+
-+    target_size -= blk_dsize;
-+  }
-+
-+ out:
-+  if (lzx)
-+    lzxd_free(lzx);
-+  if (buf)
-+    sys->free(buf);
-+  if (outfh)
-+    sys->close(outfh);
-+  if (basefh)
-+    sys->close(basefh);
-+  if (infh)
-+    sys->close(infh);
-+
-+  return ret;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/qtm.h b/libclamav/libmspack-0.4alpha/mspack/qtm.h
-new file mode 100644
-index 000000000000..ab0bb4c32cc2
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/qtm.h
-@@ -0,0 +1,128 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * The Quantum method was created by David Stafford, adapted by Microsoft
-+ * Corporation.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_QTM_H
-+#define MSPACK_QTM_H 1
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Quantum compression / decompression definitions */
-+
-+#define QTM_FRAME_SIZE (32768)
-+
-+struct qtmd_modelsym {
-+  unsigned short sym, cumfreq;
-+};
-+
-+struct qtmd_model {
-+  int shiftsleft, entries;
-+  struct qtmd_modelsym *syms;
-+};
-+
-+struct qtmd_stream {
-+  struct mspack_system *sys;      /* I/O routines                            */
-+  struct mspack_file   *input;    /* input file handle                       */
-+  struct mspack_file   *output;   /* output file handle                      */
-+
-+  unsigned char *window;          /* decoding window                         */
-+  unsigned int window_size;       /* window size                             */
-+  unsigned int window_posn;       /* decompression offset within window      */
-+  unsigned int frame_todo;        /* bytes remaining for current frame       */
-+
-+  unsigned short H, L, C;         /* high/low/current: arith coding state    */
-+  unsigned char header_read;      /* have we started decoding a new frame?   */
-+
-+  int error;
-+
-+  /* I/O buffers */
-+  unsigned char *inbuf, *i_ptr, *i_end, *o_ptr, *o_end;
-+  unsigned int  bit_buffer, inbuf_size;
-+  unsigned char bits_left, input_end;
-+
-+  /* four literal models, each representing 64 symbols
-+   * model0 for literals from   0 to  63 (selector = 0)
-+   * model1 for literals from  64 to 127 (selector = 1)
-+   * model2 for literals from 128 to 191 (selector = 2)
-+   * model3 for literals from 129 to 255 (selector = 3) */
-+  struct qtmd_model model0, model1, model2, model3;
-+
-+  /* three match models.
-+   * model4 for match with fixed length of 3 bytes
-+   * model5 for match with fixed length of 4 bytes
-+   * model6 for variable length match, encoded with model6len model */
-+  struct qtmd_model model4, model5, model6, model6len;
-+
-+  /* selector model. 0-6 to say literal (0,1,2,3) or match (4,5,6) */
-+  struct qtmd_model model7;
-+
-+  /* symbol arrays for all models */
-+  struct qtmd_modelsym m0sym[64 + 1];
-+  struct qtmd_modelsym m1sym[64 + 1];
-+  struct qtmd_modelsym m2sym[64 + 1];
-+  struct qtmd_modelsym m3sym[64 + 1];
-+  struct qtmd_modelsym m4sym[24 + 1];
-+  struct qtmd_modelsym m5sym[36 + 1];
-+  struct qtmd_modelsym m6sym[42 + 1], m6lsym[27 + 1];
-+  struct qtmd_modelsym m7sym[7 + 1];
-+};
-+
-+/* allocates Quantum decompression state for decoding the given stream.
-+ *
-+ * - returns NULL if window_bits is outwith the range 10 to 21 (inclusive).
-+ *
-+ * - uses system->alloc() to allocate memory
-+ *
-+ * - returns NULL if not enough memory
-+ *
-+ * - window_bits is the size of the Quantum window, from 1Kb (10) to 2Mb (21).
-+ *
-+ * - input_buffer_size is the number of bytes to use to store bitstream data.
-+ */
-+extern struct qtmd_stream *qtmd_init(struct mspack_system *system,
-+				     struct mspack_file *input,
-+				     struct mspack_file *output,
-+				     int window_bits,
-+				     int input_buffer_size);
-+
-+/* decompresses, or decompresses more of, a Quantum stream.
-+ *
-+ * - out_bytes of data will be decompressed and the function will return
-+ *   with an MSPACK_ERR_OK return code.
-+ *
-+ * - decompressing will stop as soon as out_bytes is reached. if the true
-+ *   amount of bytes decoded spills over that amount, they will be kept for
-+ *   a later invocation of qtmd_decompress().
-+ *
-+ * - the output bytes will be passed to the system->write() function given in
-+ *   qtmd_init(), using the output file handle given in qtmd_init(). More
-+ *   than one call may be made to system->write()
-+ *
-+ * - Quantum will read input bytes as necessary using the system->read()
-+ *   function given in qtmd_init(), using the input file handle given in
-+ *   qtmd_init(). This will continue until system->read() returns 0 bytes,
-+ *   or an error.
-+ */
-+extern int qtmd_decompress(struct qtmd_stream *qtm, off_t out_bytes);
-+
-+/* frees all state associated with a Quantum data stream
-+ *
-+ * - calls system->free() using the system pointer given in qtmd_init()
-+ */
-+void qtmd_free(struct qtmd_stream *qtm);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/qtmd.c b/libclamav/libmspack-0.4alpha/mspack/qtmd.c
-new file mode 100644
-index 000000000000..12b27f5608c4
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/qtmd.c
-@@ -0,0 +1,489 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * The Quantum method was created by David Stafford, adapted by Microsoft
-+ * Corporation.
-+ *
-+ * This decompressor is based on an implementation by Matthew Russotto, used
-+ * with permission.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* Quantum decompression implementation */
-+
-+/* This decompressor was researched and implemented by Matthew Russotto. It
-+ * has since been tidied up by Stuart Caie. More information can be found at
-+ * http://www.speakeasy.org/~russotto/quantumcomp.html
-+ */
-+
-+#include <system.h>
-+#include <qtm.h>
-+
-+/* import bit-reading macros and code */
-+#define BITS_TYPE struct qtmd_stream
-+#define BITS_VAR qtm
-+#define BITS_ORDER_MSB
-+#define READ_BYTES do {			\
-+    unsigned char b0, b1;		\
-+    READ_IF_NEEDED; b0 = *i_ptr++;	\
-+    READ_IF_NEEDED; b1 = *i_ptr++;	\
-+    INJECT_BITS((b0 << 8) | b1, 16);	\
-+} while (0)
-+#include <readbits.h>
-+
-+/* Quantum static data tables:
-+ *
-+ * Quantum uses 'position slots' to represent match offsets.  For every
-+ * match, a small 'position slot' number and a small offset from that slot
-+ * are encoded instead of one large offset.
-+ *
-+ * position_base[] is an index to the position slot bases
-+ *
-+ * extra_bits[] states how many bits of offset-from-base data is needed.
-+ *
-+ * length_base[] and length_extra[] are equivalent in function, but are
-+ * used for encoding selector 6 (variable length match) match lengths,
-+ * instead of match offsets.
-+ *
-+ * They are generated with the following code:
-+ *   unsigned int i, offset;
-+ *   for (i = 0, offset = 0; i < 42; i++) {
-+ *     position_base[i] = offset;
-+ *     extra_bits[i] = ((i < 2) ? 0 : (i - 2)) >> 1;
-+ *     offset += 1 << extra_bits[i];
-+ *   }
-+ *   for (i = 0, offset = 0; i < 26; i++) {
-+ *     length_base[i] = offset;
-+ *     length_extra[i] = (i < 2 ? 0 : i - 2) >> 2;
-+ *     offset += 1 << length_extra[i];
-+ *   }
-+ *   length_base[26] = 254; length_extra[26] = 0;
-+ */
-+static const unsigned int position_base[42] = {
-+  0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768,
-+  1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576, 32768, 49152,
-+  65536, 98304, 131072, 196608, 262144, 393216, 524288, 786432, 1048576, 1572864
-+};
-+static const unsigned char extra_bits[42] = {
-+  0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10,
-+  11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19
-+};
-+static const unsigned char length_base[27] = {
-+  0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 18, 22, 26,
-+  30, 38, 46, 54, 62, 78, 94, 110, 126, 158, 190, 222, 254
-+};
-+static const unsigned char length_extra[27] = {
-+  0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
-+  3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0
-+};
-+
-+
-+/* Arithmetic decoder:
-+ * 
-+ * GET_SYMBOL(model, var) fetches the next symbol from the stated model
-+ * and puts it in var.
-+ *
-+ * If necessary, qtmd_update_model() is called.
-+ */
-+#define GET_SYMBOL(model, var) do {                                     \
-+  range = ((H - L) & 0xFFFF) + 1;                                       \
-+  symf = ((((C - L + 1) * model.syms[0].cumfreq)-1) / range) & 0xFFFF;  \
-+                                                                        \
-+  for (i = 1; i < model.entries; i++) {                                 \
-+    if (model.syms[i].cumfreq <= symf) break;                           \
-+  }                                                                     \
-+  (var) = model.syms[i-1].sym;                                          \
-+                                                                        \
-+  range = (H - L) + 1;                                                  \
-+  symf = model.syms[0].cumfreq;                                         \
-+  H = L + ((model.syms[i-1].cumfreq * range) / symf) - 1;               \
-+  L = L + ((model.syms[i].cumfreq   * range) / symf);                   \
-+                                                                        \
-+  do { model.syms[--i].cumfreq += 8; } while (i > 0);                   \
-+  if (model.syms[0].cumfreq > 3800) qtmd_update_model(&model);          \
-+                                                                        \
-+  while (1) {                                                           \
-+    if ((L & 0x8000) != (H & 0x8000)) {                                 \
-+      if ((L & 0x4000) && !(H & 0x4000)) {                              \
-+        /* underflow case */                                            \
-+        C ^= 0x4000; L &= 0x3FFF; H |= 0x4000;                          \
-+      }                                                                 \
-+      else break;                                                       \
-+    }                                                                   \
-+    L <<= 1; H = (H << 1) | 1;                                          \
-+    ENSURE_BITS(1);							\
-+    C  = (C << 1) | PEEK_BITS(1);                                       \
-+    REMOVE_BITS(1);                                                     \
-+  }                                                                     \
-+} while (0)
-+
-+static void qtmd_update_model(struct qtmd_model *model) {
-+  struct qtmd_modelsym tmp;
-+  int i, j;
-+
-+  if (--model->shiftsleft) {
-+    for (i = model->entries - 1; i >= 0; i--) {
-+      /* -1, not -2; the 0 entry saves this */
-+      model->syms[i].cumfreq >>= 1;
-+      if (model->syms[i].cumfreq <= model->syms[i+1].cumfreq) {
-+	model->syms[i].cumfreq = model->syms[i+1].cumfreq + 1;
-+      }
-+    }
-+  }
-+  else {
-+    model->shiftsleft = 50;
-+    for (i = 0; i < model->entries; i++) {
-+      /* no -1, want to include the 0 entry */
-+      /* this converts cumfreqs into frequencies, then shifts right */
-+      model->syms[i].cumfreq -= model->syms[i+1].cumfreq;
-+      model->syms[i].cumfreq++; /* avoid losing things entirely */
-+      model->syms[i].cumfreq >>= 1;
-+    }
-+
-+    /* now sort by frequencies, decreasing order -- this must be an
-+     * inplace selection sort, or a sort with the same (in)stability
-+     * characteristics */
-+    for (i = 0; i < model->entries - 1; i++) {
-+      for (j = i + 1; j < model->entries; j++) {
-+	if (model->syms[i].cumfreq < model->syms[j].cumfreq) {
-+	  tmp = model->syms[i];
-+	  model->syms[i] = model->syms[j];
-+	  model->syms[j] = tmp;
-+	}
-+      }
-+    }
-+
-+    /* then convert frequencies back to cumfreq */
-+    for (i = model->entries - 1; i >= 0; i--) {
-+      model->syms[i].cumfreq += model->syms[i+1].cumfreq;
-+    }
-+  }
-+}
-+
-+/* Initialises a model to decode symbols from [start] to [start]+[len]-1 */
-+static void qtmd_init_model(struct qtmd_model *model,
-+			    struct qtmd_modelsym *syms, int start, int len)
-+{
-+  int i;
-+
-+  model->shiftsleft = 4;
-+  model->entries    = len;
-+  model->syms       = syms;
-+
-+  for (i = 0; i <= len; i++) {
-+    syms[i].sym     = start + i; /* actual symbol */
-+    syms[i].cumfreq = len - i;   /* current frequency of that symbol */
-+  }
-+}
-+
-+
-+/*-------- main Quantum code --------*/
-+
-+struct qtmd_stream *qtmd_init(struct mspack_system *system,
-+			      struct mspack_file *input,
-+			      struct mspack_file *output,
-+			      int window_bits, int input_buffer_size)
-+{
-+  unsigned int window_size = 1 << window_bits;
-+  struct qtmd_stream *qtm;
-+  int i;
-+
-+  if (!system) return NULL;
-+
-+  /* Quantum supports window sizes of 2^10 (1Kb) through 2^21 (2Mb) */
-+  if (window_bits < 10 || window_bits > 21) return NULL;
-+
-+  input_buffer_size = (input_buffer_size + 1) & -2;
-+  if (input_buffer_size < 2) return NULL;
-+
-+  /* allocate decompression state */
-+  if (!(qtm = (struct qtmd_stream *) system->alloc(system, sizeof(struct qtmd_stream)))) {
-+    return NULL;
-+  }
-+
-+  /* allocate decompression window and input buffer */
-+  qtm->window = (unsigned char *) system->alloc(system, (size_t) window_size);
-+  qtm->inbuf  = (unsigned char *) system->alloc(system, (size_t) input_buffer_size);
-+  if (!qtm->window || !qtm->inbuf) {
-+    system->free(qtm->window);
-+    system->free(qtm->inbuf);
-+    system->free(qtm);
-+    return NULL;
-+  }
-+
-+  /* initialise decompression state */
-+  qtm->sys         = system;
-+  qtm->input       = input;
-+  qtm->output      = output;
-+  qtm->inbuf_size  = input_buffer_size;
-+  qtm->window_size = window_size;
-+  qtm->window_posn = 0;
-+  qtm->frame_todo  = QTM_FRAME_SIZE;
-+  qtm->header_read = 0;
-+  qtm->error       = MSPACK_ERR_OK;
-+
-+  qtm->i_ptr = qtm->i_end = &qtm->inbuf[0];
-+  qtm->o_ptr = qtm->o_end = &qtm->window[0];
-+  qtm->input_end = 0;
-+  qtm->bits_left = 0;
-+  qtm->bit_buffer = 0;
-+
-+  /* initialise arithmetic coding models
-+   * - model 4    depends on window size, ranges from 20 to 24
-+   * - model 5    depends on window size, ranges from 20 to 36
-+   * - model 6pos depends on window size, ranges from 20 to 42
-+   */
-+  i = window_bits * 2;
-+  qtmd_init_model(&qtm->model0,    &qtm->m0sym[0],   0, 64);
-+  qtmd_init_model(&qtm->model1,    &qtm->m1sym[0],  64, 64);
-+  qtmd_init_model(&qtm->model2,    &qtm->m2sym[0], 128, 64);
-+  qtmd_init_model(&qtm->model3,    &qtm->m3sym[0], 192, 64);
-+  qtmd_init_model(&qtm->model4,    &qtm->m4sym[0],   0, (i > 24) ? 24 : i);
-+  qtmd_init_model(&qtm->model5,    &qtm->m5sym[0],   0, (i > 36) ? 36 : i);
-+  qtmd_init_model(&qtm->model6,    &qtm->m6sym[0],   0, i);
-+  qtmd_init_model(&qtm->model6len, &qtm->m6lsym[0],  0, 27);
-+  qtmd_init_model(&qtm->model7,    &qtm->m7sym[0],   0, 7);
-+
-+  /* all ok */
-+  return qtm;
-+}
-+
-+int qtmd_decompress(struct qtmd_stream *qtm, off_t out_bytes) {
-+  unsigned int frame_todo, frame_end, window_posn, match_offset, range;
-+  unsigned char *window, *i_ptr, *i_end, *runsrc, *rundest;
-+  int i, j, selector, extra, sym, match_length;
-+  unsigned short H, L, C, symf;
-+
-+  register unsigned int bit_buffer;
-+  register unsigned char bits_left;
-+
-+  /* easy answers */
-+  if (!qtm || (out_bytes < 0)) return MSPACK_ERR_ARGS;
-+  if (qtm->error) return qtm->error;
-+
-+  /* flush out any stored-up bytes before we begin */
-+  i = qtm->o_end - qtm->o_ptr;
-+  if ((off_t) i > out_bytes) i = (int) out_bytes;
-+  if (i) {
-+    if (qtm->sys->write(qtm->output, qtm->o_ptr, i) != i) {
-+      return qtm->error = MSPACK_ERR_WRITE;
-+    }
-+    qtm->o_ptr  += i;
-+    out_bytes   -= i;
-+  }
-+  if (out_bytes == 0) return MSPACK_ERR_OK;
-+
-+  /* restore local state */
-+  RESTORE_BITS;
-+  window = qtm->window;
-+  window_posn = qtm->window_posn;
-+  frame_todo = qtm->frame_todo;
-+  H = qtm->H;
-+  L = qtm->L;
-+  C = qtm->C;
-+
-+  /* while we do not have enough decoded bytes in reserve: */
-+  while ((qtm->o_end - qtm->o_ptr) < out_bytes) {
-+    /* read header if necessary. Initialises H, L and C */
-+    if (!qtm->header_read) {
-+      H = 0xFFFF; L = 0; READ_BITS(C, 16);
-+      qtm->header_read = 1;
-+    }
-+
-+    /* decode more, up to the number of bytes needed, the frame boundary,
-+     * or the window boundary, whichever comes first */
-+    frame_end = window_posn + (out_bytes - (qtm->o_end - qtm->o_ptr));
-+    if ((window_posn + frame_todo) < frame_end) {
-+      frame_end = window_posn + frame_todo;
-+    }
-+    if (frame_end > qtm->window_size) {
-+      frame_end = qtm->window_size;
-+    }
-+
-+    while (window_posn < frame_end) {
-+      GET_SYMBOL(qtm->model7, selector);
-+      if (selector < 4) {
-+	/* literal byte */
-+	struct qtmd_model *mdl = (selector == 0) ? &qtm->model0 :
-+	                        ((selector == 1) ? &qtm->model1 :
-+				((selector == 2) ? &qtm->model2 :
-+                                                   &qtm->model3));
-+	GET_SYMBOL((*mdl), sym);
-+	window[window_posn++] = sym;
-+	frame_todo--;
-+      }
-+      else {
-+	/* match repeated string */
-+	switch (selector) {
-+	case 4: /* selector 4 = fixed length match (3 bytes) */
-+	  GET_SYMBOL(qtm->model4, sym);
-+	  READ_MANY_BITS(extra, extra_bits[sym]);
-+	  match_offset = position_base[sym] + extra + 1;
-+	  match_length = 3;
-+	  break;
-+
-+	case 5: /* selector 5 = fixed length match (4 bytes) */
-+	  GET_SYMBOL(qtm->model5, sym);
-+	  READ_MANY_BITS(extra, extra_bits[sym]);
-+	  match_offset = position_base[sym] + extra + 1;
-+	  match_length = 4;
-+	  break;
-+
-+	case 6: /* selector 6 = variable length match */
-+	  GET_SYMBOL(qtm->model6len, sym);
-+	  READ_MANY_BITS(extra, length_extra[sym]);
-+	  match_length = length_base[sym] + extra + 5;
-+
-+	  GET_SYMBOL(qtm->model6, sym);
-+	  READ_MANY_BITS(extra, extra_bits[sym]);
-+	  match_offset = position_base[sym] + extra + 1;
-+	  break;
-+
-+	default:
-+	  /* should be impossible, model7 can only return 0-6 */
-+	  D(("got %d from selector", selector))
-+	  return qtm->error = MSPACK_ERR_DECRUNCH;
-+	}
-+
-+	rundest = &window[window_posn];
-+	frame_todo -= match_length;
-+
-+	/* does match destination wrap the window? This situation is possible
-+	 * where the window size is less than the 32k frame size, but matches
-+	 * must not go beyond a frame boundary */
-+	if ((window_posn + match_length) > qtm->window_size) {
-+          /* copy first part of match, before window end */
-+	  i = qtm->window_size - window_posn;
-+	  j = window_posn - match_offset;
-+	  while (i--) *rundest++ = window[j++ & (qtm->window_size - 1)];
-+
-+	  /* flush currently stored data */
-+	  i = (&window[qtm->window_size] - qtm->o_ptr);
-+
-+	  /* this should not happen, but if it does then this code
-+	   * can't handle the situation (can't flush up to the end of
-+	   * the window, but can't break out either because we haven't
-+	   * finished writing the match). bail out in this case */
-+	  if (i > out_bytes) {
-+	    D(("during window-wrap match; %d bytes to flush but only need %d",
-+	       i, (int) out_bytes))
-+	    return qtm->error = MSPACK_ERR_DECRUNCH;
-+	  }
-+	  if (qtm->sys->write(qtm->output, qtm->o_ptr, i) != i) {
-+	    return qtm->error = MSPACK_ERR_WRITE;
-+	  }
-+	  out_bytes -= i;
-+	  qtm->o_ptr = &window[0];
-+	  qtm->o_end = &window[0]; 
-+
-+	  /* copy second part of match, after window wrap */
-+	  rundest = &window[0];
-+	  i = match_length - (qtm->window_size - window_posn);
-+	  while (i--) *rundest++ = window[j++ & (qtm->window_size - 1)];
-+	  window_posn = window_posn + match_length - qtm->window_size;
-+
-+          break; /* because "window_posn < frame_end" has now failed */
-+	}
-+	else {
-+          /* normal match - output won't wrap window or frame end */
-+	  i = match_length;
-+
-+	  /* does match _offset_ wrap the window? */
-+	  if (match_offset > window_posn) {
-+	    /* j = length from match offset to end of window */
-+	    j = match_offset - window_posn;
-+	    if (j > (int) qtm->window_size) {
-+	      D(("match offset beyond window boundaries"))
-+	      return qtm->error = MSPACK_ERR_DECRUNCH;
-+	    }
-+	    runsrc = &window[qtm->window_size - j];
-+	    if (j < i) {
-+	      /* if match goes over the window edge, do two copy runs */
-+	      i -= j; while (j-- > 0) *rundest++ = *runsrc++;
-+	      runsrc = window;
-+	    }
-+	    while (i-- > 0) *rundest++ = *runsrc++;
-+	  }
-+	  else {
-+	    runsrc = rundest - match_offset;
-+	    while (i-- > 0) *rundest++ = *runsrc++;
-+	  }
-+	  window_posn += match_length;
-+	}
-+      } /* if (window_posn+match_length > frame_end) */
-+    } /* while (window_posn < frame_end) */
-+
-+    qtm->o_end = &window[window_posn];
-+
-+   /* if we subtracted too much from frame_todo, it will
-+    * wrap around past zero and go above its max value */
-+   if (frame_todo > QTM_FRAME_SIZE) {
-+     D(("overshot frame alignment"))
-+     return qtm->error = MSPACK_ERR_DECRUNCH;
-+   }
-+
-+    /* another frame completed? */
-+    if (frame_todo == 0) {
-+      /* re-align input */
-+      if (bits_left & 7) REMOVE_BITS(bits_left & 7);
-+
-+      /* special Quantum hack -- cabd.c injects a trailer byte to allow the
-+       * decompressor to realign itself. CAB Quantum blocks, unlike LZX
-+       * blocks, can have anything from 0 to 4 trailing null bytes. */
-+      do { READ_BITS(i, 8); } while (i != 0xFF);
-+
-+      qtm->header_read = 0;
-+
-+      frame_todo = QTM_FRAME_SIZE;
-+    }
-+
-+    /* window wrap? */
-+    if (window_posn == qtm->window_size) {
-+      /* flush all currently stored data */
-+      i = (qtm->o_end - qtm->o_ptr);
-+      /* break out if we have more than enough to finish this request */
-+      if (i >= out_bytes) break;
-+      if (qtm->sys->write(qtm->output, qtm->o_ptr, i) != i) {
-+	return qtm->error = MSPACK_ERR_WRITE;
-+      }
-+      out_bytes -= i;
-+      qtm->o_ptr = &window[0];
-+      qtm->o_end = &window[0]; 
-+      window_posn = 0;
-+   }
-+
-+  } /* while (more bytes needed) */
-+
-+  if (out_bytes) {
-+    i = (int) out_bytes;
-+    if (qtm->sys->write(qtm->output, qtm->o_ptr, i) != i) {
-+      return qtm->error = MSPACK_ERR_WRITE;
-+    }
-+    qtm->o_ptr += i;
-+  }
-+
-+  /* store local state */
-+
-+  STORE_BITS;
-+  qtm->window_posn = window_posn;
-+  qtm->frame_todo = frame_todo;
-+  qtm->H = H;
-+  qtm->L = L;
-+  qtm->C = C;
-+
-+  return MSPACK_ERR_OK;
-+}
-+
-+void qtmd_free(struct qtmd_stream *qtm) {
-+  struct mspack_system *sys;
-+  if (qtm) {
-+    sys = qtm->sys;
-+    sys->free(qtm->window);
-+    sys->free(qtm->inbuf);
-+    sys->free(qtm);
-+  }
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/readbits.h b/libclamav/libmspack-0.4alpha/mspack/readbits.h
-new file mode 100644
-index 000000000000..457cbdd7d4cc
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/readbits.h
-@@ -0,0 +1,207 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2010 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_READBITS_H
-+#define MSPACK_READBITS_H 1
-+
-+/* this header defines macros that read data streams by
-+ * the individual bits
-+ *
-+ * INIT_BITS         initialises bitstream state in state structure
-+ * STORE_BITS        stores bitstream state in state structure
-+ * RESTORE_BITS      restores bitstream state from state structure
-+ * ENSURE_BITS(n)    ensure there are at least N bits in the bit buffer
-+ * READ_BITS(var,n)  takes N bits from the buffer and puts them in var
-+ * PEEK_BITS(n)      extracts without removing N bits from the bit buffer
-+ * REMOVE_BITS(n)    removes N bits from the bit buffer
-+ *
-+ * READ_BITS simply calls ENSURE_BITS, PEEK_BITS and REMOVE_BITS,
-+ * which means it's limited to reading the number of bits you can
-+ * ensure at any one time. It also fails if asked to read zero bits.
-+ * If you need to read zero bits, or more bits than can be ensured in
-+ * one go, use READ_MANY_BITS instead.
-+ *
-+ * These macros have variable names baked into them, so to use them
-+ * you have to define some macros:
-+ * - BITS_TYPE: the type name of your state structure
-+ * - BITS_VAR: the variable that points to your state structure
-+ * - define BITS_ORDER_MSB if bits are read from the MSB, or
-+ *   define BITS_ORDER_LSB if bits are read from the LSB
-+ * - READ_BYTES: some code that reads more data into the bit buffer,
-+ *   it should use READ_IF_NEEDED (calls read_input if the byte buffer
-+ *   is empty), then INJECT_BITS(data,n) to put data from the byte
-+ *   buffer into the bit buffer.
-+ *
-+ * You also need to define some variables and structure members:
-+ * - unsigned char *i_ptr;    // current position in the byte buffer
-+ * - unsigned char *i_end;    // end of the byte buffer
-+ * - unsigned int bit_buffer; // the bit buffer itself
-+ * - unsigned int bits_left;  // number of bits remaining
-+ *
-+ * If you use read_input() and READ_IF_NEEDED, they also expect these
-+ * structure members:
-+ * - struct mspack_system *sys;  // to access sys->read()
-+ * - unsigned int error;         // to record/return read errors
-+ * - unsigned char input_end;    // to mark reaching the EOF
-+ * - unsigned char *inbuf;       // the input byte buffer
-+ * - unsigned int inbuf_size;    // the size of the input byte buffer
-+ *
-+ * Your READ_BYTES implementation should read data from *i_ptr and
-+ * put them in the bit buffer. READ_IF_NEEDED will call read_input()
-+ * if i_ptr reaches i_end, and will fill up inbuf and set i_ptr to
-+ * the start of inbuf and i_end to the end of inbuf.
-+ *
-+ * If you're reading in MSB order, the routines work by using the area
-+ * beyond the MSB and the LSB of the bit buffer as a free source of
-+ * zeroes when shifting. This avoids having to mask any bits. So we
-+ * have to know the bit width of the bit buffer variable. We use
-+ * <limits.h> and CHAR_BIT to find the size of the bit buffer in bits.
-+ *
-+ * If you are reading in LSB order, bits need to be masked. Normally
-+ * this is done by computing the mask: N bits are masked by the value
-+ * (1<<N)-1). However, you can define BITS_LSB_TABLE to use a lookup
-+ * table instead of computing this. This adds two new macros,
-+ * PEEK_BITS_T and READ_BITS_T which work the same way as PEEK_BITS
-+ * and READ_BITS, except they use this lookup table. This is useful if
-+ * you need to look up a number of bits that are only known at
-+ * runtime, so the bit mask can't be turned into a constant by the
-+ * compiler.
-+
-+ * The bit buffer datatype should be at least 32 bits wide: it must be
-+ * possible to ENSURE_BITS(17), so it must be possible to add 16 new bits
-+ * to the bit buffer when the bit buffer already has 1 to 15 bits left.
-+ */
-+
-+#ifndef BITS_VAR
-+# error "define BITS_VAR as the state structure poiner variable name"
-+#endif
-+#ifndef BITS_TYPE
-+# error "define BITS_TYPE as the state structure type"
-+#endif
-+#if defined(BITS_ORDER_MSB) && defined(BITS_ORDER_LSB)
-+# error "you must define either BITS_ORDER_MSB or BITS_ORDER_LSB"
-+#else
-+# if !(defined(BITS_ORDER_MSB) || defined(BITS_ORDER_LSB))
-+#  error "you must define BITS_ORDER_MSB or BITS_ORDER_LSB"
-+# endif
-+#endif
-+
-+#if HAVE_LIMITS_H
-+# include <limits.h>
-+#endif
-+#ifndef CHAR_BIT
-+# define CHAR_BIT (8)
-+#endif
-+#define BITBUF_WIDTH (sizeof(bit_buffer) * CHAR_BIT)
-+
-+#define INIT_BITS do {				\
-+    BITS_VAR->i_ptr      = &BITS_VAR->inbuf[0];	\
-+    BITS_VAR->i_end      = &BITS_VAR->inbuf[0];	\
-+    BITS_VAR->bit_buffer = 0;			\
-+    BITS_VAR->bits_left  = 0;			\
-+    BITS_VAR->input_end  = 0;			\
-+} while (0)
-+
-+#define STORE_BITS do {			\
-+    BITS_VAR->i_ptr      = i_ptr;	\
-+    BITS_VAR->i_end      = i_end;	\
-+    BITS_VAR->bit_buffer = bit_buffer;	\
-+    BITS_VAR->bits_left  = bits_left;	\
-+} while (0)
-+
-+#define RESTORE_BITS do {		\
-+    i_ptr      = BITS_VAR->i_ptr;	\
-+    i_end      = BITS_VAR->i_end;	\
-+    bit_buffer = BITS_VAR->bit_buffer;	\
-+    bits_left  = BITS_VAR->bits_left;	\
-+} while (0)
-+
-+#define ENSURE_BITS(nbits) do {			\
-+    while (bits_left < (nbits)) READ_BYTES;	\
-+} while (0)
-+
-+#define READ_BITS(val, nbits) do {		\
-+    ENSURE_BITS(nbits);				\
-+    (val) = PEEK_BITS(nbits);			\
-+    REMOVE_BITS(nbits);				\
-+} while (0)
-+
-+#define READ_MANY_BITS(val, bits) do {				\
-+    unsigned char needed = (bits), bitrun;			\
-+    (val) = 0;							\
-+    while (needed > 0) {					\
-+	if (bits_left <= (BITBUF_WIDTH - 16)) READ_BYTES;	\
-+	bitrun = (bits_left < needed) ? bits_left : needed;	\
-+	(val) = ((val) << bitrun) | PEEK_BITS(bitrun);		\
-+	REMOVE_BITS(bitrun);					\
-+	needed -= bitrun;					\
-+    }								\
-+} while (0)
-+
-+#ifdef BITS_ORDER_MSB
-+# define PEEK_BITS(nbits)   (bit_buffer >> (BITBUF_WIDTH - (nbits)))
-+# define REMOVE_BITS(nbits) ((bit_buffer <<= (nbits)), (bits_left -= (nbits)))
-+# define INJECT_BITS(bitdata,nbits) ((bit_buffer |= \
-+    (bitdata) << (BITBUF_WIDTH - (nbits) - bits_left)), (bits_left += (nbits)))
-+#else /* BITS_ORDER_LSB */
-+# define PEEK_BITS(nbits)   (bit_buffer & ((1 << (nbits))-1))
-+# define REMOVE_BITS(nbits) ((bit_buffer >>= (nbits)), (bits_left -= (nbits)))
-+# define INJECT_BITS(bitdata,nbits) ((bit_buffer |= \
-+    (bitdata) << bits_left), (bits_left += (nbits)))
-+#endif
-+
-+#ifdef BITS_LSB_TABLE
-+/* lsb_bit_mask[n] = (1 << n) - 1 */
-+static const unsigned short lsb_bit_mask[17] = {
-+    0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
-+    0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
-+};
-+# define PEEK_BITS_T(nbits) (bit_buffer & lsb_bit_mask[(nbits)])
-+# define READ_BITS_T(val, nbits) do {	\
-+    ENSURE_BITS(nbits);			\
-+    (val) = PEEK_BITS_T(nbits);		\
-+    REMOVE_BITS(nbits);			\
-+} while (0)
-+#endif
-+
-+#ifndef BITS_NO_READ_INPUT
-+# define READ_IF_NEEDED do {		\
-+    if (i_ptr >= i_end) {		\
-+	if (read_input(BITS_VAR))	\
-+	    return BITS_VAR->error;	\
-+	i_ptr = BITS_VAR->i_ptr;	\
-+	i_end = BITS_VAR->i_end;	\
-+    }					\
-+} while (0)
-+
-+static int read_input(BITS_TYPE *p) {
-+    int read = p->sys->read(p->input, &p->inbuf[0], (int)p->inbuf_size);
-+    if (read < 0) return p->error = MSPACK_ERR_READ;
-+
-+    /* we might overrun the input stream by asking for bits we don't use,
-+     * so fake 2 more bytes at the end of input */
-+    if (read == 0) {
-+	if (p->input_end) {
-+	    D(("out of input bytes"))
-+	    return p->error = MSPACK_ERR_READ;
-+	}
-+	else {
-+	    read = 2;
-+	    p->inbuf[0] = p->inbuf[1] = 0;
-+	    p->input_end = 1;
-+	}
-+    }
-+
-+    /* update i_ptr and i_end */
-+    p->i_ptr = &p->inbuf[0];
-+    p->i_end = &p->inbuf[read];
-+    return MSPACK_ERR_OK;
-+}
-+#endif
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/readhuff.h b/libclamav/libmspack-0.4alpha/mspack/readhuff.h
-new file mode 100644
-index 000000000000..bb15c0a12362
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/readhuff.h
-@@ -0,0 +1,173 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2010 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_READHUFF_H
-+#define MSPACK_READHUFF_H 1
-+
-+/* This implements a fast Huffman tree decoding system.
-+ */
-+
-+#if !(defined(BITS_ORDER_MSB) || defined(BITS_ORDER_LSB))
-+# error "readhuff.h is used in conjunction with readbits.h, include that first"
-+#endif
-+#if !(defined(TABLEBITS) && defined(MAXSYMBOLS))
-+# error "define TABLEBITS(tbl) and MAXSYMBOLS(tbl) before using readhuff.h"
-+#endif
-+#if !(defined(HUFF_TABLE) && defined(HUFF_LEN))
-+# error "define HUFF_TABLE(tbl) and HUFF_LEN(tbl) before using readhuff.h"
-+#endif
-+#ifndef HUFF_ERROR
-+# error "define HUFF_ERROR before using readhuff.h"
-+#endif
-+#ifndef HUFF_MAXBITS
-+# define HUFF_MAXBITS 16
-+#endif
-+
-+/* Decodes the next huffman symbol from the input bitstream into var.
-+ * Do not use this macro on a table unless build_decode_table() succeeded.
-+ */
-+#define READ_HUFFSYM(tbl, var) do {			\
-+    ENSURE_BITS(HUFF_MAXBITS);				\
-+    sym = HUFF_TABLE(tbl, PEEK_BITS(TABLEBITS(tbl)));	\
-+    if (sym >= MAXSYMBOLS(tbl))	HUFF_TRAVERSE(tbl);	\
-+    (var) = sym;					\
-+    i = HUFF_LEN(tbl, sym);				\
-+    REMOVE_BITS(i);					\
-+} while (0)
-+
-+#ifdef BITS_ORDER_LSB
-+# define HUFF_TRAVERSE(tbl) do {			\
-+    i = TABLEBITS(tbl) - 1;				\
-+    do {						\
-+	if (i++ > HUFF_MAXBITS) HUFF_ERROR;		\
-+	sym = HUFF_TABLE(tbl,				\
-+            (sym << 1) | ((bit_buffer >> i) & 1));	\
-+    } while (sym >= MAXSYMBOLS(tbl));			\
-+} while (0)
-+#else
-+#define HUFF_TRAVERSE(tbl) do {				\
-+    i = 1 << (BITBUF_WIDTH - TABLEBITS(tbl));		\
-+    do {						\
-+	if ((i >>= 1) == 0) HUFF_ERROR;			\
-+	sym = HUFF_TABLE(tbl,				\
-+	    (sym << 1) | ((bit_buffer & i) ? 1 : 0));	\
-+    } while (sym >= MAXSYMBOLS(tbl));			\
-+} while (0)
-+#endif
-+
-+/* make_decode_table(nsyms, nbits, length[], table[])
-+ *
-+ * This function was originally coded by David Tritscher.
-+ * It builds a fast huffman decoding table from
-+ * a canonical huffman code lengths table.
-+ *
-+ * nsyms  = total number of symbols in this huffman tree.
-+ * nbits  = any symbols with a code length of nbits or less can be decoded
-+ *          in one lookup of the table.
-+ * length = A table to get code lengths from [0 to nsyms-1]
-+ * table  = The table to fill up with decoded symbols and pointers.
-+ *          Should be ((1<<nbits) + (nsyms*2)) in length.
-+ *
-+ * Returns 0 for OK or 1 for error
-+ */
-+static int make_decode_table(unsigned int nsyms, unsigned int nbits,
-+			     unsigned char *length, unsigned short *table)
-+{
-+    register unsigned short sym, next_symbol;
-+    register unsigned int leaf, fill;
-+#ifdef BITS_ORDER_LSB
-+    register unsigned int reverse;
-+#endif
-+    register unsigned char bit_num;
-+    unsigned int pos         = 0; /* the current position in the decode table */
-+    unsigned int table_mask  = 1 << nbits;
-+    unsigned int bit_mask    = table_mask >> 1; /* don't do 0 length codes */
-+
-+    /* fill entries for codes short enough for a direct mapping */
-+    for (bit_num = 1; bit_num <= nbits; bit_num++) {
-+	for (sym = 0; sym < nsyms; sym++) {
-+	    if (length[sym] != bit_num) continue;
-+#ifdef BITS_ORDER_MSB
-+	    leaf = pos;
-+#else
-+	    /* reverse the significant bits */
-+	    fill = length[sym]; reverse = pos >> (nbits - fill); leaf = 0;
-+	    do {leaf <<= 1; leaf |= reverse & 1; reverse >>= 1;} while (--fill);
-+#endif
-+
-+	    if((pos += bit_mask) > table_mask) return 1; /* table overrun */
-+
-+	    /* fill all possible lookups of this symbol with the symbol itself */
-+#ifdef BITS_ORDER_MSB
-+	    for (fill = bit_mask; fill-- > 0;) table[leaf++] = sym;
-+#else
-+	    fill = bit_mask; next_symbol = 1 << bit_num;
-+	    do { table[leaf] = sym; leaf += next_symbol; } while (--fill);
-+#endif
-+	}
-+	bit_mask >>= 1;
-+    }
-+
-+    /* exit with success if table is now complete */
-+    if (pos == table_mask) return 0;
-+
-+    /* mark all remaining table entries as unused */
-+    for (sym = pos; sym < table_mask; sym++) {
-+#ifdef BITS_ORDER_MSB
-+	table[sym] = 0xFFFF;
-+#else
-+	reverse = sym; leaf = 0; fill = nbits;
-+	do { leaf <<= 1; leaf |= reverse & 1; reverse >>= 1; } while (--fill);
-+	table[leaf] = 0xFFFF;
-+#endif
-+    }
-+
-+    /* next_symbol = base of allocation for long codes */
-+    next_symbol = ((table_mask >> 1) < nsyms) ? nsyms : (table_mask >> 1);
-+
-+    /* give ourselves room for codes to grow by up to 16 more bits.
-+     * codes now start at bit nbits+16 and end at (nbits+16-codelength) */
-+    pos <<= 16;
-+    table_mask <<= 16;
-+    bit_mask = 1 << 15;
-+
-+    for (bit_num = nbits+1; bit_num <= HUFF_MAXBITS; bit_num++) {
-+	for (sym = 0; sym < nsyms; sym++) {
-+	    if (length[sym] != bit_num) continue;
-+
-+#ifdef BITS_ORDER_MSB
-+	    leaf = pos >> 16;
-+#else
-+	    /* leaf = the first nbits of the code, reversed */
-+	    reverse = pos >> 16; leaf = 0; fill = nbits;
-+	    do {leaf <<= 1; leaf |= reverse & 1; reverse >>= 1;} while (--fill);
-+#endif
-+	    for (fill = 0; fill < (bit_num - nbits); fill++) {
-+		/* if this path hasn't been taken yet, 'allocate' two entries */
-+		if (table[leaf] == 0xFFFF) {
-+		    table[(next_symbol << 1)     ] = 0xFFFF;
-+		    table[(next_symbol << 1) + 1 ] = 0xFFFF;
-+		    table[leaf] = next_symbol++;
-+		}
-+
-+		/* follow the path and select either left or right for next bit */
-+		leaf = table[leaf] << 1;
-+		if ((pos >> (15-fill)) & 1) leaf++;
-+	    }
-+	    table[leaf] = sym;
-+
-+	    if ((pos += bit_mask) > table_mask) return 1; /* table overflow */
-+	}
-+	bit_mask >>= 1;
-+    }
-+
-+    /* full table? */
-+    return (pos == table_mask) ? 0 : 1;
-+}
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/sha.h b/libclamav/libmspack-0.4alpha/mspack/sha.h
-new file mode 100644
-index 000000000000..360521519beb
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/sha.h
-@@ -0,0 +1,15 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_LZSS_H
-+#define MSPACK_LZSS_H 1
-+
-+/* SHA-1 message digest definitions */
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/system.c b/libclamav/libmspack-0.4alpha/mspack/system.c
-new file mode 100644
-index 000000000000..978a4d7e2357
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/system.c
-@@ -0,0 +1,239 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <system.h>
-+
-+#ifndef LARGEFILE_SUPPORT
-+const char *largefile_msg = "library not compiled to support large files.";
-+#endif
-+
-+
-+int mspack_version(int entity) {
-+  switch (entity) {
-+   /* CHM decoder version 1 -> 2 changes:
-+    * - added mschmd_sec_mscompressed::spaninfo
-+    * - added mschmd_header::first_pmgl
-+    * - added mschmd_header::last_pmgl
-+    * - added mschmd_header::chunk_cache;
-+    */
-+  case MSPACK_VER_MSCHMD:
-+    return 2;
-+  case MSPACK_VER_LIBRARY:
-+  case MSPACK_VER_SYSTEM:
-+  case MSPACK_VER_MSCABD:
-+  case MSPACK_VER_MSSZDDD:
-+  case MSPACK_VER_MSKWAJD:
-+  case MSPACK_VER_MSOABD:
-+    return 1;
-+  case MSPACK_VER_MSCABC:
-+  case MSPACK_VER_MSCHMC:
-+  case MSPACK_VER_MSLITD:
-+  case MSPACK_VER_MSLITC:
-+  case MSPACK_VER_MSHLPD:
-+  case MSPACK_VER_MSHLPC:
-+  case MSPACK_VER_MSSZDDC:
-+  case MSPACK_VER_MSKWAJC:
-+  case MSPACK_VER_MSOABC:
-+    return 0;
-+  }
-+  return -1;
-+}
-+
-+int mspack_sys_selftest_internal(int offt_size) {
-+  return (sizeof(off_t) == offt_size) ? MSPACK_ERR_OK : MSPACK_ERR_SEEK;
-+}
-+
-+/* validates a system structure */
-+int mspack_valid_system(struct mspack_system *sys) {
-+  return (sys != NULL) && (sys->open != NULL) && (sys->close != NULL) &&
-+    (sys->read != NULL) && (sys->write != NULL) && (sys->seek != NULL) &&
-+    (sys->tell != NULL) && (sys->message != NULL) && (sys->alloc != NULL) &&
-+    (sys->free != NULL) && (sys->copy != NULL) && (sys->null_ptr == NULL);
-+}
-+
-+/* returns the length of a file opened for reading */
-+int mspack_sys_filelen(struct mspack_system *system,
-+		       struct mspack_file *file, off_t *length)
-+{
-+  off_t current;
-+
-+  if (!system || !file || !length) return MSPACK_ERR_OPEN;
-+
-+  /* get current offset */
-+  current = system->tell(file);
-+
-+  /* seek to end of file */
-+  if (system->seek(file, (off_t) 0, MSPACK_SYS_SEEK_END)) {
-+    return MSPACK_ERR_SEEK;
-+  }
-+
-+  /* get offset of end of file */
-+  *length = system->tell(file);
-+
-+  /* seek back to original offset */
-+  if (system->seek(file, current, MSPACK_SYS_SEEK_START)) {
-+    return MSPACK_ERR_SEEK;
-+  }
-+
-+  return MSPACK_ERR_OK;
-+}
-+
-+
-+
-+/* definition of mspack_default_system -- if the library is compiled with
-+ * MSPACK_NO_DEFAULT_SYSTEM, no default system will be provided. Otherwise,
-+ * an appropriate default system (e.g. the standard C library, or some native
-+ * API calls)
-+ */
-+
-+#ifdef MSPACK_NO_DEFAULT_SYSTEM
-+struct mspack_system *mspack_default_system = NULL;
-+#else
-+
-+/* implementation of mspack_default_system for standard C library */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdarg.h>
-+
-+struct mspack_file_p {
-+  FILE *fh;
-+  const char *name;
-+};
-+
-+static struct mspack_file *msp_open(struct mspack_system *self,
-+				    const char *filename, int mode)
-+{
-+  struct mspack_file_p *fh;
-+  const char *fmode;
-+
-+  switch (mode) {
-+  case MSPACK_SYS_OPEN_READ:   fmode = "rb";  break;
-+  case MSPACK_SYS_OPEN_WRITE:  fmode = "wb";  break;
-+  case MSPACK_SYS_OPEN_UPDATE: fmode = "r+b"; break;
-+  case MSPACK_SYS_OPEN_APPEND: fmode = "ab";  break;
-+  default: return NULL;
-+  }
-+
-+  if ((fh = (struct mspack_file_p *) malloc(sizeof(struct mspack_file_p)))) {
-+    fh->name = filename;
-+    if ((fh->fh = fopen(filename, fmode))) return (struct mspack_file *) fh;
-+    free(fh);
-+  }
-+  return NULL;
-+}
-+
-+static void msp_close(struct mspack_file *file) {
-+  struct mspack_file_p *self = (struct mspack_file_p *) file;
-+  if (self) {
-+    fclose(self->fh);
-+    free(self);
-+  }
-+}
-+
-+static int msp_read(struct mspack_file *file, void *buffer, int bytes) {
-+  struct mspack_file_p *self = (struct mspack_file_p *) file;
-+  if (self && buffer && bytes >= 0) {
-+    size_t count = fread(buffer, 1, (size_t) bytes, self->fh);
-+    if (!ferror(self->fh)) return (int) count;
-+  }
-+  return -1;
-+}
-+
-+static int msp_write(struct mspack_file *file, void *buffer, int bytes) {
-+  struct mspack_file_p *self = (struct mspack_file_p *) file;
-+  if (self && buffer && bytes >= 0) {
-+    size_t count = fwrite(buffer, 1, (size_t) bytes, self->fh);
-+    if (!ferror(self->fh)) return (int) count;
-+  }
-+  return -1;
-+}
-+
-+static int msp_seek(struct mspack_file *file, off_t offset, int mode) {
-+  struct mspack_file_p *self = (struct mspack_file_p *) file;
-+  if (self) {
-+    switch (mode) {
-+    case MSPACK_SYS_SEEK_START: mode = SEEK_SET; break;
-+    case MSPACK_SYS_SEEK_CUR:   mode = SEEK_CUR; break;
-+    case MSPACK_SYS_SEEK_END:   mode = SEEK_END; break;
-+    default: return -1;
-+    }
-+#ifdef HAVE_FSEEKO
-+    return fseeko(self->fh, offset, mode);
-+#else
-+    return fseek(self->fh, offset, mode);
-+#endif
-+  }
-+  return -1;
-+}
-+
-+static off_t msp_tell(struct mspack_file *file) {
-+  struct mspack_file_p *self = (struct mspack_file_p *) file;
-+#ifdef HAVE_FSEEKO
-+  return (self) ? (off_t) ftello(self->fh) : 0;
-+#else
-+  return (self) ? (off_t) ftell(self->fh) : 0;
-+#endif
-+}
-+
-+static void msp_msg(struct mspack_file *file, const char *format, ...) {
-+  va_list ap;
-+  if (file) fprintf(stderr, "%s: ", ((struct mspack_file_p *) file)->name);
-+  va_start(ap, format);
-+  vfprintf(stderr, format, ap);
-+  va_end(ap);
-+  fputc((int) '\n', stderr);
-+  fflush(stderr);
-+}
-+
-+static void *msp_alloc(struct mspack_system *self, size_t bytes) {
-+#ifdef DEBUG
-+  /* make uninitialised data obvious */
-+  char *buf = malloc(bytes + 8);
-+  if (buf) memset(buf, 0xDC, bytes);
-+  *((size_t *)buf) = bytes;
-+  return &buf[8];
-+#else
-+  return malloc(bytes);
-+#endif
-+}
-+
-+static void msp_free(void *buffer) {
-+#ifdef DEBUG
-+  char *buf = buffer;
-+  size_t bytes;
-+  if (buf) {
-+    buf -= 8;
-+    bytes = *((size_t *)buf);
-+    /* make freed data obvious */
-+    memset(buf, 0xED, bytes);
-+    free(buf);
-+  }
-+#else
-+  free(buffer);
-+#endif
-+}
-+
-+static void msp_copy(void *src, void *dest, size_t bytes) {
-+  memcpy(dest, src, bytes);
-+}
-+
-+static struct mspack_system msp_system = {
-+  &msp_open, &msp_close, &msp_read,  &msp_write, &msp_seek,
-+  &msp_tell, &msp_msg, &msp_alloc, &msp_free, &msp_copy, NULL
-+};
-+
-+struct mspack_system *mspack_default_system = &msp_system;
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/system.h b/libclamav/libmspack-0.4alpha/mspack/system.h
-new file mode 100644
-index 000000000000..4a400850aa52
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/system.h
-@@ -0,0 +1,124 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_SYSTEM_H
-+#define MSPACK_SYSTEM_H 1
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* ensure config.h is read before mspack.h */
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <mspack.h>
-+
-+/* fix for problem with GCC 4 and glibc (thanks to Ville Skytta)
-+ * http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=150429
-+ */
-+#ifdef read
-+# undef read
-+#endif
-+
-+#ifdef DEBUG
-+# include <stdio.h>
-+/* Old GCCs don't have __func__, but __FUNCTION__:
-+ * http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html
-+ */
-+# if __STDC_VERSION__ < 199901L
-+#  if __GNUC__ >= 2
-+#   define __func__ __FUNCTION__
-+#  else
-+#   define __func__ "<unknown>"
-+#  endif
-+# endif
-+# define D(x) do { printf("%s:%d (%s) ",__FILE__, __LINE__, __func__); \
-+                   printf x ; fputc('\n', stdout); fflush(stdout);} while (0);
-+#else
-+# define D(x)
-+#endif
-+
-+/* CAB supports searching through files over 4GB in size, and the CHM file
-+ * format actively uses 64-bit offsets. These can only be fully supported
-+ * if the system the code runs on supports large files. If not, the library
-+ * will work as normal using only 32-bit arithmetic, but if an offset
-+ * greater than 2GB is detected, an error message indicating the library
-+ * can't support the file should be printed.
-+ */
-+#ifdef HAVE_LIMITS_H
-+# include <limits.h>
-+#endif
-+
-+#if ((defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS >= 64) || \
-+     (defined(FILESIZEBITS)      && FILESIZEBITS      >= 64) || \
-+     (defined(SIZEOF_OFF_T)      && SIZEOF_OFF_T      >= 8)  || \
-+     defined(_LARGEFILE_SOURCE) || defined(_LARGEFILE64_SOURCE))
-+# define LARGEFILE_SUPPORT
-+# define LD "lld"
-+# define LU "llu"
-+#else
-+extern const char *largefile_msg;
-+# define LD "ld"
-+# define LU "lu"
-+#endif
-+
-+/* endian-neutral reading of little-endian data */
-+#define __egi32(a,n) ( ((((unsigned char *) a)[n+3]) << 24) | \
-+		       ((((unsigned char *) a)[n+2]) << 16) | \
-+		       ((((unsigned char *) a)[n+1]) <<  8) | \
-+		       ((((unsigned char *) a)[n+0])))
-+#define EndGetI64(a) ((((unsigned long long int) __egi32(a,4)) << 32) | \
-+		      ((unsigned int) __egi32(a,0)))
-+#define EndGetI32(a) __egi32(a,0)
-+#define EndGetI16(a) ((((a)[1])<<8)|((a)[0]))
-+
-+/* endian-neutral reading of big-endian data */
-+#define EndGetM32(a) (((((unsigned char *) a)[0]) << 24) | \
-+		      ((((unsigned char *) a)[1]) << 16) | \
-+		      ((((unsigned char *) a)[2]) <<  8) | \
-+		      ((((unsigned char *) a)[3])))
-+#define EndGetM16(a) ((((a)[0])<<8)|((a)[1]))
-+
-+extern struct mspack_system *mspack_default_system;
-+
-+/* returns the length of a file opened for reading */
-+extern int mspack_sys_filelen(struct mspack_system *system,
-+			      struct mspack_file *file, off_t *length);
-+
-+/* validates a system structure */
-+extern int mspack_valid_system(struct mspack_system *sys);
-+
-+#if HAVE_STRINGS_H
-+# include <strings.h>
-+#endif
-+
-+#if HAVE_STRING_H
-+# include <string.h>
-+#endif
-+
-+#if HAVE_MEMCMP
-+# define mspack_memcmp memcmp
-+#else
-+/* inline memcmp() */
-+static inline int mspack_memcmp(const void *s1, const void *s2, size_t n) {
-+  unsigned char *c1 = (unsigned char *) s1;
-+  unsigned char *c2 = (unsigned char *) s2;
-+  if (n == 0) return 0;
-+  while (--n && (*c1 == *c2)) c1++, c2++;
-+  return *c1 - *c2;
-+}
-+#endif
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/szdd.h b/libclamav/libmspack-0.4alpha/mspack/szdd.h
-new file mode 100644
-index 000000000000..e07c6b7c8edd
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/szdd.h
-@@ -0,0 +1,39 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+#ifndef MSPACK_SZDD_H
-+#define MSPACK_SZDD_H 1
-+
-+#include <lzss.h>
-+
-+/* input buffer size during decompression - not worth parameterising IMHO */
-+#define SZDD_INPUT_SIZE (2048)
-+
-+/* SZDD compression definitions */
-+
-+struct msszdd_compressor_p {
-+  struct msszdd_compressor base;
-+  struct mspack_system *system;
-+  int error;
-+};
-+
-+/* SZDD decompression definitions */
-+
-+struct msszdd_decompressor_p {
-+  struct msszdd_decompressor base;
-+  struct mspack_system *system;
-+  int error;
-+};
-+
-+struct msszddd_header_p {
-+  struct msszddd_header base;
-+  struct mspack_file *fh;
-+};
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/mspack/szddc.c b/libclamav/libmspack-0.4alpha/mspack/szddc.c
-new file mode 100644
-index 000000000000..cdd39a630532
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/szddc.c
-@@ -0,0 +1,24 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2004 Stuart Caie.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* SZDD compression implementation */
-+
-+#include <system.h>
-+#include <szdd.h>
-+
-+struct msszdd_compressor *
-+  mspack_create_szdd_compressor(struct mspack_system *sys)
-+{
-+  /* todo */
-+  return NULL;
-+}
-+
-+void mspack_destroy_szdd_compressor(struct msszdd_compressor *self) {
-+  /* todo */
-+}
-diff --git a/libclamav/libmspack-0.4alpha/mspack/szddd.c b/libclamav/libmspack-0.4alpha/mspack/szddd.c
-new file mode 100644
-index 000000000000..99c5aa465852
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/mspack/szddd.c
-@@ -0,0 +1,247 @@
-+/* This file is part of libmspack.
-+ * (C) 2003-2010 Stuart Caie.
-+ *
-+ * SZDD is a format used in the MS-DOS commands COMPRESS.EXE and
-+ * EXPAND.EXE. The compression method is attributed to Steven Zeck,
-+ * however it's pretty much identical to LZSS.
-+ *
-+ * libmspack is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License (LGPL) version 2.1
-+ *
-+ * For further details, see the file COPYING.LIB distributed with libmspack
-+ */
-+
-+/* SZDD decompression implementation */
-+
-+#include <system.h>
-+#include <szdd.h>
-+
-+/* prototypes */
-+static struct msszddd_header *szddd_open(
-+    struct msszdd_decompressor *base, const char *filename);
-+static void szddd_close(
-+    struct msszdd_decompressor *base, struct msszddd_header *hdr);
-+static int szddd_read_headers(
-+    struct mspack_system *sys, struct mspack_file *fh,
-+    struct msszddd_header *hdr);
-+static int szddd_extract(
-+    struct msszdd_decompressor *base, struct msszddd_header *hdr,
-+    const char *filename);
-+static int szddd_decompress(
-+    struct msszdd_decompressor *base, const char *input, const char *output);
-+static int szddd_error(
-+    struct msszdd_decompressor *base);
-+
-+/***************************************
-+ * MSPACK_CREATE_SZDD_DECOMPRESSOR
-+ ***************************************
-+ * constructor
-+ */
-+struct msszdd_decompressor *
-+    mspack_create_szdd_decompressor(struct mspack_system *sys)
-+{
-+  struct msszdd_decompressor_p *self = NULL;
-+
-+  if (!sys) sys = mspack_default_system;
-+  if (!mspack_valid_system(sys)) return NULL;
-+
-+  if ((self = (struct msszdd_decompressor_p *) sys->alloc(sys, sizeof(struct msszdd_decompressor_p)))) {
-+    self->base.open       = &szddd_open;
-+    self->base.close      = &szddd_close;
-+    self->base.extract    = &szddd_extract;
-+    self->base.decompress = &szddd_decompress;
-+    self->base.last_error = &szddd_error;
-+    self->system          = sys;
-+    self->error           = MSPACK_ERR_OK;
-+  }
-+  return (struct msszdd_decompressor *) self;
-+}
-+
-+/***************************************
-+ * MSPACK_DESTROY_SZDD_DECOMPRESSOR
-+ ***************************************
-+ * destructor
-+ */
-+void mspack_destroy_szdd_decompressor(struct msszdd_decompressor *base)
-+{
-+    struct msszdd_decompressor_p *self = (struct msszdd_decompressor_p *) base;
-+    if (self) {
-+	struct mspack_system *sys = self->system;
-+	sys->free(self);
-+    }
-+}
-+
-+/***************************************
-+ * SZDDD_OPEN
-+ ***************************************
-+ * opens an SZDD file without decompressing, reads header
-+ */
-+static struct msszddd_header *szddd_open(struct msszdd_decompressor *base,
-+					 const char *filename)
-+{
-+    struct msszdd_decompressor_p *self = (struct msszdd_decompressor_p *) base;
-+    struct msszddd_header *hdr;
-+    struct mspack_system *sys;
-+    struct mspack_file *fh;
-+
-+    if (!self) return NULL;
-+    sys = self->system;
-+
-+    fh  = sys->open(sys, filename, MSPACK_SYS_OPEN_READ);
-+    hdr = (struct msszddd_header *) sys->alloc(sys, sizeof(struct msszddd_header_p));
-+    if (fh && hdr) {
-+	((struct msszddd_header_p *) hdr)->fh = fh;
-+	self->error = szddd_read_headers(sys, fh, hdr);
-+    }
-+    else {
-+	if (!fh)  self->error = MSPACK_ERR_OPEN;
-+	if (!hdr) self->error = MSPACK_ERR_NOMEMORY;
-+    }
-+    
-+    if (self->error) {
-+	if (fh)  sys->close(fh);
-+	if (hdr) sys->free(hdr);
-+	hdr = NULL;
-+    }
-+
-+    return hdr;
-+}
-+
-+/***************************************
-+ * SZDDD_CLOSE
-+ ***************************************
-+ * closes an SZDD file
-+ */
-+static void szddd_close(struct msszdd_decompressor *base,
-+			struct msszddd_header *hdr)
-+{
-+    struct msszdd_decompressor_p *self = (struct msszdd_decompressor_p *) base;
-+    struct msszddd_header_p *hdr_p = (struct msszddd_header_p *) hdr;
-+
-+    if (!self || !self->system) return;
-+
-+    /* close the file handle associated */
-+    self->system->close(hdr_p->fh);
-+
-+    /* free the memory associated */
-+    self->system->free(hdr);
-+
-+    self->error = MSPACK_ERR_OK;
-+}
-+
-+/***************************************
-+ * SZDDD_READ_HEADERS
-+ ***************************************
-+ * reads the headers of an SZDD format file
-+ */
-+static unsigned char szdd_signature_expand[8] = {
-+    0x53, 0x5A, 0x44, 0x44, 0x88, 0xF0, 0x27, 0x33
-+};
-+static unsigned char szdd_signature_qbasic[8] = {
-+    0x53, 0x5A, 0x20, 0x88, 0xF0, 0x27, 0x33, 0xD1
-+};
-+
-+static int szddd_read_headers(struct mspack_system *sys,
-+			      struct mspack_file *fh,
-+			      struct msszddd_header *hdr)
-+{
-+    unsigned char buf[8];
-+
-+    /* read and check signature */
-+    if (sys->read(fh, buf, 8) != 8) return MSPACK_ERR_READ;
-+
-+    if ((mspack_memcmp(buf, szdd_signature_expand, 8) == 0)) {
-+	/* common SZDD */
-+	hdr->format = MSSZDD_FMT_NORMAL;
-+
-+	/* read the rest of the header */
-+	if (sys->read(fh, buf, 6) != 6) return MSPACK_ERR_READ;
-+	if (buf[0] != 0x41) return MSPACK_ERR_DATAFORMAT;
-+	hdr->missing_char = buf[1];
-+	hdr->length = EndGetI32(&buf[2]);
-+    }
-+    else if ((mspack_memcmp(buf, szdd_signature_qbasic, 8) == 0)) {
-+	/* special QBasic SZDD */
-+	hdr->format = MSSZDD_FMT_QBASIC;
-+	if (sys->read(fh, buf, 4) != 4) return MSPACK_ERR_READ;
-+	hdr->missing_char = '\0';
-+	hdr->length = EndGetI32(buf);
-+    }
-+    else {
-+	return MSPACK_ERR_SIGNATURE;
-+    }
-+    return MSPACK_ERR_OK;
-+}
-+
-+/***************************************
-+ * SZDDD_EXTRACT
-+ ***************************************
-+ * decompresses an SZDD file
-+ */
-+static int szddd_extract(struct msszdd_decompressor *base,
-+			 struct msszddd_header *hdr, const char *filename)
-+{
-+    struct msszdd_decompressor_p *self = (struct msszdd_decompressor_p *) base;
-+    struct mspack_file *fh, *outfh;
-+    struct mspack_system *sys;
-+    off_t data_offset;
-+
-+    if (!self) return MSPACK_ERR_ARGS;
-+    if (!hdr)  return self->error = MSPACK_ERR_ARGS;
-+    sys = self->system;
-+
-+    fh = ((struct msszddd_header_p *) hdr)->fh;
-+
-+    /* seek to the compressed data */
-+    data_offset = (hdr->format == MSSZDD_FMT_NORMAL) ? 14 : 12;
-+    if (sys->seek(fh, data_offset, MSPACK_SYS_SEEK_START)) {
-+	return self->error = MSPACK_ERR_SEEK;
-+    }
-+
-+    /* open file for output */
-+    if (!(outfh = sys->open(sys, filename, MSPACK_SYS_OPEN_WRITE))) {
-+	return self->error = MSPACK_ERR_OPEN;
-+    }
-+
-+    /* decompress the data */
-+    self->error = lzss_decompress(sys, fh, outfh, SZDD_INPUT_SIZE,
-+				  hdr->format == MSSZDD_FMT_NORMAL
-+				  ? LZSS_MODE_EXPAND
-+				  : LZSS_MODE_QBASIC);
-+
-+    /* close output file */
-+    sys->close(outfh);
-+
-+    return self->error;
-+}
-+
-+/***************************************
-+ * SZDDD_DECOMPRESS
-+ ***************************************
-+ * unpacks directly from input to output
-+ */
-+static int szddd_decompress(struct msszdd_decompressor *base,
-+			    const char *input, const char *output)
-+{
-+    struct msszdd_decompressor_p *self = (struct msszdd_decompressor_p *) base;
-+    struct msszddd_header *hdr;
-+    int error;
-+
-+    if (!self) return MSPACK_ERR_ARGS;
-+
-+    if (!(hdr = szddd_open(base, input))) return self->error;
-+    error = szddd_extract(base, hdr, output);
-+    szddd_close(base, hdr);
-+    return self->error = error;
-+}
-+
-+/***************************************
-+ * SZDDD_ERROR
-+ ***************************************
-+ * returns the last error that occurred
-+ */
-+static int szddd_error(struct msszdd_decompressor *base)
-+{
-+    struct msszdd_decompressor_p *self = (struct msszdd_decompressor_p *) base;
-+    return (self) ? self->error : MSPACK_ERR_ARGS;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/cabd_md5.c b/libclamav/libmspack-0.4alpha/test/cabd_md5.c
-new file mode 100644
-index 000000000000..6a00dbda3f0d
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/cabd_md5.c
-@@ -0,0 +1,161 @@
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <mspack.h>
-+#include <sys/stat.h>
-+#include <dirent.h>
-+
-+#include <md5_fh.h>
-+#include <error.h>
-+
-+/**
-+ * Matches a cabinet's filename case-insensitively in the filesystem and
-+ * returns the case-correct form.
-+ *
-+ * @param origcab if this is non-NULL, the pathname part of this filename
-+ *                will be extracted, and the search will be conducted in
-+ *                that directory.
-+ * @param cabname the internal CAB filename to search for.
-+ * @return a copy of the full, case-correct filename of the given cabinet
-+ *         filename, or NULL if the specified filename does not exist on disk.
-+ */
-+static char *find_cabinet_file(char *origcab, char *cabname) {
-+    struct dirent *entry;
-+    struct stat st_buf;
-+    int found = 0, len;
-+    char *tail, *cab;
-+    DIR *dir;
-+
-+    /* ensure we have a cabinet name at all */
-+    if (!cabname || !cabname[0]) return NULL;
-+
-+    /* find if there's a directory path in the origcab */
-+    tail = origcab ? strrchr(origcab, '/') : NULL;
-+    len = (tail - origcab) + 1;
-+
-+    /* allocate memory for our copy */
-+    if (!(cab = (char *) malloc((tail ? len : 2) + strlen(cabname) + 1))) return NULL;
-+
-+    /* add the directory path from the original cabinet name, or "." */
-+    if (tail) memcpy(cab, origcab, (size_t) len);
-+    else      cab[0]='.', cab[1]='/', len=2;
-+    cab[len] = '\0';
-+
-+    /* try accessing the cabinet with its current name (case-sensitive) */
-+    strcpy(&cab[len], cabname);
-+    if (stat(cab, &st_buf) == 0) {
-+	found = 1;
-+    }
-+    else {
-+	/* cabinet was not found, look for it in the current dir */
-+	cab[len] = '\0';
-+	if ((dir = opendir(cab))) {
-+	    while ((entry = readdir(dir))) {
-+		if (strcasecmp(cabname, entry->d_name) == 0) {
-+		    strcat(cab, entry->d_name);
-+		    found = (stat(cab, &st_buf) == 0);
-+		    break;
-+		}
-+	    }
-+	    closedir(dir);
-+	}
-+    }
-+
-+    if (!found || !S_ISREG(st_buf.st_mode)) {
-+	/* cabinet not found, or not a regular file */
-+	free(cab);
-+	cab = NULL;
-+    }
-+
-+    return cab;
-+}
-+
-+
-+int main(int argc, char *argv[]) {
-+    struct mscab_decompressor *cabd;
-+    struct mscabd_cabinet *cab, *c, *c2;
-+    struct mscabd_file *file;
-+    char *cabname, *newname;
-+    int err;
-+
-+    setbuf(stdout, NULL);
-+    setbuf(stderr, NULL);
-+
-+    /* if self-test reveals an error */
-+    MSPACK_SYS_SELFTEST(err);
-+    if (err) return 1;
-+
-+    if (!(cabd = mspack_create_cab_decompressor(&read_files_write_md5))) {
-+	fprintf(stderr, "can't make decompressor\n");
-+	return 1;
-+    }
-+
-+    for (argv++; (cabname = *argv); argv++) {
-+	printf("*** %s\n", cabname);
-+
-+	if (!(cab = cabd->open(cabd, cabname))) {
-+	    fprintf(stderr, "cab open error: %s\n", ERROR(cabd));
-+	    continue;
-+	}
-+
-+	/* prepend any spanning cabinets */
-+	for (c = cab; c && (c->flags & MSCAB_HDR_PREVCAB); c = c->prevcab) {
-+	    if (!(newname = find_cabinet_file(cabname, c->prevname))) {
-+		fprintf(stderr, "%s: can't find \"%s\" to prepend\n",
-+			cabname, c->prevname);
-+		break;
-+	    }
-+	    if (!(c2 = cabd->open(cabd, newname))) {
-+		fprintf(stderr, "%s: error opening \"%s\" for prepend: %s\n",
-+			cabname, newname, ERROR(cabd));
-+		break;
-+	    }
-+	    if (cabd->prepend(cabd, c, c2) != MSPACK_ERR_OK) {
-+		fprintf(stderr, "%s: error prepending \"%s\": %s\n",
-+			cabname, newname, ERROR(cabd));
-+		break;
-+	    }
-+	}
-+
-+	/* append any spanning cabinets */
-+	for (c = cab; c && (c->flags & MSCAB_HDR_NEXTCAB); c = c->nextcab) {
-+	    if (!(newname = find_cabinet_file(cabname, c->nextname))) {
-+		fprintf(stderr, "%s: can't find \"%s\" to append\n",
-+			cabname, c->nextname);
-+		break;
-+	    }
-+	    if (!(c2 = cabd->open(cabd, newname))) {
-+		fprintf(stderr, "%s: error opening \"%s\" for append: %s\n",
-+			cabname, newname, ERROR(cabd));
-+		break;
-+	    }
-+	    if (cabd->append(cabd, c, c2) != MSPACK_ERR_OK) {
-+		fprintf(stderr, "%s: error appending \"%s\": %s\n",
-+			cabname, newname, ERROR(cabd));
-+		break;
-+	    }
-+	}
-+
-+	/* extract files */
-+	for (file = cab->files; file; file = file->next ) {
-+	    if (cabd->extract(cabd, file, NULL) == MSPACK_ERR_OK) {
-+		printf("%s  %s\n", md5_string, file->filename);
-+	    }
-+	    else {
-+		fprintf(stderr, "%s: error extracting \"%s\": %s\n",
-+			cabname, file->filename, ERROR(cabd));
-+	    }
-+	}
-+
-+	/* free all resources */
-+	for (c2 = cab->prevcab; c2; c2 = c2->prevcab) free((void*)c2->filename);
-+	for (c2 = cab->nextcab; c2; c2 = c2->nextcab) free((void*)c2->filename);
-+	cabd->close(cabd, cab);
-+    }
-+    mspack_destroy_cab_decompressor(cabd);
-+    return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/cabd_memory.c b/libclamav/libmspack-0.4alpha/test/cabd_memory.c
-new file mode 100644
-index 000000000000..f7a78972c8e4
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/cabd_memory.c
-@@ -0,0 +1,179 @@
-+/* An implementation of the mspack_system interface using only memory */
-+
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <mspack.h>
-+
-+/* use a pointer to a mem_buf structure as "filenames" */
-+struct mem_buf {
-+  void *data;
-+  size_t length;
-+};
-+
-+struct mem_file {
-+  char *data;
-+  size_t length, posn;
-+};
-+
-+static void *mem_alloc(struct mspack_system *self, size_t bytes) {
-+  /* put your memory allocator here */
-+  return malloc(bytes);
-+}
-+
-+static void mem_free(void *buffer) {
-+  /* put your memory deallocator here */
-+  free(buffer);
-+}
-+
-+static void mem_copy(void *src, void *dest, size_t bytes) {
-+  /* put your own memory copy routine here */
-+  memcpy(dest, src, bytes);
-+}
-+
-+static void mem_msg(struct mem_file *file, const char *format, ...) {
-+  /* put your own printf-type routine here, or leave it empty */
-+}
-+
-+static struct mem_file *mem_open(struct mspack_system *self,
-+				 struct mem_buf *fn, int mode)
-+{
-+  struct mem_file *fh;
-+  if (!fn || !fn->data || !fn->length) return NULL;
-+  if ((fh = (struct mem_file *) mem_alloc(self, sizeof(struct mem_file)))) {
-+    fh->data   = (char *) fn->data;
-+    fh->length = fn->length;
-+    fh->posn   = (mode == MSPACK_SYS_OPEN_APPEND) ? fn->length : 0;
-+  }
-+  return fh;
-+}
-+
-+static void mem_close(struct mem_file *fh) {
-+  if (fh) mem_free(fh);
-+}
-+
-+static int mem_read(struct mem_file *fh, void *buffer, int bytes) {
-+  int todo;
-+  if (!fh || !buffer || bytes < 0) return -1;
-+  todo = fh->length - fh->posn;
-+  if (todo > bytes) todo = bytes;
-+  if (todo > 0) mem_copy(&fh->data[fh->posn], buffer, (size_t) todo);
-+  fh->posn += todo; return todo;
-+}
-+
-+static int mem_write(struct mem_file *fh, void *buffer, int bytes) {
-+  int todo;
-+  if (!fh || !buffer || bytes < 0) return -1;
-+  todo = fh->length - fh->posn;
-+  if (todo > bytes) todo = bytes;
-+  if (todo > 0) mem_copy(buffer, &fh->data[fh->posn], (size_t) todo);
-+  fh->posn += todo; return todo;
-+}
-+
-+static int mem_seek(struct mem_file *fh, off_t offset, int mode) {
-+  if (!fh) return 1;
-+  switch (mode) {
-+  case MSPACK_SYS_SEEK_START: break;
-+  case MSPACK_SYS_SEEK_CUR:   offset += (off_t) fh->posn; break;
-+  case MSPACK_SYS_SEEK_END:   offset += (off_t) fh->length; break;
-+  default: return 1;
-+  }
-+  if ((offset < 0) || (offset > (off_t) fh->length)) return 1;
-+  fh->posn = (size_t) offset;
-+  return 0;
-+}
-+
-+static off_t mem_tell(struct mem_file *fh) {
-+  return (fh) ? (off_t) fh->posn : -1;
-+}
-+
-+static struct mspack_system mem_system = {
-+  (struct mspack_file * (*)(struct mspack_system *, const char *, int)) &mem_open,
-+  (void (*)(struct mspack_file *)) &mem_close,
-+  (int (*)(struct mspack_file *, void *, int)) &mem_read, 
-+  (int (*)(struct mspack_file *, void *, int)) &mem_write,
-+  (int (*)(struct mspack_file *, off_t, int)) &mem_seek, 
-+  (off_t (*)(struct mspack_file *)) &mem_tell,
-+  (void (*)(struct mspack_file *, const char *, ...)) &mem_msg,
-+  &mem_alloc,
-+  &mem_free,
-+  &mem_copy,
-+  NULL
-+};
-+
-+/* example of usage with mscab_decompressor */
-+
-+/* a simple cabinet */
-+static unsigned char embedded_cab[] = {
-+  0x4D,0x53,0x43,0x46,0x00,0x00,0x00,0x00,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,
-+  0x00,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x01,0x00,0x02,0x00,
-+  0x00,0x00,0x22,0x06,0x00,0x00,0x5E,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4D,
-+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x22,0xBA,0x59,0x20,0x00,
-+  0x68,0x65,0x6C,0x6C,0x6F,0x2E,0x63,0x00,0x4A,0x00,0x00,0x00,0x4D,0x00,0x00,
-+  0x00,0x00,0x00,0x6C,0x22,0xE7,0x59,0x20,0x00,0x77,0x65,0x6C,0x63,0x6F,0x6D,
-+  0x65,0x2E,0x63,0x00,0xBD,0x5A,0xA6,0x30,0x97,0x00,0x97,0x00,0x23,0x69,0x6E,
-+  0x63,0x6C,0x75,0x64,0x65,0x20,0x3C,0x73,0x74,0x64,0x69,0x6F,0x2E,0x68,0x3E,
-+  0x0D,0x0A,0x0D,0x0A,0x76,0x6F,0x69,0x64,0x20,0x6D,0x61,0x69,0x6E,0x28,0x76,
-+  0x6F,0x69,0x64,0x29,0x0D,0x0A,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x70,0x72,
-+  0x69,0x6E,0x74,0x66,0x28,0x22,0x48,0x65,0x6C,0x6C,0x6F,0x2C,0x20,0x77,0x6F,
-+  0x72,0x6C,0x64,0x21,0x5C,0x6E,0x22,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x23,
-+  0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x20,0x3C,0x73,0x74,0x64,0x69,0x6F,0x2E,
-+  0x68,0x3E,0x0D,0x0A,0x0D,0x0A,0x76,0x6F,0x69,0x64,0x20,0x6D,0x61,0x69,0x6E,
-+  0x28,0x76,0x6F,0x69,0x64,0x29,0x0D,0x0A,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,
-+  0x70,0x72,0x69,0x6E,0x74,0x66,0x28,0x22,0x57,0x65,0x6C,0x63,0x6F,0x6D,0x65,
-+  0x21,0x5C,0x6E,0x22,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A
-+};
-+
-+int main() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+  struct mscabd_file *file;
-+  struct mem_buf source = { &embedded_cab[0], sizeof(embedded_cab) };
-+  struct mem_buf output;
-+  int err;
-+
-+  /* if self-test reveals an error */
-+  MSPACK_SYS_SELFTEST(err);
-+  if (err) return 1;
-+
-+  /* create a cab decompressor using our custom mspack_system interface */
-+  if ((cabd = mspack_create_cab_decompressor(&mem_system))) {
-+
-+    /* open a cab file direct from memory */
-+    if ((cab = cabd->open(cabd, (char *) &source))) {
-+
-+      /* for all files */
-+      for (file = cab->files; file; file = file->next) {
-+	/* fill out our "filename" (memory pointer and length) */
-+	output.data = (char *) malloc(file->length);
-+	output.length = file->length;
-+
-+	/* let cabd extract this file to our memory buffer */
-+	if (output.data && cabd->extract(cabd, file, (char *) &output)) {
-+	  exit(1);
-+	}
-+
-+	/* dump the memory buffer to stdout (for display purposes) */
-+	printf("Filename: %s\nContents:\n", file->filename);
-+	fwrite(output.data, 1, output.length, stdout);
-+
-+	/* free our buffer */
-+	free(output.data);
-+      }
-+      cabd->close(cabd, cab);
-+    }
-+    else {
-+      fprintf(stderr, "can't open cabinet (%d)\n", cabd->last_error(cabd));
-+    }
-+    mspack_destroy_cab_decompressor(cabd);
-+  }
-+  else {
-+    fprintf(stderr, "can't make decompressor\n");
-+  }
-+  return 0;
-+
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/cabd_test.c b/libclamav/libmspack-0.4alpha/test/cabd_test.c
-new file mode 100644
-index 000000000000..5e8851ce9f0e
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/cabd_test.c
-@@ -0,0 +1,386 @@
-+/* cabinet decompression regression test suite */
-+
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <mspack.h>
-+
-+unsigned int test_count = 0;
-+
-+#define TEST(x) do {\
-+  test_count++; \
-+  if (!(x)) {printf("%s:%d FAILED %s\n",__FUNCTION__,__LINE__,#x);exit(1);} \
-+} while (0)
-+
-+/* open where cab file doesn't exist */
-+void cabd_open_test_01() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  cab = cabd->open(cabd, "!!!FILE_WHICH_DOES_NOT_EXIST");
-+  TEST(cab == NULL);
-+  TEST(cabd->last_error(cabd) == MSPACK_ERR_OPEN);
-+
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+
-+/* normal cab file with 2 files and one folder.
-+ * check ALL headers are read correctly */
-+void cabd_open_test_02() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+  struct mscabd_folder *folder;
-+  struct mscabd_file *file;
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  cab = cabd->open(cabd, "test_files/cabd/normal_2files_1folder.cab");
-+  TEST(cab != NULL);
-+
-+  TEST(cab->next == NULL);
-+  TEST(cab->base_offset == 0);
-+  TEST(cab->length == 253);
-+  TEST(cab->prevcab == NULL); TEST(cab->nextcab == NULL);
-+  TEST(cab->prevname == NULL); TEST(cab->nextname == NULL);
-+  TEST(cab->previnfo == NULL); TEST(cab->nextinfo == NULL);
-+  TEST(cab->set_id = 1570); TEST(cab->set_index == 0);
-+  TEST(cab->header_resv == 0);
-+  TEST(cab->flags == 0);
-+
-+  folder = cab->folders;
-+  TEST(folder != NULL);
-+  TEST(folder->next == NULL);
-+  TEST(folder->comp_type == 0);
-+  TEST(folder->num_blocks == 1);
-+
-+  file = cab->files;
-+  TEST(file != NULL);
-+  TEST(strcmp(file->filename, "hello.c") == 0);
-+  TEST(file->length == 77);
-+  TEST(file->attribs == 0x20);
-+  TEST(file->time_h == 11);TEST(file->time_m == 13);TEST(file->time_s == 52);
-+  TEST(file->date_d == 12);TEST(file->date_m == 3);TEST(file->date_y == 1997);
-+  TEST(file->folder == folder); TEST(file->offset == 0);
-+
-+  file = file->next;
-+  TEST(file != NULL);
-+  TEST(strcmp(file->filename, "welcome.c") == 0);
-+  TEST(file->length == 74);
-+  TEST(file->attribs == 0x20);
-+  TEST(file->time_h == 11);TEST(file->time_m == 15);TEST(file->time_s == 14);
-+  TEST(file->date_d == 12);TEST(file->date_m == 3);TEST(file->date_y == 1997);
-+  TEST(file->folder == folder); TEST(file->offset == 77);
-+
-+  cabd->close(cabd, cab);
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+
-+/* cabs with reserve headers set, ensure they all load correctly */
-+void cabd_open_test_03() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+  unsigned int i;
-+  const char *files[] = {
-+    "test_files/cabd/reserve_---.cab",
-+    "test_files/cabd/reserve_--D.cab",
-+    "test_files/cabd/reserve_-F-.cab",
-+    "test_files/cabd/reserve_-FD.cab",
-+    "test_files/cabd/reserve_H--.cab",
-+    "test_files/cabd/reserve_H-D.cab",
-+    "test_files/cabd/reserve_HF-.cab",
-+    "test_files/cabd/reserve_HFD.cab"
-+  };
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  for (i = 0; i < (sizeof(files)/sizeof(char *)); i++) {
-+    cab = cabd->open(cabd, files[i]);
-+    TEST(cab != NULL);
-+    TEST(cab->files != NULL);
-+    TEST(cab->files->next != NULL);
-+    TEST(strcmp(cab->files->filename, "test1.txt") == 0);
-+    TEST(strcmp(cab->files->next->filename, "test2.txt") == 0);
-+    cabd->close(cabd, cab);
-+  }
-+
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+
-+/* some bad cabs, should not load */
-+void cabd_open_test_04() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  /* cab has enough data for a header, but does not contain real cab data
-+   * result should be MSPACK_ERR_SIGNATURE */
-+  cab = cabd->open(cabd, "test_files/cabd/bad_signature.cab");
-+  TEST(cab == NULL);
-+
-+  /* cab has 0 folders */
-+  cab = cabd->open(cabd, "test_files/cabd/bad_nofolders.cab");
-+  TEST(cab == NULL);
-+
-+  /* cab has 0 files */
-+  cab = cabd->open(cabd, "test_files/cabd/bad_nofiles.cab");
-+  TEST(cab == NULL);
-+
-+  /* second file in the cab has a folder index for a non-existant folder */
-+  cab = cabd->open(cabd, "test_files/cabd/bad_folderindex.cab");
-+  TEST(cab == NULL);
-+
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+
-+/* cabs which have been cut short
-+ * result should be MSPACK_ERR_READ for missing headers or
-+ * MSPACK_ERR_DATAFORMAT for missing/partial strings.
-+ * If only data blocks are missing, the cab should open()
-+ */
-+void cabd_open_test_05() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+  unsigned int i;
-+  const char *files[] = {
-+    "test_files/cabd/partial_shortheader.cab",
-+    "test_files/cabd/partial_shortextheader.cab",
-+    "test_files/cabd/partial_nofolder.cab",
-+    "test_files/cabd/partial_shortfolder.cab",
-+    "test_files/cabd/partial_nofiles.cab",
-+    "test_files/cabd/partial_shortfile1.cab",
-+    "test_files/cabd/partial_shortfile2.cab"
-+  };
-+  const char *str_files[] = {
-+    "test_files/cabd/partial_str_nopname.cab",
-+    "test_files/cabd/partial_str_shortpname.cab",
-+    "test_files/cabd/partial_str_nopinfo.cab",
-+    "test_files/cabd/partial_str_shortpinfo.cab",
-+    "test_files/cabd/partial_str_nonname.cab",
-+    "test_files/cabd/partial_str_shortnname.cab",
-+    "test_files/cabd/partial_str_noninfo.cab",
-+    "test_files/cabd/partial_str_shortninfo.cab",
-+    "test_files/cabd/partial_str_nofname.cab",
-+    "test_files/cabd/partial_str_shortfname.cab",
-+  };
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  for (i = 0; i < (sizeof(files)/sizeof(char *)); i++) {
-+    cab = cabd->open(cabd, files[i]);
-+    TEST(cab == NULL);
-+    TEST(cabd->last_error(cabd) == MSPACK_ERR_READ);
-+  }
-+
-+  for (i = 0; i < (sizeof(str_files)/sizeof(char *)); i++) {
-+    cab = cabd->open(cabd, str_files[i]);
-+    TEST(cab == NULL);
-+    TEST(cabd->last_error(cabd) == MSPACK_ERR_DATAFORMAT);
-+  }
-+
-+  /* lack of data blocks should NOT be a problem for merely reading */
-+  cab = cabd->open(cabd, "test_files/cabd/partial_nodata.cab");
-+  TEST(cab != NULL);
-+
-+  cabd->close(cabd, cab);
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+
-+/* open cab with 255 character filename (maximum allowed) */
-+void cabd_open_test_06() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  cab = cabd->open(cabd, "test_files/cabd/normal_255c_filename.cab");
-+  TEST(cab != NULL);
-+
-+  cabd->close(cabd, cab);
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+
-+
-+/* open where search file doesn't exist */
-+void cabd_search_test_01() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  cab = cabd->search(cabd, "!!!FILE_WHICH_DOES_NOT_EXIST");
-+  TEST(cab == NULL);
-+  TEST(cabd->last_error(cabd) == MSPACK_ERR_OPEN);
-+
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+  
-+/* search file using 1-byte buffer */
-+void cabd_search_test_02() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  cabd->set_param(cabd, MSCABD_PARAM_SEARCHBUF, 1);
-+  cab = cabd->search(cabd, "test_files/cabd/search_basic.cab");
-+  cabd->set_param(cabd, MSCABD_PARAM_SEARCHBUF, 32768);
-+
-+  TEST(cab != NULL);
-+  TEST(cab->files != NULL);
-+  TEST(cab->base_offset == 6);
-+  TEST(cab->files->next != NULL);
-+  TEST(strcmp(cab->files->filename, "hello.c") == 0);
-+  TEST(strcmp(cab->files->next->filename, "welcome.c") == 0);
-+
-+  TEST(cab->next != NULL);
-+  TEST(cab->next->base_offset == 265);
-+  TEST(cab->next->files != NULL);
-+  TEST(cab->next->files->next != NULL);
-+  TEST(strcmp(cab->next->files->filename, "hello.c") == 0);
-+  TEST(strcmp(cab->next->files->next->filename, "welcome.c") == 0);
-+
-+  TEST(cab->next->next == NULL);
-+
-+  cabd->close(cabd, cab);
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+
-+/* tricky searches */
-+void cabd_search_test_03() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  /* there is only ONE cab in this file. it is prepended by 4 bytes, "MSCF"
-+   * (heh) and reserved fields in the real cab are filled in so the fake one
-+   * looks real to the scanner but not the real reader
-+   */
-+  cab = cabd->search(cabd, "test_files/cabd/search_tricky1.cab");
-+  TEST(cab != NULL);
-+  TEST(cab->next == NULL);
-+  TEST(cab->files != NULL);
-+  TEST(cab->base_offset == 4);
-+  TEST(cab->files->next != NULL);
-+  TEST(strcmp(cab->files->filename, "hello.c") == 0);
-+  TEST(strcmp(cab->files->next->filename, "welcome.c") == 0);
-+
-+  cabd->close(cabd, cab);
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+
-+/* basic parameter failures */
-+void cabd_merge_test_01() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab1, *cab2;
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  cab1 = cabd->open(cabd, "test_files/cabd/multi_basic_pt1.cab");
-+  cab2 = cabd->open(cabd, "test_files/cabd/multi_basic_pt2.cab");
-+  TEST(cab1 != NULL);
-+  TEST(cab2 != NULL);
-+  TEST(cabd->append(cabd,  cab1, NULL) != MSPACK_ERR_OK);
-+  TEST(cabd->append(cabd,  NULL, cab1) != MSPACK_ERR_OK);
-+  TEST(cabd->append(cabd,  cab1, cab1) != MSPACK_ERR_OK);
-+  TEST(cabd->prepend(cabd, cab1, NULL) != MSPACK_ERR_OK);
-+  TEST(cabd->prepend(cabd, NULL, cab1) != MSPACK_ERR_OK);
-+  TEST(cabd->prepend(cabd, cab1, cab1) != MSPACK_ERR_OK);
-+
-+  /* merge cabs, then try merging again every other way */
-+  TEST(cabd->append(cabd,  cab1, cab2) == MSPACK_ERR_OK);
-+  TEST(cabd->append(cabd,  cab2, cab1) != MSPACK_ERR_OK);
-+  TEST(cabd->prepend(cabd, cab1, cab2) != MSPACK_ERR_OK);
-+  TEST(cabd->prepend(cabd, cab2, cab1) != MSPACK_ERR_OK);
-+  TEST(cabd->append(cabd,  cab1, cab2) != MSPACK_ERR_OK);
-+
-+  cabd->close(cabd, cab1);
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+  
-+/* test merging a normal 5 part single folder cabinet set with slightly
-+ * haphazard ordering.  should still merge fine */
-+void cabd_merge_test_02() {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab[5];
-+
-+  cabd = mspack_create_cab_decompressor(NULL);
-+  TEST(cabd != NULL);
-+
-+  cab[0] = cabd->open(cabd, "test_files/cabd/multi_basic_pt1.cab");
-+  cab[1] = cabd->open(cabd, "test_files/cabd/multi_basic_pt2.cab");
-+  cab[2] = cabd->open(cabd, "test_files/cabd/multi_basic_pt3.cab");
-+  cab[3] = cabd->open(cabd, "test_files/cabd/multi_basic_pt4.cab");
-+  cab[4] = cabd->open(cabd, "test_files/cabd/multi_basic_pt5.cab");
-+  TEST(cab[0] != NULL);
-+  TEST(cab[1] != NULL);
-+  TEST(cab[2] != NULL);
-+  TEST(cab[3] != NULL);
-+  TEST(cab[4] != NULL);
-+  TEST(cabd->append(cabd,  cab[0], cab[1]) == MSPACK_ERR_OK);
-+  TEST(cabd->prepend(cabd, cab[2], cab[1]) == MSPACK_ERR_OK);
-+  TEST(cabd->append(cabd,  cab[3], cab[4]) == MSPACK_ERR_OK);
-+  TEST(cabd->prepend(cabd, cab[3], cab[2]) == MSPACK_ERR_OK);
-+
-+  TEST(cab[0]->files != NULL);
-+  TEST(cab[0]->files->next != NULL);
-+  TEST(cab[0]->files->next->next != NULL);
-+  TEST(cab[0]->files->next->next->next == NULL);
-+  TEST(cab[0]->files == cab[1]->files);
-+  TEST(cab[1]->files == cab[2]->files);
-+  TEST(cab[2]->files == cab[3]->files);
-+  TEST(cab[3]->files == cab[4]->files);
-+
-+  TEST(cab[0]->folders != NULL);
-+  TEST(cab[0]->folders->next == NULL);
-+  TEST(cab[0]->folders == cab[1]->folders);
-+  TEST(cab[1]->folders == cab[2]->folders);
-+  TEST(cab[2]->folders == cab[3]->folders);
-+  TEST(cab[3]->folders == cab[4]->folders);
-+
-+  cabd->close(cabd, cab[0]);
-+  mspack_destroy_cab_decompressor(cabd);
-+}
-+  
-+int main() {
-+  int selftest;
-+
-+  MSPACK_SYS_SELFTEST(selftest);
-+  TEST(selftest == MSPACK_ERR_OK);
-+
-+  cabd_open_test_01();
-+  cabd_open_test_02();
-+  cabd_open_test_03();
-+  cabd_open_test_04();
-+  cabd_open_test_05();
-+  cabd_open_test_06();
-+
-+  cabd_search_test_01();
-+  cabd_search_test_02();
-+  cabd_search_test_03();
-+
-+  cabd_merge_test_01();
-+  cabd_merge_test_02();
-+
-+  /* extract() tests */
-+
-+  printf("ALL %d TESTS PASSED.\n", test_count);
-+  return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/cabrip.c b/libclamav/libmspack-0.4alpha/test/cabrip.c
-new file mode 100644
-index 000000000000..5df9a44b3920
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/cabrip.c
-@@ -0,0 +1,81 @@
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <sys/stat.h>
-+#include <mspack.h>
-+#include <system.h>
-+
-+#define BUF_SIZE (1024*4096)
-+char buf[BUF_SIZE];
-+
-+void rip(char *fname, off_t offset, unsigned int length) {
-+  static unsigned int counter = 1;
-+   struct stat st_buf;
-+  char outname[13];
-+  FILE *in, *out;
-+
-+  do {
-+    snprintf(outname, 13, "%08u.cab", counter++);
-+  } while (stat(outname, &st_buf) == 0);
-+
-+  printf("ripping %s offset %" LD " length %u to %s\n",
-+	 fname, offset, length, outname);
-+
-+  if ((in = fopen(fname, "rb"))) {
-+#ifdef HAVE_FSEEKO
-+    if (!fseeko(in, offset, SEEK_SET)) {
-+#else
-+    if (!fseek(in, offset, SEEK_SET)) {
-+#endif
-+      if ((out = fopen(outname, "wb"))) {
-+	while (length > 0) {
-+	  unsigned int run = BUF_SIZE;
-+	  if (run > length) run = length;
-+	  if (fread(&buf[0], 1, run, in) != run) {
-+	    perror(fname);
-+	    break;
-+	  }
-+	  if (fwrite(&buf[0], 1, run, out) != run) {
-+	    perror(outname);
-+	    break;
-+	  }
-+	  length -= run;
-+	}
-+	fclose(out);
-+      }
-+      else {
-+	perror(outname);
-+      }
-+    }
-+    else {
-+      perror(fname);
-+    }
-+    fclose(in);
-+  }
-+  else {
-+    perror(fname);
-+  }
-+}
-+
-+int main(int argc, char *argv[]) {
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab, *c;
-+  int err;
-+
-+  MSPACK_SYS_SELFTEST(err);
-+  if (err) return 0;
-+
-+  if ((cabd = mspack_create_cab_decompressor(NULL))) {
-+    for (argv++; *argv; argv++) {
-+      if ((cab = cabd->search(cabd, *argv))) {
-+	for (c = cab; c; c = c->next) rip(*argv, c->base_offset, c->length);
-+	cabd->close(cabd, cab);
-+      }
-+    }
-+    mspack_destroy_cab_decompressor(cabd);
-+  }
-+  return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/chmd_find.c b/libclamav/libmspack-0.4alpha/test/chmd_find.c
-new file mode 100644
-index 000000000000..c30a972c57d8
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/chmd_find.c
-@@ -0,0 +1,95 @@
-+/* chmd_find: tests fast-find functionality
-+ */
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <mspack.h>
-+
-+#include <error.h>
-+#include <system.h>
-+
-+void find(struct mschm_decompressor *chmd, struct mschmd_header *chm,
-+	  char *archive, char *filename, struct mschmd_file *compare)
-+{
-+    struct mschmd_file result;
-+    if (chmd->fast_find(chmd, chm, filename, &result, sizeof(result))) {
-+	fprintf(stderr, "%s: find error on \"%s\": %s\n",
-+		archive, filename, ERROR(chmd));
-+    }
-+    else if (!result.section) {
-+	if (compare) {
-+	    fprintf(stderr, "%s: file \"%s\" not found\n", archive, filename);
-+	}
-+	else {
-+	    printf("%s: file \"%s\" not found\n", archive, filename);
-+	}
-+    }
-+    else {
-+	printf("%s\n", filename);
-+	printf(" section: %d\n", result.section->id);
-+	printf(" offset:  %" LD "\n", result.offset);
-+	printf(" length:  %" LD "\n", result.length);
-+	if (compare) {
-+	    if (result.section->id != compare->section->id) {
-+		fprintf(stderr, "%s: found file \"%s\" section is wrong "
-+			"(%d vs %d)\n", archive, filename,
-+			result.section->id, compare->section->id);
-+	    }
-+
-+	    if (result.offset != compare->offset) {
-+		fprintf(stderr, "%s: found file \"%s\" offset is wrong "
-+			"(%" LD " vs %" LD ")\n", archive, filename,
-+			result.offset, compare->offset);
-+	    }
-+
-+	    if (result.length != compare->length) {
-+		fprintf(stderr, "%s: found file \"%s\" length is wrong "
-+			"(%" LD " vs %" LD ")\n", archive, filename,
-+			result.length, compare->length);
-+	    }
-+	}
-+    }
-+}
-+
-+int main(int argc, char *argv[]) {
-+    struct mschm_decompressor *chmd;
-+    struct mschmd_header *chm, *chm2;
-+    unsigned int i;
-+
-+    if (argc < 2 || argc > 3) {
-+	printf("Usage: %s <file.chm> [filename to find]\n", argv[0]);
-+	return 1;
-+    }
-+
-+    MSPACK_SYS_SELFTEST(i);
-+    if (i) return 0;
-+
-+    if ((chmd = mspack_create_chm_decompressor(NULL))) {
-+	if ((chm = chmd->fast_open(chmd, argv[1]))) {
-+	    if (argv[2]) {
-+		find(chmd, chm, argv[1], argv[2], NULL);
-+	    }
-+	    else {
-+		if ((chm2 = chmd->open(chmd, argv[1]))) {
-+		    struct mschmd_file *file;
-+		    for (file = chm2->files; file; file = file->next) {
-+			find(chmd, chm, argv[1], file->filename, file);
-+		    }
-+		}
-+		else {
-+		    printf("%s: can't open -- %s\n", argv[1], ERROR(chmd));
-+		}
-+	    }
-+	    chmd->close(chmd, chm);
-+	}
-+	else {
-+	    printf("%s: can't open -- %s\n", argv[1], ERROR(chmd));
-+	}
-+	mspack_destroy_chm_decompressor(chmd);
-+    }
-+    return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/chmd_md5.c b/libclamav/libmspack-0.4alpha/test/chmd_md5.c
-new file mode 100644
-index 000000000000..6187fa460914
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/chmd_md5.c
-@@ -0,0 +1,67 @@
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <mspack.h>
-+
-+#include <md5_fh.h>
-+#include <error.h>
-+
-+static int sortfunc(const void *a, const void *b) {
-+  off_t diff = 
-+    ((* ((struct mschmd_file **) a))->offset) -
-+    ((* ((struct mschmd_file **) b))->offset);
-+  return (diff < 0) ? -1 : ((diff > 0) ? 1 : 0);
-+}
-+
-+int main(int argc, char *argv[]) {
-+  struct mschm_decompressor *chmd;
-+  struct mschmd_header *chm;
-+  struct mschmd_file *file, **f;
-+  unsigned int numf, i;
-+  int err;
-+
-+  setbuf(stdout, NULL);
-+  setbuf(stderr, NULL);
-+
-+  MSPACK_SYS_SELFTEST(err);
-+  if (err) return 0;
-+
-+  if ((chmd = mspack_create_chm_decompressor(&read_files_write_md5))) {
-+    for (argv++; *argv; argv++) {
-+      printf("*** %s\n", *argv);
-+      if ((chm = chmd->open(chmd, *argv))) {
-+
-+	/* extract in order of the offset into content section - faster */
-+	for (numf=0, file=chm->files; file; file = file->next) numf++;
-+	if ((f = (struct mschmd_file **) calloc(numf, sizeof(struct mschmd_file *)))) {
-+	  for (i=0, file=chm->files; file; file = file->next) f[i++] = file;
-+	  qsort(f, numf, sizeof(struct mschmd_file *), &sortfunc);
-+	  for (i = 0; i < numf; i++) {
-+	    if (chmd->extract(chmd, f[i], NULL)) {
-+	      fprintf(stderr, "%s: extract error on \"%s\": %s\n",
-+		      *argv, f[i]->filename, ERROR(chmd));
-+	    }
-+	    else {
-+	      printf("%s %s\n", md5_string, f[i]->filename);
-+            }
-+	  }
-+	  free(f);
-+	}
-+
-+	chmd->close(chmd, chm);
-+      }
-+      else {
-+	fprintf(stderr, "%s: can't open -- %s\n", *argv, ERROR(chmd));
-+      }
-+    }
-+    mspack_destroy_chm_decompressor(chmd);
-+  }
-+  else {
-+    fprintf(stderr, "%s: can't make CHM decompressor\n", *argv);
-+  }
-+  return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/chmd_order.c b/libclamav/libmspack-0.4alpha/test/chmd_order.c
-new file mode 100644
-index 000000000000..cb7f47d0e99f
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/chmd_order.c
-@@ -0,0 +1,144 @@
-+/* chmd_order: test that extracting a CHM file in different ways works
-+ * and all give the same results:
-+ * - extracting files in the order they're listed (generally alphabetical)
-+ * - extracting files ordered by their content section offset
-+ * - extracting files using fast_find() to find them
-+ * - extracting files from two chms at the same time with one decompressor
-+ */
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <mspack.h>
-+
-+#include <md5_fh.h>
-+#include <error.h>
-+
-+struct my_file {
-+    struct mschmd_file *file;
-+    struct mschmd_file result;
-+    char ordered[32], sorted[32], fast_find[32], mixed[32];
-+};
-+
-+static int sortfunc(const void *a, const void *b) {
-+  off_t diff =
-+    ((struct my_file *) a)->file->offset -
-+    ((struct my_file *) b)->file->offset;
-+  return (diff < 0) ? -1 : ((diff > 0) ? 1 : 0);
-+}
-+
-+int main(int argc, char *argv[]) {
-+    struct mschm_decompressor *chmd;
-+    struct mschmd_header *chm, *chm2;
-+    struct mschmd_file *file;
-+    struct my_file *f;
-+    unsigned int N, i;
-+
-+    MSPACK_SYS_SELFTEST(i);
-+    if (i) return 0;
-+
-+    if ((chmd = mspack_create_chm_decompressor(&read_files_write_md5))) {
-+	for (argv++; *argv; argv++) {
-+	    printf("%s\n", *argv);
-+
-+	    if ((chm = chmd->open(chmd, *argv))) {
-+		if ((chm2 = chmd->fast_open(chmd, *argv))) {
-+
-+		    /* count the number of files, allocate a results structure */
-+		    for (N=0, file = chm->files; file; file = file->next) N++;
-+		    if ((f = (struct my_file *) calloc(N, sizeof(struct my_file)))) {
-+			
-+			/* fill out results structure while doing ordered extraction */
-+			for (i = 0, file = chm->files; file; file = file->next, i++) {
-+			    printf("OX %s\n", file->filename);
-+			    f[i].file = file;
-+			    if (chmd->extract(chmd, file, NULL)) {
-+				fprintf(stderr, "%s: O extract error on \"%s\": %s\n",
-+					*argv, file->filename, ERROR(chmd));
-+				continue;
-+			    }
-+			    memcpy(&f[i].ordered[0], md5_string, 32);
-+			}
-+
-+			/* sort the list into offset order */
-+			qsort(f, N, sizeof(struct my_file), &sortfunc);
-+
-+			/* extract in offset order */
-+			for (i = 0; i < N; i++) {
-+			    printf("SX %s\n", f[i].file->filename);
-+			    if (chmd->extract(chmd, f[i].file, NULL)) {
-+				fprintf(stderr, "%s: S extract error on \"%s\": %s\n",
-+					*argv, f[i].file->filename, ERROR(chmd));
-+				continue;
-+			    }
-+			    memcpy(&f[i].sorted[0], md5_string, 32);
-+			}
-+
-+			/* extract using fast_find */
-+			for (i = 0; i < N; i++) {
-+			    printf("FX %s\n", f[i].file->filename);
-+			    
-+			    if (chmd->fast_find(chmd, chm2,
-+                                f[i].file->filename,
-+				&f[i].result, sizeof(struct mschmd_file)))
-+			    {
-+				fprintf(stderr, "%s: find error on \"%s\": %s\n",
-+					*argv, f[i].file->filename, ERROR(chmd));
-+				continue;
-+			    }
-+			    if (!f[i].result.section) {
-+				fprintf(stderr, "%s: can't find file \"%s\"\n",
-+					*argv, f[i].file->filename);
-+				continue;
-+			    }
-+			    if (chmd->extract(chmd, &f[i].result, NULL)) {
-+				fprintf(stderr, "%s: F extract error on \"%s\": %s\n",
-+					*argv, f[i].file->filename, ERROR(chmd));
-+				continue;
-+			    }
-+			    memcpy(&f[i].fast_find[0], md5_string, 32);
-+			}
-+
-+			/* extract two chms at once */
-+			for (i = 0; i < N; i++) {
-+			    printf("MX %s\n", f[i].file->filename);
-+			    chmd->extract(chmd, f[i].file, NULL);
-+			    if (chmd->extract(chmd, &f[i].result, NULL)) {
-+				fprintf(stderr, "%s: M extract error on \"%s\": %s\n",
-+					*argv, f[i].file->filename, ERROR(chmd));
-+				continue;
-+			    }
-+			    memcpy(&f[i].mixed[0], md5_string, 32);
-+			}
-+
-+			/* check all the MD5 sums match */
-+			for (i = 0; i < N; i++) {
-+			    if (memcmp(&f[i].ordered, &f[i].sorted,    32) ||
-+				memcmp(&f[i].ordered, &f[i].fast_find, 32) ||
-+				memcmp(&f[i].ordered, &f[i].mixed,     32))
-+			     {
-+				 fprintf(stderr, "%s: sums mismatch on %s "
-+					 "(O=%32.32s,S=%32.32s,F=%32.32s,M=%32.32s)\n",
-+					 *argv, f[i].file->filename,
-+					 &f[i].ordered[0], &f[i].sorted[0],
-+					 &f[i].fast_find[0], &f[i].mixed[0]);
-+			     }
-+			}
-+
-+			free(f);
-+		    }
-+		    chmd->close(chmd, chm2);
-+		}
-+		chmd->close(chmd, chm);
-+	    }
-+	    else {
-+		printf("%s: can't open -- %s\n", *argv, ERROR(chmd));
-+	    }
-+	}
-+	mspack_destroy_chm_decompressor(chmd);
-+    }
-+    return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/chminfo.c b/libclamav/libmspack-0.4alpha/test/chminfo.c
-new file mode 100644
-index 000000000000..b21ec6427b42
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/chminfo.c
-@@ -0,0 +1,284 @@
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <mspack.h>
-+#include <system.h>
-+
-+#define FILENAME ".chminfo-temp"
-+
-+unsigned char *load_sys_data(struct mschm_decompressor *chmd,
-+                             struct mschmd_header *chm,
-+			     const char *filename,
-+			     off_t *length_ptr)
-+{
-+  struct mschmd_file *file;
-+  unsigned char *data;
-+  FILE *fh;
-+
-+  for (file = chm->sysfiles; file; file = file->next) {
-+    if (strcmp(file->filename, filename) == 0) break;
-+  }
-+  if (!file || file->section->id != 0) return NULL;
-+  if (chmd->extract(chmd, file, FILENAME)) return NULL;
-+  if (length_ptr) *length_ptr = file->length;
-+  if (!(data = (unsigned char *) malloc((size_t) file->length))) return NULL;
-+  if ((fh = fopen(FILENAME, "rb"))) {
-+    fread(data, (size_t) file->length, 1, fh);
-+    fclose(fh);
-+  }
-+  else {
-+    free(data);
-+    data = NULL;
-+  }
-+  unlink(FILENAME);
-+  return data;
-+}
-+
-+char *guid(unsigned char *data) {
-+  static char result[43];
-+  snprintf(result, sizeof(result),
-+           "{%08X-%04X-%04X-%04X-%02X%02X%02X%02X%02X%02X%02X%02X}",
-+           EndGetI32(&data[0]),
-+           data[4] | (data[5] << 8),
-+           data[6] | (data[7] << 8),
-+           data[8] | (data[9] << 8),
-+           data[10], data[11], data[12], data[13],
-+           data[14], data[15], data[16], data[17]);
-+  return result;
-+}
-+
-+#define READ_ENCINT(var, label) do {	       		\
-+    (var) = 0;						\
-+    do {						\
-+	if (p > &chunk[chm->chunk_size-2]) goto label;	\
-+	(var) = ((var) << 7) | (*p & 0x7F);		\
-+    } while (*p++ & 0x80);				\
-+} while (0)
-+
-+void print_dir(struct mschmd_header *chm, char *filename) {
-+  unsigned char dir[0x54], *chunk;
-+  unsigned int i;
-+  FILE *fh;
-+
-+  if (!(chunk = (unsigned char *) malloc(chm->chunk_size))) return;
-+  
-+  if ((fh = fopen(filename, "rb"))) {
-+#ifdef HAVE_FSEEKO
-+    fseeko(fh, chm->dir_offset - 84, SEEK_SET);
-+#else
-+    fseek(fh, chm->dir_offset - 84, SEEK_SET);
-+#endif
-+    fread(&dir[0], 84, 1, fh);
-+    printf("  chmhs1_Signature  = %4.4s\n", &dir[0]);
-+    printf("  chmhs1_Version    = %d\n", EndGetI32(&dir[4]));
-+    printf("  chmhs1_HeaderLen  = %d\n", EndGetI32(&dir[8]));
-+    printf("  chmhs1_Unknown1   = %d\n", EndGetI32(&dir[12]));
-+    printf("  chmhs1_ChunkSize  = %d\n", EndGetI32(&dir[16]));
-+    printf("  chmhs1_Density    = %d\n", EndGetI32(&dir[20]));
-+    printf("  chmhs1_Depth      = %d\n", EndGetI32(&dir[24]));
-+    printf("  chmhs1_IndexRoot  = %d\n", EndGetI32(&dir[28]));
-+    printf("  chmhs1_FirstPMGL  = %d\n", EndGetI32(&dir[32]));
-+    printf("  chmhs1_LastPMGL   = %d\n", EndGetI32(&dir[36]));
-+    printf("  chmhs1_Unknown2   = %d\n", EndGetI32(&dir[40]));
-+    printf("  chmhs1_NumChunks  = %d\n", EndGetI32(&dir[44]));
-+    printf("  chmhs1_LanguageID = %d\n", EndGetI32(&dir[48]));
-+    printf("  chmhs1_GUID       = %s\n", guid(&dir[52]));
-+    printf("  chmhs1_Unknown3   = %d\n", EndGetI32(&dir[68]));
-+    printf("  chmhs1_Unknown4   = %d\n", EndGetI32(&dir[72]));
-+    printf("  chmhs1_Unknown5   = %d\n", EndGetI32(&dir[76]));
-+    printf("  chmhs1_Unknown6   = %d\n", EndGetI32(&dir[80]));
-+
-+    for (i = 0; i < chm->num_chunks; i++) {
-+      unsigned int num_entries, quickref_size, j, k;
-+      unsigned char *p, *name;
-+      printf("  CHUNK %u:\n", i);
-+      fread(chunk, chm->chunk_size, 1, fh);
-+
-+      if ((chunk[0] == 'P') && (chunk[1] == 'M') &&
-+          (chunk[2] == 'G') && (chunk[3] == 'L'))
-+      {
-+        k = chm->chunk_size - 2;
-+        num_entries = chunk[k] | (chunk[k+1] << 8);
-+        quickref_size = EndGetI32(&chunk[4]);
-+	if (quickref_size > (chm->chunk_size - 20)) {
-+	    printf("    QR size of %d too large (max is %d)\n",
-+		   quickref_size, chm->chunk_size - 20);
-+	    quickref_size = chm->chunk_size - 20;
-+	}
-+        printf("    PMGL entries=%u qrsize=%u zero=%u prev=%d next=%d\n",
-+               num_entries, quickref_size, EndGetI32(&chunk[8]),
-+               EndGetI32(&chunk[12]), EndGetI32(&chunk[16]));
-+
-+        printf("    QR: entry %4u = offset %u\n", 0, 20);
-+        j = (1 << chm->density) + 1;
-+        while (j < num_entries) {
-+          k -= 2;
-+	  if (k < (chm->chunk_size - quickref_size)) break;
-+          printf("    QR: entry %4u = offset %u\n",
-+                 j, (chunk[k] | (chunk[k+1] << 8)) + 20);
-+          j += (1 << chm->density) + 1;
-+        }
-+
-+        p = &chunk[20];
-+        for (j = 0; j < num_entries; j++) {
-+          unsigned int name_len = 0, section = 0, offset = 0, length = 0;
-+          printf("    %4d: ", (int) (p - &chunk[0]));
-+	  READ_ENCINT(name_len, PMGL_end); name = p; p += name_len;
-+	  READ_ENCINT(section, PMGL_end);
-+	  READ_ENCINT(offset, PMGL_end);
-+	  READ_ENCINT(length, PMGL_end);
-+          printf("sec=%u off=%-10u len=%-10u name=\"",section,offset,length);
-+          if (name_len) fwrite(name, 1, name_len, stdout);
-+          printf("\"\n");
-+	}
-+      PMGL_end:
-+	if (j != num_entries) printf("premature end of chunk\n");
-+
-+      }
-+      else if  ((chunk[0] == 'P') && (chunk[1] == 'M') &&
-+		(chunk[2] == 'G') && (chunk[3] == 'I'))
-+      {
-+	k = chm->chunk_size - 2;
-+	num_entries = chunk[k] | (chunk[k+1] << 8);
-+	quickref_size = EndGetI32(&chunk[4]);
-+	printf("    PMGI entries=%u free=%u\n", num_entries, quickref_size);
-+
-+        printf("    QR: entry %4u = offset %u\n", 0, 8);
-+        j = (1 << chm->density) + 1;
-+        while (j < num_entries) {
-+          k -= 2;
-+          printf("    QR: entry %4u = offset %u\n",
-+                 j, (chunk[k] | (chunk[k+1] << 8)) + 8);
-+          j += (1 << chm->density) + 1;
-+        }
-+
-+        p = &chunk[8];
-+        for (j = 0; j < num_entries; j++) {
-+          unsigned int name_len, section;
-+          printf("    %4d: ", (int) (p - &chunk[0]));
-+          READ_ENCINT(name_len, PMGI_end); name = p; p += name_len;
-+          READ_ENCINT(section, PMGI_end);
-+          printf("chunk=%-4u name=\"",section);
-+          if (name_len) fwrite(name, 1, name_len, stdout);
-+          printf("\"\n");
-+	}
-+      PMGI_end: 
-+	if (j != num_entries) printf("premature end of chunk\n");
-+      }
-+      else {
-+	printf("    unknown format\n");
-+      }
-+    }
-+
-+    fclose(fh);
-+  }
-+}
-+
-+
-+int main(int argc, char *argv[]) {
-+  struct mschm_decompressor *chmd;
-+  struct mschmd_header *chm;
-+  struct mschmd_file *file;
-+  unsigned int numf, i;
-+  unsigned char *data;
-+  off_t pos, len;
-+
-+  setbuf(stdout, NULL);
-+  setbuf(stderr, NULL);
-+
-+  MSPACK_SYS_SELFTEST(i);
-+  if (i) return 0;
-+
-+  if ((chmd = mspack_create_chm_decompressor(NULL))) {
-+    for (argv++; *argv; argv++) {
-+      printf("%s\n", *argv);
-+      if ((chm = chmd->open(chmd, *argv))) {
-+	printf("  chmhead_Version     %u\n",      chm->version);
-+	printf("  chmhead_Timestamp   %u\n",      chm->timestamp);
-+	printf("  chmhead_LanguageID  %u\n", 	 chm->language);
-+	printf("  chmhs0_FileLen      %" LD "\n", chm->length);
-+	printf("  chmhst_OffsetHS1    %" LD "\n", chm->dir_offset);
-+	printf("  chmhst3_OffsetCS0   %" LD "\n", chm->sec0.offset);
-+
-+	print_dir(chm, *argv);
-+
-+	if ((data = load_sys_data(chmd, chm,
-+	     "::DataSpace/Storage/MSCompressed/ControlData", &len)))
-+        {
-+	  printf("  lzxcd_Length        %u\n",    EndGetI32(&data[0]));
-+	  printf("  lzxcd_Signature     %4.4s\n", &data[4]);
-+	  printf("  lzxcd_Version       %u\n",    EndGetI32(&data[8]));
-+	  printf("  lzxcd_ResetInterval %u\n",    EndGetI32(&data[12]));
-+	  printf("  lzxcd_WindowSize    %u\n",    EndGetI32(&data[16]));
-+	  printf("  lzxcd_CacheSize     %u\n",    EndGetI32(&data[20]));
-+	  printf("  lzxcd_Unknown1      %u\n",    EndGetI32(&data[24]));
-+	  free(data);
-+	}
-+
-+	if ((data = load_sys_data(chmd, chm,
-+	     "::DataSpace/Storage/MSCompressed/Transform/{7FC28940-"
-+	     "9D31-11D0-9B27-00A0C91E9C7C}/InstanceData/ResetTable", &len)))
-+        {
-+	  off_t contents = chm->sec0.offset;
-+	  printf("  lzxrt_Unknown1      %u\n",      EndGetI32(&data[0]));
-+	  printf("  lzxrt_NumEntries    %u\n",      EndGetI32(&data[4]));
-+	  printf("  lzxrt_EntrySize     %u\n",      EndGetI32(&data[8]));
-+	  printf("  lzxrt_TableOffset   %u\n",      EndGetI32(&data[12]));
-+	  printf("  lzxrt_UncompLen     %" LU "\n", EndGetI64(&data[16]));
-+	  printf("  lzxrt_CompLen       %" LU "\n", EndGetI64(&data[24]));
-+	  printf("  lzxrt_FrameLen      %u\n",      EndGetI32(&data[32]));
-+
-+	  for (file = chm->sysfiles; file; file = file->next) {
-+	    if (strcmp(file->filename,
-+		       "::DataSpace/Storage/MSCompressed/Content") == 0)
-+	    {
-+	      contents += file->offset;
-+	      break;
-+	    }
-+	  }
-+
-+	  printf("  - reset table (uncomp offset -> stream offset "
-+		 "[real offset, length in file]\n");
-+
-+	  numf = EndGetI32(&data[4]);
-+	  pos = ((unsigned int) EndGetI32(&data[12]));
-+	  switch (EndGetI32(&data[8])) {
-+	  case 4:
-+	    for (i = 0; i < numf && pos < len; i++, pos += 4) {
-+	      unsigned int rtdata = EndGetI32(&data[pos]);
-+	      printf("    %-10u -> %-10u [ %" LU " %u ]\n",
-+		     i * EndGetI32(&data[32]),
-+		     rtdata,
-+		     contents + rtdata,
-+		     (i == (numf-1))
-+		     ? (EndGetI32(&data[24]) - rtdata)
-+		     : (EndGetI32(&data[pos + 4]) - rtdata)
-+		     );
-+	    }
-+	    break;
-+	  case 8:
-+	    for (i = 0; i < numf && pos < len; i++, pos += 8) {
-+	      unsigned long long int rtdata = EndGetI64(&data[pos]);
-+	      printf("    %-10" LU " -> %-10" LU " [ %" LU " %" LU " ]\n",
-+		     i * EndGetI64(&data[32]), rtdata, contents + rtdata,
-+		     (i == (numf-1))
-+		     ? (EndGetI64(&data[24]) - rtdata)
-+		     : (EndGetI64(&data[pos + 8]) - rtdata)
-+		     );
-+	    }
-+	    break;
-+	  }
-+	  free(data);
-+	}
-+	chmd->close(chmd, chm);
-+      }
-+    }
-+    mspack_destroy_chm_decompressor(chmd);
-+  }
-+  return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/chmx.c b/libclamav/libmspack-0.4alpha/test/chmx.c
-new file mode 100644
-index 000000000000..0d0b3c2221ef
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/chmx.c
-@@ -0,0 +1,216 @@
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <mspack.h>
-+#include <ctype.h>
-+#include <sys/stat.h>
-+
-+#include <error.h>
-+
-+mode_t user_umask;
-+
-+#define FILENAME ".test.chmx"
-+
-+/**
-+ * Ensures that all directory components in a filepath exist. New directory
-+ * components are created, if necessary.
-+ *
-+ * @param path the filepath to check
-+ * @return non-zero if all directory components in a filepath exist, zero
-+ *         if components do not exist and cannot be created
-+ */
-+static int ensure_filepath(char *path) {
-+  struct stat st_buf;
-+  char *p;
-+  int ok;
-+
-+  for (p = &path[1]; *p; p++) {
-+    if (*p != '/') continue;
-+    *p = '\0';
-+    ok = (stat(path, &st_buf) == 0) && S_ISDIR(st_buf.st_mode);
-+    if (!ok) ok = (mkdir(path, 0777 & ~user_umask) == 0);
-+    *p = '/';
-+    if (!ok) return 0;
-+  }
-+  return 1;
-+}
-+
-+/**
-+ * Creates a UNIX filename from the internal CAB filename and the given
-+ * parameters.
-+ *
-+ * @param fname  the internal CAB filename.
-+ * @param dir    a directory path to prepend to the output filename.
-+ * @param lower  if non-zero, filename should be made lower-case.
-+ * @param isunix if zero, MS-DOS path seperators are used in the internal
-+ *               CAB filename. If non-zero, UNIX path seperators are used.
-+ * @param utf8   if non-zero, the internal CAB filename is encoded in UTF8.
-+ * @return a freshly allocated and created filename, or NULL if there was
-+ *         not enough memory.
-+ * @see unix_path_seperators()
-+ */
-+static char *create_output_name(unsigned char *fname, unsigned char *dir,
-+			 int lower, int isunix, int utf8)
-+{
-+  unsigned char *p, *name, c, *fe, sep, slash;
-+  unsigned int x;
-+
-+  sep   = (isunix) ? '/'  : '\\'; /* the path-seperator */
-+  slash = (isunix) ? '\\' : '/';  /* the other slash */
-+
-+  /* length of filename */
-+  x = strlen((char *) fname);
-+  /* UTF8 worst case scenario: tolower() expands all chars from 1 to 3 bytes */
-+  if (utf8) x *= 3;
-+  /* length of output directory */
-+  if (dir) x += strlen((char *) dir);
-+
-+  if (!(name = (unsigned char *) malloc(x + 2))) {
-+    fprintf(stderr, "out of memory!\n");
-+    return NULL;
-+  }
-+  
-+  /* start with blank name */
-+  *name = '\0';
-+
-+  /* add output directory if needed */
-+  if (dir) {
-+    strcpy((char *) name, (char *) dir);
-+    strcat((char *) name, "/");
-+  }
-+
-+  /* remove leading slashes */
-+  while (*fname == sep) fname++;
-+
-+  /* copy from fi->filename to new name, converting MS-DOS slashes to UNIX
-+   * slashes as we go. Also lowercases characters if needed.
-+   */
-+  p = &name[strlen((char *)name)];
-+  fe = &fname[strlen((char *)fname)];
-+
-+  if (utf8) {
-+    /* UTF8 translates two-byte unicode characters into 1, 2 or 3 bytes.
-+     * %000000000xxxxxxx -> %0xxxxxxx
-+     * %00000xxxxxyyyyyy -> %110xxxxx %10yyyyyy
-+     * %xxxxyyyyyyzzzzzz -> %1110xxxx %10yyyyyy %10zzzzzz
-+     *
-+     * Therefore, the inverse is as follows:
-+     * First char:
-+     *  0x00 - 0x7F = one byte char
-+     *  0x80 - 0xBF = invalid
-+     *  0xC0 - 0xDF = 2 byte char (next char only 0x80-0xBF is valid)
-+     *  0xE0 - 0xEF = 3 byte char (next 2 chars only 0x80-0xBF is valid)
-+     *  0xF0 - 0xFF = invalid
-+     */
-+    do {
-+      if (fname >= fe) {
-+	free(name);
-+	return NULL;
-+      }
-+
-+      /* get next UTF8 char */
-+      if ((c = *fname++) < 0x80) x = c;
-+      else {
-+	if ((c >= 0xC0) && (c < 0xE0)) {
-+	  x = (c & 0x1F) << 6;
-+	  x |= *fname++ & 0x3F;
-+	}
-+	else if ((c >= 0xE0) && (c < 0xF0)) {
-+	  x = (c & 0xF) << 12;
-+	  x |= (*fname++ & 0x3F) << 6;
-+	  x |= *fname++ & 0x3F;
-+	}
-+	else x = '?';
-+      }
-+
-+      /* whatever is the path seperator -> '/'
-+       * whatever is the other slash    -> '\\'
-+       * otherwise, if lower is set, the lowercase version */
-+      if      (x == sep)   x = '/';
-+      else if (x == slash) x = '\\';
-+      else if (lower)      x = (unsigned int) tolower((int) x);
-+
-+      /* integer back to UTF8 */
-+      if (x < 0x80) {
-+	*p++ = (unsigned char) x;
-+      }
-+      else if (x < 0x800) {
-+	*p++ = 0xC0 | (x >> 6);   
-+	*p++ = 0x80 | (x & 0x3F);
-+      }
-+      else {
-+	*p++ = 0xE0 | (x >> 12);
-+	*p++ = 0x80 | ((x >> 6) & 0x3F);
-+	*p++ = 0x80 | (x & 0x3F);
-+      }
-+    } while (x);
-+  }
-+  else {
-+    /* regular non-utf8 version */
-+    do {
-+      c = *fname++;
-+      if      (c == sep)   c = '/';
-+      else if (c == slash) c = '\\';
-+      else if (lower)      c = (unsigned char) tolower((int) c);
-+    } while ((*p++ = c));
-+  }
-+  return (char *) name;
-+}
-+
-+static int sortfunc(const void *a, const void *b) {
-+  off_t diff = 
-+    ((* ((struct mschmd_file **) a))->offset) -
-+    ((* ((struct mschmd_file **) b))->offset);
-+  return (diff < 0) ? -1 : ((diff > 0) ? 1 : 0);
-+}
-+
-+int main(int argc, char *argv[]) {
-+  struct mschm_decompressor *chmd;
-+  struct mschmd_header *chm;
-+  struct mschmd_file *file, **f;
-+  unsigned int numf, i;
-+
-+  setbuf(stdout, NULL);
-+  setbuf(stderr, NULL);
-+  user_umask = umask(0); umask(user_umask);
-+
-+  MSPACK_SYS_SELFTEST(i);
-+  if (i) return 0;
-+
-+  if ((chmd = mspack_create_chm_decompressor(NULL))) {
-+    for (argv++; *argv; argv++) {
-+      printf("%s\n", *argv);
-+      if ((chm = chmd->open(chmd, *argv))) {
-+
-+	/* build an ordered list of files for maximum extraction speed */
-+	for (numf=0, file=chm->files; file; file = file->next) numf++;
-+	if ((f = (struct mschmd_file **) calloc(numf, sizeof(struct mschmd_file *)))) {
-+	  for (i=0, file=chm->files; file; file = file->next) f[i++] = file;
-+	  qsort(f, numf, sizeof(struct mschmd_file *), &sortfunc);
-+
-+	  for (i = 0; i < numf; i++) {
-+	    char *outname = create_output_name((unsigned char *)f[i]->filename,NULL,0,1,0);
-+	    printf("Extracting %s\n", outname);
-+	    ensure_filepath(outname);
-+	    if (chmd->extract(chmd, f[i], outname)) {
-+	      printf("%s: extract error on \"%s\": %s\n",
-+		     *argv, f[i]->filename, ERROR(chmd));
-+	    }
-+	    free(outname);
-+	  }
-+	  free(f);
-+	}
-+	chmd->close(chmd, chm);
-+      }
-+      else {
-+	printf("%s: can't open -- %s\n", *argv, ERROR(chmd));
-+      }
-+    }
-+    mspack_destroy_chm_decompressor(chmd);
-+  }
-+  return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/error.h b/libclamav/libmspack-0.4alpha/test/error.h
-new file mode 100644
-index 000000000000..b1d627b27c09
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/error.h
-@@ -0,0 +1,22 @@
-+#define ERROR(base) error_msg(base->last_error(base))
-+
-+const char *error_msg(int error) {
-+    static char buf[32];
-+    switch (error) {
-+    case MSPACK_ERR_OK:         return "no error";
-+    case MSPACK_ERR_ARGS:       return "bad arguments to library function";
-+    case MSPACK_ERR_OPEN:       return "error opening file";
-+    case MSPACK_ERR_READ:       return "read error";
-+    case MSPACK_ERR_WRITE:      return "write error";
-+    case MSPACK_ERR_SEEK:       return "seek error";
-+    case MSPACK_ERR_NOMEMORY:   return "out of memory";
-+    case MSPACK_ERR_SIGNATURE:  return "bad signature";
-+    case MSPACK_ERR_DATAFORMAT: return "error in data format";
-+    case MSPACK_ERR_CHECKSUM:   return "checksum error";
-+    case MSPACK_ERR_CRUNCH:     return "compression error";
-+    case MSPACK_ERR_DECRUNCH:   return "decompression error";
-+    }
-+
-+    snprintf(buf, sizeof(buf), "unknown error %d", error);
-+    return buf;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/expand.c b/libclamav/libmspack-0.4alpha/test/expand.c
-new file mode 100644
-index 000000000000..215ef7ba17d5
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/expand.c
-@@ -0,0 +1,79 @@
-+/* acts like Microsoft's EXPAND.EXE */
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#include <mspack.h>
-+#include <error.h>
-+
-+int main(int argc, char *argv[]) {
-+    struct msszdd_decompressor *szddd;
-+    struct mskwaj_decompressor *kwajd;
-+    struct msszddd_header *szdd;
-+    struct mskwajd_header *kwaj;
-+    int err;
-+
-+    if (argc != 3) {
-+	fprintf(stderr, "Usage: %s <input file> <output file>\n", argv[0]);
-+	return 1;
-+    }
-+
-+    /* if self-test reveals an error */
-+    MSPACK_SYS_SELFTEST(err);
-+    if (err) return 1;
-+
-+    szddd = mspack_create_szdd_decompressor(NULL);
-+    kwajd = mspack_create_kwaj_decompressor(NULL);
-+
-+    if (!szddd || !kwajd) {
-+	fprintf(stderr, "can't make either SZDD or KWAJ decompressor\n");
-+	mspack_destroy_szdd_decompressor(szddd);
-+	mspack_destroy_kwaj_decompressor(kwajd);
-+	return 1;
-+    }
-+
-+    /* open then extract; try SZDD */
-+    if ((szdd = szddd->open(szddd, argv[1]))) {
-+	if (szddd->extract(szddd, szdd, argv[2]) != MSPACK_ERR_OK) {
-+	    fprintf(stderr, "%s: SZDD extract error: %s\n", argv[2], ERROR(szddd));
-+	}
-+	szddd->close(szddd, szdd);
-+    }
-+    else {
-+	if (szddd->last_error(szddd) == MSPACK_ERR_SIGNATURE) {
-+	    /* try KWAJ */
-+	    if ((kwaj = kwajd->open(kwajd, argv[1]))) {
-+		if (kwajd->extract(kwajd, kwaj, argv[2]) != MSPACK_ERR_OK) {
-+		    fprintf(stderr, "%s: KWAJ extract error: %s\n", argv[2], ERROR(kwajd));
-+		}
-+		kwajd->close(kwajd, kwaj);
-+	    }
-+	    else {
-+		fprintf(stderr, "%s: KWAJ open error: %s\n", argv[1], ERROR(kwajd));
-+	    }
-+	}
-+	else {
-+	    fprintf(stderr, "%s: SZDD open error: %s\n", argv[1], ERROR(szddd));
-+	}
-+    }
-+
-+    /* decompress in a single step; try KWAJ */
-+    if (kwajd->decompress(kwajd, argv[1], argv[2]) != MSPACK_ERR_OK) {
-+	if (kwajd->last_error(kwajd) == MSPACK_ERR_SIGNATURE) {
-+	    if (szddd->decompress(szddd, argv[1], argv[2]) != MSPACK_ERR_OK) {
-+		fprintf(stderr, "%s -> %s: SZDD decompress error: %s\n", argv[1], argv[2], ERROR(szddd));
-+	    }
-+	}
-+	else {
-+	    fprintf(stderr, "%s -> %s: KWAJ decompress error: %s\n", argv[1], argv[2], ERROR(kwajd));
-+	}
-+    }
-+
-+    mspack_destroy_szdd_decompressor(szddd);
-+    mspack_destroy_kwaj_decompressor(kwajd);
-+    return 0;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/md5.c b/libclamav/libmspack-0.4alpha/test/md5.c
-new file mode 100644
-index 000000000000..208740689392
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/md5.c
-@@ -0,0 +1,457 @@
-+/* md5.c - Functions to compute MD5 message digest of files or memory blocks
-+   according to the definition of MD5 in RFC 1321 from April 1992.
-+   Copyright (C) 1995, 1996, 2001, 2003 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 at prep.ai.mit.edu.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU General Public License as published by the
-+   Free Software Foundation; either version 2, or (at your option) any
-+   later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software Foundation,
-+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+
-+/* Written by Ulrich Drepper <drepper at gnu.ai.mit.edu>, 1995.  */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <sys/types.h>
-+
-+#if STDC_HEADERS || defined _LIBC
-+# include <stdlib.h>
-+# include <string.h>
-+#else
-+# ifndef HAVE_MEMCPY
-+#  define memcpy(d, s, n) bcopy ((s), (d), (n))
-+# endif
-+#endif
-+
-+#include <md5.h>
-+
-+#ifdef _LIBC
-+# include <endian.h>
-+# if __BYTE_ORDER == __BIG_ENDIAN
-+#  define WORDS_BIGENDIAN 1
-+# endif
-+/* We need to keep the namespace clean so define the MD5 function
-+   protected using leading __ .  */
-+# define md5_init_ctx __md5_init_ctx
-+# define md5_process_block __md5_process_block
-+# define md5_process_bytes __md5_process_bytes
-+# define md5_finish_ctx __md5_finish_ctx
-+# define md5_read_ctx __md5_read_ctx
-+# define md5_stream __md5_stream
-+# define md5_buffer __md5_buffer
-+#endif
-+
-+#ifdef WORDS_BIGENDIAN
-+# define SWAP(n)							\
-+    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
-+#else
-+# define SWAP(n) (n)
-+#endif
-+
-+#define BLOCKSIZE 4096
-+/* Ensure that BLOCKSIZE is a multiple of 64.  */
-+#if BLOCKSIZE % 64 != 0
-+/* FIXME-someday (soon?): use #error instead of this kludge.  */
-+"invalid BLOCKSIZE"
-+#endif
-+
-+/* This array contains the bytes used to pad the buffer to the next
-+   64-byte boundary.  (RFC 1321, 3.1: Step 1)  */
-+static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ...  */ };
-+
-+
-+/* Initialize structure containing state of computation.
-+   (RFC 1321, 3.3: Step 3)  */
-+void
-+md5_init_ctx (struct md5_ctx *ctx)
-+{
-+  ctx->A = 0x67452301;
-+  ctx->B = 0xefcdab89;
-+  ctx->C = 0x98badcfe;
-+  ctx->D = 0x10325476;
-+
-+  ctx->total[0] = ctx->total[1] = 0;
-+  ctx->buflen = 0;
-+}
-+
-+/* Put result from CTX in first 16 bytes following RESBUF.  The result
-+   must be in little endian byte order.
-+
-+   IMPORTANT: On some systems it is required that RESBUF is correctly
-+   aligned for a 32 bits value.  */
-+void *
-+md5_read_ctx (const struct md5_ctx *ctx, void *resbuf)
-+{
-+  ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A);
-+  ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B);
-+  ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C);
-+  ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D);
-+
-+  return resbuf;
-+}
-+
-+/* Process the remaining bytes in the internal buffer and the usual
-+   prolog according to the standard and write the result to RESBUF.
-+
-+   IMPORTANT: On some systems it is required that RESBUF is correctly
-+   aligned for a 32 bits value.  */
-+void *
-+md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
-+{
-+  /* Take yet unprocessed bytes into account.  */
-+  md5_uint32 bytes = ctx->buflen;
-+  size_t pad;
-+
-+  /* Now count remaining bytes.  */
-+  ctx->total[0] += bytes;
-+  if (ctx->total[0] < bytes)
-+    ++ctx->total[1];
-+
-+  pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
-+  memcpy (&ctx->buffer[bytes], fillbuf, pad);
-+
-+  /* Put the 64-bit file length in *bits* at the end of the buffer.  */
-+  *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
-+  *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
-+							(ctx->total[0] >> 29));
-+
-+  /* Process last bytes.  */
-+  md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
-+
-+  return md5_read_ctx (ctx, resbuf);
-+}
-+
-+/* Compute MD5 message digest for bytes read from STREAM.  The
-+   resulting message digest number will be written into the 16 bytes
-+   beginning at RESBLOCK.  */
-+int
-+md5_stream (FILE *stream, void *resblock)
-+{
-+  struct md5_ctx ctx;
-+  char buffer[BLOCKSIZE + 72];
-+  size_t sum;
-+
-+  /* Initialize the computation context.  */
-+  md5_init_ctx (&ctx);
-+
-+  /* Iterate over full file contents.  */
-+  while (1)
-+    {
-+      /* We read the file in blocks of BLOCKSIZE bytes.  One call of the
-+	 computation function processes the whole buffer so that with the
-+	 next round of the loop another block can be read.  */
-+      size_t n;
-+      sum = 0;
-+
-+      /* Read block.  Take care for partial reads.  */
-+      while (1)
-+	{
-+	  n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
-+
-+	  sum += n;
-+
-+	  if (sum == BLOCKSIZE)
-+	    break;
-+
-+	  if (n == 0)
-+	    {
-+	      /* Check for the error flag IFF N == 0, so that we don't
-+		 exit the loop after a partial read due to e.g., EAGAIN
-+		 or EWOULDBLOCK.  */
-+	      if (ferror (stream))
-+		return 1;
-+	      goto process_partial_block;
-+	    }
-+
-+	  /* We've read at least one byte, so ignore errors.  But always
-+	     check for EOF, since feof may be true even though N > 0.
-+	     Otherwise, we could end up calling fread after EOF.  */
-+	  if (feof (stream))
-+	    goto process_partial_block;
-+	}
-+
-+      /* Process buffer with BLOCKSIZE bytes.  Note that
-+			BLOCKSIZE % 64 == 0
-+       */
-+      md5_process_block (buffer, BLOCKSIZE, &ctx);
-+    }
-+
-+ process_partial_block:;
-+
-+  /* Process any remaining bytes.  */
-+  if (sum > 0)
-+    md5_process_bytes (buffer, sum, &ctx);
-+
-+  /* Construct result in desired memory.  */
-+  md5_finish_ctx (&ctx, resblock);
-+  return 0;
-+}
-+
-+/* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
-+   result is always in little endian byte order, so that a byte-wise
-+   output yields to the wanted ASCII representation of the message
-+   digest.  */
-+void *
-+md5_buffer (const char *buffer, size_t len, void *resblock)
-+{
-+  struct md5_ctx ctx;
-+
-+  /* Initialize the computation context.  */
-+  md5_init_ctx (&ctx);
-+
-+  /* Process whole buffer but last len % 64 bytes.  */
-+  md5_process_bytes (buffer, len, &ctx);
-+
-+  /* Put result in desired memory area.  */
-+  return md5_finish_ctx (&ctx, resblock);
-+}
-+
-+
-+void
-+md5_process_bytes ( const void *buffer, size_t len, struct md5_ctx *ctx)
-+{
-+  /* When we already have some bits in our internal buffer concatenate
-+     both inputs first.  */
-+  if (ctx->buflen != 0)
-+    {
-+      size_t left_over = ctx->buflen;
-+      size_t add = 128 - left_over > len ? len : 128 - left_over;
-+
-+      memcpy (&ctx->buffer[left_over], buffer, add);
-+      ctx->buflen += add;
-+
-+      if (ctx->buflen > 64)
-+	{
-+	  md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
-+
-+	  ctx->buflen &= 63;
-+	  /* The regions in the following copy operation cannot overlap.  */
-+	  memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
-+		  ctx->buflen);
-+	}
-+
-+      buffer = (const char *) buffer + add;
-+      len -= add;
-+    }
-+
-+  /* Process available complete blocks.  */
-+  if (len >= 64)
-+    {
-+#if !_STRING_ARCH_unaligned
-+/* To check alignment gcc has an appropriate operator.  Other
-+   compilers don't.  */
-+# if __GNUC__ >= 2
-+#  define UNALIGNED_P(p) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0)
-+# else
-+#  define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0)
-+# endif
-+      if (UNALIGNED_P (buffer))
-+	while (len > 64)
-+	  {
-+	    memcpy (ctx->buffer, buffer, 64);
-+	    md5_process_block (ctx->buffer, 64, ctx);
-+	    buffer = (const char *) buffer + 64;
-+	    len -= 64;
-+	  }
-+      else
-+#endif
-+	{
-+	  md5_process_block (buffer, len & ~63, ctx);
-+	  buffer = (const char *) buffer + (len & ~63);
-+	  len &= 63;
-+	}
-+    }
-+
-+  /* Move remaining bytes in internal buffer.  */
-+  if (len > 0)
-+    {
-+      size_t left_over = ctx->buflen;
-+
-+      memcpy (&ctx->buffer[left_over], buffer, len);
-+      left_over += len;
-+      if (left_over >= 64)
-+	{
-+	  md5_process_block (ctx->buffer, 64, ctx);
-+	  left_over -= 64;
-+	  memcpy (ctx->buffer, &ctx->buffer[64], left_over);
-+	}
-+      ctx->buflen = left_over;
-+    }
-+}
-+
-+
-+/* These are the four functions used in the four steps of the MD5 algorithm
-+   and defined in the RFC 1321.  The first function is a little bit optimized
-+   (as found in Colin Plumbs public domain implementation).  */
-+/* #define FF(b, c, d) ((b & c) | (~b & d)) */
-+#define FF(b, c, d) (d ^ (b & (c ^ d)))
-+#define FG(b, c, d) FF (d, b, c)
-+#define FH(b, c, d) (b ^ c ^ d)
-+#define FI(b, c, d) (c ^ (b | ~d))
-+
-+/* Process LEN bytes of BUFFER, accumulating context into CTX.
-+   It is assumed that LEN % 64 == 0.  */
-+
-+void
-+md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx)
-+{
-+  md5_uint32 correct_words[16];
-+  const md5_uint32 *words = (const md5_uint32 *) buffer;
-+  size_t nwords = len / sizeof (md5_uint32);
-+  const md5_uint32 *endp = words + nwords;
-+  md5_uint32 A = ctx->A;
-+  md5_uint32 B = ctx->B;
-+  md5_uint32 C = ctx->C;
-+  md5_uint32 D = ctx->D;
-+
-+  /* First increment the byte count.  RFC 1321 specifies the possible
-+     length of the file up to 2^64 bits.  Here we only compute the
-+     number of bytes.  Do a double word increment.  */
-+  ctx->total[0] += len;
-+  if (ctx->total[0] < len)
-+    ++ctx->total[1];
-+
-+  /* Process all bytes in the buffer with 64 bytes in each round of
-+     the loop.  */
-+  while (words < endp)
-+    {
-+      md5_uint32 *cwp = correct_words;
-+      md5_uint32 A_save = A;
-+      md5_uint32 B_save = B;
-+      md5_uint32 C_save = C;
-+      md5_uint32 D_save = D;
-+
-+      /* First round: using the given function, the context and a constant
-+	 the next context is computed.  Because the algorithms processing
-+	 unit is a 32-bit word and it is determined to work on words in
-+	 little endian byte order we perhaps have to change the byte order
-+	 before the computation.  To reduce the work for the next steps
-+	 we store the swapped words in the array CORRECT_WORDS.  */
-+
-+#define OP(a, b, c, d, s, T)						\
-+      do								\
-+        {								\
-+	  a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T;		\
-+	  ++words;							\
-+	  a = rol (a, s);						\
-+	  a += b;							\
-+        }								\
-+      while (0)
-+
-+      /* Before we start, one word to the strange constants.
-+	 They are defined in RFC 1321 as
-+
-+	 T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64, or
-+	 perl -e 'foreach(1..64){printf "0x%08x\n", int (4294967296 * abs (sin $_))}'
-+       */
-+
-+      /* Round 1.  */
-+      OP (A, B, C, D,  7, 0xd76aa478);
-+      OP (D, A, B, C, 12, 0xe8c7b756);
-+      OP (C, D, A, B, 17, 0x242070db);
-+      OP (B, C, D, A, 22, 0xc1bdceee);
-+      OP (A, B, C, D,  7, 0xf57c0faf);
-+      OP (D, A, B, C, 12, 0x4787c62a);
-+      OP (C, D, A, B, 17, 0xa8304613);
-+      OP (B, C, D, A, 22, 0xfd469501);
-+      OP (A, B, C, D,  7, 0x698098d8);
-+      OP (D, A, B, C, 12, 0x8b44f7af);
-+      OP (C, D, A, B, 17, 0xffff5bb1);
-+      OP (B, C, D, A, 22, 0x895cd7be);
-+      OP (A, B, C, D,  7, 0x6b901122);
-+      OP (D, A, B, C, 12, 0xfd987193);
-+      OP (C, D, A, B, 17, 0xa679438e);
-+      OP (B, C, D, A, 22, 0x49b40821);
-+
-+      /* For the second to fourth round we have the possibly swapped words
-+	 in CORRECT_WORDS.  Redefine the macro to take an additional first
-+	 argument specifying the function to use.  */
-+#undef OP
-+#define OP(f, a, b, c, d, k, s, T)					\
-+      do 								\
-+	{								\
-+	  a += f (b, c, d) + correct_words[k] + T;			\
-+	  a = rol (a, s);						\
-+	  a += b;							\
-+	}								\
-+      while (0)
-+
-+      /* Round 2.  */
-+      OP (FG, A, B, C, D,  1,  5, 0xf61e2562);
-+      OP (FG, D, A, B, C,  6,  9, 0xc040b340);
-+      OP (FG, C, D, A, B, 11, 14, 0x265e5a51);
-+      OP (FG, B, C, D, A,  0, 20, 0xe9b6c7aa);
-+      OP (FG, A, B, C, D,  5,  5, 0xd62f105d);
-+      OP (FG, D, A, B, C, 10,  9, 0x02441453);
-+      OP (FG, C, D, A, B, 15, 14, 0xd8a1e681);
-+      OP (FG, B, C, D, A,  4, 20, 0xe7d3fbc8);
-+      OP (FG, A, B, C, D,  9,  5, 0x21e1cde6);
-+      OP (FG, D, A, B, C, 14,  9, 0xc33707d6);
-+      OP (FG, C, D, A, B,  3, 14, 0xf4d50d87);
-+      OP (FG, B, C, D, A,  8, 20, 0x455a14ed);
-+      OP (FG, A, B, C, D, 13,  5, 0xa9e3e905);
-+      OP (FG, D, A, B, C,  2,  9, 0xfcefa3f8);
-+      OP (FG, C, D, A, B,  7, 14, 0x676f02d9);
-+      OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a);
-+
-+      /* Round 3.  */
-+      OP (FH, A, B, C, D,  5,  4, 0xfffa3942);
-+      OP (FH, D, A, B, C,  8, 11, 0x8771f681);
-+      OP (FH, C, D, A, B, 11, 16, 0x6d9d6122);
-+      OP (FH, B, C, D, A, 14, 23, 0xfde5380c);
-+      OP (FH, A, B, C, D,  1,  4, 0xa4beea44);
-+      OP (FH, D, A, B, C,  4, 11, 0x4bdecfa9);
-+      OP (FH, C, D, A, B,  7, 16, 0xf6bb4b60);
-+      OP (FH, B, C, D, A, 10, 23, 0xbebfbc70);
-+      OP (FH, A, B, C, D, 13,  4, 0x289b7ec6);
-+      OP (FH, D, A, B, C,  0, 11, 0xeaa127fa);
-+      OP (FH, C, D, A, B,  3, 16, 0xd4ef3085);
-+      OP (FH, B, C, D, A,  6, 23, 0x04881d05);
-+      OP (FH, A, B, C, D,  9,  4, 0xd9d4d039);
-+      OP (FH, D, A, B, C, 12, 11, 0xe6db99e5);
-+      OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8);
-+      OP (FH, B, C, D, A,  2, 23, 0xc4ac5665);
-+
-+      /* Round 4.  */
-+      OP (FI, A, B, C, D,  0,  6, 0xf4292244);
-+      OP (FI, D, A, B, C,  7, 10, 0x432aff97);
-+      OP (FI, C, D, A, B, 14, 15, 0xab9423a7);
-+      OP (FI, B, C, D, A,  5, 21, 0xfc93a039);
-+      OP (FI, A, B, C, D, 12,  6, 0x655b59c3);
-+      OP (FI, D, A, B, C,  3, 10, 0x8f0ccc92);
-+      OP (FI, C, D, A, B, 10, 15, 0xffeff47d);
-+      OP (FI, B, C, D, A,  1, 21, 0x85845dd1);
-+      OP (FI, A, B, C, D,  8,  6, 0x6fa87e4f);
-+      OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0);
-+      OP (FI, C, D, A, B,  6, 15, 0xa3014314);
-+      OP (FI, B, C, D, A, 13, 21, 0x4e0811a1);
-+      OP (FI, A, B, C, D,  4,  6, 0xf7537e82);
-+      OP (FI, D, A, B, C, 11, 10, 0xbd3af235);
-+      OP (FI, C, D, A, B,  2, 15, 0x2ad7d2bb);
-+      OP (FI, B, C, D, A,  9, 21, 0xeb86d391);
-+
-+      /* Add the starting values of the context.  */
-+      A += A_save;
-+      B += B_save;
-+      C += C_save;
-+      D += D_save;
-+    }
-+
-+  /* Put checksum in context given as argument.  */
-+  ctx->A = A;
-+  ctx->B = B;
-+  ctx->C = C;
-+  ctx->D = D;
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/md5.h b/libclamav/libmspack-0.4alpha/test/md5.h
-new file mode 100644
-index 000000000000..0d22a70a2ccd
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/md5.h
-@@ -0,0 +1,165 @@
-+/* md5.h - Declaration of functions and data types used for MD5 sum
-+   computing library functions.
-+   Copyright (C) 1995, 1996, 1999 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 at prep.ai.mit.edu.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU General Public License as published by the
-+   Free Software Foundation; either version 2, or (at your option) any
-+   later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software Foundation,
-+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+
-+#ifndef _MD5_H
-+#define _MD5_H 1
-+
-+#include <stdio.h>
-+
-+#if defined HAVE_LIMITS_H || _LIBC
-+# include <limits.h>
-+#endif
-+
-+/* The following contortions are an attempt to use the C preprocessor
-+   to determine an unsigned integral type that is 32 bits wide.  An
-+   alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
-+   doing that would require that the configure script compile and *run*
-+   the resulting executable.  Locally running cross-compiled executables
-+   is usually not possible.  */
-+
-+#ifdef _LIBC
-+# include <stdint.h>
-+typedef uint32_t md5_uint32;
-+typedef uintptr_t md5_uintptr;
-+#else
-+# if defined __STDC__ && __STDC__
-+#  define UINT_MAX_32_BITS 4294967295U
-+# else
-+#  define UINT_MAX_32_BITS 0xFFFFFFFF
-+# endif
-+
-+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
-+   This should be valid for all systems GNU cares about because
-+   that doesn't include 16-bit systems, and only modern systems
-+   (that certainly have <limits.h>) have 64+-bit integral types.  */
-+
-+# ifndef UINT_MAX
-+#  define UINT_MAX UINT_MAX_32_BITS
-+# endif
-+
-+# if UINT_MAX == UINT_MAX_32_BITS
-+   typedef unsigned int md5_uint32;
-+# else
-+#  if USHRT_MAX == UINT_MAX_32_BITS
-+    typedef unsigned short md5_uint32;
-+#  else
-+#   if ULONG_MAX == UINT_MAX_32_BITS
-+     typedef unsigned long md5_uint32;
-+#   else
-+     /* The following line is intended to evoke an error.
-+        Using #error is not portable enough.  */
-+     "Cannot determine unsigned 32-bit data type."
-+#   endif
-+#  endif
-+# endif
-+/* We have to make a guess about the integer type equivalent in size
-+   to pointers which should always be correct.  */
-+typedef unsigned long int md5_uintptr;
-+#endif
-+
-+#undef __P
-+#if defined (__STDC__) && __STDC__
-+#define	__P(x) x
-+#else
-+#define	__P(x) ()
-+#endif
-+
-+/* Structure to save state of computation between the single steps.  */
-+struct md5_ctx
-+{
-+  md5_uint32 A;
-+  md5_uint32 B;
-+  md5_uint32 C;
-+  md5_uint32 D;
-+
-+  md5_uint32 total[2];
-+  md5_uint32 buflen;
-+  char buffer[128];
-+};
-+
-+/*
-+ * The following three functions are build up the low level used in
-+ * the functions `md5_stream' and `md5_buffer'.
-+ */
-+
-+/* Initialize structure containing state of computation.
-+   (RFC 1321, 3.3: Step 3)  */
-+extern void md5_init_ctx __P ((struct md5_ctx *ctx));
-+
-+/* Starting with the result of former calls of this function (or the
-+   initialization function update the context for the next LEN bytes
-+   starting at BUFFER.
-+   It is necessary that LEN is a multiple of 64!!! */
-+extern void md5_process_block __P ((const void *buffer, size_t len,
-+				    struct md5_ctx *ctx));
-+
-+/* Starting with the result of former calls of this function (or the
-+   initialization function update the context for the next LEN bytes
-+   starting at BUFFER.
-+   It is NOT required that LEN is a multiple of 64.  */
-+extern void md5_process_bytes __P ((const void *buffer, size_t len,
-+				    struct md5_ctx *ctx));
-+
-+/* Process the remaining bytes in the buffer and put result from CTX
-+   in first 16 bytes following RESBUF.  The result is always in little
-+   endian byte order, so that a byte-wise output yields to the wanted
-+   ASCII representation of the message digest.
-+
-+   IMPORTANT: On some systems it is required that RESBUF be correctly
-+   aligned for a 32 bits value.  */
-+extern void *md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
-+
-+
-+/* Put result from CTX in first 16 bytes following RESBUF.  The result is
-+   always in little endian byte order, so that a byte-wise output yields
-+   to the wanted ASCII representation of the message digest.
-+
-+   IMPORTANT: On some systems it is required that RESBUF is correctly
-+   aligned for a 32 bits value.  */
-+extern void *md5_read_ctx __P ((const struct md5_ctx *ctx, void *resbuf));
-+
-+
-+/* Compute MD5 message digest for bytes read from STREAM.  The
-+   resulting message digest number will be written into the 16 bytes
-+   beginning at RESBLOCK.  */
-+extern int md5_stream __P ((FILE *stream, void *resblock));
-+
-+/* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
-+   result is always in little endian byte order, so that a byte-wise
-+   output yields to the wanted ASCII representation of the message
-+   digest.  */
-+extern void *md5_buffer __P ((const char *buffer, size_t len, void *resblock));
-+
-+/* The following is from gnupg-1.0.2's cipher/bithelp.h.  */
-+/* Rotate a 32 bit integer by n bytes */
-+#if defined __GNUC__ && defined __i386__
-+static inline md5_uint32
-+rol(md5_uint32 x, int n)
-+{
-+  __asm__("roll %%cl,%0"
-+	  :"=r" (x)
-+	  :"0" (x),"c" (n));
-+  return x;
-+}
-+#else
-+# define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )
-+#endif
-+
-+#endif
-diff --git a/libclamav/libmspack-0.4alpha/test/md5_fh.h b/libclamav/libmspack-0.4alpha/test/md5_fh.h
-new file mode 100644
-index 000000000000..385426e2e81f
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/md5_fh.h
-@@ -0,0 +1,123 @@
-+/* an mspack_system implementation which reads one or more files, and
-+ * only writes to one file; the file is not actually written to, but
-+ * an MD5 sum is computed and is available once the written-to file is
-+ * closed. You can use anything for the written-to filename, NULL is
-+ * probably the most obvious. The code is not multithreadable.
-+ */
-+
-+#include <md5.h>
-+#include <stdio.h>
-+#include <stdarg.h>
-+
-+struct md5_ctx md5_context;
-+char md5_string[33];
-+
-+struct mspack_file_p {
-+    FILE *fh;
-+};
-+
-+static struct mspack_file *m_open(struct mspack_system *self, const char *filename, int mode) {
-+    struct mspack_file_p *fh;
-+    if (mode != MSPACK_SYS_OPEN_WRITE &&
-+	mode != MSPACK_SYS_OPEN_READ) return NULL;
-+
-+    if ((fh = (struct mspack_file_p *) malloc(sizeof(struct mspack_file_p)))) {
-+	if (mode == MSPACK_SYS_OPEN_WRITE) {
-+	    fh->fh = NULL;
-+	    md5_init_ctx(&md5_context);
-+	    return (struct mspack_file *) fh;
-+	}
-+	else {
-+	    if ((fh->fh = fopen(filename, "rb")))
-+		return (struct mspack_file *) fh;
-+	}
-+	/* error - free file handle and return NULL */
-+	free(fh);
-+    }
-+    return NULL;
-+}
-+
-+static void m_close(struct mspack_file *file) {
-+  struct mspack_file_p *self = (struct mspack_file_p *) file;
-+  if (self) {
-+      if (self->fh) fclose(self->fh);
-+      else {
-+	  unsigned char md5[16];
-+	  md5_finish_ctx(&md5_context, (void *) &md5);
-+	  snprintf(md5_string, sizeof(md5_string),
-+		   "%02x%02x%02x%02x%02x%02x%02x%02x"
-+		   "%02x%02x%02x%02x%02x%02x%02x%02x",
-+		   md5[0],  md5[1],  md5[2],  md5[3],
-+		   md5[4],  md5[5],  md5[6],  md5[7],
-+		   md5[8],  md5[9],  md5[10], md5[11],
-+		   md5[12], md5[13], md5[14], md5[15]);
-+      }
-+      free(self);
-+  }
-+}
-+
-+static int m_read(struct mspack_file *file, void *buffer, int bytes) {
-+  struct mspack_file_p *self = (struct mspack_file_p *) file;
-+  if (self && self->fh && buffer && bytes >= 0) {
-+      size_t count = fread(buffer, 1, bytes, self->fh);
-+      if (!ferror(self->fh)) return (int) count;
-+  }
-+  return -1;
-+}
-+
-+static int m_write(struct mspack_file *file, void *buffer, int bytes) {
-+    struct mspack_file_p *self = (struct mspack_file_p *) file;
-+    if (!self || self->fh || !buffer || bytes < 0) return -1;
-+    md5_process_bytes(buffer, bytes, &md5_context);
-+    return bytes;
-+}
-+
-+static int m_seek(struct mspack_file *file, off_t offset, int mode) {
-+    struct mspack_file_p *self = (struct mspack_file_p *) file;
-+    if (self && self->fh) {
-+	switch (mode) {
-+	case MSPACK_SYS_SEEK_START: mode = SEEK_SET; break;
-+	case MSPACK_SYS_SEEK_CUR:   mode = SEEK_CUR; break;
-+	case MSPACK_SYS_SEEK_END:   mode = SEEK_END; break;
-+	default: return -1;
-+	}
-+#if HAVE_FSEEKO
-+	return fseeko(self->fh, offset, mode);
-+#else
-+	return fseek(self->fh, offset, mode);
-+#endif
-+    }
-+    return -1;
-+}
-+
-+static off_t m_tell(struct mspack_file *file) {
-+    struct mspack_file_p *self = (struct mspack_file_p *) file;
-+#if HAVE_FSEEKO
-+    return (self && self->fh) ? (off_t) ftello(self->fh) : 0;
-+#else
-+    return (self && self->fh) ? (off_t) ftell(self->fh) : 0;
-+#endif
-+}
-+
-+static void m_msg(struct mspack_file *file, const char *format, ...) {
-+    va_list ap;
-+    va_start(ap, format);
-+    vfprintf(stderr, format, ap);
-+    va_end(ap);
-+    fputc((int) '\n', stderr);
-+    fflush(stderr);
-+}
-+static void *m_alloc(struct mspack_system *self, size_t bytes) {
-+    return malloc(bytes);
-+}
-+static void m_free(void *buffer) {
-+    free(buffer);
-+}
-+static void m_copy(void *src, void *dest, size_t bytes) {
-+    memcpy(dest, src, bytes);
-+}
-+
-+static struct mspack_system read_files_write_md5 = {
-+    &m_open, &m_close, &m_read, &m_write, &m_seek,
-+    &m_tell, &m_msg, &m_alloc, &m_free, &m_copy, NULL
-+};
-diff --git a/libclamav/libmspack-0.4alpha/test/multifh.c b/libclamav/libmspack-0.4alpha/test/multifh.c
-new file mode 100644
-index 000000000000..f7ed758c4da1
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/multifh.c
-@@ -0,0 +1,435 @@
-+/* An implementation of the mspack_system interface which can access many
-+ * things:
-+ * - regular disk files
-+ * - already opened stdio FILE* file pointers
-+ * - open file descriptors
-+ * - blocks of memory
-+ */
-+
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <string.h>
-+#include <mspack.h>
-+
-+/* definitions */
-+
-+#define MTYPE_DISKFILE  (0x01)
-+#define MTYPE_STDIOFH   (0x02)
-+#define MTYPE_FILEDESC  (0x03)
-+#define MTYPE_MEMORY    (0x04)
-+
-+struct m_filename {
-+  unsigned char type;   /* one of MTYPE_DISKFILE, STDIOFH, FILEDESC or MEMORY */
-+  const char *filename; /* the user-friendly printable filename (may be NULL) */
-+  union {
-+    const char *diskfile; /* char *filename      for MTYPE_DISKFILE */
-+    FILE *stdiofh;        /* FILE *existing_fh   for MTYPE_STDIOFH */
-+    int filedesc;         /* int file_descriptor for MTYPE_FILEDESC */
-+    struct {
-+      unsigned char *data;
-+      size_t length;
-+    } memory;
-+  } x;
-+};
-+
-+struct m_file {
-+  struct m_filename *file; /* pointer back to the m_filename data */
-+  union {
-+    FILE *fh;        /* only used in DISKFILE, STDIOFH and FILEDESC types */
-+    size_t position; /* only used in MEMORY types */
-+  } x;
-+};
-+
-+/* ------------------------------------------------------------------------ */
-+/* mspack_system implementation */
-+
-+static void *m_alloc(struct mspack_system *self, size_t bytes) {
-+  return malloc(bytes);
-+}
-+
-+static void m_free(void *buffer) {
-+  free(buffer);
-+}
-+
-+static void m_copy(void *src, void *dest, size_t bytes) {
-+  memcpy(dest, src, bytes);
-+}
-+
-+/* A message printer that prints to stderr */
-+static void m_msg(struct m_file *file, const char *format, ...) {
-+  va_list ap;
-+  if (file && file->file && file->file->filename) {
-+    fprintf(stderr, "%s: ", file->file->filename);
-+  }
-+  va_start(ap, format);
-+  vfprintf(stderr, format, ap);
-+  va_end(ap);
-+  fputc((int) '\n', stderr);
-+  fflush(stderr);
-+}
-+
-+
-+static struct m_file *m_open_mem(struct mspack_system *self,
-+				 struct m_filename *fn, int mode)
-+{
-+  struct m_file *fh;
-+
-+  /* validate arguments of the filename */
-+  if (!fn->x.memory.data)   return NULL;
-+  if (!fn->x.memory.length) return NULL;
-+
-+  if ((fh = (struct m_file *) m_alloc(self, sizeof(struct m_file)))) {
-+    fh->x.position = (mode == MSPACK_SYS_OPEN_APPEND) ?
-+      fn->x.memory.length : 0;
-+    fh->file = fn;
-+  }
-+  return fh;
-+}
-+
-+static struct m_file *m_open_file(struct mspack_system *self,
-+				  struct m_filename *fn, int mode)
-+{
-+  struct m_file *fh;
-+  const char *fmode;
-+  int fd;
-+
-+  switch (mode) {
-+  case MSPACK_SYS_OPEN_READ:   fmode = "rb";  break;
-+  case MSPACK_SYS_OPEN_WRITE:  fmode = "wb";  break;
-+  case MSPACK_SYS_OPEN_UPDATE: fmode = "r+b"; break;
-+  case MSPACK_SYS_OPEN_APPEND: fmode = "ab";  break;
-+  default: return NULL;
-+  }
-+
-+  /* validate the arguments in the provided filename */
-+  switch (fn->type) {
-+  case MTYPE_DISKFILE: if (!fn->x.diskfile)    return NULL; break;
-+  case MTYPE_STDIOFH:  if (!fn->x.stdiofh)     return NULL; break;
-+  case MTYPE_FILEDESC: if (fn->x.filedesc < 0) return NULL; break;
-+  }
-+
-+  /* allocate memory for the file handle */
-+  if (!(fh = (struct m_file *) m_alloc(self, sizeof(struct m_file)))) return NULL;
-+
-+  /* open or duplicate the filehandle */
-+  switch (fn->type) {
-+  case MTYPE_DISKFILE:
-+    fh->x.fh = fopen(fn->x.diskfile, fmode);
-+    break;
-+
-+  case MTYPE_STDIOFH:
-+    fd = fileno(fn->x.stdiofh);
-+    fh->x.fh = (fd >= 0) ? fdopen(fd, fmode) : NULL;
-+    break;
-+
-+  case MTYPE_FILEDESC:
-+    fh->x.fh = fdopen(fn->x.filedesc, fmode);
-+    break;
-+  }
-+
-+  /* validate the new stdio filehandle */
-+  if (fh->x.fh) {
-+    fh->file = fn;
-+  }
-+  else {
-+    free(fh);
-+    fh = NULL;
-+  }
-+
-+  return fh;
-+}
-+
-+static struct m_file *m_open(struct mspack_system *self,
-+			     struct m_filename *fn, int mode)
-+{
-+  if (!self || !fn) return NULL;
-+
-+  switch (fn->type) {
-+  case MTYPE_DISKFILE:
-+  case MTYPE_STDIOFH:
-+  case MTYPE_FILEDESC:
-+    return m_open_file(self, fn, mode);
-+
-+  case MTYPE_MEMORY:
-+    return m_open_mem(self, fn, mode);
-+  }
-+  return NULL;
-+}
-+
-+static void m_close(struct m_file *fh) {
-+  if (!fh || !fh->file) return;
-+  if (fh->file->type != MTYPE_MEMORY) fclose(fh->x.fh);
-+  m_free(fh);
-+}
-+
-+
-+static int m_read(struct m_file *fh, void *buffer, int bytes) {
-+  if (!fh || !fh->file || !buffer || bytes < 0) return -1;
-+
-+  if (fh->file->type == MTYPE_MEMORY) {
-+    int count = fh->file->x.memory.length - fh->x.position;
-+    if (count > bytes) count = bytes;
-+    if (count > 0) {
-+      m_copy(&fh->file->x.memory.data[fh->x.position], buffer, (size_t) count);
-+    }
-+    fh->x.position += count;
-+    return count;
-+  }
-+  else {
-+    size_t count = fread(buffer, 1, (size_t) bytes, fh->x.fh);
-+    if (!ferror(fh->x.fh)) return (int) count;
-+  }
-+  return -1;
-+}
-+
-+
-+static int m_write(struct m_file *fh, void *buffer, int bytes) {
-+  if (!fh || !fh->file || !buffer || bytes < 0) return -1;
-+
-+  if (fh->file->type == MTYPE_MEMORY) {
-+    int count = fh->file->x.memory.length - fh->x.position;
-+    if (count > bytes) count = bytes;
-+    if (count > 0) {
-+      m_copy(buffer, &fh->file->x.memory.data[fh->x.position], (size_t) count);
-+    }
-+    fh->x.position += count;
-+    return count;
-+  }
-+  else {
-+    size_t count = fwrite(buffer, 1, (size_t) bytes, fh->x.fh);
-+    if (!ferror(fh->x.fh)) return (int) count;
-+  }
-+  return -1;
-+}
-+
-+
-+static int m_seek(struct m_file *fh, off_t offset, int mode) {
-+  if (!fh || !fh->file) return 1;
-+
-+  if (fh->file->type == MTYPE_MEMORY) {
-+    switch (mode) {
-+    case MSPACK_SYS_SEEK_START:
-+      break;
-+    case MSPACK_SYS_SEEK_CUR:
-+      offset += (off_t) fh->x.position;
-+      break;
-+    case MSPACK_SYS_SEEK_END:
-+      offset += (off_t) fh->file->x.memory.length;
-+      break;
-+    default:
-+      return 1;
-+    }
-+
-+    if (offset < 0) return 1;
-+    if (offset > (off_t) fh->file->x.memory.length) return 1;
-+    fh->x.position = (size_t) offset;
-+    return 0;
-+  }
-+
-+  /* file IO based method */
-+  switch (mode) {
-+  case MSPACK_SYS_SEEK_START: mode = SEEK_SET; break;
-+  case MSPACK_SYS_SEEK_CUR:   mode = SEEK_CUR; break;
-+  case MSPACK_SYS_SEEK_END:   mode = SEEK_END; break;
-+  default: return 1;
-+  }
-+#if HAVE_FSEEKO
-+  return fseeko(fh->x.fh, offset, mode);
-+#else
-+  return fseek(fh->x.fh, offset, mode);
-+#endif
-+}
-+
-+
-+static off_t m_tell(struct m_file *fh) {
-+  if (!fh || !fh->file) return -1;
-+  if (fh->file->type == MTYPE_MEMORY) {
-+    return (off_t) fh->x.position;
-+  }
-+#if HAVE_FSEEKO
-+  return (off_t) ftello(fh->x.fh);
-+#else
-+  return (off_t) ftell(fh->x.fh);
-+#endif
-+}
-+
-+
-+static struct mspack_system multi_system = {
-+  (struct mspack_file * (*)(struct mspack_system *, const char *, int)) &m_open,
-+  (void (*)(struct mspack_file *)) &m_close,
-+  (int (*)(struct mspack_file *, void *, int)) &m_read, 
-+  (int (*)(struct mspack_file *, void *, int)) &m_write,
-+  (int (*)(struct mspack_file *, off_t, int)) &m_seek, 
-+  (off_t (*)(struct mspack_file *)) &m_tell,
-+  (void (*)(struct mspack_file *, const char *, ...))  &m_msg,
-+  &m_alloc,
-+  &m_free,
-+  &m_copy,
-+  NULL
-+};
-+
-+/* ------------------------------------------------------------------------ */
-+/* constructors and destructor */
-+
-+const char *create_filename(const char *filename) {
-+  struct m_filename *fn;
-+
-+  if (!filename) return NULL; /* filename must not be null */
-+
-+  if ((fn = (struct m_filename *) malloc(sizeof(struct m_filename)))) {
-+    fn->type = MTYPE_DISKFILE;
-+    fn->filename = filename; /* pretty-printable filename */
-+    fn->x.diskfile = filename;
-+  }
-+  return (const char *) fn;
-+}
-+
-+const char *create_filename_from_handle(FILE *fh) {
-+  struct m_filename *fn;
-+
-+  if (!fh) return NULL; /* file handle must not be null */
-+
-+  if ((fn = (struct m_filename *) malloc(sizeof(struct m_filename)))) {
-+    fn->type = MTYPE_STDIOFH;
-+    fn->filename = NULL; /* pretty-printable filename */
-+    fn->x.stdiofh = fh;
-+  }
-+  return (const char *) fn;
-+}
-+
-+const char *create_filename_from_descriptor(int fd) {
-+  struct m_filename *fn;
-+
-+  if (fd < 0) return NULL; /* file descriptor must be valid */
-+
-+  if ((fn = (struct m_filename *) malloc(sizeof(struct m_filename)))) {
-+    fn->type = MTYPE_FILEDESC;
-+    fn->filename = NULL; /* pretty-printable filename */
-+    fn->x.filedesc = fd;
-+  }
-+  return (const char *) fn;
-+}
-+
-+const char *create_filename_from_memory(void *data, size_t length) {
-+  struct m_filename *fn;
-+
-+  if (!data) return NULL; /* data pointer must not be NULL */
-+  if (length == 0) return NULL; /* length must not be zero */
-+
-+  if ((fn = (struct m_filename *) malloc(sizeof(struct m_filename)))) {
-+    fn->type = MTYPE_MEMORY;
-+    fn->filename = NULL; /* pretty-printable filename */
-+    fn->x.memory.data   = (unsigned char *) data;
-+    fn->x.memory.length = length;
-+  }
-+  return (const char *) fn;
-+}
-+
-+void set_filename_printable_name(const char *filename, const char *name) {
-+  struct m_filename *fn = (struct m_filename *) filename;
-+  if (!fn) return;
-+  /* very basic validation of structure */
-+  if ((fn->type < MTYPE_DISKFILE) || (fn->type > MTYPE_MEMORY)) return;
-+  fn->filename = name;
-+}
-+
-+void free_filename(const char *filename) {
-+  free((void *) filename);
-+}
-+
-+/* ------------------------------------------------------------------------ */
-+/* example of usage with mscab_decompressor */
-+
-+/* a simple cabinet */
-+static unsigned char memory_cab[] = {
-+  0x4D,0x53,0x43,0x46,0x00,0x00,0x00,0x00,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,
-+  0x00,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x01,0x00,0x02,0x00,
-+  0x00,0x00,0x22,0x06,0x00,0x00,0x5E,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4D,
-+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x22,0xBA,0x59,0x20,0x00,
-+  0x68,0x65,0x6C,0x6C,0x6F,0x2E,0x63,0x00,0x4A,0x00,0x00,0x00,0x4D,0x00,0x00,
-+  0x00,0x00,0x00,0x6C,0x22,0xE7,0x59,0x20,0x00,0x77,0x65,0x6C,0x63,0x6F,0x6D,
-+  0x65,0x2E,0x63,0x00,0xBD,0x5A,0xA6,0x30,0x97,0x00,0x97,0x00,0x23,0x69,0x6E,
-+  0x63,0x6C,0x75,0x64,0x65,0x20,0x3C,0x73,0x74,0x64,0x69,0x6F,0x2E,0x68,0x3E,
-+  0x0D,0x0A,0x0D,0x0A,0x76,0x6F,0x69,0x64,0x20,0x6D,0x61,0x69,0x6E,0x28,0x76,
-+  0x6F,0x69,0x64,0x29,0x0D,0x0A,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x70,0x72,
-+  0x69,0x6E,0x74,0x66,0x28,0x22,0x48,0x65,0x6C,0x6C,0x6F,0x2C,0x20,0x77,0x6F,
-+  0x72,0x6C,0x64,0x21,0x5C,0x6E,0x22,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x23,
-+  0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x20,0x3C,0x73,0x74,0x64,0x69,0x6F,0x2E,
-+  0x68,0x3E,0x0D,0x0A,0x0D,0x0A,0x76,0x6F,0x69,0x64,0x20,0x6D,0x61,0x69,0x6E,
-+  0x28,0x76,0x6F,0x69,0x64,0x29,0x0D,0x0A,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,
-+  0x70,0x72,0x69,0x6E,0x74,0x66,0x28,0x22,0x57,0x65,0x6C,0x63,0x6F,0x6D,0x65,
-+  0x21,0x5C,0x6E,0x22,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A
-+};
-+
-+int main() {
-+  const char *mem_cab, *std_out, *std_err, *example;
-+  struct mscab_decompressor *cabd;
-+  struct mscabd_cabinet *cab;
-+  struct mscabd_file *file;
-+  int err;
-+
-+  mem_cab = create_filename_from_memory(&memory_cab[0], sizeof(memory_cab));
-+  if (!mem_cab) exit(1);
-+
-+  std_out = create_filename_from_descriptor(1);
-+  if (!std_out) exit(1);
-+
-+  std_err = create_filename_from_handle(stderr);
-+  if (!std_err) exit(1);
-+
-+  example = create_filename("example.txt");
-+  if (!example) exit(1);
-+
-+  set_filename_printable_name(mem_cab, "internal");
-+  set_filename_printable_name(std_out, "stdout");
-+  set_filename_printable_name(std_err, "stderr");
-+
-+  /* if self-test reveals an error */
-+  MSPACK_SYS_SELFTEST(err);
-+  if (err) exit(1);
-+
-+  /* create a cab decompressor using our custom mspack_system interface */
-+  if ((cabd = mspack_create_cab_decompressor(&multi_system))) {
-+
-+    /* open a cab file direct from memory */
-+    if ((cab = cabd->open(cabd, mem_cab))) {
-+
-+      /* first file in the cabinet: print it to stdout */
-+      file = cab->files;
-+      if (cabd->extract(cabd, file, std_out)) {
-+	exit(1);
-+      }
-+
-+      /* second file in the cabinet: print it to stderr */
-+      file = file->next;
-+      if (cabd->extract(cabd, file, std_err)) {
-+	exit(1);
-+      }
-+      /* also write it to "example.txt" */
-+      if (cabd->extract(cabd, file, example)) {
-+	exit(1);
-+      }
-+      cabd->close(cabd, cab);
-+    }
-+    else {
-+      fprintf(stderr, "can't open cabinet (%d)\n", cabd->last_error(cabd));
-+    }
-+    mspack_destroy_cab_decompressor(cabd);
-+  }
-+  else {
-+    fprintf(stderr, "can't make decompressor\n");
-+  }
-+
-+  free_filename(example);
-+  free_filename(std_err);
-+  free_filename(std_out);
-+  free_filename(mem_cab);
-+
-+  return 0;
-+
-+}
-diff --git a/libclamav/libmspack-0.4alpha/test/oabx.c b/libclamav/libmspack-0.4alpha/test/oabx.c
-new file mode 100644
-index 000000000000..53f675c68219
---- /dev/null
-+++ b/libclamav/libmspack-0.4alpha/test/oabx.c
-@@ -0,0 +1,41 @@
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <mspack.h>
-+
-+#include <error.h>
-+
-+int main(int argc, char *argv[]) {
-+    struct msoab_decompressor *oabd;
-+    int err;
-+
-+    setbuf(stdout, NULL);
-+    setbuf(stderr, NULL);
-+
-+    MSPACK_SYS_SELFTEST(err);
-+    if (err) return 0;
-+
-+    if ((oabd = mspack_create_oab_decompressor(NULL))) {
-+        if (argc == 3) {
-+            err = oabd->decompress(oabd, argv[1], argv[2]);
-+            if (err) fprintf(stderr, "%s -> %s: %s\n", argv[1], argv[2], error_msg(err));
-+        }
-+        else if (argc == 4) {
-+            err = oabd->decompress_incremental(oabd, argv[2], argv[1], argv[3]);
-+            if (err) fprintf(stderr, "%s + %s -> %s: %s\n", argv[1], argv[2], argv[3], error_msg(err));
-+        }
-+        else {
-+            fprintf(stderr, "Usage: %s <input> <output>\n", *argv);
-+            fprintf(stderr, "   or  %s <base> <patch> <output>\n", *argv);
-+        }
-+        mspack_destroy_oab_decompressor(oabd);
-+    }
-+    else {
-+        fprintf(stderr, "%s: can't make OAB decompressor\n", *argv);
-+    }
-+    return 0;
-+}
diff --git a/recipes-security/clamav/clamav-0.98.5/0012-allow-to-use-internal-libmspack-if-the-external-is-n.patch b/recipes-security/clamav/clamav-0.98.5/0012-allow-to-use-internal-libmspack-if-the-external-is-n.patch
deleted file mode 100644
index 798aeba..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0012-allow-to-use-internal-libmspack-if-the-external-is-n.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 2bb998ed68841356499fe5c5cde875e87563572c Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
-Date: Wed, 30 Jul 2014 21:59:17 +0200
-Subject: allow to use internal libmspack if the external is not available
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- configure.ac          | 16 ++++++++++++++--
- libclamav/Makefile.am | 30 +++++++++++++++++++++++++++++-
- 2 files changed, 43 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 02caad29410a..5abe018a00b0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -131,6 +131,18 @@ m4_include([m4/reorganization/libs/curl.m4])
- 
- m4_include([m4/reorganization/substitutions.m4])
- 
-+PKG_CHECK_MODULES([LIBMSPACK], [libmspack],
-+		  use_internal_mspack=no, use_internal_mspack=yes)
-+
-+AM_CONDITIONAL([USE_INTERNAL_MSPACK], test "x$use_internal_mspack" = "xyes")
-+
-+if test "x$use_internal_mspack" = "xyes"; then
-+	mspack_msg="Internal"
-+	AC_CONFIG_SUBDIRS([libclamav/libmspack-0.4alpha])
-+else
-+	mspack_msg="External, $LIBMSPACK_CFLAGS $LIBMSPACK_LIBS"
-+fi
-+
- AM_CONDITIONAL([ENABLE_CLAMSUBMIT], [test "$have_curl" = "yes"])
- 
- AC_CONFIG_FILES([
-@@ -178,8 +190,6 @@ fi
- AM_CONDITIONAL([ENABLE_LLVM],
- 	       [test "$subdirfailed" != "yes" && test "$enable_llvm" != "no"])
- 
--PKG_CHECK_MODULES([LIBMSPACK], [libmspack])
--
- no_recursion="yes";
- AC_OUTPUT([libclamav/Makefile])
- 
-@@ -236,6 +246,8 @@ if test "x$PCRE_HOME" = "x"; then
- else
-     CL_MSG_STATUS([pcre        ],[$PCRE_HOME],[$have_pcre])
- fi
-+CL_MSG_STATUS([preclass    ],[$LIBJSON_HOME],[$have_json])
-+CL_MSG_STATUS([libmspack   ],[yes],[$mspack_msg])
- if test "x$XML_LIBS" = "x"; then 
-     CL_MSG_STATUS([dmg and xar ],[no],[])
- else
-diff --git a/libclamav/Makefile.am b/libclamav/Makefile.am
-index 538e83dcdd03..6d2cf920d6e2 100644
---- a/libclamav/Makefile.am
-+++ b/libclamav/Makefile.am
-@@ -122,11 +122,12 @@ libclamav_internal_utils_nothreads_la_SOURCES=str.c\
- libclamav_internal_utils_nothreads_la_LDFLAGS=-static @SSL_LDFLAGS@ @JSON_LDFLAGS@
- libclamav_internal_utils_nothreads_la_CFLAGS=$(AM_CFLAGS) -DCL_NOTHREADS @SSL_CPPFLAGS@ @JSON_CPPFLAGS@
- libclamav_internal_utils_nothreads_la_LIBADD=@SSL_LIBS@ @JSON_LIBS@
-+SUBDIRS=
- 
- if ENABLE_LLVM
- LLVMLIBADD=c++/libclamavcxx.la -lstdc++ -lm
- LLVMDEP=c++/libclamavcxx.la
--SUBDIRS=c++
-+SUBDIRS+=c++
- else
- LLVMLIBADD=libclamav_nocxx.la
- LLVMDEP=libclamav_nocxx.la
-@@ -147,8 +148,35 @@ if VERSIONSCRIPT
- libclamav_la_LDFLAGS += -Wl, at VERSIONSCRIPTFLAG@, at top_srcdir@/libclamav/libclamav.map
- endif
- 
-+if USE_INTERNAL_MSPACK
-+SUBDIRS += libmspack-0.4alpha
-+libclamav_la_CFLAGS += -I at top_srcdir@/libclamav/libmspack-0.4alpha/mspack
-+libclamav_la_LIBADD +=  @top_builddir@/libclamav/libmspack-0.4alpha/.libs/cabc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/system.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/kwajd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/hlpc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/chmd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/qtmd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/litc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/oabc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/lzxd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/litd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/crc32.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/lzssd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/kwajc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/cabd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/szddd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/lzxc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/mszipd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/szddc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/oabd.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/chmc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/mszipc.o \
-+			@top_builddir@/libclamav/libmspack-0.4alpha/.libs/hlpd.o
-+else
- libclamav_la_CFLAGS += $(LIBMSPACK_CFLAGS)
- libclamav_la_LDFLAGS += $(LIBMSPACK_LIBS)
-+endif
- 
- include_HEADERS = clamav.h
- 
diff --git a/recipes-security/clamav/clamav-0.98.5/0013-fix-autoreconf-with-embedded-libmspack.patch b/recipes-security/clamav/clamav-0.98.5/0013-fix-autoreconf-with-embedded-libmspack.patch
deleted file mode 100644
index f7175d3..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0013-fix-autoreconf-with-embedded-libmspack.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b1ab1a88f38c9d9cea2433dac33b8ecb31b3c799 Mon Sep 17 00:00:00 2001
-From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
-Date: Mon, 22 Sep 2014 21:50:05 +0200
-Subject: fix autoreconf with embedded libmspack
-
----
- libclamav/libmspack-0.4alpha/NEWS         | 1 +
- libclamav/libmspack-0.4alpha/configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libclamav/libmspack-0.4alpha/NEWS b/libclamav/libmspack-0.4alpha/NEWS
-index e69de29bb2d1..8d1c8b69c3fc 100644
---- a/libclamav/libmspack-0.4alpha/NEWS
-+++ b/libclamav/libmspack-0.4alpha/NEWS
-@@ -0,0 +1 @@
-+ 
-diff --git a/libclamav/libmspack-0.4alpha/configure.ac b/libclamav/libmspack-0.4alpha/configure.ac
-index 55fb6ce5ee9d..1fc98577f152 100644
---- a/libclamav/libmspack-0.4alpha/configure.ac
-+++ b/libclamav/libmspack-0.4alpha/configure.ac
-@@ -46,5 +46,5 @@ AC_SYS_LARGEFILE
- AC_FUNC_FSEEKO
- 
- # Checks for library functions.
--AC_CONFIG_FILES([Makefile doc/Makefile doc/Doxyfile libmspack.pc])
-+AC_CONFIG_FILES([Makefile libmspack.pc])
- AC_OUTPUT
diff --git a/recipes-security/clamav/clamav-0.98.5/0014-remove-AC_CONFIG_SRCDIR-llvm-configure-from-libclama.patch b/recipes-security/clamav/clamav-0.98.5/0014-remove-AC_CONFIG_SRCDIR-llvm-configure-from-libclama.patch
deleted file mode 100644
index 8bd2491..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0014-remove-AC_CONFIG_SRCDIR-llvm-configure-from-libclama.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 573da4644d9dbcff3107c4bc3a8a346a5ba0b84d Mon Sep 17 00:00:00 2001
-From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
-Date: Tue, 14 Oct 2014 20:16:04 +0200
-Subject: remove AC_CONFIG_SRCDIR([llvm/configure]) from
- libclamav/c++/configure.ac to allow compilation without the
- libclamav/c++/llvm directory
-
----
- libclamav/c++/configure.ac | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/libclamav/c++/configure.ac b/libclamav/c++/configure.ac
-index 3c7c7e26fbf8..43e187ff1f56 100644
---- a/libclamav/c++/configure.ac
-+++ b/libclamav/c++/configure.ac
-@@ -16,7 +16,6 @@ dnl   MA 02110-1301, USA.
- AC_PREREQ([2.59])
- AC_INIT([libclamavc++],[devel],[http://bugs.clamav.net])
- AC_CONFIG_AUX_DIR([config])
--AC_CONFIG_SRCDIR([llvm/configure])
- AC_CONFIG_MACRO_DIR([m4])
- AC_CONFIG_HEADER([clamavcxx-config.h])
- AC_CANONICAL_TARGET
diff --git a/recipes-security/clamav/clamav-0.98.5/0015-bb-10731-Allow-to-specificy-a-group-for-the-socket-o.patch b/recipes-security/clamav/clamav-0.98.5/0015-bb-10731-Allow-to-specificy-a-group-for-the-socket-o.patch
deleted file mode 100644
index 8619a51..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0015-bb-10731-Allow-to-specificy-a-group-for-the-socket-o.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-From 9ba0bd8840f8be4cccaf8134b65a012dffdd8ae0 Mon Sep 17 00:00:00 2001
-From: Shawn Webb <swebb at sourcefire.com>
-Date: Thu, 31 Jul 2014 11:50:23 -0400
-Subject: bb#10731 - Allow to specificy a group for the socket of which the
- user is not a member
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- clamav-milter/clamav-milter.c | 193 +++++++++++++++++++++---------------------
- 1 file changed, 98 insertions(+), 95 deletions(-)
-
-diff --git a/clamav-milter/clamav-milter.c b/clamav-milter/clamav-milter.c
-index 2c7a4d7d3414..99e7fe7fac04 100644
---- a/clamav-milter/clamav-milter.c
-+++ b/clamav-milter/clamav-milter.c
-@@ -116,6 +116,104 @@ int main(int argc, char **argv) {
- 	}
-     }
- 
-+    if(!(my_socket = optget(opts, "MilterSocket")->strarg)) {
-+	logg("!Please configure the MilterSocket directive\n");
-+	logg_close();
-+	optfree(opts);
-+	return 1;
-+    }
-+
-+    if(smfi_setconn(my_socket) == MI_FAILURE) {
-+	logg("!smfi_setconn failed\n");
-+	logg_close();
-+	optfree(opts);
-+	return 1;
-+    }
-+    if(smfi_register(descr) == MI_FAILURE) {
-+	logg("!smfi_register failed\n");
-+	logg_close();
-+	optfree(opts);
-+	return 1;
-+    }
-+    opt = optget(opts, "FixStaleSocket");
-+    umsk = umask(0777); /* socket is created with 000 to avoid races */
-+    if(smfi_opensocket(opt->enabled) == MI_FAILURE) {
-+	logg("!Failed to create socket %s\n", my_socket);
-+	logg_close();
-+	optfree(opts);
-+	return 1;
-+    }
-+    umask(umsk); /* restore umask */
-+    if(strncmp(my_socket, "inet:", 5) && strncmp(my_socket, "inet6:", 6)) {
-+	/* set group ownership and perms on the local socket */
-+	char *sock_name = my_socket;
-+	mode_t sock_mode;
-+	if(!strncmp(my_socket, "unix:", 5))
-+	    sock_name += 5;
-+	if(!strncmp(my_socket, "local:", 6))
-+	    sock_name += 6;
-+	if(*my_socket == ':')
-+	    sock_name ++;
-+
-+	if(optget(opts, "MilterSocketGroup")->enabled) {
-+	    char *gname = optget(opts, "MilterSocketGroup")->strarg, *end;
-+	    gid_t sock_gid = strtol(gname, &end, 10);
-+	    if(*end) {
-+		struct group *pgrp = getgrnam(gname);
-+		if(!pgrp) {
-+		    logg("!Unknown group %s\n", gname);
-+		    logg_close();
-+		    optfree(opts);
-+		    return 1;
-+		}
-+		sock_gid = pgrp->gr_gid;
-+	    }
-+	    if(chown(sock_name, -1, sock_gid)) {
-+		logg("!Failed to change socket ownership to group %s\n", gname);
-+		logg_close();
-+		optfree(opts);
-+		return 1;
-+	    }
-+	}
-+
-+	if ((opt = optget(opts, "User"))->enabled) {
-+	    struct passwd *user;
-+	    if ((user = getpwnam(opt->strarg)) == NULL) {
-+		logg("ERROR: Can't get information about user %s.\n",
-+			opt->strarg);
-+		logg_close();
-+		optfree(opts);
-+		return 1;
-+	    }
-+
-+	    if(chown(sock_name, user->pw_uid, -1)) {
-+		logg("!Failed to change socket ownership to user %s\n", user->pw_name);
-+		optfree(opts);
-+		logg_close();
-+		return 1;
-+	    }
-+	}
-+
-+	if(optget(opts, "MilterSocketMode")->enabled) {
-+	    char *end;
-+	    sock_mode = strtol(optget(opts, "MilterSocketMode")->strarg, &end, 8);
-+	    if(*end) {
-+		logg("!Invalid MilterSocketMode %s\n", optget(opts, "MilterSocketMode")->strarg);
-+		logg_close();
-+		optfree(opts);
-+		return 1;
-+	    }
-+	} else
-+	    sock_mode = 0777 & ~umsk;
-+
-+	if(chmod(sock_name, sock_mode & 0666)) {
-+	    logg("!Cannot set milter socket permission to %s\n", optget(opts, "MilterSocketMode")->strarg);
-+	    logg_close();
-+	    optfree(opts);
-+	    return 1;
-+	}
-+    }
-+
-     if(geteuid() == 0 && (opt = optget(opts, "User"))->enabled) {
-         struct passwd *user = NULL;
- 	if((user = getpwnam(opt->strarg)) == NULL) {
-@@ -248,15 +346,6 @@ int main(int argc, char **argv) {
- 
-     multircpt = optget(opts, "SupportMultipleRecipients")->enabled;
-     
--    if(!(my_socket = optget(opts, "MilterSocket")->strarg)) {
--	logg("!Please configure the MilterSocket directive\n");
--	localnets_free();
--	whitelist_free();
--	logg_close();
--	optfree(opts);
--	return 1;
--    }
--
-     if(!optget(opts, "Foreground")->enabled) {
- 	if(daemonize() == -1) {
- 	    logg("!daemonize() failed\n");
-@@ -271,92 +360,6 @@ int main(int argc, char **argv) {
- 	    logg("^Can't change current working directory to root\n");
-     }
- 
--    if(smfi_setconn(my_socket) == MI_FAILURE) {
--	logg("!smfi_setconn failed\n");
--	localnets_free();
--	whitelist_free();
--	logg_close();
--	optfree(opts);
--	return 1;
--    }
--    if(smfi_register(descr) == MI_FAILURE) {
--	logg("!smfi_register failed\n");
--	localnets_free();
--	whitelist_free();
--	logg_close();
--	optfree(opts);
--	return 1;
--    }
--    opt = optget(opts, "FixStaleSocket");
--    umsk = umask(0777); /* socket is created with 000 to avoid races */ 
--    if(smfi_opensocket(opt->enabled) == MI_FAILURE) {
--	logg("!Failed to create socket %s\n", my_socket);
--	localnets_free();
--	whitelist_free();
--	logg_close();
--	optfree(opts);
--	return 1;
--    }
--    umask(umsk); /* restore umask */
--    if(strncmp(my_socket, "inet:", 5) && strncmp(my_socket, "inet6:", 6)) {
--	/* set group ownership and perms on the local socket */
--	char *sock_name = my_socket;
--	mode_t sock_mode;
--	if(!strncmp(my_socket, "unix:", 5))
--	    sock_name += 5;
--	if(!strncmp(my_socket, "local:", 6))
--	    sock_name += 6;
--	if(*my_socket == ':')
--	    sock_name ++;
--
--	if(optget(opts, "MilterSocketGroup")->enabled) {
--	    char *gname = optget(opts, "MilterSocketGroup")->strarg, *end;
--	    gid_t sock_gid = strtol(gname, &end, 10);
--	    if(*end) {
--		struct group *pgrp = getgrnam(gname);
--		if(!pgrp) {
--		    logg("!Unknown group %s\n", gname);
--		    localnets_free();
--		    whitelist_free();
--		    logg_close();
--		    optfree(opts);
--		    return 1;
--		}
--		sock_gid = pgrp->gr_gid;
--	    }
--	    if(chown(sock_name, -1, sock_gid)) {
--		logg("!Failed to change socket ownership to group %s\n", gname);
--		localnets_free();
--		whitelist_free();
--		logg_close();
--		optfree(opts);
--		return 1;
--	    }
--	}
--	if(optget(opts, "MilterSocketMode")->enabled) {
--	    char *end;
--	    sock_mode = strtol(optget(opts, "MilterSocketMode")->strarg, &end, 8);
--	    if(*end) {
--		logg("!Invalid MilterSocketMode %s\n", optget(opts, "MilterSocketMode")->strarg);
--		localnets_free();
--		whitelist_free();
--		logg_close();
--		optfree(opts);
--		return 1;
--	    }
--	} else
--	    sock_mode = 0777 & ~umsk;
--
--	if(chmod(sock_name, sock_mode & 0666)) {
--	    logg("!Cannot set milter socket permission to %s\n", optget(opts, "MilterSocketMode")->strarg);
--	    localnets_free();
--	    whitelist_free();
--	    logg_close();
--	    optfree(opts);
--	    return 1;
--	}
--    }
--
-     maxfilesize = optget(opts, "MaxFileSize")->numarg;
-     if(!maxfilesize) {
- 	logg("^Invalid MaxFileSize, using default (%d)\n", CLI_DEFAULT_MAXFILESIZE);
diff --git a/recipes-security/clamav/clamav-0.98.5/0016-clamav-milter-add-additinal-SMFIF_-flags-before-invo.patch b/recipes-security/clamav/clamav-0.98.5/0016-clamav-milter-add-additinal-SMFIF_-flags-before-invo.patch
deleted file mode 100644
index 621c6dc..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0016-clamav-milter-add-additinal-SMFIF_-flags-before-invo.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From dbc72db36eced2d3ca7c5b7f14970528c435429e Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
-Date: Sun, 26 Oct 2014 12:11:09 +0100
-Subject: clamav-milter: add additinal SMFIF_* flags before invoking
- smfi_register()
-
-unfortunately after the shifting of the code (so that the socket could
-be part of a group which is not part of the clamav user) I forgot (or
-did not see it) to have the header flags added before the
-smfi_register() was invoked. As a result the socket was working but it
-was unable to add the X-Virus-Scanned &  X-Virus-Status flags. This
-patch fixes the issue.
-
-https://bugzilla.clamav.net/show_bug.cgi?id=10731
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- clamav-milter/clamav-milter.c | 48 ++++++++++++++++++++++++-------------------
- 1 file changed, 27 insertions(+), 21 deletions(-)
-
-diff --git a/clamav-milter/clamav-milter.c b/clamav-milter/clamav-milter.c
-index 99e7fe7fac04..22db98ab7c5e 100644
---- a/clamav-milter/clamav-milter.c
-+++ b/clamav-milter/clamav-milter.c
-@@ -116,6 +116,33 @@ int main(int argc, char **argv) {
- 	}
-     }
- 
-+    pt = optget(opts, "AddHeader")->strarg;
-+    if (strcasecmp(pt, "No")) {
-+	char myname[255];
-+
-+	if (((opt = optget(opts, "ReportHostname"))->enabled &&
-+	     strncpy(myname, opt->strarg, sizeof(myname))) ||
-+	    !gethostname(myname, sizeof(myname))) {
-+
-+	    myname[sizeof(myname)-1] = '\0';
-+	    snprintf(xvirushdr, sizeof(xvirushdr), "clamav-milter %s at %s",
-+		     get_version(), myname);
-+	} else {
-+	    snprintf(xvirushdr, sizeof(xvirushdr), "clamav-milter %s",
-+		     get_version());
-+	}
-+	xvirushdr[sizeof(xvirushdr)-1] = '\0';
-+
-+	descr.xxfi_flags |= SMFIF_ADDHDRS;
-+
-+	if (strcasecmp(pt, "Add")) { /* Replace or Yes */
-+	    descr.xxfi_flags |= SMFIF_CHGHDRS;
-+	    addxvirus = 1;
-+	} else { /* Add */
-+	    addxvirus = 2;
-+	}
-+    }
-+
-     if(!(my_socket = optget(opts, "MilterSocket")->strarg)) {
- 	logg("!Please configure the MilterSocket directive\n");
- 	logg_close();
-@@ -323,27 +350,6 @@ int main(int argc, char **argv) {
- 	return 1;
-     }
- 
--    pt = optget(opts, "AddHeader")->strarg;
--    if(strcasecmp(pt, "No")) {
--	char myname[255];
--
--	if(((opt = optget(opts, "ReportHostname"))->enabled && strncpy(myname, opt->strarg, sizeof(myname))) || !gethostname(myname, sizeof(myname))) {
--	    myname[sizeof(myname)-1] = '\0';
--	    snprintf(xvirushdr, sizeof(xvirushdr), "clamav-milter %s at %s", get_version(), myname);
--	} else
--	    snprintf(xvirushdr, sizeof(xvirushdr), "clamav-milter %s", get_version());
--	xvirushdr[sizeof(xvirushdr)-1] = '\0';
--
--	descr.xxfi_flags |= SMFIF_ADDHDRS;
--
--	if(strcasecmp(pt, "Add")) { /* Replace or Yes */
--	    descr.xxfi_flags |= SMFIF_CHGHDRS;
--	    addxvirus = 1;
--	} else { /* Add */
--	    addxvirus = 2;
--	}
--    }
--
-     multircpt = optget(opts, "SupportMultipleRecipients")->enabled;
-     
-     if(!optget(opts, "Foreground")->enabled) {
diff --git a/recipes-security/clamav/clamav-0.98.5/0017-Bump-.so-version-number.patch b/recipes-security/clamav/clamav-0.98.5/0017-Bump-.so-version-number.patch
deleted file mode 100644
index 2af0d0e..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0017-Bump-.so-version-number.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 6569ca8a084191f9fedde16abf8fa15b6ebef4fe Mon Sep 17 00:00:00 2001
-From: Shawn Webb <swebb at sourcefire.com>
-Date: Wed, 19 Nov 2014 11:51:22 -0500
-Subject: Bump .so version number
-
----
- m4/reorganization/version.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/m4/reorganization/version.m4 b/m4/reorganization/version.m4
-index ea263b28e647..f4fe8b1e150e 100644
---- a/m4/reorganization/version.m4
-+++ b/m4/reorganization/version.m4
-@@ -3,7 +3,7 @@ dnl VERSION="devel-`date +%Y%m%d`"
- VERSION="0.98.5"
- 
- LC_CURRENT=7
--LC_REVISION=22
-+LC_REVISION=24
- LC_AGE=1
- LIBCLAMAV_VERSION="$LC_CURRENT":"$LC_REVISION":"$LC_AGE"
- AC_SUBST([LIBCLAMAV_VERSION])
diff --git a/recipes-security/clamav/clamav-0.98.5/0018-llvm-don-t-use-system-libs.patch b/recipes-security/clamav/clamav-0.98.5/0018-llvm-don-t-use-system-libs.patch
deleted file mode 100644
index 5b1a606..0000000
--- a/recipes-security/clamav/clamav-0.98.5/0018-llvm-don-t-use-system-libs.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 169677f7699f78d483c84b4ab54943ea622535c8 Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
-Date: Wed, 19 Nov 2014 23:04:32 +0100
-Subject: llvm: don't use --system-libs
-
-this continues the saga of not linking the .a files so we don't care
-about the libs llvm links against (like -ledit)
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
----
- libclamav/c++/configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libclamav/c++/configure.ac b/libclamav/c++/configure.ac
-index 43e187ff1f56..2d2d47b9d24c 100644
---- a/libclamav/c++/configure.ac
-+++ b/libclamav/c++/configure.ac
-@@ -115,7 +115,7 @@ if test "x$llvmconfig" != "x"; then
-     if test $llvmver_test -ge 350; then
-         dnl LLVM 3.5.0 and after splits linker flags into two sets
-         ldflags=`$llvmconfig --ldflags`
--        syslibs=`$llvmconfig --system-libs`
-+        syslibs=
-         AC_SUBST(LLVMCONFIG_LDFLAGS, ["$ldflags $syslibs"])
-     else
-         AC_SUBST(LLVMCONFIG_LDFLAGS, [`$llvmconfig --ldflags`])
diff --git a/recipes-security/clamav/clamav-0.98.5/clamav-0001-clamdscan.patch b/recipes-security/clamav/clamav-0.98.5/clamav-0001-clamdscan.patch
deleted file mode 100644
index 2effdeb..0000000
--- a/recipes-security/clamav/clamav-0.98.5/clamav-0001-clamdscan.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Fixes build error
-
-proto.c: In function 'dconnect':
-proto.c:86:67: error: invalid application of 'sizeof' to incomplete type 'struct sockaddr_un'
-if (connect(sockd, (struct sockaddr *)&nixsock, sizeof(nixsock)) == 0)
-
-Patch sent upstream: http://lurker.clamav.net/message/20140928.130829.5494fd68.en.html
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls at t-online.de>
-
-diff -uNr a/clamdscan/proto.c b/clamdscan/proto.c
---- a/clamdscan/proto.c	2014-05-06 20:39:56.000000000 +0200
-+++ b/clamdscan/proto.c	2014-05-10 10:41:44.000000000 +0200
-@@ -35,6 +35,7 @@
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <sys/types.h>
-+#include <sys/un.h>
- #ifdef HAVE_SYS_SELECT_H
- #include <sys/select.h>
- #endif
diff --git a/recipes-security/clamav/clamav-0.98.5/clamav-freshclam.service b/recipes-security/clamav/clamav-0.98.5/clamav-freshclam.service
deleted file mode 100644
index 0c909fb..0000000
--- a/recipes-security/clamav/clamav-0.98.5/clamav-freshclam.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=ClamAV virus database updater
-Documentation=man:freshclam(1) man:freshclam.conf(5) http://www.clamav.net/lang/en/doc/
-# If user wants it run from cron, don't start the daemon.
-ConditionPathExists=!/etc/cron.d/clamav-freshclam
-
-[Service]
-ExecStart=/usr/bin/freshclam -d --foreground=true
-StandardOutput=syslog
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-security/clamav/clamav-0.98.5/clamav-milter.conf.sample b/recipes-security/clamav/clamav-0.98.5/clamav-milter.conf.sample
deleted file mode 100644
index ed0d519..0000000
--- a/recipes-security/clamav/clamav-0.98.5/clamav-milter.conf.sample
+++ /dev/null
@@ -1,293 +0,0 @@
-##
-## Example config file for clamav-milter
-##
-
-# Comment or remove the line below.
-Example
-
-
-##
-## Main options
-##
-
-# Define the interface through which we communicate with sendmail
-# This option is mandatory! Possible formats are:
-# [[unix|local]:]/path/to/file - to specify a unix domain socket
-# inet:port@[hostname|ip-address] - to specify an ipv4 socket
-# inet6:port@[hostname|ip-address] - to specify an ipv6 socket
-#
-# Default: no default
-#MilterSocket /tmp/clamav-milter.socket
-#MilterSocket inet:7357
-
-# Define the group ownership for the (unix) milter socket.
-# Default: disabled (the primary group of the user running clamd)
-#MilterSocketGroup virusgroup
-
-# Sets the permissions on the (unix) milter socket to the specified mode.
-# Default: disabled (obey umask)
-#MilterSocketMode 660
-
-# Remove stale socket after unclean shutdown.
-#
-# Default: yes
-#FixStaleSocket yes
-
-# Run as another user (clamav-milter must be started by root for this option to work)
-#
-# Default: unset (don't drop privileges)
-#User clamav
-
-# Initialize supplementary group access (clamav-milter must be started by root).
-#
-# Default: no
-#AllowSupplementaryGroups no
-
-# Waiting for data from clamd will timeout after this time (seconds).
-# Value of 0 disables the timeout.
-#
-# Default: 120
-#ReadTimeout 300
-
-# Don't fork into background.
-#
-# Default: no
-#Foreground yes
-
-# Chroot to the specified directory.
-# Chrooting is performed just after reading the config file and before dropping privileges.
-#
-# Default: unset (don't chroot)
-#Chroot /newroot
-
-# This option allows you to save a process identifier of the listening
-# daemon (main thread).
-#
-# Default: disabled
-#PidFile /var/run/clamav/clamav-milter.pid
-
-# Optional path to the global temporary directory.
-# Default: system specific (usually /tmp or /var/tmp).
-#
-#TemporaryDirectory /var/tmp
-
-##
-## Clamd options
-##
-
-# Define the clamd socket to connect to for scanning.
-# This option is mandatory! Syntax:
-# ClamdSocket unix:path
-# ClamdSocket tcp:host:port
-# The first syntax specifies a local unix socket (needs an absolute path) e.g.:
-#     ClamdSocket unix:/var/run/clamd/clamd.socket
-# The second syntax specifies a tcp local or remote tcp socket: the
-# host can be a hostname or an ip address; the ":port" field is only required
-# for IPv6 addresses, otherwise it defaults to 3310, e.g.:
-#     ClamdSocket tcp:192.168.0.1
-#
-# This option can be repeated several times with different sockets or even
-# with the same socket: clamd servers will be selected in a round-robin fashion.
-#
-# Default: no default
-ClamdSocket /var/run/clamav/clamd
-
-
-##
-## Exclusions
-##
-
-# Messages originating from these hosts/networks will not be scanned
-# This option takes a host(name)/mask pair in CIRD notation and can be
-# repeated several times. If "/mask" is omitted, a host is assumed.
-# To specify a locally orignated, non-smtp, email use the keyword "local"
-#
-# Default: unset (scan everything regardless of the origin)
-#LocalNet local
-#LocalNet 192.168.0.0/24
-#LocalNet 1111:2222:3333::/48
-
-# This option specifies a file which contains a list of basic POSIX regular
-# expressions. Addresses (sent to or from - see below) matching these regexes
-# will not be scanned.  Optionally each line can start with the string "From:"
-# or "To:" (note: no whitespace after the colon) indicating if it is, 
-# respectively, the sender or recipient that is to be whitelisted.
-# If the field is missing, "To:" is assumed.
-# Lines starting with #, : or ! are ignored.
-#
-# Default unset (no exclusion applied)
-#Whitelist /etc/whitelisted_addresses
-
-# Messages from authenticated SMTP users matching this extended POSIX
-# regular expression (egrep-like) will not be scanned.
-# As an alternative, a file containing a plain (not regex) list of names (one
-# per line) can be specified using the prefix "file:".
-# e.g. SkipAuthenticated file:/etc/good_guys
-#
-# Note: this is the AUTH login name!
-#
-# Default: unset (no whitelisting based on SMTP auth)
-#SkipAuthenticated ^(tom|dick|henry)$
-
-# Messages larger than this value won't be scanned.
-# Make sure this value is lower or equal than StreamMaxLength in clamd.conf
-#
-# Default: 25M
-#MaxFileSize 10M
-
-
-##
-## Actions
-##
-
-# The following group of options controls the delievery process under
-# different circumstances.
-# The following actions are available:
-# - Accept
-#   The message is accepted for delievery
-# - Reject
-#   Immediately refuse delievery (a 5xx error is returned to the peer)
-# - Defer
-#   Return a temporary failure message (4xx) to the peer
-# - Blackhole (not available for OnFail)
-#   Like Accept but the message is sent to oblivion
-# - Quarantine (not available for OnFail)
-#   Like Accept but message is quarantined instead of being delivered
-#
-# NOTE: In Sendmail the quarantine queue can be examined via mailq -qQ
-# For Postfix this causes the message to be placed on hold
-# 
-# Action to be performed on clean messages (mostly useful for testing)
-# Default: Accept
-#OnClean Accept
-
-# Action to be performed on infected messages
-# Default: Quarantine
-#OnInfected Quarantine
-
-# Action to be performed on error conditions (this includes failure to
-# allocate data structures, no scanners available, network timeouts,
-# unknown scanner replies and the like)
-# Default: Defer
-#OnFail Defer
-
-# This option allows to set a specific rejection reason for infected messages
-# and it's therefore only useful together with "OnInfected Reject"
-# The string "%v", if present, will be replaced with the virus name.
-# Default: MTA specific
-#RejectMsg 
-
-# If this option is set to "Replace" (or "Yes"), an "X-Virus-Scanned" and an
-# "X-Virus-Status" headers will be attached to each processed message, possibly
-# replacing existing headers.
-# If it is set to Add, the X-Virus headers are added possibly on top of the
-# existing ones.
-# Note that while "Replace" can potentially break DKIM signatures, "Add" may
-# confuse procmail and similar filters.
-# Default: no
-#AddHeader Replace
-
-# When AddHeader is in use, this option allows to arbitrary set the reported
-# hostname. This may be desirable in order to avoid leaking internal names.
-# If unset the real machine name is used.
-# Default: disabled
-#ReportHostname my.mail.server.name
-
-# Execute a command (possibly searching PATH) when an infected message is found.
-# The following parameters are passed to the invoked program in this order:
-# virus name, queue id, sender, destination, subject, message id, message date.
-# Note #1: this requires MTA macroes to be available (see LogInfected below)
-# Note #2: the process is invoked in the context of clamav-milter
-# Note #3: clamav-milter will wait for the process to exit. Be quick or fork to
-# avoid unnecessary delays in email delievery
-# Default: disabled
-#VirusAction /usr/local/bin/my_infected_message_handler
-
-##
-## Logging options
-##
-
-# Uncomment this option to enable logging.
-# LogFile must be writable for the user running daemon.
-# A full path is required.
-#
-# Default: disabled
-#LogFile /var/log/clamav/clamav-milter.log
-
-# By default the log file is locked for writing - the lock protects against
-# running clamav-milter multiple times.
-# This option disables log file locking.
-#
-# Default: no
-#LogFileUnlock yes
-
-# Maximum size of the log file.
-# Value of 0 disables the limit.
-# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
-# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
-# in bytes just don't use modifiers. If LogFileMaxSize is enabled, log
-# rotation (the LogRotate option) will always be enabled.
-#
-# Default: 1M
-#LogFileMaxSize 2M
-
-# Log time with each message.
-#
-# Default: no
-#LogTime yes
-
-# Use system logger (can work together with LogFile).
-#
-# Default: no
-#LogSyslog yes
-
-# Specify the type of syslog messages - please refer to 'man syslog'
-# for facility names.
-#
-# Default: LOG_LOCAL6
-#LogFacility LOG_MAIL
-
-# Enable verbose logging.
-#
-# Default: no
-#LogVerbose yes
-
-# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
-# Default: no
-#LogRotate yes
-
-# This option allows to tune what is logged when a message is infected.
-# Possible values are Off (the default - nothing is logged),
-# Basic (minimal info logged), Full (verbose info logged)
-# Note:
-# For this to work properly in sendmail, make sure the msg_id, mail_addr,
-# rcpt_addr and i macroes are available in eom. In other words add a line like:
-# Milter.macros.eom={msg_id}, {mail_addr}, {rcpt_addr}, i
-# to your .cf file. Alternatively use the macro:
-# define(`confMILTER_MACROS_EOM', `{msg_id}, {mail_addr}, {rcpt_addr}, i')
-# Postfix should be working fine with the default settings.
-#
-# Default: disabled
-#LogInfected Basic
-
-# This option allows to tune what is logged when no threat is found in a scanned message.
-# See LogInfected for possible values and caveats.
-# Useful in debugging but drastically increases the log size.
-# Default: disabled
-#LogClean Basic
-
-# This option affects the behaviour of LogInfected, LogClean and VirusAction
-# when a message with multiple recipients is scanned:
-# If SupportMultipleRecipients is off (the default)
-# then one single log entry is generated for the message and, in case the
-# message is determined to be malicious, the command indicated by VirusAction
-# is executed just once. In both cases only the last recipient is reported.
-# If SupportMultipleRecipients is on:
-# then one line is logged for each recipient and the command indicated
-# by VirusAction is also executed once for each recipient.
-# 
-# Note: although it's probably a good idea to enable this option, the default value
-# is currently set to off for legacy reasons.
-# Default: no
-#SupportMultipleRecipients yes
-
diff --git a/recipes-security/clamav/clamav-0.98.5/clamav.service b/recipes-security/clamav/clamav-0.98.5/clamav.service
deleted file mode 100644
index f13191f..0000000
--- a/recipes-security/clamav/clamav-0.98.5/clamav.service
+++ /dev/null
@@ -1,17 +0,0 @@
-[Unit]
-Description=Clam AntiVirus userspace daemon
-Documentation=man:clamd(8) man:clamd.conf(5) http://www.clamav.net/lang/en/doc/
-Requires=clamav-daemon.socket
-# Check for database existence
-ConditionPathExistsGlob=/usr/share/clamav/main.{c[vl]d,inc}
-ConditionPathExistsGlob=/usr/share/clamav/daily.{c[vl]d,inc}
-
-[Service]
-ExecStart=/usr/sbin/clamd --foreground=true
-# Reload the database
-ExecReload=/bin/kill -USR2 $MAINPID
-StandardOutput=syslog
-
-[Install]
-WantedBy=multi-user.target
-Also=clamav-daemon.socket
diff --git a/recipes-security/clamav/clamav-0.98.5/clamd.conf b/recipes-security/clamav/clamav-0.98.5/clamd.conf
deleted file mode 100644
index 0457785..0000000
--- a/recipes-security/clamav/clamav-0.98.5/clamd.conf
+++ /dev/null
@@ -1,595 +0,0 @@
-# Uncomment this option to enable logging.
-# LogFile must be writable for the user running daemon.
-# A full path is required.
-# Default: disabled
-LogFile /tmp/clamd.log
-
-# By default the log file is locked for writing - the lock protects against
-# running clamd multiple times (if want to run another clamd, please
-# copy the configuration file, change the LogFile variable, and run
-# the daemon with --config-file option).
-# This option disables log file locking.
-# Default: no
-LogFileUnlock yes
-
-# Maximum size of the log file.
-# Value of 0 disables the limit.
-# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
-# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
-# in bytes just don't use modifiers. If LogFileMaxSize is enabled, log
-# rotation (the LogRotate option) will always be enabled.
-# Default: 1M
-LogFileMaxSize 2M
-
-# Log time with each message.
-# Default: no
-LogTime yes
-
-# Also log clean files. Useful in debugging but drastically increases the
-# log size.
-# Default: no
-#LogClean yes
-
-# Use system logger (can work together with LogFile).
-# Default: no
-#LogSyslog yes
-
-# Specify the type of syslog messages - please refer to 'man syslog'
-# for facility names.
-# Default: LOG_LOCAL6
-#LogFacility LOG_MAIL
-
-# Enable verbose logging.
-# Default: no
-#LogVerbose yes
-
-# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
-# Default: no
-#LogRotate yes
-
-# Log additional information about the infected file, such as its
-# size and hash, together with the virus name.
-ExtendedDetectionInfo yes
-
-# This option allows you to save a process identifier of the listening
-# daemon (main thread).
-# Default: disabled
-PidFile /var/run/clamd.pid
-
-# Optional path to the global temporary directory.
-# Default: system specific (usually /tmp or /var/tmp).
-TemporaryDirectory /var/tmp
-
-# Path to the database directory.
-# Default: hardcoded (depends on installation options)
-DatabaseDirectory /var/lib/clamav
-
-# Only load the official signatures published by the ClamAV project.
-# Default: no
-#OfficialDatabaseOnly no
-
-# The daemon can work in local mode, network mode or both. 
-# Due to security reasons we recommend the local mode.
-
-# Path to a local socket file the daemon will listen on.
-# Default: disabled (must be specified by a user)
-LocalSocket /tmp/clamd.socket
-
-# Sets the group ownership on the unix socket.
-# Default: disabled (the primary group of the user running clamd)
-#LocalSocketGroup virusgroup
-
-# Sets the permissions on the unix socket to the specified mode.
-# Default: disabled (socket is world accessible)
-#LocalSocketMode 660
-
-# Remove stale socket after unclean shutdown.
-# Default: yes
-#FixStaleSocket yes
-
-# TCP port address.
-# Default: no
-#TCPSocket 3310
-
-# TCP address.
-# By default we bind to INADDR_ANY, probably not wise.
-# Enable the following to provide some degree of protection
-# from the outside world. This option can be specified multiple
-# times if you want to listen on multiple IPs. IPv6 is now supported.
-# Default: no
-#TCPAddr 127.0.0.1
-
-# Maximum length the queue of pending connections may grow to.
-# Default: 200
-#MaxConnectionQueueLength 30
-
-# Clamd uses FTP-like protocol to receive data from remote clients.
-# If you are using clamav-milter to balance load between remote clamd daemons
-# on firewall servers you may need to tune the options below.
-
-# Close the connection when the data size limit is exceeded.
-# The value should match your MTA's limit for a maximum attachment size.
-# Default: 25M
-#StreamMaxLength 10M
-
-# Limit port range.
-# Default: 1024
-#StreamMinPort 30000
-# Default: 2048
-#StreamMaxPort 32000
-
-# Maximum number of threads running at the same time.
-# Default: 10
-#MaxThreads 20
-
-# Waiting for data from a client socket will timeout after this time (seconds).
-# Default: 120
-#ReadTimeout 300
-
-# This option specifies the time (in seconds) after which clamd should
-# timeout if a client doesn't provide any initial command after connecting.
-# Default: 5
-#CommandReadTimeout 5
-
-# This option specifies how long to wait (in miliseconds) if the send buffer is full.
-# Keep this value low to prevent clamd hanging
-#
-# Default: 500
-#SendBufTimeout 200
-
-# Maximum number of queued items (including those being processed by MaxThreads threads)
-# It is recommended to have this value at least twice MaxThreads if possible.
-# WARNING: you shouldn't increase this too much to avoid running out  of file descriptors,
-# the following condition should hold:
-# MaxThreads*MaxRecursion + (MaxQueue - MaxThreads) + 6< RLIMIT_NOFILE (usual max is 1024)
-#
-# Default: 100
-#MaxQueue 200
-
-# Waiting for a new job will timeout after this time (seconds).
-# Default: 30
-#IdleTimeout 60
-
-# Don't scan files and directories matching regex
-# This directive can be used multiple times
-# Default: scan all
-#ExcludePath ^/proc/
-#ExcludePath ^/sys/
-
-# Maximum depth directories are scanned at.
-# Default: 15
-#MaxDirectoryRecursion 20
-
-# Follow directory symlinks.
-# Default: no
-#FollowDirectorySymlinks yes
-
-# Follow regular file symlinks.
-# Default: no
-#FollowFileSymlinks yes
-
-# Scan files and directories on other filesystems.
-# Default: yes
-#CrossFilesystems yes
-
-# Perform a database check.
-# Default: 600 (10 min)
-#SelfCheck 600
-
-# Execute a command when virus is found. In the command string %v will
-# be replaced with the virus name.
-# Default: no
-#VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %v"
-
-# Run as another user (clamd must be started by root for this option to work)
-# Default: don't drop privileges
-User clamav
-
-# Initialize supplementary group access (clamd must be started by root).
-# Default: no
-#AllowSupplementaryGroups no
-
-# Stop daemon when libclamav reports out of memory condition.
-#ExitOnOOM yes
-
-# Don't fork into background.
-# Default: no
-#Foreground yes
-
-# Enable debug messages in libclamav.
-# Default: no
-#Debug yes
-
-# Do not remove temporary files (for debug purposes).
-# Default: no
-#LeaveTemporaryFiles yes
-
-# Permit use of the ALLMATCHSCAN command. If set to no, clamd will reject
-# any ALLMATCHSCAN command as invalid.
-# Default: yes
-#AllowAllMatchScan no
-
-# Detect Possibly Unwanted Applications.
-# Default: no
-#DetectPUA yes
-
-# Exclude a specific PUA category. This directive can be used multiple times.
-# See https://github.com/vrtadmin/clamav-faq/blob/master/faq/faq-pua.md for 
-# the complete list of PUA categories.
-# Default: Load all categories (if DetectPUA is activated)
-#ExcludePUA NetTool
-#ExcludePUA PWTool
-
-# Only include a specific PUA category. This directive can be used multiple
-# times.
-# Default: Load all categories (if DetectPUA is activated)
-#IncludePUA Spy
-#IncludePUA Scanner
-#IncludePUA RAT
-
-# In some cases (eg. complex malware, exploits in graphic files, and others),
-# ClamAV uses special algorithms to provide accurate detection. This option
-# controls the algorithmic detection.
-# Default: yes
-#AlgorithmicDetection yes
-
-# This option causes memory or nested map scans to dump the content to disk.
-# If you turn on this option, more data is written to disk and is available
-# when the LeaveTemporaryFiles option is enabled.
-#ForceToDisk yes
-
-# This option allows you to disable the caching feature of the engine. By
-# default, the engine will store an MD5 in a cache of any files that are
-# not flagged as virus or that hit limits checks. Disabling the cache will
-# have a negative performance impact on large scans.
-# Default: no
-#DisableCache yes
-
-##
-## Executable files
-##
-
-# PE stands for Portable Executable - it's an executable file format used
-# in all 32 and 64-bit versions of Windows operating systems. This option allows
-# ClamAV to perform a deeper analysis of executable files and it's also
-# required for decompression of popular executable packers such as UPX, FSG,
-# and Petite. If you turn off this option, the original files will still be
-# scanned, but without additional processing.
-# Default: yes
-#ScanPE yes
-
-# Certain PE files contain an authenticode signature. By default, we check
-# the signature chain in the PE file against a database of trusted and
-# revoked certificates if the file being scanned is marked as a virus.
-# If any certificate in the chain validates against any trusted root, but
-# does not match any revoked certificate, the file is marked as whitelisted.
-# If the file does match a revoked certificate, the file is marked as virus.
-# The following setting completely turns off authenticode verification.
-# Default: no
-#DisableCertCheck yes
-
-# Executable and Linking Format is a standard format for UN*X executables.
-# This option allows you to control the scanning of ELF files.
-# If you turn off this option, the original files will still be scanned, but
-# without additional processing.
-# Default: yes
-#ScanELF yes
-
-# With this option clamav will try to detect broken executables (both PE and
-# ELF) and mark them as Broken.Executable.
-# Default: no
-#DetectBrokenExecutables yes
-
-
-##
-## Documents
-##
-
-# This option enables scanning of OLE2 files, such as Microsoft Office
-# documents and .msi files.
-# If you turn off this option, the original files will still be scanned, but
-# without additional processing.
-# Default: yes
-#ScanOLE2 yes
-
-# With this option enabled OLE2 files with VBA macros, which were not
-# detected by signatures will be marked as "Heuristics.OLE2.ContainsMacros".
-# Default: no
-#OLE2BlockMacros no
-
-# This option enables scanning within PDF files.
-# If you turn off this option, the original files will still be scanned, but
-# without decoding and additional processing.
-# Default: yes
-#ScanPDF yes
-
-# This option enables scanning within SWF files.
-# If you turn off this option, the original files will still be scanned, but
-# without decoding and additional processing.
-# Default: yes
-#ScanSWF yes
-
-
-##
-## Mail files
-##
-
-# Enable internal e-mail scanner.
-# If you turn off this option, the original files will still be scanned, but
-# without parsing individual messages/attachments.
-# Default: yes
-#ScanMail yes
-
-# Scan RFC1341 messages split over many emails.
-# You will need to periodically clean up $TemporaryDirectory/clamav-partial directory.
-# WARNING: This option may open your system to a DoS attack.
-#	   Never use it on loaded servers.
-# Default: no
-#ScanPartialMessages yes
-
-# With this option enabled ClamAV will try to detect phishing attempts by using
-# signatures.
-# Default: yes
-#PhishingSignatures yes
-
-# Scan URLs found in mails for phishing attempts using heuristics.
-# Default: yes
-#PhishingScanURLs yes
-
-# Always block SSL mismatches in URLs, even if the URL isn't in the database.
-# This can lead to false positives.
-#
-# Default: no
-#PhishingAlwaysBlockSSLMismatch no
-
-# Always block cloaked URLs, even if URL isn't in database.
-# This can lead to false positives.
-#
-# Default: no
-#PhishingAlwaysBlockCloak no
-
-# Detect partition intersections in raw disk images using heuristics.
-# Default: no
-#PartitionIntersection no
-
-# Allow heuristic match to take precedence.
-# When enabled, if a heuristic scan (such as phishingScan) detects
-# a possible virus/phish it will stop scan immediately. Recommended, saves CPU
-# scan-time.
-# When disabled, virus/phish detected by heuristic scans will be reported only at
-# the end of a scan. If an archive contains both a heuristically detected
-# virus/phish, and a real malware, the real malware will be reported
-#
-# Keep this disabled if you intend to handle "*.Heuristics.*" viruses 
-# differently from "real" malware.
-# If a non-heuristically-detected virus (signature-based) is found first, 
-# the scan is interrupted immediately, regardless of this config option.
-#
-# Default: no
-#HeuristicScanPrecedence yes
-
-
-##
-## Data Loss Prevention (DLP)
-##
-
-# Enable the DLP module
-# Default: No
-#StructuredDataDetection yes
-
-# This option sets the lowest number of Credit Card numbers found in a file
-# to generate a detect.
-# Default: 3
-#StructuredMinCreditCardCount 5
-
-# This option sets the lowest number of Social Security Numbers found
-# in a file to generate a detect.
-# Default: 3
-#StructuredMinSSNCount 5
-
-# With this option enabled the DLP module will search for valid
-# SSNs formatted as xxx-yy-zzzz
-# Default: yes
-#StructuredSSNFormatNormal yes
-
-# With this option enabled the DLP module will search for valid
-# SSNs formatted as xxxyyzzzz
-# Default: no
-#StructuredSSNFormatStripped yes
-
-
-##
-## HTML
-##
-
-# Perform HTML normalisation and decryption of MS Script Encoder code.
-# Default: yes
-# If you turn off this option, the original files will still be scanned, but
-# without additional processing.
-#ScanHTML yes
-
-
-##
-## Archives
-##
-
-# ClamAV can scan within archives and compressed files.
-# If you turn off this option, the original files will still be scanned, but
-# without unpacking and additional processing.
-# Default: yes
-#ScanArchive yes
-
-# Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR).
-# Default: no
-#ArchiveBlockEncrypted no
-
-
-##
-## Limits
-##
-
-# The options below protect your system against Denial of Service attacks
-# using archive bombs.
-
-# This option sets the maximum amount of data to be scanned for each input file.
-# Archives and other containers are recursively extracted and scanned up to this
-# value.
-# Value of 0 disables the limit
-# Note: disabling this limit or setting it too high may result in severe damage
-# to the system.
-# Default: 100M
-#MaxScanSize 150M
-
-# Files larger than this limit won't be scanned. Affects the input file itself
-# as well as files contained inside it (when the input file is an archive, a
-# document or some other kind of container).
-# Value of 0 disables the limit.
-# Note: disabling this limit or setting it too high may result in severe damage
-# to the system.
-# Default: 25M
-#MaxFileSize 30M
-
-# Nested archives are scanned recursively, e.g. if a Zip archive contains a RAR
-# file, all files within it will also be scanned. This options specifies how
-# deeply the process should be continued.
-# Note: setting this limit too high may result in severe damage to the system.
-# Default: 16
-#MaxRecursion 10
-
-# Number of files to be scanned within an archive, a document, or any other
-# container file.
-# Value of 0 disables the limit.
-# Note: disabling this limit or setting it too high may result in severe damage
-# to the system.
-# Default: 10000
-#MaxFiles 15000
-
-# Maximum size of a file to check for embedded PE. Files larger than this value
-# will skip the additional analysis step.
-# Note: disabling this limit or setting it too high may result in severe damage
-# to the system.
-# Default: 10M
-#MaxEmbeddedPE 10M
-
-# Maximum size of a HTML file to normalize. HTML files larger than this value
-# will not be normalized or scanned.
-# Note: disabling this limit or setting it too high may result in severe damage
-# to the system.
-# Default: 10M
-#MaxHTMLNormalize 10M
-
-# Maximum size of a normalized HTML file to scan. HTML files larger than this
-# value after normalization will not be scanned.
-# Note: disabling this limit or setting it too high may result in severe damage
-# to the system.
-# Default: 2M
-#MaxHTMLNoTags 2M
-
-# Maximum size of a script file to normalize. Script content larger than this
-# value will not be normalized or scanned.
-# Note: disabling this limit or setting it too high may result in severe damage
-# to the system.
-# Default: 5M
-#MaxScriptNormalize 5M
-
-# Maximum size of a ZIP file to reanalyze type recognition. ZIP files larger
-# than this value will skip the step to potentially reanalyze as PE.
-# Note: disabling this limit or setting it too high may result in severe damage
-# to the system.
-# Default: 1M
-#MaxZipTypeRcg 1M
-
-# This option sets the maximum number of partitions of a raw disk image to be scanned.
-# Raw disk images with more partitions than this value will have up to the value number
-# partitions scanned. Negative values are not allowed.
-# Note: setting this limit too high may result in severe damage or impact performance.
-# Default: 50
-#MaxPartitions 128
-
-# This option sets the maximum number of icons within a PE to be scanned.
-# PE files with more icons than this value will have up to the value number icons scanned.
-# Negative values are not allowed.
-# WARNING: setting this limit too high may result in severe damage or impact performance.
-# Default: 100
-#MaxIconsPE 200
-
-##
-## On-access Scan Settings
-##
-
-# Enable on-access scanning. Currently, this is supported via fanotify.
-# Clamuko/Dazuko support has been deprecated.
-# Default: no
-#ScanOnAccess yes
-
-# Don't scan files larger than OnAccessMaxFileSize
-# Value of 0 disables the limit.
-# Default: 5M
-#OnAccessMaxFileSize 10M
-
-# Set the include paths (all files inside them will be scanned). You can have
-# multiple OnAccessIncludePath directives but each directory must be added
-# in a separate line. (On-access scan only)
-# Default: disabled
-#OnAccessIncludePath /home
-#OnAccessIncludePath /students
-
-# Set the exclude paths. All subdirectories are also excluded.
-# (On-access scan only)
-# Default: disabled
-#OnAccessExcludePath /home/bofh
-
-# With this option you can whitelist specific UIDs. Processes with these UIDs
-# will be able to access all files.
-# This option can be used multiple times (one per line).
-# Default: disabled
-#OnAccessExcludeUID 0
-
-
-##
-## Bytecode
-##
-
-# With this option enabled ClamAV will load bytecode from the database. 
-# It is highly recommended you keep this option on, otherwise you'll miss detections for many new viruses.
-# Default: yes
-#Bytecode yes
-
-# Set bytecode security level.
-# Possible values:
-#       None - no security at all, meant for debugging. DO NOT USE THIS ON PRODUCTION SYSTEMS
-#         This value is only available if clamav was built with --enable-debug!
-#       TrustSigned - trust bytecode loaded from signed .c[lv]d files,
-#                insert runtime safety checks for bytecode loaded from other sources
-#       Paranoid - don't trust any bytecode, insert runtime checks for all
-# Recommended: TrustSigned, because bytecode in .cvd files already has these checks
-# Note that by default only signed bytecode is loaded, currently you can only
-# load unsigned bytecode in --enable-debug mode.
-#
-# Default: TrustSigned
-#BytecodeSecurity TrustSigned
-
-# Set bytecode timeout in miliseconds.
-# 
-# Default: 5000
-# BytecodeTimeout 1000
-
-##
-## Statistics gathering and submitting
-##
-
-# Enable statistical reporting.
-# Default: no
-#StatsEnabled yes
-
-# Disable submission of individual PE sections for files flagged as malware.
-# Default: no
-#StatsPEDisabled yes
-
-# HostID in the form of an UUID to use when submitting statistical information.
-# Default: auto
-#StatsHostID auto
-
-# Time in seconds to wait for the stats server to come back with a response
-# Default: 10
-#StatsTimeout 10
diff --git a/recipes-security/clamav/clamav-0.98.5/freshclam.conf b/recipes-security/clamav/clamav-0.98.5/freshclam.conf
deleted file mode 100644
index 100724f..0000000
--- a/recipes-security/clamav/clamav-0.98.5/freshclam.conf
+++ /dev/null
@@ -1,224 +0,0 @@
-# Path to the database directory.
-# WARNING: It must match clamd.conf's directive!
-# Default: hardcoded (depends on installation options)
-DatabaseDirectory /var/lib/clamav
-
-# Path to the log file (make sure it has proper permissions)
-# Default: disabled
-UpdateLogFile /var/log/clamav/freshclam.log
-
-# Maximum size of the log file.
-# Value of 0 disables the limit.
-# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
-# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes).
-# in bytes just don't use modifiers. If LogFileMaxSize is enabled,
-# log rotation (the LogRotate option) will always be enabled.
-# Default: 1M
-LogFileMaxSize 2M
-
-# Log time with each message.
-# Default: no
-LogTime yes
-
-# Enable verbose logging.
-# Default: no
-#LogVerbose yes
-
-# Use system logger (can work together with UpdateLogFile).
-# Default: no
-#LogSyslog yes
-
-# Specify the type of syslog messages - please refer to 'man syslog'
-# for facility names.
-# Default: LOG_LOCAL6
-#LogFacility LOG_MAIL
-
-# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
-# Default: no
-#LogRotate yes
-
-# This option allows you to save the process identifier of the daemon
-# Default: disabled
-PidFile /var/run/freshclam.pid
-
-# By default when started freshclam drops privileges and switches to the
-# "clamav" user. This directive allows you to change the database owner.
-# Default: clamav (may depend on installation options)
-DatabaseOwner clamav
-
-# Initialize supplementary group access (freshclam must be started by root).
-# Default: no
-#AllowSupplementaryGroups yes
-
-# Use DNS to verify virus database version. Freshclam uses DNS TXT records
-# to verify database and software versions. With this directive you can change
-# the database verification domain.
-# WARNING: Do not touch it unless you're configuring freshclam to use your
-# own database verification domain.
-# Default: current.cvd.clamav.net
-#DNSDatabaseInfo current.cvd.clamav.net
-
-# Uncomment the following line and replace XY with your country
-# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
-# You can use db.XY.ipv6.clamav.net for IPv6 connections.
-#DatabaseMirror db.XY.clamav.net
-
-# database.clamav.net is a round-robin record which points to our most 
-# reliable mirrors. It's used as a fall back in case db.XY.clamav.net is 
-# not working. DO NOT TOUCH the following line unless you know what you
-# are doing.
-DatabaseMirror database.clamav.net
-
-# How many attempts to make before giving up.
-# Default: 3 (per mirror)
-#MaxAttempts 5
-
-# With this option you can control scripted updates. It's highly recommended
-# to keep it enabled.
-# Default: yes
-#ScriptedUpdates yes
-
-# By default freshclam will keep the local databases (.cld) uncompressed to
-# make their handling faster. With this option you can enable the compression;
-# the change will take effect with the next database update.
-# Default: no
-#CompressLocalDatabase no
-
-# With this option you can provide custom sources (http:// or file://) for
-# database files. This option can be used multiple times.
-# Default: no custom URLs
-#DatabaseCustomURL http://myserver.com/mysigs.ndb
-#DatabaseCustomURL file:///mnt/nfs/local.hdb
-
-# This option allows you to easily point freshclam to private mirrors.
-# If PrivateMirror is set, freshclam does not attempt to use DNS
-# to determine whether its databases are out-of-date, instead it will
-# use the If-Modified-Since request or directly check the headers of the
-# remote database files. For each database, freshclam first attempts
-# to download the CLD file. If that fails, it tries to download the
-# CVD file. This option overrides DatabaseMirror, DNSDatabaseInfo
-# and ScriptedUpdates. It can be used multiple times to provide
-# fall-back mirrors.
-# Default: disabled
-#PrivateMirror mirror1.mynetwork.com
-#PrivateMirror mirror2.mynetwork.com
-
-# Number of database checks per day.
-# Default: 12 (every two hours)
-#Checks 24
-
-# Proxy settings
-# Default: disabled
-#HTTPProxyServer myproxy.com
-#HTTPProxyPort 1234
-#HTTPProxyUsername myusername
-#HTTPProxyPassword mypass
-
-# If your servers are behind a firewall/proxy which applies User-Agent
-# filtering you can use this option to force the use of a different
-# User-Agent header.
-# Default: clamav/version_number
-#HTTPUserAgent SomeUserAgentIdString
-
-# Use aaa.bbb.ccc.ddd as client address for downloading databases. Useful for
-# multi-homed systems.
-# Default: Use OS'es default outgoing IP address.
-#LocalIPAddress aaa.bbb.ccc.ddd
-
-# Send the RELOAD command to clamd.
-# Default: no
-#NotifyClamd /path/to/clamd.conf
-
-# Run command after successful database update.
-# Default: disabled
-#OnUpdateExecute command
-
-# Run command when database update process fails.
-# Default: disabled
-#OnErrorExecute command
-
-# Run command when freshclam reports outdated version.
-# In the command string %v will be replaced by the new version number.
-# Default: disabled
-#OnOutdatedExecute command
-
-# Don't fork into background.
-# Default: no
-#Foreground yes
-
-# Enable debug messages in libclamav.
-# Default: no
-#Debug yes
-
-# Timeout in seconds when connecting to database server.
-# Default: 30
-#ConnectTimeout 60
-
-# Timeout in seconds when reading from database server.
-# Default: 30
-#ReceiveTimeout 60
-
-# With this option enabled, freshclam will attempt to load new
-# databases into memory to make sure they are properly handled
-# by libclamav before replacing the old ones.
-# Default: yes
-#TestDatabases yes
-
-# When enabled freshclam will submit statistics to the ClamAV Project about
-# the latest virus detections in your environment. The ClamAV maintainers
-# will then use this data to determine what types of malware are the most
-# detected in the field and in what geographic area they are.
-# Freshclam will connect to clamd in order to get recent statistics.
-# Default: no
-#SubmitDetectionStats /path/to/clamd.conf
-
-# Country of origin of malware/detection statistics (for statistical
-# purposes only). The statistics collector at ClamAV.net will look up
-# your IP address to determine the geographical origin of the malware
-# reported by your installation. If this installation is mainly used to
-# scan data which comes from a different location, please enable this
-# option and enter a two-letter code (see http://www.iana.org/domains/root/db/)
-# of the country of origin.
-# Default: disabled
-#DetectionStatsCountry country-code
-
-# This option enables support for our "Personal Statistics" service. 
-# When this option is enabled, the information on malware detected by
-# your clamd installation is made available to you through our website.
-# To get your HostID, log on http://www.stats.clamav.net and add a new
-# host to your host list. Once you have the HostID, uncomment this option
-# and paste the HostID here. As soon as your freshclam starts submitting
-# information to our stats collecting service, you will be able to view
-# the statistics of this clamd installation by logging into
-# http://www.stats.clamav.net with the same credentials you used to
-# generate the HostID. For more information refer to:
-# http://www.clamav.net/documentation.html#cctts 
-# This feature requires SubmitDetectionStats to be enabled.
-# Default: disabled
-#DetectionStatsHostID unique-id
-
-# This option enables support for Google Safe Browsing. When activated for
-# the first time, freshclam will download a new database file (safebrowsing.cvd)
-# which will be automatically loaded by clamd and clamscan during the next
-# reload, provided that the heuristic phishing detection is turned on. This
-# database includes information about websites that may be phishing sites or
-# possible sources of malware. When using this option, it's mandatory to run
-# freshclam at least every 30 minutes.
-# Freshclam uses the ClamAV's mirror infrastructure to distribute the
-# database and its updates but all the contents are provided under Google's
-# terms of use. See http://www.google.com/transparencyreport/safebrowsing
-# and http://www.clamav.net/documentation.html#safebrowsing 
-# for more information.
-# Default: disabled
-#SafeBrowsing yes
-
-# This option enables downloading of bytecode.cvd, which includes additional
-# detection mechanisms and improvements to the ClamAV engine.
-# Default: enabled
-#Bytecode yes
-
-# Download an additional 3rd party signature database distributed through
-# the ClamAV mirrors. 
-# This option can be used multiple times.
-#ExtraDatabase dbname1
-#ExtraDatabase dbname2
diff --git a/recipes-security/clamav/clamav-0.98.5/series b/recipes-security/clamav/clamav-0.98.5/series
deleted file mode 100644
index 3b09681..0000000
--- a/recipes-security/clamav/clamav-0.98.5/series
+++ /dev/null
@@ -1,18 +0,0 @@
-0001-Change-paths-in-sample-conf-file-to-match-Debian.patch
-0002-Add-an-additional-n-after-the-number-in-the-pidfile.patch
-0003-unit_tests-increment-test-timeout-from-40secs-to-5mi.patch
-0004-Fix-compiling-on-Hurd.patch
-0005-Workaround-a-bug-in-libc-on-Hurd.patch
-0006-remove-unnecessary-harmful-flags-from-libclamav.pc.patch
-0007-libclamav-use-libmspack.patch
-0008-Add-upstream-systemd-support-for-clamav-daemon-and-c.patch
-0009-fix-ssize_t-size_t-off_t-printf-modifier.patch
-0010-hardcode-LLVM-linker-flag-because-llvm-config-return.patch
-0011-Add-libmspack-library-from-upstream-without-unnecess.patch
-0012-allow-to-use-internal-libmspack-if-the-external-is-n.patch
-0013-fix-autoreconf-with-embedded-libmspack.patch
-0014-remove-AC_CONFIG_SRCDIR-llvm-configure-from-libclama.patch
-0015-bb-10731-Allow-to-specificy-a-group-for-the-socket-o.patch
-0016-clamav-milter-add-additinal-SMFIF_-flags-before-invo.patch
-0017-Bump-.so-version-number.patch
-0018-llvm-don-t-use-system-libs.patch
diff --git a/recipes-security/clamav/clamav-0.98.5/volatiles.03_clamav b/recipes-security/clamav/clamav-0.98.5/volatiles.03_clamav
deleted file mode 100644
index ee2153c..0000000
--- a/recipes-security/clamav/clamav-0.98.5/volatiles.03_clamav
+++ /dev/null
@@ -1,3 +0,0 @@
-# <type> <owner> <group> <mode> <path> <linksource>
-d clamav clamav 0755 /var/log/clamav none
-f clamav clamav 0655 /var/log/clamav/freshclam.log none
diff --git a/recipes-security/clamav/clamav-0.99.1/clamav-freshclam.service b/recipes-security/clamav/clamav-0.99.1/clamav-freshclam.service
new file mode 100644
index 0000000..0c909fb
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/clamav-freshclam.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=ClamAV virus database updater
+Documentation=man:freshclam(1) man:freshclam.conf(5) http://www.clamav.net/lang/en/doc/
+# If user wants it run from cron, don't start the daemon.
+ConditionPathExists=!/etc/cron.d/clamav-freshclam
+
+[Service]
+ExecStart=/usr/bin/freshclam -d --foreground=true
+StandardOutput=syslog
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-security/clamav/clamav-0.99.1/clamav-milter.conf.sample b/recipes-security/clamav/clamav-0.99.1/clamav-milter.conf.sample
new file mode 100644
index 0000000..ed0d519
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/clamav-milter.conf.sample
@@ -0,0 +1,293 @@
+##
+## Example config file for clamav-milter
+##
+
+# Comment or remove the line below.
+Example
+
+
+##
+## Main options
+##
+
+# Define the interface through which we communicate with sendmail
+# This option is mandatory! Possible formats are:
+# [[unix|local]:]/path/to/file - to specify a unix domain socket
+# inet:port@[hostname|ip-address] - to specify an ipv4 socket
+# inet6:port@[hostname|ip-address] - to specify an ipv6 socket
+#
+# Default: no default
+#MilterSocket /tmp/clamav-milter.socket
+#MilterSocket inet:7357
+
+# Define the group ownership for the (unix) milter socket.
+# Default: disabled (the primary group of the user running clamd)
+#MilterSocketGroup virusgroup
+
+# Sets the permissions on the (unix) milter socket to the specified mode.
+# Default: disabled (obey umask)
+#MilterSocketMode 660
+
+# Remove stale socket after unclean shutdown.
+#
+# Default: yes
+#FixStaleSocket yes
+
+# Run as another user (clamav-milter must be started by root for this option to work)
+#
+# Default: unset (don't drop privileges)
+#User clamav
+
+# Initialize supplementary group access (clamav-milter must be started by root).
+#
+# Default: no
+#AllowSupplementaryGroups no
+
+# Waiting for data from clamd will timeout after this time (seconds).
+# Value of 0 disables the timeout.
+#
+# Default: 120
+#ReadTimeout 300
+
+# Don't fork into background.
+#
+# Default: no
+#Foreground yes
+
+# Chroot to the specified directory.
+# Chrooting is performed just after reading the config file and before dropping privileges.
+#
+# Default: unset (don't chroot)
+#Chroot /newroot
+
+# This option allows you to save a process identifier of the listening
+# daemon (main thread).
+#
+# Default: disabled
+#PidFile /var/run/clamav/clamav-milter.pid
+
+# Optional path to the global temporary directory.
+# Default: system specific (usually /tmp or /var/tmp).
+#
+#TemporaryDirectory /var/tmp
+
+##
+## Clamd options
+##
+
+# Define the clamd socket to connect to for scanning.
+# This option is mandatory! Syntax:
+# ClamdSocket unix:path
+# ClamdSocket tcp:host:port
+# The first syntax specifies a local unix socket (needs an absolute path) e.g.:
+#     ClamdSocket unix:/var/run/clamd/clamd.socket
+# The second syntax specifies a tcp local or remote tcp socket: the
+# host can be a hostname or an ip address; the ":port" field is only required
+# for IPv6 addresses, otherwise it defaults to 3310, e.g.:
+#     ClamdSocket tcp:192.168.0.1
+#
+# This option can be repeated several times with different sockets or even
+# with the same socket: clamd servers will be selected in a round-robin fashion.
+#
+# Default: no default
+ClamdSocket /var/run/clamav/clamd
+
+
+##
+## Exclusions
+##
+
+# Messages originating from these hosts/networks will not be scanned
+# This option takes a host(name)/mask pair in CIRD notation and can be
+# repeated several times. If "/mask" is omitted, a host is assumed.
+# To specify a locally orignated, non-smtp, email use the keyword "local"
+#
+# Default: unset (scan everything regardless of the origin)
+#LocalNet local
+#LocalNet 192.168.0.0/24
+#LocalNet 1111:2222:3333::/48
+
+# This option specifies a file which contains a list of basic POSIX regular
+# expressions. Addresses (sent to or from - see below) matching these regexes
+# will not be scanned.  Optionally each line can start with the string "From:"
+# or "To:" (note: no whitespace after the colon) indicating if it is, 
+# respectively, the sender or recipient that is to be whitelisted.
+# If the field is missing, "To:" is assumed.
+# Lines starting with #, : or ! are ignored.
+#
+# Default unset (no exclusion applied)
+#Whitelist /etc/whitelisted_addresses
+
+# Messages from authenticated SMTP users matching this extended POSIX
+# regular expression (egrep-like) will not be scanned.
+# As an alternative, a file containing a plain (not regex) list of names (one
+# per line) can be specified using the prefix "file:".
+# e.g. SkipAuthenticated file:/etc/good_guys
+#
+# Note: this is the AUTH login name!
+#
+# Default: unset (no whitelisting based on SMTP auth)
+#SkipAuthenticated ^(tom|dick|henry)$
+
+# Messages larger than this value won't be scanned.
+# Make sure this value is lower or equal than StreamMaxLength in clamd.conf
+#
+# Default: 25M
+#MaxFileSize 10M
+
+
+##
+## Actions
+##
+
+# The following group of options controls the delievery process under
+# different circumstances.
+# The following actions are available:
+# - Accept
+#   The message is accepted for delievery
+# - Reject
+#   Immediately refuse delievery (a 5xx error is returned to the peer)
+# - Defer
+#   Return a temporary failure message (4xx) to the peer
+# - Blackhole (not available for OnFail)
+#   Like Accept but the message is sent to oblivion
+# - Quarantine (not available for OnFail)
+#   Like Accept but message is quarantined instead of being delivered
+#
+# NOTE: In Sendmail the quarantine queue can be examined via mailq -qQ
+# For Postfix this causes the message to be placed on hold
+# 
+# Action to be performed on clean messages (mostly useful for testing)
+# Default: Accept
+#OnClean Accept
+
+# Action to be performed on infected messages
+# Default: Quarantine
+#OnInfected Quarantine
+
+# Action to be performed on error conditions (this includes failure to
+# allocate data structures, no scanners available, network timeouts,
+# unknown scanner replies and the like)
+# Default: Defer
+#OnFail Defer
+
+# This option allows to set a specific rejection reason for infected messages
+# and it's therefore only useful together with "OnInfected Reject"
+# The string "%v", if present, will be replaced with the virus name.
+# Default: MTA specific
+#RejectMsg 
+
+# If this option is set to "Replace" (or "Yes"), an "X-Virus-Scanned" and an
+# "X-Virus-Status" headers will be attached to each processed message, possibly
+# replacing existing headers.
+# If it is set to Add, the X-Virus headers are added possibly on top of the
+# existing ones.
+# Note that while "Replace" can potentially break DKIM signatures, "Add" may
+# confuse procmail and similar filters.
+# Default: no
+#AddHeader Replace
+
+# When AddHeader is in use, this option allows to arbitrary set the reported
+# hostname. This may be desirable in order to avoid leaking internal names.
+# If unset the real machine name is used.
+# Default: disabled
+#ReportHostname my.mail.server.name
+
+# Execute a command (possibly searching PATH) when an infected message is found.
+# The following parameters are passed to the invoked program in this order:
+# virus name, queue id, sender, destination, subject, message id, message date.
+# Note #1: this requires MTA macroes to be available (see LogInfected below)
+# Note #2: the process is invoked in the context of clamav-milter
+# Note #3: clamav-milter will wait for the process to exit. Be quick or fork to
+# avoid unnecessary delays in email delievery
+# Default: disabled
+#VirusAction /usr/local/bin/my_infected_message_handler
+
+##
+## Logging options
+##
+
+# Uncomment this option to enable logging.
+# LogFile must be writable for the user running daemon.
+# A full path is required.
+#
+# Default: disabled
+#LogFile /var/log/clamav/clamav-milter.log
+
+# By default the log file is locked for writing - the lock protects against
+# running clamav-milter multiple times.
+# This option disables log file locking.
+#
+# Default: no
+#LogFileUnlock yes
+
+# Maximum size of the log file.
+# Value of 0 disables the limit.
+# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
+# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
+# in bytes just don't use modifiers. If LogFileMaxSize is enabled, log
+# rotation (the LogRotate option) will always be enabled.
+#
+# Default: 1M
+#LogFileMaxSize 2M
+
+# Log time with each message.
+#
+# Default: no
+#LogTime yes
+
+# Use system logger (can work together with LogFile).
+#
+# Default: no
+#LogSyslog yes
+
+# Specify the type of syslog messages - please refer to 'man syslog'
+# for facility names.
+#
+# Default: LOG_LOCAL6
+#LogFacility LOG_MAIL
+
+# Enable verbose logging.
+#
+# Default: no
+#LogVerbose yes
+
+# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
+# Default: no
+#LogRotate yes
+
+# This option allows to tune what is logged when a message is infected.
+# Possible values are Off (the default - nothing is logged),
+# Basic (minimal info logged), Full (verbose info logged)
+# Note:
+# For this to work properly in sendmail, make sure the msg_id, mail_addr,
+# rcpt_addr and i macroes are available in eom. In other words add a line like:
+# Milter.macros.eom={msg_id}, {mail_addr}, {rcpt_addr}, i
+# to your .cf file. Alternatively use the macro:
+# define(`confMILTER_MACROS_EOM', `{msg_id}, {mail_addr}, {rcpt_addr}, i')
+# Postfix should be working fine with the default settings.
+#
+# Default: disabled
+#LogInfected Basic
+
+# This option allows to tune what is logged when no threat is found in a scanned message.
+# See LogInfected for possible values and caveats.
+# Useful in debugging but drastically increases the log size.
+# Default: disabled
+#LogClean Basic
+
+# This option affects the behaviour of LogInfected, LogClean and VirusAction
+# when a message with multiple recipients is scanned:
+# If SupportMultipleRecipients is off (the default)
+# then one single log entry is generated for the message and, in case the
+# message is determined to be malicious, the command indicated by VirusAction
+# is executed just once. In both cases only the last recipient is reported.
+# If SupportMultipleRecipients is on:
+# then one line is logged for each recipient and the command indicated
+# by VirusAction is also executed once for each recipient.
+# 
+# Note: although it's probably a good idea to enable this option, the default value
+# is currently set to off for legacy reasons.
+# Default: no
+#SupportMultipleRecipients yes
+
diff --git a/recipes-security/clamav/clamav-0.99.1/clamav.service b/recipes-security/clamav/clamav-0.99.1/clamav.service
new file mode 100644
index 0000000..f13191f
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/clamav.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Clam AntiVirus userspace daemon
+Documentation=man:clamd(8) man:clamd.conf(5) http://www.clamav.net/lang/en/doc/
+Requires=clamav-daemon.socket
+# Check for database existence
+ConditionPathExistsGlob=/usr/share/clamav/main.{c[vl]d,inc}
+ConditionPathExistsGlob=/usr/share/clamav/daily.{c[vl]d,inc}
+
+[Service]
+ExecStart=/usr/sbin/clamd --foreground=true
+# Reload the database
+ExecReload=/bin/kill -USR2 $MAINPID
+StandardOutput=syslog
+
+[Install]
+WantedBy=multi-user.target
+Also=clamav-daemon.socket
diff --git a/recipes-security/clamav/clamav-0.99.1/clamd.conf b/recipes-security/clamav/clamav-0.99.1/clamd.conf
new file mode 100644
index 0000000..0457785
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/clamd.conf
@@ -0,0 +1,595 @@
+# Uncomment this option to enable logging.
+# LogFile must be writable for the user running daemon.
+# A full path is required.
+# Default: disabled
+LogFile /tmp/clamd.log
+
+# By default the log file is locked for writing - the lock protects against
+# running clamd multiple times (if want to run another clamd, please
+# copy the configuration file, change the LogFile variable, and run
+# the daemon with --config-file option).
+# This option disables log file locking.
+# Default: no
+LogFileUnlock yes
+
+# Maximum size of the log file.
+# Value of 0 disables the limit.
+# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
+# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
+# in bytes just don't use modifiers. If LogFileMaxSize is enabled, log
+# rotation (the LogRotate option) will always be enabled.
+# Default: 1M
+LogFileMaxSize 2M
+
+# Log time with each message.
+# Default: no
+LogTime yes
+
+# Also log clean files. Useful in debugging but drastically increases the
+# log size.
+# Default: no
+#LogClean yes
+
+# Use system logger (can work together with LogFile).
+# Default: no
+#LogSyslog yes
+
+# Specify the type of syslog messages - please refer to 'man syslog'
+# for facility names.
+# Default: LOG_LOCAL6
+#LogFacility LOG_MAIL
+
+# Enable verbose logging.
+# Default: no
+#LogVerbose yes
+
+# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
+# Default: no
+#LogRotate yes
+
+# Log additional information about the infected file, such as its
+# size and hash, together with the virus name.
+ExtendedDetectionInfo yes
+
+# This option allows you to save a process identifier of the listening
+# daemon (main thread).
+# Default: disabled
+PidFile /var/run/clamd.pid
+
+# Optional path to the global temporary directory.
+# Default: system specific (usually /tmp or /var/tmp).
+TemporaryDirectory /var/tmp
+
+# Path to the database directory.
+# Default: hardcoded (depends on installation options)
+DatabaseDirectory /var/lib/clamav
+
+# Only load the official signatures published by the ClamAV project.
+# Default: no
+#OfficialDatabaseOnly no
+
+# The daemon can work in local mode, network mode or both. 
+# Due to security reasons we recommend the local mode.
+
+# Path to a local socket file the daemon will listen on.
+# Default: disabled (must be specified by a user)
+LocalSocket /tmp/clamd.socket
+
+# Sets the group ownership on the unix socket.
+# Default: disabled (the primary group of the user running clamd)
+#LocalSocketGroup virusgroup
+
+# Sets the permissions on the unix socket to the specified mode.
+# Default: disabled (socket is world accessible)
+#LocalSocketMode 660
+
+# Remove stale socket after unclean shutdown.
+# Default: yes
+#FixStaleSocket yes
+
+# TCP port address.
+# Default: no
+#TCPSocket 3310
+
+# TCP address.
+# By default we bind to INADDR_ANY, probably not wise.
+# Enable the following to provide some degree of protection
+# from the outside world. This option can be specified multiple
+# times if you want to listen on multiple IPs. IPv6 is now supported.
+# Default: no
+#TCPAddr 127.0.0.1
+
+# Maximum length the queue of pending connections may grow to.
+# Default: 200
+#MaxConnectionQueueLength 30
+
+# Clamd uses FTP-like protocol to receive data from remote clients.
+# If you are using clamav-milter to balance load between remote clamd daemons
+# on firewall servers you may need to tune the options below.
+
+# Close the connection when the data size limit is exceeded.
+# The value should match your MTA's limit for a maximum attachment size.
+# Default: 25M
+#StreamMaxLength 10M
+
+# Limit port range.
+# Default: 1024
+#StreamMinPort 30000
+# Default: 2048
+#StreamMaxPort 32000
+
+# Maximum number of threads running at the same time.
+# Default: 10
+#MaxThreads 20
+
+# Waiting for data from a client socket will timeout after this time (seconds).
+# Default: 120
+#ReadTimeout 300
+
+# This option specifies the time (in seconds) after which clamd should
+# timeout if a client doesn't provide any initial command after connecting.
+# Default: 5
+#CommandReadTimeout 5
+
+# This option specifies how long to wait (in miliseconds) if the send buffer is full.
+# Keep this value low to prevent clamd hanging
+#
+# Default: 500
+#SendBufTimeout 200
+
+# Maximum number of queued items (including those being processed by MaxThreads threads)
+# It is recommended to have this value at least twice MaxThreads if possible.
+# WARNING: you shouldn't increase this too much to avoid running out  of file descriptors,
+# the following condition should hold:
+# MaxThreads*MaxRecursion + (MaxQueue - MaxThreads) + 6< RLIMIT_NOFILE (usual max is 1024)
+#
+# Default: 100
+#MaxQueue 200
+
+# Waiting for a new job will timeout after this time (seconds).
+# Default: 30
+#IdleTimeout 60
+
+# Don't scan files and directories matching regex
+# This directive can be used multiple times
+# Default: scan all
+#ExcludePath ^/proc/
+#ExcludePath ^/sys/
+
+# Maximum depth directories are scanned at.
+# Default: 15
+#MaxDirectoryRecursion 20
+
+# Follow directory symlinks.
+# Default: no
+#FollowDirectorySymlinks yes
+
+# Follow regular file symlinks.
+# Default: no
+#FollowFileSymlinks yes
+
+# Scan files and directories on other filesystems.
+# Default: yes
+#CrossFilesystems yes
+
+# Perform a database check.
+# Default: 600 (10 min)
+#SelfCheck 600
+
+# Execute a command when virus is found. In the command string %v will
+# be replaced with the virus name.
+# Default: no
+#VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %v"
+
+# Run as another user (clamd must be started by root for this option to work)
+# Default: don't drop privileges
+User clamav
+
+# Initialize supplementary group access (clamd must be started by root).
+# Default: no
+#AllowSupplementaryGroups no
+
+# Stop daemon when libclamav reports out of memory condition.
+#ExitOnOOM yes
+
+# Don't fork into background.
+# Default: no
+#Foreground yes
+
+# Enable debug messages in libclamav.
+# Default: no
+#Debug yes
+
+# Do not remove temporary files (for debug purposes).
+# Default: no
+#LeaveTemporaryFiles yes
+
+# Permit use of the ALLMATCHSCAN command. If set to no, clamd will reject
+# any ALLMATCHSCAN command as invalid.
+# Default: yes
+#AllowAllMatchScan no
+
+# Detect Possibly Unwanted Applications.
+# Default: no
+#DetectPUA yes
+
+# Exclude a specific PUA category. This directive can be used multiple times.
+# See https://github.com/vrtadmin/clamav-faq/blob/master/faq/faq-pua.md for 
+# the complete list of PUA categories.
+# Default: Load all categories (if DetectPUA is activated)
+#ExcludePUA NetTool
+#ExcludePUA PWTool
+
+# Only include a specific PUA category. This directive can be used multiple
+# times.
+# Default: Load all categories (if DetectPUA is activated)
+#IncludePUA Spy
+#IncludePUA Scanner
+#IncludePUA RAT
+
+# In some cases (eg. complex malware, exploits in graphic files, and others),
+# ClamAV uses special algorithms to provide accurate detection. This option
+# controls the algorithmic detection.
+# Default: yes
+#AlgorithmicDetection yes
+
+# This option causes memory or nested map scans to dump the content to disk.
+# If you turn on this option, more data is written to disk and is available
+# when the LeaveTemporaryFiles option is enabled.
+#ForceToDisk yes
+
+# This option allows you to disable the caching feature of the engine. By
+# default, the engine will store an MD5 in a cache of any files that are
+# not flagged as virus or that hit limits checks. Disabling the cache will
+# have a negative performance impact on large scans.
+# Default: no
+#DisableCache yes
+
+##
+## Executable files
+##
+
+# PE stands for Portable Executable - it's an executable file format used
+# in all 32 and 64-bit versions of Windows operating systems. This option allows
+# ClamAV to perform a deeper analysis of executable files and it's also
+# required for decompression of popular executable packers such as UPX, FSG,
+# and Petite. If you turn off this option, the original files will still be
+# scanned, but without additional processing.
+# Default: yes
+#ScanPE yes
+
+# Certain PE files contain an authenticode signature. By default, we check
+# the signature chain in the PE file against a database of trusted and
+# revoked certificates if the file being scanned is marked as a virus.
+# If any certificate in the chain validates against any trusted root, but
+# does not match any revoked certificate, the file is marked as whitelisted.
+# If the file does match a revoked certificate, the file is marked as virus.
+# The following setting completely turns off authenticode verification.
+# Default: no
+#DisableCertCheck yes
+
+# Executable and Linking Format is a standard format for UN*X executables.
+# This option allows you to control the scanning of ELF files.
+# If you turn off this option, the original files will still be scanned, but
+# without additional processing.
+# Default: yes
+#ScanELF yes
+
+# With this option clamav will try to detect broken executables (both PE and
+# ELF) and mark them as Broken.Executable.
+# Default: no
+#DetectBrokenExecutables yes
+
+
+##
+## Documents
+##
+
+# This option enables scanning of OLE2 files, such as Microsoft Office
+# documents and .msi files.
+# If you turn off this option, the original files will still be scanned, but
+# without additional processing.
+# Default: yes
+#ScanOLE2 yes
+
+# With this option enabled OLE2 files with VBA macros, which were not
+# detected by signatures will be marked as "Heuristics.OLE2.ContainsMacros".
+# Default: no
+#OLE2BlockMacros no
+
+# This option enables scanning within PDF files.
+# If you turn off this option, the original files will still be scanned, but
+# without decoding and additional processing.
+# Default: yes
+#ScanPDF yes
+
+# This option enables scanning within SWF files.
+# If you turn off this option, the original files will still be scanned, but
+# without decoding and additional processing.
+# Default: yes
+#ScanSWF yes
+
+
+##
+## Mail files
+##
+
+# Enable internal e-mail scanner.
+# If you turn off this option, the original files will still be scanned, but
+# without parsing individual messages/attachments.
+# Default: yes
+#ScanMail yes
+
+# Scan RFC1341 messages split over many emails.
+# You will need to periodically clean up $TemporaryDirectory/clamav-partial directory.
+# WARNING: This option may open your system to a DoS attack.
+#	   Never use it on loaded servers.
+# Default: no
+#ScanPartialMessages yes
+
+# With this option enabled ClamAV will try to detect phishing attempts by using
+# signatures.
+# Default: yes
+#PhishingSignatures yes
+
+# Scan URLs found in mails for phishing attempts using heuristics.
+# Default: yes
+#PhishingScanURLs yes
+
+# Always block SSL mismatches in URLs, even if the URL isn't in the database.
+# This can lead to false positives.
+#
+# Default: no
+#PhishingAlwaysBlockSSLMismatch no
+
+# Always block cloaked URLs, even if URL isn't in database.
+# This can lead to false positives.
+#
+# Default: no
+#PhishingAlwaysBlockCloak no
+
+# Detect partition intersections in raw disk images using heuristics.
+# Default: no
+#PartitionIntersection no
+
+# Allow heuristic match to take precedence.
+# When enabled, if a heuristic scan (such as phishingScan) detects
+# a possible virus/phish it will stop scan immediately. Recommended, saves CPU
+# scan-time.
+# When disabled, virus/phish detected by heuristic scans will be reported only at
+# the end of a scan. If an archive contains both a heuristically detected
+# virus/phish, and a real malware, the real malware will be reported
+#
+# Keep this disabled if you intend to handle "*.Heuristics.*" viruses 
+# differently from "real" malware.
+# If a non-heuristically-detected virus (signature-based) is found first, 
+# the scan is interrupted immediately, regardless of this config option.
+#
+# Default: no
+#HeuristicScanPrecedence yes
+
+
+##
+## Data Loss Prevention (DLP)
+##
+
+# Enable the DLP module
+# Default: No
+#StructuredDataDetection yes
+
+# This option sets the lowest number of Credit Card numbers found in a file
+# to generate a detect.
+# Default: 3
+#StructuredMinCreditCardCount 5
+
+# This option sets the lowest number of Social Security Numbers found
+# in a file to generate a detect.
+# Default: 3
+#StructuredMinSSNCount 5
+
+# With this option enabled the DLP module will search for valid
+# SSNs formatted as xxx-yy-zzzz
+# Default: yes
+#StructuredSSNFormatNormal yes
+
+# With this option enabled the DLP module will search for valid
+# SSNs formatted as xxxyyzzzz
+# Default: no
+#StructuredSSNFormatStripped yes
+
+
+##
+## HTML
+##
+
+# Perform HTML normalisation and decryption of MS Script Encoder code.
+# Default: yes
+# If you turn off this option, the original files will still be scanned, but
+# without additional processing.
+#ScanHTML yes
+
+
+##
+## Archives
+##
+
+# ClamAV can scan within archives and compressed files.
+# If you turn off this option, the original files will still be scanned, but
+# without unpacking and additional processing.
+# Default: yes
+#ScanArchive yes
+
+# Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR).
+# Default: no
+#ArchiveBlockEncrypted no
+
+
+##
+## Limits
+##
+
+# The options below protect your system against Denial of Service attacks
+# using archive bombs.
+
+# This option sets the maximum amount of data to be scanned for each input file.
+# Archives and other containers are recursively extracted and scanned up to this
+# value.
+# Value of 0 disables the limit
+# Note: disabling this limit or setting it too high may result in severe damage
+# to the system.
+# Default: 100M
+#MaxScanSize 150M
+
+# Files larger than this limit won't be scanned. Affects the input file itself
+# as well as files contained inside it (when the input file is an archive, a
+# document or some other kind of container).
+# Value of 0 disables the limit.
+# Note: disabling this limit or setting it too high may result in severe damage
+# to the system.
+# Default: 25M
+#MaxFileSize 30M
+
+# Nested archives are scanned recursively, e.g. if a Zip archive contains a RAR
+# file, all files within it will also be scanned. This options specifies how
+# deeply the process should be continued.
+# Note: setting this limit too high may result in severe damage to the system.
+# Default: 16
+#MaxRecursion 10
+
+# Number of files to be scanned within an archive, a document, or any other
+# container file.
+# Value of 0 disables the limit.
+# Note: disabling this limit or setting it too high may result in severe damage
+# to the system.
+# Default: 10000
+#MaxFiles 15000
+
+# Maximum size of a file to check for embedded PE. Files larger than this value
+# will skip the additional analysis step.
+# Note: disabling this limit or setting it too high may result in severe damage
+# to the system.
+# Default: 10M
+#MaxEmbeddedPE 10M
+
+# Maximum size of a HTML file to normalize. HTML files larger than this value
+# will not be normalized or scanned.
+# Note: disabling this limit or setting it too high may result in severe damage
+# to the system.
+# Default: 10M
+#MaxHTMLNormalize 10M
+
+# Maximum size of a normalized HTML file to scan. HTML files larger than this
+# value after normalization will not be scanned.
+# Note: disabling this limit or setting it too high may result in severe damage
+# to the system.
+# Default: 2M
+#MaxHTMLNoTags 2M
+
+# Maximum size of a script file to normalize. Script content larger than this
+# value will not be normalized or scanned.
+# Note: disabling this limit or setting it too high may result in severe damage
+# to the system.
+# Default: 5M
+#MaxScriptNormalize 5M
+
+# Maximum size of a ZIP file to reanalyze type recognition. ZIP files larger
+# than this value will skip the step to potentially reanalyze as PE.
+# Note: disabling this limit or setting it too high may result in severe damage
+# to the system.
+# Default: 1M
+#MaxZipTypeRcg 1M
+
+# This option sets the maximum number of partitions of a raw disk image to be scanned.
+# Raw disk images with more partitions than this value will have up to the value number
+# partitions scanned. Negative values are not allowed.
+# Note: setting this limit too high may result in severe damage or impact performance.
+# Default: 50
+#MaxPartitions 128
+
+# This option sets the maximum number of icons within a PE to be scanned.
+# PE files with more icons than this value will have up to the value number icons scanned.
+# Negative values are not allowed.
+# WARNING: setting this limit too high may result in severe damage or impact performance.
+# Default: 100
+#MaxIconsPE 200
+
+##
+## On-access Scan Settings
+##
+
+# Enable on-access scanning. Currently, this is supported via fanotify.
+# Clamuko/Dazuko support has been deprecated.
+# Default: no
+#ScanOnAccess yes
+
+# Don't scan files larger than OnAccessMaxFileSize
+# Value of 0 disables the limit.
+# Default: 5M
+#OnAccessMaxFileSize 10M
+
+# Set the include paths (all files inside them will be scanned). You can have
+# multiple OnAccessIncludePath directives but each directory must be added
+# in a separate line. (On-access scan only)
+# Default: disabled
+#OnAccessIncludePath /home
+#OnAccessIncludePath /students
+
+# Set the exclude paths. All subdirectories are also excluded.
+# (On-access scan only)
+# Default: disabled
+#OnAccessExcludePath /home/bofh
+
+# With this option you can whitelist specific UIDs. Processes with these UIDs
+# will be able to access all files.
+# This option can be used multiple times (one per line).
+# Default: disabled
+#OnAccessExcludeUID 0
+
+
+##
+## Bytecode
+##
+
+# With this option enabled ClamAV will load bytecode from the database. 
+# It is highly recommended you keep this option on, otherwise you'll miss detections for many new viruses.
+# Default: yes
+#Bytecode yes
+
+# Set bytecode security level.
+# Possible values:
+#       None - no security at all, meant for debugging. DO NOT USE THIS ON PRODUCTION SYSTEMS
+#         This value is only available if clamav was built with --enable-debug!
+#       TrustSigned - trust bytecode loaded from signed .c[lv]d files,
+#                insert runtime safety checks for bytecode loaded from other sources
+#       Paranoid - don't trust any bytecode, insert runtime checks for all
+# Recommended: TrustSigned, because bytecode in .cvd files already has these checks
+# Note that by default only signed bytecode is loaded, currently you can only
+# load unsigned bytecode in --enable-debug mode.
+#
+# Default: TrustSigned
+#BytecodeSecurity TrustSigned
+
+# Set bytecode timeout in miliseconds.
+# 
+# Default: 5000
+# BytecodeTimeout 1000
+
+##
+## Statistics gathering and submitting
+##
+
+# Enable statistical reporting.
+# Default: no
+#StatsEnabled yes
+
+# Disable submission of individual PE sections for files flagged as malware.
+# Default: no
+#StatsPEDisabled yes
+
+# HostID in the form of an UUID to use when submitting statistical information.
+# Default: auto
+#StatsHostID auto
+
+# Time in seconds to wait for the stats server to come back with a response
+# Default: 10
+#StatsTimeout 10
diff --git a/recipes-security/clamav/clamav-0.99.1/freshclam.conf b/recipes-security/clamav/clamav-0.99.1/freshclam.conf
new file mode 100644
index 0000000..100724f
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/freshclam.conf
@@ -0,0 +1,224 @@
+# Path to the database directory.
+# WARNING: It must match clamd.conf's directive!
+# Default: hardcoded (depends on installation options)
+DatabaseDirectory /var/lib/clamav
+
+# Path to the log file (make sure it has proper permissions)
+# Default: disabled
+UpdateLogFile /var/log/clamav/freshclam.log
+
+# Maximum size of the log file.
+# Value of 0 disables the limit.
+# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
+# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes).
+# in bytes just don't use modifiers. If LogFileMaxSize is enabled,
+# log rotation (the LogRotate option) will always be enabled.
+# Default: 1M
+LogFileMaxSize 2M
+
+# Log time with each message.
+# Default: no
+LogTime yes
+
+# Enable verbose logging.
+# Default: no
+#LogVerbose yes
+
+# Use system logger (can work together with UpdateLogFile).
+# Default: no
+#LogSyslog yes
+
+# Specify the type of syslog messages - please refer to 'man syslog'
+# for facility names.
+# Default: LOG_LOCAL6
+#LogFacility LOG_MAIL
+
+# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
+# Default: no
+#LogRotate yes
+
+# This option allows you to save the process identifier of the daemon
+# Default: disabled
+PidFile /var/run/freshclam.pid
+
+# By default when started freshclam drops privileges and switches to the
+# "clamav" user. This directive allows you to change the database owner.
+# Default: clamav (may depend on installation options)
+DatabaseOwner clamav
+
+# Initialize supplementary group access (freshclam must be started by root).
+# Default: no
+#AllowSupplementaryGroups yes
+
+# Use DNS to verify virus database version. Freshclam uses DNS TXT records
+# to verify database and software versions. With this directive you can change
+# the database verification domain.
+# WARNING: Do not touch it unless you're configuring freshclam to use your
+# own database verification domain.
+# Default: current.cvd.clamav.net
+#DNSDatabaseInfo current.cvd.clamav.net
+
+# Uncomment the following line and replace XY with your country
+# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
+# You can use db.XY.ipv6.clamav.net for IPv6 connections.
+#DatabaseMirror db.XY.clamav.net
+
+# database.clamav.net is a round-robin record which points to our most 
+# reliable mirrors. It's used as a fall back in case db.XY.clamav.net is 
+# not working. DO NOT TOUCH the following line unless you know what you
+# are doing.
+DatabaseMirror database.clamav.net
+
+# How many attempts to make before giving up.
+# Default: 3 (per mirror)
+#MaxAttempts 5
+
+# With this option you can control scripted updates. It's highly recommended
+# to keep it enabled.
+# Default: yes
+#ScriptedUpdates yes
+
+# By default freshclam will keep the local databases (.cld) uncompressed to
+# make their handling faster. With this option you can enable the compression;
+# the change will take effect with the next database update.
+# Default: no
+#CompressLocalDatabase no
+
+# With this option you can provide custom sources (http:// or file://) for
+# database files. This option can be used multiple times.
+# Default: no custom URLs
+#DatabaseCustomURL http://myserver.com/mysigs.ndb
+#DatabaseCustomURL file:///mnt/nfs/local.hdb
+
+# This option allows you to easily point freshclam to private mirrors.
+# If PrivateMirror is set, freshclam does not attempt to use DNS
+# to determine whether its databases are out-of-date, instead it will
+# use the If-Modified-Since request or directly check the headers of the
+# remote database files. For each database, freshclam first attempts
+# to download the CLD file. If that fails, it tries to download the
+# CVD file. This option overrides DatabaseMirror, DNSDatabaseInfo
+# and ScriptedUpdates. It can be used multiple times to provide
+# fall-back mirrors.
+# Default: disabled
+#PrivateMirror mirror1.mynetwork.com
+#PrivateMirror mirror2.mynetwork.com
+
+# Number of database checks per day.
+# Default: 12 (every two hours)
+#Checks 24
+
+# Proxy settings
+# Default: disabled
+#HTTPProxyServer myproxy.com
+#HTTPProxyPort 1234
+#HTTPProxyUsername myusername
+#HTTPProxyPassword mypass
+
+# If your servers are behind a firewall/proxy which applies User-Agent
+# filtering you can use this option to force the use of a different
+# User-Agent header.
+# Default: clamav/version_number
+#HTTPUserAgent SomeUserAgentIdString
+
+# Use aaa.bbb.ccc.ddd as client address for downloading databases. Useful for
+# multi-homed systems.
+# Default: Use OS'es default outgoing IP address.
+#LocalIPAddress aaa.bbb.ccc.ddd
+
+# Send the RELOAD command to clamd.
+# Default: no
+#NotifyClamd /path/to/clamd.conf
+
+# Run command after successful database update.
+# Default: disabled
+#OnUpdateExecute command
+
+# Run command when database update process fails.
+# Default: disabled
+#OnErrorExecute command
+
+# Run command when freshclam reports outdated version.
+# In the command string %v will be replaced by the new version number.
+# Default: disabled
+#OnOutdatedExecute command
+
+# Don't fork into background.
+# Default: no
+#Foreground yes
+
+# Enable debug messages in libclamav.
+# Default: no
+#Debug yes
+
+# Timeout in seconds when connecting to database server.
+# Default: 30
+#ConnectTimeout 60
+
+# Timeout in seconds when reading from database server.
+# Default: 30
+#ReceiveTimeout 60
+
+# With this option enabled, freshclam will attempt to load new
+# databases into memory to make sure they are properly handled
+# by libclamav before replacing the old ones.
+# Default: yes
+#TestDatabases yes
+
+# When enabled freshclam will submit statistics to the ClamAV Project about
+# the latest virus detections in your environment. The ClamAV maintainers
+# will then use this data to determine what types of malware are the most
+# detected in the field and in what geographic area they are.
+# Freshclam will connect to clamd in order to get recent statistics.
+# Default: no
+#SubmitDetectionStats /path/to/clamd.conf
+
+# Country of origin of malware/detection statistics (for statistical
+# purposes only). The statistics collector at ClamAV.net will look up
+# your IP address to determine the geographical origin of the malware
+# reported by your installation. If this installation is mainly used to
+# scan data which comes from a different location, please enable this
+# option and enter a two-letter code (see http://www.iana.org/domains/root/db/)
+# of the country of origin.
+# Default: disabled
+#DetectionStatsCountry country-code
+
+# This option enables support for our "Personal Statistics" service. 
+# When this option is enabled, the information on malware detected by
+# your clamd installation is made available to you through our website.
+# To get your HostID, log on http://www.stats.clamav.net and add a new
+# host to your host list. Once you have the HostID, uncomment this option
+# and paste the HostID here. As soon as your freshclam starts submitting
+# information to our stats collecting service, you will be able to view
+# the statistics of this clamd installation by logging into
+# http://www.stats.clamav.net with the same credentials you used to
+# generate the HostID. For more information refer to:
+# http://www.clamav.net/documentation.html#cctts 
+# This feature requires SubmitDetectionStats to be enabled.
+# Default: disabled
+#DetectionStatsHostID unique-id
+
+# This option enables support for Google Safe Browsing. When activated for
+# the first time, freshclam will download a new database file (safebrowsing.cvd)
+# which will be automatically loaded by clamd and clamscan during the next
+# reload, provided that the heuristic phishing detection is turned on. This
+# database includes information about websites that may be phishing sites or
+# possible sources of malware. When using this option, it's mandatory to run
+# freshclam at least every 30 minutes.
+# Freshclam uses the ClamAV's mirror infrastructure to distribute the
+# database and its updates but all the contents are provided under Google's
+# terms of use. See http://www.google.com/transparencyreport/safebrowsing
+# and http://www.clamav.net/documentation.html#safebrowsing 
+# for more information.
+# Default: disabled
+#SafeBrowsing yes
+
+# This option enables downloading of bytecode.cvd, which includes additional
+# detection mechanisms and improvements to the ClamAV engine.
+# Default: enabled
+#Bytecode yes
+
+# Download an additional 3rd party signature database distributed through
+# the ClamAV mirrors. 
+# This option can be used multiple times.
+#ExtraDatabase dbname1
+#ExtraDatabase dbname2
diff --git a/recipes-security/clamav/clamav-0.99.1/mempool_build_fix.patch b/recipes-security/clamav/clamav-0.99.1/mempool_build_fix.patch
new file mode 100644
index 0000000..18ead72
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/mempool_build_fix.patch
@@ -0,0 +1,14 @@
+Index: libclamav/readdb.c
+===================================================================
+--- a/libclamav/readdb.c
++++ b/libclamav/readdb.c
+@@ -4163,7 +4163,9 @@ static int cli_loadpwdb(FILE *fs, struct
+ 
+         /* use the tdb to track filetypes and check flevels */
+         memset(&tdb, 0, sizeof(tdb));
++#ifdef USE_MPOOL
+         tdb.mempool = engine->mempool;
++#endif
+         ret = init_tdb(&tdb, engine, attribs, passname);
+         free(attribs);
+         if(ret != CL_SUCCESS) {
diff --git a/recipes-security/clamav/clamav-0.99.1/remove_rpath_chk.patch b/recipes-security/clamav/clamav-0.99.1/remove_rpath_chk.patch
new file mode 100644
index 0000000..4d00931
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/remove_rpath_chk.patch
@@ -0,0 +1,16 @@
+Index: clamav-0.99/configure
+===================================================================
+--- clamav-0.99.orig/configure
++++ clamav-0.99/configure
+@@ -16192,11 +16192,6 @@ $as_echo_n "checking for shared library
+ if ${acl_cv_rpath+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+-
+-    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+-    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+-    . ./conftest.sh
+-    rm -f ./conftest.sh
+     acl_cv_rpath=done
+ 
+ fi
diff --git a/recipes-security/clamav/clamav-0.99.1/rpath_rmove.patch b/recipes-security/clamav/clamav-0.99.1/rpath_rmove.patch
new file mode 100644
index 0000000..a903c7e
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/rpath_rmove.patch
@@ -0,0 +1,44 @@
+Index: clamav-0.99/configure
+===================================================================
+--- clamav-0.99.orig/configure
++++ clamav-0.99/configure
+@@ -9266,7 +9266,7 @@ $as_echo_n "checking whether the $compil
+     # are reset later if shared libraries are not supported. Putting them
+     # here allows them to be overridden if necessary.
+     runpath_var=LD_RUN_PATH
+-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++    hardcode_libdir_flag_spec='${wl}-rpath $libdir'
+     export_dynamic_flag_spec='${wl}--export-dynamic'
+     # ancient GNU ld didn't support --whole-archive et. al.
+     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+@@ -9502,7 +9502,7 @@ _LT_EOF
+ 	  # DT_RUNPATH tag from executables and libraries.  But doing so
+ 	  # requires that you compile everything twice, which is a pain.
+ 	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+-	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++	    hardcode_libdir_flag_spec='${wl}-rpath $libdir'
+ 	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ 	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ 	  else
+@@ -10074,7 +10074,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >
+ 	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       fi
+       archive_cmds_need_lc='no'
+-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++      hardcode_libdir_flag_spec='${wl}-rpath $libdir'
+       hardcode_libdir_separator=:
+       inherit_rpath=yes
+       link_all_deplibs=yes
+Index: clamav-0.99/config/config.rpath
+===================================================================
+--- clamav-0.99.orig/config/config.rpath
++++ clamav-0.99/config/config.rpath
+@@ -156,7 +156,7 @@ if test "$with_gnu_ld" = yes; then
+   # here allows them to be overridden if necessary.
+   # Unlike libtool, we use -rpath here, not --rpath, since the documented
+   # option of GNU ld is called -rpath, not --rpath.
+-  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++  hardcode_libdir_flag_spec=
+   case "$host_os" in
+     aix3* | aix4* | aix5*)
+       # On AIX/PPC, the GNU linker is very broken
diff --git a/recipes-security/clamav/clamav-0.99.1/volatiles.03_clamav b/recipes-security/clamav/clamav-0.99.1/volatiles.03_clamav
new file mode 100644
index 0000000..ee2153c
--- /dev/null
+++ b/recipes-security/clamav/clamav-0.99.1/volatiles.03_clamav
@@ -0,0 +1,3 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d clamav clamav 0755 /var/log/clamav none
+f clamav clamav 0655 /var/log/clamav/freshclam.log none
diff --git a/recipes-security/clamav/clamav_0.98.5.bb b/recipes-security/clamav/clamav_0.98.5.bb
deleted file mode 100644
index 8820461..0000000
--- a/recipes-security/clamav/clamav_0.98.5.bb
+++ /dev/null
@@ -1,132 +0,0 @@
-SUMMARY = "ClamAV anti-virus utility for Unix - command-line interface"
-DESCRIPTION = "ClamAV is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats."
-HOMEPAGE = "http://www.clamav.net/index.html"
-SECTION = "security"
-LICENSE = "LGPL-2.1"
-DEPENDS = "libtool db openssl zlib ncurses bzip2 libmspack"
-
-LIC_FILES_CHKSUM = "file://COPYING.LGPL;beginline=2;endline=3;md5=4b89c05acc71195e9a06edfa2fa7d092"
-
-SRC_URI = "https://launchpad.net/debian/+archive/primary/+files/clamav_0.98.5%2Bdfsg.orig.tar.xz;name=archive \
-    file://0001-Change-paths-in-sample-conf-file-to-match-Debian.patch \
-    file://0002-Add-an-additional-n-after-the-number-in-the-pidfile.patch \
-    file://0003-unit_tests-increment-test-timeout-from-40secs-to-5mi.patch \
-    file://0004-Fix-compiling-on-Hurd.patch \
-    file://0005-Workaround-a-bug-in-libc-on-Hurd.patch \
-    file://0006-remove-unnecessary-harmful-flags-from-libclamav.pc.patch \
-    file://0008-Add-upstream-systemd-support-for-clamav-daemon-and-c.patch \
-    file://0009-fix-ssize_t-size_t-off_t-printf-modifier.patch \
-    file://0010-hardcode-LLVM-linker-flag-because-llvm-config-return.patch \
-    file://0014-remove-AC_CONFIG_SRCDIR-llvm-configure-from-libclama.patch \
-    file://0015-bb-10731-Allow-to-specificy-a-group-for-the-socket-o.patch \
-    file://0016-clamav-milter-add-additinal-SMFIF_-flags-before-invo.patch \
-    file://0017-Bump-.so-version-number.patch \
-    file://0018-llvm-don-t-use-system-libs.patch \
-    file://clamav-0001-clamdscan.patch \
-    file://clamd.conf \
-    file://freshclam.conf \
-    file://volatiles.03_clamav \
-"
-
-SRC_URI[archive.md5sum] = "34d5e8698e57ce45c4a8c3c2cb211cf3"
-SRC_URI[archive.sha256sum] = "0e353f646a0add17ca42e75ccfc7edf4f8b7c1acc972a86c317543f6b365db2d"
-
-inherit autotools-brokensep pkgconfig useradd systemd
-
-UID = "clamav"
-GID = "clamav"
-
-S = "${WORKDIR}/${BPN}-${PV}+dfsg"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}"
-PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
-PACKAGECONFIG[xml] = "--with-xml=${STAGING_LIBDIR}/.., --with-xml=no, libxml2,"
-PACKAGECONFIG[json] = "--with-libjson=${STAGING_LIBDIR}, --without-libjson, json,"
-PACKAGECONFIG[curl] = "--with-libcurl=${STAGING_LIBDIR}, --without-libcurl, curl,"
-PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6"
-PACKAGECONFI[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', "
-
-EXTRA_OECONF += " --with-user=${UID}  --with-group=${GID} \
-            --without-libcheck-prefix --disable-unrar \
-            --disable-llvm \
-            --with-openssl=${STAGING_LIBDIR}/.. \
-            --with-zlib=${STAGING_LIBDIR}/.. \
-            --with-libbz2-prefix=${STAGING_DIR}${prefix} \
-            --with-libncurses-prefix=${STAGING_LIBDIR}/.. \
-"
-
-do_install_append () {
-    install -d ${D}/${sysconfdir}
-    install -d ${D}/${localstatedir}/lib/clamav
-    install -d ${D}${sysconfdir}/clamav ${D}${sysconfdir}/default/volatiles
-
-    install -m 644 ${WORKDIR}/clamd.conf ${D}/${sysconfdir}
-    install -m 644 ${WORKDIR}/freshclam.conf ${D}/${sysconfdir}
-    install -m 0644 ${WORKDIR}/volatiles.03_clamav  ${D}${sysconfdir}/default/volatiles/volatiles.03_clamav
-}
-
-pkg_postinst_${PN} () {
-    if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
-        ${sysconfdir}/init.d/populate-volatile.sh update
-    fi
-    chown ${UID}:${GID} ${localstatedir}/lib/clamav
-}
-
-
-PACKAGES = "${PN} ${PN}-dev ${PN}-dbg ${PN}-daemon ${PN}-doc \
-            ${PN}-clamdscan ${PN}-freshclam ${PN}-libclamav6 ${PN}-staticdev"
-
-FILES_${PN} = "${bindir}/clambc ${bindir}/clamscan ${bibdir}/clamsubmit \
-                ${bindir}/sigtool ${mandir}/man1/clambc* ${mandir}/man1/clamscan* \
-                ${mandir}/man1/sigtool* ${mandir}/man1/clambsubmit*  \
-                ${docdir}/clamav/* "
-
-FILES_${PN}-clamdscan = " ${bindir}/clamdscan \
-                        ${docdir}/clamdscan/* \
-                        ${mandir}/man1/clamdscan* \
-                        "
-
-FILES_${PN}-daemon = "${bindir}/clamconf ${bindir}/clamdtop ${sbindir}/clamd \
-                        ${mandir}/man1/clamconf* ${mandir}/man1/clamdtop* \
-                        ${mandir}/man5/clamd*  ${mandir}/man8/clamd* \
-                        ${sysconfdir}/clamd.conf* \
-                        ${systemd_unitdir}/system/clamav-daemon/* \
-                        ${docdir}/clamav-daemon/*  ${sysconfdir}/clamav-daemon \
-                        ${sysconfdir}/logcheck/ignore.d.server/clamav-daemon "
-
-FILES_${PN}-freshclam = "${bindir}/freshclam \
-                        ${sysconfdir}/freshclam.conf*  \
-                        ${sysconfdir}/clamav ${sysconfdir}/default/volatiles \
-                        ${localstatedir}/lib/clamav \
-                        ${docdir}/${PN}-freshclam ${mandir}/man1/freshclam.* \
-                        ${mandir}/man5/freshclam.conf.*"
-
-FILES_${PN}-dev = " ${bindir}/clamav-config ${libdir}/*.la \
-                    ${libdir}/pkgconfig/*.pc \
-                    ${mandir}/man1/clamav-config.* \
-                    ${includedir}/*.h ${docdir}/libclamav* "
-
-FILES_${PN}-staticdev = "${libdir}/*.a"
-
-FILES_${PN}-libclamav6 = "${libdir}/libclamav.so* ${libdir}/libmspack.so*\
-                          ${docdir}/libclamav6/* "
-
-FILES_${PN}-doc = "${mandir}/man/* \
-                    ${datadir}/man/* \
-                   ${docdir}/* "
-
-INSANE_SKIP_${PN}-libclamav6 = "dev-so"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system ${UID}"
-USERADD_PARAM_${PN} = "--system -g ${GID} --home-dir  \
-    ${localstatedir}/spool/${BPN} \
-    --no-create-home  --shell /bin/false ${BPN}"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
-
-RDEPENDS_${PN} += "openssl ncurses-libncurses libbz2 ncurses-libtinfo clamav-freshclam clamav-libclamav6"
diff --git a/recipes-security/clamav/clamav_0.99.1.bb b/recipes-security/clamav/clamav_0.99.1.bb
new file mode 100644
index 0000000..4b42361
--- /dev/null
+++ b/recipes-security/clamav/clamav_0.99.1.bb
@@ -0,0 +1,139 @@
+SUMMARY = "ClamAV anti-virus utility for Unix - command-line interface"
+DESCRIPTION = "ClamAV is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats."
+HOMEPAGE = "http://www.clamav.net/index.html"
+SECTION = "security"
+LICENSE = "LGPL-2.1"
+
+DEPENDS = "libtool db libmspack "
+
+LIC_FILES_CHKSUM = "file://COPYING.LGPL;beginline=2;endline=3;md5=4b89c05acc71195e9a06edfa2fa7d092"
+
+SRC_URI = "http://www.clamav.net/downloads/production/${BPN}-${PV}.tar.gz \
+    file://clamd.conf \
+    file://freshclam.conf \
+    file://volatiles.03_clamav \
+    file://mempool_build_fix.patch \
+    file://remove_rpath_chk.patch \
+"
+SRC_URI[md5sum] = "cf1f3cbe62a08c9165801f79239166ff"
+SRC_URI[sha256sum] = "e144689122d3f91293808c82cbb06b7d3ac9eca7ae29564c5d148ffe7b25d58a"
+
+inherit autotools-brokensep pkgconfig useradd systemd 
+
+UID = "clamav"
+GID = "clamav"
+
+PACKAGECONFIG ?= "ncurses openssl bz2 zlib "
+PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}"
+PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+PACKAGECONFIG[pcre] = "--with-pcre=${STAGING_LIBDIR},  --without-pcre, libpcre"
+PACKAGECONFIG[xml] = "--with-xml=${STAGING_LIBDIR}/.., --with-xml=no, libxml2,"
+PACKAGECONFIG[json] = "--with-libjson=${STAGING_LIBDIR}, --without-libjson, json,"
+PACKAGECONFIG[curl] = "--with-libcurl=${STAGING_LIBDIR}, --without-libcurl, curl,"
+PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6"
+PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_HOST}/usr, --without-openssl, openssl, openssl"
+PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_DIR_HOST}/usr, --without-zlib, zlib, "
+PACKAGECONFIG[bz2] = "--with-libbz2-prefix=${STAGING_LIBDIR}/.., --without-libbz2-prefix, "
+PACKAGECONFIG[ncurses] = "--with-libncurses-prefix=${STAGING_LIBDIR}/.., --without-libncurses-prefix, ncurses, "
+
+PACKAGECONFI[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', "
+
+EXTRA_OECONF += " --with-user=${UID}  --with-group=${GID} \
+            --without-libcheck-prefix --disable-unrar \
+            --disable-mempool \
+            --program-prefix="" \
+            --disable-yara \
+            --disable-rpath \
+            "
+
+do_configure () {
+    cd ${S}
+    ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} 
+}
+
+do_compile_append() {
+    # brute force removing RPATH
+    chrpath -d  ${B}/libclamav/.libs/libclamav.so.7.1.1
+    chrpath -d  ${B}/sigtool/.libs/sigtool
+    chrpath -d  ${B}/clambc/.libs/clambc
+    chrpath -d  ${B}/clamscan/.libs/clamscan
+    chrpath -d  ${B}/clamconf/.libs/clamconf
+    chrpath -d  ${B}/clamd/.libs/clamd
+    chrpath -d  ${B}/freshclam/.libs/freshclam
+}
+
+do_install_append() {
+    install -d ${D}/${sysconfdir}
+    install -d ${D}/${localstatedir}/lib/clamav
+    install -d ${D}${sysconfdir}/clamav ${D}${sysconfdir}/default/volatiles
+
+    install -m 644 ${WORKDIR}/clamd.conf ${D}/${sysconfdir}
+    install -m 644 ${WORKDIR}/freshclam.conf ${D}/${sysconfdir}
+    install -m 0644 ${WORKDIR}/volatiles.03_clamav  ${D}${sysconfdir}/default/volatiles/volatiles.03_clamav
+    sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/libclamav.pc
+}
+
+pkg_postinst_${PN} () {
+    if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
+        ${sysconfdir}/init.d/populate-volatile.sh update
+    fi
+    chown ${UID}:${GID} ${localstatedir}/lib/clamav
+}
+
+
+PACKAGES = "${PN} ${PN}-dev ${PN}-dbg ${PN}-daemon ${PN}-doc \
+            ${PN}-clamdscan ${PN}-freshclam ${PN}-libclamav6 ${PN}-staticdev"
+
+FILES_${PN} = "${bindir}/clambc ${bindir}/clamscan ${bindir}/clamsubmit \
+                ${bindir}/*sigtool ${mandir}/man1/clambc* ${mandir}/man1/clamscan* \
+                ${mandir}/man1/sigtool* ${mandir}/man1/clambsubmit*  \
+                ${docdir}/clamav/* "
+
+FILES_${PN}-clamdscan = " ${bindir}/clamdscan \
+                        ${docdir}/clamdscan/* \
+                        ${mandir}/man1/clamdscan* \
+                        "
+
+FILES_${PN}-daemon = "${bindir}/clamconf ${bindir}/clamdtop ${sbindir}/clamd \
+                        ${mandir}/man1/clamconf* ${mandir}/man1/clamdtop* \
+                        ${mandir}/man5/clamd*  ${mandir}/man8/clamd* \
+                        ${sysconfdir}/clamd.conf* \
+                        ${systemd_unitdir}/system/clamav-daemon/* \
+                        ${docdir}/clamav-daemon/*  ${sysconfdir}/clamav-daemon \
+                        ${sysconfdir}/logcheck/ignore.d.server/clamav-daemon "
+
+FILES_${PN}-freshclam = "${bindir}/freshclam \
+                        ${sysconfdir}/freshclam.conf*  \
+                        ${sysconfdir}/clamav ${sysconfdir}/default/volatiles \
+                        ${localstatedir}/lib/clamav \
+                        ${docdir}/${PN}-freshclam ${mandir}/man1/freshclam.* \
+                        ${mandir}/man5/freshclam.conf.*"
+
+FILES_${PN}-dev = " ${bindir}/clamav-config ${libdir}/*.la \
+                    ${libdir}/pkgconfig/*.pc \
+                    ${mandir}/man1/clamav-config.* \
+                    ${includedir}/*.h ${docdir}/libclamav* "
+
+FILES_${PN}-staticdev = "${libdir}/*.a"
+
+FILES_${PN}-libclamav6 = "${libdir}/libclamav.so* ${libdir}/libmspack.so*\
+                          ${docdir}/libclamav6/* "
+
+FILES_${PN}-doc = "${mandir}/man/* \
+                   ${datadir}/man/* \
+                   ${docdir}/* "
+
+INSANE_SKIP_${PN}-libclamav6 = "dev-so"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system ${UID}"
+USERADD_PARAM_${PN} = "--system -g ${GID} --home-dir  \
+    ${localstatedir}/spool/${BPN} \
+    --no-create-home  --shell /bin/false ${BPN}"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+
+RDEPENDS_${PN} += "openssl ncurses-libncurses libbz2 ncurses-libtinfo clamav-freshclam clamav-libclamav6"
-- 
1.9.1




More information about the yocto mailing list