Correct eol-style property.
authorScott Cantor <cantor.2@osu.edu>
Fri, 30 Oct 2009 16:24:50 +0000 (16:24 +0000)
committerScott Cantor <cantor.2@osu.edu>
Fri, 30 Oct 2009 16:24:50 +0000 (16:24 +0000)
13 files changed:
.cproject
.project
doc/README.txt
libtool.m4
schemas/soap-envelope.xsd
schemas/xenc-schema.xsd
schemas/xmldsig-core-schema.xsd
schemas/xmltooling.xsd
xmltooling/XMLObjectBuilder.h
xmltooling/base.h
xmltooling/exceptions.cpp
xmltooling/impl/MemoryStorageService.cpp
xmltooling/resource.h

index 8e67507..5084bc4 100644 (file)
--- a/.cproject
+++ b/.cproject
@@ -1,6 +1,68 @@
 <?xml version="1.0" encoding="UTF-8"?><?fileVersion 4.0.0?><cproject>\r
 <storageModule moduleId="org.eclipse.cdt.core.settings">\r
-<cconfiguration id="converted.config.943130369">\r
+<cconfiguration id="org.eclipse.linuxtools.cdt.autotools.configuration.build.1769801814">\r
+<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.linuxtools.cdt.autotools.configuration.build.1769801814" moduleId="org.eclipse.cdt.core.settings" name="Build (GNU)">\r
+<externalSettings/>\r
+<extensions>\r
+<extension id="org.eclipse.linuxtools.cdt.autotools.AutotoolsScannerInfoProvider" point="org.eclipse.cdt.core.ScannerInfoProvider"/>\r
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>\r
+<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>\r
+<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+</extensions>\r
+</storageModule>\r
+<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>\r
+<storageModule moduleId="org.eclipse.cdt.core.pathentry">\r
+<pathentry include="C:/log4shib-1.0.2/include" kind="inc" path="" system="true"/>\r
+<pathentry include="C:/xerces-c-3.0.1-x86-windows-vc-9.0/include" kind="inc" path="" system="true"/>\r
+<pathentry include="C:/xml-security-c-1.5.1/include" kind="inc" path="" system="true"/>\r
+<pathentry include="C:/openssl-0.9.8k/inc32" kind="inc" path="" system="true"/>\r
+<pathentry include="C:/curl-7.19.5/include" kind="inc" path="" system="true"/>\r
+<pathentry include="C:/cxxtest" kind="inc" path="" system="true"/>\r
+<pathentry base-path="cpp-xmltooling" include="" kind="inc" path="" system="true"/>\r
+<pathentry base-path="cpp-xmltooling" include="xmltooling" kind="inc" path="" system="true"/>\r
+<pathentry include="C:/Program Files/Microsoft Visual Studio 9.0/VC/include" kind="inc" path="" system="true"/>\r
+<pathentry kind="mac" name="_MSC_VER" path="" value=""/>\r
+<pathentry kind="mac" name="WIN32" path="" value=""/>\r
+<pathentry kind="mac" name="XMLTOOL_API" path="" value=""/>\r
+<pathentry kind="mac" name="XMLTOOL_DLLLOCAL" path="" value=""/>\r
+<pathentry kind="mac" name="XMLTOOLING_LOGCAT" path="" value="&quot;XMLTooling&quot;"/>\r
+<pathentry kind="out" path="xmltooling/Debug"/>\r
+<pathentry kind="out" path="xmltoolingtest/Debug"/>\r
+<pathentry kind="out" path="debug"/>\r
+<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>\r
+<pathentry excluding="util/|io/|impl/|validation/|signature/|signature/impl/|encryption/|encryption/impl/|security/|security/impl/|soap/|soap/impl/" kind="src" path="xmltooling"/>\r
+<pathentry kind="src" path="xmltooling/impl"/>\r
+<pathentry kind="src" path="xmltooling/io"/>\r
+<pathentry excluding="impl/" kind="src" path="xmltooling/encryption"/>\r
+<pathentry kind="src" path="xmltooling/encryption/impl"/>\r
+<pathentry excluding="impl/" kind="src" path="xmltooling/signature"/>\r
+<pathentry kind="src" path="xmltooling/signature/impl"/>\r
+<pathentry excluding="impl/" kind="src" path="xmltooling/security"/>\r
+<pathentry kind="src" path="xmltooling/security/impl"/>\r
+<pathentry excluding="impl/" kind="src" path="xmltooling/soap"/>\r
+<pathentry kind="src" path="xmltooling/soap/impl"/>\r
+<pathentry kind="src" path="xmltooling/util"/>\r
+<pathentry kind="src" path="xmltooling/validation"/>\r
+<pathentry kind="src" path="xmltoolingtest"/>\r
+</storageModule>\r
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+<configuration artifactName="cpp-xmltooling" buildArtefactType="org.eclipse.linuxtools.cdt.autotools.buildArtefactType.autotools" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.linuxtools.cdt.autotools.buildArtefactType.autotools" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.linuxtools.cdt.autotools.configuration.build.1769801814" name="Build (GNU)" parent="org.eclipse.linuxtools.cdt.autotools.configuration.build">\r
+<folderInfo id="org.eclipse.linuxtools.cdt.autotools.configuration.build.1769801814." name="/" resourcePath="">\r
+<toolChain id="org.eclipse.linuxtools.cdt.autotools.toolChain.434260605" name="GNU Autotools Toolchain" superClass="org.eclipse.linuxtools.cdt.autotools.toolChain">\r
+<targetPlatform id="org.eclipse.linuxtools.cdt.autotools.toolchain.targetPlatform.2031187350" isAbstract="false" name="GNU Autotools Target Platform" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.targetPlatform"/>\r
+<builder buildPath="${workspace_loc:/cpp-xmltooling/build}" id="org.eclipse.linuxtools.cdt.autotools.toolchain.builder.929959114" name="Autotools Makefile Generator.Build (GNU)" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.builder"/>\r
+<tool id="org.eclipse.linuxtools.cdt.autotools.gnu.toolchain.tool.configure.837026680" name="configure" superClass="org.eclipse.linuxtools.cdt.autotools.gnu.toolchain.tool.configure">\r
+<inputType id="org.eclipse.linuxtools.cdt.autotools.inputType.configure.387715961" superClass="org.eclipse.linuxtools.cdt.autotools.inputType.configure"/>\r
+<inputType id="org.eclipse.linuxtools.cdt.autotools.inputType.configure1.2086982536" superClass="org.eclipse.linuxtools.cdt.autotools.inputType.configure1"/>\r
+</tool>\r
+<tool id="org.eclipse.linuxtools.cdt.autotools.toolchain.tool.autogen.414704866" name="autogen.sh" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.tool.autogen"/>\r
+</toolChain>\r
+</folderInfo>\r
+</configuration>\r
+</storageModule>\r
 <storageModule moduleId="scannerConfiguration">\r
 <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>\r
 <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
 <parser enabled="false"/>\r
 </scannerInfoProvider>\r
 </profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<scannerConfigBuildInfo instanceId="org.eclipse.linuxtools.cdt.autotools.configuration.build.1769801814;org.eclipse.linuxtools.cdt.autotools.configuration.build.1769801814.">\r
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"/>\r
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="false"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="makefileGenerator">\r
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="false"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="false"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+</scannerConfigBuildInfo>\r
 </storageModule>\r
-\r
-<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="converted.config.943130369" moduleId="org.eclipse.cdt.core.settings" name="convertedConfig">\r
-<externalSettings/>\r
-<extensions>\r
-<extension id="org.eclipse.cdt.core.nullindexer" point="org.eclipse.cdt.core.CIndexer"/>\r
-<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>\r
-<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>\r
-</extensions>\r
-</storageModule>\r
-\r
-<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>\r
 <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
-<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>\r
-\r
-\r
-<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>\r
-\r
-\r
-<storageModule moduleId="org.eclipse.cdt.core.pathentry">\r
-<pathentry include="C:/log4shib-1.0.2/include" kind="inc" path="" system="true"/>\r
-<pathentry include="C:/xerces-c-3.0.1-x86-windows-vc-9.0/include" kind="inc" path="" system="true"/>\r
-<pathentry include="C:/xml-security-c-1.5.1/include" kind="inc" path="" system="true"/>\r
-<pathentry include="C:/openssl-0.9.8k/inc32" kind="inc" path="" system="true"/>\r
-<pathentry include="C:/curl-7.19.5/include" kind="inc" path="" system="true"/>\r
-<pathentry include="C:/cxxtest" kind="inc" path="" system="true"/>\r
-<pathentry base-path="cpp-xmltooling" include="" kind="inc" path="" system="true"/>\r
-<pathentry base-path="cpp-xmltooling" include="xmltooling" kind="inc" path="" system="true"/>\r
-<pathentry include="C:/Program Files/Microsoft Visual Studio 9.0/VC/include" kind="inc" path="" system="true"/>\r
-<pathentry kind="mac" name="_MSC_VER" path="" value=""/>\r
-<pathentry kind="mac" name="WIN32" path="" value=""/>\r
-<pathentry kind="mac" name="XMLTOOL_API" path="" value=""/>\r
-<pathentry kind="mac" name="XMLTOOL_DLLLOCAL" path="" value=""/>\r
-<pathentry kind="mac" name="XMLTOOLING_LOGCAT" path="" value="&quot;XMLTooling&quot;"/>\r
-<pathentry kind="out" path="xmltooling/Debug"/>\r
-<pathentry kind="out" path="xmltoolingtest/Debug"/>\r
-<pathentry kind="out" path="debug"/>\r
-<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>\r
-<pathentry excluding="util/|io/|impl/|validation/|signature/|signature/impl/|encryption/|encryption/impl/|security/|security/impl/|soap/|soap/impl/" kind="src" path="xmltooling"/>\r
-<pathentry kind="src" path="xmltooling/impl"/>\r
-<pathentry kind="src" path="xmltooling/io"/>\r
-<pathentry excluding="impl/" kind="src" path="xmltooling/encryption"/>\r
-<pathentry kind="src" path="xmltooling/encryption/impl"/>\r
-<pathentry excluding="impl/" kind="src" path="xmltooling/signature"/>\r
-<pathentry kind="src" path="xmltooling/signature/impl"/>\r
-<pathentry excluding="impl/" kind="src" path="xmltooling/security"/>\r
-<pathentry kind="src" path="xmltooling/security/impl"/>\r
-<pathentry excluding="impl/" kind="src" path="xmltooling/soap"/>\r
-<pathentry kind="src" path="xmltooling/soap/impl"/>\r
-<pathentry kind="src" path="xmltooling/util"/>\r
-<pathentry kind="src" path="xmltooling/validation"/>\r
-<pathentry kind="src" path="xmltoolingtest"/>\r
-</storageModule>\r
 </cconfiguration>\r
 </storageModule>\r
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+<project id="cpp-xmltooling.org.eclipse.linuxtools.cdt.autotools.projectType.1390788322" name="GNU Autotools" projectType="org.eclipse.linuxtools.cdt.autotools.projectType"/>\r
+</storageModule>\r
 </cproject>\r
index 4852860..2711500 100644 (file)
--- a/.project
+++ b/.project
@@ -6,85 +6,21 @@
        </projects>\r
        <buildSpec>\r
                <buildCommand>\r
-                       <name>org.eclipse.cdt.make.core.makeBuilder</name>\r
-                       <triggers>clean,full,incremental,</triggers>\r
+                       <name>org.eclipse.linuxtools.cdt.autotools.genmakebuilder</name>\r
                        <arguments>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.enableCleanBuild</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.append_environment</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.stopOnError</key>\r
-                                       <value>false</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.build.command</key>\r
-                                       <value>make</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.build.target.inc</key>\r
-                                       <value>all</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.build.arguments</key>\r
-                                       <value></value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.build.target.full</key>\r
-                                       <value>clean all</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.environment</key>\r
-                                       <value></value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.build.target.auto</key>\r
-                                       <value>all</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.enableAutoBuild</key>\r
-                                       <value>false</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.enableFullBuild</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.build.target.clean</key>\r
-                                       <value>clean</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.build.location</key>\r
-                                       <value></value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.core.errorOutputParser</key>\r
-                                       <value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;</value>\r
-                               </dictionary>\r
                        </arguments>\r
                </buildCommand>\r
                <buildCommand>\r
-                       <name>org.eclipse.cdt.make.core.ScannerConfigBuilder</name>\r
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>\r
                        <arguments>\r
                        </arguments>\r
                </buildCommand>\r
        </buildSpec>\r
        <natures>\r
                <nature>org.eclipse.cdt.core.cnature</nature>\r
-               <nature>org.eclipse.cdt.make.core.makeNature</nature>\r
-               <nature>org.eclipse.cdt.make.core.ScannerConfigNature</nature>\r
                <nature>org.eclipse.cdt.core.ccnature</nature>\r
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>\r
+               <nature>org.eclipse.linuxtools.cdt.autotools.autotoolsNature</nature>\r
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>\r
        </natures>\r
 </projectDescription>\r
index 1eef9f7..dcc7238 100644 (file)
@@ -1,12 +1,8 @@
 VERSION 1.3
 
-Unreleased
-
-VERSION 1.2.2
-
 Issues addressed by this release:
 ---------------------------------
-https://bugs.internet2.edu/jira/secure/IssueNavigator.jspa?reset=true&&pid=10009&fixfor=10243&status=5&status=6&sorter/field=issuekey&sorter/order=ASC
+https://bugs.internet2.edu/jira/browse/CPPXT/fixforversion/10253
 
 Documentation:
 --------------
index a489f4b..b8940eb 100644 (file)
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-\r
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001\r
-## Free Software Foundation, Inc.\r
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996\r
-##\r
-## This program is free software; you can redistribute it and/or modify\r
-## it under the terms of the GNU General Public License as published by\r
-## the Free Software Foundation; either version 2 of the License, or\r
-## (at your option) any later version.\r
-##\r
-## This program is distributed in the hope that it will be useful, but\r
-## WITHOUT ANY WARRANTY; without even the implied warranty of\r
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-## General Public License for more details.\r
-##\r
-## You should have received a copy of the GNU General Public License\r
-## along with this program; if not, write to the Free Software\r
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r
-##\r
-## As a special exception to the GNU General Public License, if you\r
-## distribute this file as part of a program that contains a\r
-## configuration script generated by Autoconf, you may include it under\r
-## the same distribution terms that you use for the rest of that program.\r
-\r
-# serial 47 AC_PROG_LIBTOOL\r
-\r
-\r
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)\r
-# -----------------------------------------------------------\r
-# If this macro is not defined by Autoconf, define it here.\r
-m4_ifdef([AC_PROVIDE_IFELSE],\r
-         [],\r
-         [m4_define([AC_PROVIDE_IFELSE],\r
-                [m4_ifdef([AC_PROVIDE_$1],\r
-                          [$2], [$3])])])\r
-\r
-\r
-# AC_PROG_LIBTOOL\r
-# ---------------\r
-AC_DEFUN([AC_PROG_LIBTOOL],\r
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl\r
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX\r
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.\r
-  AC_PROVIDE_IFELSE([AC_PROG_CXX],\r
-    [AC_LIBTOOL_CXX],\r
-    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX\r
-  ])])\r
-dnl And a similar setup for Fortran 77 support\r
-  AC_PROVIDE_IFELSE([AC_PROG_F77],\r
-    [AC_LIBTOOL_F77],\r
-    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77\r
-])])\r
-\r
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.\r
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run\r
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.\r
-  AC_PROVIDE_IFELSE([AC_PROG_GCJ],\r
-    [AC_LIBTOOL_GCJ],\r
-    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],\r
-      [AC_LIBTOOL_GCJ],\r
-      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],\r
-       [AC_LIBTOOL_GCJ],\r
-      [ifdef([AC_PROG_GCJ],\r
-            [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])\r
-       ifdef([A][M_PROG_GCJ],\r
-            [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])\r
-       ifdef([LT_AC_PROG_GCJ],\r
-            [define([LT_AC_PROG_GCJ],\r
-               defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])\r
-])])# AC_PROG_LIBTOOL\r
-\r
-\r
-# _AC_PROG_LIBTOOL\r
-# ----------------\r
-AC_DEFUN([_AC_PROG_LIBTOOL],\r
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl\r
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl\r
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl\r
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl\r
-\r
-# This can be used to rebuild libtool when needed\r
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"\r
-\r
-# Always use our own libtool.\r
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'\r
-AC_SUBST(LIBTOOL)dnl\r
-\r
-# Prevent multiple expansion\r
-define([AC_PROG_LIBTOOL], [])\r
-])# _AC_PROG_LIBTOOL\r
-\r
-\r
-# AC_LIBTOOL_SETUP\r
-# ----------------\r
-AC_DEFUN([AC_LIBTOOL_SETUP],\r
-[AC_PREREQ(2.50)dnl\r
-AC_REQUIRE([AC_ENABLE_SHARED])dnl\r
-AC_REQUIRE([AC_ENABLE_STATIC])dnl\r
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl\r
-AC_REQUIRE([AC_CANONICAL_HOST])dnl\r
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl\r
-AC_REQUIRE([AC_PROG_CC])dnl\r
-AC_REQUIRE([AC_PROG_LD])dnl\r
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl\r
-AC_REQUIRE([AC_PROG_NM])dnl\r
-\r
-AC_REQUIRE([AC_PROG_LN_S])dnl\r
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl\r
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!\r
-AC_REQUIRE([AC_OBJEXT])dnl\r
-AC_REQUIRE([AC_EXEEXT])dnl\r
-dnl\r
-\r
-AC_LIBTOOL_SYS_MAX_CMD_LEN\r
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE\r
-AC_LIBTOOL_OBJDIR\r
-\r
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl\r
-_LT_AC_PROG_ECHO_BACKSLASH\r
-\r
-case $host_os in\r
-aix3*)\r
-  # AIX sometimes has problems with the GCC collect2 program.  For some\r
-  # reason, if we set the COLLECT_NAMES environment variable, the problems\r
-  # vanish in a puff of smoke.\r
-  if test "X${COLLECT_NAMES+set}" != Xset; then\r
-    COLLECT_NAMES=\r
-    export COLLECT_NAMES\r
-  fi\r
-  ;;\r
-esac\r
-\r
-# Sed substitution that helps us do robust quoting.  It backslashifies\r
-# metacharacters that are still active within double-quoted strings.\r
-Xsed='sed -e s/^X//'\r
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']\r
-\r
-# Same as above, but do not quote variable references.\r
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']\r
-\r
-# Sed substitution to delay expansion of an escaped shell variable in a\r
-# double_quote_subst'ed string.\r
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'\r
-\r
-# Sed substitution to avoid accidental globbing in evaled expressions\r
-no_glob_subst='s/\*/\\\*/g'\r
-\r
-# Constants:\r
-rm="rm -f"\r
-\r
-# Global variables:\r
-default_ofile=libtool\r
-can_build_shared=yes\r
-\r
-# All known linkers require a `.a' archive for static linking (except M$VC,\r
-# which needs '.lib').\r
-libext=a\r
-ltmain="$ac_aux_dir/ltmain.sh"\r
-ofile="$default_ofile"\r
-with_gnu_ld="$lt_cv_prog_gnu_ld"\r
-\r
-AC_CHECK_TOOL(AR, ar, false)\r
-AC_CHECK_TOOL(RANLIB, ranlib, :)\r
-AC_CHECK_TOOL(STRIP, strip, :)\r
-\r
-old_CC="$CC"\r
-old_CFLAGS="$CFLAGS"\r
-\r
-# Set sane defaults for various variables\r
-test -z "$AR" && AR=ar\r
-test -z "$AR_FLAGS" && AR_FLAGS=cru\r
-test -z "$AS" && AS=as\r
-test -z "$CC" && CC=cc\r
-test -z "$LTCC" && LTCC=$CC\r
-test -z "$DLLTOOL" && DLLTOOL=dlltool\r
-test -z "$LD" && LD=ld\r
-test -z "$LN_S" && LN_S="ln -s"\r
-test -z "$MAGIC_CMD" && MAGIC_CMD=file\r
-test -z "$NM" && NM=nm\r
-test -z "$SED" && SED=sed\r
-test -z "$OBJDUMP" && OBJDUMP=objdump\r
-test -z "$RANLIB" && RANLIB=:\r
-test -z "$STRIP" && STRIP=:\r
-test -z "$ac_objext" && ac_objext=o\r
-\r
-# Determine commands to create old-style static archives.\r
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'\r
-old_postinstall_cmds='chmod 644 $oldlib'\r
-old_postuninstall_cmds=\r
-\r
-if test -n "$RANLIB"; then\r
-  case $host_os in\r
-  openbsd*)\r
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"\r
-    ;;\r
-  *)\r
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"\r
-    ;;\r
-  esac\r
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"\r
-fi\r
-\r
-# Only perform the check for file, if the check method requires it\r
-case $deplibs_check_method in\r
-file_magic*)\r
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then\r
-    AC_PATH_MAGIC\r
-  fi\r
-  ;;\r
-esac\r
-\r
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)\r
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],\r
-enable_win32_dll=yes, enable_win32_dll=no)\r
-\r
-AC_ARG_ENABLE([libtool-lock],\r
-    [AC_HELP_STRING([--disable-libtool-lock],\r
-       [avoid locking (might break parallel builds)])])\r
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes\r
-\r
-AC_ARG_WITH([pic],\r
-    [AC_HELP_STRING([--with-pic],\r
-       [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],\r
-    [pic_mode="$withval"],\r
-    [pic_mode=default])\r
-test -z "$pic_mode" && pic_mode=default\r
-\r
-# Use C for the default configuration in the libtool script\r
-tagname=\r
-AC_LIBTOOL_LANG_C_CONFIG\r
-_LT_AC_TAGCONFIG\r
-])# AC_LIBTOOL_SETUP\r
-\r
-\r
-# _LT_AC_SYS_COMPILER\r
-# -------------------\r
-AC_DEFUN([_LT_AC_SYS_COMPILER],\r
-[AC_REQUIRE([AC_PROG_CC])dnl\r
-\r
-# If no C compiler was specified, use CC.\r
-LTCC=${LTCC-"$CC"}\r
-\r
-# Allow CC to be a program name with arguments.\r
-compiler=$CC\r
-])# _LT_AC_SYS_COMPILER\r
-\r
-\r
-# _LT_AC_SYS_LIBPATH_AIX\r
-# ----------------------\r
-# Links a minimal program and checks the executable\r
-# for the system default hardcoded library path. In most cases,\r
-# this is /usr/lib:/lib, but when the MPI compilers are used\r
-# the location of the communication and MPI libs are included too.\r
-# If we don't find anything, use the default library path according\r
-# to the aix ld manual.\r
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],\r
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[\r
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }\r
-}'`\r
-# Check for a 64-bit object if we didn't find anything.\r
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }\r
-}'`; fi],[])\r
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi\r
-])# _LT_AC_SYS_LIBPATH_AIX\r
-\r
-\r
-# _LT_AC_SHELL_INIT(ARG)\r
-# ----------------------\r
-AC_DEFUN([_LT_AC_SHELL_INIT],\r
-[ifdef([AC_DIVERSION_NOTICE],\r
-            [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],\r
-        [AC_DIVERT_PUSH(NOTICE)])\r
-$1\r
-AC_DIVERT_POP\r
-])# _LT_AC_SHELL_INIT\r
-\r
-\r
-# _LT_AC_PROG_ECHO_BACKSLASH\r
-# --------------------------\r
-# Add some code to the start of the generated configure script which\r
-# will find an echo command which doesn't interpret backslashes.\r
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],\r
-[_LT_AC_SHELL_INIT([\r
-# Check that we are running under the correct shell.\r
-SHELL=${CONFIG_SHELL-/bin/sh}\r
-\r
-case X$ECHO in\r
-X*--fallback-echo)\r
-  # Remove one level of quotation (which was required for Make).\r
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`\r
-  ;;\r
-esac\r
-\r
-echo=${ECHO-echo}\r
-if test "X[$]1" = X--no-reexec; then\r
-  # Discard the --no-reexec flag, and continue.\r
-  shift\r
-elif test "X[$]1" = X--fallback-echo; then\r
-  # Avoid inline document here, it may be left over\r
-  :\r
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then\r
-  # Yippee, $echo works!\r
-  :\r
-else\r
-  # Restart under the correct shell.\r
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}\r
-fi\r
-\r
-if test "X[$]1" = X--fallback-echo; then\r
-  # used as fallback echo\r
-  shift\r
-  cat <<EOF\r
-[$]*\r
-EOF\r
-  exit 0\r
-fi\r
-\r
-# The HP-UX ksh and POSIX shell print the target directory to stdout\r
-# if CDPATH is set.\r
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi\r
-\r
-if test -z "$ECHO"; then\r
-if test "X${echo_test_string+set}" != Xset; then\r
-# find a string as large as possible, as long as the shell can cope with it\r
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do\r
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...\r
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&\r
-       echo_test_string="`eval $cmd`" &&\r
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null\r
-    then\r
-      break\r
-    fi\r
-  done\r
-fi\r
-\r
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&\r
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&\r
-   test "X$echo_testing_string" = "X$echo_test_string"; then\r
-  :\r
-else\r
-  # The Solaris, AIX, and Digital Unix default echo programs unquote\r
-  # backslashes.  This makes it impossible to quote backslashes using\r
-  #   echo "$something" | sed 's/\\/\\\\/g'\r
-  #\r
-  # So, first we look for a working echo in the user's PATH.\r
-\r
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR\r
-  for dir in $PATH /usr/ucb; do\r
-    IFS="$lt_save_ifs"\r
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&\r
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&\r
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&\r
-       test "X$echo_testing_string" = "X$echo_test_string"; then\r
-      echo="$dir/echo"\r
-      break\r
-    fi\r
-  done\r
-  IFS="$lt_save_ifs"\r
-\r
-  if test "X$echo" = Xecho; then\r
-    # We didn't find a better echo, so look for alternatives.\r
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&\r
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&\r
-       test "X$echo_testing_string" = "X$echo_test_string"; then\r
-      # This shell has a builtin print -r that does the trick.\r
-      echo='print -r'\r
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&\r
-        test "X$CONFIG_SHELL" != X/bin/ksh; then\r
-      # If we have ksh, try running configure again with it.\r
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}\r
-      export ORIGINAL_CONFIG_SHELL\r
-      CONFIG_SHELL=/bin/ksh\r
-      export CONFIG_SHELL\r
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}\r
-    else\r
-      # Try using printf.\r
-      echo='printf %s\n'\r
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&\r
-        echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&\r
-        test "X$echo_testing_string" = "X$echo_test_string"; then\r
-       # Cool, printf works\r
-       :\r
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&\r
-          test "X$echo_testing_string" = 'X\t' &&\r
-          echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&\r
-          test "X$echo_testing_string" = "X$echo_test_string"; then\r
-       CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL\r
-       export CONFIG_SHELL\r
-       SHELL="$CONFIG_SHELL"\r
-       export SHELL\r
-       echo="$CONFIG_SHELL [$]0 --fallback-echo"\r
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&\r
-          test "X$echo_testing_string" = 'X\t' &&\r
-          echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&\r
-          test "X$echo_testing_string" = "X$echo_test_string"; then\r
-       echo="$CONFIG_SHELL [$]0 --fallback-echo"\r
-      else\r
-       # maybe with a smaller string...\r
-       prev=:\r
-\r
-       for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do\r
-         if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null\r
-         then\r
-           break\r
-         fi\r
-         prev="$cmd"\r
-       done\r
-\r
-       if test "$prev" != 'sed 50q "[$]0"'; then\r
-         echo_test_string=`eval $prev`\r
-         export echo_test_string\r
-         exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}\r
-       else\r
-         # Oops.  We lost completely, so just stick with echo.\r
-         echo=echo\r
-       fi\r
-      fi\r
-    fi\r
-  fi\r
-fi\r
-fi\r
-\r
-# Copy echo and quote the copy suitably for passing to libtool from\r
-# the Makefile, instead of quoting the original, which is used later.\r
-ECHO=$echo\r
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then\r
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"\r
-fi\r
-\r
-AC_SUBST(ECHO)\r
-])])# _LT_AC_PROG_ECHO_BACKSLASH\r
-\r
-\r
-# _LT_AC_LOCK\r
-# -----------\r
-AC_DEFUN([_LT_AC_LOCK],\r
-[AC_ARG_ENABLE([libtool-lock],\r
-    [AC_HELP_STRING([--disable-libtool-lock],\r
-       [avoid locking (might break parallel builds)])])\r
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes\r
-\r
-# Some flags need to be propagated to the compiler or linker for good\r
-# libtool support.\r
-case $host in\r
-ia64-*-hpux*)\r
-  # Find out which ABI we are using.\r
-  echo 'int i;' > conftest.$ac_ext\r
-  if AC_TRY_EVAL(ac_compile); then\r
-    case `/usr/bin/file conftest.$ac_objext` in\r
-    *ELF-32*)\r
-      HPUX_IA64_MODE="32"\r
-      ;;\r
-    *ELF-64*)\r
-      HPUX_IA64_MODE="64"\r
-      ;;\r
-    esac\r
-  fi\r
-  rm -rf conftest*\r
-  ;;\r
-*-*-irix6*)\r
-  # Find out which ABI we are using.\r
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext\r
-  if AC_TRY_EVAL(ac_compile); then\r
-   if test "$lt_cv_prog_gnu_ld" = yes; then\r
-    case `/usr/bin/file conftest.$ac_objext` in\r
-    *32-bit*)\r
-      LD="${LD-ld} -melf32bsmip"\r
-      ;;\r
-    *N32*)\r
-      LD="${LD-ld} -melf32bmipn32"\r
-      ;;\r
-    *64-bit*)\r
-      LD="${LD-ld} -melf64bmip"\r
-      ;;\r
-    esac\r
-   else\r
-    case `/usr/bin/file conftest.$ac_objext` in\r
-    *32-bit*)\r
-      LD="${LD-ld} -32"\r
-      ;;\r
-    *N32*)\r
-      LD="${LD-ld} -n32"\r
-      ;;\r
-    *64-bit*)\r
-      LD="${LD-ld} -64"\r
-      ;;\r
-    esac\r
-   fi\r
-  fi\r
-  rm -rf conftest*\r
-  ;;\r
-\r
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)\r
-  # Find out which ABI we are using.\r
-  echo 'int i;' > conftest.$ac_ext\r
-  if AC_TRY_EVAL(ac_compile); then\r
-    case "`/usr/bin/file conftest.o`" in\r
-    *32-bit*)\r
-      case $host in\r
-        x86_64-*linux*)\r
-          LD="${LD-ld} -m elf_i386"\r
-          ;;\r
-        ppc64-*linux*|powerpc64-*linux*)\r
-          LD="${LD-ld} -m elf32ppclinux"\r
-          ;;\r
-        s390x-*linux*)\r
-          LD="${LD-ld} -m elf_s390"\r
-          ;;\r
-        sparc64-*linux*)\r
-          LD="${LD-ld} -m elf32_sparc"\r
-          ;;\r
-      esac\r
-      ;;\r
-    *64-bit*)\r
-      case $host in\r
-        x86_64-*linux*)\r
-          LD="${LD-ld} -m elf_x86_64"\r
-          ;;\r
-        ppc*-*linux*|powerpc*-*linux*)\r
-          LD="${LD-ld} -m elf64ppc"\r
-          ;;\r
-        s390*-*linux*)\r
-          LD="${LD-ld} -m elf64_s390"\r
-          ;;\r
-        sparc*-*linux*)\r
-          LD="${LD-ld} -m elf64_sparc"\r
-          ;;\r
-      esac\r
-      ;;\r
-    esac\r
-  fi\r
-  rm -rf conftest*\r
-  ;;\r
-\r
-*-*-sco3.2v5*)\r
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.\r
-  SAVE_CFLAGS="$CFLAGS"\r
-  CFLAGS="$CFLAGS -belf"\r
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,\r
-    [AC_LANG_PUSH(C)\r
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])\r
-     AC_LANG_POP])\r
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then\r
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf\r
-    CFLAGS="$SAVE_CFLAGS"\r
-  fi\r
-  ;;\r
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],\r
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)\r
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)\r
-  AC_CHECK_TOOL(AS, as, false)\r
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)\r
-  ;;\r
-  ])\r
-esac\r
-\r
-need_locks="$enable_libtool_lock"\r
-\r
-])# _LT_AC_LOCK\r
-\r
-\r
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,\r
-#              [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])\r
-# ----------------------------------------------------------------\r
-# Check whether the given compiler option works\r
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],\r
-[AC_REQUIRE([LT_AC_PROG_SED])\r
-AC_CACHE_CHECK([$1], [$2],\r
-  [$2=no\r
-  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])\r
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext\r
-   lt_compiler_flag="$3"\r
-   # Insert the option either (1) after the last *FLAGS variable, or\r
-   # (2) before a word containing "conftest.", or (3) at the end.\r
-   # Note that $ac_compile itself does not contain backslashes and begins\r
-   # with a dollar sign (not a hyphen), so the echo should work correctly.\r
-   # The option is referenced via a variable to avoid confusing sed.\r
-   lt_compile=`echo "$ac_compile" | $SED \\r
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \\r
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \\r
-   -e 's:$: $lt_compiler_flag:'`\r
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)\r
-   (eval "$lt_compile" 2>conftest.err)\r
-   ac_status=$?\r
-   cat conftest.err >&AS_MESSAGE_LOG_FD\r
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD\r
-   if (exit $ac_status) && test -s "$ac_outfile"; then\r
-     # The compiler can only warn and ignore the option if not recognized\r
-     # So say no if there are warnings\r
-     if test ! -s conftest.err; then\r
-       $2=yes\r
-     fi\r
-   fi\r
-   $rm conftest*\r
-])\r
-\r
-if test x"[$]$2" = xyes; then\r
-    ifelse([$5], , :, [$5])\r
-else\r
-    ifelse([$6], , :, [$6])\r
-fi\r
-])# AC_LIBTOOL_COMPILER_OPTION\r
-\r
-\r
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,\r
-#                          [ACTION-SUCCESS], [ACTION-FAILURE])\r
-# ------------------------------------------------------------\r
-# Check whether the given compiler option works\r
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],\r
-[AC_CACHE_CHECK([$1], [$2],\r
-  [$2=no\r
-   save_LDFLAGS="$LDFLAGS"\r
-   LDFLAGS="$LDFLAGS $3"\r
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext\r
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then\r
-     # The compiler can only warn and ignore the option if not recognized\r
-     # So say no if there are warnings\r
-     if test -s conftest.err; then\r
-       # Append any errors to the config.log.\r
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD\r
-     else\r
-       $2=yes\r
-     fi\r
-   fi\r
-   $rm conftest*\r
-   LDFLAGS="$save_LDFLAGS"\r
-])\r
-\r
-if test x"[$]$2" = xyes; then\r
-    ifelse([$4], , :, [$4])\r
-else\r
-    ifelse([$5], , :, [$5])\r
-fi\r
-])# AC_LIBTOOL_LINKER_OPTION\r
-\r
-\r
-# AC_LIBTOOL_SYS_MAX_CMD_LEN\r
-# --------------------------\r
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],\r
-[# find the maximum length of command line arguments\r
-AC_MSG_CHECKING([the maximum length of command line arguments])\r
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl\r
-  i=0\r
-  teststring="ABCD"\r
-\r
-  case $build_os in\r
-  msdosdjgpp*)\r
-    # On DJGPP, this test can blow up pretty badly due to problems in libc\r
-    # (any single argument exceeding 2000 bytes causes a buffer overrun\r
-    # during glob expansion).  Even if it were fixed, the result of this\r
-    # check would be larger than it should be.\r
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right\r
-    ;;\r
-\r
-  gnu*)\r
-    # Under GNU Hurd, this test is not required because there is\r
-    # no limit to the length of command line arguments.\r
-    # Libtool will interpret -1 as no limit whatsoever\r
-    lt_cv_sys_max_cmd_len=-1;\r
-    ;;\r
-\r
-  cygwin* | mingw*)\r
-    # On Win9x/ME, this test blows up -- it succeeds, but takes\r
-    # about 5 minutes as the teststring grows exponentially.\r
-    # Worse, since 9x/ME are not pre-emptively multitasking,\r
-    # you end up with a "frozen" computer, even though with patience\r
-    # the test eventually succeeds (with a max line length of 256k).\r
-    # Instead, let's just punt: use the minimum linelength reported by\r
-    # all of the supported platforms: 8192 (on NT/2K/XP).\r
-    lt_cv_sys_max_cmd_len=8192;\r
-    ;;\r
-\r
-  amigaos*)\r
-    # On AmigaOS with pdksh, this test takes hours, literally.\r
-    # So we just punt and use a minimum line length of 8192.\r
-    lt_cv_sys_max_cmd_len=8192;\r
-    ;;\r
-\r
- *)\r
-    # If test is not a shell built-in, we'll probably end up computing a\r
-    # maximum length that is only half of the actual maximum length, but\r
-    # we can't tell.\r
-    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \\r
-              = "XX$teststring") >/dev/null 2>&1 &&\r
-           new_result=`expr "X$teststring" : ".*" 2>&1` &&\r
-           lt_cv_sys_max_cmd_len=$new_result &&\r
-           test $i != 17 # 1/2 MB should be enough\r
-    do\r
-      i=`expr $i + 1`\r
-      teststring=$teststring$teststring\r
-    done\r
-    teststring=\r
-    # Add a significant safety factor because C++ compilers can tack on massive\r
-    # amounts of additional arguments before passing them to the linker.\r
-    # It appears as though 1/2 is a usable value.\r
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`\r
-    ;;\r
-  esac\r
-])\r
-if test -n $lt_cv_sys_max_cmd_len ; then\r
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)\r
-else\r
-  AC_MSG_RESULT(none)\r
-fi\r
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN\r
-\r
-\r
-# _LT_AC_CHECK_DLFCN\r
-# --------------------\r
-AC_DEFUN([_LT_AC_CHECK_DLFCN],\r
-[AC_CHECK_HEADERS(dlfcn.h)dnl\r
-])# _LT_AC_CHECK_DLFCN\r
-\r
-\r
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,\r
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)\r
-# ------------------------------------------------------------------\r
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],\r
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl\r
-if test "$cross_compiling" = yes; then :\r
-  [$4]\r
-else\r
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2\r
-  lt_status=$lt_dlunknown\r
-  cat > conftest.$ac_ext <<EOF\r
-[#line __oline__ "configure"\r
-#include "confdefs.h"\r
-\r
-#if HAVE_DLFCN_H\r
-#include <dlfcn.h>\r
-#endif\r
-\r
-#include <stdio.h>\r
-\r
-#ifdef RTLD_GLOBAL\r
-#  define LT_DLGLOBAL          RTLD_GLOBAL\r
-#else\r
-#  ifdef DL_GLOBAL\r
-#    define LT_DLGLOBAL                DL_GLOBAL\r
-#  else\r
-#    define LT_DLGLOBAL                0\r
-#  endif\r
-#endif\r
-\r
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we\r
-   find out it does not work in some platform. */\r
-#ifndef LT_DLLAZY_OR_NOW\r
-#  ifdef RTLD_LAZY\r
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY\r
-#  else\r
-#    ifdef DL_LAZY\r
-#      define LT_DLLAZY_OR_NOW         DL_LAZY\r
-#    else\r
-#      ifdef RTLD_NOW\r
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW\r
-#      else\r
-#        ifdef DL_NOW\r
-#          define LT_DLLAZY_OR_NOW     DL_NOW\r
-#        else\r
-#          define LT_DLLAZY_OR_NOW     0\r
-#        endif\r
-#      endif\r
-#    endif\r
-#  endif\r
-#endif\r
-\r
-#ifdef __cplusplus\r
-extern "C" void exit (int);\r
-#endif\r
-\r
-void fnord() { int i=42;}\r
-int main ()\r
-{\r
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);\r
-  int status = $lt_dlunknown;\r
-\r
-  if (self)\r
-    {\r
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;\r
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;\r
-      /* dlclose (self); */\r
-    }\r
-\r
-    exit (status);\r
-}]\r
-EOF\r
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then\r
-    (./conftest; exit; ) 2>/dev/null\r
-    lt_status=$?\r
-    case x$lt_status in\r
-      x$lt_dlno_uscore) $1 ;;\r
-      x$lt_dlneed_uscore) $2 ;;\r
-      x$lt_unknown|x*) $3 ;;\r
-    esac\r
-  else :\r
-    # compilation failed\r
-    $3\r
-  fi\r
-fi\r
-rm -fr conftest*\r
-])# _LT_AC_TRY_DLOPEN_SELF\r
-\r
-\r
-# AC_LIBTOOL_DLOPEN_SELF\r
-# -------------------\r
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],\r
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl\r
-if test "x$enable_dlopen" != xyes; then\r
-  enable_dlopen=unknown\r
-  enable_dlopen_self=unknown\r
-  enable_dlopen_self_static=unknown\r
-else\r
-  lt_cv_dlopen=no\r
-  lt_cv_dlopen_libs=\r
-\r
-  case $host_os in\r
-  beos*)\r
-    lt_cv_dlopen="load_add_on"\r
-    lt_cv_dlopen_libs=\r
-    lt_cv_dlopen_self=yes\r
-    ;;\r
-\r
-  mingw* | pw32*)\r
-    lt_cv_dlopen="LoadLibrary"\r
-    lt_cv_dlopen_libs=\r
-   ;;\r
-\r
-  cygwin*)\r
-    lt_cv_dlopen="dlopen"\r
-    lt_cv_dlopen_libs=\r
-   ;;\r
-\r
-  darwin*)\r
-  # if libdl is installed we need to link against it\r
-    AC_CHECK_LIB([dl], [dlopen],\r
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[\r
-    lt_cv_dlopen="dyld"\r
-    lt_cv_dlopen_libs=\r
-    lt_cv_dlopen_self=yes\r
-    ])\r
-   ;;\r
-\r
-  *)\r
-    AC_CHECK_FUNC([shl_load],\r
-         [lt_cv_dlopen="shl_load"],\r
-      [AC_CHECK_LIB([dld], [shl_load],\r
-           [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],\r
-       [AC_CHECK_FUNC([dlopen],\r
-             [lt_cv_dlopen="dlopen"],\r
-         [AC_CHECK_LIB([dl], [dlopen],\r
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],\r
-           [AC_CHECK_LIB([svld], [dlopen],\r
-                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],\r
-             [AC_CHECK_LIB([dld], [dld_link],\r
-                   [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])\r
-             ])\r
-           ])\r
-         ])\r
-       ])\r
-      ])\r
-    ;;\r
-  esac\r
-\r
-  if test "x$lt_cv_dlopen" != xno; then\r
-    enable_dlopen=yes\r
-  else\r
-    enable_dlopen=no\r
-  fi\r
-\r
-  case $lt_cv_dlopen in\r
-  dlopen)\r
-    save_CPPFLAGS="$CPPFLAGS"\r
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"\r
-\r
-    save_LDFLAGS="$LDFLAGS"\r
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"\r
-\r
-    save_LIBS="$LIBS"\r
-    LIBS="$lt_cv_dlopen_libs $LIBS"\r
-\r
-    AC_CACHE_CHECK([whether a program can dlopen itself],\r
-         lt_cv_dlopen_self, [dnl\r
-         _LT_AC_TRY_DLOPEN_SELF(\r
-           lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,\r
-           lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)\r
-    ])\r
-\r
-    if test "x$lt_cv_dlopen_self" = xyes; then\r
-      LDFLAGS="$LDFLAGS $link_static_flag"\r
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],\r
-         lt_cv_dlopen_self_static, [dnl\r
-         _LT_AC_TRY_DLOPEN_SELF(\r
-           lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,\r
-           lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)\r
-      ])\r
-    fi\r
-\r
-    CPPFLAGS="$save_CPPFLAGS"\r
-    LDFLAGS="$save_LDFLAGS"\r
-    LIBS="$save_LIBS"\r
-    ;;\r
-  esac\r
-\r
-  case $lt_cv_dlopen_self in\r
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;\r
-  *) enable_dlopen_self=unknown ;;\r
-  esac\r
-\r
-  case $lt_cv_dlopen_self_static in\r
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;\r
-  *) enable_dlopen_self_static=unknown ;;\r
-  esac\r
-fi\r
-])# AC_LIBTOOL_DLOPEN_SELF\r
-\r
-\r
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])\r
-# ---------------------------------\r
-# Check to see if options -c and -o are simultaneously supported by compiler\r
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],\r
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl\r
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],\r
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],\r
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no\r
-   $rm -r conftest 2>/dev/null\r
-   mkdir conftest\r
-   cd conftest\r
-   mkdir out\r
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext\r
-\r
-   lt_compiler_flag="-o out/conftest2.$ac_objext"\r
-   # Insert the option either (1) after the last *FLAGS variable, or\r
-   # (2) before a word containing "conftest.", or (3) at the end.\r
-   # Note that $ac_compile itself does not contain backslashes and begins\r
-   # with a dollar sign (not a hyphen), so the echo should work correctly.\r
-   lt_compile=`echo "$ac_compile" | $SED \\r
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \\r
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \\r
-   -e 's:$: $lt_compiler_flag:'`\r
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)\r
-   (eval "$lt_compile" 2>out/conftest.err)\r
-   ac_status=$?\r
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD\r
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD\r
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext\r
-   then\r
-     # The compiler can only warn and ignore the option if not recognized\r
-     # So say no if there are warnings\r
-     if test ! -s out/conftest.err; then\r
-       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes\r
-     fi\r
-   fi\r
-   chmod u+w .\r
-   $rm conftest*\r
-   # SGI C++ compiler will create directory out/ii_files/ for\r
-   # template instantiation\r
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files\r
-   $rm out/* && rmdir out\r
-   cd ..\r
-   rmdir conftest\r
-   $rm conftest*\r
-])\r
-])# AC_LIBTOOL_PROG_CC_C_O\r
-\r
-\r
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])\r
-# -----------------------------------------\r
-# Check to see if we can do hard links to lock some files if needed\r
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],\r
-[AC_REQUIRE([_LT_AC_LOCK])dnl\r
-\r
-hard_links="nottested"\r
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then\r
-  # do not overwrite the value of need_locks provided by the user\r
-  AC_MSG_CHECKING([if we can lock with hard links])\r
-  hard_links=yes\r
-  $rm conftest*\r
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no\r
-  touch conftest.a\r
-  ln conftest.a conftest.b 2>&5 || hard_links=no\r
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no\r
-  AC_MSG_RESULT([$hard_links])\r
-  if test "$hard_links" = no; then\r
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])\r
-    need_locks=warn\r
-  fi\r
-else\r
-  need_locks=no\r
-fi\r
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS\r
-\r
-\r
-# AC_LIBTOOL_OBJDIR\r
-# -----------------\r
-AC_DEFUN([AC_LIBTOOL_OBJDIR],\r
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],\r
-[rm -f .libs 2>/dev/null\r
-mkdir .libs 2>/dev/null\r
-if test -d .libs; then\r
-  lt_cv_objdir=.libs\r
-else\r
-  # MS-DOS does not allow filenames that begin with a dot.\r
-  lt_cv_objdir=_libs\r
-fi\r
-rmdir .libs 2>/dev/null])\r
-objdir=$lt_cv_objdir\r
-])# AC_LIBTOOL_OBJDIR\r
-\r
-\r
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])\r
-# ----------------------------------------------\r
-# Check hardcoding attributes.\r
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],\r
-[AC_MSG_CHECKING([how to hardcode library paths into programs])\r
-_LT_AC_TAGVAR(hardcode_action, $1)=\r
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \\r
-   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \\r
-   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then\r
-\r
-  # We can hardcode non-existant directories.\r
-  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&\r
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we\r
-     # have to relink, otherwise we might link with an installed library\r
-     # when we should be linking with a yet-to-be-installed one\r
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&\r
-     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then\r
-    # Linking always hardcodes the temporary library directory.\r
-    _LT_AC_TAGVAR(hardcode_action, $1)=relink\r
-  else\r
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.\r
-    _LT_AC_TAGVAR(hardcode_action, $1)=immediate\r
-  fi\r
-else\r
-  # We cannot hardcode anything, or else we can only hardcode existing\r
-  # directories.\r
-  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported\r
-fi\r
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])\r
-\r
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then\r
-  # Fast installation is not supported\r
-  enable_fast_install=no\r
-elif test "$shlibpath_overrides_runpath" = yes ||\r
-     test "$enable_shared" = no; then\r
-  # Fast installation is not necessary\r
-  enable_fast_install=needless\r
-fi\r
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH\r
-\r
-\r
-# AC_LIBTOOL_SYS_LIB_STRIP\r
-# ------------------------\r
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],\r
-[striplib=\r
-old_striplib=\r
-AC_MSG_CHECKING([whether stripping libraries is possible])\r
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then\r
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"\r
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"\r
-  AC_MSG_RESULT([yes])\r
-else\r
-# FIXME - insert some real tests, host_os isn't really good enough\r
-  case $host_os in\r
-   darwin*)\r
-       if test -n "$STRIP" ; then\r
-         striplib="$STRIP -x"\r
-         AC_MSG_RESULT([yes])\r
-       else\r
-  AC_MSG_RESULT([no])\r
-fi\r
-       ;;\r
-   *)\r
-  AC_MSG_RESULT([no])\r
-    ;;\r
-  esac\r
-fi\r
-])# AC_LIBTOOL_SYS_LIB_STRIP\r
-\r
-\r
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER\r
-# -----------------------------\r
-# PORTME Fill in your ld.so characteristics\r
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],\r
-[AC_MSG_CHECKING([dynamic linker characteristics])\r
-library_names_spec=\r
-libname_spec='lib$name'\r
-soname_spec=\r
-shrext_cmds=".so"\r
-postinstall_cmds=\r
-postuninstall_cmds=\r
-finish_cmds=\r
-finish_eval=\r
-shlibpath_var=\r
-shlibpath_overrides_runpath=unknown\r
-version_type=none\r
-dynamic_linker="$host_os ld.so"\r
-sys_lib_dlsearch_path_spec="/lib /usr/lib"\r
-if test "$GCC" = yes; then\r
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`\r
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then\r
-    # if the path contains ";" then we assume it to be the separator\r
-    # otherwise default to the standard path separator (i.e. ":") - it is\r
-    # assumed that no part of a normal pathname contains ";" but that should\r
-    # okay in the real world where ";" in dirpaths is itself problematic.\r
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`\r
-  else\r
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`\r
-  fi\r
-else\r
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"\r
-fi\r
-need_lib_prefix=unknown\r
-hardcode_into_libs=no\r
-\r
-# when you set need_version to no, make sure it does not cause -set_version\r
-# flags to be left without arguments\r
-need_version=unknown\r
-\r
-case $host_os in\r
-aix3*)\r
-  version_type=linux\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'\r
-  shlibpath_var=LIBPATH\r
-\r
-  # AIX 3 has no versioning support, so we append a major version to the name.\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  ;;\r
-\r
-aix4* | aix5*)\r
-  version_type=linux\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  hardcode_into_libs=yes\r
-  if test "$host_cpu" = ia64; then\r
-    # AIX 5 supports IA64\r
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'\r
-    shlibpath_var=LD_LIBRARY_PATH\r
-  else\r
-    # With GCC up to 2.95.x, collect2 would create an import file\r
-    # for dependence libraries.  The import file would start with\r
-    # the line `#! .'.  This would cause the generated library to\r
-    # depend on `.', always an invalid library.  This was fixed in\r
-    # development snapshots of GCC prior to 3.0.\r
-    case $host_os in\r
-      aix4 | aix4.[[01]] | aix4.[[01]].*)\r
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'\r
-          echo ' yes '\r
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then\r
-       :\r
-      else\r
-       can_build_shared=no\r
-      fi\r
-      ;;\r
-    esac\r
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct\r
-    # soname into executable. Probably we can add versioning support to\r
-    # collect2, so additional links can be useful in future.\r
-    if test "$aix_use_runtimelinking" = yes; then\r
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so\r
-      # instead of lib<name>.a to let people know that these are not\r
-      # typical AIX shared libraries.\r
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-    else\r
-      # We preserve .a as extension for shared libraries through AIX4.2\r
-      # and later when we are not doing run time linking.\r
-      library_names_spec='${libname}${release}.a $libname.a'\r
-      soname_spec='${libname}${release}${shared_ext}$major'\r
-    fi\r
-    shlibpath_var=LIBPATH\r
-  fi\r
-  ;;\r
-\r
-amigaos*)\r
-  library_names_spec='$libname.ixlibrary $libname.a'\r
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.\r
-  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'\r
-  ;;\r
-\r
-beos*)\r
-  library_names_spec='${libname}${shared_ext}'\r
-  dynamic_linker="$host_os ld.so"\r
-  shlibpath_var=LIBRARY_PATH\r
-  ;;\r
-\r
-bsdi4*)\r
-  version_type=linux\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"\r
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"\r
-  # the default ld.so.conf also contains /usr/contrib/lib and\r
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow\r
-  # libtool to hard-code these into programs\r
-  ;;\r
-\r
-cygwin* | mingw* | pw32*)\r
-  version_type=windows\r
-  shrext_cmds=".dll"\r
-  need_version=no\r
-  need_lib_prefix=no\r
-\r
-  case $GCC,$host_os in\r
-  yes,cygwin* | yes,mingw* | yes,pw32*)\r
-    library_names_spec='$libname.dll.a'\r
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds\r
-    postinstall_cmds='base_file=`basename \${file}`~\r
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~\r
-      dldir=$destdir/`dirname \$dlpath`~\r
-      test -d \$dldir || mkdir -p \$dldir~\r
-      $install_prog $dir/$dlname \$dldir/$dlname'\r
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~\r
-      dlpath=$dir/\$dldll~\r
-       $rm \$dlpath'\r
-    shlibpath_overrides_runpath=yes\r
-\r
-    case $host_os in\r
-    cygwin*)\r
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'\r
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'\r
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"\r
-      ;;\r
-    mingw*)\r
-      # MinGW DLLs use traditional 'lib' prefix\r
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'\r
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`\r
-      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then\r
-        # It is most probably a Windows format PATH printed by\r
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search\r
-        # path with ; separators, and with drive letters. We can handle the\r
-        # drive letters (cygwin fileutils understands them), so leave them,\r
-        # especially as we might pass files found there to a mingw objdump,\r
-        # which wouldn't understand a cygwinified path. Ahh.\r
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`\r
-      else\r
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`\r
-      fi\r
-      ;;\r
-    pw32*)\r
-      # pw32 DLLs use 'pw' prefix rather than 'lib'\r
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'\r
-      ;;\r
-    esac\r
-    ;;\r
-\r
-  *)\r
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'\r
-    ;;\r
-  esac\r
-  dynamic_linker='Win32 ld.exe'\r
-  # FIXME: first we should search . and the directory the executable is in\r
-  shlibpath_var=PATH\r
-  ;;\r
-\r
-darwin* | rhapsody*)\r
-  dynamic_linker="$host_os dyld"\r
-  version_type=darwin\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'\r
-  soname_spec='${libname}${release}${major}$shared_ext'\r
-  shlibpath_overrides_runpath=yes\r
-  shlibpath_var=DYLD_LIBRARY_PATH\r
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'\r
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.\r
-  if test "$GCC" = yes; then\r
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`\r
-  else\r
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'\r
-  fi\r
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'\r
-  ;;\r
-\r
-dgux*)\r
-  version_type=linux\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  ;;\r
-\r
-freebsd1*)\r
-  dynamic_linker=no\r
-  ;;\r
-\r
-kfreebsd*-gnu)\r
-  version_type=linux\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  shlibpath_overrides_runpath=no\r
-  hardcode_into_libs=yes\r
-  dynamic_linker='GNU ld.so'\r
-  ;;\r
-\r
-freebsd*)\r
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`\r
-  version_type=freebsd-$objformat\r
-  case $version_type in\r
-    freebsd-elf*)\r
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'\r
-      need_version=no\r
-      need_lib_prefix=no\r
-      ;;\r
-    freebsd-*)\r
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'\r
-      need_version=yes\r
-      ;;\r
-  esac\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  case $host_os in\r
-  freebsd2*)\r
-    shlibpath_overrides_runpath=yes\r
-    ;;\r
-  freebsd3.[01]* | freebsdelf3.[01]*)\r
-    shlibpath_overrides_runpath=yes\r
-    hardcode_into_libs=yes\r
-    ;;\r
-  *) # from 3.2 on\r
-    shlibpath_overrides_runpath=no\r
-    hardcode_into_libs=yes\r
-    ;;\r
-  esac\r
-  ;;\r
-\r
-gnu*)\r
-  version_type=linux\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  hardcode_into_libs=yes\r
-  ;;\r
-\r
-hpux9* | hpux10* | hpux11*)\r
-  # Give a soname corresponding to the major version so that dld.sl refuses to\r
-  # link against other versions.\r
-  version_type=sunos\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  case "$host_cpu" in\r
-  ia64*)\r
-    shrext_cmds='.so'\r
-    hardcode_into_libs=yes\r
-    dynamic_linker="$host_os dld.so"\r
-    shlibpath_var=LD_LIBRARY_PATH\r
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.\r
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-    soname_spec='${libname}${release}${shared_ext}$major'\r
-    if test "X$HPUX_IA64_MODE" = X32; then\r
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"\r
-    else\r
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"\r
-    fi\r
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec\r
-    ;;\r
-   hppa*64*)\r
-     shrext_cmds='.sl'\r
-     hardcode_into_libs=yes\r
-     dynamic_linker="$host_os dld.sl"\r
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH\r
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.\r
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-     soname_spec='${libname}${release}${shared_ext}$major'\r
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"\r
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec\r
-     ;;\r
-   *)\r
-    shrext_cmds='.sl'\r
-    dynamic_linker="$host_os dld.sl"\r
-    shlibpath_var=SHLIB_PATH\r
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH\r
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-    soname_spec='${libname}${release}${shared_ext}$major'\r
-    ;;\r
-  esac\r
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.\r
-  postinstall_cmds='chmod 555 $lib'\r
-  ;;\r
-\r
-irix5* | irix6* | nonstopux*)\r
-  case $host_os in\r
-    nonstopux*) version_type=nonstopux ;;\r
-    *)\r
-       if test "$lt_cv_prog_gnu_ld" = yes; then\r
-               version_type=linux\r
-       else\r
-               version_type=irix\r
-       fi ;;\r
-  esac\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'\r
-  case $host_os in\r
-  irix5* | nonstopux*)\r
-    libsuff= shlibsuff=\r
-    ;;\r
-  *)\r
-    case $LD in # libtool.m4 will add one of these switches to LD\r
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")\r
-      libsuff= shlibsuff= libmagic=32-bit;;\r
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")\r
-      libsuff=32 shlibsuff=N32 libmagic=N32;;\r
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")\r
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;\r
-    *) libsuff= shlibsuff= libmagic=never-match;;\r
-    esac\r
-    ;;\r
-  esac\r
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH\r
-  shlibpath_overrides_runpath=no\r
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"\r
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"\r
-  hardcode_into_libs=yes\r
-  ;;\r
-\r
-# No shared lib support for Linux oldld, aout, or coff.\r
-linux*oldld* | linux*aout* | linux*coff*)\r
-  dynamic_linker=no\r
-  ;;\r
-\r
-# This must be Linux ELF.\r
-linux*)\r
-  version_type=linux\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  shlibpath_overrides_runpath=no\r
-  # This implies no fast_install, which is unacceptable.\r
-  # Some rework will be needed to allow for fast_install\r
-  # before this can be enabled.\r
-  hardcode_into_libs=yes\r
-\r
-  # find out which ABI we are using\r
-  libsuff=\r
-  case "$host_cpu" in\r
-  x86_64*|s390x*|powerpc64*)\r
-    echo '[#]line __oline__ "configure"' > conftest.$ac_ext\r
-    if AC_TRY_EVAL(ac_compile); then\r
-      case `/usr/bin/file conftest.$ac_objext` in\r
-      *64-bit*)\r
-        libsuff=64\r
-        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"\r
-        ;;\r
-      esac\r
-    fi\r
-    rm -rf conftest*\r
-    ;;\r
-  esac\r
-\r
-  # Append ld.so.conf contents to the search path\r
-  if test -f /etc/ld.so.conf; then\r
-    lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '`\r
-    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"\r
-  fi\r
-\r
-  # We used to test for /lib/ld.so.1 and disable shared libraries on\r
-  # powerpc, because MkLinux only supported shared libraries with the\r
-  # GNU dynamic linker.  Since this was broken with cross compilers,\r
-  # most powerpc-linux boxes support dynamic linking these days and\r
-  # people can always --disable-shared, the test was removed, and we\r
-  # assume the GNU/Linux dynamic linker is in use.\r
-  dynamic_linker='GNU/Linux ld.so'\r
-  ;;\r
-\r
-knetbsd*-gnu)\r
-  version_type=linux\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  shlibpath_overrides_runpath=no\r
-  hardcode_into_libs=yes\r
-  dynamic_linker='GNU ld.so'\r
-  ;;\r
-\r
-netbsd*)\r
-  version_type=sunos\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then\r
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'\r
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'\r
-    dynamic_linker='NetBSD (a.out) ld.so'\r
-  else\r
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'\r
-    soname_spec='${libname}${release}${shared_ext}$major'\r
-    dynamic_linker='NetBSD ld.elf_so'\r
-  fi\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  shlibpath_overrides_runpath=yes\r
-  hardcode_into_libs=yes\r
-  ;;\r
-\r
-newsos6)\r
-  version_type=linux\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  shlibpath_overrides_runpath=yes\r
-  ;;\r
-\r
-nto-qnx*)\r
-  version_type=linux\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  shlibpath_overrides_runpath=yes\r
-  ;;\r
-\r
-openbsd*)\r
-  version_type=sunos\r
-  need_lib_prefix=no\r
-  need_version=yes\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'\r
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then\r
-    case $host_os in\r
-      openbsd2.[[89]] | openbsd2.[[89]].*)\r
-       shlibpath_overrides_runpath=no\r
-       ;;\r
-      *)\r
-       shlibpath_overrides_runpath=yes\r
-       ;;\r
-      esac\r
-  else\r
-    shlibpath_overrides_runpath=yes\r
-  fi\r
-  ;;\r
-\r
-os2*)\r
-  libname_spec='$name'\r
-  shrext_cmds=".dll"\r
-  need_lib_prefix=no\r
-  library_names_spec='$libname${shared_ext} $libname.a'\r
-  dynamic_linker='OS/2 ld.exe'\r
-  shlibpath_var=LIBPATH\r
-  ;;\r
-\r
-osf3* | osf4* | osf5*)\r
-  version_type=osf\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"\r
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"\r
-  ;;\r
-\r
-sco3.2v5*)\r
-  version_type=osf\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  ;;\r
-\r
-solaris*)\r
-  version_type=linux\r
-  need_lib_prefix=no\r
-  need_version=no\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  shlibpath_overrides_runpath=yes\r
-  hardcode_into_libs=yes\r
-  # ldd complains unless libraries are executable\r
-  postinstall_cmds='chmod +x $lib'\r
-  ;;\r
-\r
-sunos4*)\r
-  version_type=sunos\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'\r
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  shlibpath_overrides_runpath=yes\r
-  if test "$with_gnu_ld" = yes; then\r
-    need_lib_prefix=no\r
-  fi\r
-  need_version=yes\r
-  ;;\r
-\r
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)\r
-  version_type=linux\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  case $host_vendor in\r
-    sni)\r
-      shlibpath_overrides_runpath=no\r
-      need_lib_prefix=no\r
-      export_dynamic_flag_spec='${wl}-Blargedynsym'\r
-      runpath_var=LD_RUN_PATH\r
-      ;;\r
-    siemens)\r
-      need_lib_prefix=no\r
-      ;;\r
-    motorola)\r
-      need_lib_prefix=no\r
-      need_version=no\r
-      shlibpath_overrides_runpath=no\r
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'\r
-      ;;\r
-  esac\r
-  ;;\r
-\r
-sysv4*MP*)\r
-  if test -d /usr/nec ;then\r
-    version_type=linux\r
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'\r
-    soname_spec='$libname${shared_ext}.$major'\r
-    shlibpath_var=LD_LIBRARY_PATH\r
-  fi\r
-  ;;\r
-\r
-uts4*)\r
-  version_type=linux\r
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'\r
-  soname_spec='${libname}${release}${shared_ext}$major'\r
-  shlibpath_var=LD_LIBRARY_PATH\r
-  ;;\r
-\r
-*)\r
-  dynamic_linker=no\r
-  ;;\r
-esac\r
-AC_MSG_RESULT([$dynamic_linker])\r
-test "$dynamic_linker" = no && can_build_shared=no\r
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER\r
-\r
-\r
-# _LT_AC_TAGCONFIG\r
-# ----------------\r
-AC_DEFUN([_LT_AC_TAGCONFIG],\r
-[AC_ARG_WITH([tags],\r
-    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],\r
-        [include additional configurations @<:@automatic@:>@])],\r
-    [tagnames="$withval"])\r
-\r
-if test -f "$ltmain" && test -n "$tagnames"; then\r
-  if test ! -f "${ofile}"; then\r
-    AC_MSG_WARN([output file `$ofile' does not exist])\r
-  fi\r
-\r
-  if test -z "$LTCC"; then\r
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"\r
-    if test -z "$LTCC"; then\r
-      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])\r
-    else\r
-      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])\r
-    fi\r
-  fi\r
-\r
-  # Extract list of available tagged configurations in $ofile.\r
-  # Note that this assumes the entire list is on one line.\r
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`\r
-\r
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"\r
-  for tagname in $tagnames; do\r
-    IFS="$lt_save_ifs"\r
-    # Check whether tagname contains only valid characters\r
-    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in\r
-    "") ;;\r
-    *)  AC_MSG_ERROR([invalid tag name: $tagname])\r
-       ;;\r
-    esac\r
-\r
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null\r
-    then\r
-      AC_MSG_ERROR([tag name \"$tagname\" already exists])\r
-    fi\r
-\r
-    # Update the list of available tags.\r
-    if test -n "$tagname"; then\r
-      echo appending configuration tag \"$tagname\" to $ofile\r
-\r
-      case $tagname in\r
-      CXX)\r
-       if test -n "$CXX" && test "X$CXX" != "Xno"; then\r
-         AC_LIBTOOL_LANG_CXX_CONFIG\r
-       else\r
-         tagname=""\r
-       fi\r
-       ;;\r
-\r
-      F77)\r
-       if test -n "$F77" && test "X$F77" != "Xno"; then\r
-         AC_LIBTOOL_LANG_F77_CONFIG\r
-       else\r
-         tagname=""\r
-       fi\r
-       ;;\r
-\r
-      GCJ)\r
-       if test -n "$GCJ" && test "X$GCJ" != "Xno"; then\r
-         AC_LIBTOOL_LANG_GCJ_CONFIG\r
-       else\r
-         tagname=""\r
-       fi\r
-       ;;\r
-\r
-      RC)\r
-       AC_LIBTOOL_LANG_RC_CONFIG\r
-       ;;\r
-\r
-      *)\r
-       AC_MSG_ERROR([Unsupported tag name: $tagname])\r
-       ;;\r
-      esac\r
-\r
-      # Append the new tag name to the list of available tags.\r
-      if test -n "$tagname" ; then\r
-      available_tags="$available_tags $tagname"\r
-    fi\r
-    fi\r
-  done\r
-  IFS="$lt_save_ifs"\r
-\r
-  # Now substitute the updated list of available tags.\r
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then\r
-    mv "${ofile}T" "$ofile"\r
-    chmod +x "$ofile"\r
-  else\r
-    rm -f "${ofile}T"\r
-    AC_MSG_ERROR([unable to update list of available tagged configurations.])\r
-  fi\r
-fi\r
-])# _LT_AC_TAGCONFIG\r
-\r
-\r
-# AC_LIBTOOL_DLOPEN\r
-# -----------------\r
-# enable checks for dlopen support\r
-AC_DEFUN([AC_LIBTOOL_DLOPEN],\r
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])\r
-])# AC_LIBTOOL_DLOPEN\r
-\r
-\r
-# AC_LIBTOOL_WIN32_DLL\r
-# --------------------\r
-# declare package support for building win32 dll's\r
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],\r
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])\r
-])# AC_LIBTOOL_WIN32_DLL\r
-\r
-\r
-# AC_ENABLE_SHARED([DEFAULT])\r
-# ---------------------------\r
-# implement the --enable-shared flag\r
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.\r
-AC_DEFUN([AC_ENABLE_SHARED],\r
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl\r
-AC_ARG_ENABLE([shared],\r
-    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],\r
-       [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],\r
-    [p=${PACKAGE-default}\r
-    case $enableval in\r
-    yes) enable_shared=yes ;;\r
-    no) enable_shared=no ;;\r
-    *)\r
-      enable_shared=no\r
-      # Look at the argument we got.  We use all the common list separators.\r
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"\r
-      for pkg in $enableval; do\r
-       IFS="$lt_save_ifs"\r
-       if test "X$pkg" = "X$p"; then\r
-         enable_shared=yes\r
-       fi\r
-      done\r
-      IFS="$lt_save_ifs"\r
-      ;;\r
-    esac],\r
-    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)\r
-])# AC_ENABLE_SHARED\r
-\r
-\r
-# AC_DISABLE_SHARED\r
-# -----------------\r
-#- set the default shared flag to --disable-shared\r
-AC_DEFUN([AC_DISABLE_SHARED],\r
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl\r
-AC_ENABLE_SHARED(no)\r
-])# AC_DISABLE_SHARED\r
-\r
-\r
-# AC_ENABLE_STATIC([DEFAULT])\r
-# ---------------------------\r
-# implement the --enable-static flag\r
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.\r
-AC_DEFUN([AC_ENABLE_STATIC],\r
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl\r
-AC_ARG_ENABLE([static],\r
-    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],\r
-       [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],\r
-    [p=${PACKAGE-default}\r
-    case $enableval in\r
-    yes) enable_static=yes ;;\r
-    no) enable_static=no ;;\r
-    *)\r
-     enable_static=no\r
-      # Look at the argument we got.  We use all the common list separators.\r
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"\r
-      for pkg in $enableval; do\r
-       IFS="$lt_save_ifs"\r
-       if test "X$pkg" = "X$p"; then\r
-         enable_static=yes\r
-       fi\r
-      done\r
-      IFS="$lt_save_ifs"\r
-      ;;\r
-    esac],\r
-    [enable_static=]AC_ENABLE_STATIC_DEFAULT)\r
-])# AC_ENABLE_STATIC\r
-\r
-\r
-# AC_DISABLE_STATIC\r
-# -----------------\r
-# set the default static flag to --disable-static\r
-AC_DEFUN([AC_DISABLE_STATIC],\r
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl\r
-AC_ENABLE_STATIC(no)\r
-])# AC_DISABLE_STATIC\r
-\r
-\r
-# AC_ENABLE_FAST_INSTALL([DEFAULT])\r
-# ---------------------------------\r
-# implement the --enable-fast-install flag\r
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.\r
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],\r
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl\r
-AC_ARG_ENABLE([fast-install],\r
-    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],\r
-    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],\r
-    [p=${PACKAGE-default}\r
-    case $enableval in\r
-    yes) enable_fast_install=yes ;;\r
-    no) enable_fast_install=no ;;\r
-    *)\r
-      enable_fast_install=no\r
-      # Look at the argument we got.  We use all the common list separators.\r
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"\r
-      for pkg in $enableval; do\r
-       IFS="$lt_save_ifs"\r
-       if test "X$pkg" = "X$p"; then\r
-         enable_fast_install=yes\r
-       fi\r
-      done\r
-      IFS="$lt_save_ifs"\r
-      ;;\r
-    esac],\r
-    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)\r
-])# AC_ENABLE_FAST_INSTALL\r
-\r
-\r
-# AC_DISABLE_FAST_INSTALL\r
-# -----------------------\r
-# set the default to --disable-fast-install\r
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],\r
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl\r
-AC_ENABLE_FAST_INSTALL(no)\r
-])# AC_DISABLE_FAST_INSTALL\r
-\r
-\r
-# AC_LIBTOOL_PICMODE([MODE])\r
-# --------------------------\r
-# implement the --with-pic flag\r
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.\r
-AC_DEFUN([AC_LIBTOOL_PICMODE],\r
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl\r
-pic_mode=ifelse($#,1,$1,default)\r
-])# AC_LIBTOOL_PICMODE\r
-\r
-\r
-# AC_PROG_EGREP\r
-# -------------\r
-# This is predefined starting with Autoconf 2.54, so this conditional\r
-# definition can be removed once we require Autoconf 2.54 or later.\r
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],\r
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],\r
-   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1\r
-    then ac_cv_prog_egrep='grep -E'\r
-    else ac_cv_prog_egrep='egrep'\r
-    fi])\r
- EGREP=$ac_cv_prog_egrep\r
- AC_SUBST([EGREP])\r
-])])\r
-\r
-\r
-# AC_PATH_TOOL_PREFIX\r
-# -------------------\r
-# find a file program which can recognise shared library\r
-AC_DEFUN([AC_PATH_TOOL_PREFIX],\r
-[AC_REQUIRE([AC_PROG_EGREP])dnl\r
-AC_MSG_CHECKING([for $1])\r
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,\r
-[case $MAGIC_CMD in\r
-[[\\/*] |  ?:[\\/]*])\r
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.\r
-  ;;\r
-*)\r
-  lt_save_MAGIC_CMD="$MAGIC_CMD"\r
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR\r
-dnl $ac_dummy forces splitting on constant user-supplied paths.\r
-dnl POSIX.2 word splitting is done only on the output of word expansions,\r
-dnl not every word.  This closes a longstanding sh security hole.\r
-  ac_dummy="ifelse([$2], , $PATH, [$2])"\r
-  for ac_dir in $ac_dummy; do\r
-    IFS="$lt_save_ifs"\r
-    test -z "$ac_dir" && ac_dir=.\r
-    if test -f $ac_dir/$1; then\r
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"\r
-      if test -n "$file_magic_test_file"; then\r
-       case $deplibs_check_method in\r
-       "file_magic "*)\r
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"\r
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"\r
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |\r
-           $EGREP "$file_magic_regex" > /dev/null; then\r
-           :\r
-         else\r
-           cat <<EOF 1>&2\r
-\r
-*** Warning: the command libtool uses to detect shared libraries,\r
-*** $file_magic_cmd, produces output that libtool cannot recognize.\r
-*** The result is that libtool may fail to recognize shared libraries\r
-*** as such.  This will affect the creation of libtool libraries that\r
-*** depend on shared libraries, but programs linked with such libtool\r
-*** libraries will work regardless of this problem.  Nevertheless, you\r
-*** may want to report the problem to your system manager and/or to\r
-*** bug-libtool@gnu.org\r
-\r
-EOF\r
-         fi ;;\r
-       esac\r
-      fi\r
-      break\r
-    fi\r
-  done\r
-  IFS="$lt_save_ifs"\r
-  MAGIC_CMD="$lt_save_MAGIC_CMD"\r
-  ;;\r
-esac])\r
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"\r
-if test -n "$MAGIC_CMD"; then\r
-  AC_MSG_RESULT($MAGIC_CMD)\r
-else\r
-  AC_MSG_RESULT(no)\r
-fi\r
-])# AC_PATH_TOOL_PREFIX\r
-\r
-\r
-# AC_PATH_MAGIC\r
-# -------------\r
-# find a file program which can recognise a shared library\r
-AC_DEFUN([AC_PATH_MAGIC],\r
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)\r
-if test -z "$lt_cv_path_MAGIC_CMD"; then\r
-  if test -n "$ac_tool_prefix"; then\r
-    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)\r
-  else\r
-    MAGIC_CMD=:\r
-  fi\r
-fi\r
-])# AC_PATH_MAGIC\r
-\r
-\r
-# AC_PROG_LD\r
-# ----------\r
-# find the pathname to the GNU or non-GNU linker\r
-AC_DEFUN([AC_PROG_LD],\r
-[AC_ARG_WITH([gnu-ld],\r
-    [AC_HELP_STRING([--with-gnu-ld],\r
-       [assume the C compiler uses GNU ld @<:@default=no@:>@])],\r
-    [test "$withval" = no || with_gnu_ld=yes],\r
-    [with_gnu_ld=no])\r
-AC_REQUIRE([LT_AC_PROG_SED])dnl\r
-AC_REQUIRE([AC_PROG_CC])dnl\r
-AC_REQUIRE([AC_CANONICAL_HOST])dnl\r
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl\r
-ac_prog=ld\r
-if test "$GCC" = yes; then\r
-  # Check if gcc -print-prog-name=ld gives a path.\r
-  AC_MSG_CHECKING([for ld used by $CC])\r
-  case $host in\r
-  *-*-mingw*)\r
-    # gcc leaves a trailing carriage return which upsets mingw\r
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;\r
-  *)\r
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;\r
-  esac\r
-  case $ac_prog in\r
-    # Accept absolute paths.\r
-    [[\\/]]* | ?:[[\\/]]*)\r
-      re_direlt='/[[^/]][[^/]]*/\.\./'\r
-      # Canonicalize the pathname of ld\r
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`\r
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do\r
-       ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`\r
-      done\r
-      test -z "$LD" && LD="$ac_prog"\r
-      ;;\r
-  "")\r
-    # If it fails, then pretend we aren't using GCC.\r
-    ac_prog=ld\r
-    ;;\r
-  *)\r
-    # If it is relative, then search for the first ld in PATH.\r
-    with_gnu_ld=unknown\r
-    ;;\r
-  esac\r
-elif test "$with_gnu_ld" = yes; then\r
-  AC_MSG_CHECKING([for GNU ld])\r
-else\r
-  AC_MSG_CHECKING([for non-GNU ld])\r
-fi\r
-AC_CACHE_VAL(lt_cv_path_LD,\r
-[if test -z "$LD"; then\r
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR\r
-  for ac_dir in $PATH; do\r
-    IFS="$lt_save_ifs"\r
-    test -z "$ac_dir" && ac_dir=.\r
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then\r
-      lt_cv_path_LD="$ac_dir/$ac_prog"\r
-      # Check to see if the program is GNU ld.  I'd rather use --version,\r
-      # but apparently some GNU ld's only accept -v.\r
-      # Break only if it was the GNU/non-GNU ld that we prefer.\r
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in\r
-      *GNU* | *'with BFD'*)\r
-       test "$with_gnu_ld" != no && break\r
-       ;;\r
-      *)\r
-       test "$with_gnu_ld" != yes && break\r
-       ;;\r
-      esac\r
-    fi\r
-  done\r
-  IFS="$lt_save_ifs"\r
-else\r
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.\r
-fi])\r
-LD="$lt_cv_path_LD"\r
-if test -n "$LD"; then\r
-  AC_MSG_RESULT($LD)\r
-else\r
-  AC_MSG_RESULT(no)\r
-fi\r
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])\r
-AC_PROG_LD_GNU\r
-])# AC_PROG_LD\r
-\r
-\r
-# AC_PROG_LD_GNU\r
-# --------------\r
-AC_DEFUN([AC_PROG_LD_GNU],\r
-[AC_REQUIRE([AC_PROG_EGREP])dnl\r
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,\r
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.\r
-case `$LD -v 2>&1 </dev/null` in\r
-*GNU* | *'with BFD'*)\r
-  lt_cv_prog_gnu_ld=yes\r
-  ;;\r
-*)\r
-  lt_cv_prog_gnu_ld=no\r
-  ;;\r
-esac])\r
-with_gnu_ld=$lt_cv_prog_gnu_ld\r
-])# AC_PROG_LD_GNU\r
-\r
-\r
-# AC_PROG_LD_RELOAD_FLAG\r
-# ----------------------\r
-# find reload flag for linker\r
-#   -- PORTME Some linkers may need a different reload flag.\r
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],\r
-[AC_CACHE_CHECK([for $LD option to reload object files],\r
-  lt_cv_ld_reload_flag,\r
-  [lt_cv_ld_reload_flag='-r'])\r
-reload_flag=$lt_cv_ld_reload_flag\r
-case $reload_flag in\r
-"" | " "*) ;;\r
-*) reload_flag=" $reload_flag" ;;\r
-esac\r
-reload_cmds='$LD$reload_flag -o $output$reload_objs'\r
-])# AC_PROG_LD_RELOAD_FLAG\r
-\r
-\r
-# AC_DEPLIBS_CHECK_METHOD\r
-# -----------------------\r
-# how to check for library dependencies\r
-#  -- PORTME fill in with the dynamic library characteristics\r
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],\r
-[AC_CACHE_CHECK([how to recognise dependent libraries],\r
-lt_cv_deplibs_check_method,\r
-[lt_cv_file_magic_cmd='$MAGIC_CMD'\r
-lt_cv_file_magic_test_file=\r
-lt_cv_deplibs_check_method='unknown'\r
-# Need to set the preceding variable on all platforms that support\r
-# interlibrary dependencies.\r
-# 'none' -- dependencies not supported.\r
-# `unknown' -- same as none, but documents that we really don't know.\r
-# 'pass_all' -- all dependencies passed with no checks.\r
-# 'test_compile' -- check by making test program.\r
-# 'file_magic [[regex]]' -- check by looking for files in library path\r
-# which responds to the $file_magic_cmd with a given extended regex.\r
-# If you have `file' or equivalent on your system and you're not sure\r
-# whether `pass_all' will *always* work, you probably want this one.\r
-\r
-case $host_os in\r
-aix4* | aix5*)\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-beos*)\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-bsdi4*)\r
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'\r
-  lt_cv_file_magic_cmd='/usr/bin/file -L'\r
-  lt_cv_file_magic_test_file=/shlib/libc.so\r
-  ;;\r
-\r
-cygwin*)\r
-  # func_win32_libid is a shell function defined in ltmain.sh\r
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'\r
-  lt_cv_file_magic_cmd='func_win32_libid'\r
-  ;;\r
-\r
-mingw* | pw32*)\r
-  # Base MSYS/MinGW do not provide the 'file' command needed by\r
-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.\r
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'\r
-  lt_cv_file_magic_cmd='$OBJDUMP -f'\r
-  ;;\r
-\r
-darwin* | rhapsody*)\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-freebsd* | kfreebsd*-gnu)\r
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then\r
-    case $host_cpu in\r
-    i*86 )\r
-      # Not sure whether the presence of OpenBSD here was a mistake.\r
-      # Let's accept both of them until this is cleared up.\r
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'\r
-      lt_cv_file_magic_cmd=/usr/bin/file\r
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`\r
-      ;;\r
-    esac\r
-  else\r
-    lt_cv_deplibs_check_method=pass_all\r
-  fi\r
-  ;;\r
-\r
-gnu*)\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-hpux10.20* | hpux11*)\r
-  lt_cv_file_magic_cmd=/usr/bin/file\r
-  case "$host_cpu" in\r
-  ia64*)\r
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'\r
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so\r
-    ;;\r
-  hppa*64*)\r
-    [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]']\r
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl\r
-    ;;\r
-  *)\r
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'\r
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl\r
-    ;;\r
-  esac\r
-  ;;\r
-\r
-irix5* | irix6* | nonstopux*)\r
-  case $LD in\r
-  *-32|*"-32 ") libmagic=32-bit;;\r
-  *-n32|*"-n32 ") libmagic=N32;;\r
-  *-64|*"-64 ") libmagic=64-bit;;\r
-  *) libmagic=never-match;;\r
-  esac\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-# This must be Linux ELF.\r
-linux*)\r
-  case $host_cpu in\r
-  alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*)\r
-    lt_cv_deplibs_check_method=pass_all ;;\r
-  *)\r
-    # glibc up to 2.1.1 does not perform some relocations on ARM\r
-    # this will be overridden with pass_all, but let us keep it just in case\r
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;\r
-  esac\r
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-netbsd*)\r
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then\r
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'\r
-  else\r
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'\r
-  fi\r
-  ;;\r
-\r
-newos6*)\r
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'\r
-  lt_cv_file_magic_cmd=/usr/bin/file\r
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so\r
-  ;;\r
-\r
-nto-qnx*)\r
-  lt_cv_deplibs_check_method=unknown\r
-  ;;\r
-\r
-openbsd*)\r
-  lt_cv_file_magic_cmd=/usr/bin/file\r
-  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`\r
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then\r
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'\r
-  else\r
-    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'\r
-  fi\r
-  ;;\r
-\r
-osf3* | osf4* | osf5*)\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-sco3.2v5*)\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-solaris*)\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-\r
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)\r
-  case $host_vendor in\r
-  motorola)\r
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'\r
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`\r
-    ;;\r
-  ncr)\r
-    lt_cv_deplibs_check_method=pass_all\r
-    ;;\r
-  sequent)\r
-    lt_cv_file_magic_cmd='/bin/file'\r
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'\r
-    ;;\r
-  sni)\r
-    lt_cv_file_magic_cmd='/bin/file'\r
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"\r
-    lt_cv_file_magic_test_file=/lib/libc.so\r
-    ;;\r
-  siemens)\r
-    lt_cv_deplibs_check_method=pass_all\r
-    ;;\r
-  esac\r
-  ;;\r
-\r
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)\r
-  lt_cv_deplibs_check_method=pass_all\r
-  ;;\r
-esac\r
-])\r
-file_magic_cmd=$lt_cv_file_magic_cmd\r
-deplibs_check_method=$lt_cv_deplibs_check_method\r
-test -z "$deplibs_check_method" && deplibs_check_method=unknown\r
-])# AC_DEPLIBS_CHECK_METHOD\r
-\r
-\r
-# AC_PROG_NM\r
-# ----------\r
-# find the pathname to a BSD-compatible name lister\r
-AC_DEFUN([AC_PROG_NM],\r
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,\r
-[if test -n "$NM"; then\r
-  # Let the user override the test.\r
-  lt_cv_path_NM="$NM"\r
-else\r
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR\r
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do\r
-    IFS="$lt_save_ifs"\r
-    test -z "$ac_dir" && ac_dir=.\r
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"\r
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then\r
-      # Check to see if the nm accepts a BSD-compat flag.\r
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:\r
-      #   nm: unknown option "B" ignored\r
-      # Tru64's nm complains that /dev/null is an invalid object file\r
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in\r
-      */dev/null* | *'Invalid file or object type'*)\r
-       lt_cv_path_NM="$tmp_nm -B"\r
-       break\r
-        ;;\r
-      *)\r
-       case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in\r
-       */dev/null*)\r
-         lt_cv_path_NM="$tmp_nm -p"\r
-         break\r
-         ;;\r
-       *)\r
-         lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but\r
-         continue # so that we can try to find one that supports BSD flags\r
-         ;;\r
-       esac\r
-      esac\r
-    fi\r
-  done\r
-  IFS="$lt_save_ifs"\r
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm\r
-fi])\r
-NM="$lt_cv_path_NM"\r
-])# AC_PROG_NM\r
-\r
-\r
-# AC_CHECK_LIBM\r
-# -------------\r
-# check for math library\r
-AC_DEFUN([AC_CHECK_LIBM],\r
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl\r
-LIBM=\r
-case $host in\r
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)\r
-  # These system don't have libm, or don't need it\r
-  ;;\r
-*-ncr-sysv4.3*)\r
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")\r
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")\r
-  ;;\r
-*)\r
-  AC_CHECK_LIB(m, cos, LIBM="-lm")\r
-  ;;\r
-esac\r
-])# AC_CHECK_LIBM\r
-\r
-\r
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])\r
-# -----------------------------------\r
-# sets LIBLTDL to the link flags for the libltdl convenience library and\r
-# LTDLINCL to the include flags for the libltdl header and adds\r
-# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL\r
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If\r
-# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will\r
-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with\r
-# '${top_srcdir}/' (note the single quotes!).  If your package is not\r
-# flat and you're not using automake, define top_builddir and\r
-# top_srcdir appropriately in the Makefiles.\r
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],\r
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl\r
-  case $enable_ltdl_convenience in\r
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;\r
-  "") enable_ltdl_convenience=yes\r
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;\r
-  esac\r
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la\r
-  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])\r
-  # For backwards non-gettext consistent compatibility...\r
-  INCLTDL="$LTDLINCL"\r
-])# AC_LIBLTDL_CONVENIENCE\r
-\r
-\r
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])\r
-# -----------------------------------\r
-# sets LIBLTDL to the link flags for the libltdl installable library and\r
-# LTDLINCL to the include flags for the libltdl header and adds\r
-# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL\r
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If\r
-# DIRECTORY is not provided and an installed libltdl is not found, it is\r
-# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'\r
-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single\r
-# quotes!).  If your package is not flat and you're not using automake,\r
-# define top_builddir and top_srcdir appropriately in the Makefiles.\r
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.\r
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],\r
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl\r
-  AC_CHECK_LIB(ltdl, lt_dlinit,\r
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],\r
-  [if test x"$enable_ltdl_install" = xno; then\r
-     AC_MSG_WARN([libltdl not installed, but installation disabled])\r
-   else\r
-     enable_ltdl_install=yes\r
-   fi\r
-  ])\r
-  if test x"$enable_ltdl_install" = x"yes"; then\r
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"\r
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la\r
-    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])\r
-  else\r
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"\r
-    LIBLTDL="-lltdl"\r
-    LTDLINCL=\r
-  fi\r
-  # For backwards non-gettext consistent compatibility...\r
-  INCLTDL="$LTDLINCL"\r
-])# AC_LIBLTDL_INSTALLABLE\r
-\r
-\r
-# AC_LIBTOOL_CXX\r
-# --------------\r
-# enable support for C++ libraries\r
-AC_DEFUN([AC_LIBTOOL_CXX],\r
-[AC_REQUIRE([_LT_AC_LANG_CXX])\r
-])# AC_LIBTOOL_CXX\r
-\r
-\r
-# _LT_AC_LANG_CXX\r
-# ---------------\r
-AC_DEFUN([_LT_AC_LANG_CXX],\r
-[AC_REQUIRE([AC_PROG_CXX])\r
-AC_REQUIRE([AC_PROG_CXXCPP])\r
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])\r
-])# _LT_AC_LANG_CXX\r
-\r
-\r
-# AC_LIBTOOL_F77\r
-# --------------\r
-# enable support for Fortran 77 libraries\r
-AC_DEFUN([AC_LIBTOOL_F77],\r
-[AC_REQUIRE([_LT_AC_LANG_F77])\r
-])# AC_LIBTOOL_F77\r
-\r
-\r
-# _LT_AC_LANG_F77\r
-# ---------------\r
-AC_DEFUN([_LT_AC_LANG_F77],\r
-[AC_REQUIRE([AC_PROG_F77])\r
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])\r
-])# _LT_AC_LANG_F77\r
-\r
-\r
-# AC_LIBTOOL_GCJ\r
-# --------------\r
-# enable support for GCJ libraries\r
-AC_DEFUN([AC_LIBTOOL_GCJ],\r
-[AC_REQUIRE([_LT_AC_LANG_GCJ])\r
-])# AC_LIBTOOL_GCJ\r
-\r
-\r
-# _LT_AC_LANG_GCJ\r
-# ---------------\r
-AC_DEFUN([_LT_AC_LANG_GCJ],\r
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],\r
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],\r
-    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],\r
-      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],\r
-        [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],\r
-          [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])\r
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])\r
-])# _LT_AC_LANG_GCJ\r
-\r
-\r
-# AC_LIBTOOL_RC\r
-# --------------\r
-# enable support for Windows resource files\r
-AC_DEFUN([AC_LIBTOOL_RC],\r
-[AC_REQUIRE([LT_AC_PROG_RC])\r
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])\r
-])# AC_LIBTOOL_RC\r
-\r
-\r
-# AC_LIBTOOL_LANG_C_CONFIG\r
-# ------------------------\r
-# Ensure that the configuration vars for the C compiler are\r
-# suitably defined.  Those variables are subsequently used by\r
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.\r
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])\r
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],\r
-[lt_save_CC="$CC"\r
-AC_LANG_PUSH(C)\r
-\r
-# Source file extension for C test sources.\r
-ac_ext=c\r
-\r
-# Object file extension for compiled C test sources.\r
-objext=o\r
-_LT_AC_TAGVAR(objext, $1)=$objext\r
-\r
-# Code to be used in simple compile tests\r
-lt_simple_compile_test_code="int some_variable = 0;\n"\r
-\r
-# Code to be used in simple link tests\r
-lt_simple_link_test_code='int main(){return(0);}\n'\r
-\r
-_LT_AC_SYS_COMPILER\r
-\r
-#\r
-# Check for any special shared library compilation flags.\r
-#\r
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=\r
-if test "$GCC" = no; then\r
-  case $host_os in\r
-  sco3.2v5*)\r
-    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'\r
-    ;;\r
-  esac\r
-fi\r
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then\r
-  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])\r
-  if echo "$old_CC $old_CFLAGS " | grep "[[    ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[        ]]" >/dev/null; then :\r
-  else\r
-    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])\r
-    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no\r
-  fi\r
-fi\r
-\r
-\r
-#\r
-# Check to make sure the static flag actually works.\r
-#\r
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],\r
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),\r
-  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),\r
-  [],\r
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])\r
-\r
-\r
-## CAVEAT EMPTOR:\r
-## There is no encapsulation within the following macros, do not change\r
-## the running order or otherwise move them around unless you know exactly\r
-## what you are doing...\r
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)\r
-AC_LIBTOOL_PROG_COMPILER_PIC($1)\r
-AC_LIBTOOL_PROG_CC_C_O($1)\r
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)\r
-AC_LIBTOOL_PROG_LD_SHLIBS($1)\r
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)\r
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)\r
-AC_LIBTOOL_SYS_LIB_STRIP\r
-AC_LIBTOOL_DLOPEN_SELF($1)\r
-\r
-# Report which librarie types wil actually be built\r
-AC_MSG_CHECKING([if libtool supports shared libraries])\r
-AC_MSG_RESULT([$can_build_shared])\r
-\r
-AC_MSG_CHECKING([whether to build shared libraries])\r
-test "$can_build_shared" = "no" && enable_shared=no\r
-\r
-# On AIX, shared libraries and static libraries use the same namespace, and\r
-# are all built from PIC.\r
-case "$host_os" in\r
-aix3*)\r
-  test "$enable_shared" = yes && enable_static=no\r
-  if test -n "$RANLIB"; then\r
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"\r
-    postinstall_cmds='$RANLIB $lib'\r
-  fi\r
-  ;;\r
-\r
-aix4* | aix5*)\r
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then\r
-    test "$enable_shared" = yes && enable_static=no\r
-  fi\r
-  ;;\r
-  darwin* | rhapsody*)\r
-  if test "$GCC" = yes; then\r
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-    case "$host_os" in\r
-    rhapsody* | darwin1.[[012]])\r
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'\r
-      ;;\r
-    *) # Darwin 1.3 on\r
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'\r
-      else\r
-        case ${MACOSX_DEPLOYMENT_TARGET} in\r
-          10.[[012]])\r
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'\r
-            ;;\r
-          10.*)\r
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'\r
-            ;;\r
-        esac\r
-      fi\r
-      ;;\r
-    esac\r
-    output_verbose_link_cmd='echo'\r
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'\r
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'\r
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's\r
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'\r
-    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'\r
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes\r
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported\r
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'\r
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-  else\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-  fi\r
-    ;;\r
-esac\r
-AC_MSG_RESULT([$enable_shared])\r
-\r
-AC_MSG_CHECKING([whether to build static libraries])\r
-# Make sure either enable_shared or enable_static is yes.\r
-test "$enable_shared" = yes || enable_static=yes\r
-AC_MSG_RESULT([$enable_static])\r
-\r
-AC_LIBTOOL_CONFIG($1)\r
-\r
-AC_LANG_POP\r
-CC="$lt_save_CC"\r
-])# AC_LIBTOOL_LANG_C_CONFIG\r
-\r
-\r
-# AC_LIBTOOL_LANG_CXX_CONFIG\r
-# --------------------------\r
-# Ensure that the configuration vars for the C compiler are\r
-# suitably defined.  Those variables are subsequently used by\r
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.\r
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])\r
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],\r
-[AC_LANG_PUSH(C++)\r
-AC_REQUIRE([AC_PROG_CXX])\r
-AC_REQUIRE([AC_PROG_CXXCPP])\r
-\r
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=\r
-_LT_AC_TAGVAR(always_export_symbols, $1)=no\r
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=\r
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=\r
-_LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=\r
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=\r
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=\r
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no\r
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no\r
-_LT_AC_TAGVAR(module_cmds, $1)=\r
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=\r
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown\r
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds\r
-_LT_AC_TAGVAR(no_undefined_flag, $1)=\r
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=\r
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no\r
-\r
-# Dependencies to place before and after the object being linked:\r
-_LT_AC_TAGVAR(predep_objects, $1)=\r
-_LT_AC_TAGVAR(postdep_objects, $1)=\r
-_LT_AC_TAGVAR(predeps, $1)=\r
-_LT_AC_TAGVAR(postdeps, $1)=\r
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=\r
-\r
-# Source file extension for C++ test sources.\r
-ac_ext=cc\r
-\r
-# Object file extension for compiled C++ test sources.\r
-objext=o\r
-_LT_AC_TAGVAR(objext, $1)=$objext\r
-\r
-# Code to be used in simple compile tests\r
-lt_simple_compile_test_code="int some_variable = 0;\n"\r
-\r
-# Code to be used in simple link tests\r
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'\r
-\r
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.\r
-_LT_AC_SYS_COMPILER\r
-\r
-# Allow CC to be a program name with arguments.\r
-lt_save_CC=$CC\r
-lt_save_LD=$LD\r
-lt_save_GCC=$GCC\r
-GCC=$GXX\r
-lt_save_with_gnu_ld=$with_gnu_ld\r
-lt_save_path_LD=$lt_cv_path_LD\r
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then\r
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx\r
-else\r
-  unset lt_cv_prog_gnu_ld\r
-fi\r
-if test -n "${lt_cv_path_LDCXX+set}"; then\r
-  lt_cv_path_LD=$lt_cv_path_LDCXX\r
-else\r
-  unset lt_cv_path_LD\r
-fi\r
-test -z "${LDCXX+set}" || LD=$LDCXX\r
-CC=${CXX-"c++"}\r
-compiler=$CC\r
-_LT_AC_TAGVAR(compiler, $1)=$CC\r
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`\r
-\r
-# We don't want -fno-exception wen compiling C++ code, so set the\r
-# no_builtin_flag separately\r
-if test "$GXX" = yes; then\r
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'\r
-else\r
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=\r
-fi\r
-\r
-if test "$GXX" = yes; then\r
-  # Set up default GNU C++ configuration\r
-\r
-  AC_PROG_LD\r
-\r
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the\r
-  # archiving commands below assume that GNU ld is being used.\r
-  if test "$with_gnu_ld" = yes; then\r
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'\r
-    _LT_AC_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'\r
-\r
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'\r
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'\r
-\r
-    # If archive_cmds runs LD, not CC, wlarc should be empty\r
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to\r
-    #     investigate it a little bit more. (MM)\r
-    wlarc='${wl}'\r
-\r
-    # ancient GNU ld didn't support --whole-archive et. al.\r
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \\r
-       grep 'no-whole-archive' > /dev/null; then\r
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'\r
-    else\r
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=\r
-    fi\r
-  else\r
-    with_gnu_ld=no\r
-    wlarc=\r
-\r
-    # A generic and very simple default shared library creation\r
-    # command for GNU C++ for the case where it uses the native\r
-    # linker, instead of GNU ld.  If possible, this setting should\r
-    # overridden to take advantage of the native linker features on\r
-    # the platform it is being used on.\r
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'\r
-  fi\r
-\r
-  # Commands to make compiler produce verbose output that lists\r
-  # what "hidden" libraries, object files and flags are used when\r
-  # linking a shared library.\r
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'\r
-\r
-else\r
-  GXX=no\r
-  with_gnu_ld=no\r
-  wlarc=\r
-fi\r
-\r
-# PORTME: fill in a description of your system's C++ link characteristics\r
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])\r
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes\r
-case $host_os in\r
-  aix3*)\r
-    # FIXME: insert proper C++ library support\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    ;;\r
-  aix4* | aix5*)\r
-    if test "$host_cpu" = ia64; then\r
-      # On IA64, the linker does run time linking by default, so we don't\r
-      # have to do anything special.\r
-      aix_use_runtimelinking=no\r
-      exp_sym_flag='-Bexport'\r
-      no_entry_flag=""\r
-    else\r
-      aix_use_runtimelinking=no\r
-\r
-      # Test if we are trying to use run time linking or normal\r
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we\r
-      # need to do runtime linking.\r
-      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)\r
-       for ld_flag in $LDFLAGS; do\r
-         case $ld_flag in\r
-         *-brtl*)\r
-           aix_use_runtimelinking=yes\r
-           break\r
-           ;;\r
-         esac\r
-       done\r
-      esac\r
-\r
-      exp_sym_flag='-bexport'\r
-      no_entry_flag='-bnoentry'\r
-    fi\r
-\r
-    # When large executables or shared objects are built, AIX ld can\r
-    # have problems creating the table of contents.  If linking a library\r
-    # or program results in "error TOC overflow" add -mminimal-toc to\r
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not\r
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.\r
-\r
-    _LT_AC_TAGVAR(archive_cmds, $1)=''\r
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'\r
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-\r
-    if test "$GXX" = yes; then\r
-      case $host_os in aix4.[012]|aix4.[012].*)\r
-      # We only want to do this on AIX 4.2 and lower, the check\r
-      # below for broken collect2 doesn't work under 4.3+\r
-       collect2name=`${CC} -print-prog-name=collect2`\r
-       if test -f "$collect2name" && \\r
-          strings "$collect2name" | grep resolve_lib_name >/dev/null\r
-       then\r
-         # We have reworked collect2\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-       else\r
-         # We have old collect2\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported\r
-         # It fails to find uninstalled libraries when the uninstalled\r
-         # path is not listed in the libpath.  Setting hardcode_minus_L\r
-         # to unsupported forces relinking\r
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=\r
-       fi\r
-      esac\r
-      shared_flag='-shared'\r
-    else\r
-      # not using gcc\r
-      if test "$host_cpu" = ia64; then\r
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release\r
-       # chokes on -Wl,-G. The following line is correct:\r
-       shared_flag='-G'\r
-      else\r
-       if test "$aix_use_runtimelinking" = yes; then\r
-         shared_flag='${wl}-G'\r
-       else\r
-         shared_flag='${wl}-bM:SRE'\r
-       fi\r
-      fi\r
-    fi\r
-\r
-    # It seems that -bexpall does not export symbols beginning with\r
-    # underscore (_), so it is better to generate a list of symbols to export.\r
-    _LT_AC_TAGVAR(always_export_symbols, $1)=yes\r
-    if test "$aix_use_runtimelinking" = yes; then\r
-      # Warning - without using the other runtime loading flags (-brtl),\r
-      # -berok will link without error, but may produce a broken library.\r
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'\r
-      # Determine the default libpath from the value encoded in an empty executable.\r
-      _LT_AC_SYS_LIBPATH_AIX\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"\r
-\r
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"\r
-     else\r
-      if test "$host_cpu" = ia64; then\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"\r
-      else\r
-       # Determine the default libpath from the value encoded in an empty executable.\r
-       _LT_AC_SYS_LIBPATH_AIX\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"\r
-       # Warning - without using the other run time loading flags,\r
-       # -berok will link without error, but may produce a broken library.\r
-       _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'\r
-       # -bexpall does not export symbols beginning with underscore (_)\r
-       _LT_AC_TAGVAR(always_export_symbols, $1)=yes\r
-       # Exported symbols can be pulled into shared objects from archives\r
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '\r
-       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes\r
-       # This is similar to how AIX traditionally builds it's shared libraries.\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'\r
-      fi\r
-    fi\r
-    ;;\r
-  chorus*)\r
-    case $cc_basename in\r
-      *)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-    esac\r
-    ;;\r
-\r
-  cygwin* | mingw* | pw32*)\r
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,\r
-    # as there is no search path for DLLs.\r
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported\r
-    _LT_AC_TAGVAR(always_export_symbols, $1)=no\r
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes\r
-\r
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'\r
-      # If the export-symbols file already is a .def file (1st line\r
-      # is EXPORTS), use it as is; otherwise, prepend...\r
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then\r
-       cp $export_symbols $output_objdir/$soname.def;\r
-      else\r
-       echo EXPORTS > $output_objdir/$soname.def;\r
-       cat $export_symbols >> $output_objdir/$soname.def;\r
-      fi~\r
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'\r
-    else\r
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    fi\r
-  ;;\r
-\r
-  darwin* | rhapsody*)\r
-  if test "$GXX" = yes; then\r
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-    case "$host_os" in\r
-    rhapsody* | darwin1.[[012]])\r
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'\r
-      ;;\r
-    *) # Darwin 1.3 on\r
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'\r
-      else\r
-        case ${MACOSX_DEPLOYMENT_TARGET} in\r
-          10.[[012]])\r
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'\r
-            ;;\r
-          10.*)\r
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'\r
-            ;;\r
-        esac\r
-      fi\r
-      ;;\r
-    esac\r
-    lt_int_apple_cc_single_mod=no\r
-    output_verbose_link_cmd='echo'\r
-    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then\r
-      lt_int_apple_cc_single_mod=yes\r
-    fi\r
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'\r
-    else\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'\r
-    fi\r
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'\r
-\r
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's\r
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then\r
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'\r
-    else\r
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'\r
-    fi\r
-    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'\r
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes\r
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported\r
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'\r
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-  else\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-  fi\r
-    ;;\r
-\r
-  dgux*)\r
-    case $cc_basename in\r
-      ec++)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      ghcx)\r
-       # Green Hills C++ Compiler\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      *)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-    esac\r
-    ;;\r
-  freebsd[12]*)\r
-    # C++ shared libraries reported to be fairly broken before switch to ELF\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    ;;\r
-  freebsd-elf*)\r
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-    ;;\r
-  freebsd* | kfreebsd*-gnu)\r
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF\r
-    # conventions\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=yes\r
-    ;;\r
-  gnu*)\r
-    ;;\r
-  hpux9*)\r
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'\r
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'\r
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,\r
-                               # but as the default\r
-                               # location of the library.\r
-\r
-    case $cc_basename in\r
-    CC)\r
-      # FIXME: insert proper C++ library support\r
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      ;;\r
-    aCC)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'\r
-      # Commands to make compiler produce verbose output that lists\r
-      # what "hidden" libraries, object files and flags are used when\r
-      # linking a shared library.\r
-      #\r
-      # There doesn't appear to be a way to prevent this compiler from\r
-      # explicitly linking system object files so we need to strip them\r
-      # from the output so that they don't get included in the library\r
-      # dependencies.\r
-      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 $list'\r
-      ;;\r
-    *)\r
-      if test "$GXX" = yes; then\r
-        _LT_AC_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'\r
-      else\r
-        # FIXME: insert proper C++ library support\r
-        _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      fi\r
-      ;;\r
-    esac\r
-    ;;\r
-  hpux10*|hpux11*)\r
-    if test $with_gnu_ld = no; then\r
-      case "$host_cpu" in\r
-      hppa*64*)\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'\r
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-        ;;\r
-      ia64*)\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-        ;;\r
-      *)\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'\r
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'\r
-        ;;\r
-      esac\r
-    fi\r
-    case "$host_cpu" in\r
-    hppa*64*)\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-    ia64*)\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,\r
-                                             # but as the default\r
-                                             # location of the library.\r
-      ;;\r
-    *)\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,\r
-                                             # but as the default\r
-                                             # location of the library.\r
-      ;;\r
-    esac\r
-\r
-    case $cc_basename in\r
-      CC)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      aCC)\r
-       case "$host_cpu" in\r
-       hppa*64*|ia64*)\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'\r
-         ;;\r
-       *)\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'\r
-         ;;\r
-       esac\r
-       # Commands to make compiler produce verbose output that lists\r
-       # what "hidden" libraries, object files and flags are used when\r
-       # linking a shared library.\r
-       #\r
-       # There doesn't appear to be a way to prevent this compiler from\r
-       # explicitly linking system object files so we need to strip them\r
-       # from the output so that they don't get included in the library\r
-       # dependencies.\r
-       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 $list'\r
-       ;;\r
-      *)\r
-       if test "$GXX" = yes; then\r
-         if test $with_gnu_ld = no; then\r
-           case "$host_cpu" in\r
-           ia64*|hppa*64*)\r
-             _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'\r
-             ;;\r
-           *)\r
-             _LT_AC_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'\r
-             ;;\r
-           esac\r
-         fi\r
-       else\r
-         # FIXME: insert proper C++ library support\r
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       fi\r
-       ;;\r
-    esac\r
-    ;;\r
-  irix5* | irix6*)\r
-    case $cc_basename in\r
-      CC)\r
-       # SGI C++\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'\r
-\r
-       # Archives containing C++ object files must be created using\r
-       # "CC -ar", where "CC" is the IRIX C++ compiler.  This is\r
-       # necessary to make sure instantiated templates are included\r
-       # in the archive.\r
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'\r
-       ;;\r
-      *)\r
-       if test "$GXX" = yes; then\r
-         if test "$with_gnu_ld" = no; then\r
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'\r
-         else\r
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'\r
-         fi\r
-       fi\r
-       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-       ;;\r
-    esac\r
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'\r
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-    ;;\r
-  linux*)\r
-    case $cc_basename in\r
-      KCC)\r
-       # Kuck and Associates, Inc. (KAI) C++ Compiler\r
-\r
-       # KCC will only create a shared library if the output file\r
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library\r
-       # to its proper name (with version) after linking.\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'\r
-       # Commands to make compiler produce verbose output that lists\r
-       # what "hidden" libraries, object files and flags are used when\r
-       # linking a shared library.\r
-       #\r
-       # There doesn't appear to be a way to prevent this compiler from\r
-       # explicitly linking system object files so we need to strip them\r
-       # from the output so that they don't get included in the library\r
-       # dependencies.\r
-       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 $list'\r
-\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'\r
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'\r
-\r
-       # Archives containing C++ object files must be created using\r
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.\r
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'\r
-       ;;\r
-      icpc)\r
-       # Intel C++\r
-       with_gnu_ld=yes\r
-       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'\r
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'\r
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'\r
-       ;;\r
-      cxx)\r
-       # Compaq C++\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'\r
-\r
-       runpath_var=LD_RUN_PATH\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'\r
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-\r
-       # Commands to make compiler produce verbose output that lists\r
-       # what "hidden" libraries, object files and flags are used when\r
-       # linking a shared library.\r
-       #\r
-       # There doesn't appear to be a way to prevent this compiler from\r
-       # explicitly linking system object files so we need to strip them\r
-       # from the output so that they don't get included in the library\r
-       # dependencies.\r
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $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; echo $list'\r
-       ;;\r
-    esac\r
-    ;;\r
-  lynxos*)\r
-    # FIXME: insert proper C++ library support\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    ;;\r
-  m88k*)\r
-    # FIXME: insert proper C++ library support\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    ;;\r
-  mvs*)\r
-    case $cc_basename in\r
-      cxx)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      *)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-    esac\r
-    ;;\r
-  netbsd*)\r
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'\r
-      wlarc=\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-    fi\r
-    # Workaround some broken pre-1.5 toolchains\r
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'\r
-    ;;\r
-  osf3*)\r
-    case $cc_basename in\r
-      KCC)\r
-       # Kuck and Associates, Inc. (KAI) C++ Compiler\r
-\r
-       # KCC will only create a shared library if the output file\r
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library\r
-       # to its proper name (with version) after linking.\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'\r
-\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'\r
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-\r
-       # Archives containing C++ object files must be created using\r
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.\r
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'\r
-\r
-       ;;\r
-      RCC)\r
-       # Rational C++ 2.4.1\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      cxx)\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'\r
-\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'\r
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-\r
-       # Commands to make compiler produce verbose output that lists\r
-       # what "hidden" libraries, object files and flags are used when\r
-       # linking a shared library.\r
-       #\r
-       # There doesn't appear to be a way to prevent this compiler from\r
-       # explicitly linking system object files so we need to strip them\r
-       # from the output so that they don't get included in the library\r
-       # dependencies.\r
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $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; echo $list'\r
-       ;;\r
-      *)\r
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then\r
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'\r
-         _LT_AC_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 ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'\r
-\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'\r
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-\r
-         # Commands to make compiler produce verbose output that lists\r
-         # what "hidden" libraries, object files and flags are used when\r
-         # linking a shared library.\r
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'\r
-\r
-       else\r
-         # FIXME: insert proper C++ library support\r
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       fi\r
-       ;;\r
-    esac\r
-    ;;\r
-  osf4* | osf5*)\r
-    case $cc_basename in\r
-      KCC)\r
-       # Kuck and Associates, Inc. (KAI) C++ Compiler\r
-\r
-       # KCC will only create a shared library if the output file\r
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library\r
-       # to its proper name (with version) after linking.\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'\r
-\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'\r
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-\r
-       # Archives containing C++ object files must be created using\r
-       # the KAI C++ compiler.\r
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'\r
-       ;;\r
-      RCC)\r
-       # Rational C++ 2.4.1\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      cxx)\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~\r
-         echo "-hidden">> $lib.exp~\r
-         $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 $objdir/so_locations -o $lib~\r
-         $rm $lib.exp'\r
-\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'\r
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-\r
-       # Commands to make compiler produce verbose output that lists\r
-       # what "hidden" libraries, object files and flags are used when\r
-       # linking a shared library.\r
-       #\r
-       # There doesn't appear to be a way to prevent this compiler from\r
-       # explicitly linking system object files so we need to strip them\r
-       # from the output so that they don't get included in the library\r
-       # dependencies.\r
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $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; echo $list'\r
-       ;;\r
-      *)\r
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then\r
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'\r
-        _LT_AC_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` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'\r
-\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'\r
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-\r
-         # Commands to make compiler produce verbose output that lists\r
-         # what "hidden" libraries, object files and flags are used when\r
-         # linking a shared library.\r
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'\r
-\r
-       else\r
-         # FIXME: insert proper C++ library support\r
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       fi\r
-       ;;\r
-    esac\r
-    ;;\r
-  psos*)\r
-    # FIXME: insert proper C++ library support\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    ;;\r
-  sco*)\r
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-    case $cc_basename in\r
-      CC)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      *)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-    esac\r
-    ;;\r
-  sunos4*)\r
-    case $cc_basename in\r
-      CC)\r
-       # Sun C++ 4.x\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      lcc)\r
-       # Lucid\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      *)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-    esac\r
-    ;;\r
-  solaris*)\r
-    case $cc_basename in\r
-      CC)\r
-       # Sun C++ 4.2, 5.x and Centerline C++\r
-       _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~\r
-       $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'\r
-\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'\r
-       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-       case $host_os in\r
-         solaris2.[0-5] | solaris2.[0-5].*) ;;\r
-         *)\r
-           # The C++ compiler is used as linker so we must use $wl\r
-           # flag to pass the commands to the underlying system\r
-           # linker.\r
-           # Supported since Solaris 2.6 (maybe 2.5.1?)\r
-           _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'\r
-           ;;\r
-       esac\r
-       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-\r
-       # Commands to make compiler produce verbose output that lists\r
-       # what "hidden" libraries, object files and flags are used when\r
-       # linking a shared library.\r
-       #\r
-       # There doesn't appear to be a way to prevent this compiler from\r
-       # explicitly linking system object files so we need to strip them\r
-       # from the output so that they don't get included in the library\r
-       # dependencies.\r
-       output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'\r
-\r
-       # Archives containing C++ object files must be created using\r
-       # "CC -xar", where "CC" is the Sun C++ compiler.  This is\r
-       # necessary to make sure instantiated templates are included\r
-       # in the archive.\r
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'\r
-       ;;\r
-      gcx)\r
-       # Green Hills C++ Compiler\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'\r
-\r
-       # The C++ compiler must be used to create the archive.\r
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'\r
-       ;;\r
-      *)\r
-       # GNU C++ compiler with Solaris linker\r
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then\r
-         _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'\r
-         if $CC --version | grep -v '^2\.7' > /dev/null; then\r
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'\r
-           _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~\r
-               $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'\r
-\r
-           # Commands to make compiler produce verbose output that lists\r
-           # what "hidden" libraries, object files and flags are used when\r
-           # linking a shared library.\r
-           output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""\r
-         else\r
-           # g++ 2.7 appears to require `-G' NOT `-shared' on this\r
-           # platform.\r
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'\r
-           _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~\r
-               $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'\r
-\r
-           # Commands to make compiler produce verbose output that lists\r
-           # what "hidden" libraries, object files and flags are used when\r
-           # linking a shared library.\r
-           output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""\r
-         fi\r
-\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'\r
-       fi\r
-       ;;\r
-    esac\r
-    ;;\r
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)\r
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-    ;;\r
-  tandem*)\r
-    case $cc_basename in\r
-      NCC)\r
-       # NonStop-UX NCC 3.20\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-      *)\r
-       # FIXME: insert proper C++ library support\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       ;;\r
-    esac\r
-    ;;\r
-  vxworks*)\r
-    # FIXME: insert proper C++ library support\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    ;;\r
-  *)\r
-    # FIXME: insert proper C++ library support\r
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    ;;\r
-esac\r
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])\r
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no\r
-\r
-_LT_AC_TAGVAR(GCC, $1)="$GXX"\r
-_LT_AC_TAGVAR(LD, $1)="$LD"\r
-\r
-## CAVEAT EMPTOR:\r
-## There is no encapsulation within the following macros, do not change\r
-## the running order or otherwise move them around unless you know exactly\r
-## what you are doing...\r
-AC_LIBTOOL_POSTDEP_PREDEP($1)\r
-AC_LIBTOOL_PROG_COMPILER_PIC($1)\r
-AC_LIBTOOL_PROG_CC_C_O($1)\r
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)\r
-AC_LIBTOOL_PROG_LD_SHLIBS($1)\r
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)\r
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)\r
-AC_LIBTOOL_SYS_LIB_STRIP\r
-AC_LIBTOOL_DLOPEN_SELF($1)\r
-\r
-AC_LIBTOOL_CONFIG($1)\r
-\r
-AC_LANG_POP\r
-CC=$lt_save_CC\r
-LDCXX=$LD\r
-LD=$lt_save_LD\r
-GCC=$lt_save_GCC\r
-with_gnu_ldcxx=$with_gnu_ld\r
-with_gnu_ld=$lt_save_with_gnu_ld\r
-lt_cv_path_LDCXX=$lt_cv_path_LD\r
-lt_cv_path_LD=$lt_save_path_LD\r
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld\r
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld\r
-])# AC_LIBTOOL_LANG_CXX_CONFIG\r
-\r
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])\r
-# ------------------------\r
-# Figure out "hidden" library dependencies from verbose\r
-# compiler output when linking a shared library.\r
-# Parse the compiler output and extract the necessary\r
-# objects, libraries and library flags.\r
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[\r
-dnl we can't use the lt_simple_compile_test_code here,\r
-dnl because it contains code intended for an executable,\r
-dnl not a library.  It's possible we should let each\r
-dnl tag define a new lt_????_link_test_code variable,\r
-dnl but it's only used here...\r
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF\r
-int a;\r
-void foo (void) { a = 0; }\r
-EOF\r
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF\r
-class Foo\r
-{\r
-public:\r
-  Foo (void) { a = 0; }\r
-private:\r
-  int a;\r
-};\r
-EOF\r
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF\r
-      subroutine foo\r
-      implicit none\r
-      integer*4 a\r
-      a=0\r
-      return\r
-      end\r
-EOF\r
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF\r
-public class foo {\r
-  private int a;\r
-  public void bar (void) {\r
-    a = 0;\r
-  }\r
-};\r
-EOF\r
-])\r
-dnl Parse the compiler output and extract the necessary\r
-dnl objects, libraries and library flags.\r
-if AC_TRY_EVAL(ac_compile); then\r
-  # Parse the compiler output and extract the necessary\r
-  # objects, libraries and library flags.\r
-\r
-  # Sentinel used to keep track of whether or not we are before\r
-  # the conftest object file.\r
-  pre_test_object_deps_done=no\r
-\r
-  # The `*' in the case matches for architectures that use `case' in\r
-  # $output_verbose_cmd can trigger glob expansion during the loop\r
-  # eval without this substitution.\r
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"\r
-\r
-  for p in `eval $output_verbose_link_cmd`; do\r
-    case $p in\r
-\r
-    -L* | -R* | -l*)\r
-       # Some compilers place space between "-{L,R}" and the path.\r
-       # Remove the space.\r
-       if test $p = "-L" \\r
-         || test $p = "-R"; then\r
-        prev=$p\r
-        continue\r
-       else\r
-        prev=\r
-       fi\r
-\r
-       if test "$pre_test_object_deps_done" = no; then\r
-        case $p in\r
-        -L* | -R*)\r
-          # Internal compiler library paths should come after those\r
-          # provided the user.  The postdeps already come after the\r
-          # user supplied libs so there is no need to process them.\r
-          if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then\r
-            _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"\r
-          else\r
-            _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"\r
-          fi\r
-          ;;\r
-        # The "-l" case would never come before the object being\r
-        # linked, so don't bother handling this case.\r
-        esac\r
-       else\r
-        if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then\r
-          _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"\r
-        else\r
-          _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"\r
-        fi\r
-       fi\r
-       ;;\r
-\r
-    *.$objext)\r
-       # This assumes that the test object file only shows up\r
-       # once in the compiler output.\r
-       if test "$p" = "conftest.$objext"; then\r
-        pre_test_object_deps_done=yes\r
-        continue\r
-       fi\r
-\r
-       if test "$pre_test_object_deps_done" = no; then\r
-        if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then\r
-          _LT_AC_TAGVAR(predep_objects, $1)="$p"\r
-        else\r
-          _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"\r
-        fi\r
-       else\r
-        if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then\r
-          _LT_AC_TAGVAR(postdep_objects, $1)="$p"\r
-        else\r
-          _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"\r
-        fi\r
-       fi\r
-       ;;\r
-\r
-    *) ;; # Ignore the rest.\r
-\r
-    esac\r
-  done\r
-\r
-  # Clean up.\r
-  rm -f a.out a.exe\r
-else\r
-  echo "libtool.m4: error: problem compiling $1 test program"\r
-fi\r
-\r
-$rm -f confest.$objext\r
-\r
-case " $_LT_AC_TAGVAR(postdeps, $1) " in\r
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;\r
-esac\r
-])# AC_LIBTOOL_POSTDEP_PREDEP\r
-\r
-# AC_LIBTOOL_LANG_F77_CONFIG\r
-# ------------------------\r
-# Ensure that the configuration vars for the C compiler are\r
-# suitably defined.  Those variables are subsequently used by\r
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.\r
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])\r
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],\r
-[AC_REQUIRE([AC_PROG_F77])\r
-AC_LANG_PUSH(Fortran 77)\r
-\r
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=\r
-_LT_AC_TAGVAR(always_export_symbols, $1)=no\r
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=\r
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=\r
-_LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=\r
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=\r
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=\r
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no\r
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no\r
-_LT_AC_TAGVAR(module_cmds, $1)=\r
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=\r
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown\r
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds\r
-_LT_AC_TAGVAR(no_undefined_flag, $1)=\r
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=\r
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no\r
-\r
-# Source file extension for f77 test sources.\r
-ac_ext=f\r
-\r
-# Object file extension for compiled f77 test sources.\r
-objext=o\r
-_LT_AC_TAGVAR(objext, $1)=$objext\r
-\r
-# Code to be used in simple compile tests\r
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"\r
-\r
-# Code to be used in simple link tests\r
-lt_simple_link_test_code="      program t\n      end\n"\r
-\r
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.\r
-_LT_AC_SYS_COMPILER\r
-\r
-# Allow CC to be a program name with arguments.\r
-lt_save_CC="$CC"\r
-CC=${F77-"f77"}\r
-compiler=$CC\r
-_LT_AC_TAGVAR(compiler, $1)=$CC\r
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`\r
-\r
-AC_MSG_CHECKING([if libtool supports shared libraries])\r
-AC_MSG_RESULT([$can_build_shared])\r
-\r
-AC_MSG_CHECKING([whether to build shared libraries])\r
-test "$can_build_shared" = "no" && enable_shared=no\r
-\r
-# On AIX, shared libraries and static libraries use the same namespace, and\r
-# are all built from PIC.\r
-case "$host_os" in\r
-aix3*)\r
-  test "$enable_shared" = yes && enable_static=no\r
-  if test -n "$RANLIB"; then\r
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"\r
-    postinstall_cmds='$RANLIB $lib'\r
-  fi\r
-  ;;\r
-aix4* | aix5*)\r
-  test "$enable_shared" = yes && enable_static=no\r
-  ;;\r
-esac\r
-AC_MSG_RESULT([$enable_shared])\r
-\r
-AC_MSG_CHECKING([whether to build static libraries])\r
-# Make sure either enable_shared or enable_static is yes.\r
-test "$enable_shared" = yes || enable_static=yes\r
-AC_MSG_RESULT([$enable_static])\r
-\r
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no\r
-\r
-_LT_AC_TAGVAR(GCC, $1)="$G77"\r
-_LT_AC_TAGVAR(LD, $1)="$LD"\r
-\r
-AC_LIBTOOL_PROG_COMPILER_PIC($1)\r
-AC_LIBTOOL_PROG_CC_C_O($1)\r
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)\r
-AC_LIBTOOL_PROG_LD_SHLIBS($1)\r
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)\r
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)\r
-AC_LIBTOOL_SYS_LIB_STRIP\r
-\r
-\r
-AC_LIBTOOL_CONFIG($1)\r
-\r
-AC_LANG_POP\r
-CC="$lt_save_CC"\r
-])# AC_LIBTOOL_LANG_F77_CONFIG\r
-\r
-\r
-# AC_LIBTOOL_LANG_GCJ_CONFIG\r
-# --------------------------\r
-# Ensure that the configuration vars for the C compiler are\r
-# suitably defined.  Those variables are subsequently used by\r
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.\r
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])\r
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],\r
-[AC_LANG_SAVE\r
-\r
-# Source file extension for Java test sources.\r
-ac_ext=java\r
-\r
-# Object file extension for compiled Java test sources.\r
-objext=o\r
-_LT_AC_TAGVAR(objext, $1)=$objext\r
-\r
-# Code to be used in simple compile tests\r
-lt_simple_compile_test_code="class foo {}\n"\r
-\r
-# Code to be used in simple link tests\r
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'\r
-\r
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.\r
-_LT_AC_SYS_COMPILER\r
-\r
-# Allow CC to be a program name with arguments.\r
-lt_save_CC="$CC"\r
-CC=${GCJ-"gcj"}\r
-compiler=$CC\r
-_LT_AC_TAGVAR(compiler, $1)=$CC\r
-\r
-# GCJ did not exist at the time GCC didn't implicitly link libc in.\r
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-\r
-## CAVEAT EMPTOR:\r
-## There is no encapsulation within the following macros, do not change\r
-## the running order or otherwise move them around unless you know exactly\r
-## what you are doing...\r
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)\r
-AC_LIBTOOL_PROG_COMPILER_PIC($1)\r
-AC_LIBTOOL_PROG_CC_C_O($1)\r
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)\r
-AC_LIBTOOL_PROG_LD_SHLIBS($1)\r
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)\r
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)\r
-AC_LIBTOOL_SYS_LIB_STRIP\r
-AC_LIBTOOL_DLOPEN_SELF($1)\r
-\r
-AC_LIBTOOL_CONFIG($1)\r
-\r
-AC_LANG_RESTORE\r
-CC="$lt_save_CC"\r
-])# AC_LIBTOOL_LANG_GCJ_CONFIG\r
-\r
-\r
-# AC_LIBTOOL_LANG_RC_CONFIG\r
-# --------------------------\r
-# Ensure that the configuration vars for the Windows resource compiler are\r
-# suitably defined.  Those variables are subsequently used by\r
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.\r
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])\r
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],\r
-[AC_LANG_SAVE\r
-\r
-# Source file extension for RC test sources.\r
-ac_ext=rc\r
-\r
-# Object file extension for compiled RC test sources.\r
-objext=o\r
-_LT_AC_TAGVAR(objext, $1)=$objext\r
-\r
-# Code to be used in simple compile tests\r
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'\r
-\r
-# Code to be used in simple link tests\r
-lt_simple_link_test_code="$lt_simple_compile_test_code"\r
-\r
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.\r
-_LT_AC_SYS_COMPILER\r
-\r
-# Allow CC to be a program name with arguments.\r
-lt_save_CC="$CC"\r
-CC=${RC-"windres"}\r
-compiler=$CC\r
-_LT_AC_TAGVAR(compiler, $1)=$CC\r
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes\r
-\r
-AC_LIBTOOL_CONFIG($1)\r
-\r
-AC_LANG_RESTORE\r
-CC="$lt_save_CC"\r
-])# AC_LIBTOOL_LANG_RC_CONFIG\r
-\r
-\r
-# AC_LIBTOOL_CONFIG([TAGNAME])\r
-# ----------------------------\r
-# If TAGNAME is not passed, then create an initial libtool script\r
-# with a default configuration from the untagged config vars.  Otherwise\r
-# add code to config.status for appending the configuration named by\r
-# TAGNAME from the matching tagged config vars.\r
-AC_DEFUN([AC_LIBTOOL_CONFIG],\r
-[# The else clause should only fire when bootstrapping the\r
-# libtool distribution, otherwise you forgot to ship ltmain.sh\r
-# with your package, and you will get complaints that there are\r
-# no rules to generate ltmain.sh.\r
-if test -f "$ltmain"; then\r
-  # See if we are running on zsh, and set the options which allow our commands through\r
-  # without removal of \ escapes.\r
-  if test -n "${ZSH_VERSION+set}" ; then\r
-    setopt NO_GLOB_SUBST\r
-  fi\r
-  # Now quote all the things that may contain metacharacters while being\r
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the\r
-  # variables and quote the copies for generation of the libtool script.\r
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \\r
-    SED SHELL STRIP \\r
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \\r
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \\r
-    deplibs_check_method reload_flag reload_cmds need_locks \\r
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \\r
-    lt_cv_sys_global_symbol_to_c_name_address \\r
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \\r
-    old_postinstall_cmds old_postuninstall_cmds \\r
-    _LT_AC_TAGVAR(compiler, $1) \\r
-    _LT_AC_TAGVAR(CC, $1) \\r
-    _LT_AC_TAGVAR(LD, $1) \\r
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \\r
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \\r
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \\r
-    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \\r
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \\r
-    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \\r
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \\r
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \\r
-    _LT_AC_TAGVAR(old_archive_cmds, $1) \\r
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \\r
-    _LT_AC_TAGVAR(predep_objects, $1) \\r
-    _LT_AC_TAGVAR(postdep_objects, $1) \\r
-    _LT_AC_TAGVAR(predeps, $1) \\r
-    _LT_AC_TAGVAR(postdeps, $1) \\r
-    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \\r
-    _LT_AC_TAGVAR(archive_cmds, $1) \\r
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \\r
-    _LT_AC_TAGVAR(postinstall_cmds, $1) \\r
-    _LT_AC_TAGVAR(postuninstall_cmds, $1) \\r
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \\r
-    _LT_AC_TAGVAR(allow_undefined_flag, $1) \\r
-    _LT_AC_TAGVAR(no_undefined_flag, $1) \\r
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) \\r
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \\r
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \\r
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \\r
-    _LT_AC_TAGVAR(hardcode_automatic, $1) \\r
-    _LT_AC_TAGVAR(module_cmds, $1) \\r
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) \\r
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \\r
-    _LT_AC_TAGVAR(exclude_expsyms, $1) \\r
-    _LT_AC_TAGVAR(include_expsyms, $1); do\r
-\r
-    case $var in\r
-    _LT_AC_TAGVAR(old_archive_cmds, $1) | \\r
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \\r
-    _LT_AC_TAGVAR(archive_cmds, $1) | \\r
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \\r
-    _LT_AC_TAGVAR(module_cmds, $1) | \\r
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \\r
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \\r
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \\r
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \\r
-    postinstall_cmds | postuninstall_cmds | \\r
-    old_postinstall_cmds | old_postuninstall_cmds | \\r
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)\r
-      # Double-quote double-evaled strings.\r
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""\r
-      ;;\r
-    *)\r
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""\r
-      ;;\r
-    esac\r
-  done\r
-\r
-  case $lt_echo in\r
-  *'\[$]0 --fallback-echo"')\r
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`\r
-    ;;\r
-  esac\r
-\r
-ifelse([$1], [],\r
-  [cfgfile="${ofile}T"\r
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15\r
-  $rm -f "$cfgfile"\r
-  AC_MSG_NOTICE([creating $ofile])],\r
-  [cfgfile="$ofile"])\r
-\r
-  cat <<__EOF__ >> "$cfgfile"\r
-ifelse([$1], [],\r
-[#! $SHELL\r
-\r
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.\r
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)\r
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.\r
-#\r
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001\r
-# Free Software Foundation, Inc.\r
-#\r
-# This file is part of GNU Libtool:\r
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996\r
-#\r
-# This program is free software; you can redistribute it and/or modify\r
-# it under the terms of the GNU General Public License as published by\r
-# the Free Software Foundation; either version 2 of the License, or\r
-# (at your option) any later version.\r
-#\r
-# This program is distributed in the hope that it will be useful, but\r
-# WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-# General Public License for more details.\r
-#\r
-# You should have received a copy of the GNU General Public License\r
-# along with this program; if not, write to the Free Software\r
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r
-#\r
-# As a special exception to the GNU General Public License, if you\r
-# distribute this file as part of a program that contains a\r
-# configuration script generated by Autoconf, you may include it under\r
-# the same distribution terms that you use for the rest of that program.\r
-\r
-# A sed program that does not truncate output.\r
-SED=$lt_SED\r
-\r
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.\r
-Xsed="$SED -e s/^X//"\r
-\r
-# The HP-UX ksh and POSIX shell print the target directory to stdout\r
-# if CDPATH is set.\r
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi\r
-\r
-# The names of the tagged configurations supported by this script.\r
-available_tags=\r
-\r
-# ### BEGIN LIBTOOL CONFIG],\r
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])\r
-\r
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:\r
-\r
-# Shell to use when invoking shell scripts.\r
-SHELL=$lt_SHELL\r
-\r
-# Whether or not to build shared libraries.\r
-build_libtool_libs=$enable_shared\r
-\r
-# Whether or not to build static libraries.\r
-build_old_libs=$enable_static\r
-\r
-# Whether or not to add -lc for building shared libraries.\r
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)\r
-\r
-# Whether or not to disallow shared libs when runtime libs are static\r
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)\r
-\r
-# Whether or not to optimize for fast installation.\r
-fast_install=$enable_fast_install\r
-\r
-# The host system.\r
-host_alias=$host_alias\r
-host=$host\r
-\r
-# An echo program that does not interpret backslashes.\r
-echo=$lt_echo\r
-\r
-# The archiver.\r
-AR=$lt_AR\r
-AR_FLAGS=$lt_AR_FLAGS\r
-\r
-# A C compiler.\r
-LTCC=$lt_LTCC\r
-\r
-# A language-specific compiler.\r
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)\r
-\r
-# Is the compiler the GNU C compiler?\r
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)\r
-\r
-# An ERE matcher.\r
-EGREP=$lt_EGREP\r
-\r
-# The linker used to build libraries.\r
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)\r
-\r
-# Whether we need hard or soft links.\r
-LN_S=$lt_LN_S\r
-\r
-# A BSD-compatible nm program.\r
-NM=$lt_NM\r
-\r
-# A symbol stripping program\r
-STRIP=$lt_STRIP\r
-\r
-# Used to examine libraries when file_magic_cmd begins "file"\r
-MAGIC_CMD=$MAGIC_CMD\r
-\r
-# Used on cygwin: DLL creation program.\r
-DLLTOOL="$DLLTOOL"\r
-\r
-# Used on cygwin: object dumper.\r
-OBJDUMP="$OBJDUMP"\r
-\r
-# Used on cygwin: assembler.\r
-AS="$AS"\r
-\r
-# The name of the directory that contains temporary libtool files.\r
-objdir=$objdir\r
-\r
-# How to create reloadable object files.\r
-reload_flag=$lt_reload_flag\r
-reload_cmds=$lt_reload_cmds\r
-\r
-# How to pass a linker flag through the compiler.\r
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)\r
-\r
-# Object file suffix (normally "o").\r
-objext="$ac_objext"\r
-\r
-# Old archive suffix (normally "a").\r
-libext="$libext"\r
-\r
-# Shared library suffix (normally ".so").\r
-shrext_cmds='$shrext_cmds'\r
-\r
-# Executable file suffix (normally "").\r
-exeext="$exeext"\r
-\r
-# Additional compiler flags for building library objects.\r
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)\r
-pic_mode=$pic_mode\r
-\r
-# What is the maximum length of a command?\r
-max_cmd_len=$lt_cv_sys_max_cmd_len\r
-\r
-# Does compiler simultaneously support -c and -o options?\r
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)\r
-\r
-# Must we lock files when doing compilation ?\r
-need_locks=$lt_need_locks\r
-\r
-# Do we need the lib prefix for modules?\r
-need_lib_prefix=$need_lib_prefix\r
-\r
-# Do we need a version for libraries?\r
-need_version=$need_version\r
-\r
-# Whether dlopen is supported.\r
-dlopen_support=$enable_dlopen\r
-\r
-# Whether dlopen of programs is supported.\r
-dlopen_self=$enable_dlopen_self\r
-\r
-# Whether dlopen of statically linked programs is supported.\r
-dlopen_self_static=$enable_dlopen_self_static\r
-\r
-# Compiler flag to prevent dynamic linking.\r
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\r
-\r
-# Compiler flag to turn off builtin functions.\r
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)\r
-\r
-# Compiler flag to allow reflexive dlopens.\r
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)\r
-\r
-# Compiler flag to generate shared objects directly from archives.\r
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)\r
-\r
-# Compiler flag to generate thread-safe objects.\r
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)\r
-\r
-# Library versioning type.\r
-version_type=$version_type\r
-\r
-# Format of library name prefix.\r
-libname_spec=$lt_libname_spec\r
-\r
-# List of archive names.  First name is the real one, the rest are links.\r
-# The last name is the one that the linker finds with -lNAME.\r
-library_names_spec=$lt_library_names_spec\r
-\r
-# The coded name of the library, if different from the real name.\r
-soname_spec=$lt_soname_spec\r
-\r
-# Commands used to build and install an old-style archive.\r
-RANLIB=$lt_RANLIB\r
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)\r
-old_postinstall_cmds=$lt_old_postinstall_cmds\r
-old_postuninstall_cmds=$lt_old_postuninstall_cmds\r
-\r
-# Create an old-style archive from a shared archive.\r
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)\r
-\r
-# Create a temporary old-style archive to link instead of a shared archive.\r
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)\r
-\r
-# Commands used to build and install a shared archive.\r
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)\r
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)\r
-postinstall_cmds=$lt_postinstall_cmds\r
-postuninstall_cmds=$lt_postuninstall_cmds\r
-\r
-# Commands used to build a loadable module (assumed same as above if empty)\r
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)\r
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)\r
-\r
-# Commands to strip libraries.\r
-old_striplib=$lt_old_striplib\r
-striplib=$lt_striplib\r
-\r
-# Dependencies to place before the objects being linked to create a\r
-# shared library.\r
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)\r
-\r
-# Dependencies to place after the objects being linked to create a\r
-# shared library.\r
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)\r
-\r
-# Dependencies to place before the objects being linked to create a\r
-# shared library.\r
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)\r
-\r
-# Dependencies to place after the objects being linked to create a\r
-# shared library.\r
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)\r
-\r
-# The library search path used internally by the compiler when linking\r
-# a shared library.\r
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)\r
-\r
-# Method to check whether dependent libraries are shared objects.\r
-deplibs_check_method=$lt_deplibs_check_method\r
-\r
-# Command to use when deplibs_check_method == file_magic.\r
-file_magic_cmd=$lt_file_magic_cmd\r
-\r
-# Flag that allows shared libraries with undefined symbols to be built.\r
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)\r
-\r
-# Flag that forces no undefined symbols.\r
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)\r
-\r
-# Commands used to finish a libtool library installation in a directory.\r
-finish_cmds=$lt_finish_cmds\r
-\r
-# Same as above, but a single script fragment to be evaled but not shown.\r
-finish_eval=$lt_finish_eval\r
-\r
-# Take the output of nm and produce a listing of raw symbols and C names.\r
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe\r
-\r
-# Transform the output of nm in a proper C declaration\r
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl\r
-\r
-# Transform the output of nm in a C name address pair\r
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address\r
-\r
-# This is the shared library runtime path variable.\r
-runpath_var=$runpath_var\r
-\r
-# This is the shared library path variable.\r
-shlibpath_var=$shlibpath_var\r
-\r
-# Is shlibpath searched before the hard-coded library search path?\r
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath\r
-\r
-# How to hardcode a shared library path into an executable.\r
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)\r
-\r
-# Whether we should hardcode library paths into libraries.\r
-hardcode_into_libs=$hardcode_into_libs\r
-\r
-# Flag to hardcode \$libdir into a binary during linking.\r
-# This must work even if \$libdir does not exist.\r
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)\r
-\r
-# If ld is used when linking, flag to hardcode \$libdir into\r
-# a binary during linking. This must work even if \$libdir does\r
-# not exist.\r
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)\r
-\r
-# Whether we need a single -rpath flag with a separated argument.\r
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)\r
-\r
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the\r
-# resulting binary.\r
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)\r
-\r
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the\r
-# resulting binary.\r
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)\r
-\r
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into\r
-# the resulting binary.\r
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)\r
-\r
-# Set to yes if building a shared library automatically hardcodes DIR into the library\r
-# and all subsequent libraries and executables linked against it.\r
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)\r
-\r
-# Variables whose values should be saved in libtool wrapper scripts and\r
-# restored at relink time.\r
-variables_saved_for_relink="$variables_saved_for_relink"\r
-\r
-# Whether libtool must link a program against all its dependency libraries.\r
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)\r
-\r
-# Compile-time system search path for libraries\r
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec\r
-\r
-# Run-time system search path for libraries\r
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec\r
-\r
-# Fix the shell variable \$srcfile for the compiler.\r
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"\r
-\r
-# Set to yes if exported symbols are required.\r
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)\r
-\r
-# The commands to list exported symbols.\r
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)\r
-\r
-# The commands to extract the exported symbol list from a shared archive.\r
-extract_expsyms_cmds=$lt_extract_expsyms_cmds\r
-\r
-# Symbols that should not be listed in the preloaded symbols.\r
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)\r
-\r
-# Symbols that must always be exported.\r
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)\r
-\r
-ifelse([$1],[],\r
-[# ### END LIBTOOL CONFIG],\r
-[# ### END LIBTOOL TAG CONFIG: $tagname])\r
-\r
-__EOF__\r
-\r
-ifelse([$1],[], [\r
-  case $host_os in\r
-  aix3*)\r
-    cat <<\EOF >> "$cfgfile"\r
-\r
-# AIX sometimes has problems with the GCC collect2 program.  For some\r
-# reason, if we set the COLLECT_NAMES environment variable, the problems\r
-# vanish in a puff of smoke.\r
-if test "X${COLLECT_NAMES+set}" != Xset; then\r
-  COLLECT_NAMES=\r
-  export COLLECT_NAMES\r
-fi\r
-EOF\r
-    ;;\r
-  esac\r
-\r
-  # We use sed instead of cat because bash on DJGPP gets confused if\r
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in\r
-  # text mode, it properly converts lines to CR/LF.  This bash problem\r
-  # is reportedly fixed, but why not run on old versions too?\r
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)\r
-\r
-  mv -f "$cfgfile" "$ofile" || \\r
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")\r
-  chmod +x "$ofile"\r
-])\r
-else\r
-  # If there is no Makefile yet, we rely on a make rule to execute\r
-  # `config.status --recheck' to rerun these tests and create the\r
-  # libtool script then.\r
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`\r
-  if test -f "$ltmain_in"; then\r
-    test -f Makefile && make "$ltmain"\r
-  fi\r
-fi\r
-])# AC_LIBTOOL_CONFIG\r
-\r
-\r
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])\r
-# -------------------------------------------\r
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],\r
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl\r
-\r
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=\r
-\r
-if test "$GCC" = yes; then\r
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'\r
-\r
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],\r
-    lt_cv_prog_compiler_rtti_exceptions,\r
-    [-fno-rtti -fno-exceptions], [],\r
-    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])\r
-fi\r
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI\r
-\r
-\r
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE\r
-# ---------------------------------\r
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],\r
-[AC_REQUIRE([AC_CANONICAL_HOST])\r
-AC_REQUIRE([AC_PROG_NM])\r
-AC_REQUIRE([AC_OBJEXT])\r
-# Check for command to grab the raw symbol name followed by C symbol from nm.\r
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])\r
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],\r
-[\r
-# These are sane defaults that work on at least a few old systems.\r
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]\r
-\r
-# Character class describing NM global symbol codes.\r
-symcode='[[BCDEGRST]]'\r
-\r
-# Regexp to match symbols that can be accessed directly from C.\r
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'\r
-\r
-# Transform the above into a raw symbol and a C symbol.\r
-symxfrm='\1 \2\3 \3'\r
-\r
-# Transform an extracted symbol line into a proper C declaration\r
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"\r
-\r
-# Transform an extracted symbol line into symbol name and symbol address\r
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"\r
-\r
-# Define system-specific variables.\r
-case $host_os in\r
-aix*)\r
-  symcode='[[BCDT]]'\r
-  ;;\r
-cygwin* | mingw* | pw32*)\r
-  symcode='[[ABCDGISTW]]'\r
-  ;;\r
-hpux*) # Its linker distinguishes data from code symbols\r
-  if test "$host_cpu" = ia64; then\r
-    symcode='[[ABCDEGRST]]'\r
-  fi\r
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"\r
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"\r
-  ;;\r
-irix* | nonstopux*)\r
-  symcode='[[BCDEGRST]]'\r
-  ;;\r
-osf*)\r
-  symcode='[[BCDEGQRST]]'\r
-  ;;\r
-solaris* | sysv5*)\r
-  symcode='[[BDRT]]'\r
-  ;;\r
-sysv4)\r
-  symcode='[[DFNSTU]]'\r
-  ;;\r
-esac\r
-\r
-# Handle CRLF in mingw tool chain\r
-opt_cr=\r
-case $build_os in\r
-mingw*)\r
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp\r
-  ;;\r
-esac\r
-\r
-# If we're using GNU nm, then use its standard symbol codes.\r
-case `$NM -V 2>&1` in\r
-*GNU* | *'with BFD'*)\r
-  symcode='[[ABCDGIRSTW]]' ;;\r
-esac\r
-\r
-# Try without a prefix undercore, then with it.\r
-for ac_symprfx in "" "_"; do\r
-\r
-  # Write the raw and C identifiers.\r
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[     ]]\($symcode$symcode*\)[[       ]][[    ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"\r
-\r
-  # Check to see that the pipe works correctly.\r
-  pipe_works=no\r
-\r
-  rm -f conftest*\r
-  cat > conftest.$ac_ext <<EOF\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-char nm_test_var;\r
-void nm_test_func(){}\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-int main(){nm_test_var='a';nm_test_func();return(0);}\r
-EOF\r
-\r
-  if AC_TRY_EVAL(ac_compile); then\r
-    # Now try to grab the symbols.\r
-    nlist=conftest.nm\r
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then\r
-      # Try sorting and uniquifying the output.\r
-      if sort "$nlist" | uniq > "$nlist"T; then\r
-       mv -f "$nlist"T "$nlist"\r
-      else\r
-       rm -f "$nlist"T\r
-      fi\r
-\r
-      # Make sure that we snagged all the symbols we need.\r
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then\r
-       if grep ' nm_test_func$' "$nlist" >/dev/null; then\r
-         cat <<EOF > conftest.$ac_ext\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-EOF\r
-         # Now generate the symbol file.\r
-         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'\r
-\r
-         cat <<EOF >> conftest.$ac_ext\r
-#if defined (__STDC__) && __STDC__\r
-# define lt_ptr_t void *\r
-#else\r
-# define lt_ptr_t char *\r
-# define const\r
-#endif\r
-\r
-/* The mapping between symbol names and symbols. */\r
-const struct {\r
-  const char *name;\r
-  lt_ptr_t address;\r
-}\r
-lt_preloaded_symbols[[]] =\r
-{\r
-EOF\r
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext\r
-         cat <<\EOF >> conftest.$ac_ext\r
-  {0, (lt_ptr_t) 0}\r
-};\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-EOF\r
-         # Now try linking the two files.\r
-         mv conftest.$ac_objext conftstm.$ac_objext\r
-         lt_save_LIBS="$LIBS"\r
-         lt_save_CFLAGS="$CFLAGS"\r
-         LIBS="conftstm.$ac_objext"\r
-         CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"\r
-         if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then\r
-           pipe_works=yes\r
-         fi\r
-         LIBS="$lt_save_LIBS"\r
-         CFLAGS="$lt_save_CFLAGS"\r
-       else\r
-         echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD\r
-       fi\r
-      else\r
-       echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD\r
-      fi\r
-    else\r
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD\r
-    fi\r
-  else\r
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD\r
-    cat conftest.$ac_ext >&5\r
-  fi\r
-  rm -f conftest* conftst*\r
-\r
-  # Do not use the global_symbol_pipe unless it works.\r
-  if test "$pipe_works" = yes; then\r
-    break\r
-  else\r
-    lt_cv_sys_global_symbol_pipe=\r
-  fi\r
-done\r
-])\r
-if test -z "$lt_cv_sys_global_symbol_pipe"; then\r
-  lt_cv_sys_global_symbol_to_cdecl=\r
-fi\r
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then\r
-  AC_MSG_RESULT(failed)\r
-else\r
-  AC_MSG_RESULT(ok)\r
-fi\r
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE\r
-\r
-\r
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])\r
-# ---------------------------------------\r
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],\r
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=\r
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=\r
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=\r
-\r
-AC_MSG_CHECKING([for $compiler option to produce PIC])\r
- ifelse([$1],[CXX],[\r
-  # C++ specific cases for pic, static, wl, etc.\r
-  if test "$GXX" = yes; then\r
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'\r
-\r
-    case $host_os in\r
-    aix*)\r
-      # All AIX code is PIC.\r
-      if test "$host_cpu" = ia64; then\r
-       # AIX 5 now supports IA64 processor\r
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      fi\r
-      ;;\r
-    amigaos*)\r
-      # FIXME: we need at least 68020 code to build shared libraries, but\r
-      # adding the `-m68020' flag to GCC prevents building anything better,\r
-      # like `-m68040'.\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'\r
-      ;;\r
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)\r
-      # PIC is the default for these OSes.\r
-      ;;\r
-    mingw* | os2* | pw32*)\r
-      # This hack is so that the source file can tell whether it is being\r
-      # built for inclusion in a dll (and should export symbols for example).\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'\r
-      ;;\r
-    darwin* | rhapsody*)\r
-      # PIC is the default on this platform\r
-      # Common symbols not allowed in MH_DYLIB files\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'\r
-      ;;\r
-    *djgpp*)\r
-      # DJGPP does not support shared libraries at all\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=\r
-      ;;\r
-    sysv4*MP*)\r
-      if test -d /usr/nec; then\r
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic\r
-      fi\r
-      ;;\r
-    hpux*)\r
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but\r
-      # not for PA HP-UX.\r
-      case "$host_cpu" in\r
-      hppa*64*|ia64*)\r
-       ;;\r
-      *)\r
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'\r
-       ;;\r
-      esac\r
-      ;;\r
-    *)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'\r
-      ;;\r
-    esac\r
-  else\r
-    case $host_os in\r
-      aix4* | aix5*)\r
-       # All AIX code is PIC.\r
-       if test "$host_cpu" = ia64; then\r
-         # AIX 5 now supports IA64 processor\r
-         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-       else\r
-         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'\r
-       fi\r
-       ;;\r
-      chorus*)\r
-       case $cc_basename in\r
-       cxch68)\r
-         # Green Hills C++ Compiler\r
-         # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"\r
-         ;;\r
-       esac\r
-       ;;\r
-      dgux*)\r
-       case $cc_basename in\r
-         ec++)\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'\r
-           ;;\r
-         ghcx)\r
-           # Green Hills C++ Compiler\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      freebsd* | kfreebsd*-gnu)\r
-       # FreeBSD uses GNU C++\r
-       ;;\r
-      hpux9* | hpux10* | hpux11*)\r
-       case $cc_basename in\r
-         CC)\r
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"\r
-           if test "$host_cpu" != ia64; then\r
-             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'\r
-           fi\r
-           ;;\r
-         aCC)\r
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"\r
-           case "$host_cpu" in\r
-           hppa*64*|ia64*)\r
-             # +Z the default\r
-             ;;\r
-           *)\r
-             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'\r
-             ;;\r
-           esac\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      irix5* | irix6* | nonstopux*)\r
-       case $cc_basename in\r
-         CC)\r
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'\r
-           # CC pic flag -KPIC is the default.\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      linux*)\r
-       case $cc_basename in\r
-         KCC)\r
-           # KAI C++ Compiler\r
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'\r
-           ;;\r
-         icpc)\r
-           # Intel C++\r
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'\r
-           ;;\r
-         cxx)\r
-           # Compaq C++\r
-           # Make sure the PIC flag is empty.  It appears that all Alpha\r
-           # Linux and Compaq Tru64 Unix objects are PIC.\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=\r
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      lynxos*)\r
-       ;;\r
-      m88k*)\r
-       ;;\r
-      mvs*)\r
-       case $cc_basename in\r
-         cxx)\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      netbsd*)\r
-       ;;\r
-      osf3* | osf4* | osf5*)\r
-       case $cc_basename in\r
-         KCC)\r
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'\r
-           ;;\r
-         RCC)\r
-           # Rational C++ 2.4.1\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'\r
-           ;;\r
-         cxx)\r
-           # Digital/Compaq C++\r
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-           # Make sure the PIC flag is empty.  It appears that all Alpha\r
-           # Linux and Compaq Tru64 Unix objects are PIC.\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=\r
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      psos*)\r
-       ;;\r
-      sco*)\r
-       case $cc_basename in\r
-         CC)\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      solaris*)\r
-       case $cc_basename in\r
-         CC)\r
-           # Sun C++ 4.2, 5.x and Centerline C++\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '\r
-           ;;\r
-         gcx)\r
-           # Green Hills C++ Compiler\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      sunos4*)\r
-       case $cc_basename in\r
-         CC)\r
-           # Sun C++ 4.x\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'\r
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-           ;;\r
-         lcc)\r
-           # Lucid\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      tandem*)\r
-       case $cc_basename in\r
-         NCC)\r
-           # NonStop-UX NCC 3.20\r
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'\r
-           ;;\r
-         *)\r
-           ;;\r
-       esac\r
-       ;;\r
-      unixware*)\r
-       ;;\r
-      vxworks*)\r
-       ;;\r
-      *)\r
-       _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no\r
-       ;;\r
-    esac\r
-  fi\r
-],\r
-[\r
-  if test "$GCC" = yes; then\r
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'\r
-\r
-    case $host_os in\r
-      aix*)\r
-      # All AIX code is PIC.\r
-      if test "$host_cpu" = ia64; then\r
-       # AIX 5 now supports IA64 processor\r
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      fi\r
-      ;;\r
-\r
-    amigaos*)\r
-      # FIXME: we need at least 68020 code to build shared libraries, but\r
-      # adding the `-m68020' flag to GCC prevents building anything better,\r
-      # like `-m68040'.\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'\r
-      ;;\r
-\r
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)\r
-      # PIC is the default for these OSes.\r
-      ;;\r
-\r
-    mingw* | pw32* | os2*)\r
-      # This hack is so that the source file can tell whether it is being\r
-      # built for inclusion in a dll (and should export symbols for example).\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'\r
-      ;;\r
-\r
-    darwin* | rhapsody*)\r
-      # PIC is the default on this platform\r
-      # Common symbols not allowed in MH_DYLIB files\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'\r
-      ;;\r
-\r
-    msdosdjgpp*)\r
-      # Just because we use GCC doesn't mean we suddenly get shared libraries\r
-      # on systems that don't support them.\r
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no\r
-      enable_shared=no\r
-      ;;\r
-\r
-    sysv4*MP*)\r
-      if test -d /usr/nec; then\r
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic\r
-      fi\r
-      ;;\r
-\r
-    hpux*)\r
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but\r
-      # not for PA HP-UX.\r
-      case "$host_cpu" in\r
-      hppa*64*|ia64*)\r
-       # +Z the default\r
-       ;;\r
-      *)\r
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'\r
-       ;;\r
-      esac\r
-      ;;\r
-\r
-    *)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'\r
-      ;;\r
-    esac\r
-  else\r
-    # PORTME Check for flag to pass linker flags through the system compiler.\r
-    case $host_os in\r
-    aix*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-      if test "$host_cpu" = ia64; then\r
-       # AIX 5 now supports IA64 processor\r
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      else\r
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'\r
-      fi\r
-      ;;\r
-\r
-    mingw* | pw32* | os2*)\r
-      # This hack is so that the source file can tell whether it is being\r
-      # built for inclusion in a dll (and should export symbols for example).\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'\r
-      ;;\r
-\r
-    hpux9* | hpux10* | hpux11*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but\r
-      # not for PA HP-UX.\r
-      case "$host_cpu" in\r
-      hppa*64*|ia64*)\r
-       # +Z the default\r
-       ;;\r
-      *)\r
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'\r
-       ;;\r
-      esac\r
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'\r
-      ;;\r
-\r
-    irix5* | irix6* | nonstopux*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-      # PIC (with -KPIC) is the default.\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'\r
-      ;;\r
-\r
-    newsos6)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      ;;\r
-\r
-    linux*)\r
-      case $CC in\r
-      icc* | ecc*)\r
-       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'\r
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'\r
-        ;;\r
-      ccc*)\r
-        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-        # All Alpha code is PIC.\r
-        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'\r
-        ;;\r
-      esac\r
-      ;;\r
-\r
-    osf3* | osf4* | osf5*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-      # All OSF/1 code is PIC.\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'\r
-      ;;\r
-\r
-    sco3.2v5*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'\r
-      ;;\r
-\r
-    solaris*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      ;;\r
-\r
-    sunos4*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      ;;\r
-\r
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      ;;\r
-\r
-    sysv4*MP*)\r
-      if test -d /usr/nec ;then\r
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'\r
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      fi\r
-      ;;\r
-\r
-    uts4*)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'\r
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'\r
-      ;;\r
-\r
-    *)\r
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no\r
-      ;;\r
-    esac\r
-  fi\r
-])\r
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])\r
-\r
-#\r
-# Check to make sure the PIC flag actually works.\r
-#\r
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then\r
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],\r
-    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),\r
-    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],\r
-    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in\r
-     "" | " "*) ;;\r
-     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;\r
-     esac],\r
-    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=\r
-     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])\r
-fi\r
-case "$host_os" in\r
-  # For platforms which do not support PIC, -DPIC is meaningless:\r
-  *djgpp*)\r
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=\r
-    ;;\r
-  *)\r
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"\r
-    ;;\r
-esac\r
-])\r
-\r
-\r
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])\r
-# ------------------------------------\r
-# See if the linker supports building shared libraries.\r
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],\r
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])\r
-ifelse([$1],[CXX],[\r
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'\r
-  case $host_os in\r
-  aix4* | aix5*)\r
-    # If we're using GNU nm, then we don't want the "-C" option.\r
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm\r
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then\r
-      _LT_AC_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'\r
-    else\r
-      _LT_AC_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'\r
-    fi\r
-    ;;\r
-  pw32*)\r
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"\r
-  ;;\r
-  cygwin* | mingw*)\r
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'\r
-  ;;\r
-  *)\r
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'\r
-  ;;\r
-  esac\r
-],[\r
-  runpath_var=\r
-  _LT_AC_TAGVAR(allow_undefined_flag, $1)=\r
-  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no\r
-  _LT_AC_TAGVAR(archive_cmds, $1)=\r
-  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=\r
-  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=\r
-  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=\r
-  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=\r
-  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=\r
-  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=\r
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=\r
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=\r
-  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=\r
-  _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no\r
-  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported\r
-  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown\r
-  _LT_AC_TAGVAR(hardcode_automatic, $1)=no\r
-  _LT_AC_TAGVAR(module_cmds, $1)=\r
-  _LT_AC_TAGVAR(module_expsym_cmds, $1)=\r
-  _LT_AC_TAGVAR(always_export_symbols, $1)=no\r
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'\r
-  # include_expsyms should be a list of space-separated symbols to be *always*\r
-  # included in the symbol list\r
-  _LT_AC_TAGVAR(include_expsyms, $1)=\r
-  # exclude_expsyms can be an extended regexp of symbols to exclude\r
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or\r
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',\r
-  # as well as any symbol that contains `d'.\r
-  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"\r
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out\r
-  # platforms (ab)use it in PIC code, but their linkers get confused if\r
-  # the symbol is explicitly referenced.  Since portable code cannot\r
-  # rely on this symbol name, it's probably fine to never include it in\r
-  # preloaded symbol tables.\r
-  extract_expsyms_cmds=\r
-\r
-  case $host_os in\r
-  cygwin* | mingw* | pw32*)\r
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time\r
-    # When not using gcc, we currently assume that we are using\r
-    # Microsoft Visual C++.\r
-    if test "$GCC" != yes; then\r
-      with_gnu_ld=no\r
-    fi\r
-    ;;\r
-  openbsd*)\r
-    with_gnu_ld=no\r
-    ;;\r
-  esac\r
-\r
-  _LT_AC_TAGVAR(ld_shlibs, $1)=yes\r
-  if test "$with_gnu_ld" = yes; then\r
-    # If archive_cmds runs LD, not CC, wlarc should be empty\r
-    wlarc='${wl}'\r
-\r
-    # See if GNU ld supports shared libraries.\r
-    case $host_os in\r
-    aix3* | aix4* | aix5*)\r
-      # On AIX/PPC, the GNU linker is very broken\r
-      if test "$host_cpu" != ia64; then\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       cat <<EOF 1>&2\r
-\r
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported\r
-*** to be unable to reliably create shared libraries on AIX.\r
-*** Therefore, libtool is disabling shared libraries support.  If you\r
-*** really care for shared libraries, you may want to modify your PATH\r
-*** so that a non-GNU linker is found, and then restart.\r
-\r
-EOF\r
-      fi\r
-      ;;\r
-\r
-    amigaos*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-\r
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports\r
-      # that the semantics of dynamic libraries on AmigaOS, at least up\r
-      # to version 4, is to share data among multiple programs linked\r
-      # with the same dynamic library.  Since this doesn't match the\r
-      # behavior of shared libraries on other platforms, we can't use\r
-      # them.\r
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      ;;\r
-\r
-    beos*)\r
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported\r
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc\r
-       # support --undefined.  This deserves some investigation.  FIXME\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'\r
-      else\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      fi\r
-      ;;\r
-\r
-    cygwin* | mingw* | pw32*)\r
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,\r
-      # as there is no search path for DLLs.\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported\r
-      _LT_AC_TAGVAR(always_export_symbols, $1)=no\r
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes\r
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'\r
-\r
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then\r
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'\r
-       # If the export-symbols file already is a .def file (1st line\r
-       # is EXPORTS), use it as is; otherwise, prepend...\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then\r
-         cp $export_symbols $output_objdir/$soname.def;\r
-       else\r
-         echo EXPORTS > $output_objdir/$soname.def;\r
-         cat $export_symbols >> $output_objdir/$soname.def;\r
-       fi~\r
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'\r
-      else\r
-       ld_shlibs=no\r
-      fi\r
-      ;;\r
-\r
-    netbsd*)\r
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'\r
-       wlarc=\r
-      else\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'\r
-      fi\r
-      ;;\r
-\r
-    solaris* | sysv5*)\r
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-       cat <<EOF 1>&2\r
-\r
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably\r
-*** create shared libraries on Solaris systems.  Therefore, libtool\r
-*** is disabling shared libraries support.  We urge you to upgrade GNU\r
-*** binutils to release 2.9.1 or newer.  Another option is to modify\r
-*** your PATH or compiler configuration so that the native linker is\r
-*** used, and then restart.\r
-\r
-EOF\r
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'\r
-      else\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      fi\r
-      ;;\r
-\r
-    sunos4*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'\r
-      wlarc=\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-  linux*)\r
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then\r
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'\r
-       _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds"\r
-      supports_anon_versioning=no\r
-      case `$LD -v 2>/dev/null` in\r
-        *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11\r
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...\r
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...\r
-        *\ 2.11.*) ;; # other 2.11 versions\r
-        *) supports_anon_versioning=yes ;;\r
-      esac\r
-      if test $supports_anon_versioning = yes; then\r
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~\r
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~\r
-$echo "local: *; };" >> $output_objdir/$libname.ver~\r
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'\r
-      else\r
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds"\r
-      fi\r
-    else\r
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    fi\r
-    ;;\r
-\r
-    *)\r
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'\r
-      else\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      fi\r
-      ;;\r
-    esac\r
-\r
-    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then\r
-      runpath_var=LD_RUN_PATH\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'\r
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'\r
-      # ancient GNU ld didn't support --whole-archive et. al.\r
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then\r
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'\r
-      else\r
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=\r
-      fi\r
-    fi\r
-  else\r
-    # PORTME fill in a description of your system's linker (not GNU ld)\r
-    case $host_os in\r
-    aix3*)\r
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported\r
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes\r
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'\r
-      # Note: this linker hardcodes the directories in LIBPATH if there\r
-      # are no directories specified by -L.\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-      if test "$GCC" = yes && test -z "$link_static_flag"; then\r
-       # Neither direct hardcoding nor static linking is supported with a\r
-       # broken collect2.\r
-       _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported\r
-      fi\r
-      ;;\r
-\r
-    aix4* | aix5*)\r
-      if test "$host_cpu" = ia64; then\r
-       # On IA64, the linker does run time linking by default, so we don't\r
-       # have to do anything special.\r
-       aix_use_runtimelinking=no\r
-       exp_sym_flag='-Bexport'\r
-       no_entry_flag=""\r
-      else\r
-       # If we're using GNU nm, then we don't want the "-C" option.\r
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm\r
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then\r
-         _LT_AC_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'\r
-       else\r
-         _LT_AC_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'\r
-       fi\r
-       aix_use_runtimelinking=no\r
-\r
-       # Test if we are trying to use run time linking or normal\r
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we\r
-       # need to do runtime linking.\r
-       case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)\r
-         for ld_flag in $LDFLAGS; do\r
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then\r
-           aix_use_runtimelinking=yes\r
-           break\r
-         fi\r
-         done\r
-       esac\r
-\r
-       exp_sym_flag='-bexport'\r
-       no_entry_flag='-bnoentry'\r
-      fi\r
-\r
-      # When large executables or shared objects are built, AIX ld can\r
-      # have problems creating the table of contents.  If linking a library\r
-      # or program results in "error TOC overflow" add -mminimal-toc to\r
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not\r
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.\r
-\r
-      _LT_AC_TAGVAR(archive_cmds, $1)=''\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'\r
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-\r
-      if test "$GCC" = yes; then\r
-       case $host_os in aix4.[012]|aix4.[012].*)\r
-       # We only want to do this on AIX 4.2 and lower, the check\r
-       # below for broken collect2 doesn't work under 4.3+\r
-         collect2name=`${CC} -print-prog-name=collect2`\r
-         if test -f "$collect2name" && \\r
-          strings "$collect2name" | grep resolve_lib_name >/dev/null\r
-         then\r
-         # We have reworked collect2\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-         else\r
-         # We have old collect2\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported\r
-         # It fails to find uninstalled libraries when the uninstalled\r
-         # path is not listed in the libpath.  Setting hardcode_minus_L\r
-         # to unsupported forces relinking\r
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=\r
-         fi\r
-       esac\r
-       shared_flag='-shared'\r
-      else\r
-       # not using gcc\r
-       if test "$host_cpu" = ia64; then\r
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release\r
-       # chokes on -Wl,-G. The following line is correct:\r
-         shared_flag='-G'\r
-       else\r
-       if test "$aix_use_runtimelinking" = yes; then\r
-           shared_flag='${wl}-G'\r
-         else\r
-           shared_flag='${wl}-bM:SRE'\r
-       fi\r
-       fi\r
-      fi\r
-\r
-      # It seems that -bexpall does not export symbols beginning with\r
-      # underscore (_), so it is better to generate a list of symbols to export.\r
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes\r
-      if test "$aix_use_runtimelinking" = yes; then\r
-       # Warning - without using the other runtime loading flags (-brtl),\r
-       # -berok will link without error, but may produce a broken library.\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'\r
-       # Determine the default libpath from the value encoded in an empty executable.\r
-       _LT_AC_SYS_LIBPATH_AIX\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"\r
-       else\r
-       if test "$host_cpu" = ia64; then\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'\r
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"\r
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"\r
-       else\r
-        # Determine the default libpath from the value encoded in an empty executable.\r
-        _LT_AC_SYS_LIBPATH_AIX\r
-        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"\r
-         # Warning - without using the other run time loading flags,\r
-         # -berok will link without error, but may produce a broken library.\r
-         _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'\r
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'\r
-         # -bexpall does not export symbols beginning with underscore (_)\r
-         _LT_AC_TAGVAR(always_export_symbols, $1)=yes\r
-         # Exported symbols can be pulled into shared objects from archives\r
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '\r
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes\r
-         # This is similar to how AIX traditionally builds it's shared libraries.\r
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'\r
-       fi\r
-      fi\r
-      ;;\r
-\r
-    amigaos*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-      # see comment about different semantics on the GNU ld section\r
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      ;;\r
-\r
-    bsdi4*)\r
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic\r
-      ;;\r
-\r
-    cygwin* | mingw* | pw32*)\r
-      # When not using gcc, we currently assume that we are using\r
-      # Microsoft Visual C++.\r
-      # hardcode_libdir_flag_spec is actually meaningless, as there is\r
-      # no search path for DLLs.\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '\r
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported\r
-      # Tell ltmain to make .lib files, not .a files.\r
-      libext=lib\r
-      # Tell ltmain to make .dll files, not .so files.\r
-      shrext_cmds=".dll"\r
-      # FIXME: Setting linknames here is a bad hack.\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='\r
-      # The linker will automatically build a .lib file if we build a DLL.\r
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'\r
-      # FIXME: Should let the user specify the lib program.\r
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'\r
-      fix_srcfile_path='`cygpath -w "$srcfile"`'\r
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes\r
-      ;;\r
-\r
-    darwin* | rhapsody*)\r
-    if test "$GXX" = yes ; then\r
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-      case "$host_os" in\r
-      rhapsody* | darwin1.[[012]])\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'\r
-       ;;\r
-      *) # Darwin 1.3 on\r
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'\r
-      else\r
-        case ${MACOSX_DEPLOYMENT_TARGET} in\r
-          10.[[012]])\r
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'\r
-            ;;\r
-          10.*)\r
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'\r
-            ;;\r
-        esac\r
-      fi\r
-       ;;\r
-      esac\r
-       lt_int_apple_cc_single_mod=no\r
-       output_verbose_link_cmd='echo'\r
-       if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then\r
-         lt_int_apple_cc_single_mod=yes\r
-       fi\r
-       if test "X$lt_int_apple_cc_single_mod" = Xyes ; then\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'\r
-       else\r
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'\r
-      fi\r
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'\r
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's\r
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then\r
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'\r
-        else\r
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'\r
-        fi\r
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported\r
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'\r
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-    else\r
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-    fi\r
-      ;;\r
-\r
-    dgux*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    freebsd1*)\r
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      ;;\r
-\r
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor\r
-    # support.  Future versions do this automatically, but an explicit c++rt0.o\r
-    # does not break anything, and helps significantly (at the cost of a little\r
-    # extra space).\r
-    freebsd2.2*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.\r
-    freebsd2*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.\r
-    freebsd* | kfreebsd*-gnu)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    hpux9*)\r
-      if test "$GCC" = yes; then\r
-       _LT_AC_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'\r
-      else\r
-       _LT_AC_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'\r
-      fi\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'\r
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-\r
-      # hardcode_minus_L: Not really in the search PATH,\r
-      # but as the default location of the library.\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'\r
-      ;;\r
-\r
-    hpux10* | hpux11*)\r
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then\r
-       case "$host_cpu" in\r
-       hppa*64*|ia64*)\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'\r
-         ;;\r
-       *)\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'\r
-         ;;\r
-       esac\r
-      else\r
-       case "$host_cpu" in\r
-       hppa*64*|ia64*)\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-         ;;\r
-       *)\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'\r
-         ;;\r
-       esac\r
-      fi\r
-      if test "$with_gnu_ld" = no; then\r
-       case "$host_cpu" in\r
-       hppa*64*)\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'\r
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-         _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-         ;;\r
-       ia64*)\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-         _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-\r
-         # hardcode_minus_L: Not really in the search PATH,\r
-         # but as the default location of the library.\r
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-         ;;\r
-       *)\r
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'\r
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-         _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'\r
-\r
-         # hardcode_minus_L: Not really in the search PATH,\r
-         # but as the default location of the library.\r
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-         ;;\r
-       esac\r
-      fi\r
-      ;;\r
-\r
-    irix5* | irix6* | nonstopux*)\r
-      if test "$GCC" = yes; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'\r
-      else\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'\r
-      fi\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'\r
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-      ;;\r
-\r
-    netbsd*)\r
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out\r
-      else\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF\r
-      fi\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    newsos6)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'\r
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    openbsd*)\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'\r
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'\r
-      else\r
-       case $host_os in\r
-        openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)\r
-          _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'\r
-          _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'\r
-          ;;\r
-        *)\r
-          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'\r
-          _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'\r
-          ;;\r
-       esac\r
-      fi\r
-      ;;\r
-\r
-    os2*)\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported\r
-      _LT_AC_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'\r
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'\r
-      ;;\r
-\r
-    osf3*)\r
-      if test "$GCC" = yes; then\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'\r
-      else\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'\r
-      fi\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'\r
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-      ;;\r
-\r
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag\r
-      if test "$GCC" = yes; then\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'\r
-      else\r
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'\r
-       _LT_AC_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~\r
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'\r
-\r
-       # Both c and cxx compiler support -rpath directly\r
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'\r
-      fi\r
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:\r
-      ;;\r
-\r
-    sco3.2v5*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'\r
-      runpath_var=LD_RUN_PATH\r
-      hardcode_runpath_var=yes\r
-      ;;\r
-\r
-    solaris*)\r
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'\r
-      if test "$GCC" = yes; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~\r
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'\r
-      else\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~\r
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'\r
-      fi\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      case $host_os in\r
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;\r
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)\r
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;\r
-      esac\r
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes\r
-      ;;\r
-\r
-    sunos4*)\r
-      if test "x$host_vendor" = xsequent; then\r
-       # Use $CC to link under sequent, because it throws in some extra .o\r
-       # files that make .init and .fini sections work.\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'\r
-      else\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'\r
-      fi\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    sysv4)\r
-      case $host_vendor in\r
-       sni)\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???\r
-       ;;\r
-       siemens)\r
-         ## LD is ld it makes a PLAMLIB\r
-         ## CC just makes a GrossModule.\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'\r
-         _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no\r
-        ;;\r
-       motorola)\r
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie\r
-       ;;\r
-      esac\r
-      runpath_var='LD_RUN_PATH'\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    sysv4.3*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'\r
-      ;;\r
-\r
-    sysv4*MP*)\r
-      if test -d /usr/nec; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-       runpath_var=LD_RUN_PATH\r
-       hardcode_runpath_var=yes\r
-       _LT_AC_TAGVAR(ld_shlibs, $1)=yes\r
-      fi\r
-      ;;\r
-\r
-    sysv4.2uw2*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'\r
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes\r
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      hardcode_runpath_var=yes\r
-      runpath_var=LD_RUN_PATH\r
-      ;;\r
-\r
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)\r
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'\r
-      if test "$GCC" = yes; then\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'\r
-      else\r
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'\r
-      fi\r
-      runpath_var='LD_RUN_PATH'\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    sysv5*)\r
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'\r
-      # $CC -shared without GNU ld will not create a library from C++\r
-      # object files and a static libstdc++, better avoid it by now\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~\r
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      runpath_var='LD_RUN_PATH'\r
-      ;;\r
-\r
-    uts4*)\r
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'\r
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'\r
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no\r
-      ;;\r
-\r
-    *)\r
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no\r
-      ;;\r
-    esac\r
-  fi\r
-])\r
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])\r
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no\r
-\r
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"\r
-if test "$GCC" = yes; then\r
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"\r
-fi\r
-\r
-#\r
-# Do we need to explicitly link libc?\r
-#\r
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in\r
-x|xyes)\r
-  # Assume -lc should be added\r
-  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes\r
-\r
-  if test "$enable_shared" = yes && test "$GCC" = yes; then\r
-    case $_LT_AC_TAGVAR(archive_cmds, $1) in\r
-    *'~'*)\r
-      # FIXME: we may have to deal with multi-command sequences.\r
-      ;;\r
-    '$CC '*)\r
-      # Test whether the compiler implicitly links with -lc since on some\r
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc\r
-      # to ld, don't add -lc before -lgcc.\r
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])\r
-      $rm conftest*\r
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext\r
-\r
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then\r
-        soname=conftest\r
-        lib=conftest\r
-        libobjs=conftest.$ac_objext\r
-        deplibs=\r
-        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)\r
-        compiler_flags=-v\r
-        linker_flags=-v\r
-        verstring=\r
-        output_objdir=.\r
-        libname=conftest\r
-        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)\r
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=\r
-        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)\r
-        then\r
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no\r
-        else\r
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes\r
-        fi\r
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag\r
-      else\r
-        cat conftest.err 1>&5\r
-      fi\r
-      $rm conftest*\r
-      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])\r
-      ;;\r
-    esac\r
-  fi\r
-  ;;\r
-esac\r
-])# AC_LIBTOOL_PROG_LD_SHLIBS\r
-\r
-\r
-# _LT_AC_FILE_LTDLL_C\r
-# -------------------\r
-# Be careful that the start marker always follows a newline.\r
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [\r
-# /* ltdll.c starts here */\r
-# #define WIN32_LEAN_AND_MEAN\r
-# #include <windows.h>\r
-# #undef WIN32_LEAN_AND_MEAN\r
-# #include <stdio.h>\r
-#\r
-# #ifndef __CYGWIN__\r
-# #  ifdef __CYGWIN32__\r
-# #    define __CYGWIN__ __CYGWIN32__\r
-# #  endif\r
-# #endif\r
-#\r
-# #ifdef __cplusplus\r
-# extern "C" {\r
-# #endif\r
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);\r
-# #ifdef __cplusplus\r
-# }\r
-# #endif\r
-#\r
-# #ifdef __CYGWIN__\r
-# #include <cygwin/cygwin_dll.h>\r
-# DECLARE_CYGWIN_DLL( DllMain );\r
-# #endif\r
-# HINSTANCE __hDllInstance_base;\r
-#\r
-# BOOL APIENTRY\r
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)\r
-# {\r
-#   __hDllInstance_base = hInst;\r
-#   return TRUE;\r
-# }\r
-# /* ltdll.c ends here */\r
-])# _LT_AC_FILE_LTDLL_C\r
-\r
-\r
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])\r
-# ---------------------------------\r
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])\r
-\r
-\r
-# old names\r
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])\r
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])\r
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])\r
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])\r
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])\r
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])\r
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])\r
-\r
-# This is just to silence aclocal about the macro not being used\r
-ifelse([AC_DISABLE_FAST_INSTALL])\r
-\r
-AC_DEFUN([LT_AC_PROG_GCJ],\r
-[AC_CHECK_TOOL(GCJ, gcj, no)\r
-  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"\r
-  AC_SUBST(GCJFLAGS)\r
-])\r
-\r
-AC_DEFUN([LT_AC_PROG_RC],\r
-[AC_CHECK_TOOL(RC, windres, no)\r
-])\r
-\r
-############################################################\r
-# NOTE: This macro has been submitted for inclusion into   #\r
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #\r
-#  a released version of Autoconf we should remove this    #\r
-#  macro and use it instead.                               #\r
-############################################################\r
-# LT_AC_PROG_SED\r
-# --------------\r
-# Check for a fully-functional sed program, that truncates\r
-# as few characters as possible.  Prefer GNU sed if found.\r
-AC_DEFUN([LT_AC_PROG_SED],\r
-[AC_MSG_CHECKING([for a sed that does not truncate output])\r
-AC_CACHE_VAL(lt_cv_path_SED,\r
-[# Loop through the user's path and test for sed and gsed.\r
-# Then use that list of sed's as ones to test for truncation.\r
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\r
-for as_dir in $PATH\r
-do\r
-  IFS=$as_save_IFS\r
-  test -z "$as_dir" && as_dir=.\r
-  for lt_ac_prog in sed gsed; do\r
-    for ac_exec_ext in '' $ac_executable_extensions; do\r
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then\r
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"\r
-      fi\r
-    done\r
-  done\r
-done\r
-lt_ac_max=0\r
-lt_ac_count=0\r
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris\r
-# along with /bin/sed that truncates output.\r
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do\r
-  test ! -f $lt_ac_sed && break\r
-  cat /dev/null > conftest.in\r
-  lt_ac_count=0\r
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in\r
-  # Check for GNU sed and select it if it is found.\r
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then\r
-    lt_cv_path_SED=$lt_ac_sed\r
-    break\r
-  fi\r
-  while true; do\r
-    cat conftest.in conftest.in >conftest.tmp\r
-    mv conftest.tmp conftest.in\r
-    cp conftest.in conftest.nl\r
-    echo >>conftest.nl\r
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break\r
-    cmp -s conftest.out conftest.nl || break\r
-    # 10000 chars as input seems more than enough\r
-    test $lt_ac_count -gt 10 && break\r
-    lt_ac_count=`expr $lt_ac_count + 1`\r
-    if test $lt_ac_count -gt $lt_ac_max; then\r
-      lt_ac_max=$lt_ac_count\r
-      lt_cv_path_SED=$lt_ac_sed\r
-    fi\r
-  done\r
-done\r
-SED=$lt_cv_path_SED\r
-])\r
-AC_MSG_RESULT([$SED])\r
-])\r
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+## Copyright 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+# serial 47 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+                [m4_ifdef([AC_PROVIDE_$1],
+                          [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+       [AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+            [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+            [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+            [define([LT_AC_PROG_GCJ],
+               defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+[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 avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    ;;
+  *)
+    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+       [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+       [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# 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.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# 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 '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+            [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+        [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_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.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${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 <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$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 &&
+       echo_test_string="`eval $cmd`" &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   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.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+       [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+  ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#              [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$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 "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $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
+     if test ! -s conftest.err; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
+else
+    ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+     else
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+ *)
+    # 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"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+              = "XX$teststring") >/dev/null 2>&1 &&
+           new_result=`expr "X$teststring" : ".*" 2>&1` &&
+           lt_cv_sys_max_cmd_len=$new_result &&
+           test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      teststring=$teststring$teststring
+    done
+    teststring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL          RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL                DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL                0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW         DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW       RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW     DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW     0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_unknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+         [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+           [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+       [AC_CHECK_FUNC([dlopen],
+             [lt_cv_dlopen="dlopen"],
+         [AC_CHECK_LIB([dl], [dlopen],
+               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+           [AC_CHECK_LIB([svld], [dlopen],
+                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+             [AC_CHECK_LIB([dld], [dld_link],
+                   [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+             ])
+           ])
+         ])
+       ])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+         lt_cv_dlopen_self, [dnl
+         _LT_AC_TRY_DLOPEN_SELF(
+           lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+           lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+         lt_cv_dlopen_self_static, [dnl
+         _LT_AC_TRY_DLOPEN_SELF(
+           lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+           lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$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 "$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
+   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
+     if test ! -s out/conftest.err; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  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 ';' >/dev/null ; then
+    # 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.
+    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
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+          echo ' yes '
+          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+       :
+      else
+       can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  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'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # 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
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  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
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-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='GNU ld.so'
+  ;;
+
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+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
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+       if test "$lt_cv_prog_gnu_ld" = yes; then
+               version_type=linux
+       else
+               version_type=irix
+       fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  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'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+    if AC_TRY_EVAL(ac_compile); then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-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='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=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=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=yes
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+       shlibpath_overrides_runpath=no
+       ;;
+      *)
+       shlibpath_overrides_runpath=yes
+       ;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  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=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+       ;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+       if test -n "$CXX" && test "X$CXX" != "Xno"; then
+         AC_LIBTOOL_LANG_CXX_CONFIG
+       else
+         tagname=""
+       fi
+       ;;
+
+      F77)
+       if test -n "$F77" && test "X$F77" != "Xno"; then
+         AC_LIBTOOL_LANG_F77_CONFIG
+       else
+         tagname=""
+       fi
+       ;;
+
+      GCJ)
+       if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+         AC_LIBTOOL_LANG_GCJ_CONFIG
+       else
+         tagname=""
+       fi
+       ;;
+
+      RC)
+       AC_LIBTOOL_LANG_RC_CONFIG
+       ;;
+
+      *)
+       AC_MSG_ERROR([Unsupported tag name: $tagname])
+       ;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+       [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_shared=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+#- set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+       [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_static=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_fast_install=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+       case $deplibs_check_method in
+       "file_magic "*)
+         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+           $EGREP "$file_magic_regex" > /dev/null; then
+           :
+         else
+           cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+         fi ;;
+       esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+       [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+       ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+       test "$with_gnu_ld" != no && break
+       ;;
+      *)
+       test "$with_gnu_ld" != yes && break
+       ;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi4*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case "$host_cpu" in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  case $host_cpu in
+  alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*)
+    lt_cv_deplibs_check_method=pass_all ;;
+  *)
+    # glibc up to 2.1.1 does not perform some relocations on ARM
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+  else
+    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+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
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      # Check to see if the nm accepts a BSD-compat flag.
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+      #   nm: unknown option "B" ignored
+      # Tru64's nm complains that /dev/null is an invalid object file
+      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+      */dev/null* | *'Invalid file or object type'*)
+       lt_cv_path_NM="$tmp_nm -B"
+       break
+        ;;
+      *)
+       case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+       */dev/null*)
+         lt_cv_path_NM="$tmp_nm -p"
+         break
+         ;;
+       *)
+         lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+         continue # so that we can try to find one that supports BSD flags
+         ;;
+       esac
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided and an installed libltdl is not found, it is
+# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
+# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+# quotes!).  If your package is not flat and you're not using automake,
+# define top_builddir and top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+        [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+          [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# --------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+#
+# Check for any special shared library compilation flags.
+#
+_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+if test "$GCC" = no; then
+  case $host_os in
+  sco3.2v5*)
+    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+    ;;
+  esac
+fi
+if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+  if echo "$old_CC $old_CFLAGS " | grep "[[    ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[        ]]" >/dev/null; then :
+  else
+    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+  fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+# Report which librarie types wil actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+  darwin* | rhapsody*)
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case "$host_os" in
+    rhapsody* | darwin1.[[012]])
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
+      ;;
+    *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+      else
+        case ${MACOSX_DEPLOYMENT_TARGET} in
+          10.[[012]])
+            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+            ;;
+          10.*)
+            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
+            ;;
+        esac
+      fi
+      ;;
+    esac
+    output_verbose_link_cmd='echo'
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
+    _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+  else
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+  fi
+    ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+       grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+       for ld_flag in $LDFLAGS; do
+         case $ld_flag in
+         *-brtl*)
+           aix_use_runtimelinking=yes
+           break
+           ;;
+         esac
+       done
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[012]|aix4.[012].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+       collect2name=`${CC} -print-prog-name=collect2`
+       if test -f "$collect2name" && \
+          strings "$collect2name" | grep resolve_lib_name >/dev/null
+       then
+         # We have reworked collect2
+         _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+       else
+         # We have old collect2
+         _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+         # It fails to find uninstalled libraries when the uninstalled
+         # path is not listed in the libpath.  Setting hardcode_minus_L
+         # to unsupported forces relinking
+         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+       fi
+      esac
+      shared_flag='-shared'
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+       # chokes on -Wl,-G. The following line is correct:
+       shared_flag='-G'
+      else
+       if test "$aix_use_runtimelinking" = yes; then
+         shared_flag='${wl}-G'
+       else
+         shared_flag='${wl}-bM:SRE'
+       fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+      else
+       # Determine the default libpath from the value encoded in an empty executable.
+       _LT_AC_SYS_LIBPATH_AIX
+       _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+       # -bexpall does not export symbols beginning with underscore (_)
+       _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+       # Exported symbols can be pulled into shared objects from archives
+       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+       # This is similar to how AIX traditionally builds it's shared libraries.
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+  chorus*)
+    case $cc_basename in
+      *)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_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}--image-base=0x10000000 ${wl}--out-implib,$lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+
+  darwin* | rhapsody*)
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case "$host_os" in
+    rhapsody* | darwin1.[[012]])
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
+      ;;
+    *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+      else
+        case ${MACOSX_DEPLOYMENT_TARGET} in
+          10.[[012]])
+            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+            ;;
+          10.*)
+            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
+            ;;
+        esac
+      fi
+      ;;
+    esac
+    lt_int_apple_cc_single_mod=no
+    output_verbose_link_cmd='echo'
+    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+      lt_int_apple_cc_single_mod=yes
+    fi
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+    else
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+    fi
+    _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+  else
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+  fi
+    ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      ghcx)
+       # Green Hills C++ Compiler
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      *)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+    esac
+    ;;
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd* | kfreebsd*-gnu)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+                               # but as the default
+                               # location of the library.
+
+    case $cc_basename in
+    CC)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_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'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      case "$host_cpu" in
+      hppa*64*)
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+        ;;
+      ia64*)
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        ;;
+      *)
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case "$host_cpu" in
+    hppa*64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+                                             # but as the default
+                                             # location of the library.
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+                                             # but as the default
+                                             # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      aCC)
+       case "$host_cpu" in
+       hppa*64*|ia64*)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+         ;;
+       *)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+         ;;
+       esac
+       # Commands to make compiler produce verbose output that lists
+       # what "hidden" libraries, object files and flags are used when
+       # linking a shared library.
+       #
+       # There doesn't appear to be a way to prevent this compiler from
+       # explicitly linking system object files so we need to strip them
+       # from the output so that they don't get included in the library
+       # dependencies.
+       output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+       ;;
+      *)
+       if test "$GXX" = yes; then
+         if test $with_gnu_ld = no; then
+           case "$host_cpu" in
+           ia64*|hppa*64*)
+             _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+             ;;
+           *)
+             _LT_AC_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'
+             ;;
+           esac
+         fi
+       else
+         # FIXME: insert proper C++ library support
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       fi
+       ;;
+    esac
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC)
+       # SGI C++
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+       # Archives containing C++ object files must be created using
+       # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+       # necessary to make sure instantiated templates are included
+       # in the archive.
+       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+       ;;
+      *)
+       if test "$GXX" = yes; then
+         if test "$with_gnu_ld" = no; then
+           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+         else
+           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+         fi
+       fi
+       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+       ;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC)
+       # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+       # KCC will only create a shared library if the output file
+       # ends with ".so" (or ".sl" for HP-UX), so rename the library
+       # to its proper name (with version) after linking.
+       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+       # Commands to make compiler produce verbose output that lists
+       # what "hidden" libraries, object files and flags are used when
+       # linking a shared library.
+       #
+       # There doesn't appear to be a way to prevent this compiler from
+       # explicitly linking system object files so we need to strip them
+       # from the output so that they don't get included in the library
+       # dependencies.
+       output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+       # Archives containing C++ object files must be created using
+       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+       ;;
+      icpc)
+       # Intel C++
+       with_gnu_ld=yes
+       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+       ;;
+      cxx)
+       # Compaq C++
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+       runpath_var=LD_RUN_PATH
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+       # Commands to make compiler produce verbose output that lists
+       # what "hidden" libraries, object files and flags are used when
+       # linking a shared library.
+       #
+       # There doesn't appear to be a way to prevent this compiler from
+       # explicitly linking system object files so we need to strip them
+       # from the output so that they don't get included in the library
+       # dependencies.
+       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $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; echo $list'
+       ;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      *)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC)
+       # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+       # KCC will only create a shared library if the output file
+       # ends with ".so" (or ".sl" for HP-UX), so rename the library
+       # to its proper name (with version) after linking.
+       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+       # Archives containing C++ object files must be created using
+       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+       ;;
+      RCC)
+       # Rational C++ 2.4.1
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      cxx)
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+       # Commands to make compiler produce verbose output that lists
+       # what "hidden" libraries, object files and flags are used when
+       # linking a shared library.
+       #
+       # There doesn't appear to be a way to prevent this compiler from
+       # explicitly linking system object files so we need to strip them
+       # from the output so that they don't get included in the library
+       # dependencies.
+       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $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; echo $list'
+       ;;
+      *)
+       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+         _LT_AC_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 ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+         # Commands to make compiler produce verbose output that lists
+         # what "hidden" libraries, object files and flags are used when
+         # linking a shared library.
+         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+       else
+         # FIXME: insert proper C++ library support
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       fi
+       ;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC)
+       # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+       # KCC will only create a shared library if the output file
+       # ends with ".so" (or ".sl" for HP-UX), so rename the library
+       # to its proper name (with version) after linking.
+       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+       # Archives containing C++ object files must be created using
+       # the KAI C++ compiler.
+       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+       ;;
+      RCC)
+       # Rational C++ 2.4.1
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      cxx)
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+         echo "-hidden">> $lib.exp~
+         $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
+         $rm $lib.exp'
+
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+       # Commands to make compiler produce verbose output that lists
+       # what "hidden" libraries, object files and flags are used when
+       # linking a shared library.
+       #
+       # There doesn't appear to be a way to prevent this compiler from
+       # explicitly linking system object files so we need to strip them
+       # from the output so that they don't get included in the library
+       # dependencies.
+       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $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; echo $list'
+       ;;
+      *)
+       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+        _LT_AC_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` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+         # Commands to make compiler produce verbose output that lists
+         # what "hidden" libraries, object files and flags are used when
+         # linking a shared library.
+         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+       else
+         # FIXME: insert proper C++ library support
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       fi
+       ;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  sco*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case $cc_basename in
+      CC)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      *)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+    esac
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC)
+       # Sun C++ 4.x
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      lcc)
+       # Lucid
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      *)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC)
+       # Sun C++ 4.2, 5.x and Centerline C++
+       _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+       $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+       case $host_os in
+         solaris2.[0-5] | solaris2.[0-5].*) ;;
+         *)
+           # The C++ compiler is used as linker so we must use $wl
+           # flag to pass the commands to the underlying system
+           # linker.
+           # Supported since Solaris 2.6 (maybe 2.5.1?)
+           _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+           ;;
+       esac
+       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+       # Commands to make compiler produce verbose output that lists
+       # what "hidden" libraries, object files and flags are used when
+       # linking a shared library.
+       #
+       # There doesn't appear to be a way to prevent this compiler from
+       # explicitly linking system object files so we need to strip them
+       # from the output so that they don't get included in the library
+       # dependencies.
+       output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+       # Archives containing C++ object files must be created using
+       # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+       # necessary to make sure instantiated templates are included
+       # in the archive.
+       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+       ;;
+      gcx)
+       # Green Hills C++ Compiler
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+       # The C++ compiler must be used to create the archive.
+       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+       ;;
+      *)
+       # GNU C++ compiler with Solaris linker
+       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+         _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+         if $CC --version | grep -v '^2\.7' > /dev/null; then
+           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+           _LT_AC_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'
+
+           # 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\""
+         else
+           # g++ 2.7 appears to require `-G' NOT `-shared' on this
+           # platform.
+           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+           _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+               $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+         fi
+
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+       fi
+       ;;
+    esac
+    ;;
+  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC)
+       # NonStop-UX NCC 3.20
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+      *)
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       ;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+         || test $p = "-R"; then
+        prev=$p
+        continue
+       else
+        prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+        case $p in
+        -L* | -R*)
+          # Internal compiler library paths should come after those
+          # provided the user.  The postdeps already come after the
+          # user supplied libs so there is no need to process them.
+          if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+            _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+          else
+            _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+          fi
+          ;;
+        # The "-l" case would never come before the object being
+        # linked, so don't bother handling this case.
+        esac
+       else
+        if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+          _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+        else
+          _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+        fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+        pre_test_object_deps_done=yes
+        continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+        if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+          _LT_AC_TAGVAR(predep_objects, $1)="$p"
+        else
+          _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+        fi
+       else
+        if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+          _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+        else
+          _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+        fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4* | aix5*)
+  test "$enable_shared" = yes && enable_static=no
+  ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars.  Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    _LT_AC_TAGVAR(compiler, $1) \
+    _LT_AC_TAGVAR(CC, $1) \
+    _LT_AC_TAGVAR(LD, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+    _LT_AC_TAGVAR(old_archive_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+    _LT_AC_TAGVAR(predep_objects, $1) \
+    _LT_AC_TAGVAR(postdep_objects, $1) \
+    _LT_AC_TAGVAR(predeps, $1) \
+    _LT_AC_TAGVAR(postdeps, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(archive_cmds, $1) \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(postinstall_cmds, $1) \
+    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+    _LT_AC_TAGVAR(no_undefined_flag, $1) \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+    _LT_AC_TAGVAR(hardcode_automatic, $1) \
+    _LT_AC_TAGVAR(module_cmds, $1) \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(exclude_expsyms, $1) \
+    _LT_AC_TAGVAR(include_expsyms, $1); do
+
+    case $var in
+    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(module_cmds, $1) | \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\[$]0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+    ;;
+  esac
+
+ifelse([$1], [],
+  [cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  AC_MSG_NOTICE([creating $ofile])],
+  [cfgfile="$ofile"])
+
+  cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+])
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \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\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris* | sysv5*)
+  symcode='[[BDRT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[     ]]\($symcode$symcode*\)[[       ]][[    ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+       mv -f "$nlist"T "$nlist"
+      else
+       rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+       if grep ' nm_test_func$' "$nlist" >/dev/null; then
+         cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+         # Now generate the symbol file.
+         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+         cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+         cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+         # Now try linking the two files.
+         mv conftest.$ac_objext conftstm.$ac_objext
+         lt_save_LIBS="$LIBS"
+         lt_save_CFLAGS="$CFLAGS"
+         LIBS="conftstm.$ac_objext"
+         CFLAGS="$CFLAGS$_LT_AC_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"
+       else
+         echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+       fi
+      else
+       echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+       ;;
+      *)
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       ;;
+      esac
+      ;;
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+       # All AIX code is PIC.
+       if test "$host_cpu" = ia64; then
+         # AIX 5 now supports IA64 processor
+         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       else
+         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+       fi
+       ;;
+      chorus*)
+       case $cc_basename in
+       cxch68)
+         # Green Hills C++ Compiler
+         # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+         ;;
+       esac
+       ;;
+      dgux*)
+       case $cc_basename in
+         ec++)
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           ;;
+         ghcx)
+           # Green Hills C++ Compiler
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      freebsd* | kfreebsd*-gnu)
+       # FreeBSD uses GNU C++
+       ;;
+      hpux9* | hpux10* | hpux11*)
+       case $cc_basename in
+         CC)
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+           if test "$host_cpu" != ia64; then
+             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+           fi
+           ;;
+         aCC)
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+           case "$host_cpu" in
+           hppa*64*|ia64*)
+             # +Z the default
+             ;;
+           *)
+             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+             ;;
+           esac
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      irix5* | irix6* | nonstopux*)
+       case $cc_basename in
+         CC)
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           # CC pic flag -KPIC is the default.
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      linux*)
+       case $cc_basename in
+         KCC)
+           # KAI C++ Compiler
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+           ;;
+         icpc)
+           # Intel C++
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+           ;;
+         cxx)
+           # Compaq C++
+           # Make sure the PIC flag is empty.  It appears that all Alpha
+           # Linux and Compaq Tru64 Unix objects are PIC.
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      lynxos*)
+       ;;
+      m88k*)
+       ;;
+      mvs*)
+       case $cc_basename in
+         cxx)
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      netbsd*)
+       ;;
+      osf3* | osf4* | osf5*)
+       case $cc_basename in
+         KCC)
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+           ;;
+         RCC)
+           # Rational C++ 2.4.1
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         cxx)
+           # Digital/Compaq C++
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           # Make sure the PIC flag is empty.  It appears that all Alpha
+           # Linux and Compaq Tru64 Unix objects are PIC.
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      psos*)
+       ;;
+      sco*)
+       case $cc_basename in
+         CC)
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      solaris*)
+       case $cc_basename in
+         CC)
+           # Sun C++ 4.2, 5.x and Centerline C++
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+           ;;
+         gcx)
+           # Green Hills C++ Compiler
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      sunos4*)
+       case $cc_basename in
+         CC)
+           # Sun C++ 4.x
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           ;;
+         lcc)
+           # Lucid
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      tandem*)
+       case $cc_basename in
+         NCC)
+           # NonStop-UX NCC 3.20
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      unixware*)
+       ;;
+      vxworks*)
+       ;;
+      *)
+       _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+       ;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+       # +Z the default
+       ;;
+      *)
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       ;;
+      esac
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+       # +Z the default
+       ;;
+      *)
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+       ;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    linux*)
+      case $CC in
+      icc* | ecc*)
+       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      ccc*)
+        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # 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
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      _LT_AC_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'
+    else
+      _LT_AC_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_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+],[
+  runpath_var=
+  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_AC_TAGVAR(archive_cmds, $1)=
+  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+  _LT_AC_TAGVAR(module_cmds, $1)=
+  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(always_export_symbols, $1)=no
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_AC_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+       # support --undefined.  This deserves some investigation.  FIXME
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+       # If the export-symbols file already is a .def file (1st line
+       # is EXPORTS), use it as is; otherwise, prepend...
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+         cp $export_symbols $output_objdir/$soname.def;
+       else
+         echo EXPORTS > $output_objdir/$soname.def;
+         cat $export_symbols >> $output_objdir/$soname.def;
+       fi~
+       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+       ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+       wlarc=
+      else
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+       cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+  linux*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds"
+      supports_anon_versioning=no
+      case `$LD -v 2>/dev/null` in
+        *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+        *\ 2.11.*) ;; # other 2.11 versions
+        *) supports_anon_versioning=yes ;;
+      esac
+      if test $supports_anon_versioning = yes; then
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+$echo "local: *; };" >> $output_objdir/$libname.ver~
+        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+      else
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds"
+      fi
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+    ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
+      runpath_var=LD_RUN_PATH
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+      # ancient GNU ld didn't support --whole-archive et. al.
+      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+      fi
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+       # Neither direct hardcoding nor static linking is supported with a
+       # broken collect2.
+       _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+       # On IA64, the linker does run time linking by default, so we don't
+       # have to do anything special.
+       aix_use_runtimelinking=no
+       exp_sym_flag='-Bexport'
+       no_entry_flag=""
+      else
+       # If we're using GNU nm, then we don't want the "-C" option.
+       # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+         _LT_AC_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'
+       else
+         _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+       fi
+       aix_use_runtimelinking=no
+
+       # Test if we are trying to use run time linking or normal
+       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+       # need to do runtime linking.
+       case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+         for ld_flag in $LDFLAGS; do
+         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+           aix_use_runtimelinking=yes
+           break
+         fi
+         done
+       esac
+
+       exp_sym_flag='-bexport'
+       no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_AC_TAGVAR(archive_cmds, $1)=''
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+      if test "$GCC" = yes; then
+       case $host_os in aix4.[012]|aix4.[012].*)
+       # We only want to do this on AIX 4.2 and lower, the check
+       # below for broken collect2 doesn't work under 4.3+
+         collect2name=`${CC} -print-prog-name=collect2`
+         if test -f "$collect2name" && \
+          strings "$collect2name" | grep resolve_lib_name >/dev/null
+         then
+         # We have reworked collect2
+         _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+         else
+         # We have old collect2
+         _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+         # It fails to find uninstalled libraries when the uninstalled
+         # path is not listed in the libpath.  Setting hardcode_minus_L
+         # to unsupported forces relinking
+         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+         fi
+       esac
+       shared_flag='-shared'
+      else
+       # not using gcc
+       if test "$host_cpu" = ia64; then
+       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+       # chokes on -Wl,-G. The following line is correct:
+         shared_flag='-G'
+       else
+       if test "$aix_use_runtimelinking" = yes; then
+           shared_flag='${wl}-G'
+         else
+           shared_flag='${wl}-bM:SRE'
+       fi
+       fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+       # Warning - without using the other runtime loading flags (-brtl),
+       # -berok will link without error, but may produce a broken library.
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       _LT_AC_SYS_LIBPATH_AIX
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+       if test "$host_cpu" = ia64; then
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+         _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+       else
+        # Determine the default libpath from the value encoded in an empty executable.
+        _LT_AC_SYS_LIBPATH_AIX
+        _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+         # -bexpall does not export symbols beginning with underscore (_)
+         _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+         # Exported symbols can be pulled into shared objects from archives
+         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+         # This is similar to how AIX traditionally builds it's shared libraries.
+         _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+       fi
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      # see comment about different semantics on the GNU ld section
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    bsdi4*)
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+    if test "$GXX" = yes ; then
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      case "$host_os" in
+      rhapsody* | darwin1.[[012]])
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
+       ;;
+      *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+      else
+        case ${MACOSX_DEPLOYMENT_TARGET} in
+          10.[[012]])
+            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+            ;;
+          10.*)
+            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
+            ;;
+        esac
+      fi
+       ;;
+      esac
+       lt_int_apple_cc_single_mod=no
+       output_verbose_link_cmd='echo'
+       if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+         lt_int_apple_cc_single_mod=yes
+       fi
+       if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+       else
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      fi
+      _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        else
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        fi
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+      ;;
+
+    dgux*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+       _LT_AC_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'
+      else
+       _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+       case "$host_cpu" in
+       hppa*64*|ia64*)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       esac
+      else
+       case "$host_cpu" in
+       hppa*64*|ia64*)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+         ;;
+       *)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+         ;;
+       esac
+      fi
+      if test "$with_gnu_ld" = no; then
+       case "$host_cpu" in
+       hppa*64*)
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+         _LT_AC_TAGVAR(hardcode_direct, $1)=no
+         _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+         ;;
+       ia64*)
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_AC_TAGVAR(hardcode_direct, $1)=no
+         _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+
+         # hardcode_minus_L: Not really in the search PATH,
+         # but as the default location of the library.
+         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+         ;;
+       *)
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+         _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+         _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+         # hardcode_minus_L: Not really in the search PATH,
+         # but as the default location of the library.
+         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+         ;;
+       esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    openbsd*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      else
+       case $host_os in
+        openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+          _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+          _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+          ;;
+        *)
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+          _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+          ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_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_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)     # as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_AC_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~
+       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+       # Both c and cxx compiler support -rpath directly
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      if test "$GCC" = yes; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_AC_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}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+      esac
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+       # Use $CC to link under sequent, because it throws in some extra .o
+       # files that make .init and .fini sections work.
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+       sni)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+       ;;
+       siemens)
+         ## LD is ld it makes a PLAMLIB
+         ## CC just makes a GrossModule.
+         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+         _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+         _LT_AC_TAGVAR(hardcode_direct, $1)=no
+        ;;
+       motorola)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+       ;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+       runpath_var=LD_RUN_PATH
+       hardcode_runpath_var=yes
+       _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv5*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_AC_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $rm conftest*
+      printf "$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_AC_TAGVAR(lt_prog_compiler_wl, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+        then
+         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# #  ifdef __CYGWIN32__
+# #    define __CYGWIN__ __CYGWIN32__
+# #  endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+#   __hDllInstance_base = hInst;
+#   return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+  AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && break
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+SED=$lt_cv_path_SED
+])
+AC_MSG_RESULT([$SED])
+])
index 224e815..7cf869d 100644 (file)
-<?xml version='1.0' encoding='UTF-8' ?>\r
-\r
-<!-- Schema for the SOAP/1.1 envelope\r
-\r
-     This schema has been produced using W3C's SOAP Version 1.2 schema\r
-     found at:\r
-\r
-     http://www.w3.org/2001/06/soap-envelope\r
-\r
-     Copyright 2001 Martin Gudgin, Developmentor.\r
-\r
-     Changes made are the following:\r
-     - reverted namespace to http://schemas.xmlsoap.org/soap/envelope/\r
-     - reverted mustUnderstand to only allow 0 and 1 as lexical values\r
-        - made encodingStyle a global attribute 20020825\r
-\r
-        Further changes:\r
-\r
-        - removed default value from mustUnderstand attribute declaration - 20030314\r
-\r
-     Original copyright:\r
-     \r
-     Copyright 2001 W3C (Massachusetts Institute of Technology,\r
-     Institut National de Recherche en Informatique et en Automatique,\r
-     Keio University). All Rights Reserved.\r
-     http://www.w3.org/Consortium/Legal/\r
-\r
-     This document is governed by the W3C Software License [1] as\r
-     described in the FAQ [2].\r
-\r
-     [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720\r
-     [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD\r
--->\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
-           xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/"\r
-           targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" >\r
-\r
-     \r
-  <!-- Envelope, header and body -->\r
-  <xs:element name="Envelope" type="tns:Envelope" />\r
-  <xs:complexType name="Envelope" >\r
-    <xs:sequence>\r
-      <xs:element ref="tns:Header" minOccurs="0" />\r
-      <xs:element ref="tns:Body" minOccurs="1" />\r
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" />\r
-    </xs:sequence>\r
-    <xs:anyAttribute namespace="##any" processContents="lax" />\r
-  </xs:complexType>\r
-\r
-  <xs:element name="Header" type="tns:Header" />\r
-  <xs:complexType name="Header" >\r
-    <xs:sequence>\r
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" />\r
-    </xs:sequence>\r
-    <xs:anyAttribute namespace="##any" processContents="lax" />\r
-  </xs:complexType>\r
-  \r
-  <xs:element name="Body" type="tns:Body" />\r
-  <xs:complexType name="Body" >\r
-    <xs:sequence>\r
-      <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax" />\r
-    </xs:sequence>\r
-    <xs:anyAttribute namespace="##any" processContents="lax" >\r
-         <xs:annotation>\r
-           <xs:documentation>\r
-                 Prose in the spec does not specify that attributes are allowed on the Body element\r
-               </xs:documentation>\r
-         </xs:annotation>\r
-       </xs:anyAttribute>\r
-  </xs:complexType>\r
-\r
-       \r
-  <!-- Global Attributes.  The following attributes are intended to be usable via qualified attribute names on any complex type referencing them.  -->\r
-  <xs:attribute name="mustUnderstand" >        \r
-     <xs:simpleType>\r
-     <xs:restriction base='xs:boolean'>\r
-          <xs:pattern value='0|1' />\r
-        </xs:restriction>\r
-   </xs:simpleType>\r
-  </xs:attribute>\r
-  <xs:attribute name="actor" type="xs:anyURI" />\r
-\r
-  <xs:simpleType name="encodingStyle" >\r
-    <xs:annotation>\r
-         <xs:documentation>\r
-           'encodingStyle' indicates any canonicalization conventions followed in the contents of the containing element.  For example, the value 'http://schemas.xmlsoap.org/soap/encoding/' indicates the pattern described in SOAP specification\r
-         </xs:documentation>\r
-       </xs:annotation>\r
-    <xs:list itemType="xs:anyURI" />\r
-  </xs:simpleType>\r
-\r
-  <xs:attribute name="encodingStyle" type="tns:encodingStyle" />\r
-  <xs:attributeGroup name="encodingStyle" >\r
-    <xs:attribute ref="tns:encodingStyle" />\r
-  </xs:attributeGroup>\r
-\r
-  <xs:element name="Fault" type="tns:Fault" />\r
-  <xs:complexType name="Fault" final="extension" >\r
-    <xs:annotation>\r
-         <xs:documentation>\r
-           Fault reporting structure\r
-         </xs:documentation>\r
-       </xs:annotation>\r
-    <xs:sequence>\r
-      <xs:element name="faultcode" type="xs:QName" />\r
-      <xs:element name="faultstring" type="xs:string" />\r
-      <xs:element name="faultactor" type="xs:anyURI" minOccurs="0" />\r
-      <xs:element name="detail" type="tns:detail" minOccurs="0" />      \r
-    </xs:sequence>\r
-  </xs:complexType>\r
-\r
-  <xs:complexType name="detail">\r
-    <xs:sequence>\r
-      <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax" />\r
-    </xs:sequence>\r
-    <xs:anyAttribute namespace="##any" processContents="lax" /> \r
-  </xs:complexType>\r
-\r
-</xs:schema>\r
-\r
+<?xml version='1.0' encoding='UTF-8' ?>
+
+<!-- Schema for the SOAP/1.1 envelope
+
+     This schema has been produced using W3C's SOAP Version 1.2 schema
+     found at:
+
+     http://www.w3.org/2001/06/soap-envelope
+
+     Copyright 2001 Martin Gudgin, Developmentor.
+
+     Changes made are the following:
+     - reverted namespace to http://schemas.xmlsoap.org/soap/envelope/
+     - reverted mustUnderstand to only allow 0 and 1 as lexical values
+        - made encodingStyle a global attribute 20020825
+
+        Further changes:
+
+        - removed default value from mustUnderstand attribute declaration - 20030314
+
+     Original copyright:
+     
+     Copyright 2001 W3C (Massachusetts Institute of Technology,
+     Institut National de Recherche en Informatique et en Automatique,
+     Keio University). All Rights Reserved.
+     http://www.w3.org/Consortium/Legal/
+
+     This document is governed by the W3C Software License [1] as
+     described in the FAQ [2].
+
+     [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+     [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/"
+           targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" >
+
+     
+  <!-- Envelope, header and body -->
+  <xs:element name="Envelope" type="tns:Envelope" />
+  <xs:complexType name="Envelope" >
+    <xs:sequence>
+      <xs:element ref="tns:Header" minOccurs="0" />
+      <xs:element ref="tns:Body" minOccurs="1" />
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" />
+    </xs:sequence>
+    <xs:anyAttribute namespace="##any" processContents="lax" />
+  </xs:complexType>
+
+  <xs:element name="Header" type="tns:Header" />
+  <xs:complexType name="Header" >
+    <xs:sequence>
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" />
+    </xs:sequence>
+    <xs:anyAttribute namespace="##any" processContents="lax" />
+  </xs:complexType>
+  
+  <xs:element name="Body" type="tns:Body" />
+  <xs:complexType name="Body" >
+    <xs:sequence>
+      <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax" />
+    </xs:sequence>
+    <xs:anyAttribute namespace="##any" processContents="lax" >
+         <xs:annotation>
+           <xs:documentation>
+                 Prose in the spec does not specify that attributes are allowed on the Body element
+               </xs:documentation>
+         </xs:annotation>
+       </xs:anyAttribute>
+  </xs:complexType>
+
+       
+  <!-- Global Attributes.  The following attributes are intended to be usable via qualified attribute names on any complex type referencing them.  -->
+  <xs:attribute name="mustUnderstand" >        
+     <xs:simpleType>
+     <xs:restriction base='xs:boolean'>
+          <xs:pattern value='0|1' />
+        </xs:restriction>
+   </xs:simpleType>
+  </xs:attribute>
+  <xs:attribute name="actor" type="xs:anyURI" />
+
+  <xs:simpleType name="encodingStyle" >
+    <xs:annotation>
+         <xs:documentation>
+           'encodingStyle' indicates any canonicalization conventions followed in the contents of the containing element.  For example, the value 'http://schemas.xmlsoap.org/soap/encoding/' indicates the pattern described in SOAP specification
+         </xs:documentation>
+       </xs:annotation>
+    <xs:list itemType="xs:anyURI" />
+  </xs:simpleType>
+
+  <xs:attribute name="encodingStyle" type="tns:encodingStyle" />
+  <xs:attributeGroup name="encodingStyle" >
+    <xs:attribute ref="tns:encodingStyle" />
+  </xs:attributeGroup>
+
+  <xs:element name="Fault" type="tns:Fault" />
+  <xs:complexType name="Fault" final="extension" >
+    <xs:annotation>
+         <xs:documentation>
+           Fault reporting structure
+         </xs:documentation>
+       </xs:annotation>
+    <xs:sequence>
+      <xs:element name="faultcode" type="xs:QName" />
+      <xs:element name="faultstring" type="xs:string" />
+      <xs:element name="faultactor" type="xs:anyURI" minOccurs="0" />
+      <xs:element name="detail" type="tns:detail" minOccurs="0" />      
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="detail">
+    <xs:sequence>
+      <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax" />
+    </xs:sequence>
+    <xs:anyAttribute namespace="##any" processContents="lax" /> 
+  </xs:complexType>
+
+</xs:schema>
+
index 0a5dbc0..084d3e6 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'\r
-        xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'\r
-        xmlns:ds='http://www.w3.org/2000/09/xmldsig#'\r
-        targetNamespace='http://www.w3.org/2001/04/xmlenc#'\r
-        elementFormDefault='qualified'>\r
-\r
-  <import namespace='http://www.w3.org/2000/09/xmldsig#'\r
-          schemaLocation='xmldsig-core-schema.xsd'/>\r
-\r
-  <complexType name='EncryptedType' abstract='true'>\r
-    <sequence>\r
-      <element name='EncryptionMethod' type='xenc:EncryptionMethodType'\r
-       minOccurs='0'/>\r
-      <element ref='ds:KeyInfo' minOccurs='0'/>\r
-      <element ref='xenc:CipherData'/>\r
-      <element ref='xenc:EncryptionProperties' minOccurs='0'/>\r
-    </sequence>\r
-    <attribute name='Id' type='ID' use='optional'/>\r
-    <attribute name='Type' type='anyURI' use='optional'/>\r
-    <attribute name='MimeType' type='string' use='optional'/>\r
-    <attribute name='Encoding' type='anyURI' use='optional'/>\r
-  </complexType>\r
-  \r
-  <complexType name='EncryptionMethodType' mixed='true'>\r
-    <sequence>\r
-      <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>\r
-      <element name='OAEPparams' minOccurs='0' type='base64Binary'/>\r
-      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>\r
-    </sequence>\r
-    <attribute name='Algorithm' type='anyURI' use='required'/>\r
-  </complexType>\r
-\r
-    <simpleType name='KeySizeType'>\r
-      <restriction base="integer"/>\r
-    </simpleType>\r
-\r
-  <element name='CipherData' type='xenc:CipherDataType'/>\r
-  <complexType name='CipherDataType'>\r
-     <choice>\r
-       <element name='CipherValue' type='base64Binary'/>\r
-       <element ref='xenc:CipherReference'/>\r
-     </choice>\r
-    </complexType>\r
-\r
-   <element name='CipherReference' type='xenc:CipherReferenceType'/>\r
-   <complexType name='CipherReferenceType'>\r
-       <choice>\r
-         <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>\r
-       </choice>\r
-       <attribute name='URI' type='anyURI' use='required'/>\r
-   </complexType>\r
-\r
-     <complexType name='TransformsType'>\r
-       <sequence>\r
-         <element ref='ds:Transform' maxOccurs='unbounded'/>\r
-       </sequence>\r
-     </complexType>\r
-\r
-\r
-  <element name='EncryptedData' type='xenc:EncryptedDataType'/>\r
-  <complexType name='EncryptedDataType'>\r
-    <complexContent>\r
-      <extension base='xenc:EncryptedType'>\r
-       </extension>\r
-    </complexContent>\r
-  </complexType>\r
-\r
-  <!-- Children of ds:KeyInfo -->\r
-\r
-  <element name='EncryptedKey' type='xenc:EncryptedKeyType'/>\r
-  <complexType name='EncryptedKeyType'>\r
-    <complexContent>\r
-      <extension base='xenc:EncryptedType'>\r
-        <sequence>\r
-          <element ref='xenc:ReferenceList' minOccurs='0'/>\r
-          <element name='CarriedKeyName' type='string' minOccurs='0'/>\r
-        </sequence>\r
-        <attribute name='Recipient' type='string'\r
-         use='optional'/>\r
-      </extension>\r
-    </complexContent>\r
-  </complexType>\r
-\r
-    <element name="AgreementMethod" type="xenc:AgreementMethodType"/>\r
-    <complexType name="AgreementMethodType" mixed="true">\r
-      <sequence>\r
-        <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>\r
-        <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->\r
-        <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>\r
-        <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>\r
-        <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>\r
-      </sequence>\r
-      <attribute name="Algorithm" type="anyURI" use="required"/>\r
-    </complexType>\r
-\r
-  <!-- End Children of ds:KeyInfo -->\r
-\r
-  <element name='ReferenceList'>\r
-    <complexType>\r
-      <choice minOccurs='1' maxOccurs='unbounded'>\r
-        <element name='DataReference' type='xenc:ReferenceType'/>\r
-        <element name='KeyReference' type='xenc:ReferenceType'/>\r
-      </choice>\r
-    </complexType>\r
-  </element>\r
-\r
-  <complexType name='ReferenceType'>\r
-    <sequence>\r
-      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>\r
-    </sequence>\r
-    <attribute name='URI' type='anyURI' use='required'/>\r
-  </complexType>\r
-\r
-\r
-  <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>\r
-  <complexType name='EncryptionPropertiesType'>\r
-    <sequence>\r
-      <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>\r
-    </sequence>\r
-    <attribute name='Id' type='ID' use='optional'/>\r
-  </complexType>\r
-\r
-    <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>\r
-    <complexType name='EncryptionPropertyType' mixed='true'>\r
-      <choice maxOccurs='unbounded'>\r
-        <any namespace='##other' processContents='lax'/>\r
-      </choice>\r
-      <attribute name='Target' type='anyURI' use='optional'/>\r
-      <attribute name='Id' type='ID' use='optional'/>\r
-      <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>\r
-    </complexType>\r
-\r
-  <element name="DHKeyValue" type="xenc:DHKeyValueType"/>\r
-  <complexType name="DHKeyValueType">\r
-    <sequence>\r
-      <sequence minOccurs="0">\r
-        <element name="P" type="ds:CryptoBinary"/>\r
-        <element name="Q" type="ds:CryptoBinary"/>\r
-        <element name="Generator" type="ds:CryptoBinary"/>\r
-      </sequence>\r
-      <element name="Public" type="ds:CryptoBinary"/>\r
-      <sequence minOccurs="0">\r
-        <element name="seed" type="ds:CryptoBinary"/>\r
-        <element name="pgenCounter" type="ds:CryptoBinary"/>\r
-      </sequence>\r
-    </sequence>\r
-  </complexType>\r
-  \r
-</schema>\r
-\r
+<?xml version="1.0" encoding="utf-8"?>
+<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
+        xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
+        xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
+        targetNamespace='http://www.w3.org/2001/04/xmlenc#'
+        elementFormDefault='qualified'>
+
+  <import namespace='http://www.w3.org/2000/09/xmldsig#'
+          schemaLocation='xmldsig-core-schema.xsd'/>
+
+  <complexType name='EncryptedType' abstract='true'>
+    <sequence>
+      <element name='EncryptionMethod' type='xenc:EncryptionMethodType'
+       minOccurs='0'/>
+      <element ref='ds:KeyInfo' minOccurs='0'/>
+      <element ref='xenc:CipherData'/>
+      <element ref='xenc:EncryptionProperties' minOccurs='0'/>
+    </sequence>
+    <attribute name='Id' type='ID' use='optional'/>
+    <attribute name='Type' type='anyURI' use='optional'/>
+    <attribute name='MimeType' type='string' use='optional'/>
+    <attribute name='Encoding' type='anyURI' use='optional'/>
+  </complexType>
+  
+  <complexType name='EncryptionMethodType' mixed='true'>
+    <sequence>
+      <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>
+      <element name='OAEPparams' minOccurs='0' type='base64Binary'/>
+      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
+    </sequence>
+    <attribute name='Algorithm' type='anyURI' use='required'/>
+  </complexType>
+
+    <simpleType name='KeySizeType'>
+      <restriction base="integer"/>
+    </simpleType>
+
+  <element name='CipherData' type='xenc:CipherDataType'/>
+  <complexType name='CipherDataType'>
+     <choice>
+       <element name='CipherValue' type='base64Binary'/>
+       <element ref='xenc:CipherReference'/>
+     </choice>
+    </complexType>
+
+   <element name='CipherReference' type='xenc:CipherReferenceType'/>
+   <complexType name='CipherReferenceType'>
+       <choice>
+         <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>
+       </choice>
+       <attribute name='URI' type='anyURI' use='required'/>
+   </complexType>
+
+     <complexType name='TransformsType'>
+       <sequence>
+         <element ref='ds:Transform' maxOccurs='unbounded'/>
+       </sequence>
+     </complexType>
+
+
+  <element name='EncryptedData' type='xenc:EncryptedDataType'/>
+  <complexType name='EncryptedDataType'>
+    <complexContent>
+      <extension base='xenc:EncryptedType'>
+       </extension>
+    </complexContent>
+  </complexType>
+
+  <!-- Children of ds:KeyInfo -->
+
+  <element name='EncryptedKey' type='xenc:EncryptedKeyType'/>
+  <complexType name='EncryptedKeyType'>
+    <complexContent>
+      <extension base='xenc:EncryptedType'>
+        <sequence>
+          <element ref='xenc:ReferenceList' minOccurs='0'/>
+          <element name='CarriedKeyName' type='string' minOccurs='0'/>
+        </sequence>
+        <attribute name='Recipient' type='string'
+         use='optional'/>
+      </extension>
+    </complexContent>
+  </complexType>
+
+    <element name="AgreementMethod" type="xenc:AgreementMethodType"/>
+    <complexType name="AgreementMethodType" mixed="true">
+      <sequence>
+        <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
+        <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
+        <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+        <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
+        <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
+      </sequence>
+      <attribute name="Algorithm" type="anyURI" use="required"/>
+    </complexType>
+
+  <!-- End Children of ds:KeyInfo -->
+
+  <element name='ReferenceList'>
+    <complexType>
+      <choice minOccurs='1' maxOccurs='unbounded'>
+        <element name='DataReference' type='xenc:ReferenceType'/>
+        <element name='KeyReference' type='xenc:ReferenceType'/>
+      </choice>
+    </complexType>
+  </element>
+
+  <complexType name='ReferenceType'>
+    <sequence>
+      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
+    </sequence>
+    <attribute name='URI' type='anyURI' use='required'/>
+  </complexType>
+
+
+  <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>
+  <complexType name='EncryptionPropertiesType'>
+    <sequence>
+      <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>
+    </sequence>
+    <attribute name='Id' type='ID' use='optional'/>
+  </complexType>
+
+    <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>
+    <complexType name='EncryptionPropertyType' mixed='true'>
+      <choice maxOccurs='unbounded'>
+        <any namespace='##other' processContents='lax'/>
+      </choice>
+      <attribute name='Target' type='anyURI' use='optional'/>
+      <attribute name='Id' type='ID' use='optional'/>
+      <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
+    </complexType>
+
+  <element name="DHKeyValue" type="xenc:DHKeyValueType"/>
+  <complexType name="DHKeyValueType">
+    <sequence>
+      <sequence minOccurs="0">
+        <element name="P" type="ds:CryptoBinary"/>
+        <element name="Q" type="ds:CryptoBinary"/>
+        <element name="Generator" type="ds:CryptoBinary"/>
+      </sequence>
+      <element name="Public" type="ds:CryptoBinary"/>
+      <sequence minOccurs="0">
+        <element name="seed" type="ds:CryptoBinary"/>
+        <element name="pgenCounter" type="ds:CryptoBinary"/>
+      </sequence>
+    </sequence>
+  </complexType>
+  
+</schema>
+
index 3cb1daa..a1d4708 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-\r
-<!-- Schema for XML Signatures\r
-    http://www.w3.org/2000/09/xmldsig#\r
-    $Revision: 1.2 $ on $Date: 2005/06/03 03:09:24 $ by $Author: cantor $\r
-\r
-    Copyright 2001 The Internet Society and W3C (Massachusetts Institute\r
-    of Technology, Institut National de Recherche en Informatique et en\r
-    Automatique, Keio University). All Rights Reserved.\r
-    http://www.w3.org/Consortium/Legal/\r
-\r
-    This document is governed by the W3C Software License [1] as described\r
-    in the FAQ [2].\r
-\r
-    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720\r
-    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD\r
--->\r
-\r
-\r
-<schema xmlns="http://www.w3.org/2001/XMLSchema"\r
-        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"\r
-        targetNamespace="http://www.w3.org/2000/09/xmldsig#"\r
-        version="0.1" elementFormDefault="qualified"> \r
-\r
-<!-- Basic Types Defined for Signatures -->\r
-\r
-<simpleType name="CryptoBinary">\r
-  <restriction base="base64Binary">\r
-  </restriction>\r
-</simpleType>\r
-\r
-<!-- Start Signature -->\r
-\r
-<element name="Signature" type="ds:SignatureType"/>\r
-<complexType name="SignatureType">\r
-  <sequence> \r
-    <element ref="ds:SignedInfo"/> \r
-    <element ref="ds:SignatureValue"/> \r
-    <element ref="ds:KeyInfo" minOccurs="0"/> \r
-    <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> \r
-  </sequence>  \r
-  <attribute name="Id" type="ID" use="optional"/>\r
-</complexType>\r
-\r
-  <element name="SignatureValue" type="ds:SignatureValueType"/> \r
-  <complexType name="SignatureValueType">\r
-    <simpleContent>\r
-      <extension base="base64Binary">\r
-        <attribute name="Id" type="ID" use="optional"/>\r
-      </extension>\r
-    </simpleContent>\r
-  </complexType>\r
-\r
-<!-- Start SignedInfo -->\r
-\r
-<element name="SignedInfo" type="ds:SignedInfoType"/>\r
-<complexType name="SignedInfoType">\r
-  <sequence> \r
-    <element ref="ds:CanonicalizationMethod"/> \r
-    <element ref="ds:SignatureMethod"/> \r
-    <element ref="ds:Reference" maxOccurs="unbounded"/> \r
-  </sequence>  \r
-  <attribute name="Id" type="ID" use="optional"/> \r
-</complexType>\r
-\r
-  <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> \r
-  <complexType name="CanonicalizationMethodType" mixed="true">\r
-    <sequence>\r
-      <any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>\r
-      <!-- (0,unbounded) elements from (1,1) namespace -->\r
-    </sequence>\r
-    <attribute name="Algorithm" type="anyURI" use="required"/> \r
-  </complexType>\r
-\r
-  <element name="SignatureMethod" type="ds:SignatureMethodType"/>\r
-  <complexType name="SignatureMethodType" mixed="true">\r
-    <sequence>\r
-      <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>\r
-      <any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>\r
-      <!-- (0,unbounded) elements from (1,1) external namespace -->\r
-    </sequence>\r
-    <attribute name="Algorithm" type="anyURI" use="required"/> \r
-  </complexType>\r
-\r
-<!-- Start Reference -->\r
-\r
-<element name="Reference" type="ds:ReferenceType"/>\r
-<complexType name="ReferenceType">\r
-  <sequence> \r
-    <element ref="ds:Transforms" minOccurs="0"/> \r
-    <element ref="ds:DigestMethod"/> \r
-    <element ref="ds:DigestValue"/> \r
-  </sequence>\r
-  <attribute name="Id" type="ID" use="optional"/> \r
-  <attribute name="URI" type="anyURI" use="optional"/> \r
-  <attribute name="Type" type="anyURI" use="optional"/> \r
-</complexType>\r
-\r
-  <element name="Transforms" type="ds:TransformsType"/>\r
-  <complexType name="TransformsType">\r
-    <sequence>\r
-      <element ref="ds:Transform" maxOccurs="unbounded"/>  \r
-    </sequence>\r
-  </complexType>\r
-\r
-  <element name="Transform" type="ds:TransformType"/>\r
-  <complexType name="TransformType" mixed="true">\r
-    <choice minOccurs="0" maxOccurs="unbounded"> \r
-      <any namespace="##other" processContents="lax"/>\r
-      <!-- (1,1) elements from (0,unbounded) namespaces -->\r
-      <element name="XPath" type="string"/> \r
-    </choice>\r
-    <attribute name="Algorithm" type="anyURI" use="required"/> \r
-  </complexType>\r
-\r
-<!-- End Reference -->\r
-\r
-<element name="DigestMethod" type="ds:DigestMethodType"/>\r
-<complexType name="DigestMethodType" mixed="true"> \r
-  <sequence>\r
-    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
-  </sequence>    \r
-  <attribute name="Algorithm" type="anyURI" use="required"/> \r
-</complexType>\r
-\r
-<element name="DigestValue" type="ds:DigestValueType"/>\r
-<simpleType name="DigestValueType">\r
-  <restriction base="base64Binary"/>\r
-</simpleType>\r
-\r
-<!-- End SignedInfo -->\r
-\r
-<!-- Start KeyInfo -->\r
-\r
-<element name="KeyInfo" type="ds:KeyInfoType"/> \r
-<complexType name="KeyInfoType" mixed="true">\r
-  <choice maxOccurs="unbounded">     \r
-    <element ref="ds:KeyName"/> \r
-    <element ref="ds:KeyValue"/> \r
-    <element ref="ds:RetrievalMethod"/> \r
-    <element ref="ds:X509Data"/> \r
-    <element ref="ds:PGPData"/> \r
-    <element ref="ds:SPKIData"/>\r
-    <element ref="ds:MgmtData"/>\r
-    <any processContents="lax" namespace="##other"/>\r
-    <!-- (1,1) elements from (0,unbounded) namespaces -->\r
-  </choice>\r
-  <attribute name="Id" type="ID" use="optional"/> \r
-</complexType>\r
-\r
-  <element name="KeyName" type="string"/>\r
-  <element name="MgmtData" type="string"/>\r
-\r
-  <element name="KeyValue" type="ds:KeyValueType"/> \r
-  <complexType name="KeyValueType" mixed="true">\r
-   <choice>\r
-     <element ref="ds:DSAKeyValue"/>\r
-     <element ref="ds:RSAKeyValue"/>\r
-     <any namespace="##other" processContents="lax"/>\r
-   </choice>\r
-  </complexType>\r
-\r
-  <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> \r
-  <complexType name="RetrievalMethodType">\r
-    <sequence>\r
-      <element ref="ds:Transforms" minOccurs="0"/> \r
-    </sequence>  \r
-    <attribute name="URI" type="anyURI" use="required"/>\r
-    <attribute name="Type" type="anyURI" use="optional"/>\r
-  </complexType>\r
-\r
-<!-- Start X509Data -->\r
-\r
-<element name="X509Data" type="ds:X509DataType"/> \r
-<complexType name="X509DataType">\r
-  <sequence maxOccurs="unbounded">\r
-    <choice>\r
-      <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>\r
-      <element name="X509SKI" type="base64Binary"/>\r
-      <element name="X509SubjectName" type="string"/>\r
-      <element name="X509Certificate" type="base64Binary"/>\r
-      <element name="X509CRL" type="base64Binary"/>\r
-      <any namespace="##other" processContents="lax"/>\r
-    </choice>\r
-  </sequence>\r
-</complexType>\r
-\r
-<complexType name="X509IssuerSerialType"> \r
-  <sequence> \r
-    <element name="X509IssuerName" type="string"/> \r
-    <element name="X509SerialNumber" type="integer"/> \r
-  </sequence>\r
-</complexType>\r
-\r
-<!-- End X509Data -->\r
-\r
-<!-- Begin PGPData -->\r
-\r
-<element name="PGPData" type="ds:PGPDataType"/> \r
-<complexType name="PGPDataType"> \r
-  <choice>\r
-    <sequence>\r
-      <element name="PGPKeyID" type="base64Binary"/> \r
-      <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> \r
-      <any namespace="##other" processContents="lax" minOccurs="0"\r
-       maxOccurs="unbounded"/>\r
-    </sequence>\r
-    <sequence>\r
-      <element name="PGPKeyPacket" type="base64Binary"/> \r
-      <any namespace="##other" processContents="lax" minOccurs="0"\r
-       maxOccurs="unbounded"/>\r
-    </sequence>\r
-  </choice>\r
-</complexType>\r
-\r
-<!-- End PGPData -->\r
-\r
-<!-- Begin SPKIData -->\r
-\r
-<element name="SPKIData" type="ds:SPKIDataType"/> \r
-<complexType name="SPKIDataType">\r
-  <sequence maxOccurs="unbounded">\r
-    <element name="SPKISexp" type="base64Binary"/>\r
-    <any namespace="##other" processContents="lax" minOccurs="0"/>\r
-  </sequence>\r
-</complexType> \r
-\r
-<!-- End SPKIData -->\r
-\r
-<!-- End KeyInfo -->\r
-\r
-<!-- Start Object (Manifest, SignatureProperty) -->\r
-\r
-<element name="Object" type="ds:ObjectType"/> \r
-<complexType name="ObjectType" mixed="true">\r
-  <sequence minOccurs="0" maxOccurs="unbounded">\r
-    <any namespace="##any" processContents="lax"/>\r
-  </sequence>\r
-  <attribute name="Id" type="ID" use="optional"/> \r
-  <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->\r
-  <attribute name="Encoding" type="anyURI" use="optional"/> \r
-</complexType>\r
-\r
-<element name="Manifest" type="ds:ManifestType"/> \r
-<complexType name="ManifestType">\r
-  <sequence>\r
-    <element ref="ds:Reference" maxOccurs="unbounded"/> \r
-  </sequence>\r
-  <attribute name="Id" type="ID" use="optional"/> \r
-</complexType>\r
-\r
-<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> \r
-<complexType name="SignaturePropertiesType">\r
-  <sequence>\r
-    <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> \r
-  </sequence>\r
-  <attribute name="Id" type="ID" use="optional"/> \r
-</complexType>\r
-\r
-   <element name="SignatureProperty" type="ds:SignaturePropertyType"/> \r
-   <complexType name="SignaturePropertyType" mixed="true">\r
-     <choice maxOccurs="unbounded">\r
-       <any namespace="##other" processContents="lax"/>\r
-       <!-- (1,1) elements from (1,unbounded) namespaces -->\r
-     </choice>\r
-     <attribute name="Target" type="anyURI" use="required"/> \r
-     <attribute name="Id" type="ID" use="optional"/> \r
-   </complexType>\r
-\r
-<!-- End Object (Manifest, SignatureProperty) -->\r
-\r
-<!-- Start Algorithm Parameters -->\r
-\r
-<simpleType name="HMACOutputLengthType">\r
-  <restriction base="integer"/>\r
-</simpleType>\r
-\r
-<!-- Start KeyValue Element-types -->\r
-\r
-<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>\r
-<complexType name="DSAKeyValueType">\r
-  <sequence>\r
-    <sequence minOccurs="0">\r
-      <element name="P" type="ds:CryptoBinary"/>\r
-      <element name="Q" type="ds:CryptoBinary"/>\r
-    </sequence>\r
-    <element name="G" type="ds:CryptoBinary" minOccurs="0"/>\r
-    <element name="Y" type="ds:CryptoBinary"/>\r
-    <element name="J" type="ds:CryptoBinary" minOccurs="0"/>\r
-    <sequence minOccurs="0">\r
-      <element name="Seed" type="ds:CryptoBinary"/>\r
-      <element name="PgenCounter" type="ds:CryptoBinary"/>\r
-    </sequence>\r
-  </sequence>\r
-</complexType>\r
-\r
-<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>\r
-<complexType name="RSAKeyValueType">\r
-  <sequence>\r
-    <element name="Modulus" type="ds:CryptoBinary"/> \r
-    <element name="Exponent" type="ds:CryptoBinary"/> \r
-  </sequence>\r
-</complexType> \r
-\r
-<!-- End KeyValue Element-types -->\r
-\r
-<!-- End Signature -->\r
-\r
-</schema>\r
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Schema for XML Signatures
+    http://www.w3.org/2000/09/xmldsig#
+    $Revision: 1.2 $ on $Date: 2005/06/03 03:09:24 $ by $Author: cantor $
+
+    Copyright 2001 The Internet Society and W3C (Massachusetts Institute
+    of Technology, Institut National de Recherche en Informatique et en
+    Automatique, Keio University). All Rights Reserved.
+    http://www.w3.org/Consortium/Legal/
+
+    This document is governed by the W3C Software License [1] as described
+    in the FAQ [2].
+
+    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+-->
+
+
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+        targetNamespace="http://www.w3.org/2000/09/xmldsig#"
+        version="0.1" elementFormDefault="qualified"> 
+
+<!-- Basic Types Defined for Signatures -->
+
+<simpleType name="CryptoBinary">
+  <restriction base="base64Binary">
+  </restriction>
+</simpleType>
+
+<!-- Start Signature -->
+
+<element name="Signature" type="ds:SignatureType"/>
+<complexType name="SignatureType">
+  <sequence> 
+    <element ref="ds:SignedInfo"/> 
+    <element ref="ds:SignatureValue"/> 
+    <element ref="ds:KeyInfo" minOccurs="0"/> 
+    <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> 
+  </sequence>  
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+  <element name="SignatureValue" type="ds:SignatureValueType"/> 
+  <complexType name="SignatureValueType">
+    <simpleContent>
+      <extension base="base64Binary">
+        <attribute name="Id" type="ID" use="optional"/>
+      </extension>
+    </simpleContent>
+  </complexType>
+
+<!-- Start SignedInfo -->
+
+<element name="SignedInfo" type="ds:SignedInfoType"/>
+<complexType name="SignedInfoType">
+  <sequence> 
+    <element ref="ds:CanonicalizationMethod"/> 
+    <element ref="ds:SignatureMethod"/> 
+    <element ref="ds:Reference" maxOccurs="unbounded"/> 
+  </sequence>  
+  <attribute name="Id" type="ID" use="optional"/> 
+</complexType>
+
+  <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> 
+  <complexType name="CanonicalizationMethodType" mixed="true">
+    <sequence>
+      <any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+      <!-- (0,unbounded) elements from (1,1) namespace -->
+    </sequence>
+    <attribute name="Algorithm" type="anyURI" use="required"/> 
+  </complexType>
+
+  <element name="SignatureMethod" type="ds:SignatureMethodType"/>
+  <complexType name="SignatureMethodType" mixed="true">
+    <sequence>
+      <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
+      <any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+      <!-- (0,unbounded) elements from (1,1) external namespace -->
+    </sequence>
+    <attribute name="Algorithm" type="anyURI" use="required"/> 
+  </complexType>
+
+<!-- Start Reference -->
+
+<element name="Reference" type="ds:ReferenceType"/>
+<complexType name="ReferenceType">
+  <sequence> 
+    <element ref="ds:Transforms" minOccurs="0"/> 
+    <element ref="ds:DigestMethod"/> 
+    <element ref="ds:DigestValue"/> 
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/> 
+  <attribute name="URI" type="anyURI" use="optional"/> 
+  <attribute name="Type" type="anyURI" use="optional"/> 
+</complexType>
+
+  <element name="Transforms" type="ds:TransformsType"/>
+  <complexType name="TransformsType">
+    <sequence>
+      <element ref="ds:Transform" maxOccurs="unbounded"/>  
+    </sequence>
+  </complexType>
+
+  <element name="Transform" type="ds:TransformType"/>
+  <complexType name="TransformType" mixed="true">
+    <choice minOccurs="0" maxOccurs="unbounded"> 
+      <any namespace="##other" processContents="lax"/>
+      <!-- (1,1) elements from (0,unbounded) namespaces -->
+      <element name="XPath" type="string"/> 
+    </choice>
+    <attribute name="Algorithm" type="anyURI" use="required"/> 
+  </complexType>
+
+<!-- End Reference -->
+
+<element name="DigestMethod" type="ds:DigestMethodType"/>
+<complexType name="DigestMethodType" mixed="true"> 
+  <sequence>
+    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+  </sequence>    
+  <attribute name="Algorithm" type="anyURI" use="required"/> 
+</complexType>
+
+<element name="DigestValue" type="ds:DigestValueType"/>
+<simpleType name="DigestValueType">
+  <restriction base="base64Binary"/>
+</simpleType>
+
+<!-- End SignedInfo -->
+
+<!-- Start KeyInfo -->
+
+<element name="KeyInfo" type="ds:KeyInfoType"/> 
+<complexType name="KeyInfoType" mixed="true">
+  <choice maxOccurs="unbounded">     
+    <element ref="ds:KeyName"/> 
+    <element ref="ds:KeyValue"/> 
+    <element ref="ds:RetrievalMethod"/> 
+    <element ref="ds:X509Data"/> 
+    <element ref="ds:PGPData"/> 
+    <element ref="ds:SPKIData"/>
+    <element ref="ds:MgmtData"/>
+    <any processContents="lax" namespace="##other"/>
+    <!-- (1,1) elements from (0,unbounded) namespaces -->
+  </choice>
+  <attribute name="Id" type="ID" use="optional"/> 
+</complexType>
+
+  <element name="KeyName" type="string"/>
+  <element name="MgmtData" type="string"/>
+
+  <element name="KeyValue" type="ds:KeyValueType"/> 
+  <complexType name="KeyValueType" mixed="true">
+   <choice>
+     <element ref="ds:DSAKeyValue"/>
+     <element ref="ds:RSAKeyValue"/>
+     <any namespace="##other" processContents="lax"/>
+   </choice>
+  </complexType>
+
+  <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> 
+  <complexType name="RetrievalMethodType">
+    <sequence>
+      <element ref="ds:Transforms" minOccurs="0"/> 
+    </sequence>  
+    <attribute name="URI" type="anyURI" use="required"/>
+    <attribute name="Type" type="anyURI" use="optional"/>
+  </complexType>
+
+<!-- Start X509Data -->
+
+<element name="X509Data" type="ds:X509DataType"/> 
+<complexType name="X509DataType">
+  <sequence maxOccurs="unbounded">
+    <choice>
+      <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
+      <element name="X509SKI" type="base64Binary"/>
+      <element name="X509SubjectName" type="string"/>
+      <element name="X509Certificate" type="base64Binary"/>
+      <element name="X509CRL" type="base64Binary"/>
+      <any namespace="##other" processContents="lax"/>
+    </choice>
+  </sequence>
+</complexType>
+
+<complexType name="X509IssuerSerialType"> 
+  <sequence> 
+    <element name="X509IssuerName" type="string"/> 
+    <element name="X509SerialNumber" type="integer"/> 
+  </sequence>
+</complexType>
+
+<!-- End X509Data -->
+
+<!-- Begin PGPData -->
+
+<element name="PGPData" type="ds:PGPDataType"/> 
+<complexType name="PGPDataType"> 
+  <choice>
+    <sequence>
+      <element name="PGPKeyID" type="base64Binary"/> 
+      <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> 
+      <any namespace="##other" processContents="lax" minOccurs="0"
+       maxOccurs="unbounded"/>
+    </sequence>
+    <sequence>
+      <element name="PGPKeyPacket" type="base64Binary"/> 
+      <any namespace="##other" processContents="lax" minOccurs="0"
+       maxOccurs="unbounded"/>
+    </sequence>
+  </choice>
+</complexType>
+
+<!-- End PGPData -->
+
+<!-- Begin SPKIData -->
+
+<element name="SPKIData" type="ds:SPKIDataType"/> 
+<complexType name="SPKIDataType">
+  <sequence maxOccurs="unbounded">
+    <element name="SPKISexp" type="base64Binary"/>
+    <any namespace="##other" processContents="lax" minOccurs="0"/>
+  </sequence>
+</complexType> 
+
+<!-- End SPKIData -->
+
+<!-- End KeyInfo -->
+
+<!-- Start Object (Manifest, SignatureProperty) -->
+
+<element name="Object" type="ds:ObjectType"/> 
+<complexType name="ObjectType" mixed="true">
+  <sequence minOccurs="0" maxOccurs="unbounded">
+    <any namespace="##any" processContents="lax"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/> 
+  <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
+  <attribute name="Encoding" type="anyURI" use="optional"/> 
+</complexType>
+
+<element name="Manifest" type="ds:ManifestType"/> 
+<complexType name="ManifestType">
+  <sequence>
+    <element ref="ds:Reference" maxOccurs="unbounded"/> 
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/> 
+</complexType>
+
+<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> 
+<complexType name="SignaturePropertiesType">
+  <sequence>
+    <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> 
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/> 
+</complexType>
+
+   <element name="SignatureProperty" type="ds:SignaturePropertyType"/> 
+   <complexType name="SignaturePropertyType" mixed="true">
+     <choice maxOccurs="unbounded">
+       <any namespace="##other" processContents="lax"/>
+       <!-- (1,1) elements from (1,unbounded) namespaces -->
+     </choice>
+     <attribute name="Target" type="anyURI" use="required"/> 
+     <attribute name="Id" type="ID" use="optional"/> 
+   </complexType>
+
+<!-- End Object (Manifest, SignatureProperty) -->
+
+<!-- Start Algorithm Parameters -->
+
+<simpleType name="HMACOutputLengthType">
+  <restriction base="integer"/>
+</simpleType>
+
+<!-- Start KeyValue Element-types -->
+
+<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
+<complexType name="DSAKeyValueType">
+  <sequence>
+    <sequence minOccurs="0">
+      <element name="P" type="ds:CryptoBinary"/>
+      <element name="Q" type="ds:CryptoBinary"/>
+    </sequence>
+    <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
+    <element name="Y" type="ds:CryptoBinary"/>
+    <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
+    <sequence minOccurs="0">
+      <element name="Seed" type="ds:CryptoBinary"/>
+      <element name="PgenCounter" type="ds:CryptoBinary"/>
+    </sequence>
+  </sequence>
+</complexType>
+
+<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
+<complexType name="RSAKeyValueType">
+  <sequence>
+    <element name="Modulus" type="ds:CryptoBinary"/> 
+    <element name="Exponent" type="ds:CryptoBinary"/> 
+  </sequence>
+</complexType> 
+
+<!-- End KeyValue Element-types -->
+
+<!-- End Signature -->
+
+</schema>
index a532d4a..05a67cb 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema" \r
-    xmlns:xt="http://www.opensaml.org/xmltooling"\r
+<schema xmlns="http://www.w3.org/2001/XMLSchema" 
+    xmlns:xt="http://www.opensaml.org/xmltooling"
     targetNamespace="http://www.opensaml.org/xmltooling"
-    elementFormDefault="qualified">\r
-\r
-    <element name="exception" type="xt:XMLToolingExceptionType"/>\r
-    <complexType name="XMLToolingExceptionType">\r
-        <sequence>\r
+    elementFormDefault="qualified">
+
+    <element name="exception" type="xt:XMLToolingExceptionType"/>
+    <complexType name="XMLToolingExceptionType">
+        <sequence>
             <element name="message" type="string" minOccurs="0"/>
             <element name="param" minOccurs="0" maxOccurs="unbounded">
                 <complexType>
@@ -16,9 +16,9 @@
                         </extension>
                     </simpleContent>
                 </complexType>
-            </element>\r
-        </sequence>\r
-        <attribute name="type" type="string" use="required"/>\r
-    </complexType>\r
-\r
-</schema>
\ No newline at end of file
+            </element>
+        </sequence>
+        <attribute name="type" type="string" use="required"/>
+    </complexType>
+
+</schema>
index 01eb11e..df3ca18 100644 (file)
-/*\r
- *  Copyright 2001-2009 Internet2\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/**\r
- * @file xmltooling/XMLObjectBuilder.h\r
- * \r
- * Factory interface for XMLObjects.\r
- */\r
-\r
-#ifndef __xmltooling_xmlobjbuilder_h__\r
-#define __xmltooling_xmlobjbuilder_h__\r
-\r
-#include <xmltooling/QName.h>\r
-#include <xmltooling/XMLObject.h>\r
-#include <xmltooling/util/XMLHelper.h>\r
-\r
-#include <map>\r
-#include <memory>\r
-\r
-#if defined (_MSC_VER)\r
-    #pragma warning( push )\r
-    #pragma warning( disable : 4250 4251 )\r
-#endif\r
-\r
-namespace xmltooling {\r
-\r
-    /**\r
-     * A factory interface for obtaining XMLObjects.\r
-     * Subclasses MAY supply additional factory methods.\r
-     */\r
-    class XMLTOOL_API XMLObjectBuilder\r
-    {\r
-    MAKE_NONCOPYABLE(XMLObjectBuilder);\r
-    public:\r
-        virtual ~XMLObjectBuilder();\r
-        \r
-        /**\r
-         * Creates an empty XMLObject with a particular element name.\r
-         * <p>The results are undefined if localName is NULL or empty.\r
-         * \r
-         * @param nsURI         namespace URI for element\r
-         * @param localName     local name of element\r
-         * @param prefix        prefix of element name\r
-         * @param schemaType    xsi:type of the object\r
-         * @return the empty XMLObject\r
-         */\r
-        virtual XMLObject* buildObject(\r
-            const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=NULL, const QName* schemaType=NULL\r
-            ) const=0;\r
-\r
-        /**\r
-         * Creates an empty XMLObject with a particular element name.\r
-         * \r
-         * @param q     QName of element for object\r
-         * @return the empty XMLObject\r
-         */\r
-        XMLObject* buildFromQName(const QName& q) const;\r
-\r
-        /**\r
-         * Creates an unmarshalled XMLObject from a DOM Element.\r
-         * \r
-         * @param element       the unmarshalling source\r
-         * @param bindDocument  true iff the XMLObject should take ownership of the DOM Document\r
-         * @return the unmarshalled XMLObject\r
-         */\r
-        XMLObject* buildFromElement(xercesc::DOMElement* element, bool bindDocument=false) const;\r
-\r
-        /**\r
-         * Creates an unmarshalled XMLObject from the root of a DOM Document.\r
-         * \r
-         * @param doc           the unmarshalling source\r
-         * @param bindDocument  true iff the XMLObject should take ownership of the DOM Document\r
-         * @return the unmarshalled XMLObject\r
-         */\r
-        XMLObject* buildFromDocument(xercesc::DOMDocument* doc, bool bindDocument=true) const;\r
-\r
-        /**\r
-         * Creates an unmarshalled XMLObject using the default build method, if a builder can be found.\r
-         * \r
-         * @param element       the unmarshalling source\r
-         * @param bindDocument  true iff the new XMLObject should take ownership of the DOM Document\r
-         * @return  the unmarshalled object or NULL if no builder is available \r
-         */\r
-        static XMLObject* buildOneFromElement(xercesc::DOMElement* element, bool bindDocument=false);\r
-\r
-        /**\r
-         * Retrieves an XMLObjectBuilder using the key it was registered with.\r
-         * \r
-         * @param key the key used to register the builder\r
-         * @return the builder or NULL\r
-         */\r
-        static const XMLObjectBuilder* getBuilder(const QName& key);\r
-\r
-        /**\r
-         * Retrieves an XMLObjectBuilder for a given DOM element.\r
-         * If no match is found, the default builder is returned, if any.\r
-         * \r
-         * @param element the element for which to locate a builder\r
-         * @return the builder or NULL\r
-         */\r
-        static const XMLObjectBuilder* getBuilder(const xercesc::DOMElement* element);\r
-\r
-        /**\r
-         * Retrieves the default XMLObjectBuilder for DOM elements\r
-         * \r
-         * @return the default builder or NULL\r
-         */\r
-        static const XMLObjectBuilder* getDefaultBuilder();\r
-\r
-        /**\r
-         * Gets an immutable list of all the builders currently registered.\r
-         * \r
-         * @return list of all the builders currently registered\r
-         */\r
-        static const std::map<QName,XMLObjectBuilder*>& getBuilders();\r
-    \r
-        /**\r
-         * Registers a new builder for the given key.\r
-         * \r
-         * @param builderKey the key used to retrieve this builder later\r
-         * @param builder the builder\r
-         */\r
-        static void registerBuilder(const QName& builderKey, XMLObjectBuilder* builder);\r
-\r
-        /**\r
-         * Registers a default builder\r
-         * \r
-         * @param builder the default builder\r
-         */\r
-        static void registerDefaultBuilder(XMLObjectBuilder* builder);\r
-\r
-        /**\r
-         * Deregisters a builder.\r
-         * \r
-         * @param builderKey the key for the builder to be deregistered\r
-         */\r
-        static void deregisterBuilder(const QName& builderKey);\r
-\r
-        /**\r
-         * Deregisters default builder.\r
-         */\r
-        static void deregisterDefaultBuilder();\r
-\r
-        /**\r
-         * Unregisters and destroys all registered builders. \r
-         */\r
-        static void destroyBuilders();\r
-\r
-    protected:\r
-        XMLObjectBuilder();\r
-    \r
-    private:\r
-        static std::map<QName,XMLObjectBuilder*> m_map;\r
-        static XMLObjectBuilder* m_default;\r
-    };\r
-\r
-};\r
-\r
-#if defined (_MSC_VER)\r
-    #pragma warning( pop )\r
-#endif\r
-\r
-#endif /* __xmltooling_xmlobjbuilder_h__ */\r
+/*
+ *  Copyright 2001-2009 Internet2
+ * 
+ * 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.
+ */
+
+/**
+ * @file xmltooling/XMLObjectBuilder.h
+ * 
+ * Factory interface for XMLObjects.
+ */
+
+#ifndef __xmltooling_xmlobjbuilder_h__
+#define __xmltooling_xmlobjbuilder_h__
+
+#include <xmltooling/QName.h>
+#include <xmltooling/XMLObject.h>
+#include <xmltooling/util/XMLHelper.h>
+
+#include <map>
+#include <memory>
+
+#if defined (_MSC_VER)
+    #pragma warning( push )
+    #pragma warning( disable : 4250 4251 )
+#endif
+
+namespace xmltooling {
+
+    /**
+     * A factory interface for obtaining XMLObjects.
+     * Subclasses MAY supply additional factory methods.
+     */
+    class XMLTOOL_API XMLObjectBuilder
+    {
+    MAKE_NONCOPYABLE(XMLObjectBuilder);
+    public:
+        virtual ~XMLObjectBuilder();
+        
+        /**
+         * Creates an empty XMLObject with a particular element name.
+         * <p>The results are undefined if localName is NULL or empty.
+         * 
+         * @param nsURI         namespace URI for element
+         * @param localName     local name of element
+         * @param prefix        prefix of element name
+         * @param schemaType    xsi:type of the object
+         * @return the empty XMLObject
+         */
+        virtual XMLObject* buildObject(
+            const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=NULL, const QName* schemaType=NULL
+            ) const=0;
+
+        /**
+         * Creates an empty XMLObject with a particular element name.
+         * 
+         * @param q     QName of element for object
+         * @return the empty XMLObject
+         */
+        XMLObject* buildFromQName(const QName& q) const;
+
+        /**
+         * Creates an unmarshalled XMLObject from a DOM Element.
+         * 
+         * @param element       the unmarshalling source
+         * @param bindDocument  true iff the XMLObject should take ownership of the DOM Document
+         * @return the unmarshalled XMLObject
+         */
+        XMLObject* buildFromElement(xercesc::DOMElement* element, bool bindDocument=false) const;
+
+        /**
+         * Creates an unmarshalled XMLObject from the root of a DOM Document.
+         * 
+         * @param doc           the unmarshalling source
+         * @param bindDocument  true iff the XMLObject should take ownership of the DOM Document
+         * @return the unmarshalled XMLObject
+         */
+        XMLObject* buildFromDocument(xercesc::DOMDocument* doc, bool bindDocument=true) const;
+
+        /**
+         * Creates an unmarshalled XMLObject using the default build method, if a builder can be found.
+         * 
+         * @param element       the unmarshalling source
+         * @param bindDocument  true iff the new XMLObject should take ownership of the DOM Document
+         * @return  the unmarshalled object or NULL if no builder is available 
+         */
+        static XMLObject* buildOneFromElement(xercesc::DOMElement* element, bool bindDocument=false);
+
+        /**
+         * Retrieves an XMLObjectBuilder using the key it was registered with.
+         * 
+         * @param key the key used to register the builder
+         * @return the builder or NULL
+         */
+        static const XMLObjectBuilder* getBuilder(const QName& key);
+
+        /**
+         * Retrieves an XMLObjectBuilder for a given DOM element.
+         * If no match is found, the default builder is returned, if any.
+         * 
+         * @param element the element for which to locate a builder
+         * @return the builder or NULL
+         */
+        static const XMLObjectBuilder* getBuilder(const xercesc::DOMElement* element);
+
+        /**
+         * Retrieves the default XMLObjectBuilder for DOM elements
+         * 
+         * @return the default builder or NULL
+         */
+        static const XMLObjectBuilder* getDefaultBuilder();
+
+        /**
+         * Gets an immutable list of all the builders currently registered.
+         * 
+         * @return list of all the builders currently registered
+         */
+        static const std::map<QName,XMLObjectBuilder*>& getBuilders();
+    
+        /**
+         * Registers a new builder for the given key.
+         * 
+         * @param builderKey the key used to retrieve this builder later
+         * @param builder the builder
+         */
+        static void registerBuilder(const QName& builderKey, XMLObjectBuilder* builder);
+
+        /**
+         * Registers a default builder
+         * 
+         * @param builder the default builder
+         */
+        static void registerDefaultBuilder(XMLObjectBuilder* builder);
+
+        /**
+         * Deregisters a builder.
+         * 
+         * @param builderKey the key for the builder to be deregistered
+         */
+        static void deregisterBuilder(const QName& builderKey);
+
+        /**
+         * Deregisters default builder.
+         */
+        static void deregisterDefaultBuilder();
+
+        /**
+         * Unregisters and destroys all registered builders. 
+         */
+        static void destroyBuilders();
+
+    protected:
+        XMLObjectBuilder();
+    
+    private:
+        static std::map<QName,XMLObjectBuilder*> m_map;
+        static XMLObjectBuilder* m_default;
+    };
+
+};
+
+#if defined (_MSC_VER)
+    #pragma warning( pop )
+#endif
+
+#endif /* __xmltooling_xmlobjbuilder_h__ */
index 6d4915d..d1192dc 100644 (file)
-/*\r
- *  Copyright 2001-2008 Internet2\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/**\r
- * @file xmltooling/base.h\r
- *\r
- * Base header file definitions\r
- * Must be included prior to including any other header\r
- */\r
-\r
-#ifndef __xmltooling_base_h__\r
-#define __xmltooling_base_h__\r
-\r
-#include <typeinfo>\r
-\r
-/* Required for sprintf, used by integer XML attribute macros. */\r
-#include <cstdio>\r
-\r
-#if defined (_MSC_VER) || defined(__BORLANDC__)\r
-  #include <xmltooling/config_pub_win32.h>\r
-#else\r
-  #include <xmltooling/config_pub.h>\r
-#endif\r
-\r
-#ifdef XMLTOOLING_LITE\r
-# define XMLTOOLING_NO_XMLSEC 1\r
-#endif\r
-\r
-#if defined(XMLTOOLING_NO_XMLSEC) || !defined(HAVE_XSECSIZE_T)\r
-# ifdef XMLTOOLING_XERCESC_64BITSAFE\r
-#   include <xercesc/util/XercesDefs.hpp>\r
-    typedef XMLSize_t xsecsize_t;\r
-# else\r
-    typedef unsigned int xsecsize_t;\r
-# endif\r
-#endif\r
-\r
-// Windows and GCC4 Symbol Visibility Macros\r
-#ifdef WIN32\r
-  #define XMLTOOL_IMPORT __declspec(dllimport)\r
-  #define XMLTOOL_EXPORT __declspec(dllexport)\r
-  #define XMLTOOL_DLLLOCAL\r
-  #define XMLTOOL_DLLPUBLIC\r
-#else\r
-  #define XMLTOOL_IMPORT\r
-  #ifdef GCC_HASCLASSVISIBILITY\r
-    #define XMLTOOL_EXPORT __attribute__ ((visibility("default")))\r
-    #define XMLTOOL_DLLLOCAL __attribute__ ((visibility("hidden")))\r
-    #define XMLTOOL_DLLPUBLIC __attribute__ ((visibility("default")))\r
-  #else\r
-    #define XMLTOOL_EXPORT\r
-    #define XMLTOOL_DLLLOCAL\r
-    #define XMLTOOL_DLLPUBLIC\r
-  #endif\r
-#endif\r
-\r
-// Define XMLTOOL_API for DLL builds\r
-#ifdef XMLTOOLING_EXPORTS\r
-  #define XMLTOOL_API XMLTOOL_EXPORT\r
-#else\r
-  #define XMLTOOL_API XMLTOOL_IMPORT\r
-#endif\r
-\r
-// Throwable classes must always be visible on GCC in all binaries\r
-#ifdef WIN32\r
-  #define XMLTOOL_EXCEPTIONAPI(api) api\r
-#elif defined(GCC_HASCLASSVISIBILITY)\r
-  #define XMLTOOL_EXCEPTIONAPI(api) XMLTOOL_EXPORT\r
-#else\r
-  #define XMLTOOL_EXCEPTIONAPI(api)\r
-#endif\r
-\r
-#ifdef _MSC_VER\r
-    #define XMLTOOLING_DOXYGEN(desc) /##** desc */\r
-#else\r
-    #define XMLTOOLING_DOXYGEN(desc)\r
-#endif\r
-\r
-/**\r
- * Blocks copy c'tor and assignment operator for a class.\r
- */\r
-#define MAKE_NONCOPYABLE(type) \\r
-    private: \\r
-        type(const type&); \\r
-        type& operator=(const type&)\r
-\r
-#ifndef DOXYGEN_SKIP\r
-#ifndef NULL\r
-#define NULL    0\r
-#endif\r
-#define UNICODE_LITERAL_1(a) {xercesc::chLatin_##a, xercesc::chNull}\r
-#define UNICODE_LITERAL_2(a,b) {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chNull}\r
-#define UNICODE_LITERAL_3(a,b,c) {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chNull}\r
-#define UNICODE_LITERAL_4(a,b,c,d) {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chNull}\r
-#define UNICODE_LITERAL_5(a,b,c,d,e) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chNull}\r
-#define UNICODE_LITERAL_6(a,b,c,d,e,f) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chNull}\r
-#define UNICODE_LITERAL_7(a,b,c,d,e,f,g) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chNull}\r
-#define UNICODE_LITERAL_8(a,b,c,d,e,f,g,h) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chNull}\r
-#define UNICODE_LITERAL_9(a,b,c,d,e,f,g,h,i) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, xercesc::chNull}\r
-#define UNICODE_LITERAL_10(a,b,c,d,e,f,g,h,i,j) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chNull}\r
-#define UNICODE_LITERAL_11(a,b,c,d,e,f,g,h,i,j,k) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chNull}\r
-#define UNICODE_LITERAL_12(a,b,c,d,e,f,g,h,i,j,k,l) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chNull}\r
-#define UNICODE_LITERAL_13(a,b,c,d,e,f,g,h,i,j,k,l,m) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chNull}\r
-#define UNICODE_LITERAL_14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chNull}\r
-#define UNICODE_LITERAL_15(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chNull}\r
-#define UNICODE_LITERAL_16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chNull}\r
-#define UNICODE_LITERAL_17(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chNull}\r
-#define UNICODE_LITERAL_18(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, xercesc::chNull}\r
-#define UNICODE_LITERAL_19(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chNull}\r
-#define UNICODE_LITERAL_20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chNull}\r
-#define UNICODE_LITERAL_21(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chNull}\r
-#define UNICODE_LITERAL_22(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chNull}\r
-#define UNICODE_LITERAL_23(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chNull}\r
-#define UNICODE_LITERAL_24(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chNull}\r
-#define UNICODE_LITERAL_25(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chNull}\r
-#define UNICODE_LITERAL_26(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, xercesc::chNull}\r
-#define UNICODE_LITERAL_27(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \\r
-        xercesc::chLatin_##aa, xercesc::chNull}\r
-#define UNICODE_LITERAL_28(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \\r
-        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chNull}\r
-#define UNICODE_LITERAL_29(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \\r
-        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chNull}\r
-#define UNICODE_LITERAL_30(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \\r
-        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chNull}\r
-#define UNICODE_LITERAL_31(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \\r
-        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chLatin_##ee, xercesc::chNull}\r
-#define UNICODE_LITERAL_32(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee,ff) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \\r
-        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chLatin_##ee, xercesc::chLatin_##ff, xercesc::chNull}\r
-#define UNICODE_LITERAL_33(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee,ff,gg) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \\r
-        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chLatin_##ee, xercesc::chLatin_##ff, xercesc::chLatin_##gg, xercesc::chNull}\r
-#define UNICODE_LITERAL_34(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee,ff,gg,hh) \\r
-    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \\r
-        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \\r
-        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \\r
-        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chLatin_##ee, xercesc::chLatin_##ff, xercesc::chLatin_##gg, xercesc::chLatin_##hh, xercesc::chNull}\r
-#endif /* DOXYGEN_SKIP */\r
-\r
-/**\r
- * Begins the declaration of an XMLObject specialization for an abstract element/type.\r
- * Basic boilerplate includes a protected constructor, empty virtual destructor,\r
- * and Unicode constants for the default associated element's name and prefix.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the class to declare\r
- * @param base      the base class to derive from using public virtual inheritance\r
- * @param desc      documentation comment for class\r
- */\r
-#define DECL_XMLOBJECT_ABSTRACT(linkage,cname,base,desc) \\r
-    XMLTOOLING_DOXYGEN(desc) \\r
-    class linkage cname : public virtual base { \\r
-    protected: \\r
-        cname() {} \\r
-    public: \\r
-        virtual ~cname() {} \\r
-        XMLTOOLING_DOXYGEN(Element local name) \\r
-        static const XMLCh LOCAL_NAME[]; \\r
-    }\r
-\r
-/**\r
- * Begins the declaration of an XMLObject specialization.\r
- * Basic boilerplate includes a protected constructor, empty virtual destructor,\r
- * and Unicode constants for the default associated element's name and prefix.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the class to declare\r
- * @param base      the base class to derive from using public virtual inheritance\r
- * @param desc      documentation comment for class\r
- */\r
-#define BEGIN_XMLOBJECT(linkage,cname,base,desc) \\r
-    XMLTOOLING_DOXYGEN(desc) \\r
-    class linkage cname : public virtual base { \\r
-    protected: \\r
-        cname() {} \\r
-    public: \\r
-        virtual ~cname() {} \\r
-        XMLTOOLING_DOXYGEN(Type-specific clone method.) \\r
-        virtual cname* clone##cname() const=0; \\r
-        XMLTOOLING_DOXYGEN(Element local name) \\r
-        static const XMLCh LOCAL_NAME[]\r
-\r
-/**\r
- * Begins the declaration of an XMLObject specialization with two base classes.\r
- * Basic boilerplate includes a protected constructor, empty virtual destructor,\r
- * and Unicode constants for the default associated element's name and prefix.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the class to declare\r
- * @param base      the first base class to derive from using public virtual inheritance\r
- * @param base2     the second base class to derive from using public virtual inheritance\r
- * @param desc      documentation comment for class\r
- */\r
-#define BEGIN_XMLOBJECT2(linkage,cname,base,base2,desc) \\r
-    XMLTOOLING_DOXYGEN(desc) \\r
-    class linkage cname : public virtual base, public virtual base2 { \\r
-    protected: \\r
-        cname() {} \\r
-    public: \\r
-        virtual ~cname() {} \\r
-        XMLTOOLING_DOXYGEN(Type-specific clone method.) \\r
-        virtual cname* clone##cname() const=0; \\r
-        XMLTOOLING_DOXYGEN(Element local name) \\r
-        static const XMLCh LOCAL_NAME[]\r
-\r
-/**\r
- * Begins the declaration of an XMLObject specialization with three base classes.\r
- * Basic boilerplate includes a protected constructor, empty virtual destructor,\r
- * and Unicode constants for the default associated element's name and prefix.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the class to declare\r
- * @param base      the first base class to derive from using public virtual inheritance\r
- * @param base2     the second base class to derive from using public virtual inheritance\r
- * @param base3     the third base class to derive from using public virtual inheritance\r
- * @param desc      documentation comment for class\r
- */\r
-#define BEGIN_XMLOBJECT3(linkage,cname,base,base2,base3,desc) \\r
-    XMLTOOLING_DOXYGEN(desc) \\r
-    class linkage cname : public virtual base, public virtual base2, public virtual base3 { \\r
-    protected: \\r
-        cname() {} \\r
-    public: \\r
-        virtual ~cname() {} \\r
-        XMLTOOLING_DOXYGEN(Type-specific clone method.) \\r
-        virtual cname* clone##cname() const=0; \\r
-        XMLTOOLING_DOXYGEN(Element local name) \\r
-        static const XMLCh LOCAL_NAME[]\r
-\r
-/**\r
- * Begins the declaration of an XMLObject specialization with four base classes.\r
- * Basic boilerplate includes a protected constructor, empty virtual destructor,\r
- * and Unicode constants for the default associated element's name and prefix.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the class to declare\r
- * @param base      the first base class to derive from using public virtual inheritance\r
- * @param base2     the second base class to derive from using public virtual inheritance\r
- * @param base3     the third base class to derive from using public virtual inheritance\r
- * @param base4     the fourth base class to derive from using public virtual inheritance\r
- * @param desc      documentation comment for class\r
- */\r
-#define BEGIN_XMLOBJECT4(linkage,cname,base,base2,base3,base4,desc) \\r
-    XMLTOOLING_DOXYGEN(desc) \\r
-    class linkage cname : public virtual base, public virtual base2, public virtual base3, public virtual base4 { \\r
-    protected: \\r
-        cname() {} \\r
-    public: \\r
-        virtual ~cname() {} \\r
-        XMLTOOLING_DOXYGEN(Type-specific clone method.) \\r
-        virtual cname* clone##cname() const=0; \\r
-        XMLTOOLING_DOXYGEN(Element local name) \\r
-        static const XMLCh LOCAL_NAME[]\r
-\r
-/**\r
- * Begins the declaration of an XMLObject specialization with five base classes.\r
- * Basic boilerplate includes a protected constructor, empty virtual destructor,\r
- * and Unicode constants for the default associated element's name and prefix.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the class to declare\r
- * @param base      the first base class to derive from using public virtual inheritance\r
- * @param base2     the second base class to derive from using public virtual inheritance\r
- * @param base3     the third base class to derive from using public virtual inheritance\r
- * @param base4     the fourth base class to derive from using public virtual inheritance\r
- * @param base5     the fifth base class to derive from using public virtual inheritance\r
- * @param desc      documentation comment for class\r
- */\r
-#define BEGIN_XMLOBJECT5(linkage,cname,base,base2,base3,base4,base5,desc) \\r
-    XMLTOOLING_DOXYGEN(desc) \\r
-    class linkage cname : public virtual base, public virtual base2, public virtual base3, public virtual base4, public virtual base5 { \\r
-    protected: \\r
-        cname() {} \\r
-    public: \\r
-        virtual ~cname() {} \\r
-        XMLTOOLING_DOXYGEN(Type-specific clone method.) \\r
-        virtual cname* clone##cname() const=0; \\r
-        XMLTOOLING_DOXYGEN(Element local name) \\r
-        static const XMLCh LOCAL_NAME[]\r
-\r
-/**\r
- * Ends the declaration of an XMLObject specialization.\r
- */\r
-#define END_XMLOBJECT }\r
-\r
-/**\r
- * Declares a static variable holding the XMLObject's element QName.\r
- */\r
-#define DECL_ELEMENT_QNAME \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Element QName) \\r
-        static xmltooling::QName ELEMENT_QNAME\r
-\r
-/**\r
- * Declares a static variable holding the XMLObject's schema type QName.\r
- */\r
-#define DECL_TYPE_QNAME \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Type QName) \\r
-        static xmltooling::QName TYPE_QNAME\r
-\r
-/**\r
- * Implements a static variable holding an XMLObject's element QName.\r
- *\r
- * @param cname             the name of the XMLObject specialization\r
- * @param namespaceURI      the XML namespace of the default associated element\r
- * @param namespacePrefix   the XML namespace prefix of the default associated element\r
- */\r
-#define IMPL_ELEMENT_QNAME(cname,namespaceURI,namespacePrefix) \\r
-    xmltooling::QName cname::ELEMENT_QNAME(namespaceURI,cname::LOCAL_NAME,namespacePrefix)\r
-\r
-/**\r
- * Implements a static variable holding an XMLObject's schema type QName.\r
- *\r
- * @param cname             the name of the XMLObject specialization\r
- * @param namespaceURI      the XML namespace of the default associated element\r
- * @param namespacePrefix   the XML namespace prefix of the default associated element\r
- */\r
-#define IMPL_TYPE_QNAME(cname,namespaceURI,namespacePrefix) \\r
-    xmltooling::QName cname::TYPE_QNAME(namespaceURI,cname::TYPE_NAME,namespacePrefix)\r
-\r
-/**\r
- * Declares abstract set method for a typed XML attribute.\r
- * The get method is omitted.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- * @param type      the attribute's data type\r
- */\r
-#define DECL_INHERITED_XMLOBJECT_ATTRIB(proper,upcased,type) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(proper attribute name) \\r
-        static const XMLCh upcased##_ATTRIB_NAME[]; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-        virtual void set##proper(const type* proper)=0\r
-\r
-/**\r
- * Declares abstract get/set methods for a typed XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- * @param type      the attribute's data type\r
- */\r
-#define DECL_XMLOBJECT_ATTRIB(proper,upcased,type) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(proper attribute name) \\r
-        static const XMLCh upcased##_ATTRIB_NAME[]; \\r
-        XMLTOOLING_DOXYGEN(Returns the proper attribute.) \\r
-        virtual const type* get##proper() const=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-        virtual void set##proper(const type* proper)=0\r
-\r
-/**\r
- * Declares abstract set method for a string XML attribute.\r
- * The get method is omitted.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- */\r
-#define DECL_INHERITED_STRING_ATTRIB(proper,upcased) \\r
-    DECL_INHERITED_XMLOBJECT_ATTRIB(proper,upcased,XMLCh)\r
-\r
-/**\r
- * Declares abstract get/set methods for a string XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- */\r
-#define DECL_STRING_ATTRIB(proper,upcased) \\r
-    DECL_XMLOBJECT_ATTRIB(proper,upcased,XMLCh)\r
-\r
-/**\r
- * Declares abstract set method for a DateTime XML attribute.\r
- * The get method is omitted.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- */\r
-#define DECL_INHERITED_DATETIME_ATTRIB(proper,upcased) \\r
-    DECL_INHERITED_XMLOBJECT_ATTRIB(proper,upcased,xmltooling::DateTime); \\r
-    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-    virtual void set##proper(time_t proper)=0; \\r
-    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-    virtual void set##proper(const XMLCh* proper)=0\r
-\r
-/**\r
- * Declares abstract get/set methods for a DateTime XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- */\r
-#define DECL_DATETIME_ATTRIB(proper,upcased) \\r
-    DECL_XMLOBJECT_ATTRIB(proper,upcased,xmltooling::DateTime); \\r
-    XMLTOOLING_DOXYGEN(Returns the proper attribute in epoch form.) \\r
-    virtual time_t get##proper##Epoch() const=0; \\r
-    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-    virtual void set##proper(time_t proper)=0; \\r
-    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-    virtual void set##proper(const XMLCh* proper)=0\r
-\r
-/**\r
- * Declares abstract set method for an integer XML attribute.\r
- * The get method is omitted.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- */\r
-#define DECL_INHERITED_INTEGER_ATTRIB(proper,upcased) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(proper attribute name) \\r
-        static const XMLCh upcased##_ATTRIB_NAME[]; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute using a string value.) \\r
-        virtual void set##proper(const XMLCh* proper)=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-        virtual void set##proper(int proper)=0\r
-\r
-/**\r
- * Declares abstract get/set methods for an integer XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- */\r
-#define DECL_INTEGER_ATTRIB(proper,upcased) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(proper attribute name) \\r
-        static const XMLCh upcased##_ATTRIB_NAME[]; \\r
-        XMLTOOLING_DOXYGEN(Returns the proper attribute after a NULL indicator.) \\r
-        virtual std::pair<bool,int> get##proper() const=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute using a string value.) \\r
-        virtual void set##proper(const XMLCh* proper)=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-        virtual void set##proper(int proper)=0\r
-\r
-/**\r
- * Declares abstract get/set methods for a boolean XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param upcased   the upcased name of the attribute\r
- * @param def       the default/presumed value, if no explicit value has been set\r
- */\r
-#define DECL_BOOLEAN_ATTRIB(proper,upcased,def) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(proper attribute name) \\r
-        static const XMLCh upcased##_ATTRIB_NAME[]; \\r
-        XMLTOOLING_DOXYGEN(Returns the proper attribute or def if not set.) \\r
-        bool proper() const { \\r
-            switch (get##proper()) { \\r
-                case xmlconstants::XML_BOOL_TRUE: \\r
-                case xmlconstants::XML_BOOL_ONE: \\r
-                    return true; \\r
-                case xmlconstants::XML_BOOL_FALSE: \\r
-                case xmlconstants::XML_BOOL_ZERO: \\r
-                    return false; \\r
-                default: \\r
-                    return def; \\r
-            } \\r
-        } \\r
-        XMLTOOLING_DOXYGEN(Returns the proper attribute as an explicit enumerated value.) \\r
-        virtual xmlconstants::xmltooling_bool_t get##proper() const=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute using an enumerated value.) \\r
-        virtual void proper(xmlconstants::xmltooling_bool_t value)=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \\r
-        void proper(bool value) { \\r
-            proper(value ? xmlconstants::XML_BOOL_ONE : xmlconstants::XML_BOOL_ZERO); \\r
-        } \\r
-        XMLTOOLING_DOXYGEN(Sets the proper attribute using a string constant.) \\r
-        void set##proper(const XMLCh* value) { \\r
-            if (value) { \\r
-                switch (*value) { \\r
-                    case xercesc::chLatin_t: \\r
-                        proper(xmlconstants::XML_BOOL_TRUE); \\r
-                        break; \\r
-                    case xercesc::chLatin_f: \\r
-                        proper(xmlconstants::XML_BOOL_FALSE); \\r
-                        break; \\r
-                    case xercesc::chDigit_1: \\r
-                        proper(xmlconstants::XML_BOOL_ONE); \\r
-                        break; \\r
-                    case xercesc::chDigit_0: \\r
-                        proper(xmlconstants::XML_BOOL_ZERO); \\r
-                        break; \\r
-                    default: \\r
-                        proper(xmlconstants::XML_BOOL_NULL); \\r
-                } \\r
-            } \\r
-            else \\r
-                proper(xmlconstants::XML_BOOL_NULL); \\r
-        }\r
-\r
-/**\r
- * Implements get/set methods and a private member for a typed XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param type      the attribute's data type\r
- */\r
-#define IMPL_XMLOBJECT_ATTRIB(proper,type) \\r
-    protected: \\r
-        type* m_##proper; \\r
-    public: \\r
-        const type* get##proper() const { \\r
-            return m_##proper; \\r
-        } \\r
-        void set##proper(const type* proper) { \\r
-            m_##proper = prepareForAssignment(m_##proper,proper); \\r
-        }\r
-\r
-/**\r
- * Implements get/set methods and a private member for a string XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- */\r
-#define IMPL_STRING_ATTRIB(proper) \\r
-    IMPL_XMLOBJECT_ATTRIB(proper,XMLCh)\r
-\r
-/**\r
- * Implements get/set methods and a private member for a string XML attribute,\r
- * plus a getXMLID override.\r
- *\r
- * @param proper    the proper name of the attribute\r
- */\r
-#define IMPL_ID_ATTRIB(proper) \\r
-    IMPL_XMLOBJECT_ATTRIB(proper,XMLCh) \\r
-    const XMLCh* getXMLID() const { \\r
-        return m_##proper; \\r
-    }\r
-\r
-/**\r
- * Implements get/set methods and a private member for a string XML attribute,\r
- * plus a getXMLID override and attribute node clearance when DOM is dropped.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define IMPL_ID_ATTRIB_EX(proper, ucase, namespaceURI) \\r
-    IMPL_XMLOBJECT_ATTRIB(proper,XMLCh) \\r
-    const XMLCh* getXMLID() const { \\r
-        return m_##proper; \\r
-    } \\r
-    void releaseDOM() const { \\r
-        if (getDOM()) \\r
-            getDOM()->removeAttributeNS(namespaceURI, ucase##_ATTRIB_NAME); \\r
-        AbstractDOMCachingXMLObject::releaseDOM(); \\r
-    }\r
-\r
-/**\r
- * Implements get/set methods and a private member for a DateTime XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param fallback  epoch to return when attribute is NULL\r
- */\r
-#define IMPL_DATETIME_ATTRIB(proper,fallback) \\r
-    IMPL_DATETIME_ATTRIB_EX(proper,fallback,false)\r
-\r
-/**\r
- * Implements get/set methods and a private member for a duration-valued DateTime XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param fallback  epoch to return when attribute is NULL\r
- */\r
-#define IMPL_DURATION_ATTRIB(proper,fallback) \\r
-    IMPL_DATETIME_ATTRIB_EX(proper,fallback,true)\r
-\r
-/**\r
- * Implements get/set methods and a private member for a DateTime XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param fallback  epoch to return when attribute is NULL\r
- * @param duration  true iff the attribute should be handled as a duration\r
- */\r
-#define IMPL_DATETIME_ATTRIB_EX(proper,fallback,duration) \\r
-    protected: \\r
-        DateTime* m_##proper; \\r
-        time_t m_##proper##Epoch; \\r
-    public: \\r
-        const DateTime* get##proper() const { \\r
-            return m_##proper; \\r
-        } \\r
-        time_t get##proper##Epoch() const { \\r
-            return m_##proper ? m_##proper##Epoch : fallback; \\r
-        } \\r
-        void set##proper(const DateTime* proper) { \\r
-            m_##proper = prepareForAssignment(m_##proper,proper); \\r
-            if (m_##proper) \\r
-                m_##proper##Epoch=m_##proper->getEpoch(duration); \\r
-        } \\r
-        void set##proper(time_t proper) { \\r
-            m_##proper = prepareForAssignment(m_##proper,proper,duration); \\r
-            m_##proper##Epoch = proper; \\r
-        } \\r
-        void set##proper(const XMLCh* proper) { \\r
-            m_##proper = prepareForAssignment(m_##proper,proper,duration); \\r
-            if (m_##proper) \\r
-                m_##proper##Epoch=m_##proper->getEpoch(duration); \\r
-        }\r
-\r
-/**\r
- * Implements get/set methods and a private member for an integer XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- */\r
-#define IMPL_INTEGER_ATTRIB(proper) \\r
-    protected: \\r
-        XMLCh* m_##proper; \\r
-    public: \\r
-        pair<bool,int> get##proper() const { \\r
-            return make_pair((m_##proper!=NULL),(m_##proper!=NULL ? xercesc::XMLString::parseInt(m_##proper): 0)); \\r
-        } \\r
-        void set##proper(const XMLCh* proper) { \\r
-            m_##proper = prepareForAssignment(m_##proper,proper); \\r
-        } \\r
-        void set##proper(int proper) { \\r
-            char buf##proper[64]; \\r
-            sprintf(buf##proper,"%d",proper); \\r
-            auto_ptr_XMLCh wide##proper(buf##proper); \\r
-            set##proper(wide##proper.get()); \\r
-        }\r
-\r
-/**\r
- * Implements get/set methods and a private member for a boolean XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- */\r
-#define IMPL_BOOLEAN_ATTRIB(proper) \\r
-    protected: \\r
-        xmlconstants::xmltooling_bool_t m_##proper; \\r
-    public: \\r
-        xmlconstants::xmltooling_bool_t get##proper() const { \\r
-            return m_##proper; \\r
-        } \\r
-        void proper(xmlconstants::xmltooling_bool_t value) { \\r
-            if (m_##proper != value) { \\r
-                releaseThisandParentDOM(); \\r
-                m_##proper = value; \\r
-            } \\r
-        }\r
-\r
-/**\r
- * Implements get/set methods and a private member for a typed, qualified XML attribute.\r
- *\r
- * @param proper    the proper name of the attribute\r
- * @param type      the attribute's data type\r
- */\r
-#define IMPL_XMLOBJECT_FOREIGN_ATTRIB(proper,type) \\r
-    protected: \\r
-    XMLCh* m_##proper##Prefix; \\r
-        type* m_##proper; \\r
-    public: \\r
-        const type* get##proper() const { \\r
-            return m_##proper; \\r
-        } \\r
-        void set##proper(const type* proper) { \\r
-            m_##proper = prepareForAssignment(m_##proper,proper); \\r
-            XMLString::release(&m_##proper##Prefix); \\r
-            m_##proper##Prefix = NULL; \\r
-        }\r
-\r
-/**\r
- * Declares abstract set method for a typed XML child object in a foreign namespace.\r
- * The get method is omitted.\r
- *\r
- * @param proper    the proper name of the child type\r
- * @param ns        the C++ namespace for the type\r
- */\r
-#define DECL_INHERITED_TYPED_FOREIGN_CHILD(proper,ns) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Sets the proper child.) \\r
-        virtual void set##proper(ns::proper* child)=0\r
-\r
-/**\r
- * Declares abstract get/set methods for a typed XML child object in a foreign namespace.\r
- *\r
- * @param proper    the proper name of the child type\r
- * @param ns        the C++ namespace for the type\r
- */\r
-#define DECL_TYPED_FOREIGN_CHILD(proper,ns) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Returns the proper child.) \\r
-        virtual ns::proper* get##proper() const=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper child.) \\r
-        virtual void set##proper(ns::proper* child)=0\r
-\r
-/**\r
- * Declares abstract set method for a typed XML child object.\r
- * The get method is omitted.\r
- *\r
- * @param proper    the proper name of the child type\r
- */\r
-#define DECL_INHERITED_TYPED_CHILD(proper) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Sets the proper child.) \\r
-        virtual void set##proper(proper* child)=0\r
-\r
-/**\r
- * Declares abstract get/set methods for a typed XML child object.\r
- *\r
- * @param proper    the proper name of the child type\r
- */\r
-#define DECL_TYPED_CHILD(proper) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Returns the proper child.) \\r
-        virtual proper* get##proper() const=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper child.) \\r
-        virtual void set##proper(proper* child)=0\r
-\r
-/**\r
- * Declares abstract get/set methods for a generic XML child object.\r
- *\r
- * @param proper    the proper name of the child\r
- */\r
-#define DECL_XMLOBJECT_CHILD(proper) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Returns the proper child.) \\r
-        virtual xmltooling::XMLObject* get##proper() const=0; \\r
-        XMLTOOLING_DOXYGEN(Sets the proper child.) \\r
-        virtual void set##proper(xmltooling::XMLObject* child)=0\r
-\r
-\r
-/**\r
- * Implements get/set methods and a private list iterator member for a typed XML child object.\r
- *\r
- * @param proper    the proper name of the child type\r
- */\r
-#define IMPL_TYPED_CHILD(proper) \\r
-    protected: \\r
-        proper* m_##proper; \\r
-        std::list<xmltooling::XMLObject*>::iterator m_pos_##proper; \\r
-    public: \\r
-        proper* get##proper() const { \\r
-            return m_##proper; \\r
-        } \\r
-        void set##proper(proper* child) { \\r
-            prepareForAssignment(m_##proper,child); \\r
-            *m_pos_##proper = m_##proper = child; \\r
-        }\r
-\r
-/**\r
- * Implements get/set methods and a private list iterator member for\r
- * a typed XML child object in a foreign namespace\r
- *\r
- * @param proper    the proper name of the child type\r
- * @param ns        the C++ namespace for the type\r
- */\r
-#define IMPL_TYPED_FOREIGN_CHILD(proper,ns) \\r
-    protected: \\r
-        ns::proper* m_##proper; \\r
-        std::list<xmltooling::XMLObject*>::iterator m_pos_##proper; \\r
-    public: \\r
-        ns::proper* get##proper() const { \\r
-            return m_##proper; \\r
-        } \\r
-        void set##proper(ns::proper* child) { \\r
-            prepareForAssignment(m_##proper,child); \\r
-            *m_pos_##proper = m_##proper = child; \\r
-        }\r
-\r
-/**\r
- * Implements get/set methods and a private list iterator member for a generic XML child object.\r
- *\r
- * @param proper    the proper name of the child\r
- */\r
-#define IMPL_XMLOBJECT_CHILD(proper) \\r
-    protected: \\r
-        xmltooling::XMLObject* m_##proper; \\r
-        std::list<xmltooling::XMLObject*>::iterator m_pos_##proper; \\r
-    public: \\r
-        xmltooling::XMLObject* get##proper() const { \\r
-            return m_##proper; \\r
-        } \\r
-        void set##proper(xmltooling::XMLObject* child) { \\r
-            prepareForAssignment(m_##proper,child); \\r
-            *m_pos_##proper = m_##proper = child; \\r
-        }\r
-\r
-/**\r
- * Declares abstract get/set methods for a typed XML child collection.\r
- *\r
- * @param proper    the proper name of the child type\r
- */\r
-#define DECL_TYPED_CHILDREN(proper) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \\r
-        virtual VectorOf(proper) get##proper##s()=0; \\r
-        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \\r
-        virtual const std::vector<proper*>& get##proper##s() const=0\r
-\r
-/**\r
- * Declares abstract get/set methods for a typed XML child collection in a foreign namespace.\r
- *\r
- * @param proper    the proper name of the child type\r
- * @param ns        the C++ namespace for the type\r
- */\r
-#define DECL_TYPED_FOREIGN_CHILDREN(proper,ns) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \\r
-        virtual VectorOf(ns::proper) get##proper##s()=0; \\r
-        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \\r
-        virtual const std::vector<ns::proper*>& get##proper##s() const=0\r
-\r
-/**\r
- * Declares abstract get/set methods for a generic XML child collection.\r
- *\r
- * @param proper    the proper name of the child\r
- */\r
-#define DECL_XMLOBJECT_CHILDREN(proper) \\r
-    public: \\r
-        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \\r
-        virtual VectorOf(xmltooling::XMLObject) get##proper##s()=0; \\r
-        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \\r
-        virtual const std::vector<xmltooling::XMLObject*>& get##proper##s() const=0\r
-\r
-/**\r
- * Implements get method and a private vector member for a typed XML child collection.\r
- *\r
- * @param proper    the proper name of the child type\r
- * @param fence     insertion fence for new objects of the child collection in backing list\r
- */\r
-#define IMPL_TYPED_CHILDREN(proper,fence) \\r
-    protected: \\r
-        std::vector<proper*> m_##proper##s; \\r
-    public: \\r
-        VectorOf(proper) get##proper##s() { \\r
-            return VectorOf(proper)(this, m_##proper##s, &m_children, fence); \\r
-        } \\r
-        const std::vector<proper*>& get##proper##s() const { \\r
-            return m_##proper##s; \\r
-        }\r
-\r
-/**\r
- * Implements get method and a private vector member for a typed XML child collection\r
- * in a foreign namespace.\r
- *\r
- * @param proper    the proper name of the child type\r
- * @param ns        the C++ namespace for the type\r
- * @param fence     insertion fence for new objects of the child collection in backing list\r
- */\r
-#define IMPL_TYPED_FOREIGN_CHILDREN(proper,ns,fence) \\r
-    protected: \\r
-        std::vector<ns::proper*> m_##proper##s; \\r
-    public: \\r
-        VectorOf(ns::proper) get##proper##s() { \\r
-            return VectorOf(ns::proper)(this, m_##proper##s, &m_children, fence); \\r
-        } \\r
-        const std::vector<ns::proper*>& get##proper##s() const { \\r
-            return m_##proper##s; \\r
-        }\r
-\r
-/**\r
- * Implements get method and a private vector member for a generic XML child collection.\r
- *\r
- * @param proper    the proper name of the child\r
- * @param fence     insertion fence for new objects of the child collection in backing list\r
- */\r
-#define IMPL_XMLOBJECT_CHILDREN(proper,fence) \\r
-    protected: \\r
-        std::vector<xmltooling::XMLObject*> m_##proper##s; \\r
-    public: \\r
-        VectorOf(xmltooling::XMLObject) get##proper##s() { \\r
-            return VectorOf(xmltooling::XMLObject)(this, m_##proper##s, &m_children, fence); \\r
-        } \\r
-        const std::vector<xmltooling::XMLObject*>& get##proper##s() const { \\r
-            return m_##proper##s; \\r
-        }\r
-\r
-/**\r
- * Implements marshalling for a string attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define MARSHALL_STRING_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (m_##proper && *m_##proper) { \\r
-        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \\r
-    }\r
-\r
-/**\r
- * Implements marshalling for a DateTime attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define MARSHALL_DATETIME_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (m_##proper) { \\r
-        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper->getRawData()); \\r
-    }\r
-\r
-/**\r
- * Implements marshalling for an integer attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define MARSHALL_INTEGER_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (m_##proper && *m_##proper) { \\r
-        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \\r
-    }\r
-\r
-/**\r
- * Implements marshalling for a boolean attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define MARSHALL_BOOLEAN_ATTRIB(proper,ucase,namespaceURI) \\r
-    switch (m_##proper) { \\r
-        case xmlconstants::XML_BOOL_TRUE: \\r
-            domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, xmlconstants::XML_TRUE); \\r
-            break; \\r
-        case xmlconstants::XML_BOOL_ONE: \\r
-            domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, xmlconstants::XML_ONE); \\r
-            break; \\r
-        case xmlconstants::XML_BOOL_FALSE: \\r
-            domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, xmlconstants::XML_FALSE); \\r
-            break; \\r
-        case xmlconstants::XML_BOOL_ZERO: \\r
-            domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, xmlconstants::XML_ZERO); \\r
-            break; \\r
-        case xmlconstants::XML_BOOL_NULL: \\r
-            break; \\r
-    }\r
-\r
-/**\r
- * Implements marshalling for a QName attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define MARSHALL_QNAME_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (m_##proper) { \\r
-        auto_ptr_XMLCh qstr(m_##proper->toString().c_str()); \\r
-        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, qstr.get()); \\r
-    }\r
-\r
-#ifdef XMLTOOLING_XERCESC_BOOLSETIDATTRIBUTE\r
-/**\r
- * Implements marshalling for an ID attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-# define MARSHALL_ID_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (m_##proper && *m_##proper) { \\r
-        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \\r
-        domElement->setIdAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, true); \\r
-    }\r
-#else\r
-/**\r
- * Implements marshalling for an ID attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-# define MARSHALL_ID_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (m_##proper && *m_##proper) { \\r
-        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \\r
-        domElement->setIdAttributeNS(namespaceURI, ucase##_ATTRIB_NAME); \\r
-    }\r
-#endif\r
-\r
-/**\r
- * Implements unmarshalling process branch for a string attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define PROC_STRING_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (xmltooling::XMLHelper::isNodeNamed(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \\r
-        set##proper(attribute->getValue()); \\r
-        return; \\r
-    }\r
-\r
-#ifdef XMLTOOLING_XERCESC_BOOLSETIDATTRIBUTE\r
-/**\r
- * Implements unmarshalling process branch for an ID attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-# define PROC_ID_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (xmltooling::XMLHelper::isNodeNamed(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \\r
-        set##proper(attribute->getValue()); \\r
-        attribute->getOwnerElement()->setIdAttributeNode(attribute, true); \\r
-        return; \\r
-    }\r
-#else\r
-/**\r
- * Implements unmarshalling process branch for an ID attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-# define PROC_ID_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (xmltooling::XMLHelper::isNodeNamed(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \\r
-        set##proper(attribute->getValue()); \\r
-        attribute->getOwnerElement()->setIdAttributeNode(attribute); \\r
-        return; \\r
-    }\r
-#endif\r
-\r
-/**\r
- * Implements unmarshalling process branch for a DateTime attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define PROC_DATETIME_ATTRIB(proper,ucase,namespaceURI) \\r
-    PROC_STRING_ATTRIB(proper,ucase,namespaceURI)\r
-\r
-/**\r
- * Implements unmarshalling process branch for a DateTime attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define PROC_QNAME_ATTRIB(proper,ucase,namespaceURI) \\r
-    if (xmltooling::XMLHelper::isNodeNamed(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \\r
-        set##proper(XMLHelper::getAttributeValueAsQName(attribute)); \\r
-        return; \\r
-    }\r
-\r
-/**\r
- * Implements unmarshalling process branch for an integer attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define PROC_INTEGER_ATTRIB(proper,ucase,namespaceURI) \\r
-    PROC_STRING_ATTRIB(proper,ucase,namespaceURI)\r
-\r
-/**\r
- * Implements unmarshalling process branch for a boolean attribute\r
- *\r
- * @param proper        the proper name of the attribute\r
- * @param ucase         the upcased name of the attribute\r
- * @param namespaceURI  the XML namespace of the attribute\r
- */\r
-#define PROC_BOOLEAN_ATTRIB(proper,ucase,namespaceURI) \\r
-    PROC_STRING_ATTRIB(proper,ucase,namespaceURI)\r
-\r
-/**\r
- * Implements unmarshalling process branch for typed child collection element\r
- *\r
- * @param proper        the proper name of the child type\r
- * @param namespaceURI  the XML namespace of the child element\r
- * @param force         bypass use of hint and just cast down to check child\r
- */\r
-#define PROC_TYPED_CHILDREN(proper,namespaceURI,force) \\r
-    if (force || xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,proper::LOCAL_NAME)) { \\r
-        proper* typesafe=dynamic_cast<proper*>(childXMLObject); \\r
-        if (typesafe) { \\r
-            get##proper##s().push_back(typesafe); \\r
-            return; \\r
-        } \\r
-    }\r
-\r
-/**\r
- * Implements unmarshalling process branch for typed child collection element\r
- * in a foreign namespace.\r
- *\r
- * @param proper        the proper name of the child type\r
- * @param ns            the C++ namespace for the type\r
- * @param namespaceURI  the XML namespace of the child element\r
- * @param force         bypass use of hint and just cast down to check child\r
- */\r
-#define PROC_TYPED_FOREIGN_CHILDREN(proper,ns,namespaceURI,force) \\r
-    if (force || xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,ns::proper::LOCAL_NAME)) { \\r
-        ns::proper* typesafe=dynamic_cast<ns::proper*>(childXMLObject); \\r
-        if (typesafe) { \\r
-            get##proper##s().push_back(typesafe); \\r
-            return; \\r
-        } \\r
-    }\r
-\r
-/**\r
- * Implements unmarshalling process branch for typed child singleton element\r
- *\r
- * @param proper        the proper name of the child type\r
- * @param namespaceURI  the XML namespace of the child element\r
- * @param force         bypass use of hint and just cast down to check child\r
- */\r
-#define PROC_TYPED_CHILD(proper,namespaceURI,force) \\r
-    if (force || xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,proper::LOCAL_NAME)) { \\r
-        proper* typesafe=dynamic_cast<proper*>(childXMLObject); \\r
-        if (typesafe && !m_##proper) { \\r
-            typesafe->setParent(this); \\r
-            *m_pos_##proper = m_##proper = typesafe; \\r
-            return; \\r
-        } \\r
-    }\r
-\r
-/**\r
- * Implements unmarshalling process branch for typed child singleton element\r
- * in a foreign namespace.\r
- *\r
- * @param proper        the proper name of the child type\r
- * @param ns            the C++ namespace for the type\r
- * @param namespaceURI  the XML namespace of the child element\r
- * @param force         bypass use of hint and just cast down to check child\r
- */\r
-#define PROC_TYPED_FOREIGN_CHILD(proper,ns,namespaceURI,force) \\r
-    if (force || xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,ns::proper::LOCAL_NAME)) { \\r
-        ns::proper* typesafe=dynamic_cast<ns::proper*>(childXMLObject); \\r
-        if (typesafe && !m_##proper) { \\r
-            typesafe->setParent(this); \\r
-            *m_pos_##proper = m_##proper = typesafe; \\r
-            return; \\r
-        } \\r
-    }\r
-\r
-/**\r
- * Implements unmarshalling process branch for a generic child singleton element\r
- *\r
- * @param proper        the proper name of the child type\r
- * @param namespaceURI  the XML namespace of the child element\r
- */\r
-#define PROC_XMLOBJECT_CHILD(proper,namespaceURI) \\r
-    if (xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,proper::LOCAL_NAME)) { \\r
-        if (!m_##proper) { \\r
-            childXMLObject->setParent(this); \\r
-            *m_pos_##proper = m_##proper = childXMLObject; \\r
-            return; \\r
-        } \\r
-    }\r
-\r
-/**\r
- * Declares aliased get/set methods for named XML element simple content.\r
- *\r
- * @param proper    the proper name to label the element's content\r
- */\r
-#define DECL_SIMPLE_CONTENT(proper) \\r
-    XMLTOOLING_DOXYGEN(Returns proper.) \\r
-    const XMLCh* get##proper() const { \\r
-        return getTextContent(); \\r
-    } \\r
-    XMLTOOLING_DOXYGEN(Sets or clears proper.) \\r
-    void set##proper(const XMLCh* proper) { \\r
-        setTextContent(proper); \\r
-    }\r
-\r
-/**\r
- * Declares aliased get/set methods for named integer XML element content.\r
- *\r
- * @param proper    the proper name to label the element's content\r
- */\r
-#define DECL_INTEGER_CONTENT(proper) \\r
-    XMLTOOLING_DOXYGEN(Returns proper in integer form after a NULL indicator.) \\r
-    std::pair<bool,int> get##proper() const { \\r
-        return std::make_pair((getTextContent()!=NULL), (getTextContent()!=NULL ? xercesc::XMLString::parseInt(getTextContent()) : 0)); \\r
-    } \\r
-    XMLTOOLING_DOXYGEN(Sets proper.) \\r
-    void set##proper(int proper) { \\r
-        char buf[64]; \\r
-        sprintf(buf,"%d",proper); \\r
-        xmltooling::auto_ptr_XMLCh widebuf(buf); \\r
-        setTextContent(widebuf.get()); \\r
-    } \\r
-    XMLTOOLING_DOXYGEN(Sets or clears proper.) \\r
-    void set##proper(const XMLCh* proper) { \\r
-        setTextContent(proper); \\r
-    }\r
-\r
-/**\r
- * Implements cloning methods for an XMLObject specialization implementation class.\r
- *\r
- * @param cname    the name of the XMLObject specialization\r
- */\r
-#define IMPL_XMLOBJECT_CLONE(cname) \\r
-    cname* clone##cname() const { \\r
-        return dynamic_cast<cname*>(clone()); \\r
-    } \\r
-    xmltooling::XMLObject* clone() const { \\r
-        std::auto_ptr<xmltooling::XMLObject> domClone(xmltooling::AbstractDOMCachingXMLObject::clone()); \\r
-        cname##Impl* ret=dynamic_cast<cname##Impl*>(domClone.get()); \\r
-        if (ret) { \\r
-            domClone.release(); \\r
-            return ret; \\r
-        } \\r
-        return new cname##Impl(*this); \\r
-    }\r
-\r
-/**\r
- * Declares an XMLObject specialization with a simple content model and type,\r
- * handling it as string data.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper    the proper name to label the element's content\r
- * @param desc      documentation for class\r
- */\r
-#define DECL_XMLOBJECT_SIMPLE(linkage,cname,proper,desc) \\r
-    BEGIN_XMLOBJECT(linkage,cname,xmltooling::XMLObject,desc); \\r
-        DECL_SIMPLE_CONTENT(proper); \\r
-    END_XMLOBJECT\r
-\r
-/**\r
- * Declares and defines an implementation class for an XMLObject with\r
- * a simple content model and type, handling it as string data.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the XMLObject specialization\r
- */\r
-#define DECL_XMLOBJECTIMPL_SIMPLE(linkage,cname) \\r
-    class linkage cname##Impl \\r
-        : public virtual cname, \\r
-            public xmltooling::AbstractSimpleElement, \\r
-            public xmltooling::AbstractDOMCachingXMLObject, \\r
-            public xmltooling::AbstractXMLObjectMarshaller, \\r
-            public xmltooling::AbstractXMLObjectUnmarshaller \\r
-    { \\r
-    public: \\r
-        virtual ~cname##Impl() {} \\r
-        cname##Impl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) \\r
-            : xmltooling::AbstractXMLObject(nsURI, localName, prefix, schemaType) { \\r
-        } \\r
-        cname##Impl(const cname##Impl& src) \\r
-            : xmltooling::AbstractXMLObject(src), \\r
-                xmltooling::AbstractSimpleElement(src), \\r
-                xmltooling::AbstractDOMCachingXMLObject(src) {} \\r
-        IMPL_XMLOBJECT_CLONE(cname) \\r
-    }\r
-\r
-#ifdef HAVE_COVARIANT_RETURNS\r
-\r
-/**\r
- * Begins the declaration of an XMLObjectBuilder specialization.\r
- * Basic boilerplate includes an empty virtual destructor, and\r
- * a default builder that defaults the element name.\r
- *\r
- * @param linkage           linkage specifier for the class\r
- * @param cname             the name of the XMLObject specialization\r
- * @param namespaceURI      the XML namespace of the default associated element\r
- * @param namespacePrefix   the XML namespace prefix of the default associated element\r
- */\r
-#define BEGIN_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix) \\r
-    XMLTOOLING_DOXYGEN(Builder for cname objects.) \\r
-    class linkage cname##Builder : public xmltooling::ConcreteXMLObjectBuilder { \\r
-    public: \\r
-        virtual ~cname##Builder() {} \\r
-        XMLTOOLING_DOXYGEN(Default builder.) \\r
-        virtual cname* buildObject() const { \\r
-            return buildObject(namespaceURI,cname::LOCAL_NAME,namespacePrefix); \\r
-        } \\r
-        XMLTOOLING_DOXYGEN(Builder that allows element/type override.) \\r
-        virtual cname* buildObject( \\r
-            const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=NULL, const xmltooling::QName* schemaType=NULL \\r
-            ) const\r
-\r
-/**\r
- * Ends the declaration of an XMLObjectBuilder specialization.\r
- */\r
-#define END_XMLOBJECTBUILDER }\r
-\r
-/**\r
- * Declares a generic XMLObjectBuilder specialization.\r
- *\r
- * @param linkage           linkage specifier for the class\r
- * @param cname             the name of the XMLObject specialization\r
- * @param namespaceURI      the XML namespace of the default associated element\r
- * @param namespacePrefix   the XML namespace prefix of the default associated element\r
- */\r
- #define DECL_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix) \\r
-    BEGIN_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix); \\r
-    XMLTOOLING_DOXYGEN(Singleton builder.) \\r
-    static cname* build##cname() { \\r
-        const cname##Builder* b = dynamic_cast<const cname##Builder*>( \\r
-            XMLObjectBuilder::getBuilder(xmltooling::QName(namespaceURI,cname::LOCAL_NAME)) \\r
-            ); \\r
-        if (b) \\r
-            return b->buildObject(); \\r
-        throw xmltooling::XMLObjectException("Unable to obtain typed builder for "#cname"."); \\r
-    } \\r
-    END_XMLOBJECTBUILDER\r
-\r
-/**\r
- * Implements the standard XMLObjectBuilder specialization function.\r
- *\r
- * @param cname the name of the XMLObject specialization\r
- */\r
-#define IMPL_XMLOBJECTBUILDER(cname) \\r
-    cname* cname##Builder::buildObject( \\r
-        const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType \\r
-        ) const \\r
-    { \\r
-        return new cname##Impl(nsURI,localName,prefix,schemaType); \\r
-    }\r
-\r
-#else   /* !HAVE_COVARIANT_RETURNS */\r
-\r
-/**\r
- * Begins the declaration of an XMLObjectBuilder specialization.\r
- * Basic boilerplate includes an empty virtual destructor, and\r
- * a default builder that defaults the element name.\r
- *\r
- * @param linkage           linkage specifier for the class\r
- * @param cname             the name of the XMLObject specialization\r
- * @param namespaceURI      the XML namespace of the default associated element\r
- * @param namespacePrefix   the XML namespace prefix of the default associated element\r
- */\r
-#define BEGIN_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix) \\r
-    XMLTOOLING_DOXYGEN(Builder for cname objects.) \\r
-    class linkage cname##Builder : public xmltooling::ConcreteXMLObjectBuilder { \\r
-    public: \\r
-        virtual ~cname##Builder() {} \\r
-        XMLTOOLING_DOXYGEN(Default builder.) \\r
-        virtual xmltooling::XMLObject* buildObject() const { \\r
-            return buildObject(namespaceURI,cname::LOCAL_NAME,namespacePrefix); \\r
-        } \\r
-        XMLTOOLING_DOXYGEN(Builder that allows element/type override.) \\r
-        virtual xmltooling::XMLObject* buildObject( \\r
-            const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=NULL, const xmltooling::QName* schemaType=NULL \\r
-            ) const\r
-\r
-/**\r
- * Ends the declaration of an XMLObjectBuilder specialization.\r
- */\r
-#define END_XMLOBJECTBUILDER }\r
-\r
-/**\r
- * Declares a generic XMLObjectBuilder specialization.\r
- *\r
- * @param linkage           linkage specifier for the class\r
- * @param cname             the name of the XMLObject specialization\r
- * @param namespaceURI      the XML namespace of the default associated element\r
- * @param namespacePrefix   the XML namespace prefix of the default associated element\r
- */\r
- #define DECL_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix) \\r
-    BEGIN_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix); \\r
-    XMLTOOLING_DOXYGEN(Singleton builder.) \\r
-    static cname* build##cname() { \\r
-        const cname##Builder* b = dynamic_cast<const cname##Builder*>( \\r
-            XMLObjectBuilder::getBuilder(xmltooling::QName(namespaceURI,cname::LOCAL_NAME)) \\r
-            ); \\r
-        if (b) \\r
-            return dynamic_cast<cname*>(b->buildObject()); \\r
-        throw xmltooling::XMLObjectException("Unable to obtain typed builder for "#cname"."); \\r
-    } \\r
-    END_XMLOBJECTBUILDER\r
-\r
-/**\r
- * Implements the standard XMLObjectBuilder specialization function.\r
- *\r
- * @param cname the name of the XMLObject specialization\r
- */\r
-#define IMPL_XMLOBJECTBUILDER(cname) \\r
-    xmltooling::XMLObject* cname##Builder::buildObject( \\r
-        const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType \\r
-        ) const \\r
-    { \\r
-        return new cname##Impl(nsURI,localName,prefix,schemaType); \\r
-    }\r
-\r
-#endif  /* HAVE_COVARIANT_RETURNS */\r
-\r
-/**\r
- * Begins the declaration of a Schema Validator specialization.\r
- *\r
- * @param linkage           linkage specifier for the class\r
- * @param cname the base name of the Validator specialization\r
- */\r
- #define BEGIN_XMLOBJECTVALIDATOR(linkage,cname) \\r
-    class linkage cname##SchemaValidator : public xmltooling::Validator \\r
-    { \\r
-    public: \\r
-        virtual ~cname##SchemaValidator() {} \\r
-        virtual void validate(const xmltooling::XMLObject* xmlObject) const { \\r
-            const cname* ptr=dynamic_cast<const cname*>(xmlObject); \\r
-            if (!ptr) \\r
-                throw xmltooling::ValidationException(#cname"SchemaValidator: unsupported object type ($1).",xmltooling::params(1,typeid(xmlObject).name())); \\r
-            if (ptr->nil() && (ptr->hasChildren() || ptr->getTextContent())) \\r
-               throw xmltooling::ValidationException("Object has nil property but with children or content.")\r
-\r
-/**\r
- * Begins the declaration of a Schema Validator specialization subclass.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the base name of the Validator specialization\r
- * @param base      base class for the validator\r
- */\r
- #define BEGIN_XMLOBJECTVALIDATOR_SUB(linkage,cname,base) \\r
-    class linkage cname##SchemaValidator : public base##SchemaValidator \\r
-    { \\r
-    public: \\r
-        virtual ~cname##SchemaValidator() {} \\r
-        virtual void validate(const xmltooling::XMLObject* xmlObject) const { \\r
-            const cname* ptr=dynamic_cast<const cname*>(xmlObject); \\r
-            if (!ptr) \\r
-                throw xmltooling::ValidationException(#cname"SchemaValidator: unsupported object type ($1).",xmltooling::params(1,typeid(xmlObject).name()));\r
-\r
-/**\r
- * Ends the declaration of a Validator specialization.\r
- */\r
-#define END_XMLOBJECTVALIDATOR } }\r
-\r
-/**\r
- * Validator code that checks the object type.\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- */\r
-#define XMLOBJECTVALIDATOR_CHECKTYPE(cname) \\r
-    const cname* ptr=dynamic_cast<const cname*>(xmlObject); \\r
-    if (!ptr) \\r
-        throw xmltooling::ValidationException(#cname"SchemaValidator: unsupported object type ($1).",xmltooling::params(1,typeid(xmlObject).name()))\r
-\r
-/**\r
- * Validator code that checks for a required attribute, content, or singleton.\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper    the proper name of the attribute, content, or singleton member\r
- */\r
-#define XMLOBJECTVALIDATOR_REQUIRE(cname,proper) \\r
-    if (!ptr->get##proper()) \\r
-        throw xmltooling::ValidationException(#cname" must have "#proper".")\r
-\r
-/**\r
- * Validator code that checks for a required integer attribute\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper    the proper name of the attribute, content, or singleton member\r
- */\r
-#define XMLOBJECTVALIDATOR_REQUIRE_INTEGER(cname,proper) \\r
-    if (!ptr->get##proper().first) \\r
-        throw xmltooling::ValidationException(#cname" must have "#proper".")\r
-\r
-/**\r
- * Validator code that checks for one of a pair of\r
- * required attributes, content, or singletons.\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper1   the proper name of the first attribute, content, or singleton member\r
- * @param proper2   the proper name of the second attribute, content, or singleton member\r
- */\r
-#define XMLOBJECTVALIDATOR_ONEOF(cname,proper1,proper2) \\r
-    if (!ptr->get##proper1() && !ptr->get##proper2()) \\r
-        throw xmltooling::ValidationException(#cname" must have "#proper1" or "#proper2".")\r
-\r
-/**\r
- * Validator code that checks for one of a pair of\r
- * required attributes, content, or singletons, but disallows both.\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper1   the proper name of the first attribute, content, or singleton member\r
- * @param proper2   the proper name of the second attribute, content, or singleton member\r
- */\r
-#define XMLOBJECTVALIDATOR_ONLYONEOF(cname,proper1,proper2) \\r
-    if ((!ptr->get##proper1() && !ptr->get##proper2()) || (ptr->get##proper1() && ptr->get##proper2())) \\r
-        throw xmltooling::ValidationException(#cname" must have "#proper1" or "#proper2" but not both.")\r
-\r
-/**\r
- * Validator code that checks for one of a set of three\r
- * required attributes, content, or singletons.\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper1   the proper name of the first attribute, content, or singleton member\r
- * @param proper2   the proper name of the second attribute, content, or singleton member\r
- * @param proper3   the proper name of the third attribute, content, or singleton member\r
- */\r
-#define XMLOBJECTVALIDATOR_ONEOF3(cname,proper1,proper2,proper3) \\r
-    if (!ptr->get##proper1() && !ptr->get##proper2() && !ptr->get##proper3()) \\r
-        throw xmltooling::ValidationException(#cname" must have "#proper1", "#proper2", or "#proper3".")\r
-\r
-/**\r
- * Validator code that checks for one of a set of three\r
- * required attributes, content, or singletons but disallows more than one.\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper1   the proper name of the first attribute, content, or singleton member\r
- * @param proper2   the proper name of the second attribute, content, or singleton member\r
- * @param proper3   the proper name of the third attribute, content, or singleton member\r
- */\r
-#define XMLOBJECTVALIDATOR_ONLYONEOF3(cname,proper1,proper2,proper3) \\r
-    int c##proper1##proper2##proper3=0; \\r
-    if (ptr->get##proper1()!=NULL) \\r
-        c##proper1##proper2##proper3++; \\r
-    if (ptr->get##proper2()!=NULL) \\r
-        c##proper1##proper2##proper3++; \\r
-    if (ptr->get##proper3()!=NULL) \\r
-        c##proper1##proper2##proper3++; \\r
-    if (c##proper1##proper2##proper3 != 1) \\r
-        throw xmltooling::ValidationException(#cname" must have only one of "#proper1", "#proper2", or "#proper3".")\r
-\r
-/**\r
- * Validator code that checks a co-constraint (if one present, the other must be)\r
- * between a pair of attributes, content, or singletons.\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper1   the proper name of the first attribute, content, or singleton member\r
- * @param proper2   the proper name of the second attribute, content, or singleton member\r
- */\r
-#define XMLOBJECTVALIDATOR_NONEORBOTH(cname,proper1,proper2) \\r
-    if ((ptr->get##proper1() && !ptr->get##proper2()) || (!ptr->get##proper1() && ptr->get##proper2())) \\r
-        throw xmltooling::ValidationException(#cname" cannot have "#proper1" without "#proper2".")\r
-\r
-/**\r
- * Validator code that checks for a non-empty collection.\r
- *\r
- * @param cname     the name of the XMLObject specialization\r
- * @param proper    the proper name of the collection item\r
- */\r
-#define XMLOBJECTVALIDATOR_NONEMPTY(cname,proper) \\r
-    if (ptr->get##proper##s().empty()) \\r
-        throw xmltooling::ValidationException(#cname" must have at least one "#proper".")\r
-\r
-/**\r
- * Declares/defines a Validator specialization that checks object type and\r
- * a non-empty simple content model.\r
- *\r
- * @param linkage   linkage specifier for the class\r
- * @param cname     the name of the XMLObject specialization\r
- */\r
-#define XMLOBJECTVALIDATOR_SIMPLE(linkage,cname) \\r
-    BEGIN_XMLOBJECTVALIDATOR(linkage,cname); \\r
-        XMLOBJECTVALIDATOR_REQUIRE(cname,TextContent); \\r
-    END_XMLOBJECTVALIDATOR\r
-\r
-#include <utility>\r
-\r
-/**\r
- * @namespace xmltooling\r
- * Public namespace of XML Tooling library\r
- */\r
-namespace xmltooling {\r
-\r
-    /**\r
-     * Template function for cloning a sequence of XMLObjects.\r
-     * Invokes the clone() member on each element of the input sequence and adds the copy to\r
-     * the output sequence. Order is preserved.\r
-     *\r
-     * @param in    input sequence to clone\r
-     * @param out   output sequence to copy cloned pointers into\r
-     */\r
-    template<class InputSequence,class OutputSequence> void clone(const InputSequence& in, OutputSequence& out) {\r
-        for (typename InputSequence::const_iterator i=in.begin(); i!=in.end(); i++) {\r
-            if (*i)\r
-                out.push_back((*i)->clone());\r
-            else\r
-                out.push_back(*i);\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Functor for cleaning up heap objects in containers.\r
-     */\r
-    template<class T> struct cleanup\r
-    {\r
-        /**\r
-         * Function operator to delete an object.\r
-         *\r
-         * @param ptr   object to delete\r
-         */\r
-        void operator()(T* ptr) {delete ptr;}\r
-\r
-        /**\r
-         * Function operator to delete an object stored as const.\r
-         *\r
-         * @param ptr   object to delete after casting away const\r
-         */\r
-        void operator()(const T* ptr) {delete const_cast<T*>(ptr);}\r
-    };\r
-\r
-    /**\r
-     * Functor for cleaning up heap objects in key/value containers.\r
-     */\r
-    template<class A,class B> struct cleanup_pair\r
-    {\r
-        /**\r
-         * Function operator to delete an object.\r
-         *\r
-         * @param p   a pair in which the second component is the object to delete\r
-         */\r
-        void operator()(const std::pair<const A,B*>& p) {delete p.second;}\r
-    };\r
-\r
-    /**\r
-     * Functor for cleaning up const heap objects in key/value containers.\r
-     */\r
-    template<class A,class B> struct cleanup_const_pair\r
-    {\r
-        /**\r
-         * Function operator to delete an object stored as const\r
-         *\r
-         * @param p   a pair in which the second component is the const object to delete\r
-         */\r
-        void operator()(const std::pair<const A,const B*>& p) {delete const_cast<B*>(p.second);}\r
-    };\r
-};\r
-\r
-#endif /* __xmltooling_base_h__ */\r
+/*
+ *  Copyright 2001-2008 Internet2
+ *
+ * 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.
+ */
+
+/**
+ * @file xmltooling/base.h
+ *
+ * Base header file definitions
+ * Must be included prior to including any other header
+ */
+
+#ifndef __xmltooling_base_h__
+#define __xmltooling_base_h__
+
+#include <typeinfo>
+
+/* Required for sprintf, used by integer XML attribute macros. */
+#include <cstdio>
+
+#if defined (_MSC_VER) || defined(__BORLANDC__)
+  #include <xmltooling/config_pub_win32.h>
+#else
+  #include <xmltooling/config_pub.h>
+#endif
+
+#ifdef XMLTOOLING_LITE
+# define XMLTOOLING_NO_XMLSEC 1
+#endif
+
+#if defined(XMLTOOLING_NO_XMLSEC) || !defined(HAVE_XSECSIZE_T)
+# ifdef XMLTOOLING_XERCESC_64BITSAFE
+#   include <xercesc/util/XercesDefs.hpp>
+    typedef XMLSize_t xsecsize_t;
+# else
+    typedef unsigned int xsecsize_t;
+# endif
+#endif
+
+// Windows and GCC4 Symbol Visibility Macros
+#ifdef WIN32
+  #define XMLTOOL_IMPORT __declspec(dllimport)
+  #define XMLTOOL_EXPORT __declspec(dllexport)
+  #define XMLTOOL_DLLLOCAL
+  #define XMLTOOL_DLLPUBLIC
+#else
+  #define XMLTOOL_IMPORT
+  #ifdef GCC_HASCLASSVISIBILITY
+    #define XMLTOOL_EXPORT __attribute__ ((visibility("default")))
+    #define XMLTOOL_DLLLOCAL __attribute__ ((visibility("hidden")))
+    #define XMLTOOL_DLLPUBLIC __attribute__ ((visibility("default")))
+  #else
+    #define XMLTOOL_EXPORT
+    #define XMLTOOL_DLLLOCAL
+    #define XMLTOOL_DLLPUBLIC
+  #endif
+#endif
+
+// Define XMLTOOL_API for DLL builds
+#ifdef XMLTOOLING_EXPORTS
+  #define XMLTOOL_API XMLTOOL_EXPORT
+#else
+  #define XMLTOOL_API XMLTOOL_IMPORT
+#endif
+
+// Throwable classes must always be visible on GCC in all binaries
+#ifdef WIN32
+  #define XMLTOOL_EXCEPTIONAPI(api) api
+#elif defined(GCC_HASCLASSVISIBILITY)
+  #define XMLTOOL_EXCEPTIONAPI(api) XMLTOOL_EXPORT
+#else
+  #define XMLTOOL_EXCEPTIONAPI(api)
+#endif
+
+#ifdef _MSC_VER
+    #define XMLTOOLING_DOXYGEN(desc) /##** desc */
+#else
+    #define XMLTOOLING_DOXYGEN(desc)
+#endif
+
+/**
+ * Blocks copy c'tor and assignment operator for a class.
+ */
+#define MAKE_NONCOPYABLE(type) \
+    private: \
+        type(const type&); \
+        type& operator=(const type&)
+
+#ifndef DOXYGEN_SKIP
+#ifndef NULL
+#define NULL    0
+#endif
+#define UNICODE_LITERAL_1(a) {xercesc::chLatin_##a, xercesc::chNull}
+#define UNICODE_LITERAL_2(a,b) {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chNull}
+#define UNICODE_LITERAL_3(a,b,c) {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chNull}
+#define UNICODE_LITERAL_4(a,b,c,d) {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chNull}
+#define UNICODE_LITERAL_5(a,b,c,d,e) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chNull}
+#define UNICODE_LITERAL_6(a,b,c,d,e,f) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chNull}
+#define UNICODE_LITERAL_7(a,b,c,d,e,f,g) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chNull}
+#define UNICODE_LITERAL_8(a,b,c,d,e,f,g,h) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chNull}
+#define UNICODE_LITERAL_9(a,b,c,d,e,f,g,h,i) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, xercesc::chNull}
+#define UNICODE_LITERAL_10(a,b,c,d,e,f,g,h,i,j) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chNull}
+#define UNICODE_LITERAL_11(a,b,c,d,e,f,g,h,i,j,k) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chNull}
+#define UNICODE_LITERAL_12(a,b,c,d,e,f,g,h,i,j,k,l) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chNull}
+#define UNICODE_LITERAL_13(a,b,c,d,e,f,g,h,i,j,k,l,m) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chNull}
+#define UNICODE_LITERAL_14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chNull}
+#define UNICODE_LITERAL_15(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chNull}
+#define UNICODE_LITERAL_16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chNull}
+#define UNICODE_LITERAL_17(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chNull}
+#define UNICODE_LITERAL_18(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, xercesc::chNull}
+#define UNICODE_LITERAL_19(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chNull}
+#define UNICODE_LITERAL_20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chNull}
+#define UNICODE_LITERAL_21(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chNull}
+#define UNICODE_LITERAL_22(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chNull}
+#define UNICODE_LITERAL_23(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chNull}
+#define UNICODE_LITERAL_24(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chNull}
+#define UNICODE_LITERAL_25(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chNull}
+#define UNICODE_LITERAL_26(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, xercesc::chNull}
+#define UNICODE_LITERAL_27(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \
+        xercesc::chLatin_##aa, xercesc::chNull}
+#define UNICODE_LITERAL_28(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \
+        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chNull}
+#define UNICODE_LITERAL_29(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \
+        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chNull}
+#define UNICODE_LITERAL_30(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \
+        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chNull}
+#define UNICODE_LITERAL_31(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \
+        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chLatin_##ee, xercesc::chNull}
+#define UNICODE_LITERAL_32(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee,ff) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \
+        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chLatin_##ee, xercesc::chLatin_##ff, xercesc::chNull}
+#define UNICODE_LITERAL_33(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee,ff,gg) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \
+        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chLatin_##ee, xercesc::chLatin_##ff, xercesc::chLatin_##gg, xercesc::chNull}
+#define UNICODE_LITERAL_34(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee,ff,gg,hh) \
+    {xercesc::chLatin_##a, xercesc::chLatin_##b, xercesc::chLatin_##c, xercesc::chLatin_##d, xercesc::chLatin_##e, xercesc::chLatin_##f, xercesc::chLatin_##g, xercesc::chLatin_##h, xercesc::chLatin_##i, \
+        xercesc::chLatin_##j, xercesc::chLatin_##k, xercesc::chLatin_##l, xercesc::chLatin_##m, xercesc::chLatin_##n, xercesc::chLatin_##o, xercesc::chLatin_##p, xercesc::chLatin_##q, xercesc::chLatin_##r, \
+        xercesc::chLatin_##s, xercesc::chLatin_##t, xercesc::chLatin_##u, xercesc::chLatin_##v, xercesc::chLatin_##w, xercesc::chLatin_##x, xercesc::chLatin_##y, xercesc::chLatin_##z, \
+        xercesc::chLatin_##aa, xercesc::chLatin_##bb, xercesc::chLatin_##cc, xercesc::chLatin_##dd, xercesc::chLatin_##ee, xercesc::chLatin_##ff, xercesc::chLatin_##gg, xercesc::chLatin_##hh, xercesc::chNull}
+#endif /* DOXYGEN_SKIP */
+
+/**
+ * Begins the declaration of an XMLObject specialization for an abstract element/type.
+ * Basic boilerplate includes a protected constructor, empty virtual destructor,
+ * and Unicode constants for the default associated element's name and prefix.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the class to declare
+ * @param base      the base class to derive from using public virtual inheritance
+ * @param desc      documentation comment for class
+ */
+#define DECL_XMLOBJECT_ABSTRACT(linkage,cname,base,desc) \
+    XMLTOOLING_DOXYGEN(desc) \
+    class linkage cname : public virtual base { \
+    protected: \
+        cname() {} \
+    public: \
+        virtual ~cname() {} \
+        XMLTOOLING_DOXYGEN(Element local name) \
+        static const XMLCh LOCAL_NAME[]; \
+    }
+
+/**
+ * Begins the declaration of an XMLObject specialization.
+ * Basic boilerplate includes a protected constructor, empty virtual destructor,
+ * and Unicode constants for the default associated element's name and prefix.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the class to declare
+ * @param base      the base class to derive from using public virtual inheritance
+ * @param desc      documentation comment for class
+ */
+#define BEGIN_XMLOBJECT(linkage,cname,base,desc) \
+    XMLTOOLING_DOXYGEN(desc) \
+    class linkage cname : public virtual base { \
+    protected: \
+        cname() {} \
+    public: \
+        virtual ~cname() {} \
+        XMLTOOLING_DOXYGEN(Type-specific clone method.) \
+        virtual cname* clone##cname() const=0; \
+        XMLTOOLING_DOXYGEN(Element local name) \
+        static const XMLCh LOCAL_NAME[]
+
+/**
+ * Begins the declaration of an XMLObject specialization with two base classes.
+ * Basic boilerplate includes a protected constructor, empty virtual destructor,
+ * and Unicode constants for the default associated element's name and prefix.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the class to declare
+ * @param base      the first base class to derive from using public virtual inheritance
+ * @param base2     the second base class to derive from using public virtual inheritance
+ * @param desc      documentation comment for class
+ */
+#define BEGIN_XMLOBJECT2(linkage,cname,base,base2,desc) \
+    XMLTOOLING_DOXYGEN(desc) \
+    class linkage cname : public virtual base, public virtual base2 { \
+    protected: \
+        cname() {} \
+    public: \
+        virtual ~cname() {} \
+        XMLTOOLING_DOXYGEN(Type-specific clone method.) \
+        virtual cname* clone##cname() const=0; \
+        XMLTOOLING_DOXYGEN(Element local name) \
+        static const XMLCh LOCAL_NAME[]
+
+/**
+ * Begins the declaration of an XMLObject specialization with three base classes.
+ * Basic boilerplate includes a protected constructor, empty virtual destructor,
+ * and Unicode constants for the default associated element's name and prefix.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the class to declare
+ * @param base      the first base class to derive from using public virtual inheritance
+ * @param base2     the second base class to derive from using public virtual inheritance
+ * @param base3     the third base class to derive from using public virtual inheritance
+ * @param desc      documentation comment for class
+ */
+#define BEGIN_XMLOBJECT3(linkage,cname,base,base2,base3,desc) \
+    XMLTOOLING_DOXYGEN(desc) \
+    class linkage cname : public virtual base, public virtual base2, public virtual base3 { \
+    protected: \
+        cname() {} \
+    public: \
+        virtual ~cname() {} \
+        XMLTOOLING_DOXYGEN(Type-specific clone method.) \
+        virtual cname* clone##cname() const=0; \
+        XMLTOOLING_DOXYGEN(Element local name) \
+        static const XMLCh LOCAL_NAME[]
+
+/**
+ * Begins the declaration of an XMLObject specialization with four base classes.
+ * Basic boilerplate includes a protected constructor, empty virtual destructor,
+ * and Unicode constants for the default associated element's name and prefix.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the class to declare
+ * @param base      the first base class to derive from using public virtual inheritance
+ * @param base2     the second base class to derive from using public virtual inheritance
+ * @param base3     the third base class to derive from using public virtual inheritance
+ * @param base4     the fourth base class to derive from using public virtual inheritance
+ * @param desc      documentation comment for class
+ */
+#define BEGIN_XMLOBJECT4(linkage,cname,base,base2,base3,base4,desc) \
+    XMLTOOLING_DOXYGEN(desc) \
+    class linkage cname : public virtual base, public virtual base2, public virtual base3, public virtual base4 { \
+    protected: \
+        cname() {} \
+    public: \
+        virtual ~cname() {} \
+        XMLTOOLING_DOXYGEN(Type-specific clone method.) \
+        virtual cname* clone##cname() const=0; \
+        XMLTOOLING_DOXYGEN(Element local name) \
+        static const XMLCh LOCAL_NAME[]
+
+/**
+ * Begins the declaration of an XMLObject specialization with five base classes.
+ * Basic boilerplate includes a protected constructor, empty virtual destructor,
+ * and Unicode constants for the default associated element's name and prefix.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the class to declare
+ * @param base      the first base class to derive from using public virtual inheritance
+ * @param base2     the second base class to derive from using public virtual inheritance
+ * @param base3     the third base class to derive from using public virtual inheritance
+ * @param base4     the fourth base class to derive from using public virtual inheritance
+ * @param base5     the fifth base class to derive from using public virtual inheritance
+ * @param desc      documentation comment for class
+ */
+#define BEGIN_XMLOBJECT5(linkage,cname,base,base2,base3,base4,base5,desc) \
+    XMLTOOLING_DOXYGEN(desc) \
+    class linkage cname : public virtual base, public virtual base2, public virtual base3, public virtual base4, public virtual base5 { \
+    protected: \
+        cname() {} \
+    public: \
+        virtual ~cname() {} \
+        XMLTOOLING_DOXYGEN(Type-specific clone method.) \
+        virtual cname* clone##cname() const=0; \
+        XMLTOOLING_DOXYGEN(Element local name) \
+        static const XMLCh LOCAL_NAME[]
+
+/**
+ * Ends the declaration of an XMLObject specialization.
+ */
+#define END_XMLOBJECT }
+
+/**
+ * Declares a static variable holding the XMLObject's element QName.
+ */
+#define DECL_ELEMENT_QNAME \
+    public: \
+        XMLTOOLING_DOXYGEN(Element QName) \
+        static xmltooling::QName ELEMENT_QNAME
+
+/**
+ * Declares a static variable holding the XMLObject's schema type QName.
+ */
+#define DECL_TYPE_QNAME \
+    public: \
+        XMLTOOLING_DOXYGEN(Type QName) \
+        static xmltooling::QName TYPE_QNAME
+
+/**
+ * Implements a static variable holding an XMLObject's element QName.
+ *
+ * @param cname             the name of the XMLObject specialization
+ * @param namespaceURI      the XML namespace of the default associated element
+ * @param namespacePrefix   the XML namespace prefix of the default associated element
+ */
+#define IMPL_ELEMENT_QNAME(cname,namespaceURI,namespacePrefix) \
+    xmltooling::QName cname::ELEMENT_QNAME(namespaceURI,cname::LOCAL_NAME,namespacePrefix)
+
+/**
+ * Implements a static variable holding an XMLObject's schema type QName.
+ *
+ * @param cname             the name of the XMLObject specialization
+ * @param namespaceURI      the XML namespace of the default associated element
+ * @param namespacePrefix   the XML namespace prefix of the default associated element
+ */
+#define IMPL_TYPE_QNAME(cname,namespaceURI,namespacePrefix) \
+    xmltooling::QName cname::TYPE_QNAME(namespaceURI,cname::TYPE_NAME,namespacePrefix)
+
+/**
+ * Declares abstract set method for a typed XML attribute.
+ * The get method is omitted.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ * @param type      the attribute's data type
+ */
+#define DECL_INHERITED_XMLOBJECT_ATTRIB(proper,upcased,type) \
+    public: \
+        XMLTOOLING_DOXYGEN(proper attribute name) \
+        static const XMLCh upcased##_ATTRIB_NAME[]; \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+        virtual void set##proper(const type* proper)=0
+
+/**
+ * Declares abstract get/set methods for a typed XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ * @param type      the attribute's data type
+ */
+#define DECL_XMLOBJECT_ATTRIB(proper,upcased,type) \
+    public: \
+        XMLTOOLING_DOXYGEN(proper attribute name) \
+        static const XMLCh upcased##_ATTRIB_NAME[]; \
+        XMLTOOLING_DOXYGEN(Returns the proper attribute.) \
+        virtual const type* get##proper() const=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+        virtual void set##proper(const type* proper)=0
+
+/**
+ * Declares abstract set method for a string XML attribute.
+ * The get method is omitted.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ */
+#define DECL_INHERITED_STRING_ATTRIB(proper,upcased) \
+    DECL_INHERITED_XMLOBJECT_ATTRIB(proper,upcased,XMLCh)
+
+/**
+ * Declares abstract get/set methods for a string XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ */
+#define DECL_STRING_ATTRIB(proper,upcased) \
+    DECL_XMLOBJECT_ATTRIB(proper,upcased,XMLCh)
+
+/**
+ * Declares abstract set method for a DateTime XML attribute.
+ * The get method is omitted.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ */
+#define DECL_INHERITED_DATETIME_ATTRIB(proper,upcased) \
+    DECL_INHERITED_XMLOBJECT_ATTRIB(proper,upcased,xmltooling::DateTime); \
+    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+    virtual void set##proper(time_t proper)=0; \
+    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+    virtual void set##proper(const XMLCh* proper)=0
+
+/**
+ * Declares abstract get/set methods for a DateTime XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ */
+#define DECL_DATETIME_ATTRIB(proper,upcased) \
+    DECL_XMLOBJECT_ATTRIB(proper,upcased,xmltooling::DateTime); \
+    XMLTOOLING_DOXYGEN(Returns the proper attribute in epoch form.) \
+    virtual time_t get##proper##Epoch() const=0; \
+    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+    virtual void set##proper(time_t proper)=0; \
+    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+    virtual void set##proper(const XMLCh* proper)=0
+
+/**
+ * Declares abstract set method for an integer XML attribute.
+ * The get method is omitted.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ */
+#define DECL_INHERITED_INTEGER_ATTRIB(proper,upcased) \
+    public: \
+        XMLTOOLING_DOXYGEN(proper attribute name) \
+        static const XMLCh upcased##_ATTRIB_NAME[]; \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute using a string value.) \
+        virtual void set##proper(const XMLCh* proper)=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+        virtual void set##proper(int proper)=0
+
+/**
+ * Declares abstract get/set methods for an integer XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ */
+#define DECL_INTEGER_ATTRIB(proper,upcased) \
+    public: \
+        XMLTOOLING_DOXYGEN(proper attribute name) \
+        static const XMLCh upcased##_ATTRIB_NAME[]; \
+        XMLTOOLING_DOXYGEN(Returns the proper attribute after a NULL indicator.) \
+        virtual std::pair<bool,int> get##proper() const=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute using a string value.) \
+        virtual void set##proper(const XMLCh* proper)=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+        virtual void set##proper(int proper)=0
+
+/**
+ * Declares abstract get/set methods for a boolean XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param upcased   the upcased name of the attribute
+ * @param def       the default/presumed value, if no explicit value has been set
+ */
+#define DECL_BOOLEAN_ATTRIB(proper,upcased,def) \
+    public: \
+        XMLTOOLING_DOXYGEN(proper attribute name) \
+        static const XMLCh upcased##_ATTRIB_NAME[]; \
+        XMLTOOLING_DOXYGEN(Returns the proper attribute or def if not set.) \
+        bool proper() const { \
+            switch (get##proper()) { \
+                case xmlconstants::XML_BOOL_TRUE: \
+                case xmlconstants::XML_BOOL_ONE: \
+                    return true; \
+                case xmlconstants::XML_BOOL_FALSE: \
+                case xmlconstants::XML_BOOL_ZERO: \
+                    return false; \
+                default: \
+                    return def; \
+            } \
+        } \
+        XMLTOOLING_DOXYGEN(Returns the proper attribute as an explicit enumerated value.) \
+        virtual xmlconstants::xmltooling_bool_t get##proper() const=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute using an enumerated value.) \
+        virtual void proper(xmlconstants::xmltooling_bool_t value)=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \
+        void proper(bool value) { \
+            proper(value ? xmlconstants::XML_BOOL_ONE : xmlconstants::XML_BOOL_ZERO); \
+        } \
+        XMLTOOLING_DOXYGEN(Sets the proper attribute using a string constant.) \
+        void set##proper(const XMLCh* value) { \
+            if (value) { \
+                switch (*value) { \
+                    case xercesc::chLatin_t: \
+                        proper(xmlconstants::XML_BOOL_TRUE); \
+                        break; \
+                    case xercesc::chLatin_f: \
+                        proper(xmlconstants::XML_BOOL_FALSE); \
+                        break; \
+                    case xercesc::chDigit_1: \
+                        proper(xmlconstants::XML_BOOL_ONE); \
+                        break; \
+                    case xercesc::chDigit_0: \
+                        proper(xmlconstants::XML_BOOL_ZERO); \
+                        break; \
+                    default: \
+                        proper(xmlconstants::XML_BOOL_NULL); \
+                } \
+            } \
+            else \
+                proper(xmlconstants::XML_BOOL_NULL); \
+        }
+
+/**
+ * Implements get/set methods and a private member for a typed XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param type      the attribute's data type
+ */
+#define IMPL_XMLOBJECT_ATTRIB(proper,type) \
+    protected: \
+        type* m_##proper; \
+    public: \
+        const type* get##proper() const { \
+            return m_##proper; \
+        } \
+        void set##proper(const type* proper) { \
+            m_##proper = prepareForAssignment(m_##proper,proper); \
+        }
+
+/**
+ * Implements get/set methods and a private member for a string XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ */
+#define IMPL_STRING_ATTRIB(proper) \
+    IMPL_XMLOBJECT_ATTRIB(proper,XMLCh)
+
+/**
+ * Implements get/set methods and a private member for a string XML attribute,
+ * plus a getXMLID override.
+ *
+ * @param proper    the proper name of the attribute
+ */
+#define IMPL_ID_ATTRIB(proper) \
+    IMPL_XMLOBJECT_ATTRIB(proper,XMLCh) \
+    const XMLCh* getXMLID() const { \
+        return m_##proper; \
+    }
+
+/**
+ * Implements get/set methods and a private member for a string XML attribute,
+ * plus a getXMLID override and attribute node clearance when DOM is dropped.
+ *
+ * @param proper    the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define IMPL_ID_ATTRIB_EX(proper, ucase, namespaceURI) \
+    IMPL_XMLOBJECT_ATTRIB(proper,XMLCh) \
+    const XMLCh* getXMLID() const { \
+        return m_##proper; \
+    } \
+    void releaseDOM() const { \
+        if (getDOM()) \
+            getDOM()->removeAttributeNS(namespaceURI, ucase##_ATTRIB_NAME); \
+        AbstractDOMCachingXMLObject::releaseDOM(); \
+    }
+
+/**
+ * Implements get/set methods and a private member for a DateTime XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param fallback  epoch to return when attribute is NULL
+ */
+#define IMPL_DATETIME_ATTRIB(proper,fallback) \
+    IMPL_DATETIME_ATTRIB_EX(proper,fallback,false)
+
+/**
+ * Implements get/set methods and a private member for a duration-valued DateTime XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param fallback  epoch to return when attribute is NULL
+ */
+#define IMPL_DURATION_ATTRIB(proper,fallback) \
+    IMPL_DATETIME_ATTRIB_EX(proper,fallback,true)
+
+/**
+ * Implements get/set methods and a private member for a DateTime XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param fallback  epoch to return when attribute is NULL
+ * @param duration  true iff the attribute should be handled as a duration
+ */
+#define IMPL_DATETIME_ATTRIB_EX(proper,fallback,duration) \
+    protected: \
+        DateTime* m_##proper; \
+        time_t m_##proper##Epoch; \
+    public: \
+        const DateTime* get##proper() const { \
+            return m_##proper; \
+        } \
+        time_t get##proper##Epoch() const { \
+            return m_##proper ? m_##proper##Epoch : fallback; \
+        } \
+        void set##proper(const DateTime* proper) { \
+            m_##proper = prepareForAssignment(m_##proper,proper); \
+            if (m_##proper) \
+                m_##proper##Epoch=m_##proper->getEpoch(duration); \
+        } \
+        void set##proper(time_t proper) { \
+            m_##proper = prepareForAssignment(m_##proper,proper,duration); \
+            m_##proper##Epoch = proper; \
+        } \
+        void set##proper(const XMLCh* proper) { \
+            m_##proper = prepareForAssignment(m_##proper,proper,duration); \
+            if (m_##proper) \
+                m_##proper##Epoch=m_##proper->getEpoch(duration); \
+        }
+
+/**
+ * Implements get/set methods and a private member for an integer XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ */
+#define IMPL_INTEGER_ATTRIB(proper) \
+    protected: \
+        XMLCh* m_##proper; \
+    public: \
+        pair<bool,int> get##proper() const { \
+            return make_pair((m_##proper!=NULL),(m_##proper!=NULL ? xercesc::XMLString::parseInt(m_##proper): 0)); \
+        } \
+        void set##proper(const XMLCh* proper) { \
+            m_##proper = prepareForAssignment(m_##proper,proper); \
+        } \
+        void set##proper(int proper) { \
+            char buf##proper[64]; \
+            sprintf(buf##proper,"%d",proper); \
+            auto_ptr_XMLCh wide##proper(buf##proper); \
+            set##proper(wide##proper.get()); \
+        }
+
+/**
+ * Implements get/set methods and a private member for a boolean XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ */
+#define IMPL_BOOLEAN_ATTRIB(proper) \
+    protected: \
+        xmlconstants::xmltooling_bool_t m_##proper; \
+    public: \
+        xmlconstants::xmltooling_bool_t get##proper() const { \
+            return m_##proper; \
+        } \
+        void proper(xmlconstants::xmltooling_bool_t value) { \
+            if (m_##proper != value) { \
+                releaseThisandParentDOM(); \
+                m_##proper = value; \
+            } \
+        }
+
+/**
+ * Implements get/set methods and a private member for a typed, qualified XML attribute.
+ *
+ * @param proper    the proper name of the attribute
+ * @param type      the attribute's data type
+ */
+#define IMPL_XMLOBJECT_FOREIGN_ATTRIB(proper,type) \
+    protected: \
+    XMLCh* m_##proper##Prefix; \
+        type* m_##proper; \
+    public: \
+        const type* get##proper() const { \
+            return m_##proper; \
+        } \
+        void set##proper(const type* proper) { \
+            m_##proper = prepareForAssignment(m_##proper,proper); \
+            XMLString::release(&m_##proper##Prefix); \
+            m_##proper##Prefix = NULL; \
+        }
+
+/**
+ * Declares abstract set method for a typed XML child object in a foreign namespace.
+ * The get method is omitted.
+ *
+ * @param proper    the proper name of the child type
+ * @param ns        the C++ namespace for the type
+ */
+#define DECL_INHERITED_TYPED_FOREIGN_CHILD(proper,ns) \
+    public: \
+        XMLTOOLING_DOXYGEN(Sets the proper child.) \
+        virtual void set##proper(ns::proper* child)=0
+
+/**
+ * Declares abstract get/set methods for a typed XML child object in a foreign namespace.
+ *
+ * @param proper    the proper name of the child type
+ * @param ns        the C++ namespace for the type
+ */
+#define DECL_TYPED_FOREIGN_CHILD(proper,ns) \
+    public: \
+        XMLTOOLING_DOXYGEN(Returns the proper child.) \
+        virtual ns::proper* get##proper() const=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper child.) \
+        virtual void set##proper(ns::proper* child)=0
+
+/**
+ * Declares abstract set method for a typed XML child object.
+ * The get method is omitted.
+ *
+ * @param proper    the proper name of the child type
+ */
+#define DECL_INHERITED_TYPED_CHILD(proper) \
+    public: \
+        XMLTOOLING_DOXYGEN(Sets the proper child.) \
+        virtual void set##proper(proper* child)=0
+
+/**
+ * Declares abstract get/set methods for a typed XML child object.
+ *
+ * @param proper    the proper name of the child type
+ */
+#define DECL_TYPED_CHILD(proper) \
+    public: \
+        XMLTOOLING_DOXYGEN(Returns the proper child.) \
+        virtual proper* get##proper() const=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper child.) \
+        virtual void set##proper(proper* child)=0
+
+/**
+ * Declares abstract get/set methods for a generic XML child object.
+ *
+ * @param proper    the proper name of the child
+ */
+#define DECL_XMLOBJECT_CHILD(proper) \
+    public: \
+        XMLTOOLING_DOXYGEN(Returns the proper child.) \
+        virtual xmltooling::XMLObject* get##proper() const=0; \
+        XMLTOOLING_DOXYGEN(Sets the proper child.) \
+        virtual void set##proper(xmltooling::XMLObject* child)=0
+
+
+/**
+ * Implements get/set methods and a private list iterator member for a typed XML child object.
+ *
+ * @param proper    the proper name of the child type
+ */
+#define IMPL_TYPED_CHILD(proper) \
+    protected: \
+        proper* m_##proper; \
+        std::list<xmltooling::XMLObject*>::iterator m_pos_##proper; \
+    public: \
+        proper* get##proper() const { \
+            return m_##proper; \
+        } \
+        void set##proper(proper* child) { \
+            prepareForAssignment(m_##proper,child); \
+            *m_pos_##proper = m_##proper = child; \
+        }
+
+/**
+ * Implements get/set methods and a private list iterator member for
+ * a typed XML child object in a foreign namespace
+ *
+ * @param proper    the proper name of the child type
+ * @param ns        the C++ namespace for the type
+ */
+#define IMPL_TYPED_FOREIGN_CHILD(proper,ns) \
+    protected: \
+        ns::proper* m_##proper; \
+        std::list<xmltooling::XMLObject*>::iterator m_pos_##proper; \
+    public: \
+        ns::proper* get##proper() const { \
+            return m_##proper; \
+        } \
+        void set##proper(ns::proper* child) { \
+            prepareForAssignment(m_##proper,child); \
+            *m_pos_##proper = m_##proper = child; \
+        }
+
+/**
+ * Implements get/set methods and a private list iterator member for a generic XML child object.
+ *
+ * @param proper    the proper name of the child
+ */
+#define IMPL_XMLOBJECT_CHILD(proper) \
+    protected: \
+        xmltooling::XMLObject* m_##proper; \
+        std::list<xmltooling::XMLObject*>::iterator m_pos_##proper; \
+    public: \
+        xmltooling::XMLObject* get##proper() const { \
+            return m_##proper; \
+        } \
+        void set##proper(xmltooling::XMLObject* child) { \
+            prepareForAssignment(m_##proper,child); \
+            *m_pos_##proper = m_##proper = child; \
+        }
+
+/**
+ * Declares abstract get/set methods for a typed XML child collection.
+ *
+ * @param proper    the proper name of the child type
+ */
+#define DECL_TYPED_CHILDREN(proper) \
+    public: \
+        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \
+        virtual VectorOf(proper) get##proper##s()=0; \
+        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \
+        virtual const std::vector<proper*>& get##proper##s() const=0
+
+/**
+ * Declares abstract get/set methods for a typed XML child collection in a foreign namespace.
+ *
+ * @param proper    the proper name of the child type
+ * @param ns        the C++ namespace for the type
+ */
+#define DECL_TYPED_FOREIGN_CHILDREN(proper,ns) \
+    public: \
+        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \
+        virtual VectorOf(ns::proper) get##proper##s()=0; \
+        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \
+        virtual const std::vector<ns::proper*>& get##proper##s() const=0
+
+/**
+ * Declares abstract get/set methods for a generic XML child collection.
+ *
+ * @param proper    the proper name of the child
+ */
+#define DECL_XMLOBJECT_CHILDREN(proper) \
+    public: \
+        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \
+        virtual VectorOf(xmltooling::XMLObject) get##proper##s()=0; \
+        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \
+        virtual const std::vector<xmltooling::XMLObject*>& get##proper##s() const=0
+
+/**
+ * Implements get method and a private vector member for a typed XML child collection.
+ *
+ * @param proper    the proper name of the child type
+ * @param fence     insertion fence for new objects of the child collection in backing list
+ */
+#define IMPL_TYPED_CHILDREN(proper,fence) \
+    protected: \
+        std::vector<proper*> m_##proper##s; \
+    public: \
+        VectorOf(proper) get##proper##s() { \
+            return VectorOf(proper)(this, m_##proper##s, &m_children, fence); \
+        } \
+        const std::vector<proper*>& get##proper##s() const { \
+            return m_##proper##s; \
+        }
+
+/**
+ * Implements get method and a private vector member for a typed XML child collection
+ * in a foreign namespace.
+ *
+ * @param proper    the proper name of the child type
+ * @param ns        the C++ namespace for the type
+ * @param fence     insertion fence for new objects of the child collection in backing list
+ */
+#define IMPL_TYPED_FOREIGN_CHILDREN(proper,ns,fence) \
+    protected: \
+        std::vector<ns::proper*> m_##proper##s; \
+    public: \
+        VectorOf(ns::proper) get##proper##s() { \
+            return VectorOf(ns::proper)(this, m_##proper##s, &m_children, fence); \
+        } \
+        const std::vector<ns::proper*>& get##proper##s() const { \
+            return m_##proper##s; \
+        }
+
+/**
+ * Implements get method and a private vector member for a generic XML child collection.
+ *
+ * @param proper    the proper name of the child
+ * @param fence     insertion fence for new objects of the child collection in backing list
+ */
+#define IMPL_XMLOBJECT_CHILDREN(proper,fence) \
+    protected: \
+        std::vector<xmltooling::XMLObject*> m_##proper##s; \
+    public: \
+        VectorOf(xmltooling::XMLObject) get##proper##s() { \
+            return VectorOf(xmltooling::XMLObject)(this, m_##proper##s, &m_children, fence); \
+        } \
+        const std::vector<xmltooling::XMLObject*>& get##proper##s() const { \
+            return m_##proper##s; \
+        }
+
+/**
+ * Implements marshalling for a string attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define MARSHALL_STRING_ATTRIB(proper,ucase,namespaceURI) \
+    if (m_##proper && *m_##proper) { \
+        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \
+    }
+
+/**
+ * Implements marshalling for a DateTime attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define MARSHALL_DATETIME_ATTRIB(proper,ucase,namespaceURI) \
+    if (m_##proper) { \
+        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper->getRawData()); \
+    }
+
+/**
+ * Implements marshalling for an integer attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define MARSHALL_INTEGER_ATTRIB(proper,ucase,namespaceURI) \
+    if (m_##proper && *m_##proper) { \
+        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \
+    }
+
+/**
+ * Implements marshalling for a boolean attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define MARSHALL_BOOLEAN_ATTRIB(proper,ucase,namespaceURI) \
+    switch (m_##proper) { \
+        case xmlconstants::XML_BOOL_TRUE: \
+            domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, xmlconstants::XML_TRUE); \
+            break; \
+        case xmlconstants::XML_BOOL_ONE: \
+            domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, xmlconstants::XML_ONE); \
+            break; \
+        case xmlconstants::XML_BOOL_FALSE: \
+            domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, xmlconstants::XML_FALSE); \
+            break; \
+        case xmlconstants::XML_BOOL_ZERO: \
+            domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, xmlconstants::XML_ZERO); \
+            break; \
+        case xmlconstants::XML_BOOL_NULL: \
+            break; \
+    }
+
+/**
+ * Implements marshalling for a QName attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define MARSHALL_QNAME_ATTRIB(proper,ucase,namespaceURI) \
+    if (m_##proper) { \
+        auto_ptr_XMLCh qstr(m_##proper->toString().c_str()); \
+        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, qstr.get()); \
+    }
+
+#ifdef XMLTOOLING_XERCESC_BOOLSETIDATTRIBUTE
+/**
+ * Implements marshalling for an ID attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+# define MARSHALL_ID_ATTRIB(proper,ucase,namespaceURI) \
+    if (m_##proper && *m_##proper) { \
+        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \
+        domElement->setIdAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, true); \
+    }
+#else
+/**
+ * Implements marshalling for an ID attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+# define MARSHALL_ID_ATTRIB(proper,ucase,namespaceURI) \
+    if (m_##proper && *m_##proper) { \
+        domElement->setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \
+        domElement->setIdAttributeNS(namespaceURI, ucase##_ATTRIB_NAME); \
+    }
+#endif
+
+/**
+ * Implements unmarshalling process branch for a string attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define PROC_STRING_ATTRIB(proper,ucase,namespaceURI) \
+    if (xmltooling::XMLHelper::isNodeNamed(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \
+        set##proper(attribute->getValue()); \
+        return; \
+    }
+
+#ifdef XMLTOOLING_XERCESC_BOOLSETIDATTRIBUTE
+/**
+ * Implements unmarshalling process branch for an ID attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+# define PROC_ID_ATTRIB(proper,ucase,namespaceURI) \
+    if (xmltooling::XMLHelper::isNodeNamed(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \
+        set##proper(attribute->getValue()); \
+        attribute->getOwnerElement()->setIdAttributeNode(attribute, true); \
+        return; \
+    }
+#else
+/**
+ * Implements unmarshalling process branch for an ID attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+# define PROC_ID_ATTRIB(proper,ucase,namespaceURI) \
+    if (xmltooling::XMLHelper::isNodeNamed(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \
+        set##proper(attribute->getValue()); \
+        attribute->getOwnerElement()->setIdAttributeNode(attribute); \
+        return; \
+    }
+#endif
+
+/**
+ * Implements unmarshalling process branch for a DateTime attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define PROC_DATETIME_ATTRIB(proper,ucase,namespaceURI) \
+    PROC_STRING_ATTRIB(proper,ucase,namespaceURI)
+
+/**
+ * Implements unmarshalling process branch for a DateTime attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define PROC_QNAME_ATTRIB(proper,ucase,namespaceURI) \
+    if (xmltooling::XMLHelper::isNodeNamed(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \
+        set##proper(XMLHelper::getAttributeValueAsQName(attribute)); \
+        return; \
+    }
+
+/**
+ * Implements unmarshalling process branch for an integer attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define PROC_INTEGER_ATTRIB(proper,ucase,namespaceURI) \
+    PROC_STRING_ATTRIB(proper,ucase,namespaceURI)
+
+/**
+ * Implements unmarshalling process branch for a boolean attribute
+ *
+ * @param proper        the proper name of the attribute
+ * @param ucase         the upcased name of the attribute
+ * @param namespaceURI  the XML namespace of the attribute
+ */
+#define PROC_BOOLEAN_ATTRIB(proper,ucase,namespaceURI) \
+    PROC_STRING_ATTRIB(proper,ucase,namespaceURI)
+
+/**
+ * Implements unmarshalling process branch for typed child collection element
+ *
+ * @param proper        the proper name of the child type
+ * @param namespaceURI  the XML namespace of the child element
+ * @param force         bypass use of hint and just cast down to check child
+ */
+#define PROC_TYPED_CHILDREN(proper,namespaceURI,force) \
+    if (force || xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,proper::LOCAL_NAME)) { \
+        proper* typesafe=dynamic_cast<proper*>(childXMLObject); \
+        if (typesafe) { \
+            get##proper##s().push_back(typesafe); \
+            return; \
+        } \
+    }
+
+/**
+ * Implements unmarshalling process branch for typed child collection element
+ * in a foreign namespace.
+ *
+ * @param proper        the proper name of the child type
+ * @param ns            the C++ namespace for the type
+ * @param namespaceURI  the XML namespace of the child element
+ * @param force         bypass use of hint and just cast down to check child
+ */
+#define PROC_TYPED_FOREIGN_CHILDREN(proper,ns,namespaceURI,force) \
+    if (force || xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,ns::proper::LOCAL_NAME)) { \
+        ns::proper* typesafe=dynamic_cast<ns::proper*>(childXMLObject); \
+        if (typesafe) { \
+            get##proper##s().push_back(typesafe); \
+            return; \
+        } \
+    }
+
+/**
+ * Implements unmarshalling process branch for typed child singleton element
+ *
+ * @param proper        the proper name of the child type
+ * @param namespaceURI  the XML namespace of the child element
+ * @param force         bypass use of hint and just cast down to check child
+ */
+#define PROC_TYPED_CHILD(proper,namespaceURI,force) \
+    if (force || xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,proper::LOCAL_NAME)) { \
+        proper* typesafe=dynamic_cast<proper*>(childXMLObject); \
+        if (typesafe && !m_##proper) { \
+            typesafe->setParent(this); \
+            *m_pos_##proper = m_##proper = typesafe; \
+            return; \
+        } \
+    }
+
+/**
+ * Implements unmarshalling process branch for typed child singleton element
+ * in a foreign namespace.
+ *
+ * @param proper        the proper name of the child type
+ * @param ns            the C++ namespace for the type
+ * @param namespaceURI  the XML namespace of the child element
+ * @param force         bypass use of hint and just cast down to check child
+ */
+#define PROC_TYPED_FOREIGN_CHILD(proper,ns,namespaceURI,force) \
+    if (force || xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,ns::proper::LOCAL_NAME)) { \
+        ns::proper* typesafe=dynamic_cast<ns::proper*>(childXMLObject); \
+        if (typesafe && !m_##proper) { \
+            typesafe->setParent(this); \
+            *m_pos_##proper = m_##proper = typesafe; \
+            return; \
+        } \
+    }
+
+/**
+ * Implements unmarshalling process branch for a generic child singleton element
+ *
+ * @param proper        the proper name of the child type
+ * @param namespaceURI  the XML namespace of the child element
+ */
+#define PROC_XMLOBJECT_CHILD(proper,namespaceURI) \
+    if (xmltooling::XMLHelper::isNodeNamed(root,namespaceURI,proper::LOCAL_NAME)) { \
+        if (!m_##proper) { \
+            childXMLObject->setParent(this); \
+            *m_pos_##proper = m_##proper = childXMLObject; \
+            return; \
+        } \
+    }
+
+/**
+ * Declares aliased get/set methods for named XML element simple content.
+ *
+ * @param proper    the proper name to label the element's content
+ */
+#define DECL_SIMPLE_CONTENT(proper) \
+    XMLTOOLING_DOXYGEN(Returns proper.) \
+    const XMLCh* get##proper() const { \
+        return getTextContent(); \
+    } \
+    XMLTOOLING_DOXYGEN(Sets or clears proper.) \
+    void set##proper(const XMLCh* proper) { \
+        setTextContent(proper); \
+    }
+
+/**
+ * Declares aliased get/set methods for named integer XML element content.
+ *
+ * @param proper    the proper name to label the element's content
+ */
+#define DECL_INTEGER_CONTENT(proper) \
+    XMLTOOLING_DOXYGEN(Returns proper in integer form after a NULL indicator.) \
+    std::pair<bool,int> get##proper() const { \
+        return std::make_pair((getTextContent()!=NULL), (getTextContent()!=NULL ? xercesc::XMLString::parseInt(getTextContent()) : 0)); \
+    } \
+    XMLTOOLING_DOXYGEN(Sets proper.) \
+    void set##proper(int proper) { \
+        char buf[64]; \
+        sprintf(buf,"%d",proper); \
+        xmltooling::auto_ptr_XMLCh widebuf(buf); \
+        setTextContent(widebuf.get()); \
+    } \
+    XMLTOOLING_DOXYGEN(Sets or clears proper.) \
+    void set##proper(const XMLCh* proper) { \
+        setTextContent(proper); \
+    }
+
+/**
+ * Implements cloning methods for an XMLObject specialization implementation class.
+ *
+ * @param cname    the name of the XMLObject specialization
+ */
+#define IMPL_XMLOBJECT_CLONE(cname) \
+    cname* clone##cname() const { \
+        return dynamic_cast<cname*>(clone()); \
+    } \
+    xmltooling::XMLObject* clone() const { \
+        std::auto_ptr<xmltooling::XMLObject> domClone(xmltooling::AbstractDOMCachingXMLObject::clone()); \
+        cname##Impl* ret=dynamic_cast<cname##Impl*>(domClone.get()); \
+        if (ret) { \
+            domClone.release(); \
+            return ret; \
+        } \
+        return new cname##Impl(*this); \
+    }
+
+/**
+ * Declares an XMLObject specialization with a simple content model and type,
+ * handling it as string data.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the XMLObject specialization
+ * @param proper    the proper name to label the element's content
+ * @param desc      documentation for class
+ */
+#define DECL_XMLOBJECT_SIMPLE(linkage,cname,proper,desc) \
+    BEGIN_XMLOBJECT(linkage,cname,xmltooling::XMLObject,desc); \
+        DECL_SIMPLE_CONTENT(proper); \
+    END_XMLOBJECT
+
+/**
+ * Declares and defines an implementation class for an XMLObject with
+ * a simple content model and type, handling it as string data.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the XMLObject specialization
+ */
+#define DECL_XMLOBJECTIMPL_SIMPLE(linkage,cname) \
+    class linkage cname##Impl \
+        : public virtual cname, \
+            public xmltooling::AbstractSimpleElement, \
+            public xmltooling::AbstractDOMCachingXMLObject, \
+            public xmltooling::AbstractXMLObjectMarshaller, \
+            public xmltooling::AbstractXMLObjectUnmarshaller \
+    { \
+    public: \
+        virtual ~cname##Impl() {} \
+        cname##Impl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) \
+            : xmltooling::AbstractXMLObject(nsURI, localName, prefix, schemaType) { \
+        } \
+        cname##Impl(const cname##Impl& src) \
+            : xmltooling::AbstractXMLObject(src), \
+                xmltooling::AbstractSimpleElement(src), \
+                xmltooling::AbstractDOMCachingXMLObject(src) {} \
+        IMPL_XMLOBJECT_CLONE(cname) \
+    }
+
+#ifdef HAVE_COVARIANT_RETURNS
+
+/**
+ * Begins the declaration of an XMLObjectBuilder specialization.
+ * Basic boilerplate includes an empty virtual destructor, and
+ * a default builder that defaults the element name.
+ *
+ * @param linkage           linkage specifier for the class
+ * @param cname             the name of the XMLObject specialization
+ * @param namespaceURI      the XML namespace of the default associated element
+ * @param namespacePrefix   the XML namespace prefix of the default associated element
+ */
+#define BEGIN_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix) \
+    XMLTOOLING_DOXYGEN(Builder for cname objects.) \
+    class linkage cname##Builder : public xmltooling::ConcreteXMLObjectBuilder { \
+    public: \
+        virtual ~cname##Builder() {} \
+        XMLTOOLING_DOXYGEN(Default builder.) \
+        virtual cname* buildObject() const { \
+            return buildObject(namespaceURI,cname::LOCAL_NAME,namespacePrefix); \
+        } \
+        XMLTOOLING_DOXYGEN(Builder that allows element/type override.) \
+        virtual cname* buildObject( \
+            const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=NULL, const xmltooling::QName* schemaType=NULL \
+            ) const
+
+/**
+ * Ends the declaration of an XMLObjectBuilder specialization.
+ */
+#define END_XMLOBJECTBUILDER }
+
+/**
+ * Declares a generic XMLObjectBuilder specialization.
+ *
+ * @param linkage           linkage specifier for the class
+ * @param cname             the name of the XMLObject specialization
+ * @param namespaceURI      the XML namespace of the default associated element
+ * @param namespacePrefix   the XML namespace prefix of the default associated element
+ */
+ #define DECL_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix) \
+    BEGIN_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix); \
+    XMLTOOLING_DOXYGEN(Singleton builder.) \
+    static cname* build##cname() { \
+        const cname##Builder* b = dynamic_cast<const cname##Builder*>( \
+            XMLObjectBuilder::getBuilder(xmltooling::QName(namespaceURI,cname::LOCAL_NAME)) \
+            ); \
+        if (b) \
+            return b->buildObject(); \
+        throw xmltooling::XMLObjectException("Unable to obtain typed builder for "#cname"."); \
+    } \
+    END_XMLOBJECTBUILDER
+
+/**
+ * Implements the standard XMLObjectBuilder specialization function.
+ *
+ * @param cname the name of the XMLObject specialization
+ */
+#define IMPL_XMLOBJECTBUILDER(cname) \
+    cname* cname##Builder::buildObject( \
+        const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType \
+        ) const \
+    { \
+        return new cname##Impl(nsURI,localName,prefix,schemaType); \
+    }
+
+#else   /* !HAVE_COVARIANT_RETURNS */
+
+/**
+ * Begins the declaration of an XMLObjectBuilder specialization.
+ * Basic boilerplate includes an empty virtual destructor, and
+ * a default builder that defaults the element name.
+ *
+ * @param linkage           linkage specifier for the class
+ * @param cname             the name of the XMLObject specialization
+ * @param namespaceURI      the XML namespace of the default associated element
+ * @param namespacePrefix   the XML namespace prefix of the default associated element
+ */
+#define BEGIN_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix) \
+    XMLTOOLING_DOXYGEN(Builder for cname objects.) \
+    class linkage cname##Builder : public xmltooling::ConcreteXMLObjectBuilder { \
+    public: \
+        virtual ~cname##Builder() {} \
+        XMLTOOLING_DOXYGEN(Default builder.) \
+        virtual xmltooling::XMLObject* buildObject() const { \
+            return buildObject(namespaceURI,cname::LOCAL_NAME,namespacePrefix); \
+        } \
+        XMLTOOLING_DOXYGEN(Builder that allows element/type override.) \
+        virtual xmltooling::XMLObject* buildObject( \
+            const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=NULL, const xmltooling::QName* schemaType=NULL \
+            ) const
+
+/**
+ * Ends the declaration of an XMLObjectBuilder specialization.
+ */
+#define END_XMLOBJECTBUILDER }
+
+/**
+ * Declares a generic XMLObjectBuilder specialization.
+ *
+ * @param linkage           linkage specifier for the class
+ * @param cname             the name of the XMLObject specialization
+ * @param namespaceURI      the XML namespace of the default associated element
+ * @param namespacePrefix   the XML namespace prefix of the default associated element
+ */
+ #define DECL_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix) \
+    BEGIN_XMLOBJECTBUILDER(linkage,cname,namespaceURI,namespacePrefix); \
+    XMLTOOLING_DOXYGEN(Singleton builder.) \
+    static cname* build##cname() { \
+        const cname##Builder* b = dynamic_cast<const cname##Builder*>( \
+            XMLObjectBuilder::getBuilder(xmltooling::QName(namespaceURI,cname::LOCAL_NAME)) \
+            ); \
+        if (b) \
+            return dynamic_cast<cname*>(b->buildObject()); \
+        throw xmltooling::XMLObjectException("Unable to obtain typed builder for "#cname"."); \
+    } \
+    END_XMLOBJECTBUILDER
+
+/**
+ * Implements the standard XMLObjectBuilder specialization function.
+ *
+ * @param cname the name of the XMLObject specialization
+ */
+#define IMPL_XMLOBJECTBUILDER(cname) \
+    xmltooling::XMLObject* cname##Builder::buildObject( \
+        const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType \
+        ) const \
+    { \
+        return new cname##Impl(nsURI,localName,prefix,schemaType); \
+    }
+
+#endif  /* HAVE_COVARIANT_RETURNS */
+
+/**
+ * Begins the declaration of a Schema Validator specialization.
+ *
+ * @param linkage           linkage specifier for the class
+ * @param cname the base name of the Validator specialization
+ */
+ #define BEGIN_XMLOBJECTVALIDATOR(linkage,cname) \
+    class linkage cname##SchemaValidator : public xmltooling::Validator \
+    { \
+    public: \
+        virtual ~cname##SchemaValidator() {} \
+        virtual void validate(const xmltooling::XMLObject* xmlObject) const { \
+            const cname* ptr=dynamic_cast<const cname*>(xmlObject); \
+            if (!ptr) \
+                throw xmltooling::ValidationException(#cname"SchemaValidator: unsupported object type ($1).",xmltooling::params(1,typeid(xmlObject).name())); \
+            if (ptr->nil() && (ptr->hasChildren() || ptr->getTextContent())) \
+               throw xmltooling::ValidationException("Object has nil property but with children or content.")
+
+/**
+ * Begins the declaration of a Schema Validator specialization subclass.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the base name of the Validator specialization
+ * @param base      base class for the validator
+ */
+ #define BEGIN_XMLOBJECTVALIDATOR_SUB(linkage,cname,base) \
+    class linkage cname##SchemaValidator : public base##SchemaValidator \
+    { \
+    public: \
+        virtual ~cname##SchemaValidator() {} \
+        virtual void validate(const xmltooling::XMLObject* xmlObject) const { \
+            const cname* ptr=dynamic_cast<const cname*>(xmlObject); \
+            if (!ptr) \
+                throw xmltooling::ValidationException(#cname"SchemaValidator: unsupported object type ($1).",xmltooling::params(1,typeid(xmlObject).name()));
+
+/**
+ * Ends the declaration of a Validator specialization.
+ */
+#define END_XMLOBJECTVALIDATOR } }
+
+/**
+ * Validator code that checks the object type.
+ *
+ * @param cname     the name of the XMLObject specialization
+ */
+#define XMLOBJECTVALIDATOR_CHECKTYPE(cname) \
+    const cname* ptr=dynamic_cast<const cname*>(xmlObject); \
+    if (!ptr) \
+        throw xmltooling::ValidationException(#cname"SchemaValidator: unsupported object type ($1).",xmltooling::params(1,typeid(xmlObject).name()))
+
+/**
+ * Validator code that checks for a required attribute, content, or singleton.
+ *
+ * @param cname     the name of the XMLObject specialization
+ * @param proper    the proper name of the attribute, content, or singleton member
+ */
+#define XMLOBJECTVALIDATOR_REQUIRE(cname,proper) \
+    if (!ptr->get##proper()) \
+        throw xmltooling::ValidationException(#cname" must have "#proper".")
+
+/**
+ * Validator code that checks for a required integer attribute
+ *
+ * @param cname     the name of the XMLObject specialization
+ * @param proper    the proper name of the attribute, content, or singleton member
+ */
+#define XMLOBJECTVALIDATOR_REQUIRE_INTEGER(cname,proper) \
+    if (!ptr->get##proper().first) \
+        throw xmltooling::ValidationException(#cname" must have "#proper".")
+
+/**
+ * Validator code that checks for one of a pair of
+ * required attributes, content, or singletons.
+ *
+ * @param cname     the name of the XMLObject specialization
+ * @param proper1   the proper name of the first attribute, content, or singleton member
+ * @param proper2   the proper name of the second attribute, content, or singleton member
+ */
+#define XMLOBJECTVALIDATOR_ONEOF(cname,proper1,proper2) \
+    if (!ptr->get##proper1() && !ptr->get##proper2()) \
+        throw xmltooling::ValidationException(#cname" must have "#proper1" or "#proper2".")
+
+/**
+ * Validator code that checks for one of a pair of
+ * required attributes, content, or singletons, but disallows both.
+ *
+ * @param cname     the name of the XMLObject specialization
+ * @param proper1   the proper name of the first attribute, content, or singleton member
+ * @param proper2   the proper name of the second attribute, content, or singleton member
+ */
+#define XMLOBJECTVALIDATOR_ONLYONEOF(cname,proper1,proper2) \
+    if ((!ptr->get##proper1() && !ptr->get##proper2()) || (ptr->get##proper1() && ptr->get##proper2())) \
+        throw xmltooling::ValidationException(#cname" must have "#proper1" or "#proper2" but not both.")
+
+/**
+ * Validator code that checks for one of a set of three
+ * required attributes, content, or singletons.
+ *
+ * @param cname     the name of the XMLObject specialization
+ * @param proper1   the proper name of the first attribute, content, or singleton member
+ * @param proper2   the proper name of the second attribute, content, or singleton member
+ * @param proper3   the proper name of the third attribute, content, or singleton member
+ */
+#define XMLOBJECTVALIDATOR_ONEOF3(cname,proper1,proper2,proper3) \
+    if (!ptr->get##proper1() && !ptr->get##proper2() && !ptr->get##proper3()) \
+        throw xmltooling::ValidationException(#cname" must have "#proper1", "#proper2", or "#proper3".")
+
+/**
+ * Validator code that checks for one of a set of three
+ * required attributes, content, or singletons but disallows more than one.
+ *
+ * @param cname     the name of the XMLObject specialization
+ * @param proper1   the proper name of the first attribute, content, or singleton member
+ * @param proper2   the proper name of the second attribute, content, or singleton member
+ * @param proper3   the proper name of the third attribute, content, or singleton member
+ */
+#define XMLOBJECTVALIDATOR_ONLYONEOF3(cname,proper1,proper2,proper3) \
+    int c##proper1##proper2##proper3=0; \
+    if (ptr->get##proper1()!=NULL) \
+        c##proper1##proper2##proper3++; \
+    if (ptr->get##proper2()!=NULL) \
+        c##proper1##proper2##proper3++; \
+    if (ptr->get##proper3()!=NULL) \
+        c##proper1##proper2##proper3++; \
+    if (c##proper1##proper2##proper3 != 1) \
+        throw xmltooling::ValidationException(#cname" must have only one of "#proper1", "#proper2", or "#proper3".")
+
+/**
+ * Validator code that checks a co-constraint (if one present, the other must be)
+ * between a pair of attributes, content, or singletons.
+ *
+ * @param cname     the name of the XMLObject specialization
+ * @param proper1   the proper name of the first attribute, content, or singleton member
+ * @param proper2   the proper name of the second attribute, content, or singleton member
+ */
+#define XMLOBJECTVALIDATOR_NONEORBOTH(cname,proper1,proper2) \
+    if ((ptr->get##proper1() && !ptr->get##proper2()) || (!ptr->get##proper1() && ptr->get##proper2())) \
+        throw xmltooling::ValidationException(#cname" cannot have "#proper1" without "#proper2".")
+
+/**
+ * Validator code that checks for a non-empty collection.
+ *
+ * @param cname     the name of the XMLObject specialization
+ * @param proper    the proper name of the collection item
+ */
+#define XMLOBJECTVALIDATOR_NONEMPTY(cname,proper) \
+    if (ptr->get##proper##s().empty()) \
+        throw xmltooling::ValidationException(#cname" must have at least one "#proper".")
+
+/**
+ * Declares/defines a Validator specialization that checks object type and
+ * a non-empty simple content model.
+ *
+ * @param linkage   linkage specifier for the class
+ * @param cname     the name of the XMLObject specialization
+ */
+#define XMLOBJECTVALIDATOR_SIMPLE(linkage,cname) \
+    BEGIN_XMLOBJECTVALIDATOR(linkage,cname); \
+        XMLOBJECTVALIDATOR_REQUIRE(cname,TextContent); \
+    END_XMLOBJECTVALIDATOR
+
+#include <utility>
+
+/**
+ * @namespace xmltooling
+ * Public namespace of XML Tooling library
+ */
+namespace xmltooling {
+
+    /**
+     * Template function for cloning a sequence of XMLObjects.
+     * Invokes the clone() member on each element of the input sequence and adds the copy to
+     * the output sequence. Order is preserved.
+     *
+     * @param in    input sequence to clone
+     * @param out   output sequence to copy cloned pointers into
+     */
+    template<class InputSequence,class OutputSequence> void clone(const InputSequence& in, OutputSequence& out) {
+        for (typename InputSequence::const_iterator i=in.begin(); i!=in.end(); i++) {
+            if (*i)
+                out.push_back((*i)->clone());
+            else
+                out.push_back(*i);
+        }
+    }
+
+    /**
+     * Functor for cleaning up heap objects in containers.
+     */
+    template<class T> struct cleanup
+    {
+        /**
+         * Function operator to delete an object.
+         *
+         * @param ptr   object to delete
+         */
+        void operator()(T* ptr) {delete ptr;}
+
+        /**
+         * Function operator to delete an object stored as const.
+         *
+         * @param ptr   object to delete after casting away const
+         */
+        void operator()(const T* ptr) {delete const_cast<T*>(ptr);}
+    };
+
+    /**
+     * Functor for cleaning up heap objects in key/value containers.
+     */
+    template<class A,class B> struct cleanup_pair
+    {
+        /**
+         * Function operator to delete an object.
+         *
+         * @param p   a pair in which the second component is the object to delete
+         */
+        void operator()(const std::pair<const A,B*>& p) {delete p.second;}
+    };
+
+    /**
+     * Functor for cleaning up const heap objects in key/value containers.
+     */
+    template<class A,class B> struct cleanup_const_pair
+    {
+        /**
+         * Function operator to delete an object stored as const
+         *
+         * @param p   a pair in which the second component is the const object to delete
+         */
+        void operator()(const std::pair<const A,const B*>& p) {delete const_cast<B*>(p.second);}
+    };
+};
+
+#endif /* __xmltooling_base_h__ */
index 170f9d9..8304297 100644 (file)
-/*\r
- *  Copyright 2001-2009 Internet2\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/**\r
- * exceptions.cpp\r
- * \r
- * Exception classes\r
- */\r
\r
-#include "internal.h"\r
-#include "exceptions.h"\r
-#include "XMLToolingConfig.h"\r
-#include "util/URLEncoder.h"\r
-#include "util/XMLConstants.h"\r
-#include "util/XMLHelper.h"\r
-\r
-#include <stdarg.h>\r
-#include <memory>\r
-#include <sstream>\r
-#include <xercesc/util/XMLUniDefs.hpp>\r
-\r
-using namespace xmltooling;\r
-using namespace xercesc;\r
-using namespace std;\r
-using xmlconstants::XMLTOOLING_NS;\r
-\r
-params::params(int count,...)\r
-{\r
-    va_list args;\r
-    va_start(args,count);\r
-    while (count--)\r
-        v.push_back(va_arg(args,char*));\r
-    va_end(args);\r
-}\r
-\r
-namedparams::namedparams(int count,...)\r
-{\r
-    count*=2;\r
-    va_list args;\r
-    va_start(args,count);\r
-    while (count--)\r
-        v.push_back(va_arg(args,char*));\r
-    va_end(args);\r
-}\r
-\r
-XMLToolingException::ExceptionFactoryMap XMLToolingException::m_factoryMap;\r
-\r
-XMLToolingException* XMLToolingException::getInstance(const char* exceptionClass)\r
-{\r
-    if (exceptionClass) {\r
-        ExceptionFactoryMap::const_iterator i=m_factoryMap.find(exceptionClass);\r
-        if (i!=m_factoryMap.end())\r
-            return (i->second)();\r
-    }\r
-    return new XMLToolingException();\r
-}\r
-\r
-XMLToolingException::XMLToolingException(const char* msg, const params& p)\r
-{\r
-    if (msg)\r
-        m_msg=msg;\r
-    addProperties(p);\r
-}\r
-\r
-XMLToolingException::XMLToolingException(const char* msg, const namedparams& p)\r
-{\r
-    if (msg)\r
-        m_msg=msg;\r
-    addProperties(p);\r
-}\r
-\r
-XMLToolingException::XMLToolingException(const std::string& msg, const params& p) : m_msg(msg)\r
-{\r
-    addProperties(p);\r
-}\r
-\r
-XMLToolingException::XMLToolingException(const std::string& msg, const namedparams& p) : m_msg(msg)\r
-{\r
-    addProperties(p);\r
-}\r
-\r
-void XMLToolingException::setMessage(const char* msg)\r
-{\r
-    if (msg)\r
-        m_msg=msg;\r
-    else\r
-        m_msg.erase();\r
-    m_processedmsg.erase();\r
-}\r
-\r
-inline const char* get_digit_character()\r
-{\r
-    static const char  s_characters[19] = \r
-    {\r
-            '9'\r
-        ,   '8'\r
-        ,   '7'\r
-        ,   '6'\r
-        ,   '5'\r
-        ,   '4'\r
-        ,   '3'\r
-        ,   '2'\r
-        ,   '1'\r
-        ,   '0'\r
-        ,   '1'\r
-        ,   '2'\r
-        ,   '3'\r
-        ,   '4'\r
-        ,   '5'\r
-        ,   '6'\r
-        ,   '7'\r
-        ,   '8'\r
-        ,   '9'\r
-    };\r
-    static const char  *s_mid  =   s_characters + 9;\r
-\r
-    return s_mid;\r
-}\r
-\r
-inline const char* unsigned_integer_to_string(char* buf, size_t cchBuf, size_t i)\r
-{\r
-    char* psz=buf + cchBuf - 1;     // Set psz to last char\r
-    *psz = 0;                       // Set terminating null\r
-\r
-    do {\r
-        size_t lsd = i % 10;  // Get least significant\r
-                                    // digit\r
-\r
-        i /= 10;                    // Prepare for next most\r
-                                    // significant digit\r
-\r
-        --psz;                      // Move back\r
-\r
-        *psz = get_digit_character()[lsd]; // Place the digit\r
-\r
-    } while(i!=0 && psz>buf);\r
-\r
-    return psz;\r
-}\r
-\r
-void XMLToolingException::addProperties(const params& p)\r
-{\r
-    m_processedmsg.erase();\r
-    map<string,string>::size_type i=m_params.size()+1;\r
-    char buf[20];\r
-    const vector<const char*>& v=p.get();\r
-    for (vector<const char*>::const_iterator ci=v.begin(); ci!=v.end(); ci++) {\r
-        m_params[unsigned_integer_to_string(buf,sizeof(buf),i++)] = *ci;\r
-    }\r
-}\r
-        \r
-void XMLToolingException::addProperties(const namedparams& p)\r
-{\r
-    m_processedmsg.erase();\r
-    const vector<const char*>& v=p.get();\r
-    for (vector<const char*>::const_iterator ci=v.begin(); ci!=v.end(); ci++) {\r
-        m_params.erase(*ci);\r
-        m_params[*ci] = *(ci+1);\r
-        ci++;   // advance past name to value, then loop will advance it again\r
-    }\r
-}\r
-\r
-const char* XMLToolingException::getProperty(unsigned int index) const\r
-{\r
-    char buf[20];\r
-    map<string,string>::const_iterator i=m_params.find(unsigned_integer_to_string(buf,sizeof(buf),index));\r
-    return (i==m_params.end()) ? NULL : i->second.c_str();\r
-}\r
-\r
-const char* XMLToolingException::getProperty(const char* name) const\r
-{\r
-    map<string,string>::const_iterator i=m_params.find(name);\r
-    return (i==m_params.end()) ? NULL : i->second.c_str();\r
-}\r
-\r
-const char* XMLToolingException::getMessage() const\r
-{\r
-    if (!m_processedmsg.empty())\r
-        return m_processedmsg.c_str();\r
-    else if (m_params.empty())\r
-        return m_msg.c_str();\r
-\r
-    static const char* legal="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_";\r
-\r
-    // Replace any parameters in the message.\r
-    string::size_type i=0,start=0;\r
-    while (start!=string::npos && start<m_msg.length() && (i=m_msg.find("$",start))!=string::npos) {\r
-        if (i>start)\r
-            m_processedmsg += m_msg.substr(start,i-start);  // append everything in between\r
-        start=i+1;                                  // move start to the beginning of the token name\r
-        i=m_msg.find_first_not_of(legal,start);     // find token delimiter\r
-        if (i==start) {                             // append a non legal character\r
-           m_processedmsg+=m_msg[start++];\r
-           continue;\r
-        }\r
-        \r
-        // search for token in map\r
-        map<string,string>::const_iterator param=m_params.find(m_msg.substr(start,(i==string::npos) ? i : i-start));\r
-        if (param!=m_params.end()) {\r
-            m_processedmsg+=param->second;\r
-            start=i;\r
-        }\r
-    }\r
-    if (start!=string::npos && start<m_msg.length())\r
-        m_processedmsg += m_msg.substr(start,i);    // append rest of string\r
-    return m_processedmsg.c_str();\r
-}\r
-\r
-void xml_encode(string& s, const char* pre, const char* start, const char* post)\r
-{\r
-    s += pre;\r
-    size_t pos;\r
-    while (start && *start) {\r
-        pos = strcspn(start, "\"<>&");\r
-        if (pos > 0) {\r
-            s.append(start, pos);\r
-            start += pos;\r
-        }\r
-        else {\r
-            switch (*start) {\r
-                case '\'':  s += "&apos;";     break;\r
-                case '<':   s += "&lt;";       break;\r
-                case '>':   s += "&gt;";       break;\r
-                case '&':   s += "&amp;";      break;\r
-                default:    s += *start;\r
-            }\r
-            start++;\r
-        }\r
-    }\r
-    s += post;\r
-}\r
-\r
-string XMLToolingException::toString() const\r
-{\r
-    string xml=string("<exception xmlns='http://www.opensaml.org/xmltooling' type='") + getClassName() + "'>";\r
-    const char* msg=getMessage();\r
-    if (msg)\r
-        xml_encode(xml, "<message>", msg, "</message>");\r
-    const URLEncoder* encoder = XMLToolingConfig::getConfig().getURLEncoder();\r
-    for (map<string,string>::const_iterator i=m_params.begin(); i!=m_params.end(); i++) {\r
-        xml_encode(xml, "<param name='", i->first.c_str(), "'");\r
-        xml_encode(xml, ">", encoder->encode(i->second.c_str()).c_str(), "</param>");\r
-    }\r
-    xml+="</exception>";\r
-    return xml;\r
-}\r
-\r
-string XMLToolingException::toQueryString() const\r
-{\r
-    string q;\r
-    const URLEncoder* enc = XMLToolingConfig::getConfig().getURLEncoder();\r
-    for (map<string,string>::const_iterator i=m_params.begin(); i!=m_params.end(); i++) {\r
-        if (!q.empty())\r
-            q += '&';\r
-        q = q + i->first + '=' + enc->encode(i->second.c_str());\r
-    }\r
-    return q;\r
-}\r
-\r
-XMLToolingException* XMLToolingException::fromStream(std::istream& in)\r
-{\r
-    static const XMLCh exception[] =    UNICODE_LITERAL_9(e,x,c,e,p,t,i,o,n);\r
-    static const XMLCh message[] =      UNICODE_LITERAL_7(m,e,s,s,a,g,e);\r
-    static const XMLCh name[] =         UNICODE_LITERAL_4(n,a,m,e);\r
-    static const XMLCh param[] =        UNICODE_LITERAL_5(p,a,r,a,m);\r
-    static const XMLCh type[] =         UNICODE_LITERAL_4(t,y,p,e);\r
-\r
-    DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);\r
-    \r
-    // Check root element.\r
-    const DOMElement* root=doc->getDocumentElement();\r
-    if (!XMLHelper::isNodeNamed(root,XMLTOOLING_NS,exception)) {\r
-        doc->release();\r
-        throw XMLToolingException("Invalid root element on serialized exception.");\r
-    }\r
-    \r
-    auto_ptr_char classname(root->getAttributeNS(NULL,type));\r
-    auto_ptr<XMLToolingException> excep(XMLToolingException::getInstance(classname.get()));\r
-    \r
-    DOMElement* child=XMLHelper::getFirstChildElement(root,XMLTOOLING_NS,message);\r
-    if (child && child->hasChildNodes()) {\r
-        auto_ptr_char m(child->getFirstChild()->getNodeValue());\r
-        excep->setMessage(m.get());\r
-    }\r
-    \r
-    const URLEncoder* encoder = XMLToolingConfig::getConfig().getURLEncoder();\r
-    child=XMLHelper::getFirstChildElement(root,XMLTOOLING_NS,param);\r
-    while (child && child->hasChildNodes()) {\r
-        auto_ptr_char n(child->getAttributeNS(NULL,name));\r
-        char* encoded = XMLString::transcode(child->getFirstChild()->getNodeValue());\r
-        if (n.get() && encoded) {\r
-            encoder->decode(encoded);\r
-            excep->addProperty(n.get(), encoded);\r
-        }\r
-        XMLString::release(&encoded);\r
-        child=XMLHelper::getNextSiblingElement(child,XMLTOOLING_NS,param);\r
-    }\r
-\r
-    doc->release();\r
-    return excep.release();\r
-}\r
-        \r
-XMLToolingException* XMLToolingException::fromString(const char* s)\r
-{\r
-    istringstream in(s);\r
-    return fromStream(in);\r
-}\r
+/*
+ *  Copyright 2001-2009 Internet2
+ * 
+ * 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.
+ */
+
+/**
+ * exceptions.cpp
+ * 
+ * Exception classes
+ */
+#include "internal.h"
+#include "exceptions.h"
+#include "XMLToolingConfig.h"
+#include "util/URLEncoder.h"
+#include "util/XMLConstants.h"
+#include "util/XMLHelper.h"
+
+#include <stdarg.h>
+#include <memory>
+#include <sstream>
+#include <xercesc/util/XMLUniDefs.hpp>
+
+using namespace xmltooling;
+using namespace xercesc;
+using namespace std;
+using xmlconstants::XMLTOOLING_NS;
+
+params::params(int count,...)
+{
+    va_list args;
+    va_start(args,count);
+    while (count--)
+        v.push_back(va_arg(args,char*));
+    va_end(args);
+}
+
+namedparams::namedparams(int count,...)
+{
+    count*=2;
+    va_list args;
+    va_start(args,count);
+    while (count--)
+        v.push_back(va_arg(args,char*));
+    va_end(args);
+}
+
+XMLToolingException::ExceptionFactoryMap XMLToolingException::m_factoryMap;
+
+XMLToolingException* XMLToolingException::getInstance(const char* exceptionClass)
+{
+    if (exceptionClass) {
+        ExceptionFactoryMap::const_iterator i=m_factoryMap.find(exceptionClass);
+        if (i!=m_factoryMap.end())
+            return (i->second)();
+    }
+    return new XMLToolingException();
+}
+
+XMLToolingException::XMLToolingException(const char* msg, const params& p)
+{
+    if (msg)
+        m_msg=msg;
+    addProperties(p);
+}
+
+XMLToolingException::XMLToolingException(const char* msg, const namedparams& p)
+{
+    if (msg)
+        m_msg=msg;
+    addProperties(p);
+}
+
+XMLToolingException::XMLToolingException(const std::string& msg, const params& p) : m_msg(msg)
+{
+    addProperties(p);
+}
+
+XMLToolingException::XMLToolingException(const std::string& msg, const namedparams& p) : m_msg(msg)
+{
+    addProperties(p);
+}
+
+void XMLToolingException::setMessage(const char* msg)
+{
+    if (msg)
+        m_msg=msg;
+    else
+        m_msg.erase();
+    m_processedmsg.erase();
+}
+
+inline const char* get_digit_character()
+{
+    static const char  s_characters[19] = 
+    {
+            '9'
+        ,   '8'
+        ,   '7'
+        ,   '6'
+        ,   '5'
+        ,   '4'
+        ,   '3'
+        ,   '2'
+        ,   '1'
+        ,   '0'
+        ,   '1'
+        ,   '2'
+        ,   '3'
+        ,   '4'
+        ,   '5'
+        ,   '6'
+        ,   '7'
+        ,   '8'
+        ,   '9'
+    };
+    static const char  *s_mid  =   s_characters + 9;
+
+    return s_mid;
+}
+
+inline const char* unsigned_integer_to_string(char* buf, size_t cchBuf, size_t i)
+{
+    char* psz=buf + cchBuf - 1;     // Set psz to last char
+    *psz = 0;                       // Set terminating null
+
+    do {
+        size_t lsd = i % 10;  // Get least significant
+                                    // digit
+
+        i /= 10;                    // Prepare for next most
+                                    // significant digit
+
+        --psz;                      // Move back
+
+        *psz = get_digit_character()[lsd]; // Place the digit
+
+    } while(i!=0 && psz>buf);
+
+    return psz;
+}
+
+void XMLToolingException::addProperties(const params& p)
+{
+    m_processedmsg.erase();
+    map<string,string>::size_type i=m_params.size()+1;
+    char buf[20];
+    const vector<const char*>& v=p.get();
+    for (vector<const char*>::const_iterator ci=v.begin(); ci!=v.end(); ci++) {
+        m_params[unsigned_integer_to_string(buf,sizeof(buf),i++)] = *ci;
+    }
+}
+        
+void XMLToolingException::addProperties(const namedparams& p)
+{
+    m_processedmsg.erase();
+    const vector<const char*>& v=p.get();
+    for (vector<const char*>::const_iterator ci=v.begin(); ci!=v.end(); ci++) {
+        m_params.erase(*ci);
+        m_params[*ci] = *(ci+1);
+        ci++;   // advance past name to value, then loop will advance it again
+    }
+}
+
+const char* XMLToolingException::getProperty(unsigned int index) const
+{
+    char buf[20];
+    map<string,string>::const_iterator i=m_params.find(unsigned_integer_to_string(buf,sizeof(buf),index));
+    return (i==m_params.end()) ? NULL : i->second.c_str();
+}
+
+const char* XMLToolingException::getProperty(const char* name) const
+{
+    map<string,string>::const_iterator i=m_params.find(name);
+    return (i==m_params.end()) ? NULL : i->second.c_str();
+}
+
+const char* XMLToolingException::getMessage() const
+{
+    if (!m_processedmsg.empty())
+        return m_processedmsg.c_str();
+    else if (m_params.empty())
+        return m_msg.c_str();
+
+    static const char* legal="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_";
+
+    // Replace any parameters in the message.
+    string::size_type i=0,start=0;
+    while (start!=string::npos && start<m_msg.length() && (i=m_msg.find("$",start))!=string::npos) {
+        if (i>start)
+            m_processedmsg += m_msg.substr(start,i-start);  // append everything in between
+        start=i+1;                                  // move start to the beginning of the token name
+        i=m_msg.find_first_not_of(legal,start);     // find token delimiter
+        if (i==start) {                             // append a non legal character
+           m_processedmsg+=m_msg[start++];
+           continue;
+        }
+        
+        // search for token in map
+        map<string,string>::const_iterator param=m_params.find(m_msg.substr(start,(i==string::npos) ? i : i-start));
+        if (param!=m_params.end()) {
+            m_processedmsg+=param->second;
+            start=i;
+        }
+    }
+    if (start!=string::npos && start<m_msg.length())
+        m_processedmsg += m_msg.substr(start,i);    // append rest of string
+    return m_processedmsg.c_str();
+}
+
+void xml_encode(string& s, const char* pre, const char* start, const char* post)
+{
+    s += pre;
+    size_t pos;
+    while (start && *start) {
+        pos = strcspn(start, "\"<>&");
+        if (pos > 0) {
+            s.append(start, pos);
+            start += pos;
+        }
+        else {
+            switch (*start) {
+                case '\'':  s += "&apos;";     break;
+                case '<':   s += "&lt;";       break;
+                case '>':   s += "&gt;";       break;
+                case '&':   s += "&amp;";      break;
+                default:    s += *start;
+            }
+            start++;
+        }
+    }
+    s += post;
+}
+
+string XMLToolingException::toString() const
+{
+    string xml=string("<exception xmlns='http://www.opensaml.org/xmltooling' type='") + getClassName() + "'>";
+    const char* msg=getMessage();
+    if (msg)
+        xml_encode(xml, "<message>", msg, "</message>");
+    const URLEncoder* encoder = XMLToolingConfig::getConfig().getURLEncoder();
+    for (map<string,string>::const_iterator i=m_params.begin(); i!=m_params.end(); i++) {
+        xml_encode(xml, "<param name='", i->first.c_str(), "'");
+        xml_encode(xml, ">", encoder->encode(i->second.c_str()).c_str(), "</param>");
+    }
+    xml+="</exception>";
+    return xml;
+}
+
+string XMLToolingException::toQueryString() const
+{
+    string q;
+    const URLEncoder* enc = XMLToolingConfig::getConfig().getURLEncoder();
+    for (map<string,string>::const_iterator i=m_params.begin(); i!=m_params.end(); i++) {
+        if (!q.empty())
+            q += '&';
+        q = q + i->first + '=' + enc->encode(i->second.c_str());
+    }
+    return q;
+}
+
+XMLToolingException* XMLToolingException::fromStream(std::istream& in)
+{
+    static const XMLCh exception[] =    UNICODE_LITERAL_9(e,x,c,e,p,t,i,o,n);
+    static const XMLCh message[] =      UNICODE_LITERAL_7(m,e,s,s,a,g,e);
+    static const XMLCh name[] =         UNICODE_LITERAL_4(n,a,m,e);
+    static const XMLCh param[] =        UNICODE_LITERAL_5(p,a,r,a,m);
+    static const XMLCh type[] =         UNICODE_LITERAL_4(t,y,p,e);
+
+    DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);
+    
+    // Check root element.
+    const DOMElement* root=doc->getDocumentElement();
+    if (!XMLHelper::isNodeNamed(root,XMLTOOLING_NS,exception)) {
+        doc->release();
+        throw XMLToolingException("Invalid root element on serialized exception.");
+    }
+    
+    auto_ptr_char classname(root->getAttributeNS(NULL,type));
+    auto_ptr<XMLToolingException> excep(XMLToolingException::getInstance(classname.get()));
+    
+    DOMElement* child=XMLHelper::getFirstChildElement(root,XMLTOOLING_NS,message);
+    if (child && child->hasChildNodes()) {
+        auto_ptr_char m(child->getFirstChild()->getNodeValue());
+        excep->setMessage(m.get());
+    }
+    
+    const URLEncoder* encoder = XMLToolingConfig::getConfig().getURLEncoder();
+    child=XMLHelper::getFirstChildElement(root,XMLTOOLING_NS,param);
+    while (child && child->hasChildNodes()) {
+        auto_ptr_char n(child->getAttributeNS(NULL,name));
+        char* encoded = XMLString::transcode(child->getFirstChild()->getNodeValue());
+        if (n.get() && encoded) {
+            encoder->decode(encoded);
+            excep->addProperty(n.get(), encoded);
+        }
+        XMLString::release(&encoded);
+        child=XMLHelper::getNextSiblingElement(child,XMLTOOLING_NS,param);
+    }
+
+    doc->release();
+    return excep.release();
+}
+        
+XMLToolingException* XMLToolingException::fromString(const char* s)
+{
+    istringstream in(s);
+    return fromStream(in);
+}
index 7e9b845..b0b304b 100644 (file)
-/*\r
- *  Copyright 2001-2007 Internet2\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/**\r
- * MemoryStorageService.cpp\r
- *\r
- * In-memory "persistent" storage, suitable for simple applications.\r
- */\r
-\r
-#include "internal.h"\r
-#include "logging.h"\r
-#include "util/NDC.h"\r
-#include "util/StorageService.h"\r
-#include "util/Threads.h"\r
-#include "util/XMLHelper.h"\r
-\r
-#include <memory>\r
-#include <xercesc/util/XMLUniDefs.hpp>\r
-\r
-using namespace xmltooling::logging;\r
-using namespace xmltooling;\r
-using namespace std;\r
-\r
-using xercesc::DOMElement;\r
-\r
-namespace xmltooling {\r
-    class XMLTOOL_DLLLOCAL MemoryStorageService : public StorageService\r
-    {\r
-    public:\r
-        MemoryStorageService(const DOMElement* e);\r
-        virtual ~MemoryStorageService();\r
-\r
-        bool createString(const char* context, const char* key, const char* value, time_t expiration);\r
-        int readString(const char* context, const char* key, string* pvalue=NULL, time_t* pexpiration=NULL, int version=0);\r
-        int updateString(const char* context, const char* key, const char* value=NULL, time_t expiration=0, int version=0);\r
-        bool deleteString(const char* context, const char* key);\r
-\r
-        bool createText(const char* context, const char* key, const char* value, time_t expiration) {\r
-            return createString(context, key, value, expiration);\r
-        }\r
-        int readText(const char* context, const char* key, string* pvalue=NULL, time_t* pexpiration=NULL, int version=0) {\r
-            return readString(context, key, pvalue, pexpiration, version);\r
-        }\r
-        int updateText(const char* context, const char* key, const char* value=NULL, time_t expiration=0, int version=0) {\r
-            return updateString(context, key, value, expiration, version);\r
-        }\r
-        bool deleteText(const char* context, const char* key) {\r
-            return deleteString(context, key);\r
-        }\r
-\r
-        void reap(const char* context);\r
-        void updateContext(const char* context, time_t expiration);\r
-        void deleteContext(const char* context) {\r
-            m_lock->wrlock();\r
-            m_contextMap.erase(context);\r
-            m_lock->unlock();\r
-        }\r
-\r
-    private:\r
-        void cleanup();\r
-\r
-        struct XMLTOOL_DLLLOCAL Record {\r
-            Record() : expiration(0), version(1) {}\r
-            Record(const string& s, time_t t) : data(s), expiration(t), version(1) {}\r
-            string data;\r
-            time_t expiration;\r
-            int version;\r
-        };\r
-\r
-        struct XMLTOOL_DLLLOCAL Context {\r
-            Context() {}\r
-            Context(const Context& src) {\r
-                m_dataMap = src.m_dataMap;\r
-            }\r
-            map<string,Record> m_dataMap;\r
-            unsigned long reap(time_t exp);\r
-        };\r
-\r
-        Context& readContext(const char* context) {\r
-            m_lock->rdlock();\r
-            map<string,Context>::iterator i = m_contextMap.find(context);\r
-            if (i != m_contextMap.end())\r
-                return i->second;\r
-            m_lock->unlock();\r
-            m_lock->wrlock();\r
-            return m_contextMap[context];\r
-        }\r
-\r
-        Context& writeContext(const char* context) {\r
-            m_lock->wrlock();\r
-            return m_contextMap[context];\r
-        }\r
-\r
-        map<string,Context> m_contextMap;\r
-        RWLock* m_lock;\r
-        CondWait* shutdown_wait;\r
-        Thread* cleanup_thread;\r
-        static void* cleanup_fn(void*);\r
-        bool shutdown;\r
-        int m_cleanupInterval;\r
-        Category& m_log;\r
-    };\r
-\r
-    StorageService* XMLTOOL_DLLLOCAL MemoryStorageServiceFactory(const DOMElement* const & e)\r
-    {\r
-        return new MemoryStorageService(e);\r
-    }\r
-};\r
-\r
-static const XMLCh cleanupInterval[] = UNICODE_LITERAL_15(c,l,e,a,n,u,p,I,n,t,e,r,v,a,l);\r
-\r
-MemoryStorageService::MemoryStorageService(const DOMElement* e)\r
-    : m_lock(NULL), shutdown_wait(NULL), cleanup_thread(NULL), shutdown(false), m_cleanupInterval(0),\r
-        m_log(Category::getInstance(XMLTOOLING_LOGCAT".StorageService"))\r
-{\r
-    const XMLCh* tag=e ? e->getAttributeNS(NULL,cleanupInterval) : NULL;\r
-    if (tag && *tag) {\r
-        m_cleanupInterval = XMLString::parseInt(tag);\r
-    }\r
-    if (!m_cleanupInterval)\r
-        m_cleanupInterval=900;\r
-\r
-    m_lock = RWLock::create();\r
-    shutdown_wait = CondWait::create();\r
-    cleanup_thread = Thread::create(&cleanup_fn, (void*)this);\r
-}\r
-\r
-MemoryStorageService::~MemoryStorageService()\r
-{\r
-    // Shut down the cleanup thread and let it know...\r
-    shutdown = true;\r
-    shutdown_wait->signal();\r
-    cleanup_thread->join(NULL);\r
-\r
-    delete cleanup_thread;\r
-    delete shutdown_wait;\r
-    delete m_lock;\r
-}\r
-\r
-void* MemoryStorageService::cleanup_fn(void* cache_p)\r
-{\r
-    MemoryStorageService* cache = reinterpret_cast<MemoryStorageService*>(cache_p);\r
-\r
-#ifndef WIN32\r
-    // First, let's block all signals\r
-    Thread::mask_all_signals();\r
-#endif\r
-\r
-    // Now run the cleanup process.\r
-    cache->cleanup();\r
-    return NULL;\r
-}\r
-\r
-void MemoryStorageService::cleanup()\r
-{\r
-#ifdef _DEBUG\r
-    NDC ndc("cleanup");\r
-#endif\r
-\r
-    auto_ptr<Mutex> mutex(Mutex::create());\r
-    mutex->lock();\r
-\r
-    m_log.info("cleanup thread started...running every %d seconds", m_cleanupInterval);\r
-\r
-    while (!shutdown) {\r
-        shutdown_wait->timedwait(mutex.get(), m_cleanupInterval);\r
-        if (shutdown)\r
-            break;\r
-\r
-        unsigned long count=0;\r
-        time_t now = time(NULL);\r
-        m_lock->wrlock();\r
-        SharedLock locker(m_lock, false);\r
-        for (map<string,Context>::iterator i=m_contextMap.begin(); i!=m_contextMap.end(); ++i)\r
-            count += i->second.reap(now);\r
-\r
-        if (count)\r
-            m_log.info("purged %d expired record(s) from storage", count);\r
-    }\r
-\r
-    m_log.info("cleanup thread finished");\r
-\r
-    mutex->unlock();\r
-    Thread::exit(NULL);\r
-}\r
-\r
-void MemoryStorageService::reap(const char* context)\r
-{\r
-    Context& ctx = writeContext(context);\r
-    SharedLock locker(m_lock, false);\r
-    ctx.reap(time(NULL));\r
-}\r
-\r
-unsigned long MemoryStorageService::Context::reap(time_t exp)\r
-{\r
-    // Garbage collect any expired entries.\r
-    unsigned long count=0;\r
-    map<string,Record>::iterator cur = m_dataMap.begin();\r
-    map<string,Record>::iterator stop = m_dataMap.end();\r
-    while (cur != stop) {\r
-        if (cur->second.expiration <= exp) {\r
-            map<string,Record>::iterator tmp = cur++;\r
-            m_dataMap.erase(tmp);\r
-            ++count;\r
-        }\r
-        else {\r
-            cur++;\r
-        }\r
-    }\r
-    return count;\r
-}\r
-\r
-bool MemoryStorageService::createString(const char* context, const char* key, const char* value, time_t expiration)\r
-{\r
-    Context& ctx = writeContext(context);\r
-    SharedLock locker(m_lock, false);\r
-\r
-    // Check for a duplicate.\r
-    map<string,Record>::iterator i=ctx.m_dataMap.find(key);\r
-    if (i!=ctx.m_dataMap.end()) {\r
-        // Not yet expired?\r
-        if (time(NULL) < i->second.expiration)\r
-            return false;\r
-        // It's dead, so we can just remove it now and create the new record.\r
-        ctx.m_dataMap.erase(i);\r
-    }\r
-\r
-    ctx.m_dataMap[key]=Record(value,expiration);\r
-\r
-    m_log.debug("inserted record (%s) in context (%s)", key, context);\r
-    return true;\r
-}\r
-\r
-int MemoryStorageService::readString(const char* context, const char* key, string* pvalue, time_t* pexpiration, int version)\r
-{\r
-    Context& ctx = readContext(context);\r
-    SharedLock locker(m_lock, false);\r
-\r
-    map<string,Record>::iterator i=ctx.m_dataMap.find(key);\r
-    if (i==ctx.m_dataMap.end())\r
-        return 0;\r
-    else if (time(NULL) >= i->second.expiration)\r
-        return 0;\r
-    if (pexpiration)\r
-        *pexpiration = i->second.expiration;\r
-    if (i->second.version == version)\r
-        return version; // nothing's changed, so just echo back the version\r
-    if (pvalue)\r
-        *pvalue = i->second.data;\r
-    return i->second.version;\r
-}\r
-\r
-int MemoryStorageService::updateString(const char* context, const char* key, const char* value, time_t expiration, int version)\r
-{\r
-    Context& ctx = writeContext(context);\r
-    SharedLock locker(m_lock, false);\r
-\r
-    map<string,Record>::iterator i=ctx.m_dataMap.find(key);\r
-    if (i==ctx.m_dataMap.end())\r
-        return 0;\r
-    else if (time(NULL) >= i->second.expiration)\r
-        return 0;\r
-\r
-    if (version > 0 && version != i->second.version)\r
-        return -1;  // caller's out of sync\r
-\r
-    if (value) {\r
-        i->second.data = value;\r
-        ++(i->second.version);\r
-    }\r
-\r
-    if (expiration && expiration != i->second.expiration)\r
-        i->second.expiration = expiration;\r
-\r
-    m_log.debug("updated record (%s) in context (%s)", key, context);\r
-    return i->second.version;\r
-}\r
-\r
-bool MemoryStorageService::deleteString(const char* context, const char* key)\r
-{\r
-    Context& ctx = writeContext(context);\r
-    SharedLock locker(m_lock, false);\r
-\r
-    // Find the record.\r
-    map<string,Record>::iterator i=ctx.m_dataMap.find(key);\r
-    if (i!=ctx.m_dataMap.end()) {\r
-        ctx.m_dataMap.erase(i);\r
-        m_log.debug("deleted record (%s) in context (%s)", key, context);\r
-        return true;\r
-    }\r
-\r
-    m_log.debug("deleting record (%s) in context (%s)....not found", key, context);\r
-    return false;\r
-}\r
-\r
-void MemoryStorageService::updateContext(const char* context, time_t expiration)\r
-{\r
-    Context& ctx = writeContext(context);\r
-    SharedLock locker(m_lock, false);\r
-\r
-    time_t now = time(NULL);\r
-    map<string,Record>::iterator stop=ctx.m_dataMap.end();\r
-    for (map<string,Record>::iterator i = ctx.m_dataMap.begin(); i!=stop; ++i) {\r
-        if (now < i->second.expiration)\r
-            i->second.expiration = expiration;\r
-    }\r
-\r
-    m_log.debug("updated expiration of valid records in context (%s)", context);\r
-}\r
+/*
+ *  Copyright 2001-2007 Internet2
+ *
+ * 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.
+ */
+
+/**
+ * MemoryStorageService.cpp
+ *
+ * In-memory "persistent" storage, suitable for simple applications.
+ */
+
+#include "internal.h"
+#include "logging.h"
+#include "util/NDC.h"
+#include "util/StorageService.h"
+#include "util/Threads.h"
+#include "util/XMLHelper.h"
+
+#include <memory>
+#include <xercesc/util/XMLUniDefs.hpp>
+
+using namespace xmltooling::logging;
+using namespace xmltooling;
+using namespace std;
+
+using xercesc::DOMElement;
+
+namespace xmltooling {
+    class XMLTOOL_DLLLOCAL MemoryStorageService : public StorageService
+    {
+    public:
+        MemoryStorageService(const DOMElement* e);
+        virtual ~MemoryStorageService();
+
+        bool createString(const char* context, const char* key, const char* value, time_t expiration);
+        int readString(const char* context, const char* key, string* pvalue=NULL, time_t* pexpiration=NULL, int version=0);
+        int updateString(const char* context, const char* key, const char* value=NULL, time_t expiration=0, int version=0);
+        bool deleteString(const char* context, const char* key);
+
+        bool createText(const char* context, const char* key, const char* value, time_t expiration) {
+            return createString(context, key, value, expiration);
+        }
+        int readText(const char* context, const char* key, string* pvalue=NULL, time_t* pexpiration=NULL, int version=0) {
+            return readString(context, key, pvalue, pexpiration, version);
+        }
+        int updateText(const char* context, const char* key, const char* value=NULL, time_t expiration=0, int version=0) {
+            return updateString(context, key, value, expiration, version);
+        }
+        bool deleteText(const char* context, const char* key) {
+            return deleteString(context, key);
+        }
+
+        void reap(const char* context);
+        void updateContext(const char* context, time_t expiration);
+        void deleteContext(const char* context) {
+            m_lock->wrlock();
+            m_contextMap.erase(context);
+            m_lock->unlock();
+        }
+
+    private:
+        void cleanup();
+
+        struct XMLTOOL_DLLLOCAL Record {
+            Record() : expiration(0), version(1) {}
+            Record(const string& s, time_t t) : data(s), expiration(t), version(1) {}
+            string data;
+            time_t expiration;
+            int version;
+        };
+
+        struct XMLTOOL_DLLLOCAL Context {
+            Context() {}
+            Context(const Context& src) {
+                m_dataMap = src.m_dataMap;
+            }
+            map<string,Record> m_dataMap;
+            unsigned long reap(time_t exp);
+        };
+
+        Context& readContext(const char* context) {
+            m_lock->rdlock();
+            map<string,Context>::iterator i = m_contextMap.find(context);
+            if (i != m_contextMap.end())
+                return i->second;
+            m_lock->unlock();
+            m_lock->wrlock();
+            return m_contextMap[context];
+        }
+
+        Context& writeContext(const char* context) {
+            m_lock->wrlock();
+            return m_contextMap[context];
+        }
+
+        map<string,Context> m_contextMap;
+        RWLock* m_lock;
+        CondWait* shutdown_wait;
+        Thread* cleanup_thread;
+        static void* cleanup_fn(void*);
+        bool shutdown;
+        int m_cleanupInterval;
+        Category& m_log;
+    };
+
+    StorageService* XMLTOOL_DLLLOCAL MemoryStorageServiceFactory(const DOMElement* const & e)
+    {
+        return new MemoryStorageService(e);
+    }
+};
+
+static const XMLCh cleanupInterval[] = UNICODE_LITERAL_15(c,l,e,a,n,u,p,I,n,t,e,r,v,a,l);
+
+MemoryStorageService::MemoryStorageService(const DOMElement* e)
+    : m_lock(NULL), shutdown_wait(NULL), cleanup_thread(NULL), shutdown(false), m_cleanupInterval(0),
+        m_log(Category::getInstance(XMLTOOLING_LOGCAT".StorageService"))
+{
+    const XMLCh* tag=e ? e->getAttributeNS(NULL,cleanupInterval) : NULL;
+    if (tag && *tag) {
+        m_cleanupInterval = XMLString::parseInt(tag);
+    }
+    if (!m_cleanupInterval)
+        m_cleanupInterval=900;
+
+    m_lock = RWLock::create();
+    shutdown_wait = CondWait::create();
+    cleanup_thread = Thread::create(&cleanup_fn, (void*)this);
+}
+
+MemoryStorageService::~MemoryStorageService()
+{
+    // Shut down the cleanup thread and let it know...
+    shutdown = true;
+    shutdown_wait->signal();
+    cleanup_thread->join(NULL);
+
+    delete cleanup_thread;
+    delete shutdown_wait;
+    delete m_lock;
+}
+
+void* MemoryStorageService::cleanup_fn(void* cache_p)
+{
+    MemoryStorageService* cache = reinterpret_cast<MemoryStorageService*>(cache_p);
+
+#ifndef WIN32
+    // First, let's block all signals
+    Thread::mask_all_signals();
+#endif
+
+    // Now run the cleanup process.
+    cache->cleanup();
+    return NULL;
+}
+
+void MemoryStorageService::cleanup()
+{
+#ifdef _DEBUG
+    NDC ndc("cleanup");
+#endif
+
+    auto_ptr<Mutex> mutex(Mutex::create());
+    mutex->lock();
+
+    m_log.info("cleanup thread started...running every %d seconds", m_cleanupInterval);
+
+    while (!shutdown) {
+        shutdown_wait->timedwait(mutex.get(), m_cleanupInterval);
+        if (shutdown)
+            break;
+
+        unsigned long count=0;
+        time_t now = time(NULL);
+        m_lock->wrlock();
+        SharedLock locker(m_lock, false);
+        for (map<string,Context>::iterator i=m_contextMap.begin(); i!=m_contextMap.end(); ++i)
+            count += i->second.reap(now);
+
+        if (count)
+            m_log.info("purged %d expired record(s) from storage", count);
+    }
+
+    m_log.info("cleanup thread finished");
+
+    mutex->unlock();
+    Thread::exit(NULL);
+}
+
+void MemoryStorageService::reap(const char* context)
+{
+    Context& ctx = writeContext(context);
+    SharedLock locker(m_lock, false);
+    ctx.reap(time(NULL));
+}
+
+unsigned long MemoryStorageService::Context::reap(time_t exp)
+{
+    // Garbage collect any expired entries.
+    unsigned long count=0;
+    map<string,Record>::iterator cur = m_dataMap.begin();
+    map<string,Record>::iterator stop = m_dataMap.end();
+    while (cur != stop) {
+        if (cur->second.expiration <= exp) {
+            map<string,Record>::iterator tmp = cur++;
+            m_dataMap.erase(tmp);
+            ++count;
+        }
+        else {
+            cur++;
+        }
+    }
+    return count;
+}
+
+bool MemoryStorageService::createString(const char* context, const char* key, const char* value, time_t expiration)
+{
+    Context& ctx = writeContext(context);
+    SharedLock locker(m_lock, false);
+
+    // Check for a duplicate.
+    map<string,Record>::iterator i=ctx.m_dataMap.find(key);
+    if (i!=ctx.m_dataMap.end()) {
+        // Not yet expired?
+        if (time(NULL) < i->second.expiration)
+            return false;
+        // It's dead, so we can just remove it now and create the new record.
+        ctx.m_dataMap.erase(i);
+    }
+
+    ctx.m_dataMap[key]=Record(value,expiration);
+
+    m_log.debug("inserted record (%s) in context (%s)", key, context);
+    return true;
+}
+
+int MemoryStorageService::readString(const char* context, const char* key, string* pvalue, time_t* pexpiration, int version)
+{
+    Context& ctx = readContext(context);
+    SharedLock locker(m_lock, false);
+
+    map<string,Record>::iterator i=ctx.m_dataMap.find(key);
+    if (i==ctx.m_dataMap.end())
+        return 0;
+    else if (time(NULL) >= i->second.expiration)
+        return 0;
+    if (pexpiration)
+        *pexpiration = i->second.expiration;
+    if (i->second.version == version)
+        return version; // nothing's changed, so just echo back the version
+    if (pvalue)
+        *pvalue = i->second.data;
+    return i->second.version;
+}
+
+int MemoryStorageService::updateString(const char* context, const char* key, const char* value, time_t expiration, int version)
+{
+    Context& ctx = writeContext(context);
+    SharedLock locker(m_lock, false);
+
+    map<string,Record>::iterator i=ctx.m_dataMap.find(key);
+    if (i==ctx.m_dataMap.end())
+        return 0;
+    else if (time(NULL) >= i->second.expiration)
+        return 0;
+
+    if (version > 0 && version != i->second.version)
+        return -1;  // caller's out of sync
+
+    if (value) {
+        i->second.data = value;
+        ++(i->second.version);
+    }
+
+    if (expiration && expiration != i->second.expiration)
+        i->second.expiration = expiration;
+
+    m_log.debug("updated record (%s) in context (%s)", key, context);
+    return i->second.version;
+}
+
+bool MemoryStorageService::deleteString(const char* context, const char* key)
+{
+    Context& ctx = writeContext(context);
+    SharedLock locker(m_lock, false);
+
+    // Find the record.
+    map<string,Record>::iterator i=ctx.m_dataMap.find(key);
+    if (i!=ctx.m_dataMap.end()) {
+        ctx.m_dataMap.erase(i);
+        m_log.debug("deleted record (%s) in context (%s)", key, context);
+        return true;
+    }
+
+    m_log.debug("deleting record (%s) in context (%s)....not found", key, context);
+    return false;
+}
+
+void MemoryStorageService::updateContext(const char* context, time_t expiration)
+{
+    Context& ctx = writeContext(context);
+    SharedLock locker(m_lock, false);
+
+    time_t now = time(NULL);
+    map<string,Record>::iterator stop=ctx.m_dataMap.end();
+    for (map<string,Record>::iterator i = ctx.m_dataMap.begin(); i!=stop; ++i) {
+        if (now < i->second.expiration)
+            i->second.expiration = expiration;
+    }
+
+    m_log.debug("updated expiration of valid records in context (%s)", context);
+}
index 8df1c2f..79fe549 100644 (file)
@@ -1,15 +1,15 @@
-//{{NO_DEPENDENCIES}}\r
-// Microsoft Developer Studio generated include file.\r
-// Used by shibsp.rc\r
-//\r
-\r
-// Next default values for new objects\r
-// \r
-#ifdef APSTUDIO_INVOKED\r
-#ifndef APSTUDIO_READONLY_SYMBOLS\r
-#define _APS_NEXT_RESOURCE_VALUE        101\r
-#define _APS_NEXT_COMMAND_VALUE         40001\r
-#define _APS_NEXT_CONTROL_VALUE         1000\r
-#define _APS_NEXT_SYMED_VALUE           101\r
-#endif\r
-#endif\r
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by shibsp.rc
+//
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        101
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif