--- couchdb-1.0.1.orig/debian/couchdb-bin.postrm +++ couchdb-1.0.1/debian/couchdb-bin.postrm @@ -0,0 +1,18 @@ +#!/bin/sh -e + +# Copyright 2009, Noah Slater + +# 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. + +VERSION=%VERSION% + +case $1 in + purge) + if test -d "/etc/couchdb"; then + rmdir --ignore-fail-on-non-empty "/etc/couchdb" || true + fi +esac + +#DEBHELPER# --- couchdb-1.0.1.orig/debian/couchdb.install +++ couchdb-1.0.1/debian/couchdb.install @@ -0,0 +1,3 @@ +debian/tmp/etc/default +debian/tmp/etc/init.d +debian/tmp/etc/logrotate.d --- couchdb-1.0.1.orig/debian/changelog +++ couchdb-1.0.1/debian/changelog @@ -0,0 +1,661 @@ +couchdb (1.0.1-0ubuntu18) precise; urgency=low + + * Rebuild for libicu48. + + -- Colin Watson Mon, 21 Nov 2011 16:06:03 +0000 + +couchdb (1.0.1-0ubuntu17) oneiric; urgency=high + + * Backport svn r1039345 from 1.0.3 (LP: #780972) + + -- John S Gruber Fri, 02 Sep 2011 01:02:01 -0400 + +couchdb (1.0.1-0ubuntu16) oneiric; urgency=low + + * Update Spidermonkey 1.8.5 patchset to the more palatable ones I'm + forwarding upstream + - update debian/patches/moz0001-spidermonkey1.8.5.patch + - update debian/patches/moz0002-libmozjs.patch + - update debian/patches/moz0003-spidermonkey1.8.5_autotools.patch + + -- Chris Coulson Tue, 14 Jun 2011 17:47:09 +0100 + +couchdb (1.0.1-0ubuntu15) natty; urgency=low + + * Rebuild against latest libmozjs, since we turned on --enable-threadsafe + * Also switch to using pkg-config rather than using the js-config script + shipped by libmozjs. The latter is totally broken since turning on + --enable-ctypes + - update debian/patches/moz0002-libmozjs.patch + - update debian/patches/moz0003-spidermonkey1.8.5_autotools.patch + - Fixes (LP: #758895) + + -- Chris Coulson Fri, 15 Apr 2011 13:21:56 +0100 + +couchdb (1.0.1-0ubuntu14) natty; urgency=low + + * Build against a proper libmozjs \o/ + - FFe LP: #740815 + * Note, we rename a couple of existing patches so that they apply in the + right order and the names make sense + - rename mozjs2.0.patch => moz0001-spidermonkey1.8.5.patch + - rename mozjs2.0_autotools.patch => + moz0003-spidermonkey1.8.5_autotools.patch + * Drop unneeded patch which added LD_LIBRARY_PATH kludge + - remove debian/patches/mozjs1.9_ldlibpath.patch + * Add support to build system for configuring mozjs with js-config + - add debian/patches/moz0002-libmozjs.patch + * Update build-depends/depends/build config (we no longer need the --with-js + build flags) + - update debian/rules + - update debian/control + * Refresh debian/patches/moz0003-spidermonkey1.8.5_autotools.patch + + -- Chris Coulson Thu, 24 Mar 2011 01:02:03 +0000 + +couchdb (1.0.1-0ubuntu13) natty; urgency=low + + * Fix LP: #736847 - couchjs doesn't search in xulrunner release path + for libmozjs. I made it search in all paths for the 2.0 beta and + point releases, but missed this one. D'oh! + - update debian/mozjs1.9_ldlibpath.patch + + -- Chris Coulson Fri, 18 Mar 2011 00:09:31 +0000 + +couchdb (1.0.1-0ubuntu12) natty; urgency=low + + * debian/patches/jquery15-fix.patch: Make Futon work with jQuery 1.5 via + git commit 064a1d9483cfa33bd0fcc97cb1d97e8e342fdeaf (LP: #716237) + + -- Jason Gerard DeRose Fri, 04 Mar 2011 11:08:10 +0100 + +couchdb (1.0.1-0ubuntu11) natty; urgency=low + + * Fix LP: #725064 - Rebuild for libmozjs ABI breakage, again :( + + -- Chris Coulson Mon, 28 Feb 2011 10:48:58 +0000 + +couchdb (1.0.1-0ubuntu10) natty; urgency=low + + * Rebuild due to ABI break in libmozjs + * Update to use a single compartment. This avoids some assertions that + were happening when running against debug builds of libmozjs + - update debian/mozjs2.0.patch + + -- Chris Coulson Tue, 08 Feb 2011 12:18:20 +0000 + +couchdb (1.0.1-0ubuntu9) natty; urgency=low + + * Fix LP: #709324 - couchjs crashes with SIGSEGV in JS_EvaluateUCScript. + Guard calls in the sandbox context with the new + JS_{Enter/Leave}CrossCompartmentCall API + - update debian/patches/mozjs2.0.patch + - update debian/patches/mozjs2.0_autotools.patch + + -- Chris Coulson Sat, 29 Jan 2011 02:52:44 +0000 + +couchdb (1.0.1-0ubuntu8) natty; urgency=low + + * Fix LP: #707774 - couchjs crashed with SIGSEGV in JS_NewGlobalObject(), + since compartments landed. Use JS_NewCompartmentAndGlobalObject instead + - update debian/patches/mozjs2.0.patch + - update debian/patches/mozjs2.0_autotools.patch + + -- Chris Coulson Fri, 28 Jan 2011 12:03:46 +0000 + +couchdb (1.0.1-0ubuntu7) natty; urgency=low + + * Fix LP: #703353 - couchjs doesn't start because of ABI break in + Spidermonkey. Use the new API for getting a character array from a + JSString + - update debian/patches/mozjs2.0.patch + - update debian/patches/mozjs2.0_autotools.patch + + -- Chris Coulson Wed, 19 Jan 2011 11:49:30 +0000 + +couchdb (1.0.1-0ubuntu6) natty; urgency=low + + * Fix LP: #682866 - CouchDatabase() call hangs because couchjs crashes, + due to semantic differences between fgets and js_fgets. Use a local + implementation of js_fgets when it's not available otherwise + - update debian/patches/mozjs2.0.patch + - update debian/patches/mozjs2.0_autotools.patch + + -- Chris Coulson Mon, 06 Dec 2010 10:23:54 +0000 + +couchdb (1.0.1-0ubuntu5) natty; urgency=low + + * Native functions must always set rval when returning success in + the latest version of Spidermonkey, because of the JSFastNative => + JSNative changes + - update debian/patches/mozjs2.0.patch + * Remove a lot of #ifdefs by turning on JSFastNative in pre 2.0 builds. + Also make the configure checks more fine-grained + - update debian/patches/mozjs2.0.patch + + -- Chris Coulson Thu, 25 Nov 2010 12:33:55 +0000 + +couchdb (1.0.1-0ubuntu4) natty; urgency=low + + * Fix LP: #421422 - Update dependencies to not pull in the entire + Gecko runtime (+ GTK and X etc). Depend on only the package providing + Spidermonkey. Update launcher scripts to not use the xulrunner binary to + discover the Spidermonkey install location, as it's not available now. The + new method is actually faster, because it doesn't block on starting XPCOM + - update debian/rules + - update debian/control + - update debian/patches/mozjs1.9_ldlibpath.patch + * Update for Spidermonkey 2.0 API changes + - add debian/patches/mozjs2.0.patch + - add debian/patches/mozjs2.0_autotools.patch + * Handle beta versions of xulrunner when generating the binary depends + for couchdb-bin + - update debian/rules + + -- Chris Coulson Thu, 25 Nov 2010 02:46:22 +0000 + +couchdb (1.0.1-0ubuntu3) maverick; urgency=low + + * Patchset from CouchIO to fix U1 replication over SSL (LP: #422178) + - couchio-fix-0001-replicator_redirect_atts.patch + - couchio-fix-0002-replicator_db_proxy_fix.patch + - couchio-fix-0003-changes_redirect_1.patch + - couchio-fix-0004-changes_redirect_2.patch + - couchio-fix-0005-changes_proxy.patch + - couchio-fix-0006-replicator_reader_errors.patch + - couchio-fix-0007-ibrowse_upgrade.patch + - couchio-fix-0008-replicator_doc_id_encoding.patch + - couchio-fix-0009-replicator_changes_error.patch + - couchio-fix-0010-replicator_changes_connection_close.patch + - couchio-fix-0011-ibrowse_chunked_encoding_streaming.patch + - couchio-fix-0012-replicator_ssl.patch [fixed up] + + -- Samuele Pedroni Fri, 24 Sep 2010 14:53:26 -0400 + +couchdb (1.0.1-0ubuntu2) maverick; urgency=low + + * SECURITY UPDATE: Untrusted search path vulnerability + - debian/patches/mozjs_ldlibpath.patch: updated to make sure + $LD_LIBRARY_PATH exists before using it, so we don't end up searching + in the current working directory. + - CVE-2010-2953 + + -- Marc Deslauriers Wed, 22 Sep 2010 16:33:30 -0400 + +couchdb (1.0.1-0ubuntu1) maverick; urgency=low + + * Upstream microrelease to address data loss (LP: #615224) + - Fix data corruption bug COUCHDB-844. Please see + http://couchdb.apache.org/notice/1.0.1.html for details. + - Added support for replication via an HTTP/HTTP proxy. + - Fixed various replicator bugs for interop with older + CouchDB versions. + - Show fields saved along with _deleted=true. + Allows for auditing of deletes. + - Enable basic-auth popup when required to access the server, + to prevent people from getting locked out. + - User interface element for querying stale (cached) views. + * debian/patches/auth_patch.patch dropped, included upstream. + * debian/patches/remove_users.patch dropped, included upstream. + + -- Elliot Murphy Mon, 16 Aug 2010 19:45:48 -0400 + +couchdb (1.0.0-0ubuntu1) maverick; urgency=low + + * New upstream release (LP: #609728) + * debian/patches/auth_cache.patch (already forwarded upstream) + - fix a loop in the auth cache that stopped people from logging into futon + * debian/patches/remove_users.patch (already forwarded upstream) + - fix failure to delete couch users + * source/format - mark package as 1.0 format + * debian/control - bump standards version + * debian/control - fix lintian error not-binnmuable-all-depends-any + + -- Elliot Murphy Mon, 26 Jul 2010 10:24:11 -0400 + +couchdb (0.11.0-1ubuntu1) maverick; urgency=low + + * Merge from debian unstable. Remaining changes: (LP: #591444) + - debian/patches/fix-help2man.patch, debian/control: build with help2man + >= 1.37; add --no-discard-stderr + - debian/patches/init.patch: updated to account for upstream conflicting + changes + - debian/rules, debian/control: split couchdb and couchdb-bin + - debian/control: add missing erlang-{inets,crypto,xmerl} + (build-)dependencies + - debian/patches/mozjs_ldlibpath.patch, debian/control: change version + of xulrunner to xulrunner-1.9.2 + - debian/control: transition from libmozjs-dev to xulrunner-dev in + ubuntu + - debian/rules, debian/control: grab the current xulrunner version with + "xulrunner --gre-version" to use as a dependency + - debian/postinst: renamed to couchdb-bin.postinst, change the default + permissions on /etc/couchdb to 0775 and files to 0664 + - debian/couchdb-bin.postrm: don't try to delete couchdb system + user/group + * erlang-depends, pass explicit -pcouchdb-bin + + -- Clint Byrum Tue, 08 Jun 2010 23:16:21 -0700 + +couchdb (0.11.0-1) unstable; urgency=medium (security fixes) + + * New upstream release, including security fix for CVE-2010-00009. + (closes: #576304, #577417) + * Removed debian/patches/icu-patch.patch, as it's no longer needed. + + -- Sam Bisbee Fri, 16 Apr 2010 18:04:47 +0400 + +couchdb (0.10.1-2) unstable; urgency=low + + [ Elliot Murphy ] + * Updated debian/control, added Elliot to Uploaders + * Dropped $ENABLE_SERVER portion of debian/patches/init.patch + + [ Sam Bisbee ] + * Updated debian/patches/init.patch, adding a grace period to the init + script's stop task to allow couchdb's child processes (ie., heart) a chance + to exit before deciding whether the task was successful or not. This adds a + dependency on procps (`ps` command). + * Removed debian/preinst, undoing killall preinst patch from 0.10.0-1 that is + no longer needed due to the grace period init patch in this release. This + also removes the dependency on psmisc. (closes: #562901) + * Updated debian/control, bumping Debian standards version to 3.8.4. + * Updated debian/control, adding mawk as a dependency. The majority of + systems will have it installed with the base system, but it's required and + not essential. (closes: #569965) + + -- Sam Bisbee Tue, 09 Mar 2010 21:55:59 +0300 + +couchdb (0.10.1-1) unstable; urgency=low + + * New upstream release (closes: #550782). + * Cleaning up nmu related lintian warnings. + + -- Sam Bisbee Wed, 23 Dec 2009 23:15:27 -0500 + +couchdb (0.10.0-1ubuntu2) lucid; urgency=low + + * debian/patches/fix-help2man.patch, debian/control: build with help2man 1.37; + add --no-discard-stderr for 1.37 help2man version (LP: #536740) + * debian/patches/mozjs_ldlibpath.patch, debian/control: change version of + xulrunner to xulrunner-1.9.2 (LP: #536737) + + -- Micah Gersten Tue, 09 Mar 2010 12:27:55 -0600 + +couchdb (0.10.0-1ubuntu1) lucid; urgency=low + + * Merge from Debian testing, remaining changes: + - split package into couchdb and couchdb-bin binary packages, so that + the programs can be installed without starting the system service + - debian/control: add missing erlang-{inets,crypto,xmerl} + (build-)dependencies + - debian/control: transition from libmozjs-dev to xulrunner-dev in + ubuntu + - debian/rules, debian/control: grab the current xulrunner version with + "xulrunner --gre-version" to use as a dependency + - debian/patches/mozjs_ldlibpath.patch: explicitly set LD_LIBRARY_PATH to + pkglibdir of current installed xulrunner version on startup; this works + around the fact that couchdb relies on the not publicly exported + libmozjs + - debian/postinst: change the default permissions on /etc/couchdb to + 0775, and /etc/couchdb/default.ini and /etc/couchdb/local.ini to 0774 + - debian/patches/http-redirect-query-string-fix.patch: fix replication + over OAuth, which was broken because of incorrect query-string handling + after HTTP redirection + - debian/couchdb-bin.postrm: don't try to delete couchdb system + user/group + - debian/rules, debian/couchdb.{postinst,postrm}: create + /var/{log,lib}/couchdb/${couchdbversion}, so couchdb will run. + * Dropped changes, superseded in Debian: + - debian/control: bump the Standards-Version to 3.8.2 (latest) + - debian/copyright: added src/etap/* to copyright file + * debian/rules: don't munge debian/couchdb-bin.postrm, it doesn't contain + the VERSION tag anymore + * Fix permissions on files in /etc/couchdb to be 0664, not 0774 - config + files should not be executable! + * Remove the debian/preinst, and drop the build-dependency on psmisc which + doesn't do the right thing /anyway/. A preinst invocation implies a + Pre-Depends, not a Build-Depends, and the heuristic being used here with + 'killall' is useless. + * Don't recursively chmod /var/lib/couchdb, only chmod the directories - + we don't want the files to wind up executable. + * debian/rules: fix dh_installinit invocation to only add scripts for the + couchdb package, not couchdb-bin. + + -- Steve Langasek Tue, 29 Dec 2009 13:24:28 -0800 + +couchdb (0.10.0-1) unstable; urgency=low + + [ Elliot Murphy ] + * Updated debian/copyright, added src/etap* + * Updated debian/control, changed Maintainer to Erlang team address + * Updated debian/control, changed Vcs- links to new locations. + + [ Sergei Golovan ] + * New upstream release (closes: #551212, #554080, #554593). + * Removed unnecessary build dependency on transitional erlang-nox package. + * Replaced subst variables in dependencies by ${erlang:Depends} which allows + to calculate dependencies automatically. This removes erlang-nox from + dependencies (closes: #532756). + * Bumped standards version to 3.8.3. + * It's normal if /etc/init.d script is left after package removal as a + config file (and the binary isn't available). Therefore made it return + success in case if /usr/bin/couchdb doesn't exist or isn't an executable. + * Change current directory to /var/run/couchdb in init script to prevent + error messages about access violation by code server if the current dir + isn't readable by the couchdb user. + * Put log files directly into /var/log/couchdb directory. There's no reason + to have different log subdirectories for different couchdb versions. + + [ Noah Slater ] + * Updated debian/control, updated Build-Depends on debhelper to 7.2.11. + + [ Sam Bisbee ] + * Updated debian/control, repointed Vcs links. + * Fix "replacing libreadline5-dev build dependency with libreadline- + dev" Updated debian/control, changed libreadline5-dev dependency to + libreadline-dev. (Closes: #553742) + * Updated debian/README.Debian, removed log directory partitioning info + per Sergei's related changes to put all logs in one directory. + * Updated debian/postrm, rmdir didn't like that its target directories + weren't non-empty (despite passed args), causing errors and failing to + remove directories. Also removed the version partitioning cases. + * Created debian/preinst, now we make sure that couchdb isn't running any + beam processes on upgrade. Upgrading from 0.9.0-2 was leaving old code in a + running beam process, so you were running 0.9.0 couchdb but had 0.10.0 code + installed until you killed the process. Adds a dependency on psmisc. + + -- Sam Bisbee Sat, 21 Nov 2009 17:10:39 -0500 + +couchdb (0.10.0-0ubuntu3) karmic; urgency=low + + * Fix replication over OAuth, which was broken because of incorrect + query-string handling after HTTP redirection. (LP: #456234) + * create /var/log/couchdb/${couchdbversion} also, as couchdb does not + create it. (LP: #453049) + + -- Chad Miller Tue, 20 Oct 2009 16:30:45 -0400 + +couchdb (0.10.0-0ubuntu2) karmic; urgency=low + + * create /var/log/couchdb so that couchdb installs/runs (LP: #453049) + + -- Chad Miller Mon, 19 Oct 2009 09:37:43 -0400 + +couchdb (0.10.0-0ubuntu1) karmic; urgency=low + + * Final 0.10.0 upstream release. (LP: #450442) + - CouchDB 0.10.0 is now a beta version, not alpha. + - Fixes replication with 0.9 servers. + - Fix UUID's tests. + - Includes ETap into the test suite. + - Fix UUID's ETags. + - Fix cookie and oauth+replication. + - OAuth support for https URL scheme. + - Reject invalid UTF-8. + * debian/patches + - dropped oauth-replication-crash-fix-backport.patch + * debian/copyright + - added src/etap/* to copyright file. + + -- Elliot Murphy Tue, 13 Oct 2009 16:50:35 -0400 + +couchdb (0.10.0~svn818859-0ubuntu3) karmic; urgency=low + + * Finish split of couchdb-bin and couchdb by renaming substvar file + for xulrunner dependency. (LP: #449653) + + -- Chad Miller Mon, 12 Oct 2009 12:11:29 -0400 + +couchdb (0.10.0~svn818859-0ubuntu2) karmic; urgency=low + + * Backport future patches that fixes replication crash for authenticated + connections from other couchdb instances. (LP: #439499) + * Remove explicit version from debian/couchdb-bin/postinst . + + -- Chad Miller Thu, 01 Oct 2009 09:56:37 -0400 + +couchdb (0.10.0~svn818859-0ubuntu1) karmic; urgency=low + + * Import code from pre-release branch. (LP: #427860, #408909) + + Build and System Integration: + * Changed `couchdb` script configuration options. + * Added default.d and local.d configuration directories to load + sequence. + + HTTP Interface: + * Added optional cookie-based authentication handler. + * Added optional two-legged OAuth authentication handler. + * Packaging of couchdb-bin must replace pre-split couchdb. + (LP: #432219) + * Move all of /etc and /var out of the couchdb-bin package, to the + couchdb package. + * /etc/couchdb must be in couchdb-bin, as config files are needed + by all servers. + + So the couchdb user must be managed by couchdb-bin. + + Split postinst/postrm files to manage different files. + + Set Replaces of couchdb-bin by couchdb so that config files + migrate. + * Update the version number in postrm. (!) + * Use the new "Breaks" field in control file to help split pkg. + + [Ken VanDine] + * debian/couchdb.install: + - removed /var + * debian/rules: + - removed bootstrap + * debian/couchdb.postinst: + - Added the debhelper tag + + -- Chad Miller Fri, 25 Sep 2009 19:18:26 -0400 + +couchdb (0.10.0~svn813472-0ubuntu2) karmic; urgency=low + + * Split couchdb into couchdb (to hold only the init) and couchdb-bin + (to hold everything else). (LP: #427036) + + -- Chad Miller Wed, 16 Sep 2009 14:12:56 -0400 + +couchdb (0.10.0~svn813472-0ubuntu1) karmic; urgency=low + + * New snapshot of couchdb 0.10.x stable prerelease branch + - pass config reset option to recursed background startup (LP: #424330) + closes COUCHDB-498 + - Fix for building on snow leopard COUCHDB-490 + - Fix SSL replication (LP: #422178) COUCHDB-491 + - Fix continuous-after-normal replication + - Use the same password hash calculation for user creation via ini + file and user db, closes COUCHDB-492 + - Fix for WebKit XHR, closes COUCHDB-483 + - Don't check for response code text, closes COUCHDB-482 + - Remove a debugging leftover + + -- Elliot Murphy Thu, 10 Sep 2009 11:35:54 -0400 + +couchdb (0.10.0~svn809550-0ubuntu1) karmic; urgency=low + + * New snapshot of couchdb 0.10.x stable prerelease branch (LP: #421971) + - fixes a process leak in local changes feed consumer + - disables internal gen_server timeouts + - minimize the number of full commits + - follow 302 redirects during replication + - more precise and accurate calculation of replication progress + - added crypto export notice to README + - Fix for problem where HEAD requests that would have a chunked responses + would send the chunked response anyway. + - send deleted docs to changes filters and protect against missing + filters. + - merge cascading auth patch by Jason Davies, closes COUCHDB-478 + * Drop debian/patches/oauth_ini_users.patch as it has been merged upstream. + * debian/postrm + - don't try to delete couchdb system user/group (LP: #387945) + + -- Elliot Murphy Mon, 31 Aug 2009 09:06:26 -0400 + +couchdb (0.10.0~svn806985-0ubuntu2) karmic; urgency=low + + * Pick up the xulrunner dep from xulrunner --gre-version instead of + hard-coding it in debian/control; this gets us onto xulrunner-1.9.1, + which we're already building against, instead of xulrunner-1.9. + + -- Steve Langasek Fri, 28 Aug 2009 23:21:39 +0000 + +couchdb (0.10.0~svn806985-0ubuntu1) karmic; urgency=low + + * First snapshot of couchdb 0.10pre, from + http://build.couchdb.org/0.10.x-UNOFFICIAL (LP: #418288) + * debian/postinst + - Make /etc/couchdb/local.ini world readable (LP: #403575) + + [Elliot Murphy] + * Added debian/patches/oauth_ini_users.patch from + http://issues.apache.org/jira/browse/COUCHDB-478 + + -- Ken VanDine Mon, 24 Aug 2009 15:44:14 -0400 + +couchdb (0.9.0-2ubuntu5) karmic; urgency=low + + * Fixes LP: #389089 - couchdb fails to start: looking for absent 'xulrunner' + - Use version-specific xulrunner binary in couchdb wrapper script. + + -- Elliot Murphy Wed, 05 Aug 2009 11:27:30 +0100 + +couchdb (0.9.0-2ubuntu4) karmic; urgency=low + + * debian/postinst + - Change the default permissions on /etc/couchdb to 0775, + /etc/couchdb/default.ini to 0774 and /etc/couchdb/local.ini + to 0770 (LP: #403575) + * debian/control + - Bump the Standards-Version to 3.8.2 (latest) + + -- Ken VanDine Thu, 23 Jul 2009 13:35:12 -0400 + +couchdb (0.9.0-2ubuntu3) karmic; urgency=low + + * Add missing erlang-{crypto,xmerl} dependencies, thanks James Henstridge! + (LP: #385104) + + -- Martin Pitt Fri, 12 Jun 2009 18:06:25 +0200 + +couchdb (0.9.0-2ubuntu2) karmic; urgency=low + + * Change erlang-nox dependency to erlang-inets. (LP: #385104) + + -- James Henstridge Tue, 02 Jun 2009 17:17:40 +0800 + +couchdb (0.9.0-2ubuntu1) karmic; urgency=low + + De-libmoz-dev'ification (LP: #352968) + * debian/control: transition from libmozjs-dev to xulrunner-dev in ubuntu + * debian/control: add xulrunner-1.9 as explicit dependency for couchdb package + * debian/patches/mozjs_ldlibpath.patch: explicitly set LD_LIBRARY_PATH to + pkglibdir of current installed xulrunner version on startup; this works around + the fact that couchdb relies on the not publicly exported libmozjs + + -- Alexander Sack Wed, 10 Jun 2009 15:39:54 +0200 + +couchdb (0.9.0-2) unstable; urgency=low + + * Updated debian/dirs, removed /var/run/couchdb directory per policy. + * Updated debian/patches/pid.patch, create /var/run/couchdb dynamically. + * Updated debian/postrm, added VERSION variable. + * Updated debian/postrm, added missing removal of log directories. + * Updated debian/postrm, fixed missing function error. + * Updated debian/rules, added patch for debian/postrm to update VERSION. + * Updated debian/rules, fixed bug with configure patch. + * Updated debian/control, added build-dependency on erlang-dev >= 1:13.b + to make transition to Erlang R13B easier. + + -- Noah Slater Mon, 11 May 2009 11:26:55 +0400 + +couchdb (0.9.0-1) unstable; urgency=low + + * New upstream release. Closes: #522051 + * Added debian/patches/pid.patch, corrects daemon pidfile handling. + * Updated debian/control, added Build-Depends on libcurl4-openssl-dev. + * Updated debian/control, changed Homepage and Description. + * Updated debian/control, changed Standards-Version to 3.8.0. + * Updated debian/copyright, changed maintainer email address. + * Updated debian/postinst, changed owner of /etc/couchdb directory. + * Updated debian/postrm, changed so only empty data directories are removed. + * Updated debian/rules, improved uscan options for get-orig-source. + + -- Noah Slater Tue, 14 Apr 2009 16:32:45 +0100 + +couchdb (0.8.1-1) experimental; urgency=low + + * New upstream release. + * Updated debian/control, added Depends on libjs-jquery. + * Updated debian/control, removed Depends on mime-support. + * Updated debian/rules, added standard uscan options for get-orig-source. + * Removed debian/patches/directory-version.patch, replaces manual sed invocation. + + -- Noah Slater Mon, 18 Aug 2008 15:10:07 +0100 + +couchdb (0.8.0-2) unstable; urgency=low + + * Added debian/README.source, contains upstream source information. + * Updated debian/README.Debian, added note about python-couchdb. + * Updated debian/control, changed Standards-Version to 3.8.0. + * Updated debian/copyright, changed for latest proposed format. + * Updated debian/rules, changed binary-arch and binary-indep targets + to depend on the build target as a workaround for #486848. + * Updated debian/watch, updated version number. + + -- Noah Slater Fri, 11 Jul 2008 11:29:17 +0100 + +couchdb (0.8.0-1) unstable; urgency=low + + * New upstream release. + * Added debian/watch, upstream information for uscan. + * Updated debian/copyright, changed to use Apache Licence from common-licenses. + * Updated debian/rules, changed get-orig-source to work with uscan. + + -- Noah Slater Wed, 25 Jun 2008 20:19:40 +0100 + +couchdb (0.7.3~svn650270-2) unstable; urgency=low + + * Updated debian/rules, added release partitioning to data directories. + * Updated debian/postrm, changed so that log files are not removed. + + -- Noah Slater Sat, 24 May 2008 16:30:21 +0100 + +couchdb (0.7.3~svn650270-1) experimental; urgency=low + + * New upstream snapshot, database format change, no boot file, no + SpiderMonkey and all tests pass. Closes: #465592, #465722, #466424 + * Updated debian/control, removed Debian revision from erlang-dev Build-Depends. + * Updated debian/control, removed Depends on libicu-dev. Closes: #466076 + * Updated debian/copyright, changed for latest proposed format. + + -- Noah Slater Thu, 01 May 2008 12:07:31 +0100 + +couchdb (0.7.3~svn684-1) unstable; urgency=low + + * New upstream snapshot. + * Updated debian/control, changed Standards-Version to 3.7.3. + + -- Noah Slater Wed, 06 Feb 2008 17:03:38 +0000 + +couchdb (0.7.2-2) experimental; urgency=low + + * Updated debian/control, added Build-Depends on libicu-dev as an + alternative to libicu36-dev which is removed from unstable. + + -- Sergei Golovan Wed, 19 Dec 2007 17:54:47 +0300 + +couchdb (0.7.2-1) experimental; urgency=low + + * New upstream release. + * Updated debian/rules, changed to pass -fPIC to compiler. Closes: #451996 + * Updated debian/rules, changed to force removal of unwanted files. + * Updated debian/rules, added a get-orig-source target. + + -- Noah Slater Sat, 08 Dec 2007 01:21:01 +0300 + +couchdb (0.7.0-1) experimental; urgency=low + + * Initial release. Closes: #445880 + + -- Noah Slater Sat, 6 Oct 2007 19:44:36 +0100 + --- couchdb-1.0.1.orig/debian/rules +++ couchdb-1.0.1/debian/rules @@ -0,0 +1,43 @@ +#!/usr/bin/make -f + +# Copyright 2009, Noah Slater + +# 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. + +include /usr/share/cdbs/1/rules/buildcore.mk +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/autotools.mk +include /usr/share/cdbs/1/rules/simple-patchsys.mk + +DEB_INSTALL_DOCS_ALL = +DEB_DH_INSTALLINIT_ARGS = -Ncouchdb-bin --onlyscripts + +LIB = ${localstatedir}/lib/\$${package_identifier} + +# @@ workaround for #486848 +binary-arch binary-indep: build + +post-patches:: + sed -i s,$(LIB)$$,$(LIB)/$(DEB_UPSTREAM_VERSION), configure + sed -i s,VERSION=%VERSION%$$,VERSION=$(DEB_UPSTREAM_VERSION), debian/couchdb.postrm debian/couchdb.postinst + +cleanbuilddir:: + sed -i s,$(LIB)/$(DEB_UPSTREAM_VERSION)$$,$(LIB), configure + sed -i s,VERSION=$(DEB_UPSTREAM_VERSION)$$,VERSION=%VERSION%, debian/couchdb.postrm debian/couchdb.postinst + +common-binary-post-install-arch:: + rm -r debian/tmp/var/run + rm -f debian/couchdb-bin/usr/lib/couchdb/erlang/lib/couch-*/priv/lib/couch_erl_driver.la + rm -f debian/couchdb-bin/usr/share/couchdb/www/script/jquery.js + dh_link /usr/share/javascript/jquery/jquery.js /usr/share/couchdb/www/script/jquery.js + cp debian/binary.lintian-overrides debian/couchdb-bin/usr/share/lintian/overrides/couchdb-bin + +common-binary-predeb-arch:: + erlang-depends -pcouchdb-bin + +# @@ only works from source directory, see #494141 +.PHONY: get-orig-source +get-orig-source: + uscan --force-download --rename --download-version=$(DEB_UPSTREAM_VERSION) --destdir . --- couchdb-1.0.1.orig/debian/couchdb-bin.postinst +++ couchdb-1.0.1/debian/couchdb-bin.postinst @@ -0,0 +1,31 @@ +#!/bin/sh -e + +# Copyright 2009, Noah Slater + +# 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. + +case $1 in + configure) + if ! getent passwd couchdb > /dev/null; then + adduser --system --quiet \ + --home /var/lib/couchdb --no-create-home \ + --shell /bin/bash --group --gecos "CouchDB Administrator" couchdb + fi + if test "`id -u couchdb`" -eq 0; then + echo "The couchdb administrative user must not be root." >&2 + false + fi + if test "`id -g couchdb`" -eq 0; then + echo "The couchdb administrative group must not be root." >&2 + false + fi + chown -R couchdb:couchdb /etc/couchdb + chmod 0775 /etc/couchdb + chmod 0664 /etc/couchdb/default.ini + chmod 0664 /etc/couchdb/local.ini + ;; +esac + +#DEBHELPER# --- couchdb-1.0.1.orig/debian/watch +++ couchdb-1.0.1/debian/watch @@ -0,0 +1,3 @@ +version=3 + +http://www.apache.org/dist/couchdb/([\d\.]+)/apache-couchdb-([\d\.]+)\.tar\.gz --- couchdb-1.0.1.orig/debian/couchdb-bin.dirs +++ couchdb-1.0.1/debian/couchdb-bin.dirs @@ -0,0 +1,3 @@ +etc/couchdb/default.d +etc/couchdb/local.d +usr/share/lintian/overrides --- couchdb-1.0.1.orig/debian/README.source +++ couchdb-1.0.1/debian/README.source @@ -0,0 +1,20 @@ +Source README +============= + +The upstream source can be downloaded with the following command: + + ./debian/rules get-orig-source + +You will need the following packages installed: + + devscripts + +You can patch the upstream source with the following command: + + ./debian/rules patch + +You can add or edit patches using the following command: + + cdbs-edit-patch + + -- Noah Slater , Wed, 14 Jan 2009 16:46:53 +0000 --- couchdb-1.0.1.orig/debian/compat +++ couchdb-1.0.1/debian/compat @@ -0,0 +1 @@ +5 --- couchdb-1.0.1.orig/debian/README.Debian +++ couchdb-1.0.1/debian/README.Debian @@ -0,0 +1,26 @@ +Debian README +============= + +Apache CouchDB is alpha software and still under heavy development. Please be +aware that important areas such as the public API or internal database format +may see backwards incompatible changes between versions. + +More detailed information can be found on the CouchDB wiki: + + http://wiki.apache.org/couchdb/BreakingChanges + +Because the internal database format may change, rendering your database +unusable with a new version of the package, the database directory is +partitioned by the CouchDB release number of the database format in use. + +The partitioned database directories are named like this: + + /var/lib/couchdb/VERSION + +Before you upgrade to a new version of this package with a changed database +format you should export any data that you want keep from the old database and +import the data into the new database after the upgrade. + +Migration tools are available in the `python-couchdb` package. + + -- Sam Bisbee Wed, 11 Nov 2009 23:22:21 -0500 --- couchdb-1.0.1.orig/debian/binary.lintian-overrides +++ couchdb-1.0.1/debian/binary.lintian-overrides @@ -0,0 +1 @@ +couchdb-bin: virtual-package-depends-without-real-package-depends --- couchdb-1.0.1.orig/debian/control +++ couchdb-1.0.1/debian/control @@ -0,0 +1,52 @@ +Source: couchdb +Section: misc +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Erlang Packaging Team +Uploaders: Sergei Golovan , Sam Bisbee , Elliot Murphy +Standards-Version: 3.9.1 +Build-Depends: cdbs (>= 0.4.42), debhelper (>= 7.2.11), + erlang-dev (>= 1:13.b.1-dfsg-3), help2man (>= 1.37), libcurl4-openssl-dev, + libicu-dev, libreadline-dev, + libmozjs185-dev, erlang-crypto, erlang-inets, erlang-xmerl +Homepage: http://couchdb.apache.org/ +Vcs-Svn: svn+ssh://svn.debian.org/svn/pkg-erlang/couchdb +Vcs-Browser: http://svn.debian.org/viewsvn/pkg-erlang/couchdb + +Package: couchdb-bin +Depends: ${misc:Depends}, ${shlibs:Depends}, ${erlang-base:Depends}, + ${erlang-crypto:Depends}, ${erlang-inets:Depends}, ${erlang-xmerl:Depends}, ${erlang-abi:Depends}, ${shlibs:Depends}, ${misc:Depends}, adduser, libjs-jquery, lsb-base, procps, mawk +Suggests: couchdb +Architecture: any +Description: RESTful document oriented database, programs + Apache CouchDB is a distributed, fault-tolerant and schema-free + document-oriented database accessible via a RESTful HTTP/JSON API. Among other + features, it provides robust, incremental replication with bi-directional + conflict detection and resolution, and is queryable and indexable using a + table-oriented view engine with JavaScript acting as the default view + definition language. + . + This package contains the database program (so one can run personal servers), + but no system database or "init" startup files. To get those, you need the + "couchdb" package. + . + CouchDB is written in Erlang, but can be easily accessed from any environment + that provides means to make HTTP requests. There are a multitude of third-party + client libraries that make this even easier for a variety of programming + languages and environments. + +Package: couchdb +Architecture: all +Depends: couchdb-bin (>= ${binary:Version}), ${misc:Depends} +Description: RESTful document oriented database, system DB + Apache CouchDB is a distributed, fault-tolerant and schema-free + document-oriented database accessible via a RESTful HTTP/JSON API. Among other + features, it provides robust, incremental replication with bi-directional + conflict detection and resolution, and is queryable and indexable using a + table-oriented view engine with JavaScript acting as the default view + definition language. + . + CouchDB is written in Erlang, but can be easily accessed from any environment + that provides means to make HTTP requests. There are a multitude of third-party + client libraries that make this even easier for a variety of programming + languages and environments. --- couchdb-1.0.1.orig/debian/couchdb.postinst +++ couchdb-1.0.1/debian/couchdb.postinst @@ -0,0 +1,22 @@ +#!/bin/sh -e + +# Copyright 2009, Noah Slater + +# 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. + +VERSION=%VERSION% + +case $1 in + configure) + mkdir -p /var/lib/couchdb/"${VERSION}" + mkdir -p /var/log/couchdb + chown -R couchdb:couchdb /var/lib/couchdb + chown -R couchdb:couchdb /var/log/couchdb + chmod 0770 /var/lib/couchdb /var/lib/couchdb/"${VERSION}" + chmod 0770 /var/log/couchdb + ;; +esac + +#DEBHELPER# --- couchdb-1.0.1.orig/debian/couchdb-bin.install +++ couchdb-1.0.1/debian/couchdb-bin.install @@ -0,0 +1,2 @@ +debian/tmp/etc/couchdb +debian/tmp/usr --- couchdb-1.0.1.orig/debian/copyright +++ couchdb-1.0.1/debian/copyright @@ -0,0 +1,67 @@ +Upstream-Name: CouchDB +Upstream-Maintainer: Noah Slater +Upstream-Source: http://couchdb.apache.org/downloads.html + +Files: * +Copyright: Copyright 2009, The Apache Software Foundation +License: Apache-2.0 + On Debian systems the full text of the Apache License (Version 2) can be found + in the `/usr/share/common-licenses/Apache-2.0' file. + +Files: debian/* +Copyright: Copyright 2009, Noah Slater +License: GAP + +Files: m4/* +Copyright: Copyright 2008, Akos Maroy +License: GAP + +Files: share/www/script/jquery.js +Copyright: Copyright 2007, John Resig +License: MIT | GPL-2 + On Debian systems the full text of the GNU General Public License (Version 2) + can be found in the `/usr/share/common-licenses/GPL-2' file. + +Files: share/www/script/json2.js +License: PD + In the public domain. + +Files: src/mochiweb/* +Copyright: Copyright 2007, Mochi Media Coporation +License: MIT + +Files: src/ibrowse/* +Copyright: Copyright 2008, Chandrashekhar Mullaparthi +License: BSD + On Debian systems the full text of the BSD License can be found in the + `/usr/share/common-licenses/BSD' file. + +Files: src/etap/* +Copyright: Copyright 2008-2009 Nick Gerakines +License: MIT + +License: GAP + Copying and distribution of this package, with or without modification, are + permitted in any medium without royalty provided the copyright notice and this + notice are preserved. + +License: MIT + Copyright (c) + . + 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 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. --- couchdb-1.0.1.orig/debian/couchdb.postrm +++ couchdb-1.0.1/debian/couchdb.postrm @@ -0,0 +1,28 @@ +#!/bin/sh -e + +# Copyright 2009, Noah Slater + +# 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. + +VERSION=%VERSION% + +case $1 in + purge) + if test -d "/var/lib/couchdb/$VERSION"; then + rmdir --ignore-fail-on-non-empty "/var/lib/couchdb/$VERSION" || true + fi + if test -d "/var/lib/couchdb"; then + rmdir --ignore-fail-on-non-empty "/var/lib/couchdb" || true + fi + if test -d "/var/log/couchdb"; then + rm -r -f "/var/log/couchdb" + fi + if test -d "/var/run/couchdb"; then + rmdir --ignore-fail-on-non-empty "/var/run/couchdb" || true + fi + ;; +esac + +#DEBHELPER# --- couchdb-1.0.1.orig/debian/source/format +++ couchdb-1.0.1/debian/source/format @@ -0,0 +1 @@ +1.0 --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0009-replicator_changes_error.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0009-replicator_changes_error.patch @@ -0,0 +1,33 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +index 958ee82..a8c77b1 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +@@ -210,9 +210,16 @@ handle_info({'EXIT', From, Reason}, #state{changes_loop=From} = State) -> + handle_info({'EXIT', _From, normal}, State) -> + {noreply, State}; + +-handle_info(Msg, State) -> +- ?LOG_DEBUG("unexpected message at changes_feed ~p", [Msg]), +- {noreply, State}. ++handle_info(Msg, #state{init_args = InitArgs} = State) -> ++ case Msg of ++ changes_timeout -> ++ [_, #http_db{url = Url} | _] = InitArgs, ++ ?LOG_ERROR("changes loop timeout, no data received from ~s", ++ [couch_util:url_strip_password(Url)]); ++ _ -> ++ ?LOG_ERROR("changes loop received unexpected message ~p", [Msg]) ++ end, ++ {stop, Msg, State}. + + terminate(_Reason, State) -> + #state{ +@@ -377,7 +384,7 @@ maybe_stream_next(#state{reqid=nil}) -> + ok; + maybe_stream_next(#state{complete=false, count=N} = S) when N < ?BUFFER_SIZE -> + timer:cancel(get(timeout)), +- {ok, Timeout} = timer:exit_after(31000, changes_timeout), ++ {ok, Timeout} = timer:send_after(31000, changes_timeout), + put(timeout, Timeout), + ibrowse:stream_next(S#state.reqid); + maybe_stream_next(_) -> --- couchdb-1.0.1.orig/debian/patches/jquery15-fix.patch +++ couchdb-1.0.1/debian/patches/jquery15-fix.patch @@ -0,0 +1,124 @@ +## Description: Make Futon work with jQuery 1.5 +## Origin/Author: https://github.com/apache/couchdb/commit/064a1d9483cfa33bd0fcc97cb1d97e8e342fdeaf +## Bug: https://bugs.launchpad.net/couchdb/+bug/716237 +diff -Nur -x '*.orig' -x '*~' fix-716237//share/www/script/jquery.couch.js fix-716237.new//share/www/script/jquery.couch.js +--- fix-716237//share/www/script/jquery.couch.js 2011-03-03 21:08:06.625297000 -0700 ++++ fix-716237.new//share/www/script/jquery.couch.js 2011-03-03 21:13:47.548923366 -0700 +@@ -36,7 +36,7 @@ + } + user_doc.type = "user"; + if (!user_doc.roles) { +- user_doc.roles = [] ++ user_doc.roles = []; + } + return user_doc; + }; +@@ -88,7 +88,7 @@ + $.ajax({ + type: "GET", url: this.urlPrefix + "/_session", + complete: function(req) { +- var resp = $.httpData(req, "json"); ++ var resp = httpData(req, "json"); + if (req.status == 200) { + if (options.success) options.success(resp); + } else if (options.error) { +@@ -115,7 +115,7 @@ + user_doc = prepareUserDoc(user_doc, password); + $.couch.userDb(function(db) { + db.saveDoc(user_doc, options); +- }) ++ }); + }, + + login: function(options) { +@@ -124,7 +124,7 @@ + type: "POST", url: this.urlPrefix + "/_session", dataType: "json", + data: {name: options.name, password: options.password}, + complete: function(req) { +- var resp = $.httpData(req, "json"); ++ var resp = httpData(req, "json"); + if (req.status == 200) { + if (options.success) options.success(resp); + } else if (options.error) { +@@ -141,7 +141,7 @@ + type: "DELETE", url: this.urlPrefix + "/_session", dataType: "json", + username : "_", password : "_", + complete: function(req) { +- var resp = $.httpData(req, "json"); ++ var resp = httpData(req, "json"); + if (req.status == 200) { + if (options.success) options.success(resp); + } else if (options.error) { +@@ -167,7 +167,7 @@ + doc._attachments["rev-"+doc._rev.split("-")[0]] = { + content_type :"application/json", + data : Base64.encode(rawDocs[doc._id].raw) +- } ++ }; + return true; + } + } +@@ -385,7 +385,7 @@ + dataType: "json", data: toJSON(doc), + beforeSend : beforeSend, + complete: function(req) { +- var resp = $.httpData(req, "json"); ++ var resp = httpData(req, "json"); + if (req.status == 200 || req.status == 201 || req.status == 202) { + doc._id = resp.id; + doc._rev = resp.rev; +@@ -450,7 +450,7 @@ + copyDoc: function(docId, options, ajaxOptions) { + ajaxOptions = $.extend(ajaxOptions, { + complete: function(req) { +- var resp = $.httpData(req, "json"); ++ var resp = httpData(req, "json"); + if (req.status == 201) { + if (options.success) options.success(resp); + } else if (options.error) { +@@ -583,7 +583,7 @@ + if (!uuidCache.length) { + ajax({url: this.urlPrefix + "/_uuids", data: {count: cacheNum}, async: false}, { + success: function(resp) { +- uuidCache = resp.uuids ++ uuidCache = resp.uuids; + } + }, + "Failed to retrieve UUID batch." +@@ -593,6 +593,27 @@ + } + }); + ++ var httpData = $.httpData || function( xhr, type, s ) { // lifted from jq1.4.4 ++ var ct = xhr.getResponseHeader("content-type") || "", ++ xml = type === "xml" || !type && ct.indexOf("xml") >= 0, ++ data = xml ? xhr.responseXML : xhr.responseText; ++ ++ if ( xml && data.documentElement.nodeName === "parsererror" ) { ++ $.error( "parsererror" ); ++ } ++ if ( s && s.dataFilter ) { ++ data = s.dataFilter( data, type ); ++ } ++ if ( typeof data === "string" ) { ++ if ( type === "json" || !type && ct.indexOf("json") >= 0 ) { ++ data = $.parseJSON( data ); ++ } else if ( type === "script" || !type && ct.indexOf("javascript") >= 0 ) { ++ $.globalEval( data ); ++ } ++ } ++ return data; ++ }; ++ + function ajax(obj, options, errorMessage, ajaxOptions) { + options = $.extend({successStatus: 200}, options); + ajaxOptions = $.extend({contentType: "application/json"}, ajaxOptions); +@@ -608,7 +629,7 @@ + }, + complete: function(req) { + try { +- var resp = $.httpData(req, "json"); ++ var resp = httpData(req, "json"); + } catch(e) { + if (options.error) { + options.error(req.status, req, e); --- couchdb-1.0.1.orig/debian/patches/couchdb-svn1039345-backport.patch +++ couchdb-1.0.1/debian/patches/couchdb-svn1039345-backport.patch @@ -0,0 +1,125 @@ +=== modified file 'src/erlang-oauth/oauth.app.in' +--- old/src/erlang-oauth/oauth.app.in 2010-07-26 10:24:11 +0000 ++++ new/src/erlang-oauth/oauth.app.in 2011-09-13 17:32:12 +0000 +@@ -1,6 +1,6 @@ + {application, oauth, [ + {description, "Erlang OAuth implementation"}, +- {vsn, "dev"}, ++ {vsn, "7d85d3ef"}, + {modules, [ + oauth, + oauth_hmac_sha1, + +=== modified file 'src/erlang-oauth/oauth_hmac_sha1.erl' +--- old/src/erlang-oauth/oauth_hmac_sha1.erl 2010-07-26 10:24:11 +0000 ++++ new/src/erlang-oauth/oauth_hmac_sha1.erl 2011-09-13 17:32:12 +0000 +@@ -8,4 +8,4 @@ signature(BaseString, CS, TS) -> + base64:encode_to_string(crypto:sha_mac(Key, BaseString)). + + verify(Signature, BaseString, CS, TS) -> +- couch_util:verify(signature(BaseString, CS, TS), Signature). ++ Signature =:= signature(BaseString, CS, TS). + +=== modified file 'src/erlang-oauth/oauth_http.erl' +--- old/src/erlang-oauth/oauth_http.erl 2009-08-24 15:44:14 +0000 ++++ new/src/erlang-oauth/oauth_http.erl 2011-09-13 17:32:12 +0000 +@@ -10,7 +10,7 @@ post(URL, Data) -> + request(post, {URL, [], "application/x-www-form-urlencoded", Data}). + + request(Method, Request) -> +- http:request(Method, Request, [{autoredirect, false}], []). ++ httpc:request(Method, Request, [{autoredirect, false}], []). + + response_params(Response) -> + oauth_uri:params_from_string(response_body(Response)). + +=== modified file 'src/erlang-oauth/oauth_plaintext.erl' +--- old/src/erlang-oauth/oauth_plaintext.erl 2010-07-26 10:24:11 +0000 ++++ new/src/erlang-oauth/oauth_plaintext.erl 2011-09-13 17:32:12 +0000 +@@ -7,4 +7,4 @@ signature(CS, TS) -> + oauth_uri:calate("&", [CS, TS]). + + verify(Signature, CS, TS) -> +- couch_util:verify(signature(CS, TS), Signature). ++ Signature =:= signature(CS, TS). + +=== modified file 'src/erlang-oauth/oauth_uri.erl' +--- old/src/erlang-oauth/oauth_uri.erl 2009-08-24 15:44:14 +0000 ++++ new/src/erlang-oauth/oauth_uri.erl 2011-09-13 17:32:12 +0000 +@@ -6,14 +6,6 @@ + + -import(lists, [concat/1]). + +--define(is_uppercase_alpha(C), C >= $A, C =< $Z). +--define(is_lowercase_alpha(C), C >= $a, C =< $z). +--define(is_alpha(C), ?is_uppercase_alpha(C); ?is_lowercase_alpha(C)). +--define(is_digit(C), C >= $0, C =< $9). +--define(is_alphanumeric(C), ?is_alpha(C); ?is_digit(C)). +--define(is_unreserved(C), ?is_alphanumeric(C); C =:= $-; C =:= $_; C =:= $.; C =:= $~). +--define(is_hex(C), ?is_digit(C); C >= $A, C =< $F). +- + + normalize(URI) -> + case http_uri:parse(URI) of +@@ -66,23 +58,41 @@ intersperse(_, [X]) -> [X]; + intersperse(Sep, [X|Xs]) -> + [X, Sep|intersperse(Sep, Xs)]. + +-decode(Chars) -> +- decode(Chars, []). ++-define(is_alphanum(C), C >= $A, C =< $Z; C >= $a, C =< $z; C >= $0, C =< $9). + +-decode([], Decoded) -> +- lists:reverse(Decoded); +-decode([$%,A,B|Etc], Decoded) when ?is_hex(A), ?is_hex(B) -> +- decode(Etc, [erlang:list_to_integer([A,B], 16)|Decoded]); +-decode([C|Etc], Decoded) when ?is_unreserved(C) -> +- decode(Etc, [C|Decoded]). +- +-encode(Chars) -> +- encode(Chars, []). +- +-encode([], Encoded) -> +- lists:flatten(lists:reverse(Encoded)); +-encode([C|Etc], Encoded) when ?is_unreserved(C) -> +- encode(Etc, [C|Encoded]); +-encode([C|Etc], Encoded) -> +- Value = io_lib:format("%~2.1.0s", [erlang:integer_to_list(C, 16)]), +- encode(Etc, [Value|Encoded]). ++encode(Term) when is_integer(Term) -> ++ integer_to_list(Term); ++encode(Term) when is_atom(Term) -> ++ encode(atom_to_list(Term)); ++encode(Term) when is_list(Term) -> ++ encode(lists:reverse(Term, []), []). ++ ++encode([X | T], Acc) when ?is_alphanum(X); X =:= $-; X =:= $_; X =:= $.; X =:= $~ -> ++ encode(T, [X | Acc]); ++encode([X | T], Acc) -> ++ NewAcc = [$%, dec2hex(X bsr 4), dec2hex(X band 16#0f) | Acc], ++ encode(T, NewAcc); ++encode([], Acc) -> ++ Acc. ++ ++decode(Str) when is_list(Str) -> ++ decode(Str, []). ++ ++decode([$%, A, B | T], Acc) -> ++ decode(T, [(hex2dec(A) bsl 4) + hex2dec(B) | Acc]); ++decode([X | T], Acc) -> ++ decode(T, [X | Acc]); ++decode([], Acc) -> ++ lists:reverse(Acc, []). ++ ++-compile({inline, [{dec2hex, 1}, {hex2dec, 1}]}). ++ ++dec2hex(N) when N >= 10 andalso N =< 15 -> ++ N + $A - 10; ++dec2hex(N) when N >= 0 andalso N =< 9 -> ++ N + $0. ++ ++hex2dec(C) when C >= $A andalso C =< $F -> ++ C - $A + 10; ++hex2dec(C) when C >= $0 andalso C =< $9 -> ++ C - $0. + --- couchdb-1.0.1.orig/debian/patches/init.patch +++ couchdb-1.0.1/debian/patches/init.patch @@ -0,0 +1,129 @@ +Index: couchdb-0.11.0/etc/default/couchdb +=================================================================== +--- couchdb-0.11.0.orig/etc/default/couchdb 2010-06-08 23:44:24.191349434 -0700 ++++ couchdb-0.11.0/etc/default/couchdb 2010-06-08 23:45:37.321377097 -0700 +@@ -5,3 +5,7 @@ + COUCHDB_STDERR_FILE=/dev/null + COUCHDB_RESPAWN_TIMEOUT=5 + COUCHDB_OPTIONS= ++ ++# Set this option to 0 if you don't want CouchDB server to start ++# during system boot. ++ENABLE_SERVER=1 +Index: couchdb-0.11.0/etc/init/couchdb.tpl.in +=================================================================== +--- couchdb-0.11.0.orig/etc/init/couchdb.tpl.in 2010-06-08 23:43:24.631291022 -0700 ++++ couchdb-0.11.0/etc/init/couchdb.tpl.in 2010-06-08 23:50:55.771324618 -0700 +@@ -33,8 +33,12 @@ + RUN_DIR=%localstaterundir% + LSB_LIBRARY=/lib/lsb/init-functions + ++# Grace time in seconds to give the beam process to stop when we're running the ++# stop target. Will end before grace time ends if the process ends sooner. ++STOP_GRACE_TIME=5 ++ + if test ! -x $COUCHDB; then +- exit $SCRIPT_ERROR ++ exit $SCRIPT_OK + fi + + if test -r $CONFIGURATION_FILE; then +@@ -60,6 +64,15 @@ + . $LSB_LIBRARY + fi + ++if test "$ENABLE_SERVER" = "0"; then ++ case "$1" in ++ start|restart|force-reload) ++ echo "Database server $NAME is disabled in $CONFIGURATION_FILE." ++ exit $SCRIPT_OK ++ ;; ++ esac ++fi ++ + start_couchdb () { + # Start Apache CouchDB as a background process. + +@@ -77,6 +90,7 @@ + command="$command $COUCHDB_OPTIONS" + fi + mkdir -p "$RUN_DIR" ++ cd "$RUN_DIR" + if test -n "$COUCHDB_USER"; then + chown $COUCHDB_USER "$RUN_DIR" + if su $COUCHDB_USER -c "$command" > /dev/null; then +@@ -96,23 +110,50 @@ + stop_couchdb () { + # Stop the running Apache CouchDB process. + ++ pidFile="$RUN_DIR/couchdb.pid" ++ if [ ! -r "$pidFile" ] ++ then ++ #exists, but can't read it ++ [ -f "$pidFile" ] && return $SCRIPT_ERROR ++ ++ #doesn't exist, so assume couchdb is already stopped ++ return $SCRIPT_OK ++ fi ++ ++ pid=`cat $pidFile` ++ #unset $pidFile ++ [ -z "$pid" ] && return $SCRIPT_OK ++ + command="$COUCHDB -d" + if test -n "$COUCHDB_OPTIONS"; then + command="$command $COUCHDB_OPTIONS" + fi ++ ++ # We need `heart`'s pid because its ppid is set to 1 when the beam proc ++ # ends, thereby hiding itself from our `ps` check bellow. ++ heart_pid=`ps -f --ppid $pid | grep "heart -pid $pid " | awk '{print $2}'` ++ [ -n "$heart_pid" ] && heart_pid=",$heart_pid" #for `ps` call formatting ++ + if test -n "$COUCHDB_USER"; then +- if su $COUCHDB_USER -c "$command" > /dev/null; then +- return $SCRIPT_OK +- else ++ if ! su $COUCHDB_USER -c "$command" > /dev/null; then + return $SCRIPT_ERROR + fi + else +- if $command > /dev/null; then +- return $SCRIPT_OK +- else ++ if ! $command > /dev/null; then + return $SCRIPT_ERROR + fi + fi ++ ++ i=0 ++ while ps -p $pid$heart_pid --ppid $pid$heart_pid > /dev/null ++ do ++ [ $i -ge $STOP_GRACE_TIME ] && return $SCRIPT_ERROR ++ ++ sleep 1 ++ i=`expr $i + 1` ++ done ++ ++ return $SCRIPT_OK + } + + display_status () { +@@ -141,7 +182,7 @@ + log_end_msg $SCRIPT_ERROR + fi + ;; +- restart) ++ restart|force-reload) + log_daemon_msg "Restarting $DESCRIPTION" $NAME + if stop_couchdb; then + if start_couchdb; then +@@ -158,7 +199,7 @@ + ;; + *) + cat << EOF >&2 +-Usage: $SCRIPT_NAME {start|stop|restart|status} ++Usage: $SCRIPT_NAME {start|stop|restart|force-reload|status} + EOF + exit $SCRIPT_ERROR + ;; --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0010-replicator_changes_connection_close.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0010-replicator_changes_connection_close.patch @@ -0,0 +1,74 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +index a8c77b1..3f6079e 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +@@ -43,7 +43,8 @@ next(Server) -> + gen_server:call(Server, next_changes, infinity). + + stop(Server) -> +- gen_server:call(Server, stop). ++ catch gen_server:call(Server, stop), ++ ok. + + init([Parent, #http_db{}=Source, Since, PostProps]) -> + process_flag(trap_exit, true), +@@ -95,7 +96,7 @@ init([Parent, #http_db{}=Source, Since, PostProps]) -> + ibrowse:stream_next(ReqId), + {ok, #state{conn=Pid, last_seq=Since, reqid=ReqId, init_args=Args}}; + {ibrowse_async_headers, ReqId, Code, Hdrs} when Code=="301"; Code=="302" -> +- catch ibrowse:stop_worker_process(Pid), ++ stop_link_worker(Pid), + Url2 = couch_rep_httpc:redirect_url(Hdrs, Req#http_db.url), + Req2 = couch_rep_httpc:redirected_request(Req, Url2), + Pid2 = couch_rep_httpc:spawn_link_worker_process(Req2), +@@ -108,7 +109,7 @@ init([Parent, #http_db{}=Source, Since, PostProps]) -> + {stop, changes_timeout} + end; + {ibrowse_async_headers, ReqId, "404", _} -> +- catch ibrowse:stop_worker_process(Pid), ++ stop_link_worker(Pid), + ?LOG_INFO("source doesn't have _changes, trying _all_docs_by_seq", []), + Self = self(), + BySeqPid = spawn_link(fun() -> by_seq_loop(Self, Source, Since) end), +@@ -207,8 +208,9 @@ handle_info({'EXIT', From, Reason}, #state{changes_loop=From} = State) -> + ?LOG_ERROR("changes_loop died with reason ~p", [Reason]), + {stop, changes_loop_died, State}; + +-handle_info({'EXIT', _From, normal}, State) -> +- {noreply, State}; ++handle_info({'EXIT', From, Reason}, State) -> ++ ?LOG_ERROR("changes loop, process ~p died with reason ~p", [From, Reason]), ++ {stop, {From, Reason}, State}; + + handle_info(Msg, #state{init_args = InitArgs} = State) -> + case Msg of +@@ -227,8 +229,7 @@ terminate(_Reason, State) -> + conn = Conn + } = State, + if is_pid(ChangesPid) -> exit(ChangesPid, stop); true -> ok end, +- if is_pid(Conn) -> catch ibrowse:stop_worker_process(Conn); true -> ok end, +- ok. ++ stop_link_worker(Conn). + + code_change(_OldVsn, State, _Extra) -> + {ok, State}. +@@ -271,7 +272,7 @@ handle_headers(200, _, State) -> + {noreply, State}; + handle_headers(Code, Hdrs, #state{init_args = InitArgs} = State) + when Code =:= 301 ; Code =:= 302 -> +- catch ibrowse:stop_worker_process(State#state.conn), ++ stop_link_worker(State#state.conn), + [Parent, #http_db{url = Url1} = Source, Since, PostProps] = InitArgs, + Url = couch_rep_httpc:redirect_url(Hdrs, Url1), + Source2 = couch_rep_httpc:redirected_request(Source, Url), +@@ -389,3 +390,10 @@ maybe_stream_next(#state{complete=false, count=N} = S) when N < ?BUFFER_SIZE -> + ibrowse:stream_next(S#state.reqid); + maybe_stream_next(_) -> + timer:cancel(get(timeout)). ++ ++stop_link_worker(Conn) when is_pid(Conn) -> ++ unlink(Conn), ++ receive {'EXIT', Conn, _} -> ok after 0 -> ok end, ++ catch ibrowse:stop_worker_process(Conn); ++stop_link_worker(_) -> ++ ok. --- couchdb-1.0.1.orig/debian/patches/moz0001-spidermonkey1.8.5.patch +++ couchdb-1.0.1/debian/patches/moz0001-spidermonkey1.8.5.patch @@ -0,0 +1,700 @@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//configure.ac couchdb-1.0.1.new//configure.ac +--- couchdb-1.0.1//configure.ac 2010-08-10 20:34:54.000000000 +0100 ++++ couchdb-1.0.1.new//configure.ac 2011-06-14 18:31:19.263521875 +0100 +@@ -118,6 +118,25 @@ + + AC_SUBST(JS_LIB_BASE) + ++AC_CHECK_LIB([$JS_LIB_BASE], [JS_FreezeObject], ++ AC_DEFINE([HAVE_JS_FREEZE_OBJECT], [1], [Define whether we have JS_FreezeObject])) ++ ++AC_CHECK_LIB([$JS_LIB_BASE], [JS_NewGlobalObject], ++ AC_DEFINE([HAVE_JS_NEW_GLOBAL_OBJECT], [1], [Define whether we have JS_NewGlobalObject])) ++ ++AC_CHECK_LIB([$JS_LIB_BASE], [JS_GetStringCharsAndLength], ++ AC_DEFINE([HAVE_JS_GET_STRING_CHARS_AND_LENGTH], [1], [Define whether we have JS_GetStringCharsAndLength])) ++ ++AC_CHECK_LIB([$JS_LIB_BASE], [JS_NewCompartmentAndGlobalObject], ++ AC_DEFINE([HAVE_COMPARTMENTS], [1], [Define whether we have JS_NewCompartmentAndGlobalObject])) ++ ++AC_CHECK_LIB([$JS_LIB_BASE], [JS_StrictPropertyStub], ++ AC_DEFINE([HAVE_JS_STRICT_PROPERTY_STUB], [1], [Define whether we have JS_StrictPropertyStub])) ++ ++AC_CHECK_LIB([$JS_LIB_BASE], [JS_DestroyScript],, ++ AC_DEFINE([HAVE_SCRIPT_AS_OBJECT], [1], [Define whether scripts are JSObjects])) ++ ++ + if test x${IS_WINDOWS} = xTRUE; then + if test -f "$JS_LIB_DIR/$JS_LIB_BASE.dll"; then + # seamonkey 1.7- build layout on Windows +@@ -186,6 +205,25 @@ + )], + AC_DEFINE([USE_JS_SETOPCB], [], [Use new JS_SetOperationCallback]) + ) ++CFLAGS="$JS_FLAGS" ++AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[#include ]], ++ [[static JSFunctionSpec fs; ++ fs.extra = 0;]] ++ )], ++ AC_DEFINE([JS_FS_HAS_EXTRA], [1], [JSFunctionSpec has an extra member]) ++) ++CFLAGS="$CFLAGS -Werror" ++AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[#include ++ static JSBool op(JSContext* cx, JSObject* obj, jsid id, jsval* vp) {}]], ++ [[static JSPropertySpec spec; ++ spec.getter = op;]] ++ )], ++ AC_DEFINE([JS_PROPERTY_OP_HAS_ID_AS_JSID], [1], [The type of "id" in the prototype for JSPropertyOp is a jsid]) ++) + CFLAGS="$OLD_CFLAGS" + AC_LANG_POP(C) + +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/couchdb/priv/couch_js/http.c couchdb-1.0.1.new//src/couchdb/priv/couch_js/http.c +--- couchdb-1.0.1//src/couchdb/priv/couch_js/http.c 2010-06-15 17:27:22.000000000 +0100 ++++ couchdb-1.0.1.new//src/couchdb/priv/couch_js/http.c 2011-06-14 18:30:26.642845297 +0100 +@@ -15,8 +15,10 @@ + #include + #include + #include ++#include "config.h" + + #include "utf8.h" ++#include "jscompat.h" + + #ifdef XP_WIN + // Map some of the string function names to things which exist on Windows +@@ -49,11 +51,12 @@ + static JSString* + str_from_binary(JSContext* cx, char* data, size_t length); + +-static JSBool +-constructor(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) ++COUCHJS_CONSTRUCTOR_DECLARE(constructor) + { ++ COUCHJS_CONSTRUCTOR_INIT_VARS + HTTPData* http = NULL; +- JSBool ret = JS_FALSE; ++ ++ COUCHJS_CONSTRUCTOR_CONSTRUCT + + http = (HTTPData*) malloc(sizeof(HTTPData)); + if(!http) +@@ -73,14 +76,12 @@ + goto error; + } + +- ret = JS_TRUE; +- goto success; ++ COUCHJS_CONSTRUCTOR_FINISH ++ return JS_TRUE; + + error: + if(http) free(http); +- +-success: +- return ret; ++ return JS_FALSE; + } + + static void +@@ -100,12 +101,14 @@ + } + + static JSBool +-open(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) +-{ ++open(JSContext* cx, uintN argc, jsval* vp) ++{ ++ COUCHJS_NATIVE_INIT_VARS(argv, obj) ++ JSBool ret = JS_FALSE; ++ + HTTPData* http = (HTTPData*) JS_GetPrivate(cx, obj); + char* method = NULL; + char* url = NULL; +- JSBool ret = JS_FALSE; + int methid; + + if(!http) +@@ -174,6 +177,7 @@ + // Disable Expect: 100-continue + http->req_headers = curl_slist_append(http->req_headers, "Expect:"); + ++ JS_SET_RVAL(cx, vp, JSVAL_VOID); + ret = JS_TRUE; + + done: +@@ -182,14 +186,16 @@ + } + + static JSBool +-setheader(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) +-{ ++setheader(JSContext* cx, uintN argc, jsval* vp) ++{ ++ COUCHJS_NATIVE_INIT_VARS(argv, obj) ++ JSBool ret = JS_FALSE; ++ + HTTPData* http = (HTTPData*) JS_GetPrivate(cx, obj); + char* keystr = NULL; + char* valstr = NULL; + char* hdrbuf = NULL; + size_t hdrlen = -1; +- JSBool ret = JS_FALSE; + + if(!http) + { +@@ -234,6 +240,7 @@ + snprintf(hdrbuf, hdrlen, "%s: %s", keystr, valstr); + http->req_headers = curl_slist_append(http->req_headers, hdrbuf); + ++ JS_SET_RVAL(cx, vp, JSVAL_VOID); + ret = JS_TRUE; + + done: +@@ -245,12 +252,14 @@ + } + + static JSBool +-sendreq(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) ++sendreq(JSContext* cx, uintN argc, jsval* vp) + { ++ COUCHJS_NATIVE_INIT_VARS(argv, obj) ++ JSBool ret = JS_FALSE; ++ + HTTPData* http = (HTTPData*) JS_GetPrivate(cx, obj); + char* body = NULL; + size_t bodylen = 0; +- JSBool ret = JS_FALSE; + + if(!http) + { +@@ -270,13 +279,15 @@ + + ret = go(cx, obj, http, body, bodylen); + ++ if (ret == JS_TRUE) ++ JS_SET_RVAL(cx, vp, JSVAL_VOID); ++ + done: + if(body) free(body); + return ret; + } + +-static JSBool +-status(JSContext* cx, JSObject* obj, jsval idval, jsval* vp) ++COUCHJS_GETTER_DECLARE(status) + { + HTTPData* http = (HTTPData*) JS_GetPrivate(cx, obj); + +@@ -285,7 +296,12 @@ + JS_ReportError(cx, "Invalid CouchHTTP instance."); + return JS_FALSE; + } +- ++#ifndef INT_FITS_IN_JSVAL ++ // jsval's are 64-bits wide in mozjs >= 2.0, so a jsint ++ // can use the full 32-bits now no bits are reserved for tagging ++ *vp = INT_TO_JSVAL(http->last_status); ++ return JS_TRUE; ++#else + if(INT_FITS_IN_JSVAL(http->last_status)) + { + *vp = INT_TO_JSVAL(http->last_status); +@@ -296,6 +312,7 @@ + JS_ReportError(cx, "INTERNAL: Invalid last_status"); + return JS_FALSE; + } ++#endif + } + + JSClass CouchHTTPClass = { +@@ -306,7 +323,7 @@ + JS_PropertyStub, + JS_PropertyStub, + JS_PropertyStub, +- JS_PropertyStub, ++ JS_SETPROPERTY_PROPERTY_STUB, + JS_EnumerateStub, + JS_ResolveStub, + JS_ConvertStub, +@@ -320,10 +337,10 @@ + }; + + JSFunctionSpec CouchHTTPFunctions[] = { +- {"_open", open, 3, 0, 0}, +- {"_setRequestHeader", setheader, 2, 0, 0}, +- {"_send", sendreq, 1, 0, 0}, +- {0, 0, 0, 0, 0} ++ JS_FS("_open", COUCHJS_NATIVE_FUNC(open), 3, JSFUN_FAST_NATIVE), ++ JS_FS("_setRequestHeader", COUCHJS_NATIVE_FUNC(setheader), 2, JSFUN_FAST_NATIVE), ++ JS_FS("_send", COUCHJS_NATIVE_FUNC(sendreq), 1, JSFUN_FAST_NATIVE), ++ JS_FS_END + }; + + JSObject* +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/couchdb/priv/couch_js/jscompat.h couchdb-1.0.1.new//src/couchdb/priv/couch_js/jscompat.h +--- couchdb-1.0.1//src/couchdb/priv/couch_js/jscompat.h 1970-01-01 01:00:00.000000000 +0100 ++++ couchdb-1.0.1.new//src/couchdb/priv/couch_js/jscompat.h 2011-06-14 18:30:26.642845297 +0100 +@@ -0,0 +1,91 @@ ++// Licensed under the Apache License, Version 2.0 (the "License"); you may not ++// use this file except in compliance with the License. You may obtain a copy of ++// the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, software ++// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT ++// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the ++// License for the specific language governing permissions and limitations under ++// the License. ++ ++#ifndef COUCH_JS_JS_COMPAT_H ++#define COUCH_JS_JS_COMPAT_H ++ ++#ifdef JS_FS_HAS_EXTRA ++# undef JS_FS ++# undef JS_FS_END ++# define JS_FS(name,call,nargs,flags) {name, call, nargs, flags, 0} ++# define JS_FS_END JS_FS(0, 0, 0, 0) ++#endif ++ ++#ifdef JSFUN_CONSTRUCTOR ++# define JSFUN_FAST_NATIVE 0 ++# define COUCHJS_CONSTRUCTOR_DECLARE(name) \ ++ static JSBool \ ++ name(JSContext* cx, uintN argc, jsval* vp) ++# define COUCHJS_CONSTRUCTOR_INIT_VARS \ ++ JSObject *obj = NULL; \ ++ jsval *argv = JS_ARGV(cx, vp); ++# define COUCHJS_CONSTRUCTOR_CONSTRUCT \ ++ obj = JS_NewObjectForConstructor(cx, vp); \ ++ if(!obj) { \ ++ JS_ReportError(cx, "Failed to create 'this' object"); \ ++ return JS_FALSE; \ ++ } ++# define COUCHJS_CONSTRUCTOR_FINISH \ ++ JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj)); ++# define COUCHJS_NATIVE_FUNC(func) func ++#else ++# define COUCHJS_CONSTRUCTOR_DECLARE(name) \ ++ static JSBool \ ++ name(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) ++# define COUCHJS_CONSTRUCTOR_INIT_VARS ++# define COUCHJS_CONSTRUCTOR_CONSTRUCT ++# define COUCHJS_CONSTRUCTOR_FINISH ++# define COUCHJS_NATIVE_FUNC(func) (JSNative *) func ++#endif ++ ++#ifdef HAVE_JS_STRICT_PROPERTY_STUB ++# define JS_SETPROPERTY_PROPERTY_STUB JS_StrictPropertyStub ++#else ++# define JS_SETPROPERTY_PROPERTY_STUB JS_PropertyStub ++#endif ++ ++#ifdef HAVE_SCRIPT_AS_OBJECT ++# define COUCHJS_SCRIPT JSObject ++# define COUCHJS_DESTROY_SCRIPT(cx, script) ++#else ++# define COUCHJS_SCRIPT JSScript ++# define COUCHJS_DESTROY_SCRIPT(cx, script) \ ++ JS_DestroyScript(cx, script) ++#endif ++ ++#ifdef HAVE_JS_FREEZE_OBJECT ++# define COUCHJS_SEAL_OBJECT(res, cx, target, deep) \ ++ res = deep ? JS_DeepFreezeObject(cx, target) : JS_FreezeObject(cx, target); ++#else ++# define COUCHJS_SEAL_OBJECT(res, cx, target, deep) \ ++ res = JS_SealObject(cx, target, deep); ++#endif ++ ++#define COUCHJS_NATIVE_INIT_VARS(argv, obj) \ ++ jsval* argv = JS_ARGV(cx, vp); \ ++ JSObject* obj = JS_THIS_OBJECT(cx, vp); \ ++ if (!obj) { \ ++ JS_ReportError(cx, "No 'this' object"); \ ++ return JS_FALSE; \ ++ } ++ ++#ifdef JS_PROPERTY_OP_HAS_ID_AS_JSID ++# define COUCHJS_GETTER_DECLARE(name) \ ++ static JSBool \ ++ status(JSContext* cx, JSObject* obj, jsid id, jsval* vp) ++#else ++# define COUCHJS_GETTER_DECLARE(name) \ ++ static JSBool \ ++ status(JSContext* cx, JSObject* obj, jsval idval, jsval* vp) ++#endif ++ ++#endif +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/couchdb/priv/couch_js/main.c couchdb-1.0.1.new//src/couchdb/priv/couch_js/main.c +--- couchdb-1.0.1//src/couchdb/priv/couch_js/main.c 2009-11-27 22:43:59.000000000 +0000 ++++ couchdb-1.0.1.new//src/couchdb/priv/couch_js/main.c 2011-06-14 18:30:26.642845297 +0100 +@@ -18,6 +18,7 @@ + + #include "utf8.h" + #include "http.h" ++#include "jscompat.h" + + int gExitCode = 0; + +@@ -26,16 +27,30 @@ + JS_SetContextThread(cx); \ + JS_BeginRequest(cx); + #define FINISH_REQUEST(cx) \ +- JS_EndRequest(cx); \ +- JS_ClearContextThread(cx); ++ JS_EndRequest(cx); + #else + #define SETUP_REQUEST(cx) + #define FINISH_REQUEST(cx) + #endif + ++static JSClass global_class = { ++ "GlobalClass", ++ JSCLASS_GLOBAL_FLAGS, ++ JS_PropertyStub, ++ JS_PropertyStub, ++ JS_PropertyStub, ++ JS_SETPROPERTY_PROPERTY_STUB, ++ JS_EnumerateStub, ++ JS_ResolveStub, ++ JS_ConvertStub, ++ JS_FinalizeStub, ++ JSCLASS_NO_OPTIONAL_MEMBERS ++}; ++ + static JSBool +-evalcx(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) ++evalcx(JSContext* cx, uintN argc, jsval* vp) + { ++ jsval* argv = JS_ARGV(cx, vp); + JSString *str; + JSObject *sandbox; + JSContext *subcx; +@@ -43,6 +58,9 @@ + size_t srclen; + JSBool ret = JS_FALSE; + jsval v; ++#ifdef HAVE_COMPARTMENTS ++ JSCrossCompartmentCall *call = NULL; ++#endif + + sandbox = NULL; + if(!JS_ConvertArguments(cx, argc, argv, "S / o", &str, &sandbox)) +@@ -59,42 +77,68 @@ + + SETUP_REQUEST(subcx); + ++#ifdef HAVE_JS_GET_STRING_CHARS_AND_LENGTH ++ src = JS_GetStringCharsAndLength(cx, str, &srclen); ++#else + src = JS_GetStringChars(str); + srclen = JS_GetStringLength(str); ++#endif + ++#ifdef HAVE_COMPARTMENTS ++ /* Re-use the compartment associated with the main context, ++ * rather than creating a new compartment */ ++ JSObject *global = JS_GetGlobalObject(cx); ++ if(!global) ++ { ++ goto done; ++ } ++ call = JS_EnterCrossCompartmentCall(subcx, global); ++#endif + if(!sandbox) + { ++#ifdef HAVE_JS_NEW_GLOBAL_OBJECT ++ sandbox = JS_NewGlobalObject(subcx, &global_class); ++#else + sandbox = JS_NewObject(subcx, NULL, NULL, NULL); ++#endif + if(!sandbox || !JS_InitStandardClasses(subcx, sandbox)) goto done; + } + + if(srclen == 0) + { +- *rval = OBJECT_TO_JSVAL(sandbox); ++ JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(sandbox)); + } + else + { +- JS_EvaluateUCScript(subcx, sandbox, src, srclen, NULL, 0, rval); ++ JS_EvaluateUCScript(subcx, sandbox, src, srclen, NULL, 0, &JS_RVAL(cx, vp)); + } +- ++ + ret = JS_TRUE; + + done: ++#ifdef HAVE_COMPARTMENTS ++ if(call) ++ { ++ JS_LeaveCrossCompartmentCall(call); ++ } ++#endif + FINISH_REQUEST(subcx); + JS_DestroyContext(subcx); + return ret; + } + + static JSBool +-gc(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) ++gc(JSContext* cx, uintN argc, jsval* vp) + { + JS_GC(cx); ++ JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; + } + + static JSBool +-print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) ++print(JSContext* cx, uintN argc, jsval* vp) + { ++ jsval* argv = JS_ARGV(cx, vp); + uintN i; + char *bytes; + +@@ -109,16 +153,46 @@ + + fputc('\n', stdout); + fflush(stdout); ++ JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; + } + + static JSBool +-quit(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) ++quit(JSContext* cx, uintN argc, jsval* vp) + { ++ jsval* argv = JS_ARGV(cx, vp); + JS_ConvertArguments(cx, argc, argv, "/ i", &gExitCode); + return JS_FALSE; + } + ++static int ++couchjs_fgets(char *buf, int size, FILE *file) ++{ ++ int n, i, c; ++ JSBool crflag; ++ ++ n = size - 1; ++ if (n < 0) ++ return -1; ++ ++ crflag = JS_FALSE; ++ for (i = 0; i < n && (c = getc(file)) != EOF; i++) { ++ buf[i] = c; ++ if (c == '\n') { /* any \n ends a line */ ++ i++; /* keep the \n; we know there is room for \0 */ ++ break; ++ } ++ if (crflag) { /* \r not followed by \n ends line at the \r */ ++ ungetc(c, file); ++ break; /* and overwrite c in buf with \0 */ ++ } ++ crflag = (c == '\r'); ++ } ++ ++ buf[i] = '\0'; ++ return i; ++} ++ + static char* + readfp(JSContext* cx, FILE* fp, size_t* buflen) + { +@@ -130,8 +204,7 @@ + + bytes = JS_malloc(cx, byteslen); + if(bytes == NULL) return NULL; +- +- while((readlen = js_fgets(bytes+used, byteslen-used, stdin)) > 0) ++ while((readlen = couchjs_fgets(bytes+used, byteslen-used, stdin)) > 0) + { + used += readlen; + +@@ -157,7 +230,7 @@ + } + + static JSBool +-readline(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { ++readline(JSContext* cx, uintN argc, jsval* vp) { + jschar *chars; + JSString *str; + char* bytes; +@@ -173,7 +246,7 @@ + /* Treat the empty string specially */ + if(byteslen == 0) + { +- *rval = JS_GetEmptyStringValue(cx); ++ JS_SET_RVAL(cx, vp, JS_GetEmptyStringValue(cx)); + JS_free(cx, bytes); + return JS_TRUE; + } +@@ -191,28 +264,35 @@ + JS_free(cx, bytes); + + if(!str) return JS_FALSE; +- +- *rval = STRING_TO_JSVAL(str); ++ JS_SET_RVAL(cx, vp, STRING_TO_JSVAL(str)); + + return JS_TRUE; + } + + static JSBool +-seal(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { ++seal(JSContext* cx, uintN argc, jsval* vp) { ++ jsval* argv = JS_ARGV(cx, vp); + JSObject *target; + JSBool deep = JS_FALSE; + + if (!JS_ConvertArguments(cx, argc, argv, "o/b", &target, &deep)) + return JS_FALSE; +- if (!target) ++ if (!target) { ++ JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +- return JS_SealObject(cx, target, deep); ++ } ++ JSBool res; ++ COUCHJS_SEAL_OBJECT(res, cx, target, deep) ++ if (res == JS_TRUE) ++ JS_SET_RVAL(cx, vp, JSVAL_VOID); ++ ++ return res; + } + + static void + execute_script(JSContext *cx, JSObject *obj, const char *filename) { + FILE *file; +- JSScript *script; ++ COUCHJS_SCRIPT *script; + jsval result; + + if(!filename || strcmp(filename, "-") == 0) +@@ -234,7 +314,7 @@ + if(script) + { + JS_ExecuteScript(cx, obj, script, &result); +- JS_DestroyScript(cx, script); ++ COUCHJS_DESTROY_SCRIPT(cx, script); + } + } + +@@ -248,27 +328,13 @@ + } + + static JSFunctionSpec global_functions[] = { +- {"evalcx", evalcx, 0, 0, 0}, +- {"gc", gc, 0, 0, 0}, +- {"print", print, 0, 0, 0}, +- {"quit", quit, 0, 0, 0}, +- {"readline", readline, 0, 0, 0}, +- {"seal", seal, 0, 0, 0}, +- {0, 0, 0, 0, 0} +-}; +- +-static JSClass global_class = { +- "GlobalClass", +- JSCLASS_GLOBAL_FLAGS, +- JS_PropertyStub, +- JS_PropertyStub, +- JS_PropertyStub, +- JS_PropertyStub, +- JS_EnumerateStub, +- JS_ResolveStub, +- JS_ConvertStub, +- JS_FinalizeStub, +- JSCLASS_NO_OPTIONAL_MEMBERS ++ JS_FS("evalcx", COUCHJS_NATIVE_FUNC(evalcx), 0, JSFUN_FAST_NATIVE), ++ JS_FS("gc", COUCHJS_NATIVE_FUNC(gc), 0, JSFUN_FAST_NATIVE), ++ JS_FS("print", COUCHJS_NATIVE_FUNC(print), 0, JSFUN_FAST_NATIVE), ++ JS_FS("quit", COUCHJS_NATIVE_FUNC(quit), 0, JSFUN_FAST_NATIVE), ++ JS_FS("readline", COUCHJS_NATIVE_FUNC(readline), 0, JSFUN_FAST_NATIVE), ++ JS_FS("seal", COUCHJS_NATIVE_FUNC(seal), 0, JSFUN_FAST_NATIVE), ++ JS_FS_END + }; + + int +@@ -290,9 +356,18 @@ + JS_ToggleOptions(cx, JSOPTION_XML); + + SETUP_REQUEST(cx); +- ++#ifdef HAVE_COMPARTMENTS ++ global = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL); ++ if (!global) return 1; ++ JSCrossCompartmentCall *call = JS_EnterCrossCompartmentCall(cx, global); ++#elif HAVE_JS_NEW_GLOBAL_OBJECT ++ global = JS_NewGlobalObject(cx, &global_class); ++ if (!global) return 1; ++#else + global = JS_NewObject(cx, &global_class, NULL, NULL); + if (!global) return 1; ++ JS_SetGlobalObject(cx, global); ++#endif + if (!JS_InitStandardClasses(cx, global)) return 1; + + for(sp = global_functions; sp->name != NULL; sp++) +@@ -309,8 +384,6 @@ + { + return 1; + } +- +- JS_SetGlobalObject(cx, global); + + if(argc > 2) + { +@@ -328,9 +401,13 @@ + execute_script(cx, global, argv[1]); + } + +- FINISH_REQUEST(cx); ++#ifdef HAVE_COMPARTMENTS ++ JS_LeaveCrossCompartmentCall(call); ++#endif + ++ FINISH_REQUEST(cx); + JS_DestroyContext(cx); ++ + JS_DestroyRuntime(rt); + JS_ShutDown(); + +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/couchdb/priv/couch_js/utf8.c couchdb-1.0.1.new//src/couchdb/priv/couch_js/utf8.c +--- couchdb-1.0.1//src/couchdb/priv/couch_js/utf8.c 2009-11-27 06:41:39.000000000 +0000 ++++ couchdb-1.0.1.new//src/couchdb/priv/couch_js/utf8.c 2011-06-14 18:30:26.642845297 +0100 +@@ -12,6 +12,8 @@ + + #include + ++#include "config.h" ++ + static int + enc_char(uint8 *utf8Buffer, uint32 ucs4Char) + { +@@ -129,8 +131,12 @@ + str = JS_ValueToString(cx, arg); + if(!str) goto error; + ++#ifdef HAVE_JS_GET_STRING_CHARS_AND_LENGTH ++ src = JS_GetStringCharsAndLength(cx, str, &srclen); ++#else + src = JS_GetStringChars(str); + srclen = JS_GetStringLength(str); ++#endif + + if(!enc_charbuf(src, srclen, NULL, &byteslen)) goto error; + +@@ -283,4 +289,4 @@ + + success: + return str; +-} +\ No newline at end of file ++} --- couchdb-1.0.1.orig/debian/patches/fix-help2man.patch +++ couchdb-1.0.1/debian/patches/fix-help2man.patch @@ -0,0 +1,13 @@ +# Version 1.37 of help2man requires --no-discard-stderr +--- couchdb-0.10.0.orig/bin/Makefile.in ++++ couchdb-0.10.0/bin/Makefile.in +@@ -211,7 +211,7 @@ + CLEANFILES = $(bin_SCRIPTS) $(dist_man1_MANS) $(noinst_SCRIPTS) + couchdb_command_name = `echo couchdb | sed '$(transform)'` + couchjs_command_name = `echo couchjs | sed '$(transform)'` +-HELP2MAN_OPTION = --no-info --help-option="-h" --version-option="-V" ++HELP2MAN_OPTION = --no-info --no-discard-stderr --help-option="-h" --version-option="-V" + all: all-am + + .SUFFIXES: + --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0011-ibrowse_chunked_encoding_streaming.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0011-ibrowse_chunked_encoding_streaming.patch @@ -0,0 +1,92 @@ +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse_http_client.erl b/couchdb-1.0.1/src/ibrowse/ibrowse_http_client.erl +index 1633e5b..20e1d01 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse_http_client.erl ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse_http_client.erl +@@ -1066,7 +1066,12 @@ parse_11_response(DataRecvd, + recvd_chunk_size = 0, + chunk_size = ChunkSize}); + {no, Data_1} -> +- State#state{chunk_size_buffer = Data_1} ++ case get_more_chunked_data(1, <<>>, State) of ++ <<>> -> ++ State#state{chunk_size_buffer = Data_1}; ++ Data_2 -> ++ parse_11_response(<>, State) ++ end + end; + + %% This clause is to remove the CRLF between two chunks +@@ -1120,21 +1125,21 @@ parse_11_response(DataRecvd, + do_trace("Recvd more data: size: ~p. NeedBytes: ~p~n", [DataLen, NeedBytes]), + case DataLen >= NeedBytes of + true -> +- {RemChunk, RemData} = split_binary(DataRecvd, NeedBytes), +- do_trace("Recvd another chunk...~n", []), +- do_trace("RemData -> ~p~n", [RemData]), +- case accumulate_response(RemChunk, State) of +- {error, Reason} -> +- do_trace("Error accumulating response --> ~p~n", [Reason]), +- {error, Reason}; +- #state{} = State_1 -> +- State_2 = State_1#state{chunk_size=tbd}, +- parse_11_response(RemData, State_2) +- end; ++ process_chunk(NeedBytes, DataRecvd, State); + false -> +- accumulate_response(DataRecvd, +- State#state{rep_buf_size = RepBufSz + DataLen, +- recvd_chunk_size = Recvd_csz + DataLen}) ++ RestData = get_more_chunked_data(NeedBytes, <<>>, State), ++ DataRecvd2 = <>, ++ do_trace("Second recvd more data: size: ~p~n", [size(DataRecvd2)]), ++ case size(RestData) >= NeedBytes of ++ true -> ++ process_chunk(NeedBytes, DataRecvd2, State); ++ false -> ++ State2 = State#state{ ++ rep_buf_size = RepBufSz + size(DataRecvd2), ++ recvd_chunk_size = Recvd_csz + size(DataRecvd2) ++ }, ++ accumulate_response(DataRecvd2, State2) ++ end + end; + + %% This clause to extract the body when Content-Length is specified +@@ -1449,6 +1454,37 @@ parse_chunk_header(<>, Acc) -> + parse_chunk_header(<<>>, Acc) -> + hexlist_to_integer(lists:reverse(Acc)). + ++process_chunk(NeedBytes, DataRecvd, State) -> ++ {RemChunk, RemData} = split_binary(DataRecvd, NeedBytes), ++ do_trace("Recvd another chunk...~n", []), ++ do_trace("RemData -> ~p~n", [RemData]), ++ case accumulate_response(RemChunk, State) of ++ {error, Reason} -> ++ do_trace("Error accumulating response --> ~p~n", [Reason]), ++ {error, Reason}; ++ #state{} = State_1 -> ++ State_2 = State_1#state{chunk_size=tbd}, ++ parse_11_response(RemData, State_2) ++ end. ++ ++get_more_chunked_data(NeedBytes, Acc, _State) when size(Acc) >= NeedBytes -> ++ Acc; ++get_more_chunked_data(NeedBytes, Acc, #state{socket = Socket} = State) -> ++ do_setopts(Socket, [{active, once}], State), ++ Timeout = get_inac_timeout(State), ++ receive ++ {Type, Socket, Data} when Type =:= tcp ; Type =:= ssl -> ++ get_more_chunked_data(NeedBytes, <>, State); ++ {Type, Socket} = Msg ++ when Type =:= tcp_closed ; Type =:= tcp_error ; ++ Type =:= ssl_closed ; Type =:= ssl_error -> ++ self() ! Msg, ++ Acc ++ after Timeout -> ++ self() ! timeout, ++ Acc ++ end. ++ + is_whitespace($\s) -> true; + is_whitespace($\r) -> true; + is_whitespace($\n) -> true; --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0001-replicator_redirect_atts.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0001-replicator_redirect_atts.patch @@ -0,0 +1,26 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_att.erl b/couchdb-1.0.1/src/couchdb/couch_rep_att.erl +index 28b8945..3c09b90 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_att.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_att.erl +@@ -106,7 +106,7 @@ validate_headers(_Req, 200, Headers) -> + MochiHeaders = mochiweb_headers:make(Headers), + {ok, mochiweb_headers:get_value("Content-Encoding", MochiHeaders)}; + validate_headers(Req, Code, Headers) when Code > 299, Code < 400 -> +- Url = mochiweb_headers:get_value("Location",mochiweb_headers:make(Headers)), ++ Url = couch_rep_httpc:redirect_url(Headers, Req#http_db.url), + NewReq = couch_rep_httpc:redirected_request(Req, Url), + {ibrowse_req_id, ReqId} = couch_rep_httpc:request(NewReq), + receive {ibrowse_async_headers, ReqId, NewCode, NewHeaders} -> +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl b/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl +index 768d88a..ff25e4d 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl +@@ -15,7 +15,7 @@ + -include("../ibrowse/ibrowse.hrl"). + + -export([db_exists/1, db_exists/2, full_url/1, request/1, redirected_request/2, +- spawn_worker_process/1, spawn_link_worker_process/1]). ++ redirect_url/2, spawn_worker_process/1, spawn_link_worker_process/1]). + + request(#http_db{} = Req) -> + do_request(Req). --- couchdb-1.0.1.orig/debian/patches/moz0002-libmozjs.patch +++ couchdb-1.0.1/debian/patches/moz0002-libmozjs.patch @@ -0,0 +1,162 @@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//configure.ac couchdb-1.0.1.new//configure.ac +--- couchdb-1.0.1//configure.ac 2011-06-14 16:56:24.015348132 +0100 ++++ couchdb-1.0.1.new//configure.ac 2011-06-14 17:00:42.798520190 +0100 +@@ -26,6 +26,8 @@ + AC_ENABLE_SHARED + AC_DISABLE_STATIC + ++PKG_PROG_PKG_CONFIG ++ + AC_PROG_CC + AC_PROG_LIBTOOL + AC_PROG_LN_S +@@ -56,28 +58,38 @@ + ERLANG_FLAGS="$ERLANG_FLAGS -I/opt/local/lib/erlang/usr/include" + ]) + +-AC_ARG_WITH([js-include], [AC_HELP_STRING([--with-js-include=PATH], +- [set PATH to the SpiderMonkey include directory])], [ +- JS_INCLUDE="$withval" +- JS_FLAGS="-I$JS_INCLUDE" +-], [ +- JS_FLAGS="-I/usr/include" +- JS_FLAGS="$JS_FLAGS -I/usr/include/js" +- JS_FLAGS="$JS_FLAGS -I/usr/include/mozjs" +- JS_FLAGS="$JS_FLAGS -I/usr/local/include" +- JS_FLAGS="$JS_FLAGS -I/opt/local/include" +- JS_FLAGS="$JS_FLAGS -I/usr/local/include/js" +- JS_FLAGS="$JS_FLAGS -I/opt/local/include/js" +-]) ++PKG_CHECK_EXISTS([mozjs185], JS_LIB_BASE=mozjs185,) ++if test "x$JS_LIB_BASE" != "x" ; then ++ PKG_CHECK_MODULES(JS, $JS_LIB_BASE) ++ JS_LIB_DIR=`$PKG_CONFIG --variable=libdir $JS_LIB_BASE` ++ JS_LIB_FLAGS="-L$JS_LIB_DIR" ++fi ++ ++if test "x$JS_LIB_BASE" == "x" ; then ++ AC_ARG_WITH([js-include], [AC_HELP_STRING([--with-js-include=PATH], ++ [set PATH to the SpiderMonkey include directory])], [ ++ JS_INCLUDE="$withval" ++ JS_CFLAGS="-I$JS_INCLUDE" ++ ], [ ++ JS_CFLAGS="-I/usr/include" ++ JS_CFLAGS="$JS_CFLAGS -I/usr/include/js" ++ JS_CFLAGS="$JS_CFLAGS -I/usr/include/mozjs" ++ JS_CFLAGS="$JS_CFLAGS -I/usr/local/include" ++ JS_CFLAGS="$JS_CFLAGS -I/opt/local/include" ++ JS_CFLAGS="$JS_CFLAGS -I/usr/local/include/js" ++ JS_CFLAGS="$JS_CFLAGS -I/opt/local/include/js" ++ ]) ++ ++ AC_ARG_WITH([js-lib], [AC_HELP_STRING([--with-js-lib=PATH], ++ [set PATH to the SpiderMonkey library directory])], ++ [ ++ JS_LIB_DIR=$withval ++ JS_LIB_FLAGS="-L$withval" ++ ], [ ++ JS_LIB_DIR= ++ ]) ++fi + +-AC_ARG_WITH([js-lib], [AC_HELP_STRING([--with-js-lib=PATH], +- [set PATH to the SpiderMonkey library directory])], +- [ +- JS_LIB_DIR=$withval +- JS_LIB_FLAGS="-L$withval" +-], [ +- JS_LIB_DIR= +-]) + AC_SUBST(JS_LIB_DIR) + + AC_ARG_VAR([ERLC_FLAGS], [general flags to prepend to ERLC_FLAGS]) +@@ -88,7 +100,7 @@ + + case "$(uname -s)" in + CYGWIN*) +- FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_FLAGS -DXP_WIN $FLAGS" ++ FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_CFLAGS -DXP_WIN $FLAGS" + CPPFLAGS="$FLAGS $CPPFLAGS" + LDFLAGS="$FLAGS $LDFLAGS" + IS_WINDOWS="TRUE" +@@ -99,7 +111,7 @@ + ;; + *) + # XP_UNIX required for jsapi.h and has been tested to work on Linux and Darwin. +- FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_FLAGS -DXP_UNIX $FLAGS" ++ FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_CFLAGS -DXP_UNIX $FLAGS" + CPPFLAGS="$FLAGS $CPPFLAGS" + # manually linking libm is requred for FreeBSD 7.0 + LDFLAGS="$FLAGS -lm $LDFLAGS" +@@ -108,13 +120,18 @@ + + AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS = xTRUE]) + +-AC_CHECK_LIB([mozjs], [JS_NewContext], [JS_LIB_BASE=mozjs], [ +- AC_CHECK_LIB([js], [JS_NewContext], [JS_LIB_BASE=js], [ +- AC_CHECK_LIB([js3250], [JS_NewContext], [JS_LIB_BASE=js3250], [ +- AC_CHECK_LIB([js32], [JS_NewContext], [JS_LIB_BASE=js32], [ +- AC_MSG_ERROR([Could not find the js library. ++if test "x$JS_LIB_BASE" == "x" ; then ++ AC_CHECK_LIB([mozjs], [JS_NewContext], [JS_LIB_BASE=mozjs], [ ++ AC_CHECK_LIB([js], [JS_NewContext], [JS_LIB_BASE=js], [ ++ AC_CHECK_LIB([js3250], [JS_NewContext], [JS_LIB_BASE=js3250], [ ++ AC_CHECK_LIB([js32], [JS_NewContext], [JS_LIB_BASE=js32], [ ++ AC_MSG_ERROR([Could not find the js library. + +-Is the Mozilla SpiderMonkey library installed?])])])])]) ++ Is the Mozilla SpiderMonkey library installed?])])])])]) ++ ++ JS_LIBS=-l$JS_LIB_BASE ++ AC_SUBST(JS_LIBS) ++fi + + AC_SUBST(JS_LIB_BASE) + +@@ -136,7 +153,6 @@ + AC_CHECK_LIB([$JS_LIB_BASE], [JS_DestroyScript],, + AC_DEFINE([HAVE_SCRIPT_AS_OBJECT], [1], [Define whether scripts are JSObjects])) + +- + if test x${IS_WINDOWS} = xTRUE; then + if test -f "$JS_LIB_DIR/$JS_LIB_BASE.dll"; then + # seamonkey 1.7- build layout on Windows +@@ -180,8 +196,6 @@ + fi + fi + +-JSLIB=-l$JS_LIB_BASE +- + AC_CHECK_HEADER([jsapi.h], [], [ + AC_CHECK_HEADER([js/jsapi.h], + [ +@@ -193,8 +207,6 @@ + Are the Mozilla SpiderMonkey headers installed?]) + ])]) + +-AC_SUBST(JSLIB) +- + AC_LANG_PUSH(C) + OLD_CFLAGS="$CFLAGS" + CFLAGS="-Werror-implicit-function-declaration" +@@ -205,7 +217,7 @@ + )], + AC_DEFINE([USE_JS_SETOPCB], [], [Use new JS_SetOperationCallback]) + ) +-CFLAGS="$JS_FLAGS" ++CFLAGS="$JS_CFLAGS" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/couchdb/priv/Makefile.am couchdb-1.0.1.new//src/couchdb/priv/Makefile.am +--- couchdb-1.0.1//src/couchdb/priv/Makefile.am 2010-06-15 17:27:22.000000000 +0100 ++++ couchdb-1.0.1.new//src/couchdb/priv/Makefile.am 2011-06-14 16:56:24.935359379 +0100 +@@ -48,7 +48,7 @@ + couchjs_SOURCES = $(COUCHJS_SRCS) + couchjs_LDFLAGS = $(CURL_LDFLAGS) + couchjs_CFLAGS = -D_BSD_SOURCE $(CURL_CFLAGS) +-couchjs_LDADD = $(CURL_LDFLAGS) @JSLIB@ ++couchjs_LDADD = $(CURL_LDFLAGS) @JS_LIBS@ + + couchpriv_DATA = stat_descriptions.cfg + couchpriv_PROGRAMS = couchspawnkillable --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0002-replicator_db_proxy_fix.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0002-replicator_db_proxy_fix.patch @@ -0,0 +1,25 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl b/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl +index 1336575..2371228 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl +@@ -73,6 +73,7 @@ db_exists(Req, CanonicalUrl, CreateDB) -> + #http_db{ + auth = Auth, + headers = Headers0, ++ options = Options, + url = Url + } = Req, + HeadersFun = fun(Method) -> +@@ -85,10 +86,10 @@ db_exists(Req, CanonicalUrl, CreateDB) -> + end, + case CreateDB of + true -> +- catch ibrowse:send_req(Url, HeadersFun(put), put); ++ catch ibrowse:send_req(Url, HeadersFun(put), put, [], Options); + _Else -> ok + end, +- case catch ibrowse:send_req(Url, HeadersFun(head), head) of ++ case catch ibrowse:send_req(Url, HeadersFun(head), head, [], Options) of + {ok, "200", _, _} -> + Req#http_db{url = CanonicalUrl}; + {ok, "301", RespHeaders, _} -> --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0004-changes_redirect_2.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0004-changes_redirect_2.patch @@ -0,0 +1,17 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +index 65a67ba..2d55778 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +@@ -258,9 +258,10 @@ handle_next_changes(_From, State) -> + handle_headers(200, _, State) -> + maybe_stream_next(State), + {noreply, State}; +-handle_headers(301, Hdrs, State) -> ++handle_headers(301, Hdrs, #state{init_args = InitArgs} = State) -> + catch ibrowse:stop_worker_process(State#state.conn), +- Url = mochiweb_headers:get_value("Location", mochiweb_headers:make(Hdrs)), ++ [_, #http_db{url = Url1} | _] = InitArgs, ++ Url = couch_rep_httpc:redirect_url(Hdrs, Url1), + %% TODO use couch_httpc:request instead of start_http_request + {Pid, ReqId} = start_http_request(Url), + {noreply, State#state{conn=Pid, reqid=ReqId}}; --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0005-changes_proxy.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0005-changes_proxy.patch @@ -0,0 +1,77 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +index 2d55778..958ee82 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +@@ -45,7 +45,7 @@ next(Server) -> + stop(Server) -> + gen_server:call(Server, stop). + +-init([_Parent, #http_db{}=Source, Since, PostProps] = Args) -> ++init([Parent, #http_db{}=Source, Since, PostProps]) -> + process_flag(trap_exit, true), + Feed = case couch_util:get_value(<<"continuous">>, PostProps, false) of + false -> +@@ -88,6 +88,7 @@ init([_Parent, #http_db{}=Source, Since, PostProps] = Args) -> + headers = Source#http_db.headers -- [{"Accept-Encoding", "gzip"}] + }, + {ibrowse_req_id, ReqId} = couch_rep_httpc:request(Req), ++ Args = [Parent, Req, Since, PostProps], + + receive + {ibrowse_async_headers, ReqId, "200", _} -> +@@ -96,10 +97,13 @@ init([_Parent, #http_db{}=Source, Since, PostProps] = Args) -> + {ibrowse_async_headers, ReqId, Code, Hdrs} when Code=="301"; Code=="302" -> + catch ibrowse:stop_worker_process(Pid), + Url2 = couch_rep_httpc:redirect_url(Hdrs, Req#http_db.url), +- %% TODO use couch_httpc:request instead of start_http_request +- {Pid2, ReqId2} = start_http_request(Url2), ++ Req2 = couch_rep_httpc:redirected_request(Req, Url2), ++ Pid2 = couch_rep_httpc:spawn_link_worker_process(Req2), ++ Req3 = Req2#http_db{conn = Pid2}, ++ {ibrowse_req_id, ReqId2} = couch_rep_httpc:request(Req3), ++ Args2 = [Parent, Req3, Since, PostProps], + receive {ibrowse_async_headers, ReqId2, "200", _} -> +- {ok, #state{conn=Pid2, last_seq=Since, reqid=ReqId2, init_args=Args}} ++ {ok, #state{conn=Pid2, last_seq=Since, reqid=ReqId2, init_args=Args2}} + after 30000 -> + {stop, changes_timeout} + end; +@@ -258,13 +262,17 @@ handle_next_changes(_From, State) -> + handle_headers(200, _, State) -> + maybe_stream_next(State), + {noreply, State}; +-handle_headers(301, Hdrs, #state{init_args = InitArgs} = State) -> ++handle_headers(Code, Hdrs, #state{init_args = InitArgs} = State) ++ when Code =:= 301 ; Code =:= 302 -> + catch ibrowse:stop_worker_process(State#state.conn), +- [_, #http_db{url = Url1} | _] = InitArgs, ++ [Parent, #http_db{url = Url1} = Source, Since, PostProps] = InitArgs, + Url = couch_rep_httpc:redirect_url(Hdrs, Url1), +- %% TODO use couch_httpc:request instead of start_http_request +- {Pid, ReqId} = start_http_request(Url), +- {noreply, State#state{conn=Pid, reqid=ReqId}}; ++ Source2 = couch_rep_httpc:redirected_request(Source, Url), ++ Pid2 = couch_rep_httpc:spawn_link_worker_process(Source2), ++ Source3 = Source2#http_db{conn = Pid2}, ++ {ibrowse_req_id, ReqId} = couch_rep_httpc:request(Source3), ++ InitArgs2 = [Parent, Source3, Since, PostProps], ++ {noreply, State#state{conn=Pid2, reqid=ReqId, init_args=InitArgs2}}; + handle_headers(Code, Hdrs, State) -> + ?LOG_ERROR("replicator changes feed failed with code ~s and Headers ~n~p", + [Code,Hdrs]), +@@ -374,15 +382,3 @@ maybe_stream_next(#state{complete=false, count=N} = S) when N < ?BUFFER_SIZE -> + ibrowse:stream_next(S#state.reqid); + maybe_stream_next(_) -> + timer:cancel(get(timeout)). +- +-start_http_request(RawUrl) -> +- Url = ibrowse_lib:parse_url(RawUrl), +- {ok, Pid} = ibrowse:spawn_link_worker_process(Url#url.host, Url#url.port), +- Opts = [ +- {stream_to, {self(), once}}, +- {inactivity_timeout, 31000}, +- {response_format, binary} +- ], +- {ibrowse_req_id, Id} = +- ibrowse:send_req_direct(Pid, RawUrl, [], get, [], Opts, infinity), +- {Pid, Id}. --- couchdb-1.0.1.orig/debian/patches/moz0003-spidermonkey1.8.5_autotools.patch +++ couchdb-1.0.1/debian/patches/moz0003-spidermonkey1.8.5_autotools.patch @@ -0,0 +1,19383 @@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//aclocal.m4 couchdb-1.0.1.new//aclocal.m4 +--- couchdb-1.0.1//aclocal.m4 2010-08-11 19:18:50.000000000 +0100 ++++ couchdb-1.0.1.new//aclocal.m4 2011-06-14 18:31:40.993801296 +0100 +@@ -1,4 +1,4 @@ +-# generated automatically by aclocal 1.11 -*- Autoconf -*- ++# generated automatically by aclocal 1.11.1 -*- Autoconf -*- + + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +@@ -13,12 +13,172 @@ + + m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],, +-[m4_warning([this file was generated for autoconf 2.64. ++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'.])]) + ++# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- ++# serial 1 (pkg-config-0.24) ++# ++# Copyright © 2004 Scott James Remnant . ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# PKG_PROG_PKG_CONFIG([MIN-VERSION]) ++# ---------------------------------- ++AC_DEFUN([PKG_PROG_PKG_CONFIG], ++[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) ++m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) ++m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) ++AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) ++AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) ++AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) ++ ++if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then ++ AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) ++fi ++if test -n "$PKG_CONFIG"; then ++ _pkg_min_version=m4_default([$1], [0.9.0]) ++ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) ++ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ PKG_CONFIG="" ++ fi ++fi[]dnl ++])# PKG_PROG_PKG_CONFIG ++ ++# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) ++# ++# Check to see whether a particular set of modules exists. Similar ++# to PKG_CHECK_MODULES(), but does not set variables or print errors. ++# ++# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) ++# only at the first occurence in configure.ac, so if the first place ++# it's called might be skipped (such as if it is within an "if", you ++# have to call PKG_CHECK_EXISTS manually ++# -------------------------------------------------------------- ++AC_DEFUN([PKG_CHECK_EXISTS], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++if test -n "$PKG_CONFIG" && \ ++ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then ++ m4_default([$2], [:]) ++m4_ifvaln([$3], [else ++ $3])dnl ++fi]) ++ ++# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) ++# --------------------------------------------- ++m4_define([_PKG_CONFIG], ++[if test -n "$$1"; then ++ pkg_cv_[]$1="$$1" ++ elif test -n "$PKG_CONFIG"; then ++ PKG_CHECK_EXISTS([$3], ++ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ], ++ [pkg_failed=yes]) ++ else ++ pkg_failed=untried ++fi[]dnl ++])# _PKG_CONFIG ++ ++# _PKG_SHORT_ERRORS_SUPPORTED ++# ----------------------------- ++AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi[]dnl ++])# _PKG_SHORT_ERRORS_SUPPORTED ++ ++ ++# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], ++# [ACTION-IF-NOT-FOUND]) ++# ++# ++# Note that if there is a possibility the first call to ++# PKG_CHECK_MODULES might not happen, you should be sure to include an ++# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac ++# ++# ++# -------------------------------------------------------------- ++AC_DEFUN([PKG_CHECK_MODULES], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl ++AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl ++ ++pkg_failed=no ++AC_MSG_CHECKING([for $1]) ++ ++_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) ++_PKG_CONFIG([$1][_LIBS], [libs], [$2]) ++ ++m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS ++and $1[]_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details.]) ++ ++if test $pkg_failed = yes; then ++ AC_MSG_RESULT([no]) ++ _PKG_SHORT_ERRORS_SUPPORTED ++ if test $_pkg_short_errors_supported = yes; then ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` ++ else ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ++ ++ m4_default([$4], [AC_MSG_ERROR( ++[Package requirements ($2) were not met: ++ ++$$1_PKG_ERRORS ++ ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. ++ ++_PKG_TEXT])[]dnl ++ ]) ++elif test $pkg_failed = untried; then ++ AC_MSG_RESULT([no]) ++ m4_default([$4], [AC_MSG_FAILURE( ++[The pkg-config script could not be found or is too old. Make sure it ++is in your PATH or set the PKG_CONFIG environment variable to the full ++path to pkg-config. ++ ++_PKG_TEXT ++ ++To get pkg-config, see .])[]dnl ++ ]) ++else ++ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS ++ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS ++ AC_MSG_RESULT([yes]) ++ $3 ++fi[]dnl ++])# PKG_CHECK_MODULES ++ + # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation +@@ -34,7 +194,7 @@ + [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], [], ++m4_if([$1], [1.11.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl + ]) + +@@ -50,7 +210,7 @@ + # 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])dnl ++[AM_AUTOMAKE_VERSION([1.11.1])dnl + m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl + _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//bin/Makefile.in couchdb-1.0.1.new//bin/Makefile.in +--- couchdb-1.0.1//bin/Makefile.in 2011-06-14 18:31:32.563692902 +0100 ++++ couchdb-1.0.1.new//bin/Makefile.in 2011-06-14 18:31:46.723874971 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -98,6 +98,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -125,7 +126,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -138,6 +140,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -153,6 +156,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -163,6 +169,7 @@ + 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@ +@@ -207,7 +214,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +@@ -244,7 +250,7 @@ + CLEANFILES = $(bin_SCRIPTS) $(dist_man1_MANS) $(noinst_SCRIPTS) + couchdb_command_name = `echo couchdb | sed '$(transform)'` + couchjs_command_name = `echo couchjs | sed '$(transform)'` +-HELP2MAN_OPTION = --no-info --no-discard-stderr --help-option="-h" --version-option="-V" ++HELP2MAN_OPTION = --no-info --help-option="-h" --version-option="-V" + all: all-am + + .SUFFIXES: +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//build-aux/ltmain.sh couchdb-1.0.1.new//build-aux/ltmain.sh +--- couchdb-1.0.1//build-aux/ltmain.sh 2010-08-11 19:18:48.000000000 +0100 ++++ couchdb-1.0.1.new//build-aux/ltmain.sh 2011-06-14 18:31:33.613706395 +0100 +@@ -1,9 +1,9 @@ +-# Generated from ltmain.m4sh. + +-# ltmain.sh (GNU libtool) 2.2.6 ++# libtool (GNU libtool) 2.4 + # Written by Gordon Matzigkeit , 1996 + +-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, ++# 2007, 2008, 2009, 2010 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. + +@@ -32,50 +32,56 @@ + # + # 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 +-# --tag=TAG use configuration variables from tag TAG +-# -v, --verbose print informational messages (default) +-# --version print version information +-# -h, --help print short or long help message ++# --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) ++# --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 ++# 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. ++# 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.2.6 +-# automake: $automake_version +-# autoconf: $autoconf_version ++# host-triplet: $host ++# shell: $SHELL ++# compiler: $LTCC ++# compiler flags: $LTCFLAGS ++# linker: $LD (gnu? $with_gnu_ld) ++# $progname: (GNU libtool) 2.4 Debian-2.4-2ubuntu1 ++# automake: $automake_version ++# autoconf: $autoconf_version + # + # Report bugs to . ++# GNU libtool home page: . ++# General help using GNU software: . + +-PROGRAM=ltmain.sh ++PROGRAM=libtool + PACKAGE=libtool +-VERSION=2.2.6 ++VERSION="2.4 Debian-2.4-2ubuntu1" + TIMESTAMP="" +-package_revision=1.3012 ++package_revision=1.3293 + + # Be Bourne compatible + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +@@ -91,10 +97,15 @@ + 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. +-# Only set LANG and LC_ALL to C if already set. +-# These must not be set unconditionally because not all systems understand +-# e.g. LANG=C (notably SCO). + lt_user_locale= + lt_safe_locale= + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +@@ -107,24 +118,33 @@ + 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"} +-: ${ECHO="echo"} +-: ${EGREP="/usr/bin/grep -E"} +-: ${FGREP="/usr/bin/grep -F"} +-: ${GREP="/usr/bin/grep"} ++test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} ++: ${EGREP="/bin/grep -E"} ++: ${FGREP="/bin/grep -F"} ++: ${GREP="/bin/grep"} + : ${LN_S="ln -s"} + : ${MAKE="make"} + : ${MKDIR="mkdir"} + : ${MV="mv -f"} + : ${RM="rm -f"} +-: ${SED="/opt/local/bin/gsed"} ++: ${SED="/bin/sed"} + : ${SHELL="${CONFIG_SHELL-/bin/sh}"} + : ${Xsed="$SED -e 1s/^X//"} + +@@ -144,6 +164,27 @@ + 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: +@@ -158,33 +199,183 @@ + # those functions but instead duplicate the functionality here. + func_dirname_and_basename () + { +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "X${1}" | $Xsed -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 "X${1}" | $Xsed -e "$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 + } + +-# Generated shell functions inserted here. ++# 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 + +-# 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" ++ # 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: +-# In the unlikely event $progname began with a '-', it would play havoc with +-# func_echo (imagine progname=-n), so we prepend ./ in that case: + func_dirname_and_basename "$progpath" + progname=$func_basename_result +-case $progname in +- -*) progname=./$progname ;; +-esac + + # Make sure we have an absolute path for reexecution: + case $progpath in +@@ -215,6 +406,15 @@ + # 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. +@@ -243,7 +443,7 @@ + # name if it has been set yet. + func_echo () + { +- $ECHO "$progname${mode+: }$mode: $*" ++ $ECHO "$progname: ${opt_mode+$opt_mode: }$*" + } + + # func_verbose arg... +@@ -258,18 +458,25 @@ + : + } + ++# 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${mode+: }$mode: "${1+"$@"} 1>&2 ++ $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${mode+: }$mode: warning: "${1+"$@"} 1>&2 ++ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +@@ -326,9 +533,9 @@ + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop +- my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` ++ my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done +- my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` ++ my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do +@@ -378,7 +585,7 @@ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + +- $ECHO "X$my_tmpdir" | $Xsed ++ $ECHO "$my_tmpdir" + } + + +@@ -392,7 +599,7 @@ + { + case $1 in + *[\\\`\"\$]*) +- func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; ++ func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac +@@ -419,7 +626,7 @@ + { + case $1 in + *[\\\`\"]*) +- my_arg=`$ECHO "X$1" | $Xsed \ ++ my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; +@@ -488,15 +695,39 @@ + 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 () + { +- $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { ++ $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/ +@@ -509,22 +740,28 @@ + # Echo short help message to standard output and exit. + func_usage () + { +- $SED -n '/^# Usage:/,/# -h/ { ++ $opt_debug ++ ++ $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" +- $ECHO ++ echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? + } + +-# func_help +-# Echo long help message to standard output and 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'* +@@ -537,8 +774,15 @@ + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + p +- }' < "$progpath" +- exit $? ++ d ++ } ++ /^# .* home page:/b print ++ /^# General help using/b print ++ ' < "$progpath" ++ ret=$? ++ if test -z "$1"; then ++ exit $ret ++ fi + } + + # func_missing_arg argname +@@ -546,63 +790,106 @@ + # exit_cmd. + func_missing_arg () + { +- func_error "missing argument for $1" ++ $opt_debug ++ ++ func_error "missing argument for $1." + exit_cmd=exit + } + +-exit_cmd=: + ++# 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=: + + + +-# Check that we have a working $ECHO. +-if test "X$1" = X--no-reexec; then +- # Discard the --no-reexec flag, and continue. +- shift +-elif test "X$1" = X--fallback-echo; then +- # Avoid inline document here, it may be left over +- : +-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then +- # Yippee, $ECHO works! +- : +-else +- # Restart under the correct shell, and then maybe $ECHO will work. +- exec $SHELL "$progpath" --no-reexec ${1+"$@"} +-fi + +-if test "X$1" = X--fallback-echo; then +- # used as fallback echo +- shift +- cat </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. +@@ -636,16 +923,16 @@ + # Display the features supported by this script. + func_features () + { +- $ECHO "host: $host" ++ echo "host: $host" + if test "$build_libtool_libs" = yes; then +- $ECHO "enable shared libraries" ++ echo "enable shared libraries" + else +- $ECHO "disable shared libraries" ++ echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then +- $ECHO "enable static libraries" ++ echo "enable static libraries" + else +- $ECHO "disable static libraries" ++ echo "disable static libraries" + fi + + exit $? +@@ -692,117 +979,204 @@ + esac + } + +-# Parse options once, thoroughly. This comes as soon as possible in +-# the script to make things like `libtool --version' happen quickly. ++# 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 + +- # 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 ++ exit $EXIT_MISMATCH ++ fi ++} + +- # Parse non-mode specific arguments: +- while test "$#" -gt 0; do ++ ++# 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_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 +- --config) func_config ;; +- +- --debug) preserve_args="$preserve_args $opt" ++ --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" +- opt_debug='set -x' + $opt_debug + ;; +- +- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break +- execute_dlfiles="$execute_dlfiles $1" +- shift ++ --dry-run|--dryrun|-n) ++ opt_dry_run=: + ;; +- +- --dry-run | -n) opt_dry_run=: ;; +- --features) func_features ;; +- --finish) mode="finish" ;; +- +- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break +- case $1 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 +- +- mode="$1" ++ --config) ++ opt_config=: ++func_config ++ ;; ++ --dlopen|-dlopen) ++ optarg="$1" ++ opt_dlopen="${opt_dlopen+$opt_dlopen ++}$optarg" + shift + ;; +- + --preserve-dup-deps) +- opt_duplicate_deps=: ;; +- +- --quiet|--silent) preserve_args="$preserve_args $opt" +- opt_silent=: ++ opt_preserve_dup_deps=: + ;; +- +- --verbose| -v) preserve_args="$preserve_args $opt" ++ --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" + ;; +- +- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break +- preserve_args="$preserve_args $opt $1" +- func_enable_tag "$1" # tagname is set here ++ --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: +- -dlopen=*|--mode=*|--tag=*) +- func_opt_split "$opt" +- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} ++ --*=*) ++ func_split_long_opt "$opt" ++ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + +- -\?|-h) func_usage ;; +- --help) opt_help=: ;; +- --version) func_version ;; +- +- -*) func_fatal_help "unrecognized option \`$opt'" ;; +- +- *) nonopt="$opt" +- break ++ # 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*) +@@ -810,82 +1184,44 @@ + opt_duplicate_compiler_generated_deps=: + ;; + *) +- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ++ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + +- # Having warned about all mis-specified options, bail out if +- # anything was wrong. +- $exit_cmd $EXIT_FAILURE +-} ++ $opt_help || { ++ # Sanity checks first: ++ func_check_version_match + +-# 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 ++ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ++ func_fatal_configuration "not configured to build any kind of library" + fi + +- exit $EXIT_MISMATCH +- fi +-} +- +- +-## ----------- ## +-## Main. ## +-## ----------- ## ++ # Darwin sucks ++ eval std_shrext=\"$shrext_cmds\" + +-$opt_help || { +- # Sanity checks first: +- func_check_version_match ++ # 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 + +- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then +- func_fatal_configuration "not configured to build any kind of library" +- fi ++ # Change the help message to a mode-specific one. ++ generic_help="$help" ++ help="Try \`$progname --help --mode=$opt_mode' for more information." ++ } + +- test -z "$mode" && func_fatal_error "error: you must specify a MODE." + ++ # Bail if the options were screwed ++ $exit_cmd $EXIT_FAILURE ++} + +- # Darwin sucks +- eval std_shrext=\"$shrext_cmds\" + + +- # Only execute mode is allowed to have -dlopen flags. +- if test -n "$execute_dlfiles" && test "$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=$mode' for more information." +-} + ++## ----------- ## ++## Main. ## ++## ----------- ## + + # func_lalib_p file + # True iff FILE is a libtool `.la' library or `.lo' object file. +@@ -950,12 +1286,9 @@ + # temporary ltwrapper_script. + func_ltwrapper_scriptname () + { +- func_ltwrapper_scriptname_result="" +- if func_ltwrapper_executable_p "$1"; then +- func_dirname_and_basename "$1" "" "." +- func_stripname '' '.exe' "$func_basename_result" +- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +- fi ++ 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 +@@ -1001,6 +1334,37 @@ + } + + ++# 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. +@@ -1013,13 +1377,15 @@ + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do +- func_quote_for_eval "$arg" +- CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ 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 "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; ++ " $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. + *) +@@ -1030,11 +1396,13 @@ + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. +- func_quote_for_eval "$arg" +- CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ 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 "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ++ " $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. +@@ -1097,6 +1465,486 @@ + } + } + ++ ++################################################## ++# 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 () + { +@@ -1137,12 +1985,12 @@ + ;; + + -pie | -fpie | -fPIE) +- pie_flag="$pie_flag $arg" ++ func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) +- later="$later $arg" ++ func_append later " $arg" + continue + ;; + +@@ -1163,15 +2011,14 @@ + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" +- func_quote_for_eval "$arg" +- lastarg="$lastarg $func_quote_for_eval_result" ++ func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. +- base_compile="$base_compile $lastarg" ++ func_append base_compile " $lastarg" + continue + ;; + +@@ -1187,8 +2034,7 @@ + esac # case $arg_mode + + # Aesthetically quote the previous argument. +- func_quote_for_eval "$lastarg" +- base_compile="$base_compile $func_quote_for_eval_result" ++ func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in +@@ -1213,7 +2059,7 @@ + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ +- *.[fF][09]? | *.for | *.java | *.obj | *.sx) ++ *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; +@@ -1288,7 +2134,7 @@ + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then +- output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} ++ output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= +@@ -1319,17 +2165,16 @@ + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi +- removelist="$removelist $output_obj" ++ func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist +- removelist="$removelist $lockfile" ++ func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + +- if test -n "$fix_srcfile_path"; then +- eval srcfile=\"$fix_srcfile_path\" +- fi ++ 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 + +@@ -1349,7 +2194,7 @@ + + if test -z "$output_obj"; then + # Place PIC objects in $objdir +- command="$command -o $lobj" ++ func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ +@@ -1396,11 +2241,11 @@ + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then +- command="$command -o $obj" ++ func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. +- command="$command$suppress_output" ++ func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + +@@ -1445,13 +2290,13 @@ + } + + $opt_help || { +-test "$mode" = compile && func_mode_compile ${1+"$@"} ++ test "$opt_mode" = compile && func_mode_compile ${1+"$@"} + } + + func_mode_help () + { + # We need to display help for each of the modes. +- case $mode in ++ case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. +@@ -1482,10 +2327,11 @@ + + -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 building PIC objects only +- -prefer-non-pic try to building non-PIC objects only ++ -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. +@@ -1538,7 +2384,7 @@ + + The following components of INSTALL-COMMAND are treated specially: + +- -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation ++ -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)." +@@ -1558,6 +2404,8 @@ + + -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) +@@ -1586,6 +2434,11 @@ + -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. + +@@ -1619,18 +2472,44 @@ + ;; + + *) +- func_fatal_help "invalid operation mode \`$mode'" ++ func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + +- $ECHO ++ echo + $ECHO "Try \`$progname --help' for more information about other modes." +- +- exit $? + } + +- # Now that we've collected a possible --mode arg, show help if necessary +- $opt_help && func_mode_help ++# 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... +@@ -1643,13 +2522,16 @@ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. +- for file in $execute_dlfiles; do ++ 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" +@@ -1671,7 +2553,7 @@ + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then +- dir="$dir/$objdir" ++ func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" +@@ -1712,7 +2594,7 @@ + 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 +@@ -1728,8 +2610,7 @@ + ;; + esac + # Quote arguments (to preserve shell metacharacters). +- func_quote_for_eval "$file" +- args="$args $func_quote_for_eval_result" ++ func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then +@@ -1754,29 +2635,66 @@ + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" +- $ECHO "export $shlibpath_var" ++ echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi + } + +-test "$mode" = execute && func_mode_execute ${1+"$@"} ++test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + + # func_mode_finish arg... + func_mode_finish () + { + $opt_debug +- libdirs="$nonopt" ++ libs= ++ libdirs= + admincmds= + +- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then +- for dir +- do +- libdirs="$libdirs $dir" +- done ++ 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. +@@ -1786,7 +2704,7 @@ + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" +- $opt_dry_run || eval "$cmds" || admincmds="$admincmds ++ $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done +@@ -1795,53 +2713,55 @@ + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + +- $ECHO "X----------------------------------------------------------------------" | $Xsed +- $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\" ++ 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 " - 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'" ++ 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 +- $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 "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS + } + +-test "$mode" = finish && func_mode_finish ${1+"$@"} ++test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + + # func_mode_install arg... +@@ -1852,7 +2772,7 @@ + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. +- $ECHO "X$nonopt" | $GREP shtool >/dev/null; then ++ case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " +@@ -1866,7 +2786,12 @@ + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" +- install_prog="$install_prog$func_quote_for_eval_result" ++ 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= +@@ -1876,10 +2801,12 @@ + install_type= + isdir=no + stripme= ++ no_mode=: + for arg + do ++ arg2= + if test -n "$dest"; then +- files="$files $dest" ++ func_append files " $dest" + dest=$arg + continue + fi +@@ -1887,10 +2814,9 @@ + case $arg in + -d) isdir=yes ;; + -f) +- case " $install_prog " in +- *[\\\ /]cp\ *) ;; +- *) prev=$arg ;; +- esac ++ if $install_cp; then :; else ++ prev=$arg ++ fi + ;; + -g | -m | -o) + prev=$arg +@@ -1904,6 +2830,10 @@ + *) + # 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 +@@ -1914,7 +2844,11 @@ + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" +- install_prog="$install_prog $func_quote_for_eval_result" ++ 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" && \ +@@ -1923,6 +2857,13 @@ + 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" +@@ -1977,10 +2918,13 @@ + case $file in + *.$libext) + # Do the static libraries later. +- staticlibs="$staticlibs $file" ++ 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" +@@ -1994,23 +2938,23 @@ + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; +- *) current_libdirs="$current_libdirs $libdir" ;; ++ *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; +- *) future_libdirs="$future_libdirs $libdir" ;; ++ *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" +- dir="$dir$objdir" ++ 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 "X$destdir" | $Xsed -e "s%$libdir\$%%"` ++ 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 +@@ -2023,9 +2967,9 @@ + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. +- relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else +- relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" +@@ -2043,7 +2987,7 @@ + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. +- func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ ++ func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in +@@ -2083,7 +3027,7 @@ + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. +- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ++ test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) +@@ -2183,7 +3127,7 @@ + if test -f "$lib"; then + func_source "$lib" + fi +- libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test ++ 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 +@@ -2202,7 +3146,7 @@ + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. +- relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` ++ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" +@@ -2221,7 +3165,7 @@ + } + else + # Install the binary that we compiled earlier. +- file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` ++ file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + +@@ -2280,7 +3224,7 @@ + fi + } + +-test "$mode" = install && func_mode_install ${1+"$@"} ++test "$opt_mode" = install && func_mode_install ${1+"$@"} + + + # func_generate_dlsyms outputname originator pic_p +@@ -2323,6 +3267,22 @@ + 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. */\ + " + +@@ -2332,10 +3292,11 @@ + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. +- progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do +- func_verbose "extracting global C symbols from \`$progfile'" +- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" ++ 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 +@@ -2371,7 +3332,7 @@ + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in +- *cygwin | *mingw* | *cegcc* ) ++ *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; +@@ -2384,10 +3345,52 @@ + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" +- $opt_dry_run || { +- eval '$ECHO ": $name " >> "$nlist"' +- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" +- } ++ 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 . ++ $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 || { +@@ -2415,36 +3418,19 @@ + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else +- $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" ++ echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + +- $ECHO >> "$output_objdir/$my_dlsyms" "\ ++ echo >> "$output_objdir/$my_dlsyms" "\ + + /* The mapping between symbol names and symbols. */ + typedef struct { + const char *name; + void *address; + } lt_dlsymlist; +-" +- case $host in +- *cygwin* | *mingw* | *cegcc* ) +- $ECHO >> "$output_objdir/$my_dlsyms" "\ +-/* DATA imports from DLLs on WIN32 con't be const, because +- runtime relocations are performed -- see ld's documentation +- on pseudo-relocs. */" +- lt_dlsym_const= ;; +- *osf5*) +- echo >> "$output_objdir/$my_dlsyms" "\ +-/* This system does not cope well with relocations in const data */" +- lt_dlsym_const= ;; +- *) +- lt_dlsym_const=const ;; +- esac +- +- $ECHO >> "$output_objdir/$my_dlsyms" "\ +-extern $lt_dlsym_const lt_dlsymlist ++extern LT_DLSYM_CONST lt_dlsymlist + lt_${my_prefix}_LTX_preloaded_symbols[]; +-$lt_dlsym_const lt_dlsymlist ++LT_DLSYM_CONST lt_dlsymlist + lt_${my_prefix}_LTX_preloaded_symbols[] = + {\ + { \"$my_originator\", (void *) 0 }," +@@ -2457,7 +3443,7 @@ + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac +- $ECHO >> "$output_objdir/$my_dlsyms" "\ ++ echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} + }; + +@@ -2500,7 +3486,7 @@ + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; +- *) symtab_cflags="$symtab_cflags $arg" ;; ++ *) func_append symtab_cflags " $arg" ;; + esac + done + +@@ -2515,16 +3501,16 @@ + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then +- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` +- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ 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 "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` +- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) +- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` +- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; +@@ -2538,8 +3524,8 @@ + # really was required. + + # Nullify the symbol file. +- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` +- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` ++ compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi + } + +@@ -2549,6 +3535,7 @@ + # 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 +@@ -2559,9 +3546,11 @@ + 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 pe-i386(.*architecture: i386)?' >/dev/null ; then +- win32_nmres=`eval $NM -f posix -A $1 | ++ $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 /{ +@@ -2590,6 +3579,131 @@ + $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 +@@ -2598,7 +3712,18 @@ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" +- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' ++ 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 +@@ -2669,7 +3794,7 @@ + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ +@@ -2684,25 +3809,30 @@ + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ 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_part1 [arg=no] ++# func_emit_wrapper [arg=no] + # +-# Emit the first part of a libtool wrapper script on stdout. +-# For more information, see the description associated with +-# func_emit_wrapper(), below. +-func_emit_wrapper_part1 () +-{ +- func_emit_wrapper_part1_arg1=no +- if test -n "$1" ; then +- func_emit_wrapper_part1_arg1=$1 +- fi ++# 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 +@@ -2718,7 +3848,6 @@ + + # 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='$sed_quote_subst' + + # Be Bourne compatible +@@ -2749,31 +3878,132 @@ + else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then +- ECHO=\"$qecho\" +- file=\"\$0\" +- # Make sure echo works. +- if test \"X\$1\" = X--no-reexec; then +- # Discard the --no-reexec flag, and continue. +- shift +- elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then +- # Yippee, \$ECHO works! +- : +- else +- # Restart under the correct shell, and then maybe \$ECHO will work. +- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} +- fi +- fi\ ++ 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 () ++{ + " +- $ECHO "\ ++ 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 () ++{ ++ for lt_wr_arg ++ do ++ case \$lt_wr_arg in ++ --lt-*) ;; ++ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; ++ esac ++ shift ++ done ++ func_exec_program_core \${1+\"\$@\"} ++} ++ ++ # Parse options ++ func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. +- thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` ++ 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'\` ++ file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do +- destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` ++ destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then +@@ -2783,30 +4013,13 @@ + esac + fi + +- file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` +- file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` ++ file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done +-" +-} +-# end: func_emit_wrapper_part1 +- +-# func_emit_wrapper_part2 [arg=no] +-# +-# Emit the second part of a libtool wrapper script on stdout. +-# For more information, see the description associated with +-# func_emit_wrapper(), below. +-func_emit_wrapper_part2 () +-{ +- func_emit_wrapper_part2_arg1=no +- if test -n "$1" ; then +- func_emit_wrapper_part2_arg1=$1 +- fi +- +- $ECHO "\ + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. +- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 ++ 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 +@@ -2814,7 +4027,7 @@ + fi + # remove .libs from thisdir + case \"\$thisdir\" in +- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; ++ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi +@@ -2869,6 +4082,18 @@ + + 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 "\ +@@ -2877,253 +4102,28 @@ + + # 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 \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` ++ $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var + " + fi + +- # fixup the dll searchpath if we need to. +- if test -n "$dllsearchpath"; then +- $ECHO "\ +- # Add the dll search path components to the executable PATH +- PATH=$dllsearchpath:\$PATH +-" +- fi +- + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +-" +- case $host in +- # Backslashes separate directories on plain windows +- *-*-mingw | *-*-os2* | *-cegcc*) +- $ECHO "\ +- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +-" +- ;; +- +- *) +- $ECHO "\ +- exec \"\$progdir/\$program\" \${1+\"\$@\"} +-" +- ;; +- esac +- $ECHO "\ +- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 +- exit 1 ++ 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 ++ \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi + fi\ + " + } +-# end: func_emit_wrapper_part2 +- +- +-# 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=no +- if test -n "$1" ; then +- func_emit_wrapper_arg1=$1 +- fi +- +- # split this up so that func_emit_cwrapperexe_src +- # can call each part independently. +- func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" +- func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" +-} +- +- +-# func_to_host_path arg +-# +-# Convert paths to host format when used with build tools. +-# Intended for use with "native" mingw (where libtool itself +-# is running under the msys shell), or in the following cross- +-# build environments: +-# $build $host +-# mingw (msys) mingw [e.g. native] +-# cygwin mingw +-# *nix + wine mingw +-# where wine is equipped with the `winepath' executable. +-# In the native mingw case, the (msys) shell automatically +-# converts paths for any non-msys applications it launches, +-# but that facility isn't available from inside the cwrapper. +-# Similar accommodations are necessary for $host mingw and +-# $build cygwin. Calling this function does no harm for other +-# $host/$build combinations not listed above. +-# +-# ARG is the path (on $build) that should be converted to +-# the proper representation for $host. The result is stored +-# in $func_to_host_path_result. +-func_to_host_path () +-{ +- func_to_host_path_result="$1" +- if test -n "$1" ; then +- case $host in +- *mingw* ) +- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' +- case $build in +- *mingw* ) # actually, msys +- # awkward: cmd appends spaces to result +- lt_sed_strip_trailing_spaces="s/[ ]*\$//" +- func_to_host_path_tmp1=`( cmd //c echo "$1" |\ +- $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` +- func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- *cygwin* ) +- func_to_host_path_tmp1=`cygpath -w "$1"` +- func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- * ) +- # 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_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` +- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then +- func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- else +- # Allow warning below. +- func_to_host_path_result="" +- fi +- ;; +- esac +- if test -z "$func_to_host_path_result" ; then +- func_error "Could not determine host path corresponding to" +- func_error " '$1'" +- func_error "Continuing, but uninstalled executables may not work." +- # Fallback: +- func_to_host_path_result="$1" +- fi +- ;; +- esac +- fi +-} +-# end: func_to_host_path + +-# func_to_host_pathlist arg +-# +-# Convert pathlists to host format when used with build tools. +-# See func_to_host_path(), above. This function supports the +-# following $build/$host combinations (but does no harm for +-# combinations not listed here): +-# $build $host +-# mingw (msys) mingw [e.g. native] +-# cygwin mingw +-# *nix + wine mingw +-# +-# 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. +-# +-# ARG is a pathlist (on $build) that should be converted to +-# the proper representation on $host. The result is stored +-# in $func_to_host_pathlist_result. +-func_to_host_pathlist () +-{ +- func_to_host_pathlist_result="$1" +- if test -n "$1" ; then +- case $host in +- *mingw* ) +- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' +- # 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_to_host_pathlist_tmp2="$1" +- # Once set for this call, this variable should not be +- # reassigned. It is used in tha fallback case. +- func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ +- $SED -e 's|^:*||' -e 's|:*$||'` +- case $build in +- *mingw* ) # Actually, msys. +- # Awkward: cmd appends spaces to result. +- lt_sed_strip_trailing_spaces="s/[ ]*\$//" +- func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ +- $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` +- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- *cygwin* ) +- func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` +- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- * ) +- # unfortunately, winepath doesn't convert pathlists +- func_to_host_pathlist_result="" +- func_to_host_pathlist_oldIFS=$IFS +- IFS=: +- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do +- IFS=$func_to_host_pathlist_oldIFS +- if test -n "$func_to_host_pathlist_f" ; then +- func_to_host_path "$func_to_host_pathlist_f" +- if test -n "$func_to_host_path_result" ; then +- if test -z "$func_to_host_pathlist_result" ; then +- func_to_host_pathlist_result="$func_to_host_path_result" +- else +- func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" +- fi +- fi +- fi +- IFS=: +- done +- IFS=$func_to_host_pathlist_oldIFS +- ;; +- esac +- if test -z "$func_to_host_pathlist_result" ; then +- func_error "Could not determine the host path(s) corresponding to" +- func_error " '$1'" +- func_error "Continuing, but uninstalled executables may not work." +- # Fallback. This may break if $1 contains DOS-style drive +- # specifications. The fix is not to complicate the expression +- # below, but for the user to provide a working wine installation +- # with winepath so that path translation in the cross-to-mingw +- # case works properly. +- lt_replace_pathsep_nix_to_dos="s|:|;|g" +- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ +- $SED -e "$lt_replace_pathsep_nix_to_dos"` +- fi +- # Now, add the leading and trailing path separators back +- case "$1" in +- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" +- ;; +- esac +- case "$1" in +- *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" +- ;; +- esac +- ;; +- esac +- fi +-} +-# end: func_to_host_pathlist + + # func_emit_cwrapperexe_src + # emit the source code for a wrapper executable on stdout +@@ -3141,41 +4141,71 @@ + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. +- +- Currently, it simply execs the wrapper *script* "$SHELL $output", +- but could eventually absorb all of the scripts functionality and +- exec $objdir/$outputname directly. + */ + EOF + cat <<"EOF" ++#ifdef _MSC_VER ++# define _CRT_SECURE_NO_DEPRECATE 1 ++#endif + #include + #include + #ifdef _MSC_VER + # include + # include + # include +-# define setmode _setmode + #else + # include + # include + # ifdef __CYGWIN__ + # include +-# define HAVE_SETENV +-# ifdef __STRICT_ANSI__ ++# endif ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* 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 + # 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 +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + #if defined(PATH_MAX) + # define LT_PATHMAX PATH_MAX +@@ -3192,14 +4222,7 @@ + # define S_IXGRP 0 + #endif + +-#ifdef _MSC_VER +-# define S_IXUSR _S_IEXEC +-# define stat _stat +-# ifndef _INTPTR_T_DEFINED +-# define intptr_t int +-# endif +-#endif +- ++/* path handling portability macros */ + #ifndef DIR_SEPARATOR + # define DIR_SEPARATOR '/' + # define PATH_SEPARATOR ':' +@@ -3230,10 +4253,6 @@ + # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) + #endif /* PATH_SEPARATOR_2 */ + +-#ifdef __CYGWIN__ +-# define FOPEN_WB "wb" +-#endif +- + #ifndef FOPEN_WB + # define FOPEN_WB "w" + #endif +@@ -3246,22 +4265,13 @@ + if (stale) { free ((void *) stale); stale = 0; } \ + } while (0) + +-#undef LTWRAPPER_DEBUGPRINTF +-#if defined DEBUGWRAPPER +-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args +-static void +-ltwrapper_debugprintf (const char *fmt, ...) +-{ +- va_list args; +- va_start (args, fmt); +- (void) vfprintf (stderr, fmt, args); +- va_end (args); +-} ++#if defined(LT_DEBUGWRAPPER) ++static int lt_debug = 1; + #else +-# define LTWRAPPER_DEBUGPRINTF(args) ++static int lt_debug = 0; + #endif + +-const char *program_name = NULL; ++const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + + void *xmalloc (size_t num); + char *xstrdup (const char *string); +@@ -3271,41 +4281,27 @@ + int make_executable (const char *path); + int check_executable (const char *path); + char *strendzap (char *str, const char *pat); +-void lt_fatal (const char *message, ...); ++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_opt_process_env_set (const char *arg); +-void lt_opt_process_env_prepend (const char *arg); +-void lt_opt_process_env_append (const char *arg); +-int lt_split_name_value (const char *arg, char** name, char** value); + void lt_update_exe_path (const char *name, const char *value); + void lt_update_lib_path (const char *name, const char *value); +- +-static const char *script_text_part1 = +-EOF +- +- func_emit_wrapper_part1 yes | +- $SED -e 's/\([\\"]\)/\\\1/g' \ +- -e 's/^/ "/' -e 's/$/\\n"/' +- echo ";" +- cat <"))); ++ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", ++ nonnull (lt_argv_zero)); + for (i = 0; i < newargc; i++) + { +- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); ++ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", ++ i, nonnull (newargz[i])); + } + + EOF +@@ -3560,11 +4517,14 @@ + 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 */ +- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(main) failed to launch target \"%s\": %s\n", ++ lt_argv_zero, nonnull (strerror (errno))); + return 127; + } + return rval; +@@ -3586,7 +4546,7 @@ + { + void *p = (void *) malloc (num); + if (!p) +- lt_fatal ("Memory exhausted"); ++ lt_fatal (__FILE__, __LINE__, "memory exhausted"); + + return p; + } +@@ -3620,8 +4580,8 @@ + { + struct stat st; + +- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", +- path ? (*path ? path : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", ++ nonempty (path)); + if ((!path) || (!*path)) + return 0; + +@@ -3638,8 +4598,8 @@ + int rval = 0; + struct stat st; + +- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", +- path ? (*path ? path : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", ++ nonempty (path)); + if ((!path) || (!*path)) + return 0; + +@@ -3665,8 +4625,8 @@ + int tmp_len; + char *concat_name; + +- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", +- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", ++ nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; +@@ -3719,7 +4679,8 @@ + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal ("getcwd failed"); ++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ++ nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); +@@ -3744,7 +4705,8 @@ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal ("getcwd failed"); ++ 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); +@@ -3770,8 +4732,9 @@ + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { +- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", +- tmp_pathspec)); ++ 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) +@@ -3793,8 +4756,9 @@ + } + else + { +- char *errstr = strerror (errno); +- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); ++ lt_fatal (__FILE__, __LINE__, ++ "error accessing file \"%s\": %s", ++ tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); +@@ -3807,7 +4771,8 @@ + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { +- lt_fatal ("Could not follow symlinks for %s", pathspec); ++ lt_fatal (__FILE__, __LINE__, ++ "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); + #endif +@@ -3833,11 +4798,25 @@ + 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 *mode, ++lt_error_core (int exit_status, const char *file, ++ int line, const char *mode, + const char *message, va_list ap) + { +- fprintf (stderr, "%s: %s: ", program_name, mode); ++ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + +@@ -3846,20 +4825,32 @@ + } + + void +-lt_fatal (const char *message, ...) ++lt_fatal (const char *file, int line, const char *message, ...) + { + va_list ap; + va_start (ap, message); +- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); ++ 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) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", +- (name ? name : ""), +- (value ? 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 */ +@@ -3904,95 +4895,12 @@ + return new_value; + } + +-int +-lt_split_name_value (const char *arg, char** name, char** value) +-{ +- const char *p; +- int len; +- if (!arg || !*arg) +- return 1; +- +- p = strchr (arg, (int)'='); +- +- if (!p) +- return 1; +- +- *value = xstrdup (++p); +- +- len = strlen (arg) - strlen (*value); +- *name = XMALLOC (char, len); +- strncpy (*name, arg, len-1); +- (*name)[len - 1] = '\0'; +- +- return 0; +-} +- +-void +-lt_opt_process_env_set (const char *arg) +-{ +- char *name = NULL; +- char *value = NULL; +- +- if (lt_split_name_value (arg, &name, &value) != 0) +- { +- XFREE (name); +- XFREE (value); +- lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); +- } +- +- lt_setenv (name, value); +- XFREE (name); +- XFREE (value); +-} +- +-void +-lt_opt_process_env_prepend (const char *arg) +-{ +- char *name = NULL; +- char *value = NULL; +- char *new_value = NULL; +- +- if (lt_split_name_value (arg, &name, &value) != 0) +- { +- XFREE (name); +- XFREE (value); +- lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); +- } +- +- new_value = lt_extend_str (getenv (name), value, 0); +- lt_setenv (name, new_value); +- XFREE (new_value); +- XFREE (name); +- XFREE (value); +-} +- +-void +-lt_opt_process_env_append (const char *arg) +-{ +- char *name = NULL; +- char *value = NULL; +- char *new_value = NULL; +- +- if (lt_split_name_value (arg, &name, &value) != 0) +- { +- XFREE (name); +- XFREE (value); +- lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); +- } +- +- new_value = lt_extend_str (getenv (name), value, 1); +- lt_setenv (name, new_value); +- XFREE (new_value); +- XFREE (name); +- XFREE (value); +-} +- + void + lt_update_exe_path (const char *name, const char *value) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", +- (name ? name : ""), +- (value ? value : ""))); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ++ nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { +@@ -4011,9 +4919,9 @@ + void + lt_update_lib_path (const char *name, const char *value) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", +- (name ? name : ""), +- (value ? value : ""))); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ++ nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { +@@ -4023,11 +4931,152 @@ + } + } + ++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 -e 's/\([\\"]\)/\\\1/g' \ ++ -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' + ++ 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 () + { +@@ -4072,6 +5121,7 @@ + new_inherited_linker_flags= + + avoid_version=no ++ bindir= + dlfiles= + dlprefiles= + dlself=no +@@ -4164,6 +5214,11 @@ + esac + + case $prev in ++ bindir) ++ bindir="$arg" ++ prev= ++ continue ++ ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. +@@ -4195,9 +5250,9 @@ + ;; + *) + if test "$prev" = dlfiles; then +- dlfiles="$dlfiles $arg" ++ func_append dlfiles " $arg" + else +- dlprefiles="$dlprefiles $arg" ++ func_append dlprefiles " $arg" + fi + prev= + continue +@@ -4221,7 +5276,7 @@ + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; +- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ++ *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; +@@ -4240,7 +5295,7 @@ + moreargs= + for fil in `cat "$save_arg"` + do +-# moreargs="$moreargs $fil" ++# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + +@@ -4269,7 +5324,7 @@ + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- dlfiles="$dlfiles $pic_object" ++ func_append dlfiles " $pic_object" + prev= + continue + else +@@ -4281,7 +5336,7 @@ + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. +- dlprefiles="$dlprefiles $pic_object" ++ func_append dlprefiles " $pic_object" + prev= + fi + +@@ -4351,12 +5406,12 @@ + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; +- *) rpath="$rpath $arg" ;; ++ *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; +- *) xrpath="$xrpath $arg" ;; ++ *) func_append xrpath " $arg" ;; + esac + fi + prev= +@@ -4368,28 +5423,28 @@ + continue + ;; + weak) +- weak_libs="$weak_libs $arg" ++ func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) +- linker_flags="$linker_flags $qarg" +- compiler_flags="$compiler_flags $qarg" ++ func_append linker_flags " $qarg" ++ func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) +- compiler_flags="$compiler_flags $qarg" ++ func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) +- linker_flags="$linker_flags $qarg" +- compiler_flags="$compiler_flags $wl$qarg" ++ func_append linker_flags " $qarg" ++ func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" +@@ -4425,6 +5480,11 @@ + continue + ;; + ++ -bindir) ++ prev=bindir ++ continue ++ ;; ++ + -dlopen) + prev=dlfiles + continue +@@ -4475,15 +5535,16 @@ + ;; + + -L*) +- func_stripname '-L' '' "$arg" +- dir=$func_stripname_result +- if test -z "$dir"; then ++ 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]:[\\/]*) ;; +@@ -4495,24 +5556,30 @@ + ;; + esac + case "$deplibs " in +- *" -L$dir "*) ;; ++ *" -L$dir "* | *" $arg "*) ++ # Will only happen for absolute or sysroot arguments ++ ;; + *) +- deplibs="$deplibs -L$dir" +- lib_search_path="$lib_search_path $dir" ++ # 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 "X$dir" | $Xsed -e 's*/lib$*/bin*'` ++ testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; +- *) dllsearchpath="$dllsearchpath:$dir";; ++ *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; +- *) dllsearchpath="$dllsearchpath:$testbindir";; ++ *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac +@@ -4522,7 +5589,7 @@ + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in +- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; +@@ -4536,7 +5603,7 @@ + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework +- deplibs="$deplibs System.ltframework" ++ func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) +@@ -4556,7 +5623,7 @@ + ;; + esac + fi +- deplibs="$deplibs $arg" ++ func_append deplibs " $arg" + continue + ;; + +@@ -4568,8 +5635,8 @@ + # 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) +- compiler_flags="$compiler_flags $arg" ++ -model|-arch|-isysroot|--sysroot) ++ func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler +@@ -4577,12 +5644,12 @@ + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) +- compiler_flags="$compiler_flags $arg" ++ func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; ++ * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; +@@ -4649,13 +5716,17 @@ + # 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 "*) ;; +- *) xrpath="$xrpath $dir" ;; ++ *) func_append xrpath " $dir" ;; + esac + continue + ;; +@@ -4708,8 +5779,8 @@ + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" +- arg="$arg $wl$func_quote_for_eval_result" +- compiler_flags="$compiler_flags $func_quote_for_eval_result" ++ func_append arg " $func_quote_for_eval_result" ++ func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" +@@ -4724,9 +5795,9 @@ + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" +- arg="$arg $wl$func_quote_for_eval_result" +- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" +- linker_flags="$linker_flags $func_quote_for_eval_result" ++ 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" +@@ -4754,23 +5825,27 @@ + arg="$func_quote_for_eval_result" + ;; + +- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler +- # -r[0-9][0-9]* specifies the processor on the SGI compiler +- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler +- # +DA*, +DD* enable 64-bit mode on the HP compiler +- # -q* pass through compiler args for the IBM compiler +- # -m*, -t[45]*, -txscale* pass through architecture-specific +- # compiler args for GCC +- # -F/path gives path to uninstalled frameworks, gcc on darwin +- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC +- # @file GCC response files ++ # 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*|@*) ++ -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" +- compiler_flags="$compiler_flags $arg" ++ func_append compiler_flags " $arg" + continue + ;; + +@@ -4782,7 +5857,7 @@ + + *.$objext) + # A standard object. +- objs="$objs $arg" ++ func_append objs " $arg" + ;; + + *.lo) +@@ -4813,7 +5888,7 @@ + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- dlfiles="$dlfiles $pic_object" ++ func_append dlfiles " $pic_object" + prev= + continue + else +@@ -4825,7 +5900,7 @@ + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. +- dlprefiles="$dlprefiles $pic_object" ++ func_append dlprefiles " $pic_object" + prev= + fi + +@@ -4870,24 +5945,25 @@ + + *.$libext) + # An archive. +- deplibs="$deplibs $arg" +- old_deplibs="$old_deplibs $arg" ++ 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. +- dlfiles="$dlfiles $arg" ++ func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. +- dlprefiles="$dlprefiles $arg" ++ func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else +- deplibs="$deplibs $arg" ++ func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; +@@ -4925,7 +6001,7 @@ + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var +- eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi +@@ -4934,6 +6010,8 @@ + + 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" + +@@ -4954,12 +6032,12 @@ + # 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_duplicate_deps ; then ++ if $opt_preserve_dup_deps ; then + case "$libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi +- libs="$libs $deplib" ++ func_append libs " $deplib" + done + + if test "$linkmode" = lib; then +@@ -4972,9 +6050,9 @@ + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in +- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; ++ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac +- pre_post_deps="$pre_post_deps $pre_post_dep" ++ func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= +@@ -5033,7 +6111,10 @@ + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; +- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ link) ++ libs="$deplibs %DEPLIBS%" ++ test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ++ ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then +@@ -5041,17 +6122,19 @@ + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= ++ func_resolve_sysroot "$lib" + case $lib in +- *.la) func_source "$lib" ;; ++ *.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 +- deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` ++ func_basename "$deplib" ++ deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; +- *) deplibs="$deplibs $deplib" ;; ++ *) func_append deplibs " $deplib" ;; + esac + done + done +@@ -5072,11 +6155,11 @@ + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else +- compiler_flags="$compiler_flags $deplib" ++ func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi +@@ -5161,7 +6244,7 @@ + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi +@@ -5174,7 +6257,8 @@ + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then +@@ -5188,7 +6272,8 @@ + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" +@@ -5199,17 +6284,21 @@ + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" +- dir=$func_stripname_result ++ func_resolve_sysroot "$func_stripname_result" ++ dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; +- *) xrpath="$xrpath $dir" ;; ++ *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; +- *.la) lib="$deplib" ;; ++ *.la) ++ func_resolve_sysroot "$deplib" ++ lib=$func_resolve_sysroot_result ++ ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" +@@ -5227,7 +6316,7 @@ + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` +- if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ ++ if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi +@@ -5237,15 +6326,15 @@ + ;; + esac + if test "$valid_a_lib" != yes; then +- $ECHO ++ 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." ++ 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 + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" +@@ -5272,11 +6361,11 @@ + 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. +- newdlprefiles="$newdlprefiles $deplib" ++ func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else +- newdlfiles="$newdlfiles $deplib" ++ func_append newdlfiles " $deplib" + fi + fi + continue +@@ -5318,20 +6407,20 @@ + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then +- tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ 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 "*) ;; +- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; ++ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi +- dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ 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" && dlfiles="$dlfiles $dlopen" +- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ test -n "$dlopen" && func_append dlfiles " $dlopen" ++ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then +@@ -5342,30 +6431,36 @@ + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. +- convenience="$convenience $ladir/$objdir/$old_library" +- old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ 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 +- tmp_libs= +- for deplib in $dependency_libs; do +- deplibs="$deplib $deplibs" +- if $opt_duplicate_deps ; then +- case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; +- esac +- fi +- tmp_libs="$tmp_libs $deplib" +- done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= +- for l in $old_library $library_names; do +- linklib="$l" +- done ++ 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 +@@ -5382,9 +6477,9 @@ + # 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. +- dlprefiles="$dlprefiles $lib $dependency_libs" ++ func_append dlprefiles " $lib $dependency_libs" + else +- newdlfiles="$newdlfiles $lib" ++ func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen +@@ -5406,14 +6501,14 @@ + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then +- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; 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="$libdir" +- absdir="$libdir" ++ dir="$lt_sysroot$libdir" ++ absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else +@@ -5421,12 +6516,12 @@ + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later +- notinst_path="$notinst_path $abs_ladir" ++ func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later +- notinst_path="$notinst_path $abs_ladir" ++ func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" +@@ -5437,20 +6532,46 @@ + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi +- # Prefer using a static library (so that no silly _DYNAMIC symbols +- # are required to link). +- if test -n "$old_library"; then +- newdlprefiles="$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" && \ +- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" +- # Otherwise, use the dlname, so that lt_dlopen finds it. +- elif test -n "$dlname"; then +- newdlprefiles="$newdlprefiles $dir/$dlname" +- else +- newdlprefiles="$newdlprefiles $dir/$linklib" +- 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 +@@ -5468,7 +6589,7 @@ + + + if test "$linkmode" = prog && test "$pass" != link; then +- newlib_search_path="$newlib_search_path $ladir" ++ func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no +@@ -5481,7 +6602,8 @@ + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? +@@ -5492,12 +6614,12 @@ + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi +- if $opt_duplicate_deps ; then ++ if $opt_preserve_dup_deps ; then + case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi +- tmp_libs="$tmp_libs $deplib" ++ func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... +@@ -5512,7 +6634,7 @@ + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; +- *) temp_rpath="$temp_rpath$absdir:" ;; ++ *) func_append temp_rpath "$absdir:" ;; + esac + fi + +@@ -5524,7 +6646,7 @@ + *) + case "$compile_rpath " in + *" $absdir "*) ;; +- *) compile_rpath="$compile_rpath $absdir" ++ *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac +@@ -5533,7 +6655,7 @@ + *) + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ++ *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac +@@ -5558,12 +6680,12 @@ + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded +- notinst_deplibs="$notinst_deplibs $lib" ++ func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then +- notinst_deplibs="$notinst_deplibs $lib" ++ func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; +@@ -5580,7 +6702,7 @@ + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then +- $ECHO ++ echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else +@@ -5598,7 +6720,7 @@ + *) + case "$compile_rpath " in + *" $absdir "*) ;; +- *) compile_rpath="$compile_rpath $absdir" ++ *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac +@@ -5607,7 +6729,7 @@ + *) + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ++ *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac +@@ -5661,7 +6783,7 @@ + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + +- if test "$linkmode" = prog || test "$mode" != relink; then ++ if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= +@@ -5683,9 +6805,9 @@ + 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" ++ 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 +@@ -5717,7 +6839,7 @@ + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi +@@ -5739,7 +6861,7 @@ + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; +- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then +@@ -5753,13 +6875,13 @@ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; +- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + +- if test "$linkmode" = prog || test "$mode" = relink; then ++ if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= +@@ -5773,7 +6895,7 @@ + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; +- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then +@@ -5790,7 +6912,7 @@ + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi +@@ -5825,21 +6947,21 @@ + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. +- $ECHO ++ 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." ++ 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." ++ 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." ++ 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 +@@ -5867,37 +6989,46 @@ + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; +- *) xrpath="$xrpath $temp_xrpath";; ++ *) func_append xrpath " $temp_xrpath";; + esac;; +- *) temp_deplibs="$temp_deplibs $libdir";; ++ *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + +- newlib_search_path="$newlib_search_path $absdir" ++ 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" +- if $opt_duplicate_deps ; then ++ 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 +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $func_resolve_sysroot_result "*) ++ func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi +- tmp_libs="$tmp_libs $deplib" ++ 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" ++ dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; +@@ -5924,8 +7055,8 @@ + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi +- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" +- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" ++ 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 +@@ -5958,7 +7089,7 @@ + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else +- compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" +@@ -5975,7 +7106,7 @@ + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; +- *) lib_search_path="$lib_search_path $dir" ;; ++ *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= +@@ -6033,10 +7164,10 @@ + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; +- *) tmp_libs="$tmp_libs $deplib" ;; ++ *) func_append tmp_libs " $deplib" ;; + esac + ;; +- *) tmp_libs="$tmp_libs $deplib" ;; ++ *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" +@@ -6052,7 +7183,7 @@ + ;; + esac + if test -n "$i" ; then +- tmp_libs="$tmp_libs $i" ++ func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs +@@ -6093,7 +7224,7 @@ + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" +- objs="$objs$old_deplibs" ++ func_append objs "$old_deplibs" + ;; + + lib) +@@ -6126,10 +7257,10 @@ + 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 + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" +- libobjs="$libobjs $objs" ++ func_append libobjs " $objs" + fi + fi + +@@ -6194,7 +7325,7 @@ + age="$number_minor" + revision="$number_revision" + ;; +- freebsd-aout|freebsd-elf|sunos) ++ freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" +@@ -6206,6 +7337,9 @@ + revision="$number_minor" + lt_irix_increment=no + ;; ++ *) ++ func_fatal_configuration "$modename: unknown library version type \`$version_type'" ++ ;; + esac + ;; + no) +@@ -6327,7 +7461,7 @@ + done + + # Make executables depend on our current version. +- verstring="$verstring:${current}.0" ++ func_append verstring ":${current}.0" + ;; + + qnx) +@@ -6395,10 +7529,10 @@ + fi + + func_generate_dlsyms "$libname" "$libname" "yes" +- libobjs="$libobjs $symfileobj" ++ func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + +- if test "$mode" != relink; then ++ 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= +@@ -6414,7 +7548,7 @@ + continue + fi + fi +- removelist="$removelist $p" ++ func_append removelist " $p" + ;; + *) ;; + esac +@@ -6425,27 +7559,28 @@ + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then +- oldlibs="$oldlibs $output_objdir/$libname.$libext" ++ func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. +- oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` ++ 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 "X$lib_search_path " | $Xsed -e "s% $path % %g"` +- # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` +- # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` ++ # 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 +- temp_xrpath="$temp_xrpath -R$libdir" ++ func_replace_sysroot "$libdir" ++ func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ;; ++ *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then +@@ -6459,7 +7594,7 @@ + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; +- *) dlfiles="$dlfiles $lib" ;; ++ *) func_append dlfiles " $lib" ;; + esac + done + +@@ -6469,19 +7604,19 @@ + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; +- *) dlprefiles="$dlprefiles $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*) ++ *-*-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 +- deplibs="$deplibs System.ltframework" ++ func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. +@@ -6498,7 +7633,7 @@ + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then +- deplibs="$deplibs -lc" ++ func_append deplibs " -lc" + fi + ;; + esac +@@ -6547,7 +7682,7 @@ + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + i="" + ;; + esac +@@ -6558,21 +7693,21 @@ + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + else + droppeddeps=yes +- $ECHO ++ 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." ++ 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 + ;; + *) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + ;; + esac + done +@@ -6590,7 +7725,7 @@ + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + i="" + ;; + esac +@@ -6601,29 +7736,29 @@ + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + else + droppeddeps=yes +- $ECHO ++ 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." ++ 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 + $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." ++ 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 + ;; + *) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + ;; + esac + done +@@ -6640,15 +7775,27 @@ + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) +- newdeplibs="$newdeplibs $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 +- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ 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 | +@@ -6665,13 +7812,13 @@ + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; +- *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$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 +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi +@@ -6680,12 +7827,12 @@ + fi + if test -n "$a_deplib" ; then + droppeddeps=yes +- $ECHO ++ 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" ++ 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 +@@ -6696,7 +7843,7 @@ + ;; + *) + # Add a -L argument. +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. +@@ -6712,7 +7859,7 @@ + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac +@@ -6723,9 +7870,9 @@ + 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 \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ ++ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi +@@ -6734,12 +7881,12 @@ + fi + if test -n "$a_deplib" ; then + droppeddeps=yes +- $ECHO ++ 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" ++ 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 +@@ -6750,32 +7897,32 @@ + ;; + *) + # Add a -L argument. +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" +- tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ +- -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` ++ 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 "X $tmp_deplibs" | $Xsed -e "s,$i,,"` ++ tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi +- if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | +- $GREP . >/dev/null; then +- $ECHO ++ case $tmp_deplibs in ++ *[!\ \ ]*) ++ echo + if test "X$deplibs_check_method" = "Xnone"; then +- $ECHO "*** Warning: inter-library dependencies are not supported in this platform." ++ echo "*** Warning: inter-library dependencies are not supported in this platform." + else +- $ECHO "*** Warning: inter-library dependencies are not known to be supported." ++ echo "*** Warning: inter-library dependencies are not known to be supported." + fi +- $ECHO "*** All declared inter-library dependencies are being dropped." ++ echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes +- fi ++ ;; ++ esac + ;; + esac + versuffix=$versuffix_save +@@ -6787,23 +7934,23 @@ + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework +- newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ 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 ++ 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." ++ 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." ++ 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" +@@ -6813,16 +7960,16 @@ + 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." ++ 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." ++ 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 +@@ -6839,9 +7986,9 @@ + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) +- newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` +- new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` +- deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ 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 + +@@ -6854,7 +8001,7 @@ + *) + case " $deplibs " in + *" -L$path/$objdir "*) +- new_libs="$new_libs -L$path/$objdir" ;; ++ func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac +@@ -6864,10 +8011,10 @@ + -L*) + case " $new_libs " in + *" $deplib "*) ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" +@@ -6884,10 +8031,12 @@ + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" +- test "$mode" != relink && rpath="$compile_rpath$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 +@@ -6896,18 +8045,18 @@ + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- dep_rpath="$dep_rpath $flag" ++ func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; +- *) perm_rpath="$perm_rpath $libdir" ;; ++ *) func_apped perm_rpath " $libdir" ;; + esac + fi + done +@@ -6925,7 +8074,7 @@ + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi +@@ -6933,7 +8082,7 @@ + fi + + shlibpath="$finalize_shlibpath" +- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi +@@ -6959,18 +8108,18 @@ + linknames= + for link + do +- linknames="$linknames $link" ++ func_append linknames " $link" + done + + # Use standard objects if they are pic +- test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ 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" +- delfiles="$delfiles $export_symbols" ++ func_append delfiles " $export_symbols" + fi + + orig_export_symbols= +@@ -7001,13 +8150,45 @@ + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do ++ for cmd1 in $cmds; do + IFS="$save_ifs" +- eval cmd=\"$cmd\" +- func_len " $cmd" +- len=$func_len_result +- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ # 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. +@@ -7029,7 +8210,7 @@ + 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 "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_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 +@@ -7041,7 +8222,7 @@ + # 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 +- delfiles="$delfiles $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 +@@ -7051,7 +8232,7 @@ + case " $convenience " in + *" $test_deplib "*) ;; + *) +- tmp_deplibs="$tmp_deplibs $test_deplib" ++ func_append tmp_deplibs " $test_deplib" + ;; + esac + done +@@ -7071,21 +8252,21 @@ + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $convenience +- libobjs="$libobjs $func_extract_archives_result" ++ 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\" +- linker_flags="$linker_flags $flag" ++ func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + +@@ -7130,7 +8311,8 @@ + save_libobjs=$libobjs + fi + save_output=$output +- output_la=`$ECHO "X$output" | $Xsed -e "$basename"` ++ func_basename "$output" ++ output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. +@@ -7143,13 +8325,16 @@ + 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 ++ echo 'INPUT (' > $output + for obj in $save_libobjs + do +- $ECHO "$obj" >> $output ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output + done +- $ECHO ')' >> $output +- delfiles="$delfiles $output" ++ 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" +@@ -7163,10 +8348,12 @@ + fi + for obj + do +- $ECHO "$obj" >> $output ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output + done +- delfiles="$delfiles $output" +- output=$firstobj\"$file_list_spec$output\" ++ 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..." +@@ -7190,17 +8377,19 @@ + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. +- eval concat_cmds=\"$reload_cmds $objlist $last_robj\" ++ reload_objs=$objlist ++ eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. +- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" ++ 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 ++ objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result +@@ -7210,11 +8399,12 @@ + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ +- eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" ++ 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 +- delfiles="$delfiles $output" ++ func_append delfiles " $output" + + else + output= +@@ -7248,7 +8438,7 @@ + lt_exit=$? + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) +@@ -7269,7 +8459,7 @@ + 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 "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' ++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then +@@ -7281,7 +8471,7 @@ + # 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 +- delfiles="$delfiles $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 +@@ -7322,10 +8512,10 @@ + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles +- libobjs="$libobjs $func_extract_archives_result" ++ func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + +@@ -7341,7 +8531,7 @@ + lt_exit=$? + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) +@@ -7353,7 +8543,7 @@ + IFS="$save_ifs" + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then ++ 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 +@@ -7434,18 +8624,21 @@ + 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 "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` ++ reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" +- generated="$generated $gentop" ++ 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 "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test ++ 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 $?' +@@ -7505,8 +8698,8 @@ + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework +- compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` +- finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` ++ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + +@@ -7517,14 +8710,14 @@ + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) +- compile_command="$compile_command ${wl}-bind_at_load" +- finalize_command="$finalize_command ${wl}-bind_at_load" ++ 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 "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` +- finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + +@@ -7538,7 +8731,7 @@ + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) +- new_libs="$new_libs -L$path/$objdir" ;; ++ func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac +@@ -7548,17 +8741,17 @@ + -L*) + case " $new_libs " in + *" $deplib "*) ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + +- compile_command="$compile_command $compile_deplibs" +- finalize_command="$finalize_command $finalize_deplibs" ++ 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. +@@ -7566,7 +8759,7 @@ + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ;; ++ *) func_append finalize_rpath " $libdir" ;; + esac + done + fi +@@ -7585,18 +8778,18 @@ + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- rpath="$rpath $flag" ++ func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; +- *) perm_rpath="$perm_rpath $libdir" ;; ++ *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in +@@ -7605,12 +8798,12 @@ + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; +- *) dllsearchpath="$dllsearchpath:$libdir";; ++ *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; +- *) dllsearchpath="$dllsearchpath:$testbindir";; ++ *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac +@@ -7636,18 +8829,18 @@ + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- rpath="$rpath $flag" ++ func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; +- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; ++ *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done +@@ -7661,8 +8854,8 @@ + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. +- compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` +- finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ 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" +@@ -7674,15 +8867,15 @@ + + 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 + ;; +- *cegcc) +- # Disable wrappers for cegcc, we are cross compiling anyway. +- wrappers_required=no +- ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no +@@ -7691,13 +8884,19 @@ + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. +- compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ 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}"' +@@ -7720,7 +8919,7 @@ + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi +@@ -7728,7 +8927,7 @@ + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi +@@ -7738,11 +8937,18 @@ + # 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 "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ 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 + +@@ -7757,7 +8963,7 @@ + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then +- relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` ++ relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= +@@ -7769,13 +8975,19 @@ + fi + + # Replace the output file specification. +- link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ 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" + +@@ -7793,18 +9005,7 @@ + fi + done + relink_command="(cd `pwd`; $relink_command)" +- relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` +- fi +- +- # Quote $ECHO for shipping. +- if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then +- case $progpath in +- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; +- *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; +- esac +- qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` +- else +- qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` ++ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. +@@ -7884,7 +9085,7 @@ + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then +- oldobjs="$oldobjs $symfileobj" ++ func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" +@@ -7892,10 +9093,10 @@ + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $addlibs +- oldobjs="$oldobjs $func_extract_archives_result" ++ func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. +@@ -7906,10 +9107,10 @@ + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles +- oldobjs="$oldobjs $func_extract_archives_result" ++ func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have +@@ -7925,9 +9126,9 @@ + done | sort | sort -uc >/dev/null 2>&1); then + : + else +- $ECHO "copying selected object files to avoid basename conflicts..." ++ echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= +@@ -7951,9 +9152,9 @@ + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" +- oldobjs="$oldobjs $gentop/$newobj" ++ func_append oldobjs " $gentop/$newobj" + ;; +- *) oldobjs="$oldobjs $obj" ;; ++ *) func_append oldobjs " $obj" ;; + esac + done + fi +@@ -7963,6 +9164,16 @@ + 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..." +@@ -8036,7 +9247,7 @@ + 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 "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi +@@ -8059,9 +9270,19 @@ + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" +- newdependency_libs="$newdependency_libs $libdir/$name" ++ 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" + ;; +- *) newdependency_libs="$newdependency_libs $deplib" ;; ++ -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" +@@ -8075,9 +9296,9 @@ + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" +- newdlfiles="$newdlfiles $libdir/$name" ++ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; +- *) newdlfiles="$newdlfiles $lib" ;; ++ *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" +@@ -8094,7 +9315,7 @@ + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" +- newdlprefiles="$newdlprefiles $libdir/$name" ++ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done +@@ -8106,7 +9327,7 @@ + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac +- newdlfiles="$newdlfiles $abs" ++ func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= +@@ -8115,15 +9336,33 @@ + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac +- newdlprefiles="$newdlprefiles $abs" ++ 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) tdlname=../bin/$dlname ;; ++ *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 +@@ -8182,7 +9421,7 @@ + exit $EXIT_SUCCESS + } + +-{ test "$mode" = link || test "$mode" = relink; } && ++{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +@@ -8202,9 +9441,9 @@ + for arg + do + case $arg in +- -f) RM="$RM $arg"; rmforce=yes ;; +- -*) RM="$RM $arg" ;; +- *) files="$files $arg" ;; ++ -f) func_append RM " $arg"; rmforce=yes ;; ++ -*) func_append RM " $arg" ;; ++ *) func_append files " $arg" ;; + esac + done + +@@ -8213,24 +9452,23 @@ + + rmdirs= + +- origobjdir="$objdir" + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then +- objdir="$origobjdir" ++ odir="$objdir" + else +- objdir="$dir/$origobjdir" ++ odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" +- test "$mode" = uninstall && objdir="$dir" ++ test "$opt_mode" = uninstall && odir="$dir" + +- # Remember objdir for removal later, being careful to avoid duplicates +- if test "$mode" = clean; then ++ # Remember odir for removal later, being careful to avoid duplicates ++ if test "$opt_mode" = clean; then + case " $rmdirs " in +- *" $objdir "*) ;; +- *) rmdirs="$rmdirs $objdir" ;; ++ *" $odir "*) ;; ++ *) func_append rmdirs " $odir" ;; + esac + fi + +@@ -8256,18 +9494,17 @@ + + # Delete the libtool libraries and symlinks. + for n in $library_names; do +- rmfiles="$rmfiles $objdir/$n" ++ func_append rmfiles " $odir/$n" + done +- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ test -n "$old_library" && func_append rmfiles " $odir/$old_library" + +- case "$mode" in ++ case "$opt_mode" in + clean) +- case " $library_names " in +- # " " in the beginning catches empty $dlname ++ case " $library_names " in + *" $dlname "*) ;; +- *) rmfiles="$rmfiles $objdir/$dlname" ;; ++ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac +- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ++ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then +@@ -8295,19 +9532,19 @@ + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then +- rmfiles="$rmfiles $dir/$pic_object" ++ 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 +- rmfiles="$rmfiles $dir/$non_pic_object" ++ func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) +- if test "$mode" = clean ; then ++ if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) +@@ -8317,7 +9554,7 @@ + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe +- rmfiles="$rmfiles $file" ++ func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. +@@ -8326,7 +9563,7 @@ + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result +- rmfiles="$rmfiles $func_ltwrapper_scriptname_result" ++ func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename +@@ -8334,12 +9571,12 @@ + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles +- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then +- rmfiles="$rmfiles $objdir/lt-$name" ++ func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then +- rmfiles="$rmfiles $objdir/lt-${noexename}.c" ++ func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi +@@ -8347,7 +9584,6 @@ + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done +- objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do +@@ -8359,16 +9595,16 @@ + exit $exit_status + } + +-{ test "$mode" = uninstall || test "$mode" = clean; } && ++{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +-test -z "$mode" && { ++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 \`$mode'" ++ func_fatal_help "invalid operation mode \`$opt_mode'" + + if test -n "$exec_cmd"; then + eval exec "$exec_cmd" +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//config.h.in couchdb-1.0.1.new//config.h.in +--- couchdb-1.0.1//config.h.in 2010-08-11 19:18:51.000000000 +0100 ++++ couchdb-1.0.1.new//config.h.in 2011-06-14 18:31:33.623706531 +0100 +@@ -1,14 +1,32 @@ + /* config.h.in. Generated from configure.ac by autoheader. */ + ++/* Define whether we have JS_NewCompartmentAndGlobalObject */ ++#undef HAVE_COMPARTMENTS ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_DLFCN_H + + /* Define to 1 if you have the header file. */ + #undef HAVE_INTTYPES_H + ++/* Define whether we have JS_FreezeObject */ ++#undef HAVE_JS_FREEZE_OBJECT ++ ++/* Define whether we have JS_GetStringCharsAndLength */ ++#undef HAVE_JS_GET_STRING_CHARS_AND_LENGTH ++ ++/* Define whether we have JS_NewGlobalObject */ ++#undef HAVE_JS_NEW_GLOBAL_OBJECT ++ ++/* Define whether we have JS_StrictPropertyStub */ ++#undef HAVE_JS_STRICT_PROPERTY_STUB ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_MEMORY_H + ++/* Define whether scripts are JSObjects */ ++#undef HAVE_SCRIPT_AS_OBJECT ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_STDINT_H + +@@ -30,6 +48,12 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_UNISTD_H + ++/* JSFunctionSpec has an extra member */ ++#undef JS_FS_HAS_EXTRA ++ ++/* The type of "id" in the prototype for JSPropertyOp is a jsid */ ++#undef JS_PROPERTY_OP_HAS_ID_AS_JSID ++ + /* Define to the sub-directory in which libtool stores uninstalled libraries. + */ + #undef LT_OBJDIR +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//configure couchdb-1.0.1.new//configure +--- couchdb-1.0.1//configure 2011-06-14 18:31:30.523666671 +0100 ++++ couchdb-1.0.1.new//configure 2011-06-14 18:31:45.533859670 +0100 +@@ -1,12 +1,14 @@ + #! /bin/sh + # From configure.ac 1.0.1. + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.64 for Apache CouchDB 1.0.1. ++# Generated by GNU Autoconf 2.68 for Apache CouchDB 1.0.1. ++# + # + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software ++# 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. + ## -------------------- ## +@@ -88,6 +90,7 @@ + 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 +@@ -170,7 +173,15 @@ + 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 \$(( 1 + 1 )) = 2 || exit 1" ++test \$(( 1 + 1 )) = 2 || 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" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes + else +@@ -213,11 +224,18 @@ + # 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 +- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} ++ 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 : +@@ -315,7 +333,7 @@ + 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" ++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + + } # as_fn_mkdir_p +@@ -355,19 +373,19 @@ + fi # as_fn_arith + + +-# as_fn_error ERROR [LINENO LOG_FD] +-# --------------------------------- ++# 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. ++# script with STATUS, using 1 if that was 0. + as_fn_error () + { +- as_status=$?; test $as_status -eq 0 && as_status=1 +- if test "$3"; then +- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 ++ 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: $1" >&2 ++ $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status + } # as_fn_error + +@@ -524,160 +542,14 @@ + # Sed expression to map a string onto a valid variable name. + as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +- +- +-# Check that we are running under the correct shell. + SHELL=${CONFIG_SHELL-/bin/sh} + +-case X$lt_ECHO in +-X*--fallback-echo) +- # Remove one level of quotation (which was required for Make). +- ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` +- ;; +-esac +- +-ECHO=${lt_ECHO-echo} +-if test "X$1" = X--no-reexec; then +- # Discard the --no-reexec flag, and continue. +- shift +-elif test "X$1" = X--fallback-echo; then +- # Avoid inline document here, it may be left over +- : +-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then +- # Yippee, $ECHO works! +- : +-else +- # Restart under the correct shell. +- exec $SHELL "$0" --no-reexec ${1+"$@"} +-fi +- +-if test "X$1" = X--fallback-echo; then +- # used as fallback echo +- shift +- cat <<_LT_EOF +-$* +-_LT_EOF +- exit 0 +-fi +- +-# 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 +- +-if test -z "$lt_ECHO"; then +- if test "X${echo_test_string+set}" != Xset; then +- # find a string as large as possible, as long as the shell can cope with it +- for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do +- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... +- if { echo_test_string=`eval $cmd`; } 2>/dev/null && +- { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null +- then +- break +- fi +- done +- fi +- +- if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && +- echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- : +- else +- # The Solaris, AIX, and Digital Unix default echo programs unquote +- # backslashes. This makes it impossible to quote backslashes using +- # echo "$something" | sed 's/\\/\\\\/g' +- # +- # So, first we look for a working echo in the user's PATH. +- +- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +- for dir in $PATH /usr/ucb; do +- IFS="$lt_save_ifs" +- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && +- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && +- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- ECHO="$dir/echo" +- break +- fi +- done +- IFS="$lt_save_ifs" +- +- if test "X$ECHO" = Xecho; then +- # We didn't find a better echo, so look for alternatives. +- if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && +- echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- # This shell has a builtin print -r that does the trick. +- ECHO='print -r' +- elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && +- test "X$CONFIG_SHELL" != X/bin/ksh; then +- # If we have ksh, try running configure again with it. +- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} +- export ORIGINAL_CONFIG_SHELL +- CONFIG_SHELL=/bin/ksh +- export CONFIG_SHELL +- exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} +- else +- # Try using printf. +- ECHO='printf %s\n' +- if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && +- echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- # Cool, printf works +- : +- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && +- test "X$echo_testing_string" = 'X\t' && +- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL +- export CONFIG_SHELL +- SHELL="$CONFIG_SHELL" +- export SHELL +- ECHO="$CONFIG_SHELL $0 --fallback-echo" +- elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && +- test "X$echo_testing_string" = 'X\t' && +- echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- ECHO="$CONFIG_SHELL $0 --fallback-echo" +- else +- # maybe with a smaller string... +- prev=: +- +- for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do +- if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null +- then +- break +- fi +- prev="$cmd" +- done +- +- if test "$prev" != 'sed 50q "$0"'; then +- echo_test_string=`eval $prev` +- export echo_test_string +- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} +- else +- # Oops. We lost completely, so just stick with echo. +- ECHO=echo +- fi +- fi +- fi +- fi +- fi +-fi +- +-# Copy echo and quote the copy suitably for passing to libtool from +-# the Makefile, instead of quoting the original, which is used later. +-lt_ECHO=$ECHO +-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then +- lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +-fi +- +- +- + +-exec 7<&0 &1 ++test -n "$DJDIR" || exec 7<&0 &1 + + # Name of the host. +-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, ++# 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` + +@@ -787,7 +659,6 @@ + ICU_CXXFLAGS + ICU_CFLAGS + ICU_CONFIG +-JSLIB + msvc_redist_name + msvc_redist_dir + INNO_COMPILER_EXECUTABLE +@@ -799,14 +670,18 @@ + FLAGS + ERLC_FLAGS + JS_LIB_DIR ++JS_LIBS ++JS_CFLAGS + OTOOL64 + OTOOL + LIPO + NMEDIT + DSYMUTIL +-lt_ECHO ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -824,6 +699,9 @@ + build_cpu + build + LIBTOOL ++PKG_CONFIG_LIBDIR ++PKG_CONFIG_PATH ++PKG_CONFIG + EGREP + GREP + CPP +@@ -913,6 +791,7 @@ + with_pic + enable_fast_install + with_gnu_ld ++with_sysroot + enable_libtool_lock + with_erlang + with_js_include +@@ -933,6 +812,11 @@ + LIBS + CPPFLAGS + CPP ++PKG_CONFIG ++PKG_CONFIG_PATH ++PKG_CONFIG_LIBDIR ++JS_CFLAGS ++JS_LIBS + ERLC_FLAGS + FLAGS + ERL +@@ -1000,8 +884,9 @@ + fi + + case $ac_option in +- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; +- *) ac_optarg=yes ;; ++ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; ++ *=) ac_optarg= ;; ++ *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. +@@ -1046,7 +931,7 @@ + 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" ++ 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 +@@ -1072,7 +957,7 @@ + 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" ++ 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 +@@ -1276,7 +1161,7 @@ + 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" ++ 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 +@@ -1292,7 +1177,7 @@ + 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" ++ 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 +@@ -1322,8 +1207,8 @@ + | --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." ++ -*) as_fn_error $? "unrecognized option: \`$ac_option' ++Try \`$0 --help' for more information" + ;; + + *=*) +@@ -1331,7 +1216,7 @@ + # 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'" ;; ++ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; +@@ -1341,7 +1226,7 @@ + $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} ++ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +@@ -1349,13 +1234,13 @@ + + if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` +- as_fn_error "missing argument to $ac_option" ++ 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" ;; ++ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac + fi +@@ -1378,7 +1263,7 @@ + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac +- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" ++ 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' +@@ -1392,8 +1277,8 @@ + 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 ++ $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 +@@ -1408,9 +1293,9 @@ + 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" ++ 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" ++ as_fn_error $? "pwd does not report name of working directory" + + + # Find the source files, if location was not specified. +@@ -1449,11 +1334,11 @@ + 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" ++ 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" ++ 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 +@@ -1493,7 +1378,7 @@ + --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 ++ -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 +@@ -1573,6 +1458,8 @@ + --with-pic 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). + --with-erlang=PATH set PATH to the Erlang include directory + --with-js-include=PATH set PATH to the SpiderMonkey include directory + --with-js-lib=PATH set PATH to the SpiderMonkey library directory +@@ -1592,9 +1479,16 @@ + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l +- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if ++ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor ++ PKG_CONFIG path to pkg-config utility ++ PKG_CONFIG_PATH ++ directories to add to pkg-config's search path ++ PKG_CONFIG_LIBDIR ++ path overriding pkg-config's built-in search path ++ JS_CFLAGS C compiler flags for JS, overriding pkg-config ++ JS_LIBS linker flags for JS, overriding pkg-config + ERLC_FLAGS general flags to prepend to ERLC_FLAGS + FLAGS general flags to prepend to LDFLAGS and CPPFLAGS + ERL path to the `erl' executable +@@ -1669,9 +1563,9 @@ + if $ac_init_version; then + cat <<\_ACEOF + Apache CouchDB configure 1.0.1 +-generated by GNU Autoconf 2.64 ++generated by GNU Autoconf 2.68 + +-Copyright (C) 2009 Free Software Foundation, Inc. ++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 +@@ -1715,8 +1609,8 @@ + + ac_retval=1 + fi +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- return $ac_retval ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval + + } # ac_fn_c_try_compile + +@@ -1741,7 +1635,7 @@ + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } >/dev/null && { ++ test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : +@@ -1752,8 +1646,8 @@ + + ac_retval=1 + fi +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- return $ac_retval ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval + + } # ac_fn_c_try_cpp + +@@ -1765,10 +1659,10 @@ + ac_fn_c_check_header_mongrel () + { + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : ++ if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + $as_echo_n "checking for $2... " >&6; } +-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : ++if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 + fi + eval ac_res=\$$3 +@@ -1804,7 +1698,7 @@ + else + ac_header_preproc=no + fi +-rm -f conftest.err conftest.$ac_ext ++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; } + +@@ -1831,7 +1725,7 @@ + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + $as_echo_n "checking for $2... " >&6; } +-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : ++if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 + else + eval "$3=\$ac_header_compiler" +@@ -1840,7 +1734,7 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + fi +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_c_check_header_mongrel + +@@ -1881,8 +1775,8 @@ + ac_retval=$ac_status + fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- return $ac_retval ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval + + } # ac_fn_c_try_run + +@@ -1895,7 +1789,7 @@ + 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : ++if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -1913,7 +1807,7 @@ + eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_c_check_header_compile + +@@ -1958,8 +1852,8 @@ + # 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- return $ac_retval ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval + + } # ac_fn_c_try_link + +@@ -1971,7 +1865,7 @@ + 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : ++if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -2026,7 +1920,7 @@ + eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_c_check_func + cat >config.log <<_ACEOF +@@ -2034,7 +1928,7 @@ + running configure, to aid debugging if configure makes a mistake. + + It was created by Apache CouchDB $as_me 1.0.1, which was +-generated by GNU Autoconf 2.64. Invocation command line was ++generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +@@ -2144,11 +2038,9 @@ + { + echo + +- cat <<\_ASBOX +-## ---------------- ## ++ $as_echo "## ---------------- ## + ## Cache variables. ## +-## ---------------- ## +-_ASBOX ++## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, + ( +@@ -2182,11 +2074,9 @@ + ) + echo + +- cat <<\_ASBOX +-## ----------------- ## ++ $as_echo "## ----------------- ## + ## Output variables. ## +-## ----------------- ## +-_ASBOX ++## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do +@@ -2199,11 +2089,9 @@ + echo + + if test -n "$ac_subst_files"; then +- cat <<\_ASBOX +-## ------------------- ## ++ $as_echo "## ------------------- ## + ## File substitutions. ## +-## ------------------- ## +-_ASBOX ++## ------------------- ##" + echo + for ac_var in $ac_subst_files + do +@@ -2217,11 +2105,9 @@ + fi + + if test -s confdefs.h; then +- cat <<\_ASBOX +-## ----------- ## ++ $as_echo "## ----------- ## + ## confdefs.h. ## +-## ----------- ## +-_ASBOX ++## ----------- ##" + echo + cat confdefs.h + echo +@@ -2276,7 +2162,12 @@ + ac_site_file1=NONE + ac_site_file2=NONE + if test -n "$CONFIG_SITE"; then +- ac_site_file1=$CONFIG_SITE ++ # 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 +@@ -2287,18 +2178,22 @@ + for ac_site_file in "$ac_site_file1" "$ac_site_file2" + do + test "x$ac_site_file" = xNONE && continue +- if test -r "$ac_site_file"; then ++ 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" ++ . "$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. +- if test -f "$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 +@@ -2367,7 +2262,7 @@ + $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 ++ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + fi + ## -------------------- ## + ## Main body of script. ## +@@ -2386,16 +2281,22 @@ + + ac_aux_dir= + for ac_dir in build-aux "$srcdir"/build-aux; do +- for ac_t in install-sh install.sh shtool; do +- if test -f "$ac_dir/$ac_t"; then +- ac_aux_dir=$ac_dir +- ac_install_sh="$ac_aux_dir/$ac_t -c" +- break 2 +- fi +- done ++ 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 build-aux \"$srcdir\"/build-aux" "$LINENO" 5 ++ as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 + fi + + # These three variables are undocumented and unsupported, +@@ -2431,7 +2332,7 @@ + { $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 test "${ac_cv_path_install+set}" = set; then : ++if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +@@ -2518,11 +2419,11 @@ + ' + case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) +- as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; ++ 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;; ++ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + esac + + # Do `set' in a subshell so we don't clobber the current shell's +@@ -2544,7 +2445,7 @@ + # 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 ++ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + +@@ -2554,7 +2455,7 @@ + # Ok. + : + else +- as_fn_error "newly created file is older than distributed files! ++ 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 +@@ -2608,7 +2509,7 @@ + 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 test "${ac_cv_prog_STRIP+set}" = set; then : ++if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$STRIP"; then +@@ -2648,7 +2549,7 @@ + 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 test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : ++if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_STRIP"; then +@@ -2701,7 +2602,7 @@ + { $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 test "${ac_cv_path_mkdir+set}" = set; then : ++ if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +@@ -2726,6 +2627,7 @@ + + fi + ++ test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else +@@ -2733,7 +2635,6 @@ + # 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. +- test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi + fi +@@ -2752,7 +2653,7 @@ + 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 test "${ac_cv_prog_AWK+set}" = set; then : ++if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$AWK"; then +@@ -2792,7 +2693,7 @@ + $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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : ++if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat >conftest.make <<\_ACEOF +@@ -2800,7 +2701,7 @@ + all: + @echo '@@@%%%=$(MAKE)=@@@%%%' + _ACEOF +-# GNU make sometimes prints "make[1]: Entering...", which would confuse us. ++# 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;; +@@ -2834,7 +2735,7 @@ + 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 ++ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi + fi + +@@ -2963,7 +2864,7 @@ + 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 test "${ac_cv_prog_CC+set}" = set; then : ++if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$CC"; then +@@ -3003,7 +2904,7 @@ + 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; then : ++if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_CC"; then +@@ -3056,7 +2957,7 @@ + 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 test "${ac_cv_prog_CC+set}" = set; then : ++if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$CC"; then +@@ -3096,7 +2997,7 @@ + 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 test "${ac_cv_prog_CC+set}" = set; then : ++if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$CC"; then +@@ -3155,7 +3056,7 @@ + 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 test "${ac_cv_prog_CC+set}" = set; then : ++if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$CC"; then +@@ -3199,7 +3100,7 @@ + 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; then : ++if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_CC"; then +@@ -3253,8 +3154,8 @@ + + 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; } ++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 +@@ -3275,32 +3176,30 @@ + ... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 +- rm -f conftest.er1 conftest.err + 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. */ +-#include ++ + int + main () + { +-FILE *f = fopen ("conftest.out", "w"); +- return ferror (f) || fclose (f) != 0; + + ; + 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 conftest.out" ++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 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}: 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: +@@ -3362,62 +3261,28 @@ + else + ac_file='' + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +-$as_echo "$ac_file" >&6; } + if test -z "$ac_file"; then : +- $as_echo "$as_me: failed program was:" >&5 ++ { $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_set_status 77 +-as_fn_error "C compiler cannot create executables +-See \`config.log' for more details." "$LINENO" 5; }; } ++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 + +-# 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 the C compiler works" >&5 +-$as_echo_n "checking whether the C compiler works... " >&6; } +-# If not cross compiling, check that we can run a simple program. +-if test "$cross_compiling" != yes; then +- if { ac_try='./$ac_file' +- { { 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: yes" >&5 +-$as_echo "yes" >&6; } +- +-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out ++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out + ac_clean_files=$ac_clean_files_save +-# 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; } +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +-$as_echo "$cross_compiling" >&6; } +- + { $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" +@@ -3447,19 +3312,78 @@ + 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; } ++as_fn_error $? "cannot compute suffix of executables: cannot compile and link ++See \`config.log' for more details" "$LINENO" 5; } + fi +-rm -f conftest$ac_cv_exeext ++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 ++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 test "${ac_cv_objext+set}" = set; then : ++if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -3499,8 +3423,8 @@ + + { { $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; } ++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 +@@ -3510,7 +3434,7 @@ + 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 test "${ac_cv_c_compiler_gnu+set}" = set; then : ++if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -3547,7 +3471,7 @@ + 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 test "${ac_cv_prog_cc_g+set}" = set; then : ++if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_save_c_werror_flag=$ac_c_werror_flag +@@ -3625,7 +3549,7 @@ + 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 test "${ac_cv_prog_cc_c89+set}" = set; then : ++if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_cv_prog_cc_c89=no +@@ -3724,7 +3648,7 @@ + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 + $as_echo_n "checking dependency style of $depcc... " >&6; } +-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : ++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 +@@ -3860,7 +3784,7 @@ + CPP= + fi + if test -z "$CPP"; then +- if test "${ac_cv_prog_CPP+set}" = set; then : ++ if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 + else + # Double quotes because CPP needs to be expanded +@@ -3890,7 +3814,7 @@ + # Broken: fails on valid input. + continue + fi +-rm -f conftest.err conftest.$ac_ext ++rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. +@@ -3906,11 +3830,11 @@ + ac_preproc_ok=: + break + fi +-rm -f conftest.err conftest.$ac_ext ++rm -f conftest.err conftest.i conftest.$ac_ext + + done + # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +-rm -f conftest.err conftest.$ac_ext ++rm -f conftest.i conftest.err conftest.$ac_ext + if $ac_preproc_ok; then : + break + fi +@@ -3949,7 +3873,7 @@ + # Broken: fails on valid input. + continue + fi +-rm -f conftest.err conftest.$ac_ext ++rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. +@@ -3965,18 +3889,18 @@ + ac_preproc_ok=: + break + fi +-rm -f conftest.err conftest.$ac_ext ++rm -f conftest.err conftest.i conftest.$ac_ext + + done + # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +-rm -f conftest.err conftest.$ac_ext ++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; } ++as_fn_error $? "C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details" "$LINENO" 5; } + fi + + ac_ext=c +@@ -3988,7 +3912,7 @@ + + { $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 test "${ac_cv_path_GREP+set}" = set; then : ++if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -z "$GREP"; then +@@ -4037,7 +3961,7 @@ + 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 ++ 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 +@@ -4051,7 +3975,7 @@ + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 + $as_echo_n "checking for egrep... " >&6; } +-if test "${ac_cv_path_EGREP+set}" = set; then : ++if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 + else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 +@@ -4103,7 +4027,7 @@ + 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 ++ 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 +@@ -4118,7 +4042,7 @@ + + { $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 test "${ac_cv_header_stdc+set}" = set; then : ++if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -4235,8 +4159,7 @@ + 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 + " +-eval as_val=\$$as_ac_Header +- if test "x$as_val" = x""yes; then : ++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 +@@ -4248,7 +4171,7 @@ + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +-if test "x$ac_cv_header_minix_config_h" = x""yes; then : ++if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes + else + MINIX= +@@ -4270,7 +4193,7 @@ + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 + $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +-if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : ++if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -4371,30 +4294,35 @@ + + + +-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 ++ ++ ++ ++ ++ ++ ++ ++if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. ++set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_CC+set}" = set; then : ++if ${ac_cv_path_PKG_CONFIG+:} 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 ++ case $PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ 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" ++ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -4402,12 +4330,13 @@ + done + IFS=$as_save_IFS + ++ ;; ++esac + 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; } ++PKG_CONFIG=$ac_cv_path_PKG_CONFIG ++if test -n "$PKG_CONFIG"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 ++$as_echo "$PKG_CONFIG" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } +@@ -4415,26 +4344,28 @@ + + + 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 ++if test -z "$ac_cv_path_PKG_CONFIG"; then ++ ac_pt_PKG_CONFIG=$PKG_CONFIG ++ # Extract the first word of "pkg-config", so it can be a program name with args. ++set dummy pkg-config; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : ++if ${ac_cv_path_ac_pt_PKG_CONFIG+:} 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 ++ case $ac_pt_PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ 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" ++ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -4442,19 +4373,20 @@ + done + IFS=$as_save_IFS + ++ ;; ++esac + 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; } ++ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG ++if test -n "$ac_pt_PKG_CONFIG"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 ++$as_echo "$ac_pt_PKG_CONFIG" >&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="" ++ if test "x$ac_pt_PKG_CONFIG" = x; then ++ PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in + yes:) +@@ -4462,30 +4394,142 @@ + $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac +- CC=$ac_ct_CC ++ PKG_CONFIG=$ac_pt_PKG_CONFIG + fi + else +- CC="$ac_cv_prog_CC" ++ PKG_CONFIG="$ac_cv_path_PKG_CONFIG" + 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 test "${ac_cv_prog_CC+set}" = set; 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 ++fi ++if test -n "$PKG_CONFIG"; then ++ _pkg_min_version=0.9.0 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 ++$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } ++ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; 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" >&5 ++$as_echo "no" >&6; } ++ PKG_CONFIG="" ++ fi ++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 ++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 +@@ -4514,7 +4558,7 @@ + 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 test "${ac_cv_prog_CC+set}" = set; then : ++if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$CC"; then +@@ -4573,7 +4617,7 @@ + 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 test "${ac_cv_prog_CC+set}" = set; then : ++if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$CC"; then +@@ -4617,7 +4661,7 @@ + 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; then : ++if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_CC"; then +@@ -4671,8 +4715,8 @@ + + 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; } ++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 +@@ -4693,15 +4737,15 @@ + ... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 +- rm -f conftest.er1 conftest.err + fi ++ rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + done + + { $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 test "${ac_cv_c_compiler_gnu+set}" = set; then : ++if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -4738,7 +4782,7 @@ + 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 test "${ac_cv_prog_cc_g+set}" = set; then : ++if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_save_c_werror_flag=$ac_c_werror_flag +@@ -4816,7 +4860,7 @@ + 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 test "${ac_cv_prog_cc_c89+set}" = set; then : ++if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_cv_prog_cc_c89=no +@@ -4915,7 +4959,7 @@ + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 + $as_echo_n "checking dependency style of $depcc... " >&6; } +-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : ++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 +@@ -5046,8 +5090,8 @@ + + + +-macro_version='2.2.6' +-macro_revision='1.3012' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5065,27 +5109,27 @@ + + # 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_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 test "${ac_cv_build+set}" = set; then : ++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 ++ 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 ++ 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;; ++*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; + esac + build=$ac_cv_build + ac_save_IFS=$IFS; IFS='-' +@@ -5103,14 +5147,14 @@ + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 + $as_echo_n "checking host system type... " >&6; } +-if test "${ac_cv_host+set}" = set; then : ++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 ++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + fi + + fi +@@ -5118,7 +5162,7 @@ + $as_echo "$ac_cv_host" >&6; } + case $ac_cv_host in + *-*-*) ;; +-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; ++*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; + esac + host=$ac_cv_host + ac_save_IFS=$IFS; IFS='-' +@@ -5134,9 +5178,78 @@ + 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 test "${ac_cv_path_SED+set}" = set; then : ++if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +@@ -5191,7 +5304,7 @@ + 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 ++ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi + else + ac_cv_path_SED=$SED +@@ -5218,7 +5331,7 @@ + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 + $as_echo_n "checking for fgrep... " >&6; } +-if test "${ac_cv_path_FGREP+set}" = set; then : ++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 +@@ -5270,7 +5383,7 @@ + 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 ++ 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 +@@ -5349,7 +5462,7 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 + $as_echo_n "checking for non-GNU ld... " >&6; } + fi +-if test "${lt_cv_path_LD+set}" = set; then : ++if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -z "$LD"; then +@@ -5386,10 +5499,10 @@ + { $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 ++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 test "${lt_cv_prog_gnu_ld+set}" = set; then : ++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. +@@ -5416,7 +5529,7 @@ + + { $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 test "${lt_cv_path_NM+set}" = set; then : ++if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$NM"; then +@@ -5469,14 +5582,17 @@ + NM="$lt_cv_path_NM" + else + # Didn't find any BSD compatible name lister, look for dumpbin. +- if test -n "$ac_tool_prefix"; then +- for ac_prog in "dumpbin -symbols" "link -dump -symbols" ++ 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 test "${ac_cv_prog_DUMPBIN+set}" = set; then : ++if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DUMPBIN"; then +@@ -5514,13 +5630,13 @@ + fi + if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN +- for ac_prog in "dumpbin -symbols" "link -dump -symbols" ++ 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 test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : ++if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_DUMPBIN"; then +@@ -5569,6 +5685,15 @@ + 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" +@@ -5583,18 +5708,18 @@ + + { $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 test "${lt_cv_nm_interface+set}" = set; then : ++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:5591: $ac_compile\"" >&5) ++ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 +- (eval echo "\"\$as_me:5594: $NM \\\"conftest.$ac_objext\\\"\"" >&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:5597: output\"" >&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" +@@ -5618,7 +5743,7 @@ + # 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 test "${lt_cv_sys_max_cmd_len+set}" = set; then : ++if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 + else + i=0 +@@ -5651,6 +5776,11 @@ + 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. +@@ -5715,8 +5845,8 @@ + # 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"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ +- = "XX$teststring$teststring"; } >/dev/null 2>&1 && ++ while { test "X"`func_fallback_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` +@@ -5758,8 +5888,8 @@ + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ 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 +@@ -5808,9 +5938,83 @@ + + + ++{ $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 test "${lt_cv_ld_reload_flag+set}" = set; then : ++if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_ld_reload_flag='-r' +@@ -5824,6 +6028,11 @@ + 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' +@@ -5846,7 +6055,7 @@ + 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 test "${ac_cv_prog_OBJDUMP+set}" = set; then : ++if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$OBJDUMP"; then +@@ -5886,7 +6095,7 @@ + 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 test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : ++if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_OBJDUMP"; then +@@ -5945,7 +6154,7 @@ + + { $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 test "${lt_cv_deplibs_check_method+set}" = set; then : ++if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_file_magic_cmd='$MAGIC_CMD' +@@ -5987,16 +6196,18 @@ + # 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. +- if ( file / ) >/dev/null 2>&1; then ++ # 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 +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # 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) ++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' +@@ -6026,6 +6237,10 @@ + 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 +@@ -6034,11 +6249,11 @@ + 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]) shared object file - PA-RISC [0-9].[0-9]' ++ 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_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 +@@ -6060,11 +6275,11 @@ + ;; + + # This must be Linux ELF. +-linux* | k*bsd*-gnu) ++linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +-netbsd*) ++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 +@@ -6141,6 +6356,21 @@ + 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 +@@ -6156,16 +6386,26 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ # 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 test "${ac_cv_prog_AR+set}" = set; then : ++if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if test -n "$AR"; then +- ac_cv_prog_AR="$AR" # Let the user override the test. ++ 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 +@@ -6174,7 +6414,7 @@ + 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}ar" ++ 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 +@@ -6184,10 +6424,10 @@ + + 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; } ++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; } +@@ -6195,17 +6435,17 @@ + + + fi +-if test -z "$ac_cv_prog_AR"; then +- ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++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 test "${ac_cv_prog_ac_ct_AR+set}" = set; then : ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} 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. ++ 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 +@@ -6214,7 +6454,7 @@ + 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="ar" ++ 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 +@@ -6224,17 +6464,17 @@ + + 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; } ++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_AR" = x; then +- AR="false" ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in + yes:) +@@ -6242,14 +6482,13 @@ + $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac +- AR=$ac_ct_AR ++ DLLTOOL=$ac_ct_DLLTOOL + fi + else +- AR="$ac_cv_prog_AR" ++ DLLTOOL="$ac_cv_prog_DLLTOOL" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$DLLTOOL" && DLLTOOL=dlltool + + + +@@ -6260,17 +6499,225 @@ + + + +- +-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 test "${ac_cv_prog_STRIP+set}" = set; then : ++{ $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 +- if test -n "$STRIP"; then +- ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++ 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 +@@ -6306,7 +6753,7 @@ + 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 test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : ++if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_STRIP"; then +@@ -6365,7 +6812,7 @@ + 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 test "${ac_cv_prog_RANLIB+set}" = set; then : ++if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$RANLIB"; then +@@ -6405,7 +6852,7 @@ + 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 test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : ++if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_RANLIB"; then +@@ -6476,6 +6923,18 @@ + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + fi + ++case $host_os in ++ darwin*) ++ lock_old_archive_extraction=yes ;; ++ *) ++ lock_old_archive_extraction=no ;; ++esac ++ ++ ++ ++ ++ ++ + + + +@@ -6522,7 +6981,7 @@ + # 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 test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : ++if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 + else + +@@ -6583,8 +7042,8 @@ + 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'" ++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= +@@ -6620,6 +7079,7 @@ + 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 +@@ -6645,8 +7105,8 @@ + 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 ++ 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 +@@ -6661,6 +7121,18 @@ + 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 +@@ -6672,7 +7144,7 @@ + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -6698,8 +7170,8 @@ + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ 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 +@@ -6709,8 +7181,8 @@ + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -6747,6 +7219,22 @@ + $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 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -6764,6 +7252,39 @@ + + + ++{ $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; } ++ + + + +@@ -6799,7 +7320,7 @@ + ;; + *-*-irix6*) + # Find out which ABI we are using. +- echo '#line 6802 "configure"' > conftest.$ac_ext ++ 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=$? +@@ -6893,7 +7414,7 @@ + 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 test "${lt_cv_cc_needs_belf+set}" = set; then : ++if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_ext=c +@@ -6961,19 +7482,16 @@ + + need_locks="$enable_libtool_lock" + +- +- 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 ++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 test "${ac_cv_prog_DSYMUTIL+set}" = set; then : ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if test -n "$DSYMUTIL"; then +- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. ++ 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 +@@ -6982,7 +7500,7 @@ + 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" ++ 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 +@@ -6992,10 +7510,10 @@ + + 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; } ++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; } +@@ -7003,17 +7521,17 @@ + + + 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 ++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 test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} 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. ++ 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 +@@ -7022,7 +7540,7 @@ + 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" ++ 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 +@@ -7032,17 +7550,17 @@ + + 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; } ++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_DSYMUTIL" = x; then +- DSYMUTIL=":" ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in + yes:) +@@ -7050,22 +7568,50 @@ + $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac +- DSYMUTIL=$ac_ct_DSYMUTIL ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi + else +- DSYMUTIL="$ac_cv_prog_DSYMUTIL" ++ 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}nmedit", so it can be a program name with args. +-set dummy ${ac_tool_prefix}nmedit; ac_word=$2 ++ # 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 test "${ac_cv_prog_NMEDIT+set}" = set; then : ++if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if test -n "$NMEDIT"; then +- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. ++ 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 +@@ -7074,7 +7620,7 @@ + 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" ++ 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 +@@ -7084,7 +7630,99 @@ + + fi + fi +-NMEDIT=$ac_cv_prog_NMEDIT ++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; } +@@ -7101,7 +7739,7 @@ + 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 test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : ++if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_NMEDIT"; then +@@ -7153,7 +7791,7 @@ + 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 test "${ac_cv_prog_LIPO+set}" = set; then : ++if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$LIPO"; then +@@ -7193,7 +7831,7 @@ + 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 test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : ++if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_LIPO"; then +@@ -7245,7 +7883,7 @@ + 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 test "${ac_cv_prog_OTOOL+set}" = set; then : ++if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$OTOOL"; then +@@ -7285,7 +7923,7 @@ + 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 test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : ++if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_OTOOL"; then +@@ -7337,7 +7975,7 @@ + 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 test "${ac_cv_prog_OTOOL64+set}" = set; then : ++if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$OTOOL64"; then +@@ -7377,7 +8015,7 @@ + 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 test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : ++if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_OTOOL64"; then +@@ -7452,7 +8090,7 @@ + + { $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 test "${lt_cv_apple_cc_single_mod+set}" = set; then : ++if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_apple_cc_single_mod=no +@@ -7481,7 +8119,7 @@ + $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 test "${lt_cv_ld_exported_symbols_list+set}" = set; then : ++if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_ld_exported_symbols_list=no +@@ -7511,6 +8149,38 @@ + 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 -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; 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' ;; +@@ -7538,7 +8208,7 @@ + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi +- if test "$DSYMUTIL" != ":"; then ++ if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= +@@ -7550,7 +8220,7 @@ + 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" = x""yes; then : ++if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_DLFCN_H 1 + _ACEOF +@@ -7561,6 +8231,8 @@ + + + ++ ++ + # Set options + + +@@ -7653,6 +8325,7 @@ + + + ++ + test -z "$LN_S" && LN_S="ln -s" + + +@@ -7674,7 +8347,7 @@ + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 + $as_echo_n "checking for objdir... " >&6; } +-if test "${lt_cv_objdir+set}" = set; then : ++if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 + else + rm -f .libs 2>/dev/null +@@ -7702,19 +8375,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- + case $host_os in + aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some +@@ -7727,23 +8387,6 @@ + ;; + esac + +-# Sed substitution that helps us do robust quoting. It backslashifies +-# 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' +- + # Global variables: + ofile=libtool + can_build_shared=yes +@@ -7772,7 +8415,7 @@ + *) break;; + esac + done +-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ++cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + + # Only perform the check for file, if the check method requires it +@@ -7782,7 +8425,7 @@ + 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 test "${lt_cv_path_MAGIC_CMD+set}" = set; then : ++if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $MAGIC_CMD in +@@ -7848,7 +8491,7 @@ + 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 test "${lt_cv_path_MAGIC_CMD+set}" = set; then : ++if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $MAGIC_CMD in +@@ -7981,11 +8624,16 @@ + lt_prog_compiler_no_builtin_flag= + + if test "$GCC" = yes; then +- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ++ 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 test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : ++if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_prog_compiler_rtti_exceptions=no +@@ -8001,15 +8649,15 @@ + -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:8004: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:8008: \$? = $ac_status" >&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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp ++ $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 +@@ -8038,8 +8686,6 @@ + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $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 test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8087,6 +8733,12 @@ + 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 +@@ -8129,6 +8781,13 @@ + lt_prog_compiler_pic='-fPIC' + ;; + esac ++ ++ case $cc_basename in ++ nvcc*) # Cuda Compiler Driver 2.2 ++ lt_prog_compiler_wl='-Xlinker ' ++ lt_prog_compiler_pic='-Xcompiler -fPIC' ++ ;; ++ esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in +@@ -8170,7 +8829,7 @@ + lt_prog_compiler_static='-non_shared' + ;; + +- linux* | k*bsd*-gnu) ++ linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) +@@ -8191,7 +8850,13 @@ + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; +- pgcc* | pgf77* | pgf90* | pgf95*) ++ 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,' +@@ -8203,25 +8868,25 @@ + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; +- xl*) +- # IBM XL C 8.0/Fortran 10.1 on PPC ++ 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\ C*) +- # Sun C 5.9 ++ *Sun\ F* | *Sun*Fortran*) ++ # 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='-Wl,' ++ lt_prog_compiler_wl='' + ;; +- *Sun\ F*) +- # Sun Fortran 8.3 passes all unrecognized flags to the linker ++ *Sun\ C*) ++ # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' +- lt_prog_compiler_wl='' ++ lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; +@@ -8253,7 +8918,7 @@ + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8310,13 +8975,17 @@ + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $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. +@@ -8324,7 +8993,7 @@ + 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 test "${lt_cv_prog_compiler_pic_works+set}" = set; then : ++if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_prog_compiler_pic_works=no +@@ -8340,15 +9009,15 @@ + -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:8343: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:8347: \$? = $ac_status" >&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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp ++ $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 +@@ -8377,13 +9046,18 @@ + + + ++ ++ ++ ++ ++ + # + # 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 test "${lt_cv_prog_compiler_static_works+set}" = set; then : ++if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_prog_compiler_static_works=no +@@ -8396,7 +9070,7 @@ + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 +- $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp ++ $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 +@@ -8426,7 +9100,7 @@ + + { $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 test "${lt_cv_prog_compiler_c_o+set}" = set; then : ++if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_prog_compiler_c_o=no +@@ -8445,16 +9119,16 @@ + -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:8448: $lt_compile\"" >&5) ++ (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:8452: \$? = $ac_status" >&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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp ++ $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 +@@ -8481,7 +9155,7 @@ + + { $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 test "${lt_cv_prog_compiler_c_o+set}" = set; then : ++if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_prog_compiler_c_o=no +@@ -8500,16 +9174,16 @@ + -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:8503: $lt_compile\"" >&5) ++ (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:8507: \$? = $ac_status" >&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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp ++ $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 +@@ -8619,10 +9293,39 @@ + 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}' + +@@ -8640,6 +9343,7 @@ + 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 ... +@@ -8655,11 +9359,12 @@ + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +-*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** 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 modify your PATH +-*** so that a non-GNU linker is found, and then restart. ++*** 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 +@@ -8695,10 +9400,12 @@ + # _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/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ 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' +@@ -8716,6 +9423,11 @@ + 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 +@@ -8731,7 +9443,7 @@ + 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) ++ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in +@@ -8741,15 +9453,16 @@ + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then +- tmp_addflag= ++ 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ 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*) # 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ 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' ;; +@@ -8760,13 +9473,17 @@ + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; +- xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) ++ 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ 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 +@@ -8782,17 +9499,17 @@ + fi + + case $cc_basename in +- xlf*) ++ 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= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ 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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -8801,13 +9518,13 @@ + fi + ;; + +- netbsd*) ++ 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 $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' ++ 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 + ;; + +@@ -8825,8 +9542,8 @@ + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- 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' ++ 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 +@@ -8872,8 +9589,8 @@ + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- 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' ++ 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 +@@ -8913,8 +9630,10 @@ + 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")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ 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 +@@ -8976,6 +9695,7 @@ + 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 +@@ -9001,7 +9721,13 @@ + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ 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 +@@ -9014,25 +9740,32 @@ + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-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 "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ 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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ 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' +@@ -9041,7 +9774,13 @@ + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ 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 +@@ -9054,30 +9793,42 @@ + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-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 "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ 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' +- # Exported symbols can be pulled into shared objects from archives +- whole_archive_flag_spec='$convenience' ++ 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' +@@ -9109,20 +9860,63 @@ + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # 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 `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ 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 ++ 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*) +@@ -9132,7 +9926,11 @@ + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported +- whole_archive_flag_spec='' ++ 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 +@@ -9140,7 +9938,7 @@ + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then +- output_verbose_link_cmd=echo ++ 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}" +@@ -9183,7 +9981,7 @@ + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ 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 +@@ -9191,7 +9989,7 @@ + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ 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 +@@ -9206,8 +10004,8 @@ + ;; + + hpux10*) +- if test "$GCC" = yes -a "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ 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 +@@ -9225,16 +10023,16 @@ + ;; + + hpux11*) +- if test "$GCC" = yes -a "$with_gnu_ld" = no; then ++ 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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -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 +@@ -9246,7 +10044,46 @@ + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -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 +@@ -9274,26 +10111,39 @@ + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ 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. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # 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) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ 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" +- else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' ++ 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' +@@ -9302,7 +10152,7 @@ + link_all_deplibs=yes + ;; + +- netbsd*) ++ 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 +@@ -9355,17 +10205,17 @@ + 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' ++ 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ 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" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ 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' +@@ -9375,13 +10225,13 @@ + 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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ 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" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ 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 "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $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' +@@ -9394,9 +10244,9 @@ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ 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 ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $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"*) +@@ -9584,44 +10434,50 @@ + # 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; } +- $RM conftest* +- echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++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 ++ 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 ++ 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 +- archive_cmds_need_lc=no +- else +- archive_cmds_need_lc=yes +- fi +- allow_undefined_flag=$lt_save_allow_undefined_flag +- else +- cat conftest.err 1>&5 +- fi +- $RM conftest* +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 +-$as_echo "$archive_cmds_need_lc" >&6; } ++ 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 +@@ -9792,16 +10648,23 @@ + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac +- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` +- if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then ++ 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 -e 's/;/ /g'` +- else +- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` +- fi ++ 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= +@@ -9814,7 +10677,7 @@ + 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 ' ++ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' + BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; +@@ -9834,7 +10697,13 @@ + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } + }'` +- sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` ++ # 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 +@@ -9922,7 +10791,7 @@ + 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=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ++ 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 + ;; +@@ -9953,8 +10822,9 @@ + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ 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}`~ +@@ -9975,36 +10845,83 @@ + 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="/usr/lib /lib/w32api /lib /usr/local/lib" ++ ++ 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}' +- sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` +- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then +- # It is most probably a Windows format PATH printed by +- # mingw gcc, but we are running on Cygwin. Gcc prints its search +- # path with ; separators, and with drive letters. We can handle the +- # drive letters (cygwin fileutils understands them), so leave them, +- # especially as we might pass files found there to a mingw objdump, +- # which wouldn't understand a cygwinified path. Ahh. +- 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 + ;; + 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 +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10088,6 +11005,20 @@ + 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 ++ 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 + ;; + +@@ -10133,8 +11064,10 @@ + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac +- # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ # 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]*) +@@ -10192,7 +11125,7 @@ + ;; + + # This must be Linux ELF. +-linux* | k*bsd*-gnu) ++linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no +@@ -10201,12 +11134,17 @@ + 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 +- 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 ++ 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 +@@ -10219,13 +11157,17 @@ + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : +- shlibpath_overrides_runpath=yes ++ 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 ++ 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 +@@ -10234,7 +11176,7 @@ + + # 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;/^$/d' | tr '\n' ' '` ++ 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 + +@@ -10247,6 +11189,18 @@ + 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 +@@ -10537,6 +11491,11 @@ + + + ++ ++ ++ ++ ++ + { $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= +@@ -10609,7 +11568,7 @@ + # 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 test "${ac_cv_lib_dl_dlopen+set}" = set; then : ++if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -10643,7 +11602,7 @@ + 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" = x""yes; then : ++if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" + else + +@@ -10657,12 +11616,12 @@ + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +-if test "x$ac_cv_func_shl_load" = x""yes; then : ++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 test "${ac_cv_lib_dld_shl_load+set}" = set; then : ++if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -10696,16 +11655,16 @@ + 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" = x""yes; then : ++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" = x""yes; then : ++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 test "${ac_cv_lib_dl_dlopen+set}" = set; then : ++if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -10739,12 +11698,12 @@ + 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" = x""yes; then : ++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 test "${ac_cv_lib_svld_dlopen+set}" = set; then : ++if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -10778,12 +11737,12 @@ + 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" = x""yes; then : ++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 test "${ac_cv_lib_dld_dld_link+set}" = set; then : ++if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -10817,7 +11776,7 @@ + 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" = x""yes; then : ++if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" + fi + +@@ -10858,7 +11817,7 @@ + + { $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 test "${lt_cv_dlopen_self+set}" = set; then : ++if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test "$cross_compiling" = yes; then : +@@ -10867,7 +11826,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 10870 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -10908,7 +11867,13 @@ + # endif + #endif + +-void fnord() { int i=42;} ++/* 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); +@@ -10917,7 +11882,11 @@ + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; +- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else ++ { ++ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else puts (dlerror ()); ++ } + /* dlclose (self); */ + } + else +@@ -10954,7 +11923,7 @@ + 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 test "${lt_cv_dlopen_self_static+set}" = set; then : ++if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test "$cross_compiling" = yes; then : +@@ -10963,7 +11932,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 10966 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11004,7 +11973,13 @@ + # endif + #endif + +-void fnord() { int i=42;} ++/* 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); +@@ -11013,7 +11988,11 @@ + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; +- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else ++ { ++ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else puts (dlerror ()); ++ } + /* dlclose (self); */ + } + else +@@ -11252,22 +12231,127 @@ + fi + + ++if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozjs185\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "mozjs185") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ JS_LIB_BASE=mozjs185 ++fi ++if test "x$JS_LIB_BASE" != "x" ; then ++ ++pkg_failed=no ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS" >&5 ++$as_echo_n "checking for JS... " >&6; } ++ ++if test -n "$JS_CFLAGS"; then ++ pkg_cv_JS_CFLAGS="$JS_CFLAGS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$JS_LIB_BASE\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "$JS_LIB_BASE") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ pkg_cv_JS_CFLAGS=`$PKG_CONFIG --cflags "$JS_LIB_BASE" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++if test -n "$JS_LIBS"; then ++ pkg_cv_JS_LIBS="$JS_LIBS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$JS_LIB_BASE\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "$JS_LIB_BASE") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ pkg_cv_JS_LIBS=`$PKG_CONFIG --libs "$JS_LIB_BASE" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++ ++ ++ ++if test $pkg_failed = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi ++ if test $_pkg_short_errors_supported = yes; then ++ JS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$JS_LIB_BASE" 2>&1` ++ else ++ JS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$JS_LIB_BASE" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$JS_PKG_ERRORS" >&5 ++ ++ as_fn_error $? "Package requirements ($JS_LIB_BASE) were not met: ++ ++$JS_PKG_ERRORS ++ ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. ++ ++Alternatively, you may set the environment variables JS_CFLAGS ++and JS_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details." "$LINENO" 5 ++elif test $pkg_failed = untried; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it ++is in your PATH or set the PKG_CONFIG environment variable to the full ++path to pkg-config. ++ ++Alternatively, you may set the environment variables JS_CFLAGS ++and JS_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. ++ ++To get pkg-config, see . ++See \`config.log' for more details" "$LINENO" 5; } ++else ++ JS_CFLAGS=$pkg_cv_JS_CFLAGS ++ JS_LIBS=$pkg_cv_JS_LIBS ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ++fi ++ JS_LIB_DIR=`$PKG_CONFIG --variable=libdir $JS_LIB_BASE` ++ JS_LIB_FLAGS="-L$JS_LIB_DIR" ++fi ++ ++if test "x$JS_LIB_BASE" == "x" ; then + + # Check whether --with-js-include was given. + if test "${with_js_include+set}" = set; then : + withval=$with_js_include; +- JS_INCLUDE="$withval" +- JS_FLAGS="-I$JS_INCLUDE" ++ JS_INCLUDE="$withval" ++ JS_CFLAGS="-I$JS_INCLUDE" + + else + +- JS_FLAGS="-I/usr/include" +- JS_FLAGS="$JS_FLAGS -I/usr/include/js" +- JS_FLAGS="$JS_FLAGS -I/usr/include/mozjs" +- JS_FLAGS="$JS_FLAGS -I/usr/local/include" +- JS_FLAGS="$JS_FLAGS -I/opt/local/include" +- JS_FLAGS="$JS_FLAGS -I/usr/local/include/js" +- JS_FLAGS="$JS_FLAGS -I/opt/local/include/js" ++ JS_CFLAGS="-I/usr/include" ++ JS_CFLAGS="$JS_CFLAGS -I/usr/include/js" ++ JS_CFLAGS="$JS_CFLAGS -I/usr/include/mozjs" ++ JS_CFLAGS="$JS_CFLAGS -I/usr/local/include" ++ JS_CFLAGS="$JS_CFLAGS -I/opt/local/include" ++ JS_CFLAGS="$JS_CFLAGS -I/usr/local/include/js" ++ JS_CFLAGS="$JS_CFLAGS -I/opt/local/include/js" + + fi + +@@ -11276,12 +12360,14 @@ + # Check whether --with-js-lib was given. + if test "${with_js_lib+set}" = set; then : + withval=$with_js_lib; +- JS_LIB_DIR=$withval +- JS_LIB_FLAGS="-L$withval" ++ JS_LIB_DIR=$withval ++ JS_LIB_FLAGS="-L$withval" + + else + +- JS_LIB_DIR= ++ JS_LIB_DIR= ++ ++fi + + fi + +@@ -11295,7 +12381,7 @@ + + case "$(uname -s)" in + CYGWIN*) +- FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_FLAGS -DXP_WIN $FLAGS" ++ FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_CFLAGS -DXP_WIN $FLAGS" + CPPFLAGS="$FLAGS $CPPFLAGS" + LDFLAGS="$FLAGS $LDFLAGS" + IS_WINDOWS="TRUE" +@@ -11306,7 +12392,7 @@ + ;; + *) + # XP_UNIX required for jsapi.h and has been tested to work on Linux and Darwin. +- FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_FLAGS -DXP_UNIX $FLAGS" ++ FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_CFLAGS -DXP_UNIX $FLAGS" + CPPFLAGS="$FLAGS $CPPFLAGS" + # manually linking libm is requred for FreeBSD 7.0 + LDFLAGS="$FLAGS -lm $LDFLAGS" +@@ -11317,18 +12403,288 @@ + WINDOWS_TRUE= + WINDOWS_FALSE='#' + else +- WINDOWS_TRUE='#' +- WINDOWS_FALSE= ++ WINDOWS_TRUE='#' ++ WINDOWS_FALSE= ++fi ++ ++ ++if test "x$JS_LIB_BASE" == "x" ; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewContext in -lmozjs" >&5 ++$as_echo_n "checking for JS_NewContext in -lmozjs... " >&6; } ++if ${ac_cv_lib_mozjs_JS_NewContext+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lmozjs $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 JS_NewContext (); ++int ++main () ++{ ++return JS_NewContext (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_mozjs_JS_NewContext=yes ++else ++ ac_cv_lib_mozjs_JS_NewContext=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_mozjs_JS_NewContext" >&5 ++$as_echo "$ac_cv_lib_mozjs_JS_NewContext" >&6; } ++if test "x$ac_cv_lib_mozjs_JS_NewContext" = xyes; then : ++ JS_LIB_BASE=mozjs ++else ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewContext in -ljs" >&5 ++$as_echo_n "checking for JS_NewContext in -ljs... " >&6; } ++if ${ac_cv_lib_js_JS_NewContext+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ljs $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 JS_NewContext (); ++int ++main () ++{ ++return JS_NewContext (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_js_JS_NewContext=yes ++else ++ ac_cv_lib_js_JS_NewContext=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_js_JS_NewContext" >&5 ++$as_echo "$ac_cv_lib_js_JS_NewContext" >&6; } ++if test "x$ac_cv_lib_js_JS_NewContext" = xyes; then : ++ JS_LIB_BASE=js ++else ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewContext in -ljs3250" >&5 ++$as_echo_n "checking for JS_NewContext in -ljs3250... " >&6; } ++if ${ac_cv_lib_js3250_JS_NewContext+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ljs3250 $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 JS_NewContext (); ++int ++main () ++{ ++return JS_NewContext (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_js3250_JS_NewContext=yes ++else ++ ac_cv_lib_js3250_JS_NewContext=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_js3250_JS_NewContext" >&5 ++$as_echo "$ac_cv_lib_js3250_JS_NewContext" >&6; } ++if test "x$ac_cv_lib_js3250_JS_NewContext" = xyes; then : ++ JS_LIB_BASE=js3250 ++else ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewContext in -ljs32" >&5 ++$as_echo_n "checking for JS_NewContext in -ljs32... " >&6; } ++if ${ac_cv_lib_js32_JS_NewContext+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ljs32 $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 JS_NewContext (); ++int ++main () ++{ ++return JS_NewContext (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_js32_JS_NewContext=yes ++else ++ ac_cv_lib_js32_JS_NewContext=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_js32_JS_NewContext" >&5 ++$as_echo "$ac_cv_lib_js32_JS_NewContext" >&6; } ++if test "x$ac_cv_lib_js32_JS_NewContext" = xyes; then : ++ JS_LIB_BASE=js32 ++else ++ ++ as_fn_error $? "Could not find the js library. ++ ++ Is the Mozilla SpiderMonkey library installed?" "$LINENO" 5 ++fi ++ ++fi ++ ++fi ++ ++fi ++ ++ ++ JS_LIBS=-l$JS_LIB_BASE ++ ++fi ++ ++ ++ ++as_ac_Lib=`$as_echo "ac_cv_lib_$JS_LIB_BASE''_JS_FreezeObject" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_FreezeObject in -l$JS_LIB_BASE" >&5 ++$as_echo_n "checking for JS_FreezeObject in -l$JS_LIB_BASE... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-l$JS_LIB_BASE $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 JS_FreezeObject (); ++int ++main () ++{ ++return JS_FreezeObject (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ eval "$as_ac_Lib=yes" ++else ++ eval "$as_ac_Lib=no" ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ++ ++$as_echo "#define HAVE_JS_FREEZE_OBJECT 1" >>confdefs.h ++ ++fi ++ ++ ++as_ac_Lib=`$as_echo "ac_cv_lib_$JS_LIB_BASE''_JS_NewGlobalObject" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewGlobalObject in -l$JS_LIB_BASE" >&5 ++$as_echo_n "checking for JS_NewGlobalObject in -l$JS_LIB_BASE... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-l$JS_LIB_BASE $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 JS_NewGlobalObject (); ++int ++main () ++{ ++return JS_NewGlobalObject (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ eval "$as_ac_Lib=yes" ++else ++ eval "$as_ac_Lib=no" ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ++ ++$as_echo "#define HAVE_JS_NEW_GLOBAL_OBJECT 1" >>confdefs.h ++ + fi + + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewContext in -lmozjs" >&5 +-$as_echo_n "checking for JS_NewContext in -lmozjs... " >&6; } +-if test "${ac_cv_lib_mozjs_JS_NewContext+set}" = set; then : ++as_ac_Lib=`$as_echo "ac_cv_lib_$JS_LIB_BASE''_JS_GetStringCharsAndLength" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_GetStringCharsAndLength in -l$JS_LIB_BASE" >&5 ++$as_echo_n "checking for JS_GetStringCharsAndLength in -l$JS_LIB_BASE... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lmozjs $LIBS" ++LIBS="-l$JS_LIB_BASE $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -11338,37 +12694,42 @@ + #ifdef __cplusplus + extern "C" + #endif +-char JS_NewContext (); ++char JS_GetStringCharsAndLength (); + int + main () + { +-return JS_NewContext (); ++return JS_GetStringCharsAndLength (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_mozjs_JS_NewContext=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_mozjs_JS_NewContext=no ++ eval "$as_ac_Lib=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_mozjs_JS_NewContext" >&5 +-$as_echo "$ac_cv_lib_mozjs_JS_NewContext" >&6; } +-if test "x$ac_cv_lib_mozjs_JS_NewContext" = x""yes; then : +- JS_LIB_BASE=mozjs +-else ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewContext in -ljs" >&5 +-$as_echo_n "checking for JS_NewContext in -ljs... " >&6; } +-if test "${ac_cv_lib_js_JS_NewContext+set}" = set; then : ++$as_echo "#define HAVE_JS_GET_STRING_CHARS_AND_LENGTH 1" >>confdefs.h ++ ++fi ++ ++ ++as_ac_Lib=`$as_echo "ac_cv_lib_$JS_LIB_BASE''_JS_NewCompartmentAndGlobalObject" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewCompartmentAndGlobalObject in -l$JS_LIB_BASE" >&5 ++$as_echo_n "checking for JS_NewCompartmentAndGlobalObject in -l$JS_LIB_BASE... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-ljs $LIBS" ++LIBS="-l$JS_LIB_BASE $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -11378,37 +12739,42 @@ + #ifdef __cplusplus + extern "C" + #endif +-char JS_NewContext (); ++char JS_NewCompartmentAndGlobalObject (); + int + main () + { +-return JS_NewContext (); ++return JS_NewCompartmentAndGlobalObject (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_js_JS_NewContext=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_js_JS_NewContext=no ++ eval "$as_ac_Lib=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_js_JS_NewContext" >&5 +-$as_echo "$ac_cv_lib_js_JS_NewContext" >&6; } +-if test "x$ac_cv_lib_js_JS_NewContext" = x""yes; then : +- JS_LIB_BASE=js +-else ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewContext in -ljs3250" >&5 +-$as_echo_n "checking for JS_NewContext in -ljs3250... " >&6; } +-if test "${ac_cv_lib_js3250_JS_NewContext+set}" = set; then : ++$as_echo "#define HAVE_COMPARTMENTS 1" >>confdefs.h ++ ++fi ++ ++ ++as_ac_Lib=`$as_echo "ac_cv_lib_$JS_LIB_BASE''_JS_StrictPropertyStub" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_StrictPropertyStub in -l$JS_LIB_BASE" >&5 ++$as_echo_n "checking for JS_StrictPropertyStub in -l$JS_LIB_BASE... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-ljs3250 $LIBS" ++LIBS="-l$JS_LIB_BASE $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -11418,37 +12784,42 @@ + #ifdef __cplusplus + extern "C" + #endif +-char JS_NewContext (); ++char JS_StrictPropertyStub (); + int + main () + { +-return JS_NewContext (); ++return JS_StrictPropertyStub (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_js3250_JS_NewContext=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_js3250_JS_NewContext=no ++ eval "$as_ac_Lib=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_js3250_JS_NewContext" >&5 +-$as_echo "$ac_cv_lib_js3250_JS_NewContext" >&6; } +-if test "x$ac_cv_lib_js3250_JS_NewContext" = x""yes; then : +- JS_LIB_BASE=js3250 +-else ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_NewContext in -ljs32" >&5 +-$as_echo_n "checking for JS_NewContext in -ljs32... " >&6; } +-if test "${ac_cv_lib_js32_JS_NewContext+set}" = set; then : ++$as_echo "#define HAVE_JS_STRICT_PROPERTY_STUB 1" >>confdefs.h ++ ++fi ++ ++ ++as_ac_Lib=`$as_echo "ac_cv_lib_$JS_LIB_BASE''_JS_DestroyScript" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JS_DestroyScript in -l$JS_LIB_BASE" >&5 ++$as_echo_n "checking for JS_DestroyScript in -l$JS_LIB_BASE... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-ljs32 $LIBS" ++LIBS="-l$JS_LIB_BASE $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -11458,44 +12829,41 @@ + #ifdef __cplusplus + extern "C" + #endif +-char JS_NewContext (); ++char JS_DestroyScript (); + int + main () + { +-return JS_NewContext (); ++return JS_DestroyScript (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_js32_JS_NewContext=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_js32_JS_NewContext=no ++ eval "$as_ac_Lib=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_js32_JS_NewContext" >&5 +-$as_echo "$ac_cv_lib_js32_JS_NewContext" >&6; } +-if test "x$ac_cv_lib_js32_JS_NewContext" = x""yes; then : +- JS_LIB_BASE=js32 +-else +- +- as_fn_error "Could not find the js library. ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_LIB$JS_LIB_BASE" | $as_tr_cpp` 1 ++_ACEOF + +-Is the Mozilla SpiderMonkey library installed?" "$LINENO" 5 +-fi ++ LIBS="-l$JS_LIB_BASE $LIBS" + +-fi ++else + +-fi ++$as_echo "#define HAVE_SCRIPT_AS_OBJECT 1" >>confdefs.h + + fi + + +- +- + if test x${IS_WINDOWS} = xTRUE; then + if test -f "$JS_LIB_DIR/$JS_LIB_BASE.dll"; then + # seamonkey 1.7- build layout on Windows +@@ -11505,7 +12873,7 @@ + if test -f "$JS_LIB_DIR/../bin/$JS_LIB_BASE.dll"; then + JS_LIB_BINARY="$JS_LIB_DIR/../bin/$JS_LIB_BASE.dll" + else +- as_fn_error "Could not find $JS_LIB_BASE.dll." "$LINENO" 5 ++ as_fn_error $? "Could not find $JS_LIB_BASE.dll." "$LINENO" 5 + fi + fi + +@@ -11526,7 +12894,7 @@ + set dummy iscc; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_INNO_COMPILER_EXECUTABLE+set}" = set; then : ++if ${ac_cv_path_INNO_COMPILER_EXECUTABLE+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $INNO_COMPILER_EXECUTABLE in +@@ -11588,21 +12956,19 @@ + fi + fi + +-JSLIB=-l$JS_LIB_BASE +- + ac_fn_c_check_header_mongrel "$LINENO" "jsapi.h" "ac_cv_header_jsapi_h" "$ac_includes_default" +-if test "x$ac_cv_header_jsapi_h" = x""yes; then : ++if test "x$ac_cv_header_jsapi_h" = xyes; then : + + else + + ac_fn_c_check_header_mongrel "$LINENO" "js/jsapi.h" "ac_cv_header_js_jsapi_h" "$ac_includes_default" +-if test "x$ac_cv_header_js_jsapi_h" = x""yes; then : ++if test "x$ac_cv_header_js_jsapi_h" = xyes; then : + + CPPFLAGS="$CPPFLAGS -I$JS_INCLUDE/js" + + else + +- as_fn_error "Could not find the jsapi header. ++ as_fn_error $? "Could not find the jsapi header. + + Are the Mozilla SpiderMonkey headers installed?" "$LINENO" 5 + +@@ -11613,8 +12979,6 @@ + + + +- +- + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11642,6 +13006,49 @@ + + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++CFLAGS="$JS_CFLAGS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++static JSFunctionSpec fs; ++ fs.extra = 0; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++$as_echo "#define JS_FS_HAS_EXTRA 1" >>confdefs.h ++ ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++CFLAGS="$CFLAGS -Werror" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ static JSBool op(JSContext* cx, JSObject* obj, jsid id, jsval* vp) {} ++int ++main () ++{ ++static JSPropertySpec spec; ++ spec.getter = op; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++$as_echo "#define JS_PROPERTY_OP_HAS_ID_AS_JSID 1" >>confdefs.h ++ ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$OLD_CFLAGS" + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' +@@ -11669,7 +13076,7 @@ + set dummy icu-config; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_ICU_CONFIG+set}" = set; then : ++if ${ac_cv_path_ICU_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $ICU_CONFIG in +@@ -11756,7 +13163,7 @@ + if test $succeeded = yes; then + : + else +- as_fn_error "Library requirements (ICU) not met." "$LINENO" 5 ++ as_fn_error $? "Library requirements (ICU) not met." "$LINENO" 5 + fi + + ICU_LOCAL_CFLAGS=`$ICU_CONFIG --cppflags-searchpath` +@@ -11790,7 +13197,7 @@ + set dummy curl-config; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_CURL_CONFIG+set}" = set; then : ++if ${ac_cv_path_CURL_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $CURL_CONFIG in +@@ -11869,7 +13276,7 @@ + if test $succeeded = yes; then + : + else +- as_fn_error "Library requirements (curl) not met." "$LINENO" 5 ++ as_fn_error $? "Library requirements (curl) not met." "$LINENO" 5 + fi + + CURL_LDFLAGS=-lcurl +@@ -11898,7 +13305,7 @@ + set dummy erl; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_ERL+set}" = set; then : ++if ${ac_cv_path_ERL+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $ERL in +@@ -11936,7 +13343,7 @@ + + + if test x${ERL} = x; then +- as_fn_error "Could not find the \`erl' executable. Is Erlang installed?" "$LINENO" 5 ++ as_fn_error $? "Could not find the \`erl' executable. Is Erlang installed?" "$LINENO" 5 + fi + + erlang_version_error="The installed Erlang version is less than 5.6.5 (R12B05)." +@@ -11944,16 +13351,16 @@ + version="`${ERL} -version 2>&1 | ${SED} "s/[^0-9]/ /g"`" + + if test `echo $version | ${AWK} "{print \\$1}"` -lt 5; then +- as_fn_error "$erlang_version_error" "$LINENO" 5 ++ as_fn_error $? "$erlang_version_error" "$LINENO" 5 + fi + + if test `echo $version | ${AWK} "{print \\$2}"` -lt 6; then +- as_fn_error "$erlang_version_error" "$LINENO" 5 ++ as_fn_error $? "$erlang_version_error" "$LINENO" 5 + fi + + if test `echo $version | ${AWK} "{print \\$2}"` -eq 6; then + if test `echo $version | ${AWK} "{print \\$3}"` -lt 5; then +- as_fn_error "$erlang_version_error" "$LINENO" 5 ++ as_fn_error $? "$erlang_version_error" "$LINENO" 5 + fi + fi + +@@ -11961,7 +13368,7 @@ + set dummy erlc; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_ERLC+set}" = set; then : ++if ${ac_cv_path_ERLC+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $ERLC in +@@ -11999,15 +13406,15 @@ + + + if test x${ERLC} = x; then +- as_fn_error "Could not find the \`erlc' executable. Is Erlang installed?" "$LINENO" 5 ++ as_fn_error $? "Could not find the \`erlc' executable. Is Erlang installed?" "$LINENO" 5 + fi + + ac_fn_c_check_header_mongrel "$LINENO" "erl_driver.h" "ac_cv_header_erl_driver_h" "$ac_includes_default" +-if test "x$ac_cv_header_erl_driver_h" = x""yes; then : ++if test "x$ac_cv_header_erl_driver_h" = xyes; then : + + else + +- as_fn_error "Could not find the \`erl_driver.h' header. ++ as_fn_error $? "Could not find the \`erl_driver.h' header. + + Are the Erlang headers installed? Use the \`--with-erlang' option to specify the + path to the Erlang include directory." "$LINENO" 5 +@@ -12019,7 +13426,7 @@ + set dummy help2man; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_HELP2MAN_EXECUTABLE+set}" = set; then : ++if ${ac_cv_path_HELP2MAN_EXECUTABLE+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $HELP2MAN_EXECUTABLE in +@@ -12352,10 +13759,21 @@ + :end' >>confcache + if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then +- test "x$cache_file" != "x/dev/null" && ++ 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;} +- cat confcache >$cache_file ++ 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;} +@@ -12371,6 +13789,7 @@ + + 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$//' +@@ -12394,35 +13813,35 @@ + fi + + if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then +- as_fn_error "conditional \"AMDEP\" was never defined. ++ 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. ++ as_fn_error $? "conditional \"am__fastdepCC\" 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. ++ as_fn_error $? "conditional \"am__fastdepCC\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then +- as_fn_error "conditional \"WINDOWS\" was never defined. ++ as_fn_error $? "conditional \"WINDOWS\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${INIT_TRUE}" && test -z "${INIT_FALSE}"; then +- as_fn_error "conditional \"INIT\" was never defined. ++ as_fn_error $? "conditional \"INIT\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${LAUNCHD_TRUE}" && test -z "${LAUNCHD_FALSE}"; then +- as_fn_error "conditional \"LAUNCHD\" was never defined. ++ as_fn_error $? "conditional \"LAUNCHD\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${HELP2MAN_TRUE}" && test -z "${HELP2MAN_FALSE}"; then +- as_fn_error "conditional \"HELP2MAN\" was never defined. ++ as_fn_error $? "conditional \"HELP2MAN\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + +-: ${CONFIG_STATUS=./config.status} ++: "${CONFIG_STATUS=./config.status}" + ac_write_fail=0 + ac_clean_files_save=$ac_clean_files + ac_clean_files="$ac_clean_files $CONFIG_STATUS" +@@ -12523,6 +13942,7 @@ + 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 +@@ -12568,19 +13988,19 @@ + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +-# as_fn_error ERROR [LINENO LOG_FD] +-# --------------------------------- ++# 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. ++# script with STATUS, using 1 if that was 0. + as_fn_error () + { +- as_status=$?; test $as_status -eq 0 && as_status=1 +- if test "$3"; then +- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 ++ 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: $1" >&2 ++ $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status + } # as_fn_error + +@@ -12776,7 +14196,7 @@ + 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" ++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + + } # as_fn_mkdir_p +@@ -12830,7 +14250,7 @@ + # values after options handling. + ac_log=" + This file was extended by Apache CouchDB $as_me 1.0.1, which was +-generated by GNU Autoconf 2.64. Invocation command line was ++generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -12870,6 +14290,7 @@ + + -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 +@@ -12892,12 +14313,13 @@ + + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ + Apache CouchDB config.status 1.0.1 +-configured by $0, generated by GNU Autoconf 2.64, +- with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" ++configured by $0, generated by GNU Autoconf 2.68, ++ with options \\"\$ac_cs_config\\" + +-Copyright (C) 2009 Free Software Foundation, Inc. ++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." + +@@ -12915,11 +14337,16 @@ + 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 +@@ -12933,12 +14360,15 @@ + 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;; +@@ -12951,7 +14381,7 @@ + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header +- as_fn_error "ambiguous option: \`$1' ++ as_fn_error $? "ambiguous option: \`$1' + Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; +@@ -12960,7 +14390,7 @@ + ac_cs_silent=: ;; + + # This is an error. +- -*) as_fn_error "unrecognized option: \`$1' ++ -*) as_fn_error $? "unrecognized option: \`$1' + Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" +@@ -13014,131 +14444,153 @@ + sed_quote_subst='$sed_quote_subst' + double_quote_subst='$double_quote_subst' + delay_variable_subst='$delay_variable_subst' +-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' +-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' +-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' +-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' +-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' +-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' +-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' +-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' +-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' +-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' +-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' +-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' +-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' +-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' +-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' +-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' +-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' +-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' +-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' +-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' +-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' +-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' +-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' +-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' +-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' +-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' +-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' +-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' +-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' +-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' +-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' +-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' +-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' +-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' +-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' +-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' +-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' +-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' +-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' +-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' +-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' +-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' +-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' +-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' +-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' +-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' +-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' +-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' +-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' +-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' +-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' +-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' +-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' +-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' +-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' +-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' +-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' +-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' +-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' +-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' +-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' +-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' +-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' +-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' +-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' +-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' +-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' +-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' +-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' +-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' +-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' +-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' +-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' +-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' +-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' ++enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' ++enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' ++macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' ++macro_revision='`$ECHO "$macro_revision" | $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"`' ++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_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $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 SED \ ++for var in SHELL \ ++ECHO \ ++SED \ + GREP \ + EGREP \ + FGREP \ +@@ -13151,8 +14603,13 @@ + 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 \ +@@ -13162,14 +14619,14 @@ + 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 \ +-SHELL \ +-ECHO \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + 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 \ +@@ -13185,7 +14642,6 @@ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -13193,12 +14649,13 @@ + libname_spec \ + library_names_spec \ + soname_spec \ ++install_override_mode \ + finish_eval \ + old_striplib \ + striplib; do +- case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in ++ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) +- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" +@@ -13220,14 +14677,15 @@ + 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 "X\\\\\$\$var"\` in ++ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) +- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" +@@ -13235,12 +14693,6 @@ + esac + done + +-# Fix-up fallback echo if it was mangled by the above quoting rules. +-case \$lt_ECHO in +-*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` +- ;; +-esac +- + ac_aux_dir='$ac_aux_dir' + xsi_shell='$xsi_shell' + lt_shell_append='$lt_shell_append' +@@ -13306,7 +14758,7 @@ + "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;; + "var/Makefile") CONFIG_FILES="$CONFIG_FILES var/Makefile" ;; + +- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; ++ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac + done + +@@ -13329,9 +14781,10 @@ + # after its creation but before its name has been assigned to `$tmp'. + $debug || + { +- tmp= ++ tmp= ac_tmp= + trap 'exit_status=$? +- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $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 + } +@@ -13339,12 +14792,13 @@ + + { + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && +- test -n "$tmp" && test -d "$tmp" ++ test -d "$tmp" + } || + { + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 ++} || 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. +@@ -13361,12 +14815,12 @@ + fi + ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` + if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then +- ac_cs_awk_cr='\r' ++ ac_cs_awk_cr='\\r' + else + ac_cs_awk_cr=$ac_cr + fi + +-echo 'BEGIN {' >"$tmp/subs1.awk" && ++echo 'BEGIN {' >"$ac_tmp/subs1.awk" && + _ACEOF + + +@@ -13375,18 +14829,18 @@ + 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 '$'` ++ 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 ++ 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 ++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +@@ -13394,7 +14848,7 @@ + rm -f conf$$subs.sh + + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +-cat >>"\$tmp/subs1.awk" <<\\_ACAWK && ++cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && + _ACEOF + sed -n ' + h +@@ -13408,7 +14862,7 @@ + t delim + :nl + h +-s/\(.\{148\}\).*/\1/ ++s/\(.\{148\}\)..*/\1/ + t more1 + s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ + p +@@ -13422,7 +14876,7 @@ + t nl + :delim + h +-s/\(.\{148\}\).*/\1/ ++s/\(.\{148\}\)..*/\1/ + t more2 + s/["\\]/\\&/g; s/^/"/; s/$/"/ + p +@@ -13442,7 +14896,7 @@ + rm -f conf$$subs.awk + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + _ACAWK +-cat >>"\$tmp/subs1.awk" <<_ACAWK && ++cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +@@ -13474,21 +14928,29 @@ + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" + else + cat +-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +- || as_fn_error "could not setup config files machinery" "$LINENO" 5 ++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 $(srcdir), +-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and ++# 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[ ]*=/{ +-s/:*\$(srcdir):*/:/ +-s/:*\${srcdir}:*/:/ +-s/:*@srcdir@:*/:/ +-s/^\([^=]*=[ ]*\):*/\1/ ++ 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 +@@ -13500,7 +14962,7 @@ + # 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 >"$tmp/defines.awk" <<\_ACAWK || ++cat >"$ac_tmp/defines.awk" <<\_ACAWK || + BEGIN { + _ACEOF + +@@ -13512,11 +14974,11 @@ + # handling of long lines. + ac_delim='%!_!# ' + for ac_last_try in false false :; do +- ac_t=`sed -n "/$ac_delim/p" confdefs.h` +- if test -z "$ac_t"; then ++ 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 ++ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +@@ -13601,7 +15063,7 @@ + _ACAWK + _ACEOF + cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +- as_fn_error "could not setup config headers machinery" "$LINENO" 5 ++ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 + fi # test -n "$CONFIG_HEADERS" + + +@@ -13614,7 +15076,7 @@ + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; +- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; ++ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac +@@ -13633,7 +15095,7 @@ + for ac_f + do + case $ac_f in +- -) ac_f="$tmp/stdin";; ++ -) 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 `:'. +@@ -13642,7 +15104,7 @@ + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || +- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; ++ 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'" +@@ -13668,8 +15130,8 @@ + esac + + case $ac_tag in +- *:-:* | *:-) cat >"$tmp/stdin" \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; ++ *:-:* | *:-) cat >"$ac_tmp/stdin" \ ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac +@@ -13805,23 +15267,24 @@ + s&@MKDIR_P@&$ac_MKDIR_P&;t t + $ac_datarootdir_hack + " +-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 ++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' "$tmp/out"`; test -n "$ac_out"; } && +- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && ++ { 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 ++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;} ++which seems to be undefined. Please make sure it is defined" >&2;} + +- rm -f "$tmp/stdin" ++ rm -f "$ac_tmp/stdin" + case $ac_file in +- -) cat "$tmp/out" && rm -f "$tmp/out";; +- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; ++ -) 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 ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # +@@ -13830,21 +15293,21 @@ + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ +- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" +- } >"$tmp/config.h" \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 +- if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then ++ && 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 "$tmp/config.h" "$ac_file" \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ 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 "$tmp/defines.awk"' "$ac_file_inputs" \ +- || as_fn_error "could not create -" "$LINENO" 5 ++ && 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" +@@ -14005,7 +15468,8 @@ + # 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 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -14053,6 +15517,12 @@ + # 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 host system. + host_alias=$host_alias + host=$host +@@ -14102,9 +15572,11 @@ + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + +-# How to create reloadable object files. +-reload_flag=$lt_reload_flag +-reload_cmds=$lt_reload_cmds ++# 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 +@@ -14112,13 +15584,30 @@ + # 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". ++# 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 + +@@ -14127,6 +15616,9 @@ + 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 + +@@ -14145,14 +15637,14 @@ + # 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 + +-# The name of the directory that contains temporary libtool files. +-objdir=$objdir ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec + +-# Shell to use when invoking shell scripts. +-SHELL=$lt_SHELL ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot + +-# An echo program that does not interpret backslashes. +-ECHO=$lt_ECHO ++# 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 +@@ -14160,6 +15652,9 @@ + # 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 + +@@ -14216,6 +15711,9 @@ + # 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 + +@@ -14255,6 +15753,10 @@ + # 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 + +@@ -14267,12 +15769,12 @@ + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # 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 + +@@ -14359,9 +15861,6 @@ + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -14377,6 +15876,9 @@ + # 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 + +@@ -14409,212 +15911,169 @@ + # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# 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 () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# 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 () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# 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_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}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# 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 () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "X${1}" | $Xsed -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 file +-func_basename () +-{ +- func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +-} +- +- +-# 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 "X${3}" \ +- | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "X${3}" \ +- | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac ++ 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 + +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) + +- mv -f "$cfgfile" "$ofile" || ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +@@ -14629,7 +16088,7 @@ + ac_clean_files=$ac_clean_files_save + + test $ac_write_fail = 0 || +- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 ++ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + + # configure is writing to config.log, and then calls config.status. +@@ -14650,7 +16109,7 @@ + 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 $? ++ $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 +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//etc/couchdb/Makefile.in couchdb-1.0.1.new//etc/couchdb/Makefile.in +--- couchdb-1.0.1//etc/couchdb/Makefile.in 2010-08-11 19:18:52.000000000 +0100 ++++ couchdb-1.0.1.new//etc/couchdb/Makefile.in 2011-06-14 18:31:46.873876897 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -94,6 +94,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -121,7 +122,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -134,6 +136,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -149,6 +152,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -159,6 +165,7 @@ + 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@ +@@ -203,7 +210,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//etc/default/Makefile.in couchdb-1.0.1.new//etc/default/Makefile.in +--- couchdb-1.0.1//etc/default/Makefile.in 2010-08-11 19:18:52.000000000 +0100 ++++ couchdb-1.0.1.new//etc/default/Makefile.in 2011-06-14 18:31:46.933877673 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -69,6 +69,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -96,7 +97,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -109,6 +111,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -124,6 +127,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -134,6 +140,7 @@ + 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@ +@@ -178,7 +185,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//etc/init/Makefile.in couchdb-1.0.1.new//etc/init/Makefile.in +--- couchdb-1.0.1//etc/init/Makefile.in 2010-08-11 19:18:52.000000000 +0100 ++++ couchdb-1.0.1.new//etc/init/Makefile.in 2011-06-14 18:31:46.993878444 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -70,6 +70,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -97,7 +98,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -110,6 +112,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -125,6 +128,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -135,6 +141,7 @@ + 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@ +@@ -179,7 +186,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//etc/launchd/Makefile.in couchdb-1.0.1.new//etc/launchd/Makefile.in +--- couchdb-1.0.1//etc/launchd/Makefile.in 2010-08-11 19:18:52.000000000 +0100 ++++ couchdb-1.0.1.new//etc/launchd/Makefile.in 2011-06-14 18:31:47.053879213 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -70,6 +70,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -97,7 +98,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -110,6 +112,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -125,6 +128,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -135,6 +141,7 @@ + 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@ +@@ -179,7 +186,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//etc/logrotate.d/Makefile.in couchdb-1.0.1.new//etc/logrotate.d/Makefile.in +--- couchdb-1.0.1//etc/logrotate.d/Makefile.in 2010-08-11 19:18:52.000000000 +0100 ++++ couchdb-1.0.1.new//etc/logrotate.d/Makefile.in 2011-06-14 18:31:47.103879863 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -70,6 +70,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -97,7 +98,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -110,6 +112,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -125,6 +128,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -135,6 +141,7 @@ + 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@ +@@ -179,7 +186,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//etc/Makefile.in couchdb-1.0.1.new//etc/Makefile.in +--- couchdb-1.0.1//etc/Makefile.in 2010-08-11 19:18:52.000000000 +0100 ++++ couchdb-1.0.1.new//etc/Makefile.in 2011-06-14 18:31:46.803876005 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -138,6 +138,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -165,7 +166,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -178,6 +180,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -193,6 +196,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -203,6 +209,7 @@ + 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@ +@@ -247,7 +254,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +@@ -397,7 +403,7 @@ + # (which will cause the Makefiles to be regenerated when you run `make'); + # (2) otherwise, pass the desired values on the `make' command line. + $(RECURSIVE_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +@@ -422,7 +428,7 @@ + fi; test -z "$$fail" + + $(RECURSIVE_CLEAN_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//etc/windows/Makefile.in couchdb-1.0.1.new//etc/windows/Makefile.in +--- couchdb-1.0.1//etc/windows/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//etc/windows/Makefile.in 2011-06-14 18:31:47.163880636 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -69,6 +69,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -96,7 +97,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -109,6 +111,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -124,6 +127,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -134,6 +140,7 @@ + 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@ +@@ -178,7 +185,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//m4/libtool.m4 couchdb-1.0.1.new//m4/libtool.m4 +--- couchdb-1.0.1//m4/libtool.m4 2010-08-11 19:18:48.000000000 +0100 ++++ couchdb-1.0.1.new//m4/libtool.m4 2011-06-14 18:31:33.643706782 +0100 +@@ -1,7 +1,8 @@ + # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is free software; the Free Software Foundation gives +@@ -10,7 +11,8 @@ + + m4_define([_LT_COPYING], [dnl + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -37,7 +39,7 @@ + # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ]) + +-# serial 56 LT_INIT ++# serial 57 LT_INIT + + + # LT_PREREQ(VERSION) +@@ -66,6 +68,7 @@ + # ------------------ + 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 +@@ -82,6 +85,8 @@ + 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]) + +@@ -118,7 +123,7 @@ + *) break;; + esac + done +-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ++cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + ]) + + +@@ -138,6 +143,9 @@ + 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([], [host_alias], [0], [The host system])dnl + _LT_DECL([], [host], [0])dnl + _LT_DECL([], [host_os], [0])dnl +@@ -160,10 +168,13 @@ + 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 +@@ -179,7 +190,6 @@ + _LT_CHECK_OBJDIR + + m4_require([_LT_TAG_COMPILER])dnl +-_LT_PROG_ECHO_BACKSLASH + + case $host_os in + aix3*) +@@ -193,23 +203,6 @@ + ;; + esac + +-# Sed substitution that helps us do robust quoting. It backslashifies +-# 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' +- + # Global variables: + ofile=libtool + can_build_shared=yes +@@ -250,6 +243,28 @@ + ])# _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' +@@ -408,7 +423,7 @@ + # 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 "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) ++[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + + # _LT_CONFIG_STATUS_DECLARATIONS +@@ -418,7 +433,7 @@ + # embedded single quotes properly. In configure, this macro expands + # each variable declared with _LT_DECL (and _LT_TAGDECL) into: + # +-# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' ++# ='`$ECHO "$" | $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)])])]) +@@ -517,12 +532,20 @@ + 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 "X\\\\\$\$var"\` in ++ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) +- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" +@@ -533,9 +556,9 @@ + # Double-quote double-evaled strings. + for var in lt_decl_all_varnames([[ \ + ]], lt_decl_dquote_varnames); do +- case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in ++ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) +- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" +@@ -543,16 +566,38 @@ + esac + done + +-# Fix-up fallback echo if it was mangled by the above quoting rules. +-case \$lt_ECHO in +-*'\\\[$]0 --fallback-echo"')dnl " +- lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` +- ;; +-esac +- + _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 + # --------- +@@ -562,20 +607,11 @@ + AC_DEFUN([LT_OUTPUT], + [: ${CONFIG_LT=./config.lt} + AC_MSG_NOTICE([creating $CONFIG_LT]) +-cat >"$CONFIG_LT" <<_LTEOF +-#! $SHELL +-# Generated by $as_me. +-# Run this file to recreate a libtool stub with the current configuration. +- +-lt_cl_silent=false +-SHELL=\${CONFIG_SHELL-$SHELL} +-_LTEOF ++_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], ++[# Run this file to recreate a libtool stub with the current configuration.]) + + cat >>"$CONFIG_LT" <<\_LTEOF +-AS_SHELL_SANITIZE +-_AS_PREPARE +- +-exec AS_MESSAGE_FD>&1 ++lt_cl_silent=false + exec AS_MESSAGE_LOG_FD>>config.log + { + echo +@@ -601,7 +637,7 @@ + m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) + configured by $[0], generated by m4_PACKAGE_STRING. + +-Copyright (C) 2008 Free Software Foundation, Inc. ++Copyright (C) 2010 Free Software Foundation, Inc. + This config.lt script is free software; the Free Software Foundation + gives unlimited permision to copy, distribute and modify it." + +@@ -646,15 +682,13 @@ + # 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. +-if test "$no_create" != yes; then +- 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) +-fi ++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 + + +@@ -717,15 +751,12 @@ + # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) + +- _LT_PROG_XSI_SHELLFNS ++ _LT_PROG_REPLACE_SHELLFNS + +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + ], +@@ -831,11 +862,13 @@ + 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 +@@ -940,6 +973,31 @@ + [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 -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; 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' ;; +@@ -967,7 +1025,7 @@ + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi +- if test "$DSYMUTIL" != ":"; then ++ if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= +@@ -987,7 +1045,11 @@ + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +- _LT_TAGVAR(whole_archive_flag_spec, $1)='' ++ 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\"`' ++ 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 +@@ -995,7 +1057,7 @@ + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then +- output_verbose_link_cmd=echo ++ 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}" +@@ -1011,203 +1073,142 @@ + fi + ]) + +-# _LT_SYS_MODULE_PATH_AIX +-# ----------------------- ++# _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 +-AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-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 "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi],[]) +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++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], +-[ifdef([AC_DIVERSION_NOTICE], +- [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], +- [AC_DIVERT_PUSH(NOTICE)]) +-$1 +-AC_DIVERT_POP +-])# _LT_SHELL_INIT ++[m4_divert_text([M4SH-INIT], [$1 ++])])# _LT_SHELL_INIT ++ + + + # _LT_PROG_ECHO_BACKSLASH + # ----------------------- +-# Add some code to the start of the generated configure script which +-# will find an echo command which doesn't interpret backslashes. ++# 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], +-[_LT_SHELL_INIT([ +-# Check that we are running under the correct shell. +-SHELL=${CONFIG_SHELL-/bin/sh} +- +-case X$lt_ECHO in +-X*--fallback-echo) +- # Remove one level of quotation (which was required for Make). +- ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` +- ;; +-esac +- +-ECHO=${lt_ECHO-echo} +-if test "X[$]1" = X--no-reexec; then +- # Discard the --no-reexec flag, and continue. +- shift +-elif test "X[$]1" = X--fallback-echo; then +- # Avoid inline document here, it may be left over +- : +-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then +- # Yippee, $ECHO works! +- : ++[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 +- # Restart under the correct shell. +- exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +-fi +- +-if test "X[$]1" = X--fallback-echo; then +- # used as fallback echo +- shift +- cat <<_LT_EOF +-[$]* +-_LT_EOF +- exit 0 ++ # Use this function as a fallback that always works. ++ func_fallback_echo () ++ { ++ eval 'cat <<_LTECHO_EOF ++$[]1 ++_LTECHO_EOF' ++ } ++ ECHO='func_fallback_echo' + fi + +-# 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 +- +-if test -z "$lt_ECHO"; then +- if test "X${echo_test_string+set}" != Xset; then +- # find a string as large as possible, as long as the shell can cope with it +- for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do +- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... +- if { echo_test_string=`eval $cmd`; } 2>/dev/null && +- { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null +- then +- break +- fi +- done +- fi +- +- if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && +- echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- : +- else +- # The Solaris, AIX, and Digital Unix default echo programs unquote +- # backslashes. This makes it impossible to quote backslashes using +- # echo "$something" | sed 's/\\/\\\\/g' +- # +- # So, first we look for a working echo in the user's PATH. +- +- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +- for dir in $PATH /usr/ucb; do +- IFS="$lt_save_ifs" +- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && +- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && +- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- ECHO="$dir/echo" +- break +- fi +- done +- IFS="$lt_save_ifs" +- +- if test "X$ECHO" = Xecho; then +- # We didn't find a better echo, so look for alternatives. +- if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && +- echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- # This shell has a builtin print -r that does the trick. +- ECHO='print -r' +- elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && +- test "X$CONFIG_SHELL" != X/bin/ksh; then +- # If we have ksh, try running configure again with it. +- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} +- export ORIGINAL_CONFIG_SHELL +- CONFIG_SHELL=/bin/ksh +- export CONFIG_SHELL +- exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} +- else +- # Try using printf. +- ECHO='printf %s\n' +- if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && +- echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- # Cool, printf works +- : +- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && +- test "X$echo_testing_string" = 'X\t' && +- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL +- export CONFIG_SHELL +- SHELL="$CONFIG_SHELL" +- export SHELL +- ECHO="$CONFIG_SHELL [$]0 --fallback-echo" +- elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && +- test "X$echo_testing_string" = 'X\t' && +- echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && +- test "X$echo_testing_string" = "X$echo_test_string"; then +- ECHO="$CONFIG_SHELL [$]0 --fallback-echo" +- else +- # maybe with a smaller string... +- prev=: +- +- for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do +- if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null +- then +- break +- fi +- prev="$cmd" +- done ++# func_echo_all arg... ++# Invoke $ECHO with all args, space-separated. ++func_echo_all () ++{ ++ $ECHO "$*" ++} + +- if test "$prev" != 'sed 50q "[$]0"'; then +- echo_test_string=`eval $prev` +- export echo_test_string +- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} +- else +- # Oops. We lost completely, so just stick with echo. +- ECHO=echo +- fi +- fi +- fi +- fi +- fi +-fi ++case "$ECHO" in ++ printf*) AC_MSG_RESULT([printf]) ;; ++ print*) AC_MSG_RESULT([print -r]) ;; ++ *) AC_MSG_RESULT([cat]) ;; ++esac + +-# Copy echo and quote the copy suitably for passing to libtool from +-# the Makefile, instead of quoting the original, which is used later. +-lt_ECHO=$ECHO +-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then +- lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +-fi ++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" )])]) + +-AC_SUBST(lt_ECHO) +-]) + _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +-_LT_DECL([], [ECHO], [1], +- [An echo program that does not interpret backslashes]) ++_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], +@@ -1236,7 +1237,7 @@ + ;; + *-*-irix6*) + # Find out which ABI we are using. +- echo '[#]line __oline__ "configure"' > conftest.$ac_ext ++ 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 +@@ -1354,14 +1355,47 @@ + ])# _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], +-[AC_CHECK_TOOL(AR, ar, false) +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru +-_LT_DECL([], [AR], [1], [The archiver]) +-_LT_DECL([], [AR_FLAGS], [1]) ++[_LT_PROG_AR + + AC_CHECK_TOOL(STRIP, strip, :) + test -z "$STRIP" && STRIP=: +@@ -1388,10 +1422,19 @@ + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$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 + + +@@ -1416,15 +1459,15 @@ + -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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) ++ (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:__oline__: \$? = $ac_status" >&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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp ++ $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 +@@ -1464,7 +1507,7 @@ + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD +- $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp ++ $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 +@@ -1527,6 +1570,11 @@ + 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. +@@ -1591,8 +1639,8 @@ + # 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"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ +- = "XX$teststring$teststring"; } >/dev/null 2>&1 && ++ while { test "X"`func_fallback_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` +@@ -1643,7 +1691,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-[#line __oline__ "configure" ++[#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -1684,7 +1732,13 @@ + # endif + #endif + +-void fnord() { int i=42;} ++/* 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); +@@ -1693,7 +1747,11 @@ + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; +- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else ++ { ++ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else puts (dlerror ()); ++ } + /* dlclose (self); */ + } + else +@@ -1869,16 +1927,16 @@ + -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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) ++ (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:__oline__: \$? = $ac_status" >&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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp ++ $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 +@@ -2037,6 +2095,7 @@ + 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], + [], [ +@@ -2045,16 +2104,23 @@ + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac +- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` +- if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then ++ 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 -e 's/;/ /g'` +- else +- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` +- fi ++ 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= +@@ -2067,7 +2133,7 @@ + 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 ' ++ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' + BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; +@@ -2087,7 +2153,13 @@ + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } + }'` +- sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` ++ # 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]) +@@ -2175,7 +2247,7 @@ + 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=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ++ 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 + ;; +@@ -2206,8 +2278,9 @@ + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ 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}`~ +@@ -2228,36 +2301,83 @@ + 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="/usr/lib /lib/w32api /lib /usr/local/lib" ++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}' +- sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` +- if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then +- # It is most probably a Windows format PATH printed by +- # mingw gcc, but we are running on Cygwin. Gcc prints its search +- # path with ; separators, and with drive letters. We can handle the +- # drive letters (cygwin fileutils understands them), so leave them, +- # especially as we might pass files found there to a mingw objdump, +- # which wouldn't understand a cygwinified path. Ahh. +- 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 + ;; + 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 +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -2341,6 +2461,20 @@ + 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 ++ 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 + ;; + +@@ -2386,8 +2520,10 @@ + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac +- # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ # 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]]*) +@@ -2445,7 +2581,7 @@ + ;; + + # This must be Linux ELF. +-linux* | k*bsd*-gnu) ++linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no +@@ -2454,16 +2590,21 @@ + 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 +- 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], +- [shlibpath_overrides_runpath=yes])]) +- LDFLAGS=$save_LDFLAGS +- libdir=$save_libdir ++ 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 +@@ -2472,7 +2613,7 @@ + + # 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;/^$/d' | tr '\n' ' '` ++ 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 + +@@ -2485,6 +2626,18 @@ + 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 +@@ -2705,6 +2858,8 @@ + 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], +@@ -2817,6 +2972,7 @@ + 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], +@@ -2938,6 +3094,11 @@ + 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' +@@ -2946,8 +3107,8 @@ + fi + ;; + esac +-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl +-_LT_DECL([], [reload_cmds], [2])dnl ++_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl ++_LT_TAGDECL([], [reload_cmds], [2])dnl + ])# _LT_CMD_RELOAD + + +@@ -2999,16 +3160,18 @@ + # 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. +- if ( file / ) >/dev/null 2>&1; then ++ # 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 +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # 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) ++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' +@@ -3038,6 +3201,10 @@ + 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 +@@ -3046,11 +3213,11 @@ + 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]) shared object file - PA-RISC [0-9].[0-9]'] ++ [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_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 +@@ -3072,11 +3239,11 @@ + ;; + + # This must be Linux ELF. +-linux* | k*bsd*-gnu) ++linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +-netbsd*) ++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 +@@ -3150,6 +3317,21 @@ + ;; + 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 +@@ -3157,7 +3339,11 @@ + _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"]) ++ [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 + + +@@ -3214,7 +3400,19 @@ + NM="$lt_cv_path_NM" + else + # Didn't find any BSD compatible name lister, look for dumpbin. +- AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) ++ 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" +@@ -3227,13 +3425,13 @@ + 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:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) ++ (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:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&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:__oline__: output\"" >&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" +@@ -3248,20 +3446,81 @@ + 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' + +-# LT_LIB_M +-# -------- +-# check for math library +-AC_DEFUN([LT_LIB_M], +-[AC_REQUIRE([AC_CANONICAL_HOST])dnl +-LIBM= +-case $host in +-*-*-beos* | *-*-cygwin* | *-*-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") ++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") +@@ -3284,7 +3543,12 @@ + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + + if test "$GCC" = yes; then +- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ++ 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, +@@ -3301,6 +3565,7 @@ + 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 +@@ -3368,8 +3633,8 @@ + 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'" ++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= +@@ -3405,6 +3670,7 @@ + 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 +@@ -3426,7 +3692,7 @@ + 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 ++ 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" +@@ -3438,6 +3704,18 @@ + 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@_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT@&t@_DLSYM_CONST ++#else ++# define LT@&t@_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -3449,7 +3727,7 @@ + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -3475,15 +3753,15 @@ + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ 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_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi +@@ -3516,6 +3794,13 @@ + 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], +@@ -3526,6 +3811,8 @@ + _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 + + +@@ -3537,7 +3824,6 @@ + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)= + +-AC_MSG_CHECKING([for $compiler option to produce PIC]) + m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then +@@ -3588,6 +3874,11 @@ + # 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. +@@ -3637,6 +3928,12 @@ + ;; + 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++*) +@@ -3693,7 +3990,7 @@ + ;; + esac + ;; +- linux* | k*bsd*-gnu) ++ linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler +@@ -3726,8 +4023,8 @@ + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; +- xlc* | xlC*) +- # IBM XL 8.0 on PPC ++ 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' +@@ -3757,7 +4054,7 @@ + ;; + esac + ;; +- netbsd*) ++ netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise +@@ -3789,7 +4086,7 @@ + ;; + solaris*) + case $cc_basename in +- CC*) ++ 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' +@@ -3893,6 +4190,12 @@ + _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 +@@ -3935,6 +4238,13 @@ + _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 ' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' ++ ;; ++ esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in +@@ -3977,7 +4287,7 @@ + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + +- linux* | k*bsd*-gnu) ++ linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) +@@ -3998,7 +4308,13 @@ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; +- pgcc* | pgf77* | pgf90* | pgf95*) ++ 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,' +@@ -4010,25 +4326,25 @@ + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; +- xl*) +- # IBM XL C 8.0/Fortran 10.1 on PPC ++ 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\ C*) +- # Sun C 5.9 ++ *Sun\ F* | *Sun*Fortran*) ++ # 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)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; +- *Sun\ F*) +- # Sun Fortran 8.3 passes all unrecognized flags to the linker ++ *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)='' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; +@@ -4060,7 +4376,7 @@ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; +@@ -4117,9 +4433,11 @@ + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; + esac +-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], +- [How to pass a linker flag through the compiler]) ++ ++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. +@@ -4138,6 +4456,8 @@ + _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. + # +@@ -4158,6 +4478,7 @@ + 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 +@@ -4166,27 +4487,38 @@ + 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")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ _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*) +- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ case $cc_basename in ++ cl*) ;; ++ *) ++ _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 +- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + ], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= +@@ -4246,10 +4578,39 @@ + 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}' + +@@ -4267,6 +4628,7 @@ + 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 ... +@@ -4282,11 +4644,12 @@ + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +-*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** 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 modify your PATH +-*** so that a non-GNU linker is found, and then restart. ++*** 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 +@@ -4322,10 +4685,12 @@ + # _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/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ++ _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' +@@ -4343,6 +4708,11 @@ + 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 +@@ -4358,7 +4728,7 @@ + _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) ++ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in +@@ -4368,15 +4738,16 @@ + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then +- tmp_addflag= ++ 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ _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*) # 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ 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' ;; +@@ -4387,13 +4758,17 @@ + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; +- xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) ++ 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ _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 +@@ -4409,17 +4784,17 @@ + fi + + case $cc_basename in +- xlf*) ++ 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)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' +- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ _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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -4428,13 +4803,13 @@ + fi + ;; + +- netbsd*) ++ 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 $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' ++ _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 + ;; + +@@ -4452,8 +4827,8 @@ + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- _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' ++ _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 +@@ -4499,8 +4874,8 @@ + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- _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' ++ _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 +@@ -4540,8 +4915,10 @@ + 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")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ _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 +@@ -4603,6 +4980,7 @@ + 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 +@@ -4628,9 +5006,9 @@ + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ _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' +@@ -4639,14 +5017,19 @@ + else + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _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' +- # Exported symbols can be pulled into shared objects from archives +- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ++ 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' +@@ -4678,20 +5061,63 @@ + # Microsoft Visual C++. + # 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 +- # 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 `$ECHO "X$deplibs" | $Xsed -e '\''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(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' +- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ 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(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*) +@@ -4729,7 +5155,7 @@ + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ _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 +@@ -4737,7 +5163,7 @@ + + hpux9*) + if test "$GCC" = yes; then +- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ _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 +@@ -4752,8 +5178,8 @@ + ;; + + hpux10*) +- if test "$GCC" = yes -a "$with_gnu_ld" = no; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ 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 +@@ -4771,16 +5197,16 @@ + ;; + + hpux11*) +- if test "$GCC" = yes -a "$with_gnu_ld" = no; then ++ 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 -fPIC ${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}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -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 +@@ -4792,7 +5218,14 @@ + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -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 +@@ -4820,19 +5253,34 @@ + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _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. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- AC_LINK_IFELSE(int foo(void) {}, +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ) +- LDFLAGS="$save_LDFLAGS" ++ # 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" && $ECHO "X-set_version $verstring" | $Xsed` -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" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' ++ _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' +@@ -4841,7 +5289,7 @@ + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + +- netbsd*) ++ 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 +@@ -4894,17 +5342,17 @@ + _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(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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _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" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _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' +@@ -4914,13 +5362,13 @@ + 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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _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" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _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 "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $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' +@@ -4933,9 +5381,9 @@ + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _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 ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $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"*) +@@ -5111,36 +5559,38 @@ + # 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_MSG_CHECKING([whether -lc should be explicitly linked in]) +- $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_TAGVAR(archive_cmds_need_lc, $1)=no +- else +- _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* +- AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ++ 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 +@@ -5205,8 +5655,6 @@ + to runtime path list]) + _LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +-_LT_TAGDECL([], [fix_srcfile_path], [1], +- [Fix the shell variable $srcfile for the compiler]) + _LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) + _LT_TAGDECL([], [export_symbols_cmds], [2], +@@ -5217,6 +5665,8 @@ + [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 +@@ -5310,37 +5760,22 @@ + ])# _LT_LANG_C_CONFIG + + +-# _LT_PROG_CXX +-# ------------ +-# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ +-# compiler, we have our own version here. +-m4_defun([_LT_PROG_CXX], +-[ +-pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) +-AC_PROG_CXX +-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 +-popdef([AC_MSG_ERROR]) +-])# _LT_PROG_CXX +- +-dnl aclocal-1.4 backwards compatibility: +-dnl AC_DEFUN([_LT_PROG_CXX], []) +- +- + # _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], +-[AC_REQUIRE([_LT_PROG_CXX])dnl +-m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++[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 +@@ -5362,6 +5797,8 @@ + _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 +@@ -5393,6 +5830,7 @@ + + # 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 +@@ -5410,6 +5848,7 @@ + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} ++ CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) +@@ -5431,8 +5870,8 @@ + # 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 -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -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(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' +@@ -5464,7 +5903,7 @@ + # 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 "\-L"' ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no +@@ -5573,10 +6012,10 @@ + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. +- _LT_SYS_MODULE_PATH_AIX ++ _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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ _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' +@@ -5585,14 +6024,19 @@ + else + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _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' +- # Exported symbols can be pulled into shared objects from archives +- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ++ 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. +@@ -5622,28 +6066,75 @@ + ;; + + 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(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 +- ;; ++ 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) + ;; +@@ -5685,6 +6176,11 @@ + 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)=: +@@ -5709,11 +6205,11 @@ + # 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; $ECHO "X$list" | $Xsed' ++ 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 -fPIC ${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' ++ _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 +@@ -5774,7 +6270,7 @@ + # 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; $ECHO "X$list" | $Xsed' ++ 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 +@@ -5784,10 +6280,10 @@ + _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 -fPIC ${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}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -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 +@@ -5817,7 +6313,7 @@ + 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" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _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 +@@ -5828,9 +6324,9 @@ + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _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 -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' ++ _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 +@@ -5841,7 +6337,7 @@ + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + +- linux* | k*bsd*-gnu) ++ linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler +@@ -5859,7 +6355,7 @@ + # 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; $ECHO "X$list" | $Xsed' ++ 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' +@@ -5896,26 +6392,26 @@ + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in +- *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) ++ *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 | $NL2SP`"' ++ 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 | $NL2SP`~ ++ $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 | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $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 | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $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 will use weak symbols ++ *) # 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' + ;; +@@ -5923,7 +6419,7 @@ + + _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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ _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++ +@@ -5942,9 +6438,9 @@ + # 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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ++ 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*) ++ 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' +@@ -5964,13 +6460,13 @@ + _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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ _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='echo' ++ 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 +@@ -6039,7 +6535,7 @@ + _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=echo ++ output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +@@ -6074,15 +6570,15 @@ + 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" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _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" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _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 "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ ++ $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' + ;; +@@ -6098,17 +6594,17 @@ + # 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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ++ 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _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 -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${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 + +@@ -6118,7 +6614,7 @@ + # 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 "\-L"' ++ 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 +@@ -6154,7 +6650,7 @@ + + solaris*) + case $cc_basename in +- CC*) ++ 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' +@@ -6175,7 +6671,7 @@ + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + +- output_verbose_link_cmd='echo' ++ 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 +@@ -6195,14 +6691,14 @@ + 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 -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ++ _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 -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $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 "\-L"' ++ 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. +@@ -6213,7 +6709,7 @@ + # 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 "\-L"' ++ 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' +@@ -6267,6 +6763,10 @@ + 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' +@@ -6322,6 +6822,7 @@ + fi # test -n "$compiler" + + CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC +@@ -6336,6 +6837,29 @@ + ])# _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 +@@ -6344,6 +6868,7 @@ + # 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)= +@@ -6394,6 +6919,13 @@ + }; + _LT_EOF + ]) ++ ++_lt_libdeps_save_CFLAGS=$CFLAGS ++case "$CC $CFLAGS " in #( ++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; ++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; ++esac ++ + dnl Parse the compiler output and extract the necessary + dnl objects, libraries and library flags. + if AC_TRY_EVAL(ac_compile); then +@@ -6405,7 +6937,7 @@ + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do +- case $p in ++ case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. +@@ -6414,13 +6946,22 @@ + test $p = "-R"; then + prev=$p + continue +- else +- prev= + 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 $p in +- -L* | -R*) ++ 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. +@@ -6440,8 +6981,10 @@ + _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. +@@ -6477,6 +7020,7 @@ + fi + + $RM -f confest.$objext ++CFLAGS=$_lt_libdeps_save_CFLAGS + + # PORTME: override above test on systems where it is broken + m4_if([$1], [CXX], +@@ -6513,7 +7057,7 @@ + + solaris*) + case $cc_basename in +- CC*) ++ 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 +@@ -6557,32 +7101,16 @@ + ])# _LT_SYS_HIDDEN_LIBDEPS + + +-# _LT_PROG_F77 +-# ------------ +-# Since AC_PROG_F77 is broken, in that it returns the empty string +-# if there is no fortran compiler, we have our own version here. +-m4_defun([_LT_PROG_F77], +-[ +-pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) +-AC_PROG_F77 +-if test -z "$F77" || test "X$F77" = "Xno"; then +- _lt_disable_F77=yes +-fi +-popdef([AC_MSG_ERROR]) +-])# _LT_PROG_F77 +- +-dnl aclocal-1.4 backwards compatibility: +-dnl AC_DEFUN([_LT_PROG_F77], []) +- +- + # _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_REQUIRE([_LT_PROG_F77])dnl +-AC_LANG_PUSH(Fortran 77) ++[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)= +@@ -6601,6 +7129,8 @@ + _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 +@@ -6640,7 +7170,9 @@ + # 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]) +@@ -6694,38 +7226,24 @@ + + 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_PROG_FC +-# ----------- +-# Since AC_PROG_FC is broken, in that it returns the empty string +-# if there is no fortran compiler, we have our own version here. +-m4_defun([_LT_PROG_FC], +-[ +-pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) +-AC_PROG_FC +-if test -z "$FC" || test "X$FC" = "Xno"; then +- _lt_disable_FC=yes +-fi +-popdef([AC_MSG_ERROR]) +-])# _LT_PROG_FC +- +-dnl aclocal-1.4 backwards compatibility: +-dnl AC_DEFUN([_LT_PROG_FC], []) +- +- + # _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_REQUIRE([_LT_PROG_FC])dnl +-AC_LANG_PUSH(Fortran) ++[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)= +@@ -6744,6 +7262,8 @@ + _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 +@@ -6783,7 +7303,9 @@ + # 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 + +@@ -6839,7 +7361,8 @@ + fi # test -n "$compiler" + + GCC=$lt_save_GCC +- CC="$lt_save_CC" ++ CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS + fi # test "$_lt_disable_FC" != yes + + AC_LANG_POP +@@ -6876,10 +7399,12 @@ + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. +-lt_save_CC="$CC" ++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" +@@ -6889,6 +7414,8 @@ + _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 +@@ -6908,7 +7435,8 @@ + AC_LANG_RESTORE + + GCC=$lt_save_GCC +-CC="$lt_save_CC" ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS + ])# _LT_LANG_GCJ_CONFIG + + +@@ -6943,9 +7471,11 @@ + + # 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]) +@@ -6958,7 +7488,8 @@ + + GCC=$lt_save_GCC + AC_LANG_RESTORE +-CC="$lt_save_CC" ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS + ])# _LT_LANG_RC_CONFIG + + +@@ -7017,6 +7548,15 @@ + 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 + # ------------ +@@ -7110,8 +7650,8 @@ + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ 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 +@@ -7150,208 +7690,162 @@ + ])# _LT_CHECK_SHELL_FEATURES + + +-# _LT_PROG_XSI_SHELLFNS +-# --------------------- +-# Bourne and XSI compatible variants of some useful shell functions. +-m4_defun([_LT_PROG_XSI_SHELLFNS], +-[case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# 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 () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# 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 () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# 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_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}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} ++# _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=: ++]) + +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $[*] )) +-} + +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} ++# _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_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" ++ _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}"}]) + +-# 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 () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} ++ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl ++ func_split_long_opt_name=${1%%=*} ++ func_split_long_opt_arg=${1#*=}]) + +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +-} ++ _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"}]) + +-dnl func_dirname_and_basename +-dnl A portable version of this function is already defined in general.m4sh +-dnl so there is no need for it here. ++ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl ++ case ${1} in ++ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ++ *) func_lo2o_result=${1} ;; ++ esac]) + +-# 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 "X${3}" \ +- | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "X${3}" \ +- | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; +- esac +-} ++ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + +-# sed scripts: +-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[[^=]]*=//' ++ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) ++fi + +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +-} ++if test x"$lt_shell_append" = xyes; then ++ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` +-} ++ _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"]) + +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$[@]"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +-} ++ # 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 + +-_LT_EOF +-esac ++if test x"$_lt_function_replace_fail" = x":"; then ++ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) ++fi ++]) + +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$[1]+=\$[2]" +-} +-_LT_EOF ++# _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 + ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$[1]=\$$[1]\$[2]" +-} +- +-_LT_EOF ++ *-*-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 + ;; +- 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 -Nur -x '*.orig' -x '*~' couchdb-1.0.1//m4/lt~obsolete.m4 couchdb-1.0.1.new//m4/lt~obsolete.m4 +--- couchdb-1.0.1//m4/lt~obsolete.m4 2010-08-11 19:18:49.000000000 +0100 ++++ couchdb-1.0.1.new//m4/lt~obsolete.m4 2011-06-14 18:31:33.643706782 +0100 +@@ -1,13 +1,13 @@ + # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- + # +-# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. ++# 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 4 lt~obsolete.m4 ++# serial 5 lt~obsolete.m4 + + # These exist entirely to fool aclocal when bootstrapping libtool. + # +@@ -77,7 +77,6 @@ + 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_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) + 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])]) +@@ -90,3 +89,10 @@ + 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 -Nur -x '*.orig' -x '*~' couchdb-1.0.1//m4/ltoptions.m4 couchdb-1.0.1.new//m4/ltoptions.m4 +--- couchdb-1.0.1//m4/ltoptions.m4 2010-08-11 19:18:48.000000000 +0100 ++++ couchdb-1.0.1.new//m4/ltoptions.m4 2011-06-14 18:31:33.643706782 +0100 +@@ -1,13 +1,14 @@ + # Helper functions for option handling. -*- Autoconf -*- + # +-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. ++# 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 6 ltoptions.m4 ++# 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])]) +@@ -125,7 +126,7 @@ + [enable_win32_dll=yes + + case $host in +-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) ++*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) +@@ -133,13 +134,13 @@ + esac + + test -z "$AS" && AS=as +-_LT_DECL([], [AS], [0], [Assembler program])dnl ++_LT_DECL([], [AS], [1], [Assembler program])dnl + + test -z "$DLLTOOL" && DLLTOOL=dlltool +-_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl ++_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + + test -z "$OBJDUMP" && OBJDUMP=objdump +-_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ++_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl + ])# win32-dll + + AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//m4/ltversion.m4 couchdb-1.0.1.new//m4/ltversion.m4 +--- couchdb-1.0.1//m4/ltversion.m4 2010-08-11 19:18:48.000000000 +0100 ++++ couchdb-1.0.1.new//m4/ltversion.m4 2011-06-14 18:31:33.643706782 +0100 +@@ -7,17 +7,17 @@ + # unlimited permission to copy and/or distribute it, with or without + # modifications, as long as this notice is preserved. + +-# Generated from ltversion.in. ++# @configure_input@ + +-# serial 3012 ltversion.m4 ++# serial 3293 ltversion.m4 + # This file is part of GNU Libtool + +-m4_define([LT_PACKAGE_VERSION], [2.2.6]) +-m4_define([LT_PACKAGE_REVISION], [1.3012]) ++m4_define([LT_PACKAGE_VERSION], [2.4]) ++m4_define([LT_PACKAGE_REVISION], [1.3293]) + + AC_DEFUN([LTVERSION_VERSION], +-[macro_version='2.2.6' +-macro_revision='1.3012' ++[macro_version='2.4' ++macro_revision='1.3293' + _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) + _LT_DECL(, macro_revision, 0) + ]) +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//Makefile.in couchdb-1.0.1.new//Makefile.in +--- couchdb-1.0.1//Makefile.in 2010-08-11 19:18:54.000000000 +0100 ++++ couchdb-1.0.1.new//Makefile.in 2011-06-14 18:31:48.303895296 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -37,7 +37,7 @@ + subdir = . + DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ +- $(top_srcdir)/configure AUTHORS NEWS THANKS \ ++ $(top_srcdir)/configure AUTHORS INSTALL NEWS THANKS \ + build-aux/config.guess build-aux/config.sub build-aux/depcomp \ + build-aux/install-sh build-aux/ltmain.sh build-aux/missing + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -149,6 +149,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -176,7 +177,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -189,6 +191,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -204,6 +207,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -214,6 +220,7 @@ + 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@ +@@ -258,7 +265,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +@@ -412,7 +418,7 @@ + # (which will cause the Makefiles to be regenerated when you run `make'); + # (2) otherwise, pass the desired values on the `make' command line. + $(RECURSIVE_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +@@ -437,7 +443,7 @@ + fi; test -z "$$fail" + + $(RECURSIVE_CLEAN_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +@@ -604,7 +610,8 @@ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ +- || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ++ || 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 {} {} \; \ +@@ -648,17 +655,17 @@ + distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ +- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ ++ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ +- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ ++ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ +- unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ ++ lzma -dc $(distdir).tar.lzma | $(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) gunzip -c $(distdir).shar.gz | unshar ;;\ ++ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//share/Makefile.in couchdb-1.0.1.new//share/Makefile.in +--- couchdb-1.0.1//share/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//share/Makefile.in 2011-06-14 18:31:47.243881656 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -97,6 +97,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -124,7 +125,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -137,6 +139,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -152,6 +155,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -162,6 +168,7 @@ + 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@ +@@ -206,7 +213,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/couchdb/Makefile.in couchdb-1.0.1.new//src/couchdb/Makefile.in +--- couchdb-1.0.1//src/couchdb/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//src/couchdb/Makefile.in 2011-06-14 18:31:47.383883459 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -135,6 +135,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -162,7 +163,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -175,6 +177,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -190,6 +193,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -200,6 +206,7 @@ + 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@ +@@ -244,7 +251,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +@@ -488,7 +494,7 @@ + # (which will cause the Makefiles to be regenerated when you run `make'); + # (2) otherwise, pass the desired values on the `make' command line. + $(RECURSIVE_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +@@ -513,7 +519,7 @@ + fi; test -z "$$fail" + + $(RECURSIVE_CLEAN_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/couchdb/priv/Makefile.in couchdb-1.0.1.new//src/couchdb/priv/Makefile.in +--- couchdb-1.0.1//src/couchdb/priv/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//src/couchdb/priv/Makefile.in 2011-06-14 18:31:47.523885255 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -142,6 +142,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -169,7 +170,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -182,6 +184,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -197,6 +200,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -207,6 +213,7 @@ + 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@ +@@ -251,7 +258,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +@@ -308,7 +314,7 @@ + couchjs_SOURCES = $(COUCHJS_SRCS) + couchjs_LDFLAGS = $(CURL_LDFLAGS) + couchjs_CFLAGS = -D_BSD_SOURCE $(CURL_CFLAGS) +-couchjs_LDADD = $(CURL_LDFLAGS) @JSLIB@ ++couchjs_LDADD = $(CURL_LDFLAGS) @JS_LIBS@ + couchpriv_DATA = stat_descriptions.cfg + @WINDOWS_TRUE@couchspawnkillable_SOURCES = spawnkillable/couchspawnkillable_win.c + all: all-am +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/erlang-oauth/Makefile.in couchdb-1.0.1.new//src/erlang-oauth/Makefile.in +--- couchdb-1.0.1//src/erlang-oauth/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//src/erlang-oauth/Makefile.in 2011-06-14 18:31:47.583886027 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -93,6 +93,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -120,7 +121,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -133,6 +135,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -148,6 +151,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -158,6 +164,7 @@ + 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@ +@@ -202,7 +209,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/etap/Makefile.in couchdb-1.0.1.new//src/etap/Makefile.in +--- couchdb-1.0.1//src/etap/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//src/etap/Makefile.in 2011-06-14 18:31:47.653886928 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -93,6 +93,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -120,7 +121,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -133,6 +135,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -148,6 +151,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -158,6 +164,7 @@ + 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@ +@@ -202,7 +209,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/ibrowse/Makefile.in couchdb-1.0.1.new//src/ibrowse/Makefile.in +--- couchdb-1.0.1//src/ibrowse/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//src/ibrowse/Makefile.in 2011-06-14 18:31:47.713887699 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -93,6 +93,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -120,7 +121,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -133,6 +135,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -148,6 +151,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -158,6 +164,7 @@ + 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@ +@@ -202,7 +209,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/Makefile.in couchdb-1.0.1.new//src/Makefile.in +--- couchdb-1.0.1//src/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//src/Makefile.in 2011-06-14 18:31:47.313882563 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -109,6 +109,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -136,7 +137,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -149,6 +151,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -164,6 +167,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -174,6 +180,7 @@ + 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@ +@@ -218,7 +225,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +@@ -296,7 +302,7 @@ + # (which will cause the Makefiles to be regenerated when you run `make'); + # (2) otherwise, pass the desired values on the `make' command line. + $(RECURSIVE_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +@@ -321,7 +327,7 @@ + fi; test -z "$$fail" + + $(RECURSIVE_CLEAN_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//src/mochiweb/Makefile.in couchdb-1.0.1.new//src/mochiweb/Makefile.in +--- couchdb-1.0.1//src/mochiweb/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//src/mochiweb/Makefile.in 2011-06-14 18:31:47.783888606 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -93,6 +93,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -120,7 +121,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -133,6 +135,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -148,6 +151,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -158,6 +164,7 @@ + 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@ +@@ -202,7 +209,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//test/bench/Makefile.in couchdb-1.0.1.new//test/bench/Makefile.in +--- couchdb-1.0.1//test/bench/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//test/bench/Makefile.in 2011-06-14 18:31:47.913890272 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -71,6 +71,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -98,7 +99,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -111,6 +113,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -126,6 +129,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -136,6 +142,7 @@ + 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@ +@@ -180,7 +187,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//test/etap/Makefile.in couchdb-1.0.1.new//test/etap/Makefile.in +--- couchdb-1.0.1//test/etap/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//test/etap/Makefile.in 2011-06-14 18:31:47.973891046 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -74,6 +74,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -101,7 +102,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -114,6 +116,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -129,6 +132,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -139,6 +145,7 @@ + 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@ +@@ -183,7 +190,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//test/javascript/Makefile.in couchdb-1.0.1.new//test/javascript/Makefile.in +--- couchdb-1.0.1//test/javascript/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//test/javascript/Makefile.in 2011-06-14 18:31:48.033891816 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -71,6 +71,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -98,7 +99,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -111,6 +113,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -126,6 +129,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -136,6 +142,7 @@ + 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@ +@@ -180,7 +187,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//test/Makefile.in couchdb-1.0.1.new//test/Makefile.in +--- couchdb-1.0.1//test/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//test/Makefile.in 2011-06-14 18:31:47.853889502 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -109,6 +109,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -136,7 +137,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -149,6 +151,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -164,6 +167,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -174,6 +180,7 @@ + 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@ +@@ -218,7 +225,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +@@ -296,7 +302,7 @@ + # (which will cause the Makefiles to be regenerated when you run `make'); + # (2) otherwise, pass the desired values on the `make' command line. + $(RECURSIVE_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +@@ -321,7 +327,7 @@ + fi; test -z "$$fail" + + $(RECURSIVE_CLEAN_TARGETS): +- @failcom='exit 1'; \ ++ @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//test/view_server/Makefile.in couchdb-1.0.1.new//test/view_server/Makefile.in +--- couchdb-1.0.1//test/view_server/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//test/view_server/Makefile.in 2011-06-14 18:31:48.103892715 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -69,6 +69,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -96,7 +97,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -109,6 +111,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -124,6 +127,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -134,6 +140,7 @@ + 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@ +@@ -178,7 +185,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//utils/Makefile.in couchdb-1.0.1.new//utils/Makefile.in +--- couchdb-1.0.1//utils/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//utils/Makefile.in 2011-06-14 18:31:48.163893495 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -71,6 +71,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -98,7 +99,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -111,6 +113,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -126,6 +129,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -136,6 +142,7 @@ + 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@ +@@ -180,7 +187,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ +diff -Nur -x '*.orig' -x '*~' couchdb-1.0.1//var/Makefile.in couchdb-1.0.1.new//var/Makefile.in +--- couchdb-1.0.1//var/Makefile.in 2010-08-11 19:18:53.000000000 +0100 ++++ couchdb-1.0.1.new//var/Makefile.in 2011-06-14 18:31:48.223894260 +0100 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.11 from Makefile.am. ++# Makefile.in generated by automake 1.11.1 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +@@ -69,6 +69,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ +@@ -96,7 +97,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +-JSLIB = @JSLIB@ ++JS_CFLAGS = @JS_CFLAGS@ ++JS_LIBS = @JS_LIBS@ + JS_LIB_BASE = @JS_LIB_BASE@ + JS_LIB_BINARY = @JS_LIB_BINARY@ + JS_LIB_DIR = @JS_LIB_DIR@ +@@ -109,6 +111,7 @@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ +@@ -124,6 +127,9 @@ + PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ ++PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ + RANLIB = @RANLIB@ + SED = @SED@ + SET_MAKE = @SET_MAKE@ +@@ -134,6 +140,7 @@ + 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@ +@@ -178,7 +185,6 @@ + localstatelibdir = @localstatelibdir@ + localstatelogdir = @localstatelogdir@ + localstaterundir = @localstaterundir@ +-lt_ECHO = @lt_ECHO@ + mandir = @mandir@ + mkdir_p = @mkdir_p@ + msvc_redist_dir = @msvc_redist_dir@ --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0008-replicator_doc_id_encoding.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0008-replicator_doc_id_encoding.patch @@ -0,0 +1,91 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep.erl b/couchdb-1.0.1/src/couchdb/couch_rep.erl +index baf9c87..4c58ce9 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep.erl +@@ -493,7 +493,7 @@ get_rep_endpoint(UserCtx, <>) -> + + open_replication_log(#http_db{}=Db, RepId) -> + DocId = ?LOCAL_DOC_PREFIX ++ RepId, +- Req = Db#http_db{resource=couch_util:url_encode(DocId)}, ++ Req = Db#http_db{resource=couch_util:encode_doc_id(DocId)}, + case couch_rep_httpc:request(Req) of + {[{<<"error">>, _}, {<<"reason">>, _}]} -> + ?LOG_DEBUG("didn't find a replication log for ~s", [Db#http_db.url]), +@@ -706,7 +706,7 @@ ensure_full_commit(Source, RequiredSeq) -> + + update_local_doc(#http_db{} = Db, #doc{id=DocId} = Doc) -> + Req = Db#http_db{ +- resource = couch_util:url_encode(DocId), ++ resource = couch_util:encode_doc_id(DocId), + method = put, + body = couch_doc:to_json_obj(Doc, [attachments]), + headers = [{"x-couch-full-commit", "false"} | Db#http_db.headers] +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_reader.erl b/couchdb-1.0.1/src/couchdb/couch_rep_reader.erl +index 5c824cb..4f81c8e 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_reader.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_reader.erl +@@ -17,7 +17,7 @@ + + -export([start_link/4, next/1]). + +--import(couch_util, [url_encode/1]). ++-import(couch_util, [encode_doc_id/1]). + + -define (BUFFER_SIZE, 1000). + -define (MAX_CONCURRENT_REQUESTS, 100). +@@ -234,7 +234,7 @@ open_doc_revs(#http_db{url = Url} = DbS, DocId, Revs) -> + %% all this logic just splits up revision lists that are too long for + %% MochiWeb into multiple requests + BaseQS = [{revs,true}, {latest,true}, {att_encoding_info,true}], +- BaseReq = DbS#http_db{resource=url_encode(DocId), qs=BaseQS}, ++ BaseReq = DbS#http_db{resource=encode_doc_id(DocId), qs=BaseQS}, + BaseLength = length(couch_rep_httpc:full_url(BaseReq)) + 11, % &open_revs= + + {RevLists, _, _} = lists:foldl(fun split_revlist/2, +@@ -264,7 +264,7 @@ open_doc_revs(#http_db{url = Url} = DbS, DocId, Revs) -> + open_doc(#http_db{url = Url} = DbS, DocId) -> + % get latest rev of the doc + Req = DbS#http_db{ +- resource=url_encode(DocId), ++ resource=encode_doc_id(DocId), + qs=[{att_encoding_info, true}] + }, + {Props} = Json = couch_rep_httpc:request(Req), +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_writer.erl b/couchdb-1.0.1/src/couchdb/couch_rep_writer.erl +index dd6396f..26a1782 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_writer.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_writer.erl +@@ -119,7 +119,7 @@ write_multi_part_doc(#http_db{headers=Headers} = Db, #doc{atts=Atts} = Doc) -> + end + end, + Request = Db#http_db{ +- resource = couch_util:url_encode(Doc#doc.id), ++ resource = couch_util:encode_doc_id(Doc#doc.id), + method = put, + qs = [{new_edits, false}], + body = {BodyFun, nil}, +diff --git a/couchdb-1.0.1/src/couchdb/couch_util.erl b/couchdb-1.0.1/src/couchdb/couch_util.erl +index 7a8ae05..f0479d4 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_util.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_util.erl +@@ -28,6 +28,7 @@ + -export([md5/1, md5_init/0, md5_update/2, md5_final/1]). + -export([reorder_results/2]). + -export([url_strip_password/1]). ++-export([encode_doc_id/1]). + + -include("couch_db.hrl"). + -include_lib("kernel/include/file.hrl"). +@@ -459,3 +460,12 @@ url_strip_password(Url) -> + "http(s)?://([^:]+):[^@]+@(.*)$", + "http\\1://\\2:*****@\\3", + [{return, list}]). ++ ++encode_doc_id(Id) when is_list(Id) -> ++ encode_doc_id(?l2b(Id)); ++encode_doc_id(<<"_design/", Rest/binary>>) -> ++ "_design/" ++ url_encode(Rest); ++encode_doc_id(<<"_local/", Rest/binary>>) -> ++ "_local/" ++ url_encode(Rest); ++encode_doc_id(Id) -> ++ url_encode(Id). --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0003-changes_redirect_1.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0003-changes_redirect_1.patch @@ -0,0 +1,13 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +index 1682d37..65a67ba 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_changes_feed.erl +@@ -95,7 +95,7 @@ init([_Parent, #http_db{}=Source, Since, PostProps] = Args) -> + {ok, #state{conn=Pid, last_seq=Since, reqid=ReqId, init_args=Args}}; + {ibrowse_async_headers, ReqId, Code, Hdrs} when Code=="301"; Code=="302" -> + catch ibrowse:stop_worker_process(Pid), +- Url2 = mochiweb_headers:get_value("Location", mochiweb_headers:make(Hdrs)), ++ Url2 = couch_rep_httpc:redirect_url(Hdrs, Req#http_db.url), + %% TODO use couch_httpc:request instead of start_http_request + {Pid2, ReqId2} = start_http_request(Url2), + receive {ibrowse_async_headers, ReqId2, "200", _} -> --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0012-replicator_ssl.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0012-replicator_ssl.patch @@ -0,0 +1,99 @@ +diff --git a/couchdb-1.0.1/etc/couchdb/default.ini.tpl.in b/couchdb-1.0.1/etc/couchdb/default.ini.tpl.in +index 6b70777..f75b3ef 100644 +--- a/couchdb-1.0.1/etc/couchdb/default.ini.tpl.in ++++ b/couchdb-1.0.1/etc/couchdb/default.ini.tpl.in +@@ -121,4 +121,11 @@ compressible_types = text/*, application/javascript, application/json, applicat + + [replicator] + max_http_sessions = 10 +-max_http_pipeline_size = 10 +\ No newline at end of file ++max_http_pipeline_size = 10 ++; set to true to validate peer certificates ++verify_ssl_certificates = true ++; file containing a list of peer trusted certificates (PEM format) ++ssl_trusted_certificates_file = /etc/ssl/certs/ca-certificates.crt ++; maximum peer certificate depth (must be set even if certificate validation is off) ++ssl_certificate_max_depth = 3 ++ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep.erl b/couchdb-1.0.1/src/couchdb/couch_rep.erl +index 65573e8..ae42e0e 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep.erl +@@ -533,7 +533,10 @@ open_db({Props}, _UserCtx, ProxyParams, CreateTarget) -> + auth = AuthProps, + headers = lists:ukeymerge(1, Headers, DefaultHeaders) + }, +- Db = Db1#http_db{options = Db1#http_db.options ++ ProxyParams}, ++ Db = Db1#http_db{ ++ options = Db1#http_db.options ++ ProxyParams ++ ++ couch_rep_httpc:ssl_options(Db1) ++ }, + couch_rep_httpc:db_exists(Db, CreateTarget); + open_db(<<"http://",_/binary>>=Url, _, ProxyParams, CreateTarget) -> + open_db({[{<<"url">>,Url}]}, [], ProxyParams, CreateTarget); +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl b/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl +index 768d88a..d822140 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl +@@ -16,6 +16,7 @@ + + -export([db_exists/1, db_exists/2, full_url/1, request/1, redirected_request/2, + redirect_url/2, spawn_worker_process/1, spawn_link_worker_process/1]). ++-export([ssl_options/1]). + + request(#http_db{} = Req) -> + do_request(Req). +@@ -243,3 +244,52 @@ oauth_header(Url, QS, Action, Props) -> + Params = oauth:signed_params(Method, Url, QSL, Consumer, Token, TokenSecret) + -- QSL, + {"Authorization", "OAuth " ++ oauth_uri:params_to_header_string(Params)}. ++ ++ssl_options(#http_db{url = Url}) -> ++ case ibrowse_lib:parse_url(Url) of ++ #url{protocol = https} -> ++ start_ssl(), ++ Depth = list_to_integer( ++ couch_config:get("replicator", "ssl_certificate_max_depth", "3") ++ ), ++ SslOpts = [ {depth, Depth} | ++ case couch_config:get("replicator", "verify_ssl_certificates") of ++ "true" -> ++ ssl_verify_options(true); ++ _ -> ++ ssl_verify_options(false) ++ end ], ++ [{is_ssl, true}, {ssl_options, SslOpts}]; ++ #url{protocol = http} -> ++ [] ++ end. ++ ++start_ssl() -> ++ start_ssl(erlang:system_info(otp_release)). ++ ++start_ssl(OTPVersion) when OTPVersion < "R14A" -> ++ application:start(ssl); ++start_ssl(_OTPVersion) -> ++ application:start(crypto), ++ application:start(public_key), ++ application:start(ssl). ++ ++ssl_verify_options(Value) -> ++ OTPVersion = erlang:system_info(otp_release), ++ case (OTPVersion >= "R13") andalso (OTPVersion < "R14") of ++ true -> ++ [{ssl_imp, new}]; ++ false -> ++ [] ++ end ++ ssl_verify_options(Value, OTPVersion). ++ ++ssl_verify_options(true, OTPVersion) when OTPVersion >= "R13" -> ++ CAFile = couch_config:get("replicator", "ssl_trusted_certificates_file"), ++ [{verify, verify_peer}, {cacertfile, CAFile}]; ++ssl_verify_options(false, OTPVersion) when OTPVersion >= "R13" -> ++ [{verify, verify_none}]; ++ssl_verify_options(true, _OTPVersion) -> ++ CAFile = couch_config:get("replicator", "ssl_trusted_certificates_file"), ++ [{verify, 2}, {cacertfile, CAFile}]; ++ssl_verify_options(false, _OTPVersion) -> ++ [{verify, 0}]. --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0006-replicator_reader_errors.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0006-replicator_reader_errors.patch @@ -0,0 +1,126 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_httpd_misc_handlers.erl b/couchdb-1.0.1/src/couchdb/couch_httpd_misc_handlers.erl +index 0a6f4a4..13d770f 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_httpd_misc_handlers.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_httpd_misc_handlers.erl +@@ -93,7 +93,12 @@ handle_replicate_req(#httpd{method='POST'}=Req) -> + {error, not_found} -> + send_json(Req, 404, {[{error, not_found}]}); + {error, Reason} -> +- send_json(Req, 500, {[{error, Reason}]}) ++ try ++ send_json(Req, 500, {[{error, Reason}]}) ++ catch ++ exit:{json_encode, _} -> ++ send_json(Req, 500, {[{error, couch_util:to_binary(Reason)}]}) ++ end + catch + throw:{db_not_found, Msg} -> + send_json(Req, 404, {[{error, db_not_found}, {reason, Msg}]}) +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep.erl b/couchdb-1.0.1/src/couchdb/couch_rep.erl +index ae42e0e..404b1fd 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep.erl +@@ -354,16 +354,10 @@ close_db(Db) -> + couch_db:close(Db). + + dbname(#http_db{url = Url}) -> +- strip_password(Url); ++ couch_util:url_strip_password(Url); + dbname(#db{name = Name}) -> + Name. + +-strip_password(Url) -> +- re:replace(Url, +- "http(s)?://([^:]+):[^@]+@(.*)$", +- "http\\1://\\2:*****@\\3", +- [{return, list}]). +- + dbinfo(#http_db{} = Db) -> + {DbProps} = couch_rep_httpc:request(Db), + [{list_to_existing_atom(?b2l(K)), V} || {K,V} <- DbProps]; +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_reader.erl b/couchdb-1.0.1/src/couchdb/couch_rep_reader.erl +index 3edc1f3..5c824cb 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_reader.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_reader.erl +@@ -230,7 +230,7 @@ update_sequence_lists(Seq, State) -> + opened_seqs = Opened + }. + +-open_doc_revs(#http_db{} = DbS, DocId, Revs) -> ++open_doc_revs(#http_db{url = Url} = DbS, DocId, Revs) -> + %% all this logic just splits up revision lists that are too long for + %% MochiWeb into multiple requests + BaseQS = [{revs,true}, {latest,true}, {att_encoding_info,true}], +@@ -246,28 +246,39 @@ open_doc_revs(#http_db{} = DbS, DocId, Revs) -> + JsonResults = lists:flatten([couch_rep_httpc:request(R) || R <- Requests]), + + Transform = +- fun({[{<<"missing">>, Rev}]}) -> +- {{not_found, missing}, couch_doc:parse_rev(Rev)}; +- ({[{<<"ok">>, Json}]}) -> ++ fun({[{<<"ok">>, Json}]}, Acc) -> + #doc{id=Id, revs=Rev, atts=Atts} = Doc = couch_doc:from_json_obj(Json), +- Doc#doc{atts=[couch_rep_att:convert_stub(A, {DbS,Id,Rev}) || A <- Atts]} ++ Doc1 = Doc#doc{ ++ atts=[couch_rep_att:convert_stub(A, {DbS,Id,Rev}) || A <- Atts] ++ }, ++ [Doc1 | Acc]; ++ ({ErrorProps}, Acc) -> ++ Err = couch_util:get_value(<<"error">>, ErrorProps, ++ ?JSON_ENCODE({ErrorProps})), ++ ?LOG_ERROR("Replicator: error accessing doc ~s at ~s, reason: ~s", ++ [DocId, couch_util:url_strip_password(Url), Err]), ++ Acc + end, +- [Transform(Result) || Result <- JsonResults]. ++ lists:reverse(lists:foldl(Transform, [], JsonResults)). + +-open_doc(#http_db{} = DbS, DocId) -> ++open_doc(#http_db{url = Url} = DbS, DocId) -> + % get latest rev of the doc + Req = DbS#http_db{ + resource=url_encode(DocId), + qs=[{att_encoding_info, true}] + }, +- case couch_rep_httpc:request(Req) of +- {[{<<"error">>,<<"not_found">>}, {<<"reason">>,<<"missing">>}]} -> +- []; +- Json -> ++ {Props} = Json = couch_rep_httpc:request(Req), ++ case couch_util:get_value(<<"_id">>, Props) of ++ Id when is_binary(Id) -> + #doc{id=Id, revs=Rev, atts=Atts} = Doc = couch_doc:from_json_obj(Json), + [Doc#doc{ + atts=[couch_rep_att:convert_stub(A, {DbS,Id,Rev}) || A <- Atts] +- }] ++ }]; ++ undefined -> ++ Err = couch_util:get_value(<<"error">>, Props, ?JSON_ENCODE(Json)), ++ ?LOG_ERROR("Replicator: error accessing doc ~s at ~s, reason: ~s", ++ [DocId, couch_util:url_strip_password(Url), Err]), ++ [] + end. + + reader_loop(ReaderServer, Source, DocIds) when is_list(DocIds) -> +diff --git a/couchdb-1.0.1/src/couchdb/couch_util.erl b/couchdb-1.0.1/src/couchdb/couch_util.erl +index 8217a26..7a8ae05 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_util.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_util.erl +@@ -27,6 +27,7 @@ + -export([get_value/2, get_value/3]). + -export([md5/1, md5_init/0, md5_update/2, md5_final/1]). + -export([reorder_results/2]). ++-export([url_strip_password/1]). + + -include("couch_db.hrl"). + -include_lib("kernel/include/file.hrl"). +@@ -452,3 +453,9 @@ reorder_results(Keys, SortedResults) when length(Keys) < 100 -> + reorder_results(Keys, SortedResults) -> + KeyDict = dict:from_list(SortedResults), + [dict:fetch(Key, KeyDict) || Key <- Keys]. ++ ++url_strip_password(Url) -> ++ re:replace(Url, ++ "http(s)?://([^:]+):[^@]+@(.*)$", ++ "http\\1://\\2:*****@\\3", ++ [{return, list}]). --- couchdb-1.0.1.orig/debian/patches/couchio-fix-0007-ibrowse_upgrade.patch +++ couchdb-1.0.1/debian/patches/couchio-fix-0007-ibrowse_upgrade.patch @@ -0,0 +1,3481 @@ +diff --git a/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl b/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl +index 2371228..74aa52a 100644 +--- a/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl ++++ b/couchdb-1.0.1/src/couchdb/couch_rep_httpc.erl +@@ -205,8 +205,7 @@ spawn_worker_process(Req) -> + Pid. + + spawn_link_worker_process(Req) -> +- Url = ibrowse_lib:parse_url(Req#http_db.url), +- {ok, Pid} = ibrowse_http_client:start_link(Url), ++ {ok, Pid} = ibrowse:spawn_link_worker_process(Req#http_db.url), + Pid. + + maybe_decompress(Headers, Body) -> +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse.app.in b/couchdb-1.0.1/src/ibrowse/ibrowse.app.in +index 4f43dd9..208c311 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse.app.in ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse.app.in +@@ -1,10 +1,10 @@ + {application, ibrowse, + [{description, "HTTP client application"}, +- {vsn, "1.5.1"}, +- {modules, [ ibrowse, +- ibrowse_http_client, +- ibrowse_app, +- ibrowse_sup, ++ {vsn, "1.6.2"}, ++ {modules, [ ibrowse, ++ ibrowse_http_client, ++ ibrowse_app, ++ ibrowse_sup, + ibrowse_lib, + ibrowse_lb ]}, + {registered, []}, +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse.erl b/couchdb-1.0.1/src/ibrowse/ibrowse.erl +index 1913ef5..09d36a3 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse.erl ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse.erl +@@ -6,8 +6,8 @@ + %%% Created : 11 Oct 2003 by Chandrashekhar Mullaparthi + %%%------------------------------------------------------------------- + %% @author Chandrashekhar Mullaparthi +-%% @copyright 2005-2009 Chandrashekhar Mullaparthi +-%% @version 1.5.2 ++%% @copyright 2005-2010 Chandrashekhar Mullaparthi ++%% @version 1.6.0 + %% @doc The ibrowse application implements an HTTP 1.1 client. This + %% module implements the API of the HTTP client. There is one named + %% process called 'ibrowse' which assists in load balancing and maintaining configuration. There is one load balancing process per unique webserver. There is +@@ -21,22 +21,22 @@ + %%

Here are a few sample invocations.

+ %% + %% +-%% ibrowse:send_req("http://intranet/messenger/", [], get). ++%% ibrowse:send_req("http://intranet/messenger/", [], get). + %%

+-%% +-%% ibrowse:send_req("http://www.google.com/", [], get, [], +-%% [{proxy_user, "XXXXX"}, +-%% {proxy_password, "XXXXX"}, +-%% {proxy_host, "proxy"}, +-%% {proxy_port, 8080}], 1000). ++%% ++%% ibrowse:send_req("http://www.google.com/", [], get, [], ++%% [{proxy_user, "XXXXX"}, ++%% {proxy_password, "XXXXX"}, ++%% {proxy_host, "proxy"}, ++%% {proxy_port, 8080}], 1000). + %%

+ %% + %%ibrowse:send_req("http://www.erlang.org/download/otp_src_R10B-3.tar.gz", [], get, [], +-%% [{proxy_user, "XXXXX"}, +-%% {proxy_password, "XXXXX"}, +-%% {proxy_host, "proxy"}, +-%% {proxy_port, 8080}, +-%% {save_response_to_file, true}], 1000). ++%% [{proxy_user, "XXXXX"}, ++%% {proxy_password, "XXXXX"}, ++%% {proxy_host, "proxy"}, ++%% {proxy_port, 8080}, ++%% {save_response_to_file, true}], 1000). + %%

+ %% + %% ibrowse:send_req("http://www.erlang.org", [], head). +@@ -48,17 +48,12 @@ + %% ibrowse:send_req("http://www.bbc.co.uk", [], trace). + %% + %%

+-%% ibrowse:send_req("http://www.google.com", [], get, [], ++%% ibrowse:send_req("http://www.google.com", [], get, [], + %% [{stream_to, self()}]). + %%
+ %% +-%%

A driver exists which implements URL encoding in C, but the +-%% speed achieved using only erlang has been good enough, so the +-%% driver isn't actually used.

+ + -module(ibrowse). +--vsn('$Id: ibrowse.erl,v 1.8 2009/07/01 22:43:19 chandrusf Exp $ '). +- + -behaviour(gen_server). + %%-------------------------------------------------------------------- + %% Include files +@@ -70,48 +65,50 @@ + + %% gen_server callbacks + -export([init/1, handle_call/3, handle_cast/2, handle_info/2, +- terminate/2, code_change/3]). ++ terminate/2, code_change/3]). + + %% API interface + -export([ +- rescan_config/0, +- rescan_config/1, +- get_config_value/1, +- get_config_value/2, +- spawn_worker_process/2, +- spawn_link_worker_process/2, +- stop_worker_process/1, +- send_req/3, +- send_req/4, +- send_req/5, +- send_req/6, +- send_req_direct/4, +- send_req_direct/5, +- send_req_direct/6, +- send_req_direct/7, +- stream_next/1, +- set_max_sessions/3, +- set_max_pipeline_size/3, +- set_dest/3, +- trace_on/0, +- trace_off/0, +- trace_on/2, +- trace_off/2, +- all_trace_off/0, +- show_dest_status/0, +- show_dest_status/2 +- ]). ++ rescan_config/0, ++ rescan_config/1, ++ get_config_value/1, ++ get_config_value/2, ++ spawn_worker_process/1, ++ spawn_worker_process/2, ++ spawn_link_worker_process/1, ++ spawn_link_worker_process/2, ++ stop_worker_process/1, ++ send_req/3, ++ send_req/4, ++ send_req/5, ++ send_req/6, ++ send_req_direct/4, ++ send_req_direct/5, ++ send_req_direct/6, ++ send_req_direct/7, ++ stream_next/1, ++ set_max_sessions/3, ++ set_max_pipeline_size/3, ++ set_dest/3, ++ trace_on/0, ++ trace_off/0, ++ trace_on/2, ++ trace_off/2, ++ all_trace_off/0, ++ show_dest_status/0, ++ show_dest_status/2 ++ ]). + + -ifdef(debug). + -compile(export_all). + -endif. + + -import(ibrowse_lib, [ +- parse_url/1, +- get_value/3, +- do_trace/2 +- ]). +- ++ parse_url/1, ++ get_value/3, ++ do_trace/2 ++ ]). ++ + -record(state, {trace = false}). + + -include("ibrowse.hrl"). +@@ -159,7 +156,7 @@ stop() -> + send_req(Url, Headers, Method) -> + send_req(Url, Headers, Method, [], []). + +-%% @doc Same as send_req/3. ++%% @doc Same as send_req/3. + %% If a list is specified for the body it has to be a flat list. The body can also be a fun/0 or a fun/1.
+ %% If fun/0, the connection handling process will repeatdely call the fun until it returns an error or eof.
Fun() = {ok, Data} | eof

+ %% If fun/1, the connection handling process will repeatedly call the fun with the supplied state until it returns an error or eof.
Fun(State) = {ok, Data} | {ok, Data, NewState} | eof
+@@ -169,19 +166,19 @@ send_req(Url, Headers, Method) -> + send_req(Url, Headers, Method, Body) -> + send_req(Url, Headers, Method, Body, []). + +-%% @doc Same as send_req/4. ++%% @doc Same as send_req/4. + %% For a description of SSL Options, look in the ssl manpage. If the + %% HTTP Version to use is not specified, the default is 1.1. + %%
+-%%

The host_header option is useful in the case where ibrowse is ++%%

    ++%%
  • The host_header option is useful in the case where ibrowse is + %% connecting to a component such as stunnel which then sets up a + %% secure connection to a webserver. In this case, the URL supplied to + %% ibrowse must have the stunnel host/port details, but that won't + %% make sense to the destination webserver. This option can then be + %% used to specify what should go in the Host header in +-%% the request.

    +-%%
      ++%% the request. + %%
    • The stream_to option can be used to have the HTTP + %% response streamed to a process as messages as data arrives on the + %% socket. If the calling process wishes to control the rate at which +@@ -220,12 +217,25 @@ send_req(Url, Headers, Method, Body) -> + %% ibrowse:send_req("http://www.example.com/cgi-bin/request", [], get, [], [{connect_timeout, 100}], 1000). + %% + %% In the above invocation, if the connection isn't established within +-%% 100 milliseconds, the request will fail with ++%% 100 milliseconds, the request will fail with + %% {error, conn_failed}.
      + %% If connection setup succeeds, the total time allowed for the + %% request to complete will be 1000 milliseconds minus the time taken + %% for connection setup. + %%
    • ++%% ++%%
    • The socket_options option can be used to set ++%% specific options on the socket. The {active, true | false | once} ++%% and {packet_type, Packet_type} will be filtered out by ibrowse.
    • ++%% ++%%
    • The headers_as_is option is to enable the caller ++%% to send headers exactly as specified in the request without ibrowse ++%% adding some of its own. Required for some picky servers apparently.
    • ++%% ++%%
    • The give_raw_headers option is to enable the ++%% caller to get access to the raw status line and raw unparsed ++%% headers. Not quite sure why someone would want this, but one of my ++%% users asked for it, so here it is.
    • + %%
    + %% + %% @spec send_req(Url::string(), Headers::headerList(), Method::method(), Body::body(), Options::optionList()) -> response() +@@ -234,7 +244,7 @@ send_req(Url, Headers, Method, Body) -> + %% {response_format,response_format()}| + %% {stream_chunk_size, integer()} | + %% {max_pipeline_size, integer()} | +-%% {trace, boolean()} | ++%% {trace, boolean()} | + %% {is_ssl, boolean()} | + %% {ssl_options, [SSLOpt]} | + %% {pool_name, atom()} | +@@ -253,13 +263,18 @@ send_req(Url, Headers, Method, Body) -> + %% {host_header, string()} | + %% {inactivity_timeout, integer()} | + %% {connect_timeout, integer()} | +-%% {transfer_encoding, {chunked, ChunkSize}} ++%% {socket_options, Sock_opts} | ++%% {transfer_encoding, {chunked, ChunkSize}} | ++%% {headers_as_is, boolean()} | ++%% {give_raw_headers, boolean()} + %% + %% stream_to() = process() | {process(), once} + %% process() = pid() | atom() + %% username() = string() + %% password() = string() + %% SSLOpt = term() ++%% Sock_opts = [Sock_opt] ++%% Sock_opt = term() + %% ChunkSize = integer() + %% srtf() = boolean() | filename() + %% filename() = string() +@@ -267,54 +282,54 @@ send_req(Url, Headers, Method, Body) -> + send_req(Url, Headers, Method, Body, Options) -> + send_req(Url, Headers, Method, Body, Options, 30000). + +-%% @doc Same as send_req/5. ++%% @doc Same as send_req/5. + %% All timeout values are in milliseconds. + %% @spec send_req(Url, Headers::headerList(), Method::method(), Body::body(), Options::optionList(), Timeout) -> response() + %% Timeout = integer() | infinity + send_req(Url, Headers, Method, Body, Options, Timeout) -> + case catch parse_url(Url) of +- #url{host = Host, +- port = Port, +- protocol = Protocol} = Parsed_url -> +- Lb_pid = case ets:lookup(ibrowse_lb, {Host, Port}) of +- [] -> +- get_lb_pid(Parsed_url); +- [#lb_pid{pid = Lb_pid_1}] -> +- Lb_pid_1 +- end, +- Max_sessions = get_max_sessions(Host, Port, Options), +- Max_pipeline_size = get_max_pipeline_size(Host, Port, Options), +- Options_1 = merge_options(Host, Port, Options), +- {SSLOptions, IsSSL} = +- case (Protocol == https) orelse +- get_value(is_ssl, Options_1, false) of +- false -> {[], false}; +- true -> {get_value(ssl_options, Options_1, []), true} +- end, +- case ibrowse_lb:spawn_connection(Lb_pid, Parsed_url, +- Max_sessions, +- Max_pipeline_size, +- {SSLOptions, IsSSL}) of +- {ok, Conn_Pid} -> +- do_send_req(Conn_Pid, Parsed_url, Headers, +- Method, Body, Options_1, Timeout); +- Err -> +- Err +- end; +- Err -> +- {error, {url_parsing_failed, Err}} ++ #url{host = Host, ++ port = Port, ++ protocol = Protocol} = Parsed_url -> ++ Lb_pid = case ets:lookup(ibrowse_lb, {Host, Port}) of ++ [] -> ++ get_lb_pid(Parsed_url); ++ [#lb_pid{pid = Lb_pid_1}] -> ++ Lb_pid_1 ++ end, ++ Max_sessions = get_max_sessions(Host, Port, Options), ++ Max_pipeline_size = get_max_pipeline_size(Host, Port, Options), ++ Options_1 = merge_options(Host, Port, Options), ++ {SSLOptions, IsSSL} = ++ case (Protocol == https) orelse ++ get_value(is_ssl, Options_1, false) of ++ false -> {[], false}; ++ true -> {get_value(ssl_options, Options_1, []), true} ++ end, ++ case ibrowse_lb:spawn_connection(Lb_pid, Parsed_url, ++ Max_sessions, ++ Max_pipeline_size, ++ {SSLOptions, IsSSL}) of ++ {ok, Conn_Pid} -> ++ do_send_req(Conn_Pid, Parsed_url, Headers, ++ Method, Body, Options_1, Timeout); ++ Err -> ++ Err ++ end; ++ Err -> ++ {error, {url_parsing_failed, Err}} + end. + + merge_options(Host, Port, Options) -> + Config_options = get_config_value({options, Host, Port}, []), + lists:foldl( + fun({Key, Val}, Acc) -> +- case lists:keysearch(Key, 1, Options) of +- false -> +- [{Key, Val} | Acc]; +- _ -> +- Acc +- end ++ case lists:keysearch(Key, 1, Options) of ++ false -> ++ [{Key, Val} | Acc]; ++ _ -> ++ Acc ++ end + end, Options, Config_options). + + get_lb_pid(Url) -> +@@ -322,11 +337,11 @@ get_lb_pid(Url) -> + + get_max_sessions(Host, Port, Options) -> + get_value(max_sessions, Options, +- get_config_value({max_sessions, Host, Port}, ?DEF_MAX_SESSIONS)). ++ get_config_value({max_sessions, Host, Port}, ?DEF_MAX_SESSIONS)). + + get_max_pipeline_size(Host, Port, Options) -> + get_value(max_pipeline_size, Options, +- get_config_value({max_pipeline_size, Host, Port}, ?DEF_MAX_PIPELINE_SIZE)). ++ get_config_value({max_pipeline_size, Host, Port}, ?DEF_MAX_PIPELINE_SIZE)). + + %% @doc Deprecated. Use set_max_sessions/3 and set_max_pipeline_size/3 + %% for achieving the same effect. +@@ -343,7 +358,7 @@ set_dest(_Host, _Port, [H | _]) -> + exit({invalid_option, H}); + set_dest(_, _, []) -> + ok. +- ++ + %% @doc Set the maximum number of connections allowed to a specific Host:Port. + %% @spec set_max_sessions(Host::string(), Port::integer(), Max::integer()) -> ok + set_max_sessions(Host, Port, Max) when is_integer(Max), Max > 0 -> +@@ -356,21 +371,21 @@ set_max_pipeline_size(Host, Port, Max) when is_integer(Max), Max > 0 -> + + do_send_req(Conn_Pid, Parsed_url, Headers, Method, Body, Options, Timeout) -> + case catch ibrowse_http_client:send_req(Conn_Pid, Parsed_url, +- Headers, Method, ensure_bin(Body), +- Options, Timeout) of +- {'EXIT', {timeout, _}} -> +- {error, req_timedout}; +- {'EXIT', Reason} -> +- {error, {'EXIT', Reason}}; +- {ok, St_code, Headers, Body} = Ret when is_binary(Body) -> +- case get_value(response_format, Options, list) of +- list -> +- {ok, St_code, Headers, binary_to_list(Body)}; +- binary -> +- Ret +- end; +- Ret -> +- Ret ++ Headers, Method, ensure_bin(Body), ++ Options, Timeout) of ++ {'EXIT', {timeout, _}} -> ++ {error, req_timedout}; ++ {'EXIT', Reason} -> ++ {error, {'EXIT', Reason}}; ++ {ok, St_code, Headers, Body} = Ret when is_binary(Body) -> ++ case get_value(response_format, Options, list) of ++ list -> ++ {ok, St_code, Headers, binary_to_list(Body)}; ++ binary -> ++ Ret ++ end; ++ Ret -> ++ Ret + end. + + ensure_bin(L) when is_list(L) -> list_to_binary(L); +@@ -391,12 +406,21 @@ ensure_bin({Fun, _} = Body) when is_function(Fun) -> Body. + %% Note: It is the responsibility of the calling process to control + %% pipeline size on such connections. + %% ++%% @spec spawn_worker_process(Url::string()) -> {ok, pid()} ++spawn_worker_process(Url) -> ++ ibrowse_http_client:start(Url). ++ + %% @spec spawn_worker_process(Host::string(), Port::integer()) -> {ok, pid()} + spawn_worker_process(Host, Port) -> + ibrowse_http_client:start({Host, Port}). + +-%% @doc Same as spawn_worker_process/2 except the the calling process ++%% @doc Same as spawn_worker_process/1 except the the calling process + %% is linked to the worker process which is spawned. ++%% @spec spawn_link_worker_process(Url::string()) -> {ok, pid()} ++spawn_link_worker_process(Url) -> ++ ibrowse_http_client:start_link(Url). ++ ++%% @spec spawn_link_worker_process(Host::string(), Port::integer()) -> {ok, pid()} + spawn_link_worker_process(Host, Port) -> + ibrowse_http_client:start_link({Host, Port}). + +@@ -426,30 +450,30 @@ send_req_direct(Conn_pid, Url, Headers, Method, Body, Options) -> + %% returned by spawn_worker_process/2 or spawn_link_worker_process/2 + send_req_direct(Conn_pid, Url, Headers, Method, Body, Options, Timeout) -> + case catch parse_url(Url) of +- #url{host = Host, +- port = Port} = Parsed_url -> +- Options_1 = merge_options(Host, Port, Options), +- case do_send_req(Conn_pid, Parsed_url, Headers, Method, Body, Options_1, Timeout) of +- {error, {'EXIT', {noproc, _}}} -> +- {error, worker_is_dead}; +- Ret -> +- Ret +- end; +- Err -> +- {error, {url_parsing_failed, Err}} ++ #url{host = Host, ++ port = Port} = Parsed_url -> ++ Options_1 = merge_options(Host, Port, Options), ++ case do_send_req(Conn_pid, Parsed_url, Headers, Method, Body, Options_1, Timeout) of ++ {error, {'EXIT', {noproc, _}}} -> ++ {error, worker_is_dead}; ++ Ret -> ++ Ret ++ end; ++ Err -> ++ {error, {url_parsing_failed, Err}} + end. + + %% @doc Tell ibrowse to stream the next chunk of data to the + %% caller. Should be used in conjunction with the + %% stream_to option + %% @spec stream_next(Req_id :: req_id()) -> ok | {error, unknown_req_id} +-stream_next(Req_id) -> ++stream_next(Req_id) -> + case ets:lookup(ibrowse_stream, {req_id_pid, Req_id}) of +- [] -> +- {error, unknown_req_id}; +- [{_, Pid}] -> +- catch Pid ! {stream_next, Req_id}, +- ok ++ [] -> ++ {error, unknown_req_id}; ++ [{_, Pid}] -> ++ catch Pid ! {stream_next, Req_id}, ++ ok + end. + + %% @doc Turn tracing on for the ibrowse process +@@ -462,7 +486,7 @@ trace_off() -> + %% @doc Turn tracing on for all connections to the specified HTTP + %% server. Host is whatever is specified as the domain name in the URL + %% @spec trace_on(Host, Port) -> ok +-%% Host = string() ++%% Host = string() + %% Port = integer() + trace_on(Host, Port) -> + ibrowse ! {trace, true, Host, Port}, +@@ -483,75 +507,75 @@ all_trace_off() -> + + show_dest_status() -> + Dests = lists:filter(fun({lb_pid, {Host, Port}, _}) when is_list(Host), +- is_integer(Port) -> +- true; +- (_) -> +- false +- end, ets:tab2list(ibrowse_lb)), ++ is_integer(Port) -> ++ true; ++ (_) -> ++ false ++ end, ets:tab2list(ibrowse_lb)), + All_ets = ets:all(), + io:format("~-40.40s | ~-5.5s | ~-10.10s | ~s~n", +- ["Server:port", "ETS", "Num conns", "LB Pid"]), ++ ["Server:port", "ETS", "Num conns", "LB Pid"]), + io:format("~80.80.=s~n", [""]), + lists:foreach(fun({lb_pid, {Host, Port}, Lb_pid}) -> +- case lists:dropwhile( +- fun(Tid) -> +- ets:info(Tid, owner) /= Lb_pid +- end, All_ets) of +- [] -> +- io:format("~40.40s | ~-5.5s | ~-5.5s | ~s~n", +- [Host ++ ":" ++ integer_to_list(Port), +- "", +- "", +- io_lib:format("~p", [Lb_pid])] +- ); +- [Tid | _] -> +- catch ( +- begin +- Size = ets:info(Tid, size), +- io:format("~40.40s | ~-5.5s | ~-5.5s | ~s~n", +- [Host ++ ":" ++ integer_to_list(Port), +- integer_to_list(Tid), +- integer_to_list(Size), +- io_lib:format("~p", [Lb_pid])] +- ) +- end +- ) +- end +- end, Dests). +- ++ case lists:dropwhile( ++ fun(Tid) -> ++ ets:info(Tid, owner) /= Lb_pid ++ end, All_ets) of ++ [] -> ++ io:format("~40.40s | ~-5.5s | ~-5.5s | ~s~n", ++ [Host ++ ":" ++ integer_to_list(Port), ++ "", ++ "", ++ io_lib:format("~p", [Lb_pid])] ++ ); ++ [Tid | _] -> ++ catch ( ++ begin ++ Size = ets:info(Tid, size), ++ io:format("~40.40s | ~-5.5s | ~-5.5s | ~s~n", ++ [Host ++ ":" ++ integer_to_list(Port), ++ io_lib:format("~p", [Tid]), ++ integer_to_list(Size), ++ io_lib:format("~p", [Lb_pid])] ++ ) ++ end ++ ) ++ end ++ end, Dests). ++ + %% @doc Shows some internal information about load balancing to a + %% specified Host:Port. Info about workers spawned using + %% spawn_worker_process/2 or spawn_link_worker_process/2 is not + %% included. + show_dest_status(Host, Port) -> + case ets:lookup(ibrowse_lb, {Host, Port}) of +- [] -> +- no_active_processes; +- [#lb_pid{pid = Lb_pid}] -> +- io:format("Load Balancer Pid : ~p~n", [Lb_pid]), +- io:format("LB process msg q size : ~p~n", [(catch process_info(Lb_pid, message_queue_len))]), +- case lists:dropwhile( +- fun(Tid) -> +- ets:info(Tid, owner) /= Lb_pid +- end, ets:all()) of +- [] -> +- io:format("Couldn't locate ETS table for ~p~n", [Lb_pid]); +- [Tid | _] -> +- First = ets:first(Tid), +- Last = ets:last(Tid), +- Size = ets:info(Tid, size), +- io:format("LB ETS table id : ~p~n", [Tid]), +- io:format("Num Connections : ~p~n", [Size]), +- case Size of +- 0 -> +- ok; +- _ -> +- {First_p_sz, _} = First, +- {Last_p_sz, _} = Last, +- io:format("Smallest pipeline : ~1000.p~n", [First_p_sz]), +- io:format("Largest pipeline : ~1000.p~n", [Last_p_sz]) +- end +- end ++ [] -> ++ no_active_processes; ++ [#lb_pid{pid = Lb_pid}] -> ++ io:format("Load Balancer Pid : ~p~n", [Lb_pid]), ++ io:format("LB process msg q size : ~p~n", [(catch process_info(Lb_pid, message_queue_len))]), ++ case lists:dropwhile( ++ fun(Tid) -> ++ ets:info(Tid, owner) /= Lb_pid ++ end, ets:all()) of ++ [] -> ++ io:format("Couldn't locate ETS table for ~p~n", [Lb_pid]); ++ [Tid | _] -> ++ First = ets:first(Tid), ++ Last = ets:last(Tid), ++ Size = ets:info(Tid, size), ++ io:format("LB ETS table id : ~p~n", [Tid]), ++ io:format("Num Connections : ~p~n", [Size]), ++ case Size of ++ 0 -> ++ ok; ++ _ -> ++ {First_p_sz, _} = First, ++ {Last_p_sz, _} = Last, ++ io:format("Smallest pipeline : ~1000.p~n", [First_p_sz]), ++ io:format("Largest pipeline : ~1000.p~n", [Last_p_sz]) ++ end ++ end + end. + + %% @doc Clear current configuration for ibrowse and load from the file +@@ -592,40 +616,40 @@ init(_) -> + + import_config() -> + case code:priv_dir(ibrowse) of +- {error, _} = Err -> +- Err; +- PrivDir -> +- Filename = filename:join(PrivDir, "ibrowse.conf"), +- import_config(Filename) ++ {error, _} = Err -> ++ Err; ++ PrivDir -> ++ Filename = filename:join(PrivDir, "ibrowse.conf"), ++ import_config(Filename) + end. + + import_config(Filename) -> + case file:consult(Filename) of +- {ok, Terms} -> +- ets:delete_all_objects(ibrowse_conf), +- Fun = fun({dest, Host, Port, MaxSess, MaxPipe, Options}) +- when is_list(Host), is_integer(Port), +- is_integer(MaxSess), MaxSess > 0, +- is_integer(MaxPipe), MaxPipe > 0, is_list(Options) -> +- I = [{{max_sessions, Host, Port}, MaxSess}, +- {{max_pipeline_size, Host, Port}, MaxPipe}, +- {{options, Host, Port}, Options}], +- lists:foreach( +- fun({X, Y}) -> +- ets:insert(ibrowse_conf, +- #ibrowse_conf{key = X, +- value = Y}) +- end, I); +- ({K, V}) -> +- ets:insert(ibrowse_conf, +- #ibrowse_conf{key = K, +- value = V}); +- (X) -> +- io:format("Skipping unrecognised term: ~p~n", [X]) +- end, +- lists:foreach(Fun, Terms); +- Err -> +- Err ++ {ok, Terms} -> ++ ets:delete_all_objects(ibrowse_conf), ++ Fun = fun({dest, Host, Port, MaxSess, MaxPipe, Options}) ++ when is_list(Host), is_integer(Port), ++ is_integer(MaxSess), MaxSess > 0, ++ is_integer(MaxPipe), MaxPipe > 0, is_list(Options) -> ++ I = [{{max_sessions, Host, Port}, MaxSess}, ++ {{max_pipeline_size, Host, Port}, MaxPipe}, ++ {{options, Host, Port}, Options}], ++ lists:foreach( ++ fun({X, Y}) -> ++ ets:insert(ibrowse_conf, ++ #ibrowse_conf{key = X, ++ value = Y}) ++ end, I); ++ ({K, V}) -> ++ ets:insert(ibrowse_conf, ++ #ibrowse_conf{key = K, ++ value = V}); ++ (X) -> ++ io:format("Skipping unrecognised term: ~p~n", [X]) ++ end, ++ lists:foreach(Fun, Terms); ++ Err -> ++ Err + end. + + %% @doc Internal export +@@ -636,10 +660,10 @@ get_config_value(Key) -> + %% @doc Internal export + get_config_value(Key, DefVal) -> + case ets:lookup(ibrowse_conf, Key) of +- [] -> +- DefVal; +- [#ibrowse_conf{value = V}] -> +- V ++ [] -> ++ DefVal; ++ [#ibrowse_conf{value = V}] -> ++ V + end. + + set_config_value(Key, Val) -> +@@ -700,36 +724,36 @@ handle_info(all_trace_off, State) -> + Mspec = [{{ibrowse_conf,{trace,'$1','$2'},true},[],[{{'$1','$2'}}]}], + Trace_on_dests = ets:select(ibrowse_conf, Mspec), + Fun = fun(#lb_pid{host_port = {H, P}, pid = Pid}, _) -> +- case lists:member({H, P}, Trace_on_dests) of +- false -> +- ok; +- true -> +- catch Pid ! {trace, false} +- end; +- (_, Acc) -> +- Acc +- end, ++ case lists:member({H, P}, Trace_on_dests) of ++ false -> ++ ok; ++ true -> ++ catch Pid ! {trace, false} ++ end; ++ (_, Acc) -> ++ Acc ++ end, + ets:foldl(Fun, undefined, ibrowse_lb), + ets:select_delete(ibrowse_conf, [{{ibrowse_conf,{trace,'$1','$2'},true},[],['true']}]), + {noreply, State}; +- ++ + handle_info({trace, Bool}, State) -> + put(my_trace_flag, Bool), + {noreply, State}; + + handle_info({trace, Bool, Host, Port}, State) -> + Fun = fun(#lb_pid{host_port = {H, P}, pid = Pid}, _) +- when H == Host, +- P == Port -> +- catch Pid ! {trace, Bool}; +- (_, Acc) -> +- Acc +- end, ++ when H == Host, ++ P == Port -> ++ catch Pid ! {trace, Bool}; ++ (_, Acc) -> ++ Acc ++ end, + ets:foldl(Fun, undefined, ibrowse_lb), + ets:insert(ibrowse_conf, #ibrowse_conf{key = {trace, Host, Port}, +- value = Bool}), ++ value = Bool}), + {noreply, State}; +- ++ + handle_info(_Info, State) -> + {noreply, State}. + +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse_app.erl b/couchdb-1.0.1/src/ibrowse/ibrowse_app.erl +index 8c83e8f..d3a0f7b 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse_app.erl ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse_app.erl +@@ -1,12 +1,11 @@ + %%%------------------------------------------------------------------- + %%% File : ibrowse_app.erl + %%% Author : Chandrashekhar Mullaparthi +-%%% Description : ++%%% Description : + %%% + %%% Created : 15 Oct 2003 by Chandrashekhar Mullaparthi + %%%------------------------------------------------------------------- + -module(ibrowse_app). +--vsn('$Id: ibrowse_app.erl,v 1.1 2005/05/05 22:28:28 chandrusf Exp $ '). + + -behaviour(application). + %%-------------------------------------------------------------------- +@@ -42,11 +41,11 @@ + %% Func: start/2 + %% Returns: {ok, Pid} | + %% {ok, Pid, State} | +-%% {error, Reason} ++%% {error, Reason} + %%-------------------------------------------------------------------- + start(_Type, _StartArgs) -> + case ibrowse_sup:start_link() of +- {ok, Pid} -> ++ {ok, Pid} -> + {ok, Pid}; + Error -> + Error +@@ -54,7 +53,7 @@ start(_Type, _StartArgs) -> + + %%-------------------------------------------------------------------- + %% Func: stop/1 +-%% Returns: any ++%% Returns: any + %%-------------------------------------------------------------------- + stop(_State) -> + ok. +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse_http_client.erl b/couchdb-1.0.1/src/ibrowse/ibrowse_http_client.erl +index 65d9cb9..1633e5b 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse_http_client.erl ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse_http_client.erl +@@ -6,8 +6,6 @@ + %%% Created : 11 Oct 2003 by Chandrashekhar Mullaparthi + %%%------------------------------------------------------------------- + -module(ibrowse_http_client). +--vsn('$Id: ibrowse_http_client.erl,v 1.19 2009/07/01 22:43:19 chandrusf Exp $ '). +- + -behaviour(gen_server). + %%-------------------------------------------------------------------- + %% Include files +@@ -16,11 +14,11 @@ + %%-------------------------------------------------------------------- + %% External exports + -export([ +- start_link/1, +- start/1, +- stop/1, +- send_req/7 +- ]). ++ start_link/1, ++ start/1, ++ stop/1, ++ send_req/7 ++ ]). + + -ifdef(debug). + -compile(export_all). +@@ -28,41 +26,45 @@ + + %% gen_server callbacks + -export([ +- init/1, +- handle_call/3, +- handle_cast/2, +- handle_info/2, +- terminate/2, +- code_change/3 +- ]). ++ init/1, ++ handle_call/3, ++ handle_cast/2, ++ handle_info/2, ++ terminate/2, ++ code_change/3 ++ ]). + + -include("ibrowse.hrl"). + +--record(state, {host, port, +- use_proxy = false, proxy_auth_digest, +- ssl_options = [], is_ssl = false, socket, +- reqs=queue:new(), cur_req, status=idle, http_status_code, +- reply_buffer = <<>>, rep_buf_size=0, streamed_size = 0, +- recvd_headers=[], +- is_closing, send_timer, content_length, +- deleted_crlf = false, transfer_encoding, +- chunk_size, chunk_size_buffer = <<>>, recvd_chunk_size, +- lb_ets_tid, cur_pipeline_size = 0, prev_req_id +- }). ++-record(state, {host, port, connect_timeout, ++ use_proxy = false, proxy_auth_digest, ++ ssl_options = [], is_ssl = false, socket, ++ proxy_tunnel_setup = false, ++ tunnel_setup_queue = [], ++ reqs=queue:new(), cur_req, status=idle, http_status_code, ++ reply_buffer = <<>>, rep_buf_size=0, streamed_size = 0, ++ recvd_headers=[], ++ status_line, raw_headers, ++ is_closing, send_timer, content_length, ++ deleted_crlf = false, transfer_encoding, ++ chunk_size, chunk_size_buffer = <<>>, recvd_chunk_size, ++ lb_ets_tid, cur_pipeline_size = 0, prev_req_id ++ }). + + -record(request, {url, method, options, from, +- stream_to, caller_controls_socket = false, +- req_id, +- stream_chunk_size, +- save_response_to_file = false, +- tmp_file_name, tmp_file_fd, +- response_format}). ++ stream_to, caller_controls_socket = false, ++ caller_socket_options = [], ++ req_id, ++ stream_chunk_size, ++ save_response_to_file = false, ++ tmp_file_name, tmp_file_fd, ++ response_format}). + + -import(ibrowse_lib, [ +- get_value/2, +- get_value/3, +- do_trace/2 +- ]). ++ get_value/2, ++ get_value/3, ++ do_trace/2 ++ ]). + + -define(DEFAULT_STREAM_CHUNK_SIZE, 1024*1024). + +@@ -80,7 +82,8 @@ start_link(Args) -> + gen_server:start_link(?MODULE, Args, []). + + stop(Conn_pid) -> +- gen_server:call(Conn_pid, stop). ++ catch gen_server:call(Conn_pid, stop), ++ ok. + + send_req(Conn_Pid, Url, Headers, Method, Body, Options, Timeout) -> + gen_server:call( +@@ -101,26 +104,23 @@ send_req(Conn_Pid, Url, Headers, Method, Body, Options, Timeout) -> + %%-------------------------------------------------------------------- + init({Lb_Tid, #url{host = Host, port = Port}, {SSLOptions, Is_ssl}}) -> + State = #state{host = Host, +- port = Port, +- ssl_options = SSLOptions, +- is_ssl = Is_ssl, +- lb_ets_tid = Lb_Tid}, ++ port = Port, ++ ssl_options = SSLOptions, ++ is_ssl = Is_ssl, ++ lb_ets_tid = Lb_Tid}, + put(ibrowse_trace_token, [Host, $:, integer_to_list(Port)]), + put(my_trace_flag, ibrowse_lib:get_trace_status(Host, Port)), + {ok, State}; ++init(Url) when is_list(Url) -> ++ case catch ibrowse_lib:parse_url(Url) of ++ #url{protocol = Protocol} = Url_rec -> ++ init({undefined, Url_rec, {[], Protocol == https}}); ++ {'EXIT', _} -> ++ {error, invalid_url} ++ end; + init({Host, Port}) -> + State = #state{host = Host, +- port = Port}, +- put(ibrowse_trace_token, [Host, $:, integer_to_list(Port)]), +- put(my_trace_flag, ibrowse_lib:get_trace_status(Host, Port)), +- {ok, State}; +-init(#url{host=Host, port=Port, protocol=Protocol}) -> +- State = #state{ +- host = Host, +- port = Port, +- is_ssl = (Protocol == https), +- ssl_options = [{ssl_imp, new}, {depth, 9}] +- }, ++ port = Port}, + put(ibrowse_trace_token, [Host, $:, integer_to_list(Port)]), + put(my_trace_flag, ibrowse_lib:get_trace_status(Host, Port)), + {ok, State}. +@@ -141,13 +141,13 @@ handle_call({send_req, _}, _From, #state{is_closing = true} = State) -> + {reply, {error, connection_closing}, State}; + + handle_call({send_req, {Url, Headers, Method, Body, Options, Timeout}}, +- From, State) -> ++ From, State) -> + send_req_1(From, Url, Headers, Method, Body, Options, Timeout, State); + + handle_call(stop, _From, State) -> + do_close(State), + do_error_reply(State, closing_on_request), +- {stop, normal, ok, State#state{socket=undefined}}; ++ {stop, normal, ok, State}; + + handle_call(Request, _From, State) -> + Reply = {unknown_request, Request}, +@@ -177,9 +177,8 @@ handle_info({ssl, _Sock, Data}, State) -> + handle_sock_data(Data, State); + + handle_info({stream_next, Req_id}, #state{socket = Socket, +- is_ssl = Is_ssl, +- cur_req = #request{req_id = Req_id}} = State) -> +- do_setopts(Socket, [{active, once}], Is_ssl), ++ cur_req = #request{req_id = Req_id}} = State) -> ++ do_setopts(Socket, [{active, once}], State), + {noreply, State}; + + handle_info({stream_next, _Req_id}, State) -> +@@ -204,13 +203,13 @@ handle_info({ssl_error, _Sock}, State) -> + {stop, normal, State}; + + handle_info({req_timedout, From}, State) -> +- case lists:keysearch(From, #request.from, queue:to_list(State#state.reqs)) of +- false -> +- {noreply, State}; +- {value, _} -> +- shutting_down(State), +- do_error_reply(State, req_timedout), +- {stop, normal, State} ++ case lists:keymember(From, #request.from, queue:to_list(State#state.reqs)) of ++ false -> ++ {noreply, State}; ++ true -> ++ shutting_down(State), ++ do_error_reply(State, req_timedout), ++ {stop, normal, State} + end; + + handle_info(timeout, State) -> +@@ -224,7 +223,7 @@ handle_info({trace, Bool}, State) -> + + handle_info(Info, State) -> + io:format("Unknown message recvd for ~1000.p:~1000.p -> ~p~n", +- [State#state.host, State#state.port, Info]), ++ [State#state.host, State#state.port, Info]), + io:format("Recvd unknown message ~p when in state: ~p~n", [Info, State]), + {noreply, State}. + +@@ -260,133 +259,132 @@ handle_sock_data(Data, #state{status=idle}=State) -> + + handle_sock_data(Data, #state{status = get_header}=State) -> + case parse_response(Data, State) of +- {error, _Reason} -> +- shutting_down(State), +- {stop, normal, State}; +- stop -> +- shutting_down(State), +- {stop, normal, State}; +- State_1 -> +- active_once(State_1), +- {noreply, State_1, get_inac_timeout(State_1)} ++ {error, _Reason} -> ++ shutting_down(State), ++ {stop, normal, State}; ++ State_1 -> ++ active_once(State_1), ++ set_inac_timer(State_1), ++ {noreply, State_1} + end; + + handle_sock_data(Data, #state{status = get_body, +- content_length = CL, +- http_status_code = StatCode, +- recvd_headers = Headers, +- chunk_size = CSz} = State) -> ++ content_length = CL, ++ http_status_code = StatCode, ++ recvd_headers = Headers, ++ chunk_size = CSz} = State) -> + case (CL == undefined) and (CSz == undefined) of +- true -> +- case accumulate_response(Data, State) of +- {error, Reason} -> +- shutting_down(State), +- fail_pipelined_requests(State, +- {error, {Reason, {stat_code, StatCode}, Headers}}), +- {stop, normal, State}; +- State_1 -> +- active_once(State_1), +- {noreply, State_1, get_inac_timeout(State_1)} +- end; +- _ -> +- case parse_11_response(Data, State) of +- {error, Reason} -> +- shutting_down(State), +- fail_pipelined_requests(State, +- {error, {Reason, {stat_code, StatCode}, Headers}}), +- {stop, normal, State}; +- stop -> +- shutting_down(State), +- {stop, normal, State}; +- State_1 -> +- active_once(State_1), +- {noreply, State_1, get_inac_timeout(State_1)} +- end ++ true -> ++ case accumulate_response(Data, State) of ++ {error, Reason} -> ++ shutting_down(State), ++ fail_pipelined_requests(State, ++ {error, {Reason, {stat_code, StatCode}, Headers}}), ++ {stop, normal, State}; ++ State_1 -> ++ active_once(State_1), ++ set_inac_timer(State_1), ++ {noreply, State_1} ++ end; ++ _ -> ++ case parse_11_response(Data, State) of ++ {error, Reason} -> ++ shutting_down(State), ++ fail_pipelined_requests(State, ++ {error, {Reason, {stat_code, StatCode}, Headers}}), ++ {stop, normal, State}; ++ State_1 -> ++ active_once(State_1), ++ set_inac_timer(State_1), ++ {noreply, State_1} ++ end + end. + + accumulate_response(Data, +- #state{ +- cur_req = #request{save_response_to_file = true, +- tmp_file_fd = undefined} = CurReq, +- http_status_code=[$2 | _]}=State) -> +- TmpFilename = make_tmp_filename(), ++ #state{ ++ cur_req = #request{save_response_to_file = Srtf, ++ tmp_file_fd = undefined} = CurReq, ++ http_status_code=[$2 | _]}=State) when Srtf /= false -> ++ TmpFilename = make_tmp_filename(Srtf), + case file:open(TmpFilename, [write, delayed_write, raw]) of +- {ok, Fd} -> +- accumulate_response(Data, State#state{ +- cur_req = CurReq#request{ +- tmp_file_fd = Fd, +- tmp_file_name = TmpFilename}}); +- {error, Reason} -> +- {error, {file_open_error, Reason}} ++ {ok, Fd} -> ++ accumulate_response(Data, State#state{ ++ cur_req = CurReq#request{ ++ tmp_file_fd = Fd, ++ tmp_file_name = TmpFilename}}); ++ {error, Reason} -> ++ {error, {file_open_error, Reason}} + end; +-accumulate_response(Data, #state{cur_req = #request{save_response_to_file = true, +- tmp_file_fd = Fd}, +- transfer_encoding=chunked, +- reply_buffer = Reply_buf, +- http_status_code=[$2 | _] +- } = State) -> ++accumulate_response(Data, #state{cur_req = #request{save_response_to_file = Srtf, ++ tmp_file_fd = Fd}, ++ transfer_encoding=chunked, ++ reply_buffer = Reply_buf, ++ http_status_code=[$2 | _] ++ } = State) when Srtf /= false -> + case file:write(Fd, [Reply_buf, Data]) of +- ok -> +- State#state{reply_buffer = <<>>}; +- {error, Reason} -> +- {error, {file_write_error, Reason}} ++ ok -> ++ State#state{reply_buffer = <<>>}; ++ {error, Reason} -> ++ {error, {file_write_error, Reason}} + end; +-accumulate_response(Data, #state{cur_req = #request{save_response_to_file = true, +- tmp_file_fd = Fd}, +- reply_buffer = RepBuf, +- http_status_code=[$2 | _] +- } = State) -> ++accumulate_response(Data, #state{cur_req = #request{save_response_to_file = Srtf, ++ tmp_file_fd = Fd}, ++ reply_buffer = RepBuf, ++ http_status_code=[$2 | _] ++ } = State) when Srtf /= false -> + case file:write(Fd, [RepBuf, Data]) of +- ok -> +- State#state{reply_buffer = <<>>}; +- {error, Reason} -> +- {error, {file_write_error, Reason}} ++ ok -> ++ State#state{reply_buffer = <<>>}; ++ {error, Reason} -> ++ {error, {file_write_error, Reason}} + end; + accumulate_response(<<>>, State) -> + State; + accumulate_response(Data, #state{reply_buffer = RepBuf, +- rep_buf_size = RepBufSize, +- streamed_size = Streamed_size, +- cur_req = CurReq}=State) -> ++ rep_buf_size = RepBufSize, ++ streamed_size = Streamed_size, ++ cur_req = CurReq}=State) -> + #request{stream_to=StreamTo, req_id=ReqId, +- stream_chunk_size = Stream_chunk_size, +- response_format = Response_format, +- caller_controls_socket = Caller_controls_socket} = CurReq, ++ stream_chunk_size = Stream_chunk_size, ++ response_format = Response_format, ++ caller_controls_socket = Caller_controls_socket} = CurReq, + RepBuf_1 = list_to_binary([RepBuf, Data]), + New_data_size = RepBufSize - Streamed_size, + case StreamTo of +- undefined -> +- State#state{reply_buffer = RepBuf_1}; +- _ when Caller_controls_socket == true -> +- do_interim_reply(StreamTo, Response_format, ReqId, RepBuf_1), +- State#state{reply_buffer = <<>>, +- streamed_size = Streamed_size + size(RepBuf_1)}; +- _ when New_data_size >= Stream_chunk_size -> +- {Stream_chunk, Rem_data} = split_binary(RepBuf_1, Stream_chunk_size), +- do_interim_reply(StreamTo, Response_format, ReqId, Stream_chunk), +- accumulate_response( +- Rem_data, +- State#state{ +- reply_buffer = <<>>, +- streamed_size = Streamed_size + Stream_chunk_size}); +- _ -> +- State#state{reply_buffer = RepBuf_1} ++ undefined -> ++ State#state{reply_buffer = RepBuf_1}; ++ _ when Caller_controls_socket == true -> ++ do_interim_reply(StreamTo, Response_format, ReqId, RepBuf_1), ++ State#state{reply_buffer = <<>>, ++ streamed_size = Streamed_size + size(RepBuf_1)}; ++ _ when New_data_size >= Stream_chunk_size -> ++ {Stream_chunk, Rem_data} = split_binary(RepBuf_1, Stream_chunk_size), ++ do_interim_reply(StreamTo, Response_format, ReqId, Stream_chunk), ++ accumulate_response( ++ Rem_data, ++ State#state{ ++ reply_buffer = <<>>, ++ streamed_size = Streamed_size + Stream_chunk_size}); ++ _ -> ++ State#state{reply_buffer = RepBuf_1} + end. + +-make_tmp_filename() -> ++make_tmp_filename(true) -> + DownloadDir = ibrowse:get_config_value(download_dir, filename:absname("./")), + {A,B,C} = now(), + filename:join([DownloadDir, +- "ibrowse_tmp_file_"++ +- integer_to_list(A) ++ +- integer_to_list(B) ++ +- integer_to_list(C)]). ++ "ibrowse_tmp_file_"++ ++ integer_to_list(A) ++ ++ integer_to_list(B) ++ ++ integer_to_list(C)]); ++make_tmp_filename(File) when is_list(File) -> ++ File. + + + %%-------------------------------------------------------------------- + %% Handles the case when the server closes the socket + %%-------------------------------------------------------------------- +-handle_sock_closed(#state{status=get_header}=State) -> ++handle_sock_closed(#state{status=get_header} = State) -> + shutting_down(State), + do_error_reply(State, connection_closed); + +@@ -397,40 +395,73 @@ handle_sock_closed(#state{cur_req=undefined} = State) -> + %% Connection-Close header and has closed the socket to indicate end + %% of response. There maybe requests pipelined which need a response. + handle_sock_closed(#state{reply_buffer = Buf, reqs = Reqs, http_status_code = SC, +- is_closing = IsClosing, +- cur_req = #request{tmp_file_name=TmpFilename, +- tmp_file_fd=Fd} = CurReq, +- status = get_body, recvd_headers = Headers}=State) -> ++ is_closing = IsClosing, ++ cur_req = #request{tmp_file_name=TmpFilename, ++ tmp_file_fd=Fd} = CurReq, ++ status = get_body, ++ recvd_headers = Headers, ++ status_line = Status_line, ++ raw_headers = Raw_headers ++ }=State) -> + #request{from=From, stream_to=StreamTo, req_id=ReqId, +- response_format = Resp_format} = CurReq, ++ response_format = Resp_format, ++ options = Options} = CurReq, + case IsClosing of +- true -> +- {_, Reqs_1} = queue:out(Reqs), +- case TmpFilename of +- undefined -> +- do_reply(State, From, StreamTo, ReqId, Resp_format, +- {ok, SC, Headers, Buf}); +- _ -> +- file:close(Fd), +- do_reply(State, From, StreamTo, ReqId, Resp_format, +- {ok, SC, Headers, {file, TmpFilename}}) +- end, +- do_error_reply(State#state{reqs = Reqs_1}, connection_closed), +- State; +- _ -> +- do_error_reply(State, connection_closed), +- State ++ true -> ++ {_, Reqs_1} = queue:out(Reqs), ++ Body = case TmpFilename of ++ undefined -> ++ Buf; ++ _ -> ++ file:close(Fd), ++ {file, TmpFilename} ++ end, ++ Reply = case get_value(give_raw_headers, Options, false) of ++ true -> ++ {ok, Status_line, Raw_headers, Body}; ++ false -> ++ {ok, SC, Headers, Buf} ++ end, ++ do_reply(State, From, StreamTo, ReqId, Resp_format, Reply), ++ do_error_reply(State#state{reqs = Reqs_1}, connection_closed), ++ State; ++ _ -> ++ do_error_reply(State, connection_closed), ++ State + end. + +-do_connect(Host, Port, _Options, #state{is_ssl=true, ssl_options=SSLOptions}, Timeout) -> ++do_connect(Host, Port, Options, #state{is_ssl = true, ++ use_proxy = false, ++ ssl_options = SSLOptions}, ++ Timeout) -> ++ Caller_socket_options = get_value(socket_options, Options, []), ++ Other_sock_options = filter_sock_options(SSLOptions ++ Caller_socket_options), + ssl:connect(Host, Port, +- [binary, {nodelay, true}, {active, false} | SSLOptions], +- Timeout); +-do_connect(Host, Port, _Options, _State, Timeout) -> +- gen_tcp:connect(Host, Port, +- [binary, {nodelay, true}, {active, false}], +- Timeout). +- ++ [binary, {nodelay, true}, {active, false} | Other_sock_options], ++ Timeout); ++do_connect(Host, Port, Options, _State, Timeout) -> ++ Caller_socket_options = get_value(socket_options, Options, []), ++ Other_sock_options = filter_sock_options(Caller_socket_options), ++ gen_tcp:connect(Host, to_integer(Port), ++ [binary, {nodelay, true}, {active, false} | Other_sock_options], ++ Timeout). ++ ++%% We don't want the caller to specify certain options ++filter_sock_options(Opts) -> ++ lists:filter(fun({active, _}) -> ++ false; ++ ({packet, _}) -> ++ false; ++ (list) -> ++ false; ++ (_) -> ++ true ++ end, Opts). ++ ++do_send(Req, #state{socket = Sock, ++ is_ssl = true, ++ use_proxy = true, ++ proxy_tunnel_setup = Pts}) when Pts /= done -> gen_tcp:send(Sock, Req); + do_send(Req, #state{socket = Sock, is_ssl = true}) -> ssl:send(Sock, Req); + do_send(Req, #state{socket = Sock, is_ssl = false}) -> gen_tcp:send(Sock, Req). + +@@ -450,261 +481,328 @@ do_send_body(Body, State) -> + + do_send_body1(Source, Resp, State) -> + case Resp of +- {ok, Data} -> +- do_send(Data, State), +- do_send_body({Source}, State); +- {ok, Data, New_source_state} -> +- do_send(Data, State), +- do_send_body({Source, New_source_state}, State); +- eof -> +- ok; +- Err -> +- Err ++ {ok, Data} -> ++ do_send(Data, State), ++ do_send_body({Source}, State); ++ {ok, Data, New_source_state} -> ++ do_send(Data, State), ++ do_send_body({Source, New_source_state}, State); ++ eof -> ++ ok; ++ Err -> ++ Err + end. + + do_close(#state{socket = undefined}) -> ok; ++do_close(#state{socket = Sock, ++ is_ssl = true, ++ use_proxy = true, ++ proxy_tunnel_setup = Pts ++ }) when Pts /= done -> gen_tcp:close(Sock); + do_close(#state{socket = Sock, is_ssl = true}) -> ssl:close(Sock); + do_close(#state{socket = Sock, is_ssl = false}) -> gen_tcp:close(Sock). + + active_once(#state{cur_req = #request{caller_controls_socket = true}}) -> + ok; +-active_once(#state{socket = Socket, is_ssl = Is_ssl}) -> +- do_setopts(Socket, [{active, once}], Is_ssl). ++active_once(#state{socket = Socket} = State) -> ++ do_setopts(Socket, [{active, once}], State). + +-do_setopts(Sock, Opts, true) -> ssl:setopts(Sock, Opts); +-do_setopts(Sock, Opts, false) -> inet:setopts(Sock, Opts). ++do_setopts(_Sock, [], _) -> ok; ++do_setopts(Sock, Opts, #state{is_ssl = true, ++ use_proxy = true, ++ proxy_tunnel_setup = Pts} ++ ) when Pts /= done -> inet:setopts(Sock, Opts); ++do_setopts(Sock, Opts, #state{is_ssl = true}) -> ssl:setopts(Sock, Opts); ++do_setopts(Sock, Opts, _) -> inet:setopts(Sock, Opts). + + check_ssl_options(Options, State) -> + case get_value(is_ssl, Options, false) of +- false -> +- State; +- true -> +- State#state{is_ssl=true, ssl_options=get_value(ssl_options, Options)} ++ false -> ++ State; ++ true -> ++ State#state{is_ssl=true, ssl_options=get_value(ssl_options, Options)} + end. + + send_req_1(From, +- #url{host = Host, +- port = Port} = Url, +- Headers, Method, Body, Options, Timeout, +- #state{socket = undefined} = State) -> ++ #url{host = Host, ++ port = Port} = Url, ++ Headers, Method, Body, Options, Timeout, ++ #state{socket = undefined} = State) -> + {Host_1, Port_1, State_1} = +- case get_value(proxy_host, Options, false) of +- false -> +- {Host, Port, State}; +- PHost -> +- ProxyUser = get_value(proxy_user, Options, []), +- ProxyPassword = get_value(proxy_password, Options, []), +- Digest = http_auth_digest(ProxyUser, ProxyPassword), +- {PHost, get_value(proxy_port, Options, 80), +- State#state{use_proxy = true, +- proxy_auth_digest = Digest}} +- end, ++ case get_value(proxy_host, Options, false) of ++ false -> ++ {Host, Port, State}; ++ PHost -> ++ ProxyUser = get_value(proxy_user, Options, []), ++ ProxyPassword = get_value(proxy_password, Options, []), ++ Digest = http_auth_digest(ProxyUser, ProxyPassword), ++ {PHost, get_value(proxy_port, Options, 80), ++ State#state{use_proxy = true, ++ proxy_auth_digest = Digest}} ++ end, + State_2 = check_ssl_options(Options, State_1), + do_trace("Connecting...~n", []), + Start_ts = now(), + Conn_timeout = get_value(connect_timeout, Options, Timeout), + case do_connect(Host_1, Port_1, Options, State_2, Conn_timeout) of +- {ok, Sock} -> +- do_trace("Connected!~n", []), +- End_ts = now(), +- Timeout_1 = case Timeout of +- infinity -> +- infinity; +- _ -> +- Timeout - trunc(round(timer:now_diff(End_ts, Start_ts) / 1000)) +- end, +- State_3 = State_2#state{socket = Sock}, +- send_req_1(From, Url, Headers, Method, Body, Options, Timeout_1, State_3); +- Err -> +- shutting_down(State_2), +- do_trace("Error connecting. Reason: ~1000.p~n", [Err]), +- gen_server:reply(From, {error, conn_failed}), +- {stop, normal, State_2} ++ {ok, Sock} -> ++ do_trace("Connected!~n", []), ++ End_ts = now(), ++ Timeout_1 = case Timeout of ++ infinity -> ++ infinity; ++ _ -> ++ Timeout - trunc(round(timer:now_diff(End_ts, Start_ts) / 1000)) ++ end, ++ State_3 = State_2#state{socket = Sock, ++ connect_timeout = Conn_timeout}, ++ send_req_1(From, Url, Headers, Method, Body, Options, Timeout_1, State_3); ++ Err -> ++ shutting_down(State_2), ++ do_trace("Error connecting. Reason: ~1000.p~n", [Err]), ++ gen_server:reply(From, {error, conn_failed}), ++ {stop, normal, State_2} + end; ++ ++%% Send a CONNECT request. ++%% Wait for 200 OK ++%% Upgrade to SSL connection ++%% Then send request ++ + send_req_1(From, +- #url{abspath = AbsPath, +- host = Host, +- port = Port, +- path = RelPath} = Url, +- Headers, Method, Body, Options, Timeout, +- #state{status = Status} = State) -> ++ #url{ ++ host = Server_host, ++ port = Server_port ++ } = Url, ++ Headers, Method, Body, Options, Timeout, ++ #state{ ++ proxy_tunnel_setup = false, ++ use_proxy = true, ++ is_ssl = true} = State) -> ++ NewReq = #request{ ++ method = connect, ++ options = Options ++ }, ++ State_1 = State#state{reqs=queue:in(NewReq, State#state.reqs)}, ++ Pxy_auth_headers = maybe_modify_headers(Url, Method, Options, [], State_1), ++ Path = [Server_host, $:, integer_to_list(Server_port)], ++ {Req, Body_1} = make_request(connect, Pxy_auth_headers, ++ Path, Path, ++ [], Options, State_1), ++ trace_request(Req), ++ case do_send(Req, State) of ++ ok -> ++ case do_send_body(Body_1, State_1) of ++ ok -> ++ active_once(State_1), ++ Ref = case Timeout of ++ infinity -> ++ undefined; ++ _ -> ++ erlang:send_after(Timeout, self(), {req_timedout, From}) ++ end, ++ State_2 = State_1#state{status = get_header, ++ cur_req = NewReq, ++ send_timer = Ref, ++ proxy_tunnel_setup = in_progress, ++ tunnel_setup_queue = [{From, Url, Headers, Method, Body, Options, Timeout}]}, ++ set_inac_timer(State_1), ++ {noreply, State_2}; ++ Err -> ++ shutting_down(State_1), ++ do_trace("Send failed... Reason: ~p~n", [Err]), ++ gen_server:reply(From, {error, send_failed}), ++ {stop, normal, State_1} ++ end; ++ Err -> ++ shutting_down(State_1), ++ do_trace("Send failed... Reason: ~p~n", [Err]), ++ gen_server:reply(From, {error, send_failed}), ++ {stop, normal, State_1} ++ end; ++ ++send_req_1(From, Url, Headers, Method, Body, Options, Timeout, ++ #state{proxy_tunnel_setup = in_progress, ++ tunnel_setup_queue = Q} = State) -> ++ do_trace("Queued SSL request awaiting tunnel setup: ~n" ++ "URL : ~s~n" ++ "Method : ~p~n" ++ "Headers : ~p~n", [Url, Method, Headers]), ++ {noreply, State#state{tunnel_setup_queue = [{From, Url, Headers, Method, Body, Options, Timeout} | Q]}}; ++ ++send_req_1(From, ++ #url{abspath = AbsPath, ++ path = RelPath} = Url, ++ Headers, Method, Body, Options, Timeout, ++ #state{status = Status, ++ socket = Socket, ++ is_ssl = Is_ssl} = State) -> + ReqId = make_req_id(), + Resp_format = get_value(response_format, Options, list), ++ Caller_socket_options = get_value(socket_options, Options, []), + {StreamTo, Caller_controls_socket} = +- case get_value(stream_to, Options, undefined) of +- {Caller, once} when is_pid(Caller) or +- is_atom(Caller) -> +- Async_pid_rec = {{req_id_pid, ReqId}, self()}, +- true = ets:insert(ibrowse_stream, Async_pid_rec), +- {Caller, true}; +- undefined -> +- {undefined, false}; +- Caller when is_pid(Caller) or +- is_atom(Caller) -> +- {Caller, false}; +- Stream_to_inv -> +- exit({invalid_option, {stream_to, Stream_to_inv}}) +- end, ++ case get_value(stream_to, Options, undefined) of ++ {Caller, once} when is_pid(Caller) or ++ is_atom(Caller) -> ++ Async_pid_rec = {{req_id_pid, ReqId}, self()}, ++ true = ets:insert(ibrowse_stream, Async_pid_rec), ++ {Caller, true}; ++ undefined -> ++ {undefined, false}; ++ Caller when is_pid(Caller) or ++ is_atom(Caller) -> ++ {Caller, false}; ++ Stream_to_inv -> ++ exit({invalid_option, {stream_to, Stream_to_inv}}) ++ end, + SaveResponseToFile = get_value(save_response_to_file, Options, false), + NewReq = #request{url = Url, +- method = Method, +- stream_to = StreamTo, +- caller_controls_socket = Caller_controls_socket, +- options = Options, +- req_id = ReqId, +- save_response_to_file = SaveResponseToFile, +- stream_chunk_size = get_stream_chunk_size(Options), +- response_format = Resp_format, +- from = From}, ++ method = Method, ++ stream_to = StreamTo, ++ caller_controls_socket = Caller_controls_socket, ++ caller_socket_options = Caller_socket_options, ++ options = Options, ++ req_id = ReqId, ++ save_response_to_file = SaveResponseToFile, ++ stream_chunk_size = get_stream_chunk_size(Options), ++ response_format = Resp_format, ++ from = From}, + State_1 = State#state{reqs=queue:in(NewReq, State#state.reqs)}, +- Headers_1 = add_auth_headers(Url, Options, Headers, State), +- HostHeaderValue = case lists:keysearch(host_header, 1, Options) of +- false -> +- case Port of +- 80 -> Host; +- _ -> [Host, ":", integer_to_list(Port)] +- end; +- {value, {_, Host_h_val}} -> +- Host_h_val +- end, ++ Headers_1 = maybe_modify_headers(Url, Method, Options, Headers, State_1), + {Req, Body_1} = make_request(Method, +- [{"Host", HostHeaderValue} | Headers_1], +- AbsPath, RelPath, Body, Options, State#state.use_proxy), +- case get(my_trace_flag) of +- true -> +- %%Avoid the binary operations if trace is not on... +- NReq = binary_to_list(list_to_binary(Req)), +- do_trace("Sending request: ~n" +- "--- Request Begin ---~n~s~n" +- "--- Request End ---~n", [NReq]); +- _ -> ok +- end, +- case do_send(Req, State) of +- ok -> +- case do_send_body(Body_1, State) of +- ok -> +- State_2 = inc_pipeline_counter(State_1), +- active_once(State_1), +- Ref = case Timeout of +- infinity -> +- undefined; +- _ -> +- erlang:send_after(Timeout, self(), {req_timedout, From}) +- end, +- State_3 = case Status of +- idle -> +- State_2#state{status = get_header, +- cur_req = NewReq, +- send_timer = Ref}; +- _ -> +- State_2#state{send_timer = Ref} +- end, +- case StreamTo of +- undefined -> +- ok; +- _ -> +- gen_server:reply(From, {ibrowse_req_id, ReqId}) +- end, +- {noreply, State_3, get_inac_timeout(State_3)}; +- Err -> +- shutting_down(State_1), +- do_trace("Send failed... Reason: ~p~n", [Err]), +- gen_server:reply(From, {error, send_failed}), +- {stop, normal, State_1} +- end; +- Err -> +- shutting_down(State_1), +- do_trace("Send failed... Reason: ~p~n", [Err]), +- gen_server:reply(From, {error, send_failed}), +- {stop, normal, State_1} ++ Headers_1, ++ AbsPath, RelPath, Body, Options, State_1), ++ trace_request(Req), ++ do_setopts(Socket, Caller_socket_options, Is_ssl), ++ case do_send(Req, State_1) of ++ ok -> ++ case do_send_body(Body_1, State_1) of ++ ok -> ++ State_2 = inc_pipeline_counter(State_1), ++ active_once(State_2), ++ Ref = case Timeout of ++ infinity -> ++ undefined; ++ _ -> ++ erlang:send_after(Timeout, self(), {req_timedout, From}) ++ end, ++ State_3 = case Status of ++ idle -> ++ State_2#state{status = get_header, ++ cur_req = NewReq, ++ send_timer = Ref}; ++ _ -> ++ State_2#state{send_timer = Ref} ++ end, ++ case StreamTo of ++ undefined -> ++ ok; ++ _ -> ++ gen_server:reply(From, {ibrowse_req_id, ReqId}) ++ end, ++ set_inac_timer(State_1), ++ {noreply, State_3}; ++ Err -> ++ shutting_down(State_1), ++ do_trace("Send failed... Reason: ~p~n", [Err]), ++ gen_server:reply(From, {error, send_failed}), ++ {stop, normal, State_1} ++ end; ++ Err -> ++ shutting_down(State_1), ++ do_trace("Send failed... Reason: ~p~n", [Err]), ++ gen_server:reply(From, {error, send_failed}), ++ {stop, normal, State_1} ++ end. ++ ++maybe_modify_headers(#url{}, connect, _, Headers, State) -> ++ add_proxy_auth_headers(State, Headers); ++maybe_modify_headers(#url{host = Host, port = Port} = Url, ++ _Method, ++ Options, Headers, State) -> ++ case get_value(headers_as_is, Options, false) of ++ false -> ++ Headers_1 = add_auth_headers(Url, Options, Headers, State), ++ HostHeaderValue = case lists:keysearch(host_header, 1, Options) of ++ false -> ++ case Port of ++ 80 -> Host; ++ _ -> [Host, ":", integer_to_list(Port)] ++ end; ++ {value, {_, Host_h_val}} -> ++ Host_h_val ++ end, ++ [{"Host", HostHeaderValue} | Headers_1]; ++ true -> ++ Headers + end. + + add_auth_headers(#url{username = User, +- password = UPw}, +- Options, +- Headers, +- #state{use_proxy = UseProxy, +- proxy_auth_digest = ProxyAuthDigest}) -> ++ password = UPw}, ++ Options, ++ Headers, ++ State) -> + Headers_1 = case User of +- undefined -> +- case get_value(basic_auth, Options, undefined) of +- undefined -> +- Headers; +- {U,P} -> +- [{"Authorization", ["Basic ", http_auth_digest(U, P)]} | Headers] +- end; +- _ -> +- [{"Authorization", ["Basic ", http_auth_digest(User, UPw)]} | Headers] +- end, +- case UseProxy of +- false -> +- Headers_1; +- true when ProxyAuthDigest == [] -> +- Headers_1; +- true -> +- [{"Proxy-Authorization", ["Basic ", ProxyAuthDigest]} | Headers_1] +- end. ++ undefined -> ++ case get_value(basic_auth, Options, undefined) of ++ undefined -> ++ Headers; ++ {U,P} -> ++ [{"Authorization", ["Basic ", http_auth_digest(U, P)]} | Headers] ++ end; ++ _ -> ++ [{"Authorization", ["Basic ", http_auth_digest(User, UPw)]} | Headers] ++ end, ++ add_proxy_auth_headers(State, Headers_1). ++ ++add_proxy_auth_headers(#state{use_proxy = false}, Headers) -> ++ Headers; ++add_proxy_auth_headers(#state{proxy_auth_digest = []}, Headers) -> ++ Headers; ++add_proxy_auth_headers(#state{proxy_auth_digest = Auth_digest}, Headers) -> ++ [{"Proxy-Authorization", ["Basic ", Auth_digest]} | Headers]. + + http_auth_digest([], []) -> + []; + http_auth_digest(Username, Password) -> +- encode_base64(Username ++ [$: | Password]). ++ ibrowse_lib:encode_base64(Username ++ [$: | Password]). + +-encode_base64([]) -> +- []; +-encode_base64([A]) -> +- [e(A bsr 2), e((A band 3) bsl 4), $=, $=]; +-encode_base64([A,B]) -> +- [e(A bsr 2), e(((A band 3) bsl 4) bor (B bsr 4)), e((B band 15) bsl 2), $=]; +-encode_base64([A,B,C|Ls]) -> +- encode_base64_do(A,B,C, Ls). +-encode_base64_do(A,B,C, Rest) -> +- BB = (A bsl 16) bor (B bsl 8) bor C, +- [e(BB bsr 18), e((BB bsr 12) band 63), +- e((BB bsr 6) band 63), e(BB band 63)|encode_base64(Rest)]. +- +-e(X) when X >= 0, X < 26 -> X+65; +-e(X) when X>25, X<52 -> X+71; +-e(X) when X>51, X<62 -> X-4; +-e(62) -> $+; +-e(63) -> $/; +-e(X) -> exit({bad_encode_base64_token, X}). +- +-make_request(Method, Headers, AbsPath, RelPath, Body, Options, UseProxy) -> ++make_request(Method, Headers, AbsPath, RelPath, Body, Options, ++ #state{use_proxy = UseProxy}) -> + HttpVsn = http_vsn_string(get_value(http_vsn, Options, {1,1})), + Headers_1 = +- case get_value(content_length, Headers, false) of +- false when (Body == []) or +- (Body == <<>>) or +- is_tuple(Body) or +- is_function(Body) -> +- Headers; +- false when is_binary(Body) -> +- [{"content-length", integer_to_list(size(Body))} | Headers]; +- false -> +- [{"content-length", integer_to_list(length(Body))} | Headers]; +- _ -> +- Headers +- end, ++ case get_value(content_length, Headers, false) of ++ false when (Body == []) or ++ (Body == <<>>) or ++ is_tuple(Body) or ++ is_function(Body) -> ++ Headers; ++ false when is_binary(Body) -> ++ [{"content-length", integer_to_list(size(Body))} | Headers]; ++ false -> ++ [{"content-length", integer_to_list(length(Body))} | Headers]; ++ _ -> ++ Headers ++ end, + {Headers_2, Body_1} = +- case get_value(transfer_encoding, Options, false) of +- false -> +- {Headers_1, Body}; +- {chunked, ChunkSize} -> +- {[{X, Y} || {X, Y} <- Headers_1, +- X /= "Content-Length", +- X /= "content-length", +- X /= content_length] ++ +- [{"Transfer-Encoding", "chunked"}], +- chunk_request_body(Body, ChunkSize)} +- end, ++ case get_value(transfer_encoding, Options, false) of ++ false -> ++ {Headers_1, Body}; ++ {chunked, ChunkSize} -> ++ {[{X, Y} || {X, Y} <- Headers_1, ++ X /= "Content-Length", ++ X /= "content-length", ++ X /= content_length] ++ ++ [{"Transfer-Encoding", "chunked"}], ++ chunk_request_body(Body, ChunkSize)} ++ end, + Headers_3 = cons_headers(Headers_2), + Uri = case get_value(use_absolute_uri, Options, false) or UseProxy of +- true -> +- AbsPath; +- false -> +- RelPath +- end, ++ true -> ++ AbsPath; ++ false -> ++ RelPath ++ end, + {[method(Method), " ", Uri, " ", HttpVsn, crnl(), Headers_3, crnl()], Body_1}. + + http_vsn_string({0,9}) -> "HTTP/0.9"; +@@ -717,7 +815,7 @@ cons_headers([], Acc) -> + encode_headers(Acc); + cons_headers([{basic_auth, {U,P}} | T], Acc) -> + cons_headers(T, [{"Authorization", +- ["Basic ", ibrowse_lib:encode_base64(U++":"++P)]} | Acc]); ++ ["Basic ", ibrowse_lib:encode_base64(U++":"++P)]} | Acc]); + cons_headers([{cookie, Cookie} | T], Acc) -> + cons_headers(T, [{"Cookie", Cookie} | Acc]); + cons_headers([{content_length, L} | T], Acc) -> +@@ -748,24 +846,23 @@ chunk_request_body(Body, ChunkSize, Acc) when is_binary(Body), + size(Body) >= ChunkSize -> + <> = Body, + Chunk = [ibrowse_lib:dec2hex(4, ChunkSize),"\r\n", +- ChunkBody, "\r\n"], ++ ChunkBody, "\r\n"], + chunk_request_body(Rest, ChunkSize, [Chunk | Acc]); + chunk_request_body(Body, _ChunkSize, Acc) when is_binary(Body) -> + BodySize = size(Body), + Chunk = [ibrowse_lib:dec2hex(4, BodySize),"\r\n", +- Body, "\r\n"], ++ Body, "\r\n"], + LastChunk = "0\r\n", + lists:reverse(["\r\n", LastChunk, Chunk | Acc]); +-chunk_request_body(Body, ChunkSize, Acc) when is_list(Body), +- length(Body) >= ChunkSize -> ++chunk_request_body(Body, ChunkSize, Acc) when length(Body) >= ChunkSize -> + {ChunkBody, Rest} = split_list_at(Body, ChunkSize), + Chunk = [ibrowse_lib:dec2hex(4, ChunkSize),"\r\n", +- ChunkBody, "\r\n"], ++ ChunkBody, "\r\n"], + chunk_request_body(Rest, ChunkSize, [Chunk | Acc]); + chunk_request_body(Body, _ChunkSize, Acc) when is_list(Body) -> + BodySize = length(Body), + Chunk = [ibrowse_lib:dec2hex(4, BodySize),"\r\n", +- Body, "\r\n"], ++ Body, "\r\n"], + LastChunk = "0\r\n", + lists:reverse(["\r\n", LastChunk, Chunk | Acc]). + +@@ -773,114 +870,172 @@ chunk_request_body(Body, _ChunkSize, Acc) when is_list(Body) -> + parse_response(_Data, #state{cur_req = undefined}=State) -> + State#state{status = idle}; + parse_response(Data, #state{reply_buffer = Acc, reqs = Reqs, +- cur_req = CurReq} = State) -> ++ cur_req = CurReq} = State) -> + #request{from=From, stream_to=StreamTo, req_id=ReqId, +- method=Method, response_format = Resp_format} = CurReq, ++ method=Method, response_format = Resp_format, ++ options = Options ++ } = CurReq, + MaxHeaderSize = ibrowse:get_config_value(max_headers_size, infinity), + case scan_header(Acc, Data) of +- {yes, Headers, Data_1} -> +- do_trace("Recvd Header Data -> ~s~n----~n", [Headers]), +- do_trace("Recvd headers~n--- Headers Begin ---~n~s~n--- Headers End ---~n~n", [Headers]), +- {HttpVsn, StatCode, Headers_1} = parse_headers(Headers), +- do_trace("HttpVsn: ~p StatusCode: ~p Headers_1 -> ~1000.p~n", [HttpVsn, StatCode, Headers_1]), +- LCHeaders = [{to_lower(X), Y} || {X,Y} <- Headers_1], +- ConnClose = to_lower(get_value("connection", LCHeaders, "false")), +- IsClosing = is_connection_closing(HttpVsn, ConnClose), +- case IsClosing of +- true -> ++ {yes, Headers, Data_1} -> ++ do_trace("Recvd Header Data -> ~s~n----~n", [Headers]), ++ do_trace("Recvd headers~n--- Headers Begin ---~n~s~n--- Headers End ---~n~n", [Headers]), ++ {HttpVsn, StatCode, Headers_1, Status_line, Raw_headers} = parse_headers(Headers), ++ do_trace("HttpVsn: ~p StatusCode: ~p Headers_1 -> ~1000.p~n", [HttpVsn, StatCode, Headers_1]), ++ LCHeaders = [{to_lower(X), Y} || {X,Y} <- Headers_1], ++ ConnClose = to_lower(get_value("connection", LCHeaders, "false")), ++ IsClosing = is_connection_closing(HttpVsn, ConnClose), ++ case IsClosing of ++ true -> + shutting_down(State); +- false -> +- ok +- end, +- State_1 = State#state{recvd_headers=Headers_1, status=get_body, +- reply_buffer = <<>>, +- http_status_code=StatCode, is_closing=IsClosing}, +- put(conn_close, ConnClose), +- TransferEncoding = to_lower(get_value("transfer-encoding", LCHeaders, "false")), +- case get_value("content-length", LCHeaders, undefined) of +- _ when Method == head -> +- {_, Reqs_1} = queue:out(Reqs), +- send_async_headers(ReqId, StreamTo, StatCode, Headers_1), +- State_1_1 = do_reply(State_1, From, StreamTo, ReqId, Resp_format, +- {ok, StatCode, Headers_1, []}), +- cancel_timer(State_1_1#state.send_timer, {eat_message, {req_timedout, From}}), +- State_2 = reset_state(State_1_1), +- State_3 = set_cur_request(State_2#state{reqs = Reqs_1}), +- parse_response(Data_1, State_3); +- _ when hd(StatCode) == $1 -> +- %% No message body is expected. Server may send +- %% one or more 1XX responses before a proper +- %% response. +- send_async_headers(ReqId, StreamTo, StatCode, Headers_1), +- do_trace("Recvd a status code of ~p. Ignoring and waiting for a proper response~n", [StatCode]), +- parse_response(Data_1, State_1#state{recvd_headers = [], +- status = get_header}); +- _ when StatCode == "204"; +- StatCode == "304" -> +- %% No message body is expected for these Status Codes. +- %% RFC2616 - Sec 4.4 +- {_, Reqs_1} = queue:out(Reqs), +- send_async_headers(ReqId, StreamTo, StatCode, Headers_1), +- State_1_1 = do_reply(State_1, From, StreamTo, ReqId, Resp_format, +- {ok, StatCode, Headers_1, []}), +- cancel_timer(State_1_1#state.send_timer, {eat_message, {req_timedout, From}}), +- State_2 = reset_state(State_1_1), +- State_3 = set_cur_request(State_2#state{reqs = Reqs_1}), +- parse_response(Data_1, State_3); +- _ when TransferEncoding == "chunked" -> +- do_trace("Chunked encoding detected...~n",[]), +- send_async_headers(ReqId, StreamTo, StatCode, Headers_1), +- case parse_11_response(Data_1, State_1#state{transfer_encoding=chunked, +- chunk_size=chunk_start, +- reply_buffer = <<>>}) of +- {error, Reason} -> +- fail_pipelined_requests(State_1, +- {error, {Reason, +- {stat_code, StatCode}, Headers_1}}), +- {error, Reason}; +- State_2 -> +- State_2 +- end; +- undefined when HttpVsn == "HTTP/1.0"; +- ConnClose == "close" -> +- send_async_headers(ReqId, StreamTo, StatCode, Headers_1), +- State_1#state{reply_buffer = Data_1}; +- undefined -> +- fail_pipelined_requests(State_1, +- {error, {content_length_undefined, +- {stat_code, StatCode}, Headers}}), +- {error, content_length_undefined}; +- V -> +- case catch list_to_integer(V) of +- V_1 when is_integer(V_1), V_1 >= 0 -> +- send_async_headers(ReqId, StreamTo, StatCode, Headers_1), +- do_trace("Recvd Content-Length of ~p~n", [V_1]), +- State_2 = State_1#state{rep_buf_size=0, +- reply_buffer = <<>>, +- content_length=V_1}, +- case parse_11_response(Data_1, State_2) of +- {error, Reason} -> +- fail_pipelined_requests(State_1, +- {error, {Reason, +- {stat_code, StatCode}, Headers_1}}), +- {error, Reason}; +- State_3 -> +- State_3 +- end; +- _ -> +- fail_pipelined_requests(State_1, +- {error, {content_length_undefined, +- {stat_code, StatCode}, Headers}}), +- {error, content_length_undefined} +- end +- end; +- {no, Acc_1} when MaxHeaderSize == infinity -> +- State#state{reply_buffer = Acc_1}; +- {no, Acc_1} when size(Acc_1) < MaxHeaderSize -> +- State#state{reply_buffer = Acc_1}; +- {no, _Acc_1} -> +- fail_pipelined_requests(State, {error, max_headers_size_exceeded}), +- {error, max_headers_size_exceeded} ++ false -> ++ ok ++ end, ++ Give_raw_headers = get_value(give_raw_headers, Options, false), ++ State_1 = case Give_raw_headers of ++ true -> ++ State#state{recvd_headers=Headers_1, status=get_body, ++ reply_buffer = <<>>, ++ status_line = Status_line, ++ raw_headers = Raw_headers, ++ http_status_code=StatCode, is_closing=IsClosing}; ++ false -> ++ State#state{recvd_headers=Headers_1, status=get_body, ++ reply_buffer = <<>>, ++ http_status_code=StatCode, is_closing=IsClosing} ++ end, ++ put(conn_close, ConnClose), ++ TransferEncoding = to_lower(get_value("transfer-encoding", LCHeaders, "false")), ++ case get_value("content-length", LCHeaders, undefined) of ++ _ when Method == connect, ++ hd(StatCode) == $2 -> ++ cancel_timer(State#state.send_timer), ++ {_, Reqs_1} = queue:out(Reqs), ++ upgrade_to_ssl(set_cur_request(State#state{reqs = Reqs_1, ++ recvd_headers = [], ++ status = idle ++ })); ++ _ when Method == connect -> ++ {_, Reqs_1} = queue:out(Reqs), ++ do_error_reply(State#state{reqs = Reqs_1}, ++ {error, proxy_tunnel_failed}), ++ {error, proxy_tunnel_failed}; ++ _ when Method == head -> ++ {_, Reqs_1} = queue:out(Reqs), ++ send_async_headers(ReqId, StreamTo, Give_raw_headers, State_1), ++ State_1_1 = do_reply(State_1, From, StreamTo, ReqId, Resp_format, ++ {ok, StatCode, Headers_1, []}), ++ cancel_timer(State_1_1#state.send_timer, {eat_message, {req_timedout, From}}), ++ State_2 = reset_state(State_1_1), ++ State_3 = set_cur_request(State_2#state{reqs = Reqs_1}), ++ parse_response(Data_1, State_3); ++ _ when hd(StatCode) =:= $1 -> ++ %% No message body is expected. Server may send ++ %% one or more 1XX responses before a proper ++ %% response. ++ send_async_headers(ReqId, StreamTo, Give_raw_headers, State_1), ++ do_trace("Recvd a status code of ~p. Ignoring and waiting for a proper response~n", [StatCode]), ++ parse_response(Data_1, State_1#state{recvd_headers = [], ++ status = get_header}); ++ _ when StatCode =:= "204"; ++ StatCode =:= "304" -> ++ %% No message body is expected for these Status Codes. ++ %% RFC2616 - Sec 4.4 ++ {_, Reqs_1} = queue:out(Reqs), ++ send_async_headers(ReqId, StreamTo, Give_raw_headers, State_1), ++ State_1_1 = do_reply(State_1, From, StreamTo, ReqId, Resp_format, ++ {ok, StatCode, Headers_1, []}), ++ cancel_timer(State_1_1#state.send_timer, {eat_message, {req_timedout, From}}), ++ State_2 = reset_state(State_1_1), ++ State_3 = set_cur_request(State_2#state{reqs = Reqs_1}), ++ parse_response(Data_1, State_3); ++ _ when TransferEncoding =:= "chunked" -> ++ do_trace("Chunked encoding detected...~n",[]), ++ send_async_headers(ReqId, StreamTo, Give_raw_headers, State_1), ++ case parse_11_response(Data_1, State_1#state{transfer_encoding=chunked, ++ chunk_size=chunk_start, ++ reply_buffer = <<>>}) of ++ {error, Reason} -> ++ fail_pipelined_requests(State_1, ++ {error, {Reason, ++ {stat_code, StatCode}, Headers_1}}), ++ {error, Reason}; ++ State_2 -> ++ State_2 ++ end; ++ undefined when HttpVsn =:= "HTTP/1.0"; ++ ConnClose =:= "close" -> ++ send_async_headers(ReqId, StreamTo, Give_raw_headers, State_1), ++ State_1#state{reply_buffer = Data_1}; ++ undefined -> ++ fail_pipelined_requests(State_1, ++ {error, {content_length_undefined, ++ {stat_code, StatCode}, Headers}}), ++ {error, content_length_undefined}; ++ V -> ++ case catch list_to_integer(V) of ++ V_1 when is_integer(V_1), V_1 >= 0 -> ++ send_async_headers(ReqId, StreamTo, Give_raw_headers, State_1), ++ do_trace("Recvd Content-Length of ~p~n", [V_1]), ++ State_2 = State_1#state{rep_buf_size=0, ++ reply_buffer = <<>>, ++ content_length=V_1}, ++ case parse_11_response(Data_1, State_2) of ++ {error, Reason} -> ++ fail_pipelined_requests(State_1, ++ {error, {Reason, ++ {stat_code, StatCode}, Headers_1}}), ++ {error, Reason}; ++ State_3 -> ++ State_3 ++ end; ++ _ -> ++ fail_pipelined_requests(State_1, ++ {error, {content_length_undefined, ++ {stat_code, StatCode}, Headers}}), ++ {error, content_length_undefined} ++ end ++ end; ++ {no, Acc_1} when MaxHeaderSize == infinity -> ++ State#state{reply_buffer = Acc_1}; ++ {no, Acc_1} when size(Acc_1) < MaxHeaderSize -> ++ State#state{reply_buffer = Acc_1}; ++ {no, _Acc_1} -> ++ fail_pipelined_requests(State, {error, max_headers_size_exceeded}), ++ {error, max_headers_size_exceeded} ++ end. ++ ++upgrade_to_ssl(#state{socket = Socket, ++ connect_timeout = Conn_timeout, ++ ssl_options = Ssl_options, ++ tunnel_setup_queue = Q} = State) -> ++ case ssl:connect(Socket, Ssl_options, Conn_timeout) of ++ {ok, Ssl_socket} -> ++ do_trace("Upgraded to SSL socket!!~n", []), ++ State_1 = State#state{socket = Ssl_socket, ++ proxy_tunnel_setup = done}, ++ send_queued_requests(lists:reverse(Q), State_1); ++ Err -> ++ do_trace("Upgrade to SSL socket failed. Reson: ~p~n", [Err]), ++ do_error_reply(State, {error, send_failed}), ++ {error, send_failed} ++ end. ++ ++send_queued_requests([], State) -> ++ do_trace("Sent all queued requests via SSL connection~n", []), ++ State#state{tunnel_setup_queue = done}; ++send_queued_requests([{From, Url, Headers, Method, Body, Options, Timeout} | Q], ++ State) -> ++ case send_req_1(From, Url, Headers, Method, Body, Options, Timeout, State) of ++ {noreply, State_1} -> ++ send_queued_requests(Q, State_1); ++ _ -> ++ do_trace("Error sending queued SSL request: ~n" ++ "URL : ~s~n" ++ "Method : ~p~n" ++ "Headers : ~p~n", [Url, Method, Headers]), ++ do_error_reply(State, {error, send_failed}), ++ {error, send_failed} + end. + + is_connection_closing("HTTP/0.9", _) -> true; +@@ -890,200 +1045,215 @@ is_connection_closing(_, _) -> false. + + %% This clause determines the chunk size when given data from the beginning of the chunk + parse_11_response(DataRecvd, +- #state{transfer_encoding = chunked, +- chunk_size = chunk_start, +- chunk_size_buffer = Chunk_sz_buf +- } = State) -> ++ #state{transfer_encoding = chunked, ++ chunk_size = chunk_start, ++ chunk_size_buffer = Chunk_sz_buf ++ } = State) -> + case scan_crlf(Chunk_sz_buf, DataRecvd) of +- {yes, ChunkHeader, Data_1} -> +- case parse_chunk_header(ChunkHeader) of +- {error, Reason} -> +- {error, Reason}; +- ChunkSize -> +- %% +- %% Do we have to preserve the chunk encoding when +- %% streaming? NO. This should be transparent to the client +- %% process. Chunked encoding was only introduced to make +- %% it efficient for the server. +- %% +- RemLen = size(Data_1), +- do_trace("Determined chunk size: ~p. Already recvd: ~p~n", [ChunkSize, RemLen]), +- parse_11_response(Data_1, State#state{chunk_size_buffer = <<>>, +- deleted_crlf = true, +- recvd_chunk_size = 0, +- chunk_size = ChunkSize}) +- end; +- {no, Data_1} -> +- State#state{chunk_size_buffer = Data_1} ++ {yes, ChunkHeader, Data_1} -> ++ ChunkSize = parse_chunk_header(ChunkHeader), ++ %% ++ %% Do we have to preserve the chunk encoding when ++ %% streaming? NO. This should be transparent to the client ++ %% process. Chunked encoding was only introduced to make ++ %% it efficient for the server. ++ %% ++ RemLen = size(Data_1), ++ do_trace("Determined chunk size: ~p. Already recvd: ~p~n", ++ [ChunkSize, RemLen]), ++ parse_11_response(Data_1, State#state{chunk_size_buffer = <<>>, ++ deleted_crlf = true, ++ recvd_chunk_size = 0, ++ chunk_size = ChunkSize}); ++ {no, Data_1} -> ++ State#state{chunk_size_buffer = Data_1} + end; + + %% This clause is to remove the CRLF between two chunks + %% + parse_11_response(DataRecvd, +- #state{transfer_encoding = chunked, +- chunk_size = tbd, +- chunk_size_buffer = Buf}=State) -> ++ #state{transfer_encoding = chunked, ++ chunk_size = tbd, ++ chunk_size_buffer = Buf}=State) -> + case scan_crlf(Buf, DataRecvd) of +- {yes, _, NextChunk} -> +- State_1 = State#state{chunk_size = chunk_start, +- chunk_size_buffer = <<>>, +- deleted_crlf = true}, +- parse_11_response(NextChunk, State_1); +- {no, Data_1} -> +- State#state{chunk_size_buffer = Data_1} ++ {yes, _, NextChunk} -> ++ State_1 = State#state{chunk_size = chunk_start, ++ chunk_size_buffer = <<>>, ++ deleted_crlf = true}, ++ parse_11_response(NextChunk, State_1); ++ {no, Data_1} -> ++ State#state{chunk_size_buffer = Data_1} + end; + + %% This clause deals with the end of a chunked transfer. ibrowse does + %% not support Trailers in the Chunked Transfer encoding. Any trailer + %% received is silently discarded. + parse_11_response(DataRecvd, +- #state{transfer_encoding = chunked, chunk_size = 0, +- cur_req = CurReq, +- deleted_crlf = DelCrlf, +- chunk_size_buffer = Trailer, reqs = Reqs}=State) -> ++ #state{transfer_encoding = chunked, chunk_size = 0, ++ cur_req = CurReq, ++ deleted_crlf = DelCrlf, ++ chunk_size_buffer = Trailer, reqs = Reqs}=State) -> + do_trace("Detected end of chunked transfer...~n", []), + DataRecvd_1 = case DelCrlf of +- false -> +- DataRecvd; +- true -> +- <<$\r, $\n, DataRecvd/binary>> ++ false -> ++ DataRecvd; ++ true -> ++ <<$\r, $\n, DataRecvd/binary>> + end, + case scan_header(Trailer, DataRecvd_1) of +- {yes, _TEHeaders, Rem} -> +- {_, Reqs_1} = queue:out(Reqs), +- State_1 = handle_response(CurReq, State#state{reqs = Reqs_1}), +- parse_response(Rem, reset_state(State_1)); +- {no, Rem} -> +- State#state{chunk_size_buffer = Rem, deleted_crlf = false} ++ {yes, _TEHeaders, Rem} -> ++ {_, Reqs_1} = queue:out(Reqs), ++ State_1 = handle_response(CurReq, State#state{reqs = Reqs_1}), ++ parse_response(Rem, reset_state(State_1)); ++ {no, Rem} -> ++ State#state{chunk_size_buffer = Rem, deleted_crlf = false} + end; + + %% This clause extracts a chunk, given the size. + parse_11_response(DataRecvd, +- #state{transfer_encoding = chunked, +- chunk_size = CSz, +- recvd_chunk_size = Recvd_csz, +- rep_buf_size = RepBufSz} = State) -> ++ #state{transfer_encoding = chunked, ++ chunk_size = CSz, ++ recvd_chunk_size = Recvd_csz, ++ rep_buf_size = RepBufSz} = State) -> + NeedBytes = CSz - Recvd_csz, + DataLen = size(DataRecvd), + do_trace("Recvd more data: size: ~p. NeedBytes: ~p~n", [DataLen, NeedBytes]), + case DataLen >= NeedBytes of +- true -> +- {RemChunk, RemData} = split_binary(DataRecvd, NeedBytes), +- do_trace("Recvd another chunk...~n", []), +- do_trace("RemData -> ~p~n", [RemData]), +- case accumulate_response(RemChunk, State) of +- {error, Reason} -> +- do_trace("Error accumulating response --> ~p~n", [Reason]), +- {error, Reason}; +- #state{} = State_1 -> +- State_2 = State_1#state{chunk_size=tbd}, +- parse_11_response(RemData, State_2) +- end; +- false -> +- accumulate_response(DataRecvd, +- State#state{rep_buf_size = RepBufSz + DataLen, +- recvd_chunk_size = Recvd_csz + DataLen}) ++ true -> ++ {RemChunk, RemData} = split_binary(DataRecvd, NeedBytes), ++ do_trace("Recvd another chunk...~n", []), ++ do_trace("RemData -> ~p~n", [RemData]), ++ case accumulate_response(RemChunk, State) of ++ {error, Reason} -> ++ do_trace("Error accumulating response --> ~p~n", [Reason]), ++ {error, Reason}; ++ #state{} = State_1 -> ++ State_2 = State_1#state{chunk_size=tbd}, ++ parse_11_response(RemData, State_2) ++ end; ++ false -> ++ accumulate_response(DataRecvd, ++ State#state{rep_buf_size = RepBufSz + DataLen, ++ recvd_chunk_size = Recvd_csz + DataLen}) + end; + + %% This clause to extract the body when Content-Length is specified + parse_11_response(DataRecvd, +- #state{content_length=CL, rep_buf_size=RepBufSz, +- reqs=Reqs}=State) -> ++ #state{content_length=CL, rep_buf_size=RepBufSz, ++ reqs=Reqs}=State) -> + NeedBytes = CL - RepBufSz, + DataLen = size(DataRecvd), + case DataLen >= NeedBytes of +- true -> +- {RemBody, Rem} = split_binary(DataRecvd, NeedBytes), +- {_, Reqs_1} = queue:out(Reqs), +- State_1 = accumulate_response(RemBody, State), +- State_2 = handle_response(State_1#state.cur_req, State_1#state{reqs=Reqs_1}), +- State_3 = reset_state(State_2), +- parse_response(Rem, State_3); +- false -> +- accumulate_response(DataRecvd, State#state{rep_buf_size = (RepBufSz+DataLen)}) ++ true -> ++ {RemBody, Rem} = split_binary(DataRecvd, NeedBytes), ++ {_, Reqs_1} = queue:out(Reqs), ++ State_1 = accumulate_response(RemBody, State), ++ State_2 = handle_response(State_1#state.cur_req, State_1#state{reqs=Reqs_1}), ++ State_3 = reset_state(State_2), ++ parse_response(Rem, State_3); ++ false -> ++ accumulate_response(DataRecvd, State#state{rep_buf_size = (RepBufSz+DataLen)}) + end. + + handle_response(#request{from=From, stream_to=StreamTo, req_id=ReqId, +- response_format = Resp_format, +- save_response_to_file = SaveResponseToFile, +- tmp_file_name = TmpFilename, +- tmp_file_fd = Fd +- }, +- #state{http_status_code = SCode, +- send_timer = ReqTimer, +- reply_buffer = RepBuf, +- recvd_headers = RespHeaders}=State) when SaveResponseToFile /= false -> ++ response_format = Resp_format, ++ save_response_to_file = SaveResponseToFile, ++ tmp_file_name = TmpFilename, ++ tmp_file_fd = Fd, ++ options = Options ++ }, ++ #state{http_status_code = SCode, ++ status_line = Status_line, ++ raw_headers = Raw_headers, ++ send_timer = ReqTimer, ++ reply_buffer = RepBuf, ++ recvd_headers = RespHeaders}=State) when SaveResponseToFile /= false -> + Body = RepBuf, + State_1 = set_cur_request(State), + file:close(Fd), + ResponseBody = case TmpFilename of +- undefined -> +- Body; +- _ -> +- {file, TmpFilename} +- end, +- State_2 = do_reply(State_1, From, StreamTo, ReqId, Resp_format, +- {ok, SCode, RespHeaders, ResponseBody}), ++ undefined -> ++ Body; ++ _ -> ++ {file, TmpFilename} ++ end, ++ Reply = case get_value(give_raw_headers, Options, false) of ++ true -> ++ {ok, Status_line, Raw_headers, ResponseBody}; ++ false -> ++ {ok, SCode, RespHeaders, ResponseBody} ++ end, ++ State_2 = do_reply(State_1, From, StreamTo, ReqId, Resp_format, Reply), + cancel_timer(ReqTimer, {eat_message, {req_timedout, From}}), + State_2; + handle_response(#request{from=From, stream_to=StreamTo, req_id=ReqId, +- response_format = Resp_format}, +- #state{http_status_code=SCode, recvd_headers=RespHeaders, +- reply_buffer = RepBuf, +- send_timer=ReqTimer}=State) -> ++ response_format = Resp_format, ++ options = Options}, ++ #state{http_status_code = SCode, ++ status_line = Status_line, ++ raw_headers = Raw_headers, ++ recvd_headers = RespHeaders, ++ reply_buffer = RepBuf, ++ send_timer = ReqTimer} = State) -> + Body = RepBuf, + %% State_1 = set_cur_request(State), ++ Reply = case get_value(give_raw_headers, Options, false) of ++ true -> ++ {ok, Status_line, Raw_headers, Body}; ++ false -> ++ {ok, SCode, RespHeaders, Body} ++ end, + State_1 = case get(conn_close) of +- "close" -> +- do_reply(State, From, StreamTo, ReqId, Resp_format, +- {ok, SCode, RespHeaders, Body}), +- exit(normal); +- _ -> +- State_1_1 = do_reply(State, From, StreamTo, ReqId, Resp_format, +- {ok, SCode, RespHeaders, Body}), +- cancel_timer(ReqTimer, {eat_message, {req_timedout, From}}), +- State_1_1 ++ "close" -> ++ do_reply(State, From, StreamTo, ReqId, Resp_format, Reply), ++ exit(normal); ++ _ -> ++ State_1_1 = do_reply(State, From, StreamTo, ReqId, Resp_format, Reply), ++ cancel_timer(ReqTimer, {eat_message, {req_timedout, From}}), ++ State_1_1 + end, + set_cur_request(State_1). + + reset_state(State) -> + State#state{status = get_header, +- rep_buf_size = 0, +- streamed_size = 0, +- content_length = undefined, +- reply_buffer = <<>>, +- chunk_size_buffer = <<>>, +- recvd_headers = [], +- deleted_crlf = false, +- http_status_code = undefined, +- chunk_size = undefined, +- transfer_encoding = undefined}. ++ rep_buf_size = 0, ++ streamed_size = 0, ++ content_length = undefined, ++ reply_buffer = <<>>, ++ chunk_size_buffer = <<>>, ++ recvd_headers = [], ++ status_line = undefined, ++ raw_headers = undefined, ++ deleted_crlf = false, ++ http_status_code = undefined, ++ chunk_size = undefined, ++ transfer_encoding = undefined}. + + set_cur_request(#state{reqs = Reqs} = State) -> + case queue:to_list(Reqs) of +- [] -> +- State#state{cur_req = undefined}; +- [NextReq | _] -> +- State#state{cur_req = NextReq} ++ [] -> ++ State#state{cur_req = undefined}; ++ [NextReq | _] -> ++ State#state{cur_req = NextReq} + end. + + parse_headers(Headers) -> + case scan_crlf(Headers) of +- {yes, StatusLine, T} -> +- parse_headers(StatusLine, T); +- {no, StatusLine} -> +- parse_headers(StatusLine, <<>>) ++ {yes, StatusLine, T} -> ++ parse_headers(StatusLine, T); ++ {no, StatusLine} -> ++ parse_headers(StatusLine, <<>>) + end. + + parse_headers(StatusLine, Headers) -> + Headers_1 = parse_headers_1(Headers), + case parse_status_line(StatusLine) of +- {ok, HttpVsn, StatCode, _Msg} -> +- put(http_prot_vsn, HttpVsn), +- {HttpVsn, StatCode, Headers_1}; +- _ -> %% A HTTP 0.9 response? +- put(http_prot_vsn, "HTTP/0.9"), +- {"HTTP/0.9", undefined, Headers} ++ {ok, HttpVsn, StatCode, _Msg} -> ++ put(http_prot_vsn, HttpVsn), ++ {HttpVsn, StatCode, Headers_1, StatusLine, Headers}; ++ _ -> %% A HTTP 0.9 response? ++ put(http_prot_vsn, "HTTP/0.9"), ++ {"HTTP/0.9", undefined, Headers, StatusLine, Headers} + end. + + % From RFC 2616 +@@ -1094,22 +1264,22 @@ parse_headers(StatusLine, Headers) -> + % SP. A recipient MAY replace any linear white space with a single + % SP before interpreting the field value or forwarding the message + % downstream. +- parse_headers_1(B) when is_binary(B) -> +- parse_headers_1(binary_to_list(B)); +- parse_headers_1(String) -> +- parse_headers_1(String, [], []). ++parse_headers_1(B) when is_binary(B) -> ++ parse_headers_1(binary_to_list(B)); ++parse_headers_1(String) -> ++ parse_headers_1(String, [], []). + +-parse_headers_1([$\n, H |T], [$\r | L], Acc) when H == 32; +- H == $\t -> ++parse_headers_1([$\n, H |T], [$\r | L], Acc) when H =:= 32; ++ H =:= $\t -> + parse_headers_1(lists:dropwhile(fun(X) -> +- is_whitespace(X) +- end, T), [32 | L], Acc); ++ is_whitespace(X) ++ end, T), [32 | L], Acc); + parse_headers_1([$\n|T], [$\r | L], Acc) -> + case parse_header(lists:reverse(L)) of +- invalid -> +- parse_headers_1(T, [], Acc); +- NewHeader -> +- parse_headers_1(T, [], [NewHeader | Acc]) ++ invalid -> ++ parse_headers_1(T, [], Acc); ++ NewHeader -> ++ parse_headers_1(T, [], [NewHeader | Acc]) + end; + parse_headers_1([H|T], L, Acc) -> + parse_headers_1(T, [H|L], Acc); +@@ -1117,11 +1287,11 @@ parse_headers_1([], [], Acc) -> + lists:reverse(Acc); + parse_headers_1([], L, Acc) -> + Acc_1 = case parse_header(lists:reverse(L)) of +- invalid -> +- Acc; +- NewHeader -> +- [NewHeader | Acc] +- end, ++ invalid -> ++ Acc; ++ NewHeader -> ++ [NewHeader | Acc] ++ end, + lists:reverse(Acc_1). + + parse_status_line(Line) when is_binary(Line) -> +@@ -1139,10 +1309,9 @@ parse_status_line([H | T], get_status_code, ProtVsn, StatCode) -> + parse_status_line([], _, _, _) -> + http_09. + +-parse_header(B) when is_binary(B) -> +- parse_header(binary_to_list(B)); + parse_header(L) -> + parse_header(L, []). ++ + parse_header([$: | V], Acc) -> + {lists:reverse(Acc), string:strip(V)}; + parse_header([H | T], Acc) -> +@@ -1152,11 +1321,11 @@ parse_header([], _) -> + + scan_header(Bin) -> + case get_crlf_crlf_pos(Bin, 0) of +- {yes, Pos} -> +- {Headers, <<_:4/binary, Body/binary>>} = split_binary(Bin, Pos), +- {yes, Headers, Body}; +- no -> +- {no, Bin} ++ {yes, Pos} -> ++ {Headers, <<_:4/binary, Body/binary>>} = split_binary(Bin, Pos), ++ {yes, Headers, Body}; ++ no -> ++ {no, Bin} + end. + + scan_header(Bin1, Bin2) when size(Bin1) < 4 -> +@@ -1168,11 +1337,11 @@ scan_header(Bin1, Bin2) -> + <> = Bin1, + Bin_to_scan = <>, + case get_crlf_crlf_pos(Bin_to_scan, 0) of +- {yes, Pos} -> +- {Headers_suffix, <<_:4/binary, Body/binary>>} = split_binary(Bin_to_scan, Pos), +- {yes, <>, Body}; +- no -> +- {no, <>} ++ {yes, Pos} -> ++ {Headers_suffix, <<_:4/binary, Body/binary>>} = split_binary(Bin_to_scan, Pos), ++ {yes, <>, Body}; ++ no -> ++ {no, <>} + end. + + get_crlf_crlf_pos(<<$\r, $\n, $\r, $\n, _/binary>>, Pos) -> {yes, Pos}; +@@ -1181,11 +1350,11 @@ get_crlf_crlf_pos(<<>>, _) -> no. + + scan_crlf(Bin) -> + case get_crlf_pos(Bin) of +- {yes, Pos} -> +- {Prefix, <<_, _, Suffix/binary>>} = split_binary(Bin, Pos), +- {yes, Prefix, Suffix}; +- no -> +- {no, Bin} ++ {yes, Pos} -> ++ {Prefix, <<_, _, Suffix/binary>>} = split_binary(Bin, Pos), ++ {yes, Prefix, Suffix}; ++ no -> ++ {no, Bin} + end. + + scan_crlf(<<>>, Bin2) -> +@@ -1199,11 +1368,11 @@ scan_crlf_1(Bin1_head_size, Bin1, Bin2) -> + <> = Bin1, + Bin3 = <>, + case get_crlf_pos(Bin3) of +- {yes, Pos} -> +- {Prefix, <<_, _, Suffix/binary>>} = split_binary(Bin3, Pos), +- {yes, list_to_binary([Bin1_head, Prefix]), Suffix}; +- no -> +- {no, list_to_binary([Bin1, Bin2])} ++ {yes, Pos} -> ++ {Prefix, <<_, _, Suffix/binary>>} = split_binary(Bin3, Pos), ++ {yes, list_to_binary([Bin1_head, Prefix]), Suffix}; ++ no -> ++ {no, list_to_binary([Bin1, Bin2])} + end. + + get_crlf_pos(Bin) -> +@@ -1213,13 +1382,6 @@ get_crlf_pos(<<$\r, $\n, _/binary>>, Pos) -> {yes, Pos}; + get_crlf_pos(<<_, Rest/binary>>, Pos) -> get_crlf_pos(Rest, Pos + 1); + get_crlf_pos(<<>>, _) -> no. + +-%% scan_crlf(<<$\n, T/binary>>, [$\r | L]) -> {yes, lists:reverse(L), T}; +-%% scan_crlf(<>, L) -> scan_crlf(T, [H|L]); +-%% scan_crlf(<<>>, L) -> {no, L}; +-%% scan_crlf([$\n|T], [$\r | L]) -> {yes, lists:reverse(L), T}; +-%% scan_crlf([H|T], L) -> scan_crlf(T, [H|L]); +-%% scan_crlf([], L) -> {no, L}. +- + fmt_val(L) when is_list(L) -> L; + fmt_val(I) when is_integer(I) -> integer_to_list(I); + fmt_val(A) when is_atom(A) -> atom_to_list(A); +@@ -1240,7 +1402,8 @@ method(proppatch) -> "PROPPATCH"; + method(lock) -> "LOCK"; + method(unlock) -> "UNLOCK"; + method(move) -> "MOVE"; +-method(copy) -> "COPY". ++method(copy) -> "COPY"; ++method(connect) -> "CONNECT". + + %% From RFC 2616 + %% +@@ -1250,19 +1413,19 @@ method(copy) -> "COPY". + % fields. This allows dynamically produced content to be transferred + % along with the information necessary for the recipient to verify + % that it has received the full message. +-% Chunked-Body = *chunk +-% last-chunk +-% trailer +-% CRLF +-% chunk = chunk-size [ chunk-extension ] CRLF +-% chunk-data CRLF +-% chunk-size = 1*HEX +-% last-chunk = 1*("0") [ chunk-extension ] CRLF +-% chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] ) +-% chunk-ext-name = token +-% chunk-ext-val = token | quoted-string +-% chunk-data = chunk-size(OCTET) +-% trailer = *(entity-header CRLF) ++% Chunked-Body = *chunk ++% last-chunk ++% trailer ++% CRLF ++% chunk = chunk-size [ chunk-extension ] CRLF ++% chunk-data CRLF ++% chunk-size = 1*HEX ++% last-chunk = 1*("0") [ chunk-extension ] CRLF ++% chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] ) ++% chunk-ext-name = token ++% chunk-ext-val = token | quoted-string ++% chunk-data = chunk-size(OCTET) ++% trailer = *(entity-header CRLF) + % The chunk-size field is a string of hex digits indicating the size + % of the chunk. The chunked encoding is ended by any chunk whose size + % is zero, followed by the trailer, which is terminated by an empty +@@ -1271,8 +1434,6 @@ method(copy) -> "COPY". + %% The parsing implemented here discards all chunk extensions. It also + %% strips trailing spaces from the chunk size fields as Apache 1.3.27 was + %% sending them. +-parse_chunk_header([]) -> +- throw({error, invalid_chunk_size}); + parse_chunk_header(ChunkHeader) -> + parse_chunk_header(ChunkHeader, []). + +@@ -1280,10 +1441,10 @@ parse_chunk_header(<<$;, _/binary>>, Acc) -> + hexlist_to_integer(lists:reverse(Acc)); + parse_chunk_header(<>, Acc) -> + case is_whitespace(H) of +- true -> +- parse_chunk_header(T, Acc); +- false -> +- parse_chunk_header(T, [H | Acc]) ++ true -> ++ parse_chunk_header(T, Acc); ++ false -> ++ parse_chunk_header(T, [H | Acc]) + end; + parse_chunk_header(<<>>, Acc) -> + hexlist_to_integer(lists:reverse(Acc)). +@@ -1294,24 +1455,31 @@ is_whitespace($\n) -> true; + is_whitespace($\t) -> true; + is_whitespace(_) -> false. + +- +-send_async_headers(_ReqId, undefined, _StatCode, _Headers) -> ++send_async_headers(_ReqId, undefined, _, _State) -> + ok; +-send_async_headers(ReqId, StreamTo, StatCode, Headers) -> +- catch StreamTo ! {ibrowse_async_headers, ReqId, StatCode, Headers}. ++send_async_headers(ReqId, StreamTo, Give_raw_headers, ++ #state{status_line = Status_line, raw_headers = Raw_headers, ++ recvd_headers = Headers, http_status_code = StatCode ++ }) -> ++ case Give_raw_headers of ++ false -> ++ catch StreamTo ! {ibrowse_async_headers, ReqId, StatCode, Headers}; ++ true -> ++ catch StreamTo ! {ibrowse_async_headers, ReqId, Status_line, Raw_headers} ++ end. + + format_response_data(Resp_format, Body) -> + case Resp_format of +- list when is_list(Body) -> +- flatten(Body); +- list when is_binary(Body) -> +- binary_to_list(Body); +- binary when is_list(Body) -> +- list_to_binary(Body); +- _ -> +- %% This is to cater for sending messages such as +- %% {chunk_start, _}, chunk_end etc +- Body ++ list when is_list(Body) -> ++ flatten(Body); ++ list when is_binary(Body) -> ++ binary_to_list(Body); ++ binary when is_list(Body) -> ++ list_to_binary(Body); ++ _ -> ++ %% This is to cater for sending messages such as ++ %% {chunk_start, _}, chunk_end etc ++ Body + end. + + do_reply(State, From, undefined, _, Resp_format, {ok, St_code, Headers, Body}) -> +@@ -1322,14 +1490,14 @@ do_reply(State, From, undefined, _, _, Msg) -> + gen_server:reply(From, Msg), + dec_pipeline_counter(State); + do_reply(#state{prev_req_id = Prev_req_id} = State, +- _From, StreamTo, ReqId, Resp_format, {ok, _, _, Body}) -> ++ _From, StreamTo, ReqId, Resp_format, {ok, _, _, Body}) -> + State_1 = dec_pipeline_counter(State), + case Body of +- [] -> +- ok; +- _ -> +- Body_1 = format_response_data(Resp_format, Body), +- catch StreamTo ! {ibrowse_async_response, ReqId, Body_1} ++ [] -> ++ ok; ++ _ -> ++ Body_1 = format_response_data(Resp_format, Body), ++ catch StreamTo ! {ibrowse_async_response, ReqId, Body_1} + end, + catch StreamTo ! {ibrowse_async_response_end, ReqId}, + %% We don't want to delete the Req-id to Pid mapping straightaway +@@ -1356,23 +1524,28 @@ do_interim_reply(StreamTo, Response_format, ReqId, Msg) -> + Msg_1 = format_response_data(Response_format, Msg), + catch StreamTo ! {ibrowse_async_response, ReqId, Msg_1}. + +-do_error_reply(#state{reqs = Reqs} = State, Err) -> ++do_error_reply(#state{reqs = Reqs, tunnel_setup_queue = Tun_q} = State, Err) -> + ReqList = queue:to_list(Reqs), + lists:foreach(fun(#request{from=From, stream_to=StreamTo, req_id=ReqId, +- response_format = Resp_format}) -> +- ets:delete(ibrowse_stream, {req_id_pid, ReqId}), ++ response_format = Resp_format}) -> ++ ets:delete(ibrowse_stream, {req_id_pid, ReqId}), + do_reply(State, From, StreamTo, ReqId, Resp_format, {error, Err}) +- end, ReqList). ++ end, ReqList), ++ lists:foreach( ++ fun({From, _Url, _Headers, _Method, _Body, _Options, _Timeout}) -> ++ do_reply(State, From, undefined, undefined, undefined, Err) ++ end, Tun_q). + + fail_pipelined_requests(#state{reqs = Reqs, cur_req = CurReq} = State, Reply) -> + {_, Reqs_1} = queue:out(Reqs), + #request{from=From, stream_to=StreamTo, req_id=ReqId, +- response_format = Resp_format} = CurReq, ++ response_format = Resp_format} = CurReq, + do_reply(State, From, StreamTo, ReqId, Resp_format, Reply), + do_error_reply(State#state{reqs = Reqs_1}, previous_request_failed). + + split_list_at(List, N) -> + split_list_at(List, N, []). ++ + split_list_at([], _, Acc) -> + {lists:reverse(Acc), []}; + split_list_at(List2, 0, List1) -> +@@ -1382,6 +1555,7 @@ split_list_at([H | List2], N, List1) -> + + hexlist_to_integer(List) -> + hexlist_to_integer(lists:reverse(List), 1, 0). ++ + hexlist_to_integer([H | T], Multiplier, Acc) -> + hexlist_to_integer(T, Multiplier*16, Multiplier*to_ascii(H) + Acc); + hexlist_to_integer([], _, Acc) -> +@@ -1416,10 +1590,10 @@ cancel_timer(Ref) -> erlang:cancel_timer(Ref). + cancel_timer(Ref, {eat_message, Msg}) -> + cancel_timer(Ref), + receive +- Msg -> +- ok ++ Msg -> ++ ok + after 0 -> +- ok ++ ok + end. + + make_req_id() -> +@@ -1437,7 +1611,7 @@ to_lower([], Acc) -> + shutting_down(#state{lb_ets_tid = undefined}) -> + ok; + shutting_down(#state{lb_ets_tid = Tid, +- cur_pipeline_size = Sz}) -> ++ cur_pipeline_size = Sz}) -> + catch ets:delete(Tid, {Sz, self()}). + + inc_pipeline_counter(#state{is_closing = true} = State) -> +@@ -1450,7 +1624,7 @@ dec_pipeline_counter(#state{is_closing = true} = State) -> + dec_pipeline_counter(#state{lb_ets_tid = undefined} = State) -> + State; + dec_pipeline_counter(#state{cur_pipeline_size = Pipe_sz, +- lb_ets_tid = Tid} = State) -> ++ lb_ets_tid = Tid} = State) -> + ets:delete(Tid, {Pipe_sz, self()}), + ets:insert(Tid, {{Pipe_sz - 1, self()}, []}), + State#state{cur_pipeline_size = Pipe_sz - 1}. +@@ -1464,13 +1638,35 @@ flatten([]) -> + + get_stream_chunk_size(Options) -> + case lists:keysearch(stream_chunk_size, 1, Options) of +- {value, {_, V}} when V > 0 -> +- V; +- _ -> +- ?DEFAULT_STREAM_CHUNK_SIZE ++ {value, {_, V}} when V > 0 -> ++ V; ++ _ -> ++ ?DEFAULT_STREAM_CHUNK_SIZE + end. + +-get_inac_timeout(#state{cur_req = #request{options = Opts}}) -> ++set_inac_timer(State) -> ++ set_inac_timer(State, get_inac_timeout(State)). ++ ++set_inac_timer(_State, Timeout) when is_integer(Timeout) -> ++ erlang:send_after(Timeout, self(), timeout); ++set_inac_timer(_, _) -> ++ undefined. ++ ++get_inac_timeout(#state{cur_req = #request{options = Opts}}) -> + get_value(inactivity_timeout, Opts, infinity); + get_inac_timeout(#state{cur_req = undefined}) -> + infinity. ++ ++trace_request(Req) -> ++ case get(my_trace_flag) of ++ true -> ++ %%Avoid the binary operations if trace is not on... ++ NReq = binary_to_list(list_to_binary(Req)), ++ do_trace("Sending request: ~n" ++ "--- Request Begin ---~n~s~n" ++ "--- Request End ---~n", [NReq]); ++ _ -> ok ++ end. ++ ++to_integer(X) when is_list(X) -> list_to_integer(X); ++to_integer(X) when is_integer(X) -> X. +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse_lb.erl b/couchdb-1.0.1/src/ibrowse/ibrowse_lb.erl +index 834054a..6bc600b 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse_lb.erl ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse_lb.erl +@@ -1,13 +1,11 @@ + %%%------------------------------------------------------------------- + %%% File : ibrowse_lb.erl + %%% Author : chandru +-%%% Description : ++%%% Description : + %%% + %%% Created : 6 Mar 2008 by chandru + %%%------------------------------------------------------------------- + -module(ibrowse_lb). +- +--vsn('$Id: ibrowse_lb.erl,v 1.2 2009/07/01 22:43:19 chandrusf Exp $ '). + -author(chandru). + -behaviour(gen_server). + %%-------------------------------------------------------------------- +@@ -101,14 +99,14 @@ spawn_connection(Lb_pid, Url, + % #state{max_sessions = Max_sess, + % ets_tid = Tid, + % max_pipeline_size = Max_pipe_sz, +-% num_cur_sessions = Num} = State) ++% num_cur_sessions = Num} = State) + % when Num >= Max -> + % Reply = find_best_connection(Tid), + % {reply, sorry_dude_reuse, State}; + + %% Update max_sessions in #state with supplied value + handle_call({spawn_connection, _Url, Max_sess, Max_pipe, _}, _From, +- #state{num_cur_sessions = Num} = State) ++ #state{num_cur_sessions = Num} = State) + when Num >= Max_sess -> + State_1 = maybe_create_ets(State), + Reply = find_best_connection(State_1#state.ets_tid, Max_pipe), +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse_lib.erl b/couchdb-1.0.1/src/ibrowse/ibrowse_lib.erl +index 6c7b154..fbb9c34 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse_lib.erl ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse_lib.erl +@@ -1,11 +1,10 @@ + %%% File : ibrowse_lib.erl + %%% Author : Chandrashekhar Mullaparthi +-%%% Description : ++%%% Description : + %%% Created : 27 Feb 2004 by Chandrashekhar Mullaparthi + %% @doc Module with a few useful functions + + -module(ibrowse_lib). +--vsn('$Id: ibrowse_lib.erl,v 1.6 2008/03/27 01:35:50 chandrusf Exp $ '). + -author('chandru'). + -ifdef(debug). + -compile(export_all). +@@ -14,22 +13,22 @@ + -include("ibrowse.hrl"). + + -export([ +- get_trace_status/2, +- do_trace/2, +- do_trace/3, +- url_encode/1, +- decode_rfc822_date/1, +- status_code/1, +- dec2hex/2, +- drv_ue/1, +- drv_ue/2, +- encode_base64/1, +- decode_base64/1, +- get_value/2, +- get_value/3, +- parse_url/1, +- printable_date/0 +- ]). ++ get_trace_status/2, ++ do_trace/2, ++ do_trace/3, ++ url_encode/1, ++ decode_rfc822_date/1, ++ status_code/1, ++ dec2hex/2, ++ drv_ue/1, ++ drv_ue/2, ++ encode_base64/1, ++ decode_base64/1, ++ get_value/2, ++ get_value/3, ++ parse_url/1, ++ printable_date/0 ++ ]). + + get_trace_status(Host, Port) -> + ibrowse:get_config_value({trace, Host, Port}, false). +@@ -39,10 +38,10 @@ drv_ue(Str) -> + drv_ue(Str, Port). + drv_ue(Str, Port) -> + case erlang:port_control(Port, 1, Str) of +- [] -> +- Str; +- Res -> +- Res ++ [] -> ++ Str; ++ Res -> ++ Res + end. + + %% @doc URL-encodes a string based on RFC 1738. Returns a flat list. +@@ -72,10 +71,10 @@ d2h(N) -> N+$a-10. + + decode_rfc822_date(String) when is_list(String) -> + case catch decode_rfc822_date_1(string:tokens(String, ", \t\r\n")) of +- {'EXIT', _} -> +- {error, invalid_date}; +- Res -> +- Res ++ {'EXIT', _} -> ++ {error, invalid_date}; ++ Res -> ++ Res + end. + + % TODO: Have to handle the Zone +@@ -86,15 +85,15 @@ decode_rfc822_date_1([Day,Month,Year, Time,_Zone]) -> + MonthI = month_int(Month), + YearI = list_to_integer(Year), + TimeTup = case string:tokens(Time, ":") of +- [H,M] -> +- {list_to_integer(H), +- list_to_integer(M), +- 0}; +- [H,M,S] -> +- {list_to_integer(H), +- list_to_integer(M), +- list_to_integer(S)} +- end, ++ [H,M] -> ++ {list_to_integer(H), ++ list_to_integer(M), ++ 0}; ++ [H,M,S] -> ++ {list_to_integer(H), ++ list_to_integer(M), ++ list_to_integer(S)} ++ end, + {{YearI,MonthI,DayI}, TimeTup}. + + month_int("Jan") -> 1; +@@ -110,7 +109,7 @@ month_int("Oct") -> 10; + month_int("Nov") -> 11; + month_int("Dec") -> 12. + +-%% @doc Given a status code, returns an atom describing the status code. ++%% @doc Given a status code, returns an atom describing the status code. + %% @spec status_code(StatusCode::status_code()) -> StatusDescription + %% status_code() = string() | integer() + %% StatusDescription = atom() +@@ -178,86 +177,25 @@ dec2hex(M,N,Ack) -> dec2hex(M-1,N bsr 4,[d2h(N band 15)|Ack]). + %% In = string() | binary() + %% Out = string() | binary() + encode_base64(List) when is_list(List) -> +- encode_base64_1(list_to_binary(List)); ++ binary_to_list(base64:encode(List)); + encode_base64(Bin) when is_binary(Bin) -> +- List = encode_base64_1(Bin), +- list_to_binary(List). +- +-encode_base64_1(<>) -> +- [int_to_b64(A), int_to_b64(B), +- int_to_b64(C), int_to_b64(D) | encode_base64_1(Rest)]; +-encode_base64_1(<>) -> +- [int_to_b64(A), int_to_b64(B), int_to_b64(C bsl 2), $=]; +-encode_base64_1(<>) -> +- [int_to_b64(A), int_to_b64(B bsl 4), $=, $=]; +-encode_base64_1(<<>>) -> +- []. ++ base64:encode(Bin). + + %% @doc Implements the base64 decoding algorithm. The output data type matches in the input data type. + %% @spec decode_base64(In) -> Out | exit({error, invalid_input}) + %% In = string() | binary() + %% Out = string() | binary() + decode_base64(List) when is_list(List) -> +- decode_base64_1(List, []); ++ binary_to_list(base64:decode(List)); + decode_base64(Bin) when is_binary(Bin) -> +- List = decode_base64_1(binary_to_list(Bin), []), +- list_to_binary(List). +- +-decode_base64_1([H | T], Acc) when ((H == $\t) or +- (H == 32) or +- (H == $\r) or +- (H == $\n)) -> +- decode_base64_1(T, Acc); +- +-decode_base64_1([$=, $=], Acc) -> +- lists:reverse(Acc); +-decode_base64_1([$=, _ | _], _Acc) -> +- exit({error, invalid_input}); +- +-decode_base64_1([A1, B1, $=, $=], Acc) -> +- A = b64_to_int(A1), +- B = b64_to_int(B1), +- Oct1 = (A bsl 2) bor (B bsr 4), +- decode_base64_1([], [Oct1 | Acc]); +-decode_base64_1([A1, B1, C1, $=], Acc) -> +- A = b64_to_int(A1), +- B = b64_to_int(B1), +- C = b64_to_int(C1), +- Oct1 = (A bsl 2) bor (B bsr 4), +- Oct2 = ((B band 16#f) bsl 6) bor (C bsr 2), +- decode_base64_1([], [Oct2, Oct1 | Acc]); +-decode_base64_1([A1, B1, C1, D1 | T], Acc) -> +- A = b64_to_int(A1), +- B = b64_to_int(B1), +- C = b64_to_int(C1), +- D = b64_to_int(D1), +- Oct1 = (A bsl 2) bor (B bsr 4), +- Oct2 = ((B band 16#f) bsl 4) bor (C bsr 2), +- Oct3 = ((C band 2#11) bsl 6) bor D, +- decode_base64_1(T, [Oct3, Oct2, Oct1 | Acc]); +-decode_base64_1([], Acc) -> +- lists:reverse(Acc). +- +-%% Taken from httpd_util.erl +-int_to_b64(X) when X >= 0, X =< 25 -> X + $A; +-int_to_b64(X) when X >= 26, X =< 51 -> X - 26 + $a; +-int_to_b64(X) when X >= 52, X =< 61 -> X - 52 + $0; +-int_to_b64(62) -> $+; +-int_to_b64(63) -> $/. +- +-%% Taken from httpd_util.erl +-b64_to_int(X) when X >= $A, X =< $Z -> X - $A; +-b64_to_int(X) when X >= $a, X =< $z -> X - $a + 26; +-b64_to_int(X) when X >= $0, X =< $9 -> X - $0 + 52; +-b64_to_int($+) -> 62; +-b64_to_int($/) -> 63. ++ base64:decode(Bin). + + get_value(Tag, TVL, DefVal) -> + case lists:keysearch(Tag, 1, TVL) of +- false -> +- DefVal; +- {value, {_, Val}} -> +- Val ++ false -> ++ DefVal; ++ {value, {_, Val}} -> ++ Val + end. + + get_value(Tag, TVL) -> +@@ -271,92 +209,120 @@ parse_url([$:, $/, $/ | _], get_protocol, Url, []) -> + {invalid_uri_1, Url}; + parse_url([$:, $/, $/ | T], get_protocol, Url, TmpAcc) -> + Prot = list_to_atom(lists:reverse(TmpAcc)), +- parse_url(T, get_username, +- Url#url{protocol = Prot}, +- []); +-parse_url([$/ | T], get_username, Url, TmpAcc) -> ++ parse_url(T, get_username, ++ Url#url{protocol = Prot}, ++ []); ++parse_url([H | T], get_username, Url, TmpAcc) when H == $/; ++ H == $? -> ++ Path = case H of ++ $/ -> ++ [$/ | T]; ++ $? -> ++ [$/, $? | T] ++ end, + %% No username/password. No port number + Url#url{host = lists:reverse(TmpAcc), +- port = default_port(Url#url.protocol), +- path = [$/ | T]}; ++ port = default_port(Url#url.protocol), ++ path = Path}; + parse_url([$: | T], get_username, Url, TmpAcc) -> + %% It is possible that no username/password has been + %% specified. But we'll continue with the assumption that there is + %% a username/password. If we encounter a '@' later on, there is a + %% username/password indeed. If we encounter a '/', it was + %% actually the hostname +- parse_url(T, get_password, +- Url#url{username = lists:reverse(TmpAcc)}, +- []); ++ parse_url(T, get_password, ++ Url#url{username = lists:reverse(TmpAcc)}, ++ []); + parse_url([$@ | T], get_username, Url, TmpAcc) -> +- parse_url(T, get_host, +- Url#url{username = lists:reverse(TmpAcc), +- password = ""}, +- []); ++ parse_url(T, get_host, ++ Url#url{username = lists:reverse(TmpAcc), ++ password = ""}, ++ []); + parse_url([$@ | T], get_password, Url, TmpAcc) -> +- parse_url(T, get_host, +- Url#url{password = lists:reverse(TmpAcc)}, +- []); +-parse_url([$/ | T], get_password, Url, TmpAcc) -> ++ parse_url(T, get_host, ++ Url#url{password = lists:reverse(TmpAcc)}, ++ []); ++parse_url([H | T], get_password, Url, TmpAcc) when H == $/; ++ H == $? -> + %% Ok, what we thought was the username/password was the hostname + %% and portnumber + #url{username=User} = Url, + Port = list_to_integer(lists:reverse(TmpAcc)), ++ Path = case H of ++ $/ -> ++ [$/ | T]; ++ $? -> ++ [$/, $? | T] ++ end, + Url#url{host = User, +- port = Port, +- username = undefined, +- password = undefined, +- path = [$/ | T]}; ++ port = Port, ++ username = undefined, ++ password = undefined, ++ path = Path}; + parse_url([$: | T], get_host, #url{} = Url, TmpAcc) -> +- parse_url(T, get_port, +- Url#url{host = lists:reverse(TmpAcc)}, +- []); +-parse_url([$/ | T], get_host, #url{protocol=Prot} = Url, TmpAcc) -> ++ parse_url(T, get_port, ++ Url#url{host = lists:reverse(TmpAcc)}, ++ []); ++parse_url([H | T], get_host, #url{protocol=Prot} = Url, TmpAcc) when H == $/; ++ H == $? -> ++ Path = case H of ++ $/ -> ++ [$/ | T]; ++ $? -> ++ [$/, $? | T] ++ end, + Url#url{host = lists:reverse(TmpAcc), +- port = default_port(Prot), +- path = [$/ | T]}; +-parse_url([$/ | T], get_port, #url{protocol=Prot} = Url, TmpAcc) -> ++ port = default_port(Prot), ++ path = Path}; ++parse_url([H | T], get_port, #url{protocol=Prot} = Url, TmpAcc) when H == $/; ++ H == $? -> ++ Path = case H of ++ $/ -> ++ [$/ | T]; ++ $? -> ++ [$/, $? | T] ++ end, + Port = case TmpAcc of +- [] -> +- default_port(Prot); +- _ -> +- list_to_integer(lists:reverse(TmpAcc)) +- end, +- Url#url{port = Port, path = [$/ | T]}; ++ [] -> ++ default_port(Prot); ++ _ -> ++ list_to_integer(lists:reverse(TmpAcc)) ++ end, ++ Url#url{port = Port, path = Path}; + parse_url([H | T], State, Url, TmpAcc) -> + parse_url(T, State, Url, [H | TmpAcc]); + parse_url([], get_host, Url, TmpAcc) when TmpAcc /= [] -> + Url#url{host = lists:reverse(TmpAcc), +- port = default_port(Url#url.protocol), +- path = "/"}; ++ port = default_port(Url#url.protocol), ++ path = "/"}; + parse_url([], get_username, Url, TmpAcc) when TmpAcc /= [] -> + Url#url{host = lists:reverse(TmpAcc), +- port = default_port(Url#url.protocol), +- path = "/"}; ++ port = default_port(Url#url.protocol), ++ path = "/"}; + parse_url([], get_port, #url{protocol=Prot} = Url, TmpAcc) -> + Port = case TmpAcc of +- [] -> +- default_port(Prot); +- _ -> +- list_to_integer(lists:reverse(TmpAcc)) +- end, +- Url#url{port = Port, +- path = "/"}; ++ [] -> ++ default_port(Prot); ++ _ -> ++ list_to_integer(lists:reverse(TmpAcc)) ++ end, ++ Url#url{port = Port, ++ path = "/"}; + parse_url([], get_password, Url, TmpAcc) -> + %% Ok, what we thought was the username/password was the hostname + %% and portnumber + #url{username=User} = Url, + Port = case TmpAcc of +- [] -> +- default_port(Url#url.protocol); +- _ -> +- list_to_integer(lists:reverse(TmpAcc)) +- end, ++ [] -> ++ default_port(Url#url.protocol); ++ _ -> ++ list_to_integer(lists:reverse(TmpAcc)) ++ end, + Url#url{host = User, +- port = Port, +- username = undefined, +- password = undefined, +- path = "/"}; ++ port = Port, ++ username = undefined, ++ password = undefined, ++ path = "/"}; + parse_url([], State, Url, TmpAcc) -> + {invalid_uri_2, State, Url, TmpAcc}. + +@@ -387,13 +353,13 @@ do_trace(Fmt, Args) -> + -ifdef(DEBUG). + do_trace(_, Fmt, Args) -> + io:format("~s -- (~s) - "++Fmt, +- [printable_date(), +- get(ibrowse_trace_token) | Args]). ++ [printable_date(), ++ get(ibrowse_trace_token) | Args]). + -else. + do_trace(true, Fmt, Args) -> + io:format("~s -- (~s) - "++Fmt, +- [printable_date(), +- get(ibrowse_trace_token) | Args]); ++ [printable_date(), ++ get(ibrowse_trace_token) | Args]); + do_trace(_, _, _) -> + ok. + -endif. +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse_sup.erl b/couchdb-1.0.1/src/ibrowse/ibrowse_sup.erl +index 1b9b863..ace33d1 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse_sup.erl ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse_sup.erl +@@ -1,13 +1,11 @@ + %%%------------------------------------------------------------------- + %%% File : ibrowse_sup.erl + %%% Author : Chandrashekhar Mullaparthi +-%%% Description : ++%%% Description : + %%% + %%% Created : 15 Oct 2003 by Chandrashekhar Mullaparthi + %%%------------------------------------------------------------------- + -module(ibrowse_sup). +--vsn('$Id: ibrowse_sup.erl,v 1.1 2005/05/05 22:28:28 chandrusf Exp $ '). +- + -behaviour(supervisor). + %%-------------------------------------------------------------------- + %% Include files +@@ -53,7 +51,7 @@ start_link() -> + %% Func: init/1 + %% Returns: {ok, {SupFlags, [ChildSpec]}} | + %% ignore | +-%% {error, Reason} ++%% {error, Reason} + %%-------------------------------------------------------------------- + init([]) -> + AChild = {ibrowse,{ibrowse,start_link,[]}, +diff --git a/couchdb-1.0.1/src/ibrowse/ibrowse_test.erl b/couchdb-1.0.1/src/ibrowse/ibrowse_test.erl +index 3dc66ec..00b0244 100644 +--- a/couchdb-1.0.1/src/ibrowse/ibrowse_test.erl ++++ b/couchdb-1.0.1/src/ibrowse/ibrowse_test.erl +@@ -4,7 +4,6 @@ + %%% Created : 14 Oct 2003 by Chandrashekhar Mullaparthi + + -module(ibrowse_test). +--vsn('$Id: ibrowse_test.erl,v 1.4 2009/07/01 22:43:19 chandrusf Exp $ '). + -export([ + load_test/3, + send_reqs_1/3, +@@ -193,6 +192,7 @@ dump_errors(Key, Iod) -> + {"http://www.google.co.uk", get}, + {"http://www.google.com", get}, + {"http://www.google.com", options}, ++ {"https://mail.google.com", get}, + {"http://www.sun.com", get}, + {"http://www.oracle.com", get}, + {"http://www.bbc.co.uk", get}, +@@ -223,9 +223,10 @@ unit_tests() -> + unit_tests([]). + + unit_tests(Options) -> ++ application:start(ssl), + Options_1 = Options ++ [{connect_timeout, 5000}], + {Pid, Ref} = erlang:spawn_monitor(?MODULE, unit_tests_1, [self(), Options_1]), +- receive ++ receive + {done, Pid} -> + ok; + {'DOWN', Ref, _, _, Info} -> +@@ -293,7 +294,7 @@ compare_responses(R1, R2, R3) -> + + do_async_req_list(Url, Method, Options) -> + {Pid,_} = erlang:spawn_monitor(?MODULE, i_do_async_req_list, +- [self(), Url, Method, ++ [self(), Url, Method, + Options ++ [{stream_chunk_size, 1000}]]), + io:format("Spawned process ~p~n", [Pid]), + wait_for_resp(Pid).