From ae8ebcd86c70b93b9a9e1d05de17bc4ddc04c283 Mon Sep 17 00:00:00 2001 From: Kibum Kim Date: Sat, 7 Jan 2012 01:09:59 +0900 Subject: [PATCH] Git init --- AUTHORS | 8 + COPYING | 59 + ChangeLog | 1684 ++ Copyright | 59 + HACKING | 160 + INSTALL | 38 + Makefile.am | 142 + Makefile.in | 1095 ++ NEWS | 1 + README | 15 + TODO | 6 + aclocal.m4 | 9157 ++++++++++ apps/Makefile.am | 81 + apps/Makefile.in | 684 + apps/cmdline.c | 355 + apps/cmdline.h | 89 + apps/crypto.c | 396 + apps/crypto.h | 70 + apps/xmlsec.c | 3018 ++++ config.guess | 1561 ++ config.h.in | 134 + config.sub | 1686 ++ configure | 16860 +++++++++++++++++++ configure.in | 1492 ++ debian/README.Debian | 37 + debian/TODO.Debian | 7 + debian/changelog | 187 + debian/compat | 1 + debian/control | 76 + debian/copyright | 29 + debian/libxmlsec1-dev.docs | 1 + debian/libxmlsec1-dev.install | 6 + debian/libxmlsec1-dev.manpages | 1 + debian/libxmlsec1-gnutls.install | 1 + debian/libxmlsec1-nss.install | 1 + debian/libxmlsec1-openssl.install | 1 + debian/libxmlsec1.install | 1 + debian/rules | 104 + debian/watch | 3 + debian/xmlsec1.install | 1 + debian/xmlsec1.manpages | 1 + depcomp | 423 + docs/Makefile.am | 58 + docs/Makefile.in | 702 + docs/api/Makefile.am | 198 + docs/api/Makefile.in | 640 + docs/api/chapters/compiling-and-linking.sgml | 252 + docs/api/chapters/creating-templates.sgml | 325 + docs/api/chapters/examples.sgml | 102 + docs/api/chapters/init-and-shutdown.sgml | 104 + docs/api/chapters/new-crypto.sgml | 487 + docs/api/chapters/sign-and-encrypt.sgml | 286 + docs/api/chapters/using-contexts.sgml | 138 + docs/api/chapters/using-keys.sgml | 26 + docs/api/chapters/using-keysmngr.sgml | 592 + docs/api/chapters/using-transforms.sgml | 67 + docs/api/chapters/using-x509-certs.sgml | 197 + docs/api/chapters/verify-and-decrypt.sgml | 265 + docs/api/home.png | Bin 0 -> 654 bytes docs/api/images/diagrams.sxd | Bin 0 -> 14532 bytes docs/api/images/encryption-structure.png | Bin 0 -> 30508 bytes docs/api/images/key.png | Bin 0 -> 1722 bytes docs/api/images/keysmngr.png | Bin 0 -> 2227 bytes docs/api/images/sign-enc-model.png | Bin 0 -> 6273 bytes docs/api/images/signature-structure.png | Bin 0 -> 31083 bytes docs/api/images/structure.png | Bin 0 -> 16236 bytes docs/api/images/transform.png | Bin 0 -> 2659 bytes docs/api/images/transforms-chain.png | Bin 0 -> 12083 bytes docs/api/images/verif-dec-model.png | Bin 0 -> 6000 bytes docs/api/index.html | 300 + docs/api/index.sgml | 41 + docs/api/left.png | Bin 0 -> 459 bytes docs/api/right.png | Bin 0 -> 472 bytes docs/api/up.png | Bin 0 -> 406 bytes docs/api/xmlsec-app.html | 1629 ++ docs/api/xmlsec-base64.html | 368 + docs/api/xmlsec-bn.html | 729 + docs/api/xmlsec-buffer.html | 625 + docs/api/xmlsec-custom-keys-manager.html | 458 + docs/api/xmlsec-decrypt-with-keys-mngr.html | 378 + docs/api/xmlsec-decrypt-with-signle-key.html | 308 + docs/api/xmlsec-dl.html | 253 + docs/api/xmlsec-encrypt-dynamic-template.html | 368 + docs/api/xmlsec-encrypt-template-file.html | 347 + docs/api/xmlsec-encrypt-with-session-key.html | 478 + docs/api/xmlsec-encryption-klasses.html | 101 + docs/api/xmlsec-errors.html | 805 + .../xmlsec-examples-sign-dynamimc-template.html | 388 + docs/api/xmlsec-examples-sign-template-file.html | 370 + docs/api/xmlsec-examples-sign-x509.html | 429 + docs/api/xmlsec-examples.html | 119 + docs/api/xmlsec-gnutls-app.html | 593 + docs/api/xmlsec-gnutls-crypto.html | 555 + docs/api/xmlsec-gnutls-ref.html | 107 + docs/api/xmlsec-gnutls.sgml | 15 + docs/api/xmlsec-index.html | 1340 ++ docs/api/xmlsec-index.sgml | 1241 ++ docs/api/xmlsec-io.html | 234 + docs/api/xmlsec-keyinfo.html | 734 + docs/api/xmlsec-keys.html | 1215 ++ docs/api/xmlsec-keysdata.html | 2161 +++ docs/api/xmlsec-keysmngr.html | 771 + docs/api/xmlsec-list.html | 645 + docs/api/xmlsec-membuf.html | 146 + docs/api/xmlsec-mscrypto-app.html | 769 + docs/api/xmlsec-mscrypto-certkeys.html | 217 + docs/api/xmlsec-mscrypto-crypto.html | 646 + docs/api/xmlsec-mscrypto-keysstore.html | 214 + docs/api/xmlsec-mscrypto-ref.html | 113 + docs/api/xmlsec-mscrypto-x509.html | 578 + docs/api/xmlsec-mscrypto.sgml | 21 + docs/api/xmlsec-nodeset.html | 556 + docs/api/xmlsec-notes-compiling-others.html | 102 + docs/api/xmlsec-notes-compiling-unix.html | 223 + docs/api/xmlsec-notes-compiling-windows.html | 138 + docs/api/xmlsec-notes-compiling.html | 117 + docs/api/xmlsec-notes-contexts.html | 229 + docs/api/xmlsec-notes-custom-keys-store.html | 250 + docs/api/xmlsec-notes-decrypt.html | 205 + .../xmlsec-notes-dynamic-encryption-templates.html | 240 + .../xmlsec-notes-dynamic-signature-templates.html | 250 + docs/api/xmlsec-notes-encrypt.html | 223 + docs/api/xmlsec-notes-include-files.html | 141 + docs/api/xmlsec-notes-init-shutdown.html | 194 + docs/api/xmlsec-notes-keys-manager-sign-enc.html | 307 + .../api/xmlsec-notes-keys-mngr-verify-decrypt.html | 179 + docs/api/xmlsec-notes-keys.html | 120 + docs/api/xmlsec-notes-keysmngr.html | 140 + docs/api/xmlsec-notes-new-crypto-functions.html | 151 + docs/api/xmlsec-notes-new-crypto-key-stores.html | 83 + docs/api/xmlsec-notes-new-crypto-keys.html | 103 + docs/api/xmlsec-notes-new-crypto-klasses.html | 217 + .../xmlsec-notes-new-crypto-sharing-results.html | 125 + .../xmlsec-notes-new-crypto-simple-keys-mngr.html | 102 + docs/api/xmlsec-notes-new-crypto-skeleton.html | 254 + docs/api/xmlsec-notes-new-crypto-transforms.html | 170 + docs/api/xmlsec-notes-new-crypto.html | 136 + docs/api/xmlsec-notes-overview.html | 102 + docs/api/xmlsec-notes-sign-encrypt.html | 120 + docs/api/xmlsec-notes-sign-x509.html | 176 + docs/api/xmlsec-notes-sign.html | 210 + docs/api/xmlsec-notes-simple-keys-store.html | 177 + docs/api/xmlsec-notes-structure.html | 114 + docs/api/xmlsec-notes-templates.html | 114 + docs/api/xmlsec-notes-transforms.html | 154 + docs/api/xmlsec-notes-verify-decrypt.html | 120 + docs/api/xmlsec-notes-verify-x509.html | 180 + docs/api/xmlsec-notes-verify.html | 210 + docs/api/xmlsec-notes-x509.html | 114 + docs/api/xmlsec-notes.html | 115 + docs/api/xmlsec-nss-app.html | 760 + docs/api/xmlsec-nss-bignum.html | 178 + docs/api/xmlsec-nss-crypto.html | 817 + docs/api/xmlsec-nss-keysstore.html | 214 + docs/api/xmlsec-nss-pkikeys.html | 216 + docs/api/xmlsec-nss-ref.html | 115 + docs/api/xmlsec-nss-x509.html | 485 + docs/api/xmlsec-nss.sgml | 23 + docs/api/xmlsec-openssl-app.html | 822 + docs/api/xmlsec-openssl-bn.html | 172 + docs/api/xmlsec-openssl-crypto.html | 1461 ++ docs/api/xmlsec-openssl-evp.html | 188 + docs/api/xmlsec-openssl-ref.html | 113 + docs/api/xmlsec-openssl-x509.html | 590 + docs/api/xmlsec-openssl.sgml | 21 + docs/api/xmlsec-parser.html | 228 + docs/api/xmlsec-ref.html | 149 + docs/api/xmlsec-reference.html | 105 + docs/api/xmlsec-signature-klasses.html | 101 + docs/api/xmlsec-templates.html | 1331 ++ docs/api/xmlsec-transforms.html | 3199 ++++ docs/api/xmlsec-verify-with-key.html | 300 + docs/api/xmlsec-verify-with-keys-mngr.html | 370 + docs/api/xmlsec-verify-with-restrictions.html | 698 + docs/api/xmlsec-verify-with-x509.html | 352 + docs/api/xmlsec-version.html | 148 + docs/api/xmlsec-x509.html | 188 + docs/api/xmlsec-xmldsig.html | 883 + docs/api/xmlsec-xmlenc.html | 600 + docs/api/xmlsec-xmlsec.html | 247 + docs/api/xmlsec-xmltree.html | 1580 ++ docs/api/xmlsec.sgml | 293 + docs/authors.html | 59 + docs/bugs.html | 106 + docs/c14n.html | 73 + docs/documentation.html | 65 + docs/download.html | 114 + docs/faq.html | 428 + docs/images/bart.gif | Bin 0 -> 27329 bytes docs/images/libxml2-logo.png | Bin 0 -> 5524 bytes docs/images/libxslt-logo.png | Bin 0 -> 5450 bytes docs/images/logo.gif | Bin 0 -> 1780 bytes docs/images/openssl-logo.png | Bin 0 -> 6807 bytes docs/images/xmlsec-logo.gif | Bin 0 -> 359 bytes docs/index.html | 119 + docs/news.html | 523 + docs/related.html | 163 + docs/xmldsig-verifier.html | 138 + docs/xmldsig.html | 912 + docs/xmlenc.html | 579 + docs/xmlsec-man.html | 291 + docs/xmlsec.xsl | 194 + examples/Makefile | 40 + examples/Makefile.w32 | 88 + examples/README | 126 + examples/binary.dat | 1 + examples/decrypt1.c | 205 + examples/decrypt2.c | 275 + examples/decrypt3.c | 355 + examples/deskey.bin | 1 + examples/encrypt1-res.xml | 13 + examples/encrypt1-tmpl.xml | 13 + examples/encrypt1.c | 202 + examples/encrypt2-doc.xml | 9 + examples/encrypt2-res.xml | 14 + examples/encrypt2.c | 226 + examples/encrypt3-doc.xml | 9 + examples/encrypt3-res.xml | 27 + examples/encrypt3.c | 323 + examples/mywin32make.bat | 18 + examples/rootcert.pem | 25 + examples/rsacert.pem | 83 + examples/rsakey.pem | 27 + examples/rsapub.pem | 9 + examples/sign1-res.xml | 31 + examples/sign1-tmpl.xml | 27 + examples/sign1.c | 194 + examples/sign2-doc.xml | 9 + examples/sign2-res.xml | 30 + examples/sign2.c | 230 + examples/sign3-doc.xml | 9 + examples/sign3-res.xml | 58 + examples/sign3.c | 243 + examples/verify1.c | 197 + examples/verify2.c | 267 + examples/verify3.c | 249 + examples/verify4-bad-res.xml | 90 + examples/verify4-bad-tmpl.xml | 54 + examples/verify4-res.xml | 80 + examples/verify4-tmpl.xml | 47 + examples/verify4.c | 292 + examples/xkms-server.c | 822 + examples/xmldsigverify.c | 363 + include/Makefile.am | 4 + include/Makefile.in | 644 + include/xmlsec/Makefile.am | 63 + include/xmlsec/Makefile.in | 755 + include/xmlsec/app.h | 424 + include/xmlsec/base64.h | 67 + include/xmlsec/bn.h | 99 + include/xmlsec/buffer.h | 108 + include/xmlsec/crypto.h | 69 + include/xmlsec/dl.h | 54 + include/xmlsec/errors.h | 504 + include/xmlsec/exports.h | 111 + include/xmlsec/gnutls/Makefile.am | 13 + include/xmlsec/gnutls/Makefile.in | 552 + include/xmlsec/gnutls/app.h | 90 + include/xmlsec/gnutls/crypto.h | 183 + include/xmlsec/gnutls/symbols.h | 97 + include/xmlsec/io.h | 54 + include/xmlsec/keyinfo.h | 294 + include/xmlsec/keys.h | 278 + include/xmlsec/keysdata.h | 835 + include/xmlsec/keysmngr.h | 264 + include/xmlsec/list.h | 192 + include/xmlsec/membuf.h | 44 + include/xmlsec/mscrypto/Makefile.am | 16 + include/xmlsec/mscrypto/Makefile.in | 555 + include/xmlsec/mscrypto/app.h | 122 + include/xmlsec/mscrypto/certkeys.h | 36 + include/xmlsec/mscrypto/crypto.h | 272 + include/xmlsec/mscrypto/keysstore.h | 46 + include/xmlsec/mscrypto/symbols.h | 102 + include/xmlsec/mscrypto/x509.h | 109 + include/xmlsec/nodeset.h | 139 + include/xmlsec/nss/Makefile.am | 17 + include/xmlsec/nss/Makefile.in | 556 + include/xmlsec/nss/app.h | 112 + include/xmlsec/nss/bignum.h | 37 + include/xmlsec/nss/crypto.h | 313 + include/xmlsec/nss/keysstore.h | 46 + include/xmlsec/nss/pkikeys.h | 44 + include/xmlsec/nss/symbols.h | 99 + include/xmlsec/nss/x509.h | 91 + include/xmlsec/openssl/Makefile.am | 16 + include/xmlsec/openssl/Makefile.in | 555 + include/xmlsec/openssl/app.h | 122 + include/xmlsec/openssl/bn.h | 35 + include/xmlsec/openssl/crypto.h | 571 + include/xmlsec/openssl/evp.h | 44 + include/xmlsec/openssl/symbols.h | 116 + include/xmlsec/openssl/x509.h | 109 + include/xmlsec/parser.h | 51 + include/xmlsec/private.h | 499 + include/xmlsec/private/Makefile.am | 11 + include/xmlsec/private/Makefile.in | 550 + include/xmlsec/private/xkms.h | 121 + include/xmlsec/skeleton/Makefile.am | 13 + include/xmlsec/skeleton/app.h | 91 + include/xmlsec/skeleton/crypto.h | 38 + include/xmlsec/skeleton/symbols.h | 110 + include/xmlsec/soap.h | 130 + include/xmlsec/strings.h | 610 + include/xmlsec/templates.h | 162 + include/xmlsec/transforms.h | 1003 ++ include/xmlsec/version.h | 61 + include/xmlsec/version.h.in | 61 + include/xmlsec/x509.h | 80 + include/xmlsec/xkms.h | 652 + include/xmlsec/xmldsig.h | 281 + include/xmlsec/xmlenc.h | 163 + include/xmlsec/xmlsec.h | 151 + include/xmlsec/xmltree.h | 275 + install-sh | 250 + ltmain.sh | 8413 +++++++++ m4/libtool.m4 | 7376 ++++++++ m4/ltoptions.m4 | 368 + m4/ltsugar.m4 | 123 + m4/ltversion.m4 | 23 + m4/lt~obsolete.m4 | 92 + man/Makefile.am | 52 + man/Makefile.in | 570 + man/xmlsec1-config.1 | 34 + man/xmlsec1.1 | 269 + missing | 336 + mkinstalldirs | 40 + packaging/xmlsec1.spec | 104 + scripts/build_release.sh | 31 + scripts/change-release.sh | 34 + scripts/push_release.sh | 30 + scripts/remove-gtkdoclink.pl | 20 + scripts/test_errors.pl | 38 + scripts/test_leaks.pl | 60 + scripts/test_release.sh | 12 + src/Makefile.am | 69 + src/Makefile.in | 863 + src/app.c | 1498 ++ src/base64.c | 1034 ++ src/bn.c | 1060 ++ src/buffer.c | 674 + src/c14n.c | 801 + src/dl.c | 978 ++ src/enveloped.c | 152 + src/errors.c | 242 + src/globals.h | 25 + src/gnutls/Makefile.am | 48 + src/gnutls/Makefile.in | 706 + src/gnutls/README | 9 + src/gnutls/app.c | 499 + src/gnutls/ciphers.c | 860 + src/gnutls/crypto.c | 205 + src/gnutls/digests.c | 318 + src/gnutls/globals.h | 24 + src/gnutls/hmac.c | 601 + src/gnutls/symkeys.c | 440 + src/io.c | 496 + src/keyinfo.c | 1561 ++ src/keys.c | 1415 ++ src/keysdata.c | 1387 ++ src/keysmngr.c | 745 + src/list.c | 508 + src/membuf.c | 209 + src/mscrypto/Makefile.am | 58 + src/mscrypto/Makefile.in | 760 + src/mscrypto/README | 52 + src/mscrypto/app.c | 1288 ++ src/mscrypto/certkeys.c | 2633 +++ src/mscrypto/ciphers.c | 1350 ++ src/mscrypto/crypto.c | 387 + src/mscrypto/csp_calg.h | 92 + src/mscrypto/csp_oid.h | 114 + src/mscrypto/digests.c | 413 + src/mscrypto/globals.h | 24 + src/mscrypto/keysstore.c | 678 + src/mscrypto/kt_rsa.c | 410 + src/mscrypto/mingw-crypt32.def | 32 + src/mscrypto/signatures.c | 663 + src/mscrypto/symkeys.c | 333 + src/mscrypto/x509.c | 2270 +++ src/mscrypto/x509vfy.c | 1062 ++ src/mscrypto/xmlsec-mingw.h | 165 + src/nodeset.c | 599 + src/nss/Makefile.am | 57 + src/nss/Makefile.in | 786 + src/nss/README | 137 + src/nss/app.c | 1598 ++ src/nss/bignum.c | 163 + src/nss/ciphers.c | 838 + src/nss/crypto.c | 366 + src/nss/digests.c | 331 + src/nss/globals.h | 24 + src/nss/hmac.c | 633 + src/nss/keysstore.c | 485 + src/nss/keytrans.c | 744 + src/nss/kw_aes.c | 857 + src/nss/kw_des.c | 758 + src/nss/pkikeys.c | 1554 ++ src/nss/signatures.c | 550 + src/nss/symkeys.c | 440 + src/nss/x509.c | 2205 +++ src/nss/x509vfy.c | 704 + src/openssl/Makefile.am | 56 + src/openssl/Makefile.in | 778 + src/openssl/README | 17 + src/openssl/app.c | 1581 ++ src/openssl/bn.c | 163 + src/openssl/ciphers.c | 856 + src/openssl/crypto.c | 474 + src/openssl/digests.c | 679 + src/openssl/evp.c | 1559 ++ src/openssl/globals.h | 24 + src/openssl/hmac.c | 841 + src/openssl/kt_rsa.c | 877 + src/openssl/kw_aes.c | 622 + src/openssl/kw_des.c | 628 + src/openssl/signatures.c | 1061 ++ src/openssl/symkeys.c | 447 + src/openssl/x509.c | 2414 +++ src/openssl/x509vfy.c | 1286 ++ src/parser.c | 571 + src/skeleton/Makefile.am | 45 + src/skeleton/README | 0 src/skeleton/app.c | 499 + src/skeleton/crypto.c | 227 + src/skeleton/globals.h | 24 + src/soap.c | 1322 ++ src/strings.c | 601 + src/templates.c | 2091 +++ src/transforms.c | 2892 ++++ src/x509.c | 97 + src/xkms.c | 4981 ++++++ src/xmldsig.c | 1795 ++ src/xmlenc.c | 1339 ++ src/xmlsec.c | 185 + src/xmltree.c | 1908 +++ src/xpath.c | 1148 ++ src/xslt.c | 518 + tests/01-phaos-xmlenc-3/Readme.txt | 52 + .../bad-alg-enc-element-aes128-kw-3des.xml | 29 + tests/01-phaos-xmlenc-3/dh-priv-key.der | Bin 0 -> 114 bytes .../enc-content-3des-kw-aes192.data | 9 + .../enc-content-3des-kw-aes192.tmpl | 22 + .../enc-content-3des-kw-aes192.xml | 30 + .../enc-content-aes128-kw-3des.data | 9 + .../enc-content-aes128-kw-3des.tmpl | 22 + .../enc-content-aes128-kw-3des.xml | 30 + .../enc-content-aes192-kw-aes256.data | 9 + .../enc-content-aes192-kw-aes256.tmpl | 22 + .../enc-content-aes192-kw-aes256.xml | 30 + .../enc-content-aes256-kt-rsa1_5.data | 9 + .../enc-content-aes256-kt-rsa1_5.tmpl | 24 + .../enc-content-aes256-kt-rsa1_5.xml | 63 + tests/01-phaos-xmlenc-3/enc-element-3des-ka-dh.xml | 83 + .../enc-element-3des-kt-rsa1_5.data | 9 + .../enc-element-3des-kt-rsa1_5.tmpl | 23 + .../enc-element-3des-kt-rsa1_5.xml | 61 + .../enc-element-3des-kt-rsa_oaep_sha1.data | 9 + .../enc-element-3des-kt-rsa_oaep_sha1.tmpl | 22 + .../enc-element-3des-kt-rsa_oaep_sha1.xml | 63 + .../enc-element-3des-kt-rsa_oaep_sha256.xml | 63 + .../enc-element-3des-kt-rsa_oaep_sha512.xml | 63 + .../enc-element-3des-kw-3des.data | 9 + .../enc-element-3des-kw-3des.tmpl | 22 + .../01-phaos-xmlenc-3/enc-element-3des-kw-3des.xml | 29 + .../01-phaos-xmlenc-3/enc-element-aes128-ka-dh.xml | 83 + .../enc-element-aes128-kt-rsa1_5.data | 9 + .../enc-element-aes128-kt-rsa1_5.tmpl | 20 + .../enc-element-aes128-kt-rsa1_5.xml | 61 + .../enc-element-aes128-kt-rsa_oaep_sha1.data | 9 + .../enc-element-aes128-kt-rsa_oaep_sha1.tmpl | 22 + .../enc-element-aes128-kt-rsa_oaep_sha1.xml | 63 + .../enc-element-aes128-kw-aes128.data | 9 + .../enc-element-aes128-kw-aes128.tmpl | 22 + .../enc-element-aes128-kw-aes128.xml | 29 + .../enc-element-aes128-kw-aes256.data | 9 + .../enc-element-aes128-kw-aes256.tmpl | 22 + .../enc-element-aes128-kw-aes256.xml | 29 + .../01-phaos-xmlenc-3/enc-element-aes192-ka-dh.xml | 83 + .../enc-element-aes192-kt-rsa_oaep_sha1.data | 9 + .../enc-element-aes192-kt-rsa_oaep_sha1.tmpl | 22 + .../enc-element-aes192-kt-rsa_oaep_sha1.xml | 63 + .../enc-element-aes192-kw-aes192.data | 9 + .../enc-element-aes192-kw-aes192.tmpl | 22 + .../enc-element-aes192-kw-aes192.xml | 29 + .../01-phaos-xmlenc-3/enc-element-aes256-ka-dh.xml | 83 + .../enc-element-aes256-kw-aes256.data | 9 + .../enc-element-aes256-kw-aes256.tmpl | 22 + .../enc-element-aes256-kw-aes256.xml | 29 + .../01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data | 9 + .../01-phaos-xmlenc-3/enc-text-3des-kw-aes256.tmpl | 23 + .../01-phaos-xmlenc-3/enc-text-3des-kw-aes256.xml | 32 + .../enc-text-aes128-kw-aes192.data | 9 + .../enc-text-aes128-kw-aes192.tmpl | 21 + .../enc-text-aes128-kw-aes192.xml | 28 + .../enc-text-aes192-kt-rsa1_5.data | 9 + .../enc-text-aes192-kt-rsa1_5.tmpl | 20 + .../enc-text-aes192-kt-rsa1_5.xml | 62 + .../enc-text-aes256-kt-rsa_oaep_sha1.data | 9 + .../enc-text-aes256-kt-rsa_oaep_sha1.tmpl | 22 + .../enc-text-aes256-kt-rsa_oaep_sha1.xml | 64 + tests/01-phaos-xmlenc-3/key.txt | 117 + tests/01-phaos-xmlenc-3/keys.xml | 61 + tests/01-phaos-xmlenc-3/payment.xml | 9 + tests/01-phaos-xmlenc-3/rsa-priv-key.der | Bin 0 -> 1216 bytes tests/01-phaos-xmlenc-3/rsa-priv-key.p12 | Bin 0 -> 2454 bytes .../bad-request-name-not-supported.xml | 2 + tests/aleksey-xkms-01/bad-request-name.xml | 10 + .../compound-example-1-no-match.xml | 7 + tests/aleksey-xkms-01/compound-example-1.xml | 51 + tests/aleksey-xkms-01/keys/cert1.der | Bin 0 -> 1137 bytes tests/aleksey-xkms-01/keys/cert1.pem | 26 + tests/aleksey-xkms-01/keys/cert2.der | Bin 0 -> 1065 bytes tests/aleksey-xkms-01/keys/cert2.pem | 25 + tests/aleksey-xkms-01/keys/cert3.der | Bin 0 -> 1041 bytes tests/aleksey-xkms-01/keys/cert3.pem | 24 + tests/aleksey-xkms-01/keys/create-keys.sh | 73 + tests/aleksey-xkms-01/keys/key1-pk8.der | Bin 0 -> 677 bytes tests/aleksey-xkms-01/keys/key1.der | Bin 0 -> 608 bytes tests/aleksey-xkms-01/keys/key1.p12 | Bin 0 -> 2206 bytes tests/aleksey-xkms-01/keys/key1.pem | 18 + tests/aleksey-xkms-01/keys/key2-pk8.der | Bin 0 -> 389 bytes tests/aleksey-xkms-01/keys/key2.der | Bin 0 -> 320 bytes tests/aleksey-xkms-01/keys/key2.p12 | Bin 0 -> 1846 bytes tests/aleksey-xkms-01/keys/key2.pem | 9 + tests/aleksey-xkms-01/keys/key3-pk8.der | Bin 0 -> 389 bytes tests/aleksey-xkms-01/keys/key3.der | Bin 0 -> 318 bytes tests/aleksey-xkms-01/keys/key3.p12 | Bin 0 -> 1822 bytes tests/aleksey-xkms-01/keys/key3.pem | 9 + tests/aleksey-xkms-01/keys/openssl.cnf | 106 + tests/aleksey-xkms-01/keys/req2.pem | 11 + tests/aleksey-xkms-01/keys/req3.pem | 11 + .../locate-example-1-bad-service.xml | 2 + .../aleksey-xkms-01/locate-example-1-no-match.xml | 2 + tests/aleksey-xkms-01/locate-example-1.xml | 18 + .../aleksey-xkms-01/locate-example-2-no-match.xml | 2 + tests/aleksey-xkms-01/locate-example-2.xml | 39 + .../locate-opaque-client-data-no-match.xml | 2 + .../aleksey-xkms-01/locate-opaque-client-data.xml | 32 + tests/aleksey-xkms-01/readme.txt | 117 + .../soap11-bad-request-name-msg-invalid.xml | 9 + tests/aleksey-xkms-01/soap11-bad-request-name.xml | 14 + .../soap11-locate-example-1-no-match.xml | 6 + .../soap11-locate-example-1-unsupported.xml | 13 + tests/aleksey-xkms-01/soap11-locate-example-1.xml | 23 + .../soap12-bad-request-name-msg-invalid.xml | 11 + tests/aleksey-xkms-01/soap12-bad-request-name.xml | 14 + .../soap12-locate-example-1-no-match.xml | 6 + .../soap12-locate-example-1-unsupported.xml | 9 + tests/aleksey-xkms-01/soap12-locate-example-1.xml | 23 + tests/aleksey-xkms-01/status-request-success.xml | 2 + tests/aleksey-xkms-01/status-request.xml | 7 + .../validate-example-1-no-match.xml | 2 + tests/aleksey-xkms-01/validate-example-1.xml | 65 + tests/aleksey-xmldsig-01/README | 47 + tests/aleksey-xmldsig-01/dtd-hmac-91.dtd | 1 + tests/aleksey-xmldsig-01/dtd-hmac-91.tmpl | 27 + tests/aleksey-xmldsig-01/dtd-hmac-91.xml | 27 + tests/aleksey-xmldsig-01/enveloped-gost.tmpl | 31 + tests/aleksey-xmldsig-01/enveloped-gost.xml | 42 + .../enveloping-dsa-x509chain.tmpl | 18 + .../enveloping-dsa-x509chain.xml | 87 + .../enveloping-expired-cert.tmpl | 18 + .../aleksey-xmldsig-01/enveloping-expired-cert.xml | 85 + .../enveloping-md5-hmac-md5-64.tmpl | 16 + .../enveloping-md5-hmac-md5-64.xml | 15 + .../enveloping-md5-hmac-md5.tmpl | 14 + .../aleksey-xmldsig-01/enveloping-md5-hmac-md5.xml | 13 + .../aleksey-xmldsig-01/enveloping-md5-rsa-md5.tmpl | 17 + .../aleksey-xmldsig-01/enveloping-md5-rsa-md5.xml | 85 + .../enveloping-ripemd160-hmac-ripemd160-64.tmpl | 16 + .../enveloping-ripemd160-hmac-ripemd160-64.xml | 15 + .../enveloping-ripemd160-hmac-ripemd160.tmpl | 14 + .../enveloping-ripemd160-hmac-ripemd160.xml | 13 + .../enveloping-ripemd160-rsa-ripemd160.tmpl | 17 + .../enveloping-ripemd160-rsa-ripemd160.xml | 85 + .../enveloping-rsa-x509chain.tmpl | 18 + .../enveloping-rsa-x509chain.xml | 85 + .../enveloping-sha1-hmac-sha1-64.tmpl | 16 + .../enveloping-sha1-hmac-sha1-64.xml | 15 + .../enveloping-sha1-hmac-sha1.tmpl | 14 + .../enveloping-sha1-hmac-sha1.xml | 13 + .../enveloping-sha1-rsa-sha1.tmpl | 17 + .../enveloping-sha1-rsa-sha1.xml | 85 + .../enveloping-sha224-hmac-sha224-64.tmpl | 16 + .../enveloping-sha224-hmac-sha224-64.xml | 15 + .../enveloping-sha224-hmac-sha224.tmpl | 14 + .../enveloping-sha224-hmac-sha224.xml | 13 + .../enveloping-sha224-rsa-sha224.tmpl | 17 + .../enveloping-sha224-rsa-sha224.xml | 85 + .../enveloping-sha256-hmac-sha256-64.tmpl | 16 + .../enveloping-sha256-hmac-sha256-64.xml | 15 + .../enveloping-sha256-hmac-sha256.tmpl | 14 + .../enveloping-sha256-hmac-sha256.xml | 13 + .../enveloping-sha256-rsa-sha256.tmpl | 17 + .../enveloping-sha256-rsa-sha256.xml | 85 + .../enveloping-sha384-hmac-sha384-64.tmpl | 16 + .../enveloping-sha384-hmac-sha384-64.xml | 15 + .../enveloping-sha384-hmac-sha384.tmpl | 14 + .../enveloping-sha384-hmac-sha384.xml | 13 + .../enveloping-sha384-rsa-sha384.tmpl | 17 + .../enveloping-sha384-rsa-sha384.xml | 103 + .../enveloping-sha512-hmac-sha512-64.tmpl | 16 + .../enveloping-sha512-hmac-sha512-64.xml | 16 + .../enveloping-sha512-hmac-sha512.tmpl | 14 + .../enveloping-sha512-hmac-sha512.xml | 15 + .../enveloping-sha512-rsa-sha512.tmpl | 17 + .../enveloping-sha512-rsa-sha512.xml | 104 + tests/aleksey-xmldsig-01/x509data-sn-test.tmpl | 27 + tests/aleksey-xmldsig-01/x509data-sn-test.xml | 40 + tests/aleksey-xmldsig-01/x509data-test.tmpl | 31 + tests/aleksey-xmldsig-01/x509data-test.xml | 117 + tests/aleksey-xmldsig-01/xpointer-hmac.tmpl | 29 + tests/aleksey-xmldsig-01/xpointer-hmac.xml | 28 + tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.data | 1 + tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.tmpl | 11 + tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.xml | 12 + .../enc-aes192cbc-keyname-ref.data | 1 + .../enc-aes192cbc-keyname-ref.xml | 21 + tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.data | 1 + tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.tmpl | 11 + tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.xml | 12 + tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.data | 1 + tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.tmpl | 10 + tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.xml | 12 + .../enc-des3cbc-aes192-keyname.data | 1 + .../enc-des3cbc-aes192-keyname.tmpl | 16 + .../enc-des3cbc-aes192-keyname.xml | 18 + .../enc-des3cbc-keyname-content.data | 7 + .../enc-des3cbc-keyname-content.tmpl | 11 + .../enc-des3cbc-keyname-content.xml | 15 + .../enc-des3cbc-keyname-element-root.data | 7 + .../enc-des3cbc-keyname-element-root.tmpl | 11 + .../enc-des3cbc-keyname-element-root.xml | 15 + .../enc-des3cbc-keyname-element.data | 9 + .../enc-des3cbc-keyname-element.tmpl | 11 + .../enc-des3cbc-keyname-element.xml | 17 + tests/aleksey-xmlenc-01/enc-des3cbc-keyname.data | 1 + tests/aleksey-xmlenc-01/enc-des3cbc-keyname.tmpl | 8 + tests/aleksey-xmlenc-01/enc-des3cbc-keyname.xml | 8 + tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.data | 1 + tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.tmpl | 10 + tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.xml | 12 + tests/keys/README | 183 + tests/keys/ca2cert.der | Bin 0 -> 1049 bytes tests/keys/ca2cert.pem | 66 + tests/keys/ca2key.pem | 9 + tests/keys/cacert.der | Bin 0 -> 1105 bytes tests/keys/cacert.pem | 72 + tests/keys/cakey.pem | 18 + tests/keys/demoCA/cacert.pem | 72 + tests/keys/demoCA/careq.pem | 14 + tests/keys/demoCA/index.txt | 6 + tests/keys/demoCA/newcerts/01.pem | 65 + tests/keys/demoCA/newcerts/02.pem | 93 + tests/keys/demoCA/newcerts/03.pem | 60 + tests/keys/demoCA/newcerts/04.pem | 60 + tests/keys/demoCA/newcerts/05.pem | 83 + tests/keys/demoCA/private/cakey.pem | 18 + tests/keys/demoCA/serial | 1 + tests/keys/dsacert.der | Bin 0 -> 1144 bytes tests/keys/dsacert.pem | 78 + tests/keys/dsakey.der | Bin 0 -> 250 bytes tests/keys/dsakey.p12 | Bin 0 -> 4047 bytes tests/keys/dsakey.p8-der | Bin 0 -> 243 bytes tests/keys/dsakey.p8-pem | 8 + tests/keys/dsakey.pem | 14 + tests/keys/expiredcert.der | Bin 0 -> 991 bytes tests/keys/expiredcert.pem | 61 + tests/keys/expiredkey.der | Bin 0 -> 317 bytes tests/keys/expiredkey.p12 | Bin 0 -> 4056 bytes tests/keys/expiredkey.pem | 9 + tests/keys/expiredreq.pem | 11 + tests/keys/gost2001ca.der | Bin 0 -> 527 bytes tests/keys/gost2001ca.pem | 13 + tests/keys/hmackey.bin | 1 + tests/keys/keys.xml | 83 + tests/keys/largersacert.der | Bin 0 -> 1437 bytes tests/keys/largersacert.pem | 100 + tests/keys/largersakey.der | Bin 0 -> 2348 bytes tests/keys/largersakey.p12 | Bin 0 -> 6532 bytes tests/keys/largersakey.p8-der | Bin 0 -> 2413 bytes tests/keys/largersakey.p8-pem | 53 + tests/keys/largersakey.pem | 51 + tests/keys/largersareq.pem | 30 + tests/keys/merlincert.pem | 20 + tests/keys/openssl.cnf | 316 + tests/keys/rsacert.der | Bin 0 -> 995 bytes tests/keys/rsacert.pem | 61 + tests/keys/rsakey.der | Bin 0 -> 320 bytes tests/keys/rsakey.p12 | Bin 0 -> 4042 bytes tests/keys/rsakey.p8-der | Bin 0 -> 389 bytes tests/keys/rsakey.p8-pem | 11 + tests/keys/rsakey.pem | 9 + tests/merlin-c14n-three/Readme.txt | 20 + tests/merlin-c14n-three/c14n-0.txt | 15 + tests/merlin-c14n-three/c14n-1.txt | 15 + tests/merlin-c14n-three/c14n-10.txt | 15 + tests/merlin-c14n-three/c14n-11.txt | 15 + tests/merlin-c14n-three/c14n-12.txt | 15 + tests/merlin-c14n-three/c14n-13.txt | 15 + tests/merlin-c14n-three/c14n-14.txt | 15 + tests/merlin-c14n-three/c14n-15.txt | 0 tests/merlin-c14n-three/c14n-16.txt | 0 tests/merlin-c14n-three/c14n-17.txt | 15 + tests/merlin-c14n-three/c14n-18.txt | 15 + tests/merlin-c14n-three/c14n-19.txt | 15 + tests/merlin-c14n-three/c14n-2.txt | 15 + tests/merlin-c14n-three/c14n-20.txt | 15 + tests/merlin-c14n-three/c14n-21.txt | 15 + tests/merlin-c14n-three/c14n-22.txt | 15 + tests/merlin-c14n-three/c14n-23.txt | 15 + tests/merlin-c14n-three/c14n-24.txt | 1 + tests/merlin-c14n-three/c14n-25.txt | 0 tests/merlin-c14n-three/c14n-26.txt | 15 + tests/merlin-c14n-three/c14n-27.txt | 430 + tests/merlin-c14n-three/c14n-3.txt | 15 + tests/merlin-c14n-three/c14n-4.txt | 15 + tests/merlin-c14n-three/c14n-5.txt | 15 + tests/merlin-c14n-three/c14n-6.txt | 1 + tests/merlin-c14n-three/c14n-7.txt | 1 + tests/merlin-c14n-three/c14n-8.txt | 15 + tests/merlin-c14n-three/c14n-9.txt | 15 + tests/merlin-c14n-three/signature.xml | 526 + tests/merlin-exc-c14n-one/Readme.txt | 3 + tests/merlin-exc-c14n-one/exc-signature.tmpl | 52 + tests/merlin-exc-c14n-one/exc-signature.xml | 73 + tests/merlin-xmldsig-twenty-three/Readme.txt | 63 + tests/merlin-xmldsig-twenty-three/certs/badb.der | Bin 0 -> 850 bytes tests/merlin-xmldsig-twenty-three/certs/badb.pem | 20 + tests/merlin-xmldsig-twenty-three/certs/balor.der | Bin 0 -> 851 bytes tests/merlin-xmldsig-twenty-three/certs/balor.pem | 20 + tests/merlin-xmldsig-twenty-three/certs/bres.pem | 20 + tests/merlin-xmldsig-twenty-three/certs/ca.der | Bin 0 -> 862 bytes tests/merlin-xmldsig-twenty-three/certs/ca.pem | 20 + .../certs/lugh-cert.der | Bin 0 -> 851 bytes .../certs/lugh-cert.pem | 20 + tests/merlin-xmldsig-twenty-three/certs/lugh.der | Bin 0 -> 442 bytes tests/merlin-xmldsig-twenty-three/certs/lugh.pem | 12 + tests/merlin-xmldsig-twenty-three/certs/macha.der | Bin 0 -> 852 bytes tests/merlin-xmldsig-twenty-three/certs/macha.pem | 20 + tests/merlin-xmldsig-twenty-three/certs/merlin.der | Bin 0 -> 847 bytes tests/merlin-xmldsig-twenty-three/certs/merlin.pem | 21 + tests/merlin-xmldsig-twenty-three/certs/morigu.pem | 20 + tests/merlin-xmldsig-twenty-three/certs/nemain.der | Bin 0 -> 852 bytes tests/merlin-xmldsig-twenty-three/certs/nemain.pem | 20 + .../signature-enveloped-dsa.tmpl | 22 + .../signature-enveloped-dsa.xml | 43 + .../signature-enveloping-b64-dsa.tmpl | 21 + .../signature-enveloping-b64-dsa.xml | 42 + .../signature-enveloping-dsa.tmpl | 18 + .../signature-enveloping-dsa.xml | 39 + .../signature-enveloping-hmac-sha1-40.tmpl | 16 + .../signature-enveloping-hmac-sha1-40.xml | 17 + .../signature-enveloping-hmac-sha1.tmpl | 14 + .../signature-enveloping-hmac-sha1.xml | 15 + .../signature-enveloping-rsa.tmpl | 18 + .../signature-enveloping-rsa.xml | 31 + .../signature-external-b64-dsa.tmpl | 20 + .../signature-external-b64-dsa.xml | 41 + .../signature-external-dsa.tmpl | 17 + .../signature-external-dsa.xml | 38 + .../signature-keyname.tmpl | 16 + .../signature-keyname.xml | 17 + .../signature-retrievalmethod-rawx509crt.tmpl | 16 + .../signature-retrievalmethod-rawx509crt.xml | 17 + .../signature-x509-crt-crl.tmpl | 17 + .../signature-x509-crt-crl.xml | 47 + .../signature-x509-crt.tmpl | 17 + .../signature-x509-crt.xml | 38 + .../signature-x509-is.tmpl | 17 + .../signature-x509-is.xml | 24 + .../signature-x509-ski.tmpl | 17 + .../signature-x509-ski.xml | 21 + .../signature-x509-sn.tmpl | 17 + .../signature-x509-sn.xml | 21 + tests/merlin-xmldsig-twenty-three/signature.tmpl | 245 + tests/merlin-xmldsig-twenty-three/signature.xml | 269 + tests/merlin-xmlenc-five/Readme.txt | 117 + .../bad-encrypt-content-aes128-cbc-kw-aes192.xml | 42 + .../decryption-transform-except.xml | 83 + tests/merlin-xmlenc-five/decryption-transform.xml | 73 + tests/merlin-xmlenc-five/dh0.p8 | Bin 0 -> 409 bytes tests/merlin-xmlenc-five/dh1.p8 | Bin 0 -> 409 bytes tests/merlin-xmlenc-five/dsa.p8 | Bin 0 -> 333 bytes .../encrypt-content-aes128-cbc-kw-aes192.data | 27 + .../encrypt-content-aes128-cbc-kw-aes192.tmpl | 20 + .../encrypt-content-aes128-cbc-kw-aes192.xml | 45 + .../encrypt-content-aes192-cbc-dh-sha512.xml | 113 + .../encrypt-content-aes256-cbc-prop.data | 27 + .../encrypt-content-aes256-cbc-prop.tmpl | 18 + .../encrypt-content-aes256-cbc-prop.xml | 42 + .../encrypt-content-tripledes-cbc.data | 27 + .../encrypt-content-tripledes-cbc.tmpl | 11 + .../encrypt-content-tripledes-cbc.xml | 35 + .../encrypt-data-aes128-cbc.data | 1 + .../encrypt-data-aes128-cbc.tmpl | 11 + .../merlin-xmlenc-five/encrypt-data-aes128-cbc.xml | 12 + .../encrypt-data-aes192-cbc-kw-aes256.data | 1 + .../encrypt-data-aes192-cbc-kw-aes256.tmpl | 20 + .../encrypt-data-aes192-cbc-kw-aes256.xml | 22 + .../encrypt-data-aes256-cbc-kw-tripledes.data | 1 + .../encrypt-data-aes256-cbc-kw-tripledes.tmpl | 20 + .../encrypt-data-aes256-cbc-kw-tripledes.xml | 22 + ...pt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml | 46 + .../encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data | 1 + .../encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.tmpl | 21 + .../encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml | 43 + .../encrypt-element-aes128-cbc-rsa-1_5.data | 27 + .../encrypt-element-aes128-cbc-rsa-1_5.tmpl | 19 + .../encrypt-element-aes128-cbc-rsa-1_5.xml | 63 + .../encrypt-element-aes192-cbc-ref.data | 36 + .../encrypt-element-aes192-cbc-ref.xml | 42 + ...ncrypt-element-aes256-cbc-carried-kw-aes256.xml | 57 + ...t-element-aes256-cbc-kw-aes256-dh-ripemd160.xml | 122 + ...ypt-element-aes256-cbc-retrieved-kw-aes256.data | 40 + ...rypt-element-aes256-cbc-retrieved-kw-aes256.xml | 47 + .../encrypt-element-tripledes-cbc-kw-aes128.data | 27 + .../encrypt-element-tripledes-cbc-kw-aes128.tmpl | 20 + .../encrypt-element-tripledes-cbc-kw-aes128.xml | 43 + tests/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml | 98 + .../encsig-hmac-sha256-kw-tripledes-dh.xml | 108 + .../encsig-hmac-sha256-rsa-1_5.xml | 46 + .../encsig-hmac-sha256-rsa-oaep-mgf1p.xml | 51 + ...csig-ripemd160-hmac-ripemd160-kw-tripledes.tmpl | 25 + ...ncsig-ripemd160-hmac-ripemd160-kw-tripledes.xml | 27 + .../encsig-sha256-hmac-sha256-kw-aes128.xml | 27 + .../encsig-sha384-hmac-sha384-kw-aes192.xml | 27 + .../encsig-sha512-hmac-sha512-kw-aes256.xml | 28 + tests/merlin-xmlenc-five/ids.p12 | Bin 0 -> 499 bytes tests/merlin-xmlenc-five/keys.xml | 42 + tests/merlin-xmlenc-five/plaintext.xml | 24 + tests/merlin-xmlenc-five/rsa.p8 | Bin 0 -> 312 bytes tests/merlin-xmlenc-five/rsapriv.der | Bin 0 -> 609 bytes tests/merlin-xmlenc-five/rsapriv.p12 | Bin 0 -> 2140 bytes tests/merlin-xmlenc-five/rsapriv.p8-der | Bin 0 -> 677 bytes tests/merlin-xmlenc-five/rsapriv.p8-pem | 17 + tests/merlin-xmlenc-five/rsapriv.pem | 15 + tests/merlin-xmlenc-five/rsapub.pem | 6 + tests/merlin-xpath-filter2-three/Readme.txt | 23 + .../sign-spec-c14n-0.txt | 11 + .../sign-spec-c14n-1.txt | 0 .../sign-spec-c14n-2.txt | 25 + tests/merlin-xpath-filter2-three/sign-spec.tmpl | 50 + tests/merlin-xpath-filter2-three/sign-spec.xml | 122 + .../sign-xfdl-c14n-0.txt | 3986 +++++ tests/merlin-xpath-filter2-three/sign-xfdl.tmpl | 4153 +++++ tests/merlin-xpath-filter2-three/sign-xfdl.xml | 4225 +++++ tests/nss.supp | 220 + tests/nssdb/cert8.db | Bin 0 -> 65536 bytes tests/nssdb/key3.db | Bin 0 -> 16384 bytes tests/nssdb/secmod.db | Bin 0 -> 16384 bytes tests/openssl.supp | 63 + tests/phaos-xmldsig-three/README.txt | 248 + tests/phaos-xmldsig-three/certs/crl.der | Bin 0 -> 418 bytes tests/phaos-xmldsig-three/certs/dsa-ca-cert.der | Bin 0 -> 911 bytes tests/phaos-xmldsig-three/certs/dsa-cert.der | Bin 0 -> 915 bytes tests/phaos-xmldsig-three/certs/enc-dsa-key.der | Bin 0 -> 374 bytes tests/phaos-xmldsig-three/certs/enc-rsa-key.der | Bin 0 -> 678 bytes tests/phaos-xmldsig-three/certs/hmackey.bin | 1 + tests/phaos-xmldsig-three/certs/rsa-ca-cert.der | Bin 0 -> 722 bytes tests/phaos-xmldsig-three/certs/rsa-cert.der | Bin 0 -> 724 bytes tests/phaos-xmldsig-three/document-stylesheet.xml | 7 + tests/phaos-xmldsig-three/document.b64 | 4 + tests/phaos-xmldsig-three/document.xml | 6 + tests/phaos-xmldsig-three/document.xsl | 45 + tests/phaos-xmldsig-three/signature-big.xml | 39 + .../phaos-xmldsig-three/signature-dsa-detached.xml | 1 + .../signature-dsa-enveloped.xml | 6 + .../signature-dsa-enveloping.xml | 6 + .../phaos-xmldsig-three/signature-dsa-manifest.xml | 1 + .../signature-hmac-md5-c14n-enveloping.xml | 6 + ...gnature-hmac-sha1-40-c14n-comments-detached.xml | 1 + ...ac-sha1-40-exclusive-c14n-comments-detached.xml | 1 + ...-hmac-sha1-exclusive-c14n-comments-detached.xml | 1 + ...ignature-hmac-sha1-exclusive-c14n-enveloped.xml | 6 + .../signature-rsa-detached-b64-transform.xml | 1 + .../signature-rsa-detached-xpath-transform.xml | 1 + ...etached-xslt-transform-bad-retrieval-method.xml | 6 + ...sa-detached-xslt-transform-retrieval-method.xml | 39 + .../signature-rsa-detached-xslt-transform.xml | 39 + .../phaos-xmldsig-three/signature-rsa-detached.xml | 1 + .../signature-rsa-enveloped-bad-digest-val.xml | 6 + .../signature-rsa-enveloped-bad-sig.xml | 6 + .../signature-rsa-enveloped.xml | 6 + .../signature-rsa-enveloping.xml | 6 + ...signature-rsa-manifest-x509-data-cert-chain.xml | 1 + .../signature-rsa-manifest-x509-data-cert.xml | 1 + ...nature-rsa-manifest-x509-data-issuer-serial.xml | 1 + .../signature-rsa-manifest-x509-data-ski.xml | 1 + ...gnature-rsa-manifest-x509-data-subject-name.xml | 1 + .../phaos-xmldsig-three/signature-rsa-manifest.xml | 1 + .../signature-rsa-xpath-transform-enveloped.xml | 6 + .../signature-rsa-~x509-data-crl.xml | 1 + tests/testDSig.sh | 688 + tests/testEnc.sh | 413 + tests/testKeys.sh | 133 + tests/testRes.sh | 20 + tests/testXKMS.sh | 150 + tests/xmldsig2ed-tests/c14n11/xml-base-input.xml | 17 + tests/xmldsig2ed-tests/defCan-1.tmpl | 2 + tests/xmldsig2ed-tests/defCan-1.xml | 2 + tests/xmldsig2ed-tests/defCan-2.tmpl | 2 + tests/xmldsig2ed-tests/defCan-2.xml | 2 + tests/xmldsig2ed-tests/defCan-3.tmpl | 2 + tests/xmldsig2ed-tests/defCan-3.xml | 2 + tests/xmldsig2ed-tests/xpointer-1-SUN.xml | 21 + tests/xmldsig2ed-tests/xpointer-2-SUN.xml | 21 + tests/xmldsig2ed-tests/xpointer-3-SUN.xml | 21 + tests/xmldsig2ed-tests/xpointer-4-SUN.xml | 21 + tests/xmldsig2ed-tests/xpointer-5-SUN.xml | 21 + tests/xmldsig2ed-tests/xpointer-6-SUN.xml | 21 + win32/Makefile.msvc | 671 + win32/README.txt | 168 + win32/configure.js | 389 + win32/libxmlsec.def.src | 25 + win32/mycfg.bat | 21 + xmlsec-config.in | 232 + xmlsec-gnutls.pc.in | 11 + xmlsec-nss.pc.in | 11 + xmlsec-openssl.pc.in | 11 + xmlsec.pc.in | 11 + xmlsec.spec.in | 185 + xmlsec1-config | 232 + xmlsec1-gnutls.pc | 11 + xmlsec1-nss.pc | 11 + xmlsec1-openssl.pc | 11 + xmlsec1.m4 | 172 + xmlsec1.pc | 11 + xmlsec1.spec | 185 + xmlsec1Conf.sh | 13 + xmlsecConf.sh.in | 13 + 932 files changed, 239085 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 Copyright create mode 100644 HACKING create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 Makefile.in create mode 100644 NEWS create mode 100644 README create mode 100644 TODO create mode 100644 aclocal.m4 create mode 100644 apps/Makefile.am create mode 100644 apps/Makefile.in create mode 100644 apps/cmdline.c create mode 100644 apps/cmdline.h create mode 100644 apps/crypto.c create mode 100644 apps/crypto.h create mode 100644 apps/xmlsec.c create mode 100755 config.guess create mode 100644 config.h.in create mode 100755 config.sub create mode 100755 configure create mode 100644 configure.in create mode 100644 debian/README.Debian create mode 100644 debian/TODO.Debian create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/libxmlsec1-dev.docs create mode 100644 debian/libxmlsec1-dev.install create mode 100644 debian/libxmlsec1-dev.manpages create mode 100644 debian/libxmlsec1-gnutls.install create mode 100644 debian/libxmlsec1-nss.install create mode 100644 debian/libxmlsec1-openssl.install create mode 100644 debian/libxmlsec1.install create mode 100755 debian/rules create mode 100644 debian/watch create mode 100644 debian/xmlsec1.install create mode 100644 debian/xmlsec1.manpages create mode 100755 depcomp create mode 100644 docs/Makefile.am create mode 100644 docs/Makefile.in create mode 100644 docs/api/Makefile.am create mode 100644 docs/api/Makefile.in create mode 100644 docs/api/chapters/compiling-and-linking.sgml create mode 100644 docs/api/chapters/creating-templates.sgml create mode 100644 docs/api/chapters/examples.sgml create mode 100644 docs/api/chapters/init-and-shutdown.sgml create mode 100644 docs/api/chapters/new-crypto.sgml create mode 100644 docs/api/chapters/sign-and-encrypt.sgml create mode 100644 docs/api/chapters/using-contexts.sgml create mode 100644 docs/api/chapters/using-keys.sgml create mode 100644 docs/api/chapters/using-keysmngr.sgml create mode 100644 docs/api/chapters/using-transforms.sgml create mode 100644 docs/api/chapters/using-x509-certs.sgml create mode 100644 docs/api/chapters/verify-and-decrypt.sgml create mode 100644 docs/api/home.png create mode 100644 docs/api/images/diagrams.sxd create mode 100644 docs/api/images/encryption-structure.png create mode 100644 docs/api/images/key.png create mode 100644 docs/api/images/keysmngr.png create mode 100644 docs/api/images/sign-enc-model.png create mode 100644 docs/api/images/signature-structure.png create mode 100644 docs/api/images/structure.png create mode 100644 docs/api/images/transform.png create mode 100644 docs/api/images/transforms-chain.png create mode 100644 docs/api/images/verif-dec-model.png create mode 100644 docs/api/index.html create mode 100644 docs/api/index.sgml create mode 100644 docs/api/left.png create mode 100644 docs/api/right.png create mode 100644 docs/api/up.png create mode 100644 docs/api/xmlsec-app.html create mode 100644 docs/api/xmlsec-base64.html create mode 100644 docs/api/xmlsec-bn.html create mode 100644 docs/api/xmlsec-buffer.html create mode 100644 docs/api/xmlsec-custom-keys-manager.html create mode 100644 docs/api/xmlsec-decrypt-with-keys-mngr.html create mode 100644 docs/api/xmlsec-decrypt-with-signle-key.html create mode 100644 docs/api/xmlsec-dl.html create mode 100644 docs/api/xmlsec-encrypt-dynamic-template.html create mode 100644 docs/api/xmlsec-encrypt-template-file.html create mode 100644 docs/api/xmlsec-encrypt-with-session-key.html create mode 100644 docs/api/xmlsec-encryption-klasses.html create mode 100644 docs/api/xmlsec-errors.html create mode 100644 docs/api/xmlsec-examples-sign-dynamimc-template.html create mode 100644 docs/api/xmlsec-examples-sign-template-file.html create mode 100644 docs/api/xmlsec-examples-sign-x509.html create mode 100644 docs/api/xmlsec-examples.html create mode 100644 docs/api/xmlsec-gnutls-app.html create mode 100644 docs/api/xmlsec-gnutls-crypto.html create mode 100644 docs/api/xmlsec-gnutls-ref.html create mode 100644 docs/api/xmlsec-gnutls.sgml create mode 100644 docs/api/xmlsec-index.html create mode 100644 docs/api/xmlsec-index.sgml create mode 100644 docs/api/xmlsec-io.html create mode 100644 docs/api/xmlsec-keyinfo.html create mode 100644 docs/api/xmlsec-keys.html create mode 100644 docs/api/xmlsec-keysdata.html create mode 100644 docs/api/xmlsec-keysmngr.html create mode 100644 docs/api/xmlsec-list.html create mode 100644 docs/api/xmlsec-membuf.html create mode 100644 docs/api/xmlsec-mscrypto-app.html create mode 100644 docs/api/xmlsec-mscrypto-certkeys.html create mode 100644 docs/api/xmlsec-mscrypto-crypto.html create mode 100644 docs/api/xmlsec-mscrypto-keysstore.html create mode 100644 docs/api/xmlsec-mscrypto-ref.html create mode 100644 docs/api/xmlsec-mscrypto-x509.html create mode 100644 docs/api/xmlsec-mscrypto.sgml create mode 100644 docs/api/xmlsec-nodeset.html create mode 100644 docs/api/xmlsec-notes-compiling-others.html create mode 100644 docs/api/xmlsec-notes-compiling-unix.html create mode 100644 docs/api/xmlsec-notes-compiling-windows.html create mode 100644 docs/api/xmlsec-notes-compiling.html create mode 100644 docs/api/xmlsec-notes-contexts.html create mode 100644 docs/api/xmlsec-notes-custom-keys-store.html create mode 100644 docs/api/xmlsec-notes-decrypt.html create mode 100644 docs/api/xmlsec-notes-dynamic-encryption-templates.html create mode 100644 docs/api/xmlsec-notes-dynamic-signature-templates.html create mode 100644 docs/api/xmlsec-notes-encrypt.html create mode 100644 docs/api/xmlsec-notes-include-files.html create mode 100644 docs/api/xmlsec-notes-init-shutdown.html create mode 100644 docs/api/xmlsec-notes-keys-manager-sign-enc.html create mode 100644 docs/api/xmlsec-notes-keys-mngr-verify-decrypt.html create mode 100644 docs/api/xmlsec-notes-keys.html create mode 100644 docs/api/xmlsec-notes-keysmngr.html create mode 100644 docs/api/xmlsec-notes-new-crypto-functions.html create mode 100644 docs/api/xmlsec-notes-new-crypto-key-stores.html create mode 100644 docs/api/xmlsec-notes-new-crypto-keys.html create mode 100644 docs/api/xmlsec-notes-new-crypto-klasses.html create mode 100644 docs/api/xmlsec-notes-new-crypto-sharing-results.html create mode 100644 docs/api/xmlsec-notes-new-crypto-simple-keys-mngr.html create mode 100644 docs/api/xmlsec-notes-new-crypto-skeleton.html create mode 100644 docs/api/xmlsec-notes-new-crypto-transforms.html create mode 100644 docs/api/xmlsec-notes-new-crypto.html create mode 100644 docs/api/xmlsec-notes-overview.html create mode 100644 docs/api/xmlsec-notes-sign-encrypt.html create mode 100644 docs/api/xmlsec-notes-sign-x509.html create mode 100644 docs/api/xmlsec-notes-sign.html create mode 100644 docs/api/xmlsec-notes-simple-keys-store.html create mode 100644 docs/api/xmlsec-notes-structure.html create mode 100644 docs/api/xmlsec-notes-templates.html create mode 100644 docs/api/xmlsec-notes-transforms.html create mode 100644 docs/api/xmlsec-notes-verify-decrypt.html create mode 100644 docs/api/xmlsec-notes-verify-x509.html create mode 100644 docs/api/xmlsec-notes-verify.html create mode 100644 docs/api/xmlsec-notes-x509.html create mode 100644 docs/api/xmlsec-notes.html create mode 100644 docs/api/xmlsec-nss-app.html create mode 100644 docs/api/xmlsec-nss-bignum.html create mode 100644 docs/api/xmlsec-nss-crypto.html create mode 100644 docs/api/xmlsec-nss-keysstore.html create mode 100644 docs/api/xmlsec-nss-pkikeys.html create mode 100644 docs/api/xmlsec-nss-ref.html create mode 100644 docs/api/xmlsec-nss-x509.html create mode 100644 docs/api/xmlsec-nss.sgml create mode 100644 docs/api/xmlsec-openssl-app.html create mode 100644 docs/api/xmlsec-openssl-bn.html create mode 100644 docs/api/xmlsec-openssl-crypto.html create mode 100644 docs/api/xmlsec-openssl-evp.html create mode 100644 docs/api/xmlsec-openssl-ref.html create mode 100644 docs/api/xmlsec-openssl-x509.html create mode 100644 docs/api/xmlsec-openssl.sgml create mode 100644 docs/api/xmlsec-parser.html create mode 100644 docs/api/xmlsec-ref.html create mode 100644 docs/api/xmlsec-reference.html create mode 100644 docs/api/xmlsec-signature-klasses.html create mode 100644 docs/api/xmlsec-templates.html create mode 100644 docs/api/xmlsec-transforms.html create mode 100644 docs/api/xmlsec-verify-with-key.html create mode 100644 docs/api/xmlsec-verify-with-keys-mngr.html create mode 100644 docs/api/xmlsec-verify-with-restrictions.html create mode 100644 docs/api/xmlsec-verify-with-x509.html create mode 100644 docs/api/xmlsec-version.html create mode 100644 docs/api/xmlsec-x509.html create mode 100644 docs/api/xmlsec-xmldsig.html create mode 100644 docs/api/xmlsec-xmlenc.html create mode 100644 docs/api/xmlsec-xmlsec.html create mode 100644 docs/api/xmlsec-xmltree.html create mode 100644 docs/api/xmlsec.sgml create mode 100644 docs/authors.html create mode 100644 docs/bugs.html create mode 100644 docs/c14n.html create mode 100644 docs/documentation.html create mode 100644 docs/download.html create mode 100644 docs/faq.html create mode 100644 docs/images/bart.gif create mode 100644 docs/images/libxml2-logo.png create mode 100644 docs/images/libxslt-logo.png create mode 100644 docs/images/logo.gif create mode 100644 docs/images/openssl-logo.png create mode 100644 docs/images/xmlsec-logo.gif create mode 100644 docs/index.html create mode 100644 docs/news.html create mode 100644 docs/related.html create mode 100644 docs/xmldsig-verifier.html create mode 100644 docs/xmldsig.html create mode 100644 docs/xmlenc.html create mode 100644 docs/xmlsec-man.html create mode 100644 docs/xmlsec.xsl create mode 100644 examples/Makefile create mode 100644 examples/Makefile.w32 create mode 100644 examples/README create mode 100644 examples/binary.dat create mode 100644 examples/decrypt1.c create mode 100644 examples/decrypt2.c create mode 100644 examples/decrypt3.c create mode 100644 examples/deskey.bin create mode 100644 examples/encrypt1-res.xml create mode 100644 examples/encrypt1-tmpl.xml create mode 100644 examples/encrypt1.c create mode 100644 examples/encrypt2-doc.xml create mode 100644 examples/encrypt2-res.xml create mode 100644 examples/encrypt2.c create mode 100644 examples/encrypt3-doc.xml create mode 100644 examples/encrypt3-res.xml create mode 100644 examples/encrypt3.c create mode 100644 examples/mywin32make.bat create mode 100644 examples/rootcert.pem create mode 100644 examples/rsacert.pem create mode 100644 examples/rsakey.pem create mode 100644 examples/rsapub.pem create mode 100644 examples/sign1-res.xml create mode 100644 examples/sign1-tmpl.xml create mode 100644 examples/sign1.c create mode 100644 examples/sign2-doc.xml create mode 100644 examples/sign2-res.xml create mode 100644 examples/sign2.c create mode 100644 examples/sign3-doc.xml create mode 100644 examples/sign3-res.xml create mode 100644 examples/sign3.c create mode 100644 examples/verify1.c create mode 100644 examples/verify2.c create mode 100644 examples/verify3.c create mode 100644 examples/verify4-bad-res.xml create mode 100644 examples/verify4-bad-tmpl.xml create mode 100644 examples/verify4-res.xml create mode 100644 examples/verify4-tmpl.xml create mode 100644 examples/verify4.c create mode 100644 examples/xkms-server.c create mode 100644 examples/xmldsigverify.c create mode 100644 include/Makefile.am create mode 100644 include/Makefile.in create mode 100644 include/xmlsec/Makefile.am create mode 100644 include/xmlsec/Makefile.in create mode 100644 include/xmlsec/app.h create mode 100644 include/xmlsec/base64.h create mode 100644 include/xmlsec/bn.h create mode 100644 include/xmlsec/buffer.h create mode 100644 include/xmlsec/crypto.h create mode 100644 include/xmlsec/dl.h create mode 100644 include/xmlsec/errors.h create mode 100644 include/xmlsec/exports.h create mode 100644 include/xmlsec/gnutls/Makefile.am create mode 100644 include/xmlsec/gnutls/Makefile.in create mode 100644 include/xmlsec/gnutls/app.h create mode 100644 include/xmlsec/gnutls/crypto.h create mode 100644 include/xmlsec/gnutls/symbols.h create mode 100644 include/xmlsec/io.h create mode 100644 include/xmlsec/keyinfo.h create mode 100644 include/xmlsec/keys.h create mode 100644 include/xmlsec/keysdata.h create mode 100644 include/xmlsec/keysmngr.h create mode 100644 include/xmlsec/list.h create mode 100644 include/xmlsec/membuf.h create mode 100644 include/xmlsec/mscrypto/Makefile.am create mode 100644 include/xmlsec/mscrypto/Makefile.in create mode 100644 include/xmlsec/mscrypto/app.h create mode 100644 include/xmlsec/mscrypto/certkeys.h create mode 100644 include/xmlsec/mscrypto/crypto.h create mode 100644 include/xmlsec/mscrypto/keysstore.h create mode 100644 include/xmlsec/mscrypto/symbols.h create mode 100644 include/xmlsec/mscrypto/x509.h create mode 100644 include/xmlsec/nodeset.h create mode 100644 include/xmlsec/nss/Makefile.am create mode 100644 include/xmlsec/nss/Makefile.in create mode 100644 include/xmlsec/nss/app.h create mode 100644 include/xmlsec/nss/bignum.h create mode 100644 include/xmlsec/nss/crypto.h create mode 100644 include/xmlsec/nss/keysstore.h create mode 100644 include/xmlsec/nss/pkikeys.h create mode 100644 include/xmlsec/nss/symbols.h create mode 100644 include/xmlsec/nss/x509.h create mode 100644 include/xmlsec/openssl/Makefile.am create mode 100644 include/xmlsec/openssl/Makefile.in create mode 100644 include/xmlsec/openssl/app.h create mode 100644 include/xmlsec/openssl/bn.h create mode 100644 include/xmlsec/openssl/crypto.h create mode 100644 include/xmlsec/openssl/evp.h create mode 100644 include/xmlsec/openssl/symbols.h create mode 100644 include/xmlsec/openssl/x509.h create mode 100644 include/xmlsec/parser.h create mode 100644 include/xmlsec/private.h create mode 100644 include/xmlsec/private/Makefile.am create mode 100644 include/xmlsec/private/Makefile.in create mode 100644 include/xmlsec/private/xkms.h create mode 100644 include/xmlsec/skeleton/Makefile.am create mode 100644 include/xmlsec/skeleton/app.h create mode 100644 include/xmlsec/skeleton/crypto.h create mode 100644 include/xmlsec/skeleton/symbols.h create mode 100644 include/xmlsec/soap.h create mode 100644 include/xmlsec/strings.h create mode 100644 include/xmlsec/templates.h create mode 100644 include/xmlsec/transforms.h create mode 100644 include/xmlsec/version.h create mode 100644 include/xmlsec/version.h.in create mode 100644 include/xmlsec/x509.h create mode 100644 include/xmlsec/xkms.h create mode 100644 include/xmlsec/xmldsig.h create mode 100644 include/xmlsec/xmlenc.h create mode 100644 include/xmlsec/xmlsec.h create mode 100644 include/xmlsec/xmltree.h create mode 100755 install-sh create mode 100755 ltmain.sh create mode 100644 m4/libtool.m4 create mode 100644 m4/ltoptions.m4 create mode 100644 m4/ltsugar.m4 create mode 100644 m4/ltversion.m4 create mode 100644 m4/lt~obsolete.m4 create mode 100644 man/Makefile.am create mode 100644 man/Makefile.in create mode 100644 man/xmlsec1-config.1 create mode 100644 man/xmlsec1.1 create mode 100755 missing create mode 100755 mkinstalldirs create mode 100644 packaging/xmlsec1.spec create mode 100755 scripts/build_release.sh create mode 100755 scripts/change-release.sh create mode 100755 scripts/push_release.sh create mode 100755 scripts/remove-gtkdoclink.pl create mode 100755 scripts/test_errors.pl create mode 100755 scripts/test_leaks.pl create mode 100755 scripts/test_release.sh create mode 100644 src/Makefile.am create mode 100644 src/Makefile.in create mode 100644 src/app.c create mode 100644 src/base64.c create mode 100644 src/bn.c create mode 100644 src/buffer.c create mode 100644 src/c14n.c create mode 100644 src/dl.c create mode 100644 src/enveloped.c create mode 100644 src/errors.c create mode 100644 src/globals.h create mode 100644 src/gnutls/Makefile.am create mode 100644 src/gnutls/Makefile.in create mode 100644 src/gnutls/README create mode 100644 src/gnutls/app.c create mode 100644 src/gnutls/ciphers.c create mode 100644 src/gnutls/crypto.c create mode 100644 src/gnutls/digests.c create mode 100644 src/gnutls/globals.h create mode 100644 src/gnutls/hmac.c create mode 100644 src/gnutls/symkeys.c create mode 100644 src/io.c create mode 100644 src/keyinfo.c create mode 100644 src/keys.c create mode 100644 src/keysdata.c create mode 100644 src/keysmngr.c create mode 100644 src/list.c create mode 100644 src/membuf.c create mode 100644 src/mscrypto/Makefile.am create mode 100644 src/mscrypto/Makefile.in create mode 100644 src/mscrypto/README create mode 100644 src/mscrypto/app.c create mode 100644 src/mscrypto/certkeys.c create mode 100644 src/mscrypto/ciphers.c create mode 100644 src/mscrypto/crypto.c create mode 100644 src/mscrypto/csp_calg.h create mode 100644 src/mscrypto/csp_oid.h create mode 100644 src/mscrypto/digests.c create mode 100644 src/mscrypto/globals.h create mode 100644 src/mscrypto/keysstore.c create mode 100644 src/mscrypto/kt_rsa.c create mode 100644 src/mscrypto/mingw-crypt32.def create mode 100644 src/mscrypto/signatures.c create mode 100644 src/mscrypto/symkeys.c create mode 100644 src/mscrypto/x509.c create mode 100644 src/mscrypto/x509vfy.c create mode 100644 src/mscrypto/xmlsec-mingw.h create mode 100644 src/nodeset.c create mode 100644 src/nss/Makefile.am create mode 100644 src/nss/Makefile.in create mode 100644 src/nss/README create mode 100644 src/nss/app.c create mode 100644 src/nss/bignum.c create mode 100644 src/nss/ciphers.c create mode 100644 src/nss/crypto.c create mode 100644 src/nss/digests.c create mode 100644 src/nss/globals.h create mode 100644 src/nss/hmac.c create mode 100644 src/nss/keysstore.c create mode 100644 src/nss/keytrans.c create mode 100644 src/nss/kw_aes.c create mode 100644 src/nss/kw_des.c create mode 100644 src/nss/pkikeys.c create mode 100644 src/nss/signatures.c create mode 100644 src/nss/symkeys.c create mode 100644 src/nss/x509.c create mode 100644 src/nss/x509vfy.c create mode 100644 src/openssl/Makefile.am create mode 100644 src/openssl/Makefile.in create mode 100644 src/openssl/README create mode 100644 src/openssl/app.c create mode 100644 src/openssl/bn.c create mode 100644 src/openssl/ciphers.c create mode 100644 src/openssl/crypto.c create mode 100644 src/openssl/digests.c create mode 100644 src/openssl/evp.c create mode 100644 src/openssl/globals.h create mode 100644 src/openssl/hmac.c create mode 100644 src/openssl/kt_rsa.c create mode 100644 src/openssl/kw_aes.c create mode 100644 src/openssl/kw_des.c create mode 100644 src/openssl/signatures.c create mode 100644 src/openssl/symkeys.c create mode 100644 src/openssl/x509.c create mode 100644 src/openssl/x509vfy.c create mode 100644 src/parser.c create mode 100644 src/skeleton/Makefile.am create mode 100644 src/skeleton/README create mode 100644 src/skeleton/app.c create mode 100644 src/skeleton/crypto.c create mode 100644 src/skeleton/globals.h create mode 100644 src/soap.c create mode 100644 src/strings.c create mode 100644 src/templates.c create mode 100644 src/transforms.c create mode 100644 src/x509.c create mode 100644 src/xkms.c create mode 100644 src/xmldsig.c create mode 100644 src/xmlenc.c create mode 100644 src/xmlsec.c create mode 100644 src/xmltree.c create mode 100644 src/xpath.c create mode 100644 src/xslt.c create mode 100644 tests/01-phaos-xmlenc-3/Readme.txt create mode 100644 tests/01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des.xml create mode 100644 tests/01-phaos-xmlenc-3/dh-priv-key.der create mode 100644 tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.data create mode 100644 tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.data create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.data create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.data create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-ka-dh.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha256.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha512.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-ka-dh.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes192-ka-dh.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes256-ka-dh.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.data create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data create mode 100644 tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.data create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.data create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.xml create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.data create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.tmpl create mode 100644 tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.xml create mode 100644 tests/01-phaos-xmlenc-3/key.txt create mode 100644 tests/01-phaos-xmlenc-3/keys.xml create mode 100644 tests/01-phaos-xmlenc-3/payment.xml create mode 100644 tests/01-phaos-xmlenc-3/rsa-priv-key.der create mode 100644 tests/01-phaos-xmlenc-3/rsa-priv-key.p12 create mode 100644 tests/aleksey-xkms-01/bad-request-name-not-supported.xml create mode 100644 tests/aleksey-xkms-01/bad-request-name.xml create mode 100644 tests/aleksey-xkms-01/compound-example-1-no-match.xml create mode 100644 tests/aleksey-xkms-01/compound-example-1.xml create mode 100644 tests/aleksey-xkms-01/keys/cert1.der create mode 100644 tests/aleksey-xkms-01/keys/cert1.pem create mode 100644 tests/aleksey-xkms-01/keys/cert2.der create mode 100644 tests/aleksey-xkms-01/keys/cert2.pem create mode 100644 tests/aleksey-xkms-01/keys/cert3.der create mode 100644 tests/aleksey-xkms-01/keys/cert3.pem create mode 100755 tests/aleksey-xkms-01/keys/create-keys.sh create mode 100644 tests/aleksey-xkms-01/keys/key1-pk8.der create mode 100644 tests/aleksey-xkms-01/keys/key1.der create mode 100644 tests/aleksey-xkms-01/keys/key1.p12 create mode 100644 tests/aleksey-xkms-01/keys/key1.pem create mode 100644 tests/aleksey-xkms-01/keys/key2-pk8.der create mode 100644 tests/aleksey-xkms-01/keys/key2.der create mode 100644 tests/aleksey-xkms-01/keys/key2.p12 create mode 100644 tests/aleksey-xkms-01/keys/key2.pem create mode 100644 tests/aleksey-xkms-01/keys/key3-pk8.der create mode 100644 tests/aleksey-xkms-01/keys/key3.der create mode 100644 tests/aleksey-xkms-01/keys/key3.p12 create mode 100644 tests/aleksey-xkms-01/keys/key3.pem create mode 100644 tests/aleksey-xkms-01/keys/openssl.cnf create mode 100644 tests/aleksey-xkms-01/keys/req2.pem create mode 100644 tests/aleksey-xkms-01/keys/req3.pem create mode 100644 tests/aleksey-xkms-01/locate-example-1-bad-service.xml create mode 100644 tests/aleksey-xkms-01/locate-example-1-no-match.xml create mode 100644 tests/aleksey-xkms-01/locate-example-1.xml create mode 100644 tests/aleksey-xkms-01/locate-example-2-no-match.xml create mode 100644 tests/aleksey-xkms-01/locate-example-2.xml create mode 100644 tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml create mode 100644 tests/aleksey-xkms-01/locate-opaque-client-data.xml create mode 100644 tests/aleksey-xkms-01/readme.txt create mode 100644 tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml create mode 100644 tests/aleksey-xkms-01/soap11-bad-request-name.xml create mode 100644 tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml create mode 100644 tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml create mode 100644 tests/aleksey-xkms-01/soap11-locate-example-1.xml create mode 100644 tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml create mode 100644 tests/aleksey-xkms-01/soap12-bad-request-name.xml create mode 100644 tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml create mode 100644 tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml create mode 100644 tests/aleksey-xkms-01/soap12-locate-example-1.xml create mode 100644 tests/aleksey-xkms-01/status-request-success.xml create mode 100644 tests/aleksey-xkms-01/status-request.xml create mode 100644 tests/aleksey-xkms-01/validate-example-1-no-match.xml create mode 100644 tests/aleksey-xkms-01/validate-example-1.xml create mode 100644 tests/aleksey-xmldsig-01/README create mode 100644 tests/aleksey-xmldsig-01/dtd-hmac-91.dtd create mode 100644 tests/aleksey-xmldsig-01/dtd-hmac-91.tmpl create mode 100644 tests/aleksey-xmldsig-01/dtd-hmac-91.xml create mode 100644 tests/aleksey-xmldsig-01/enveloped-gost.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloped-gost.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-expired-cert.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.xml create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.tmpl create mode 100644 tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.xml create mode 100755 tests/aleksey-xmldsig-01/x509data-sn-test.tmpl create mode 100755 tests/aleksey-xmldsig-01/x509data-sn-test.xml create mode 100644 tests/aleksey-xmldsig-01/x509data-test.tmpl create mode 100644 tests/aleksey-xmldsig-01/x509data-test.xml create mode 100644 tests/aleksey-xmldsig-01/xpointer-hmac.tmpl create mode 100644 tests/aleksey-xmldsig-01/xpointer-hmac.xml create mode 100644 tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.data create mode 100644 tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.xml create mode 100644 tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.data create mode 100644 tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.xml create mode 100644 tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.data create mode 100644 tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.xml create mode 100644 tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.data create mode 100644 tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.xml create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.data create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.xml create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.data create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.xml create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.data create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.xml create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.data create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.xml create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname.data create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname.xml create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.data create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.tmpl create mode 100644 tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.xml create mode 100644 tests/keys/README create mode 100644 tests/keys/ca2cert.der create mode 100644 tests/keys/ca2cert.pem create mode 100644 tests/keys/ca2key.pem create mode 100644 tests/keys/cacert.der create mode 100644 tests/keys/cacert.pem create mode 100644 tests/keys/cakey.pem create mode 100644 tests/keys/demoCA/cacert.pem create mode 100644 tests/keys/demoCA/careq.pem create mode 100644 tests/keys/demoCA/index.txt create mode 100644 tests/keys/demoCA/newcerts/01.pem create mode 100644 tests/keys/demoCA/newcerts/02.pem create mode 100644 tests/keys/demoCA/newcerts/03.pem create mode 100644 tests/keys/demoCA/newcerts/04.pem create mode 100644 tests/keys/demoCA/newcerts/05.pem create mode 100644 tests/keys/demoCA/private/cakey.pem create mode 100644 tests/keys/demoCA/serial create mode 100644 tests/keys/dsacert.der create mode 100644 tests/keys/dsacert.pem create mode 100644 tests/keys/dsakey.der create mode 100644 tests/keys/dsakey.p12 create mode 100644 tests/keys/dsakey.p8-der create mode 100644 tests/keys/dsakey.p8-pem create mode 100644 tests/keys/dsakey.pem create mode 100644 tests/keys/expiredcert.der create mode 100644 tests/keys/expiredcert.pem create mode 100644 tests/keys/expiredkey.der create mode 100644 tests/keys/expiredkey.p12 create mode 100644 tests/keys/expiredkey.pem create mode 100644 tests/keys/expiredreq.pem create mode 100644 tests/keys/gost2001ca.der create mode 100644 tests/keys/gost2001ca.pem create mode 100644 tests/keys/hmackey.bin create mode 100644 tests/keys/keys.xml create mode 100644 tests/keys/largersacert.der create mode 100644 tests/keys/largersacert.pem create mode 100644 tests/keys/largersakey.der create mode 100644 tests/keys/largersakey.p12 create mode 100644 tests/keys/largersakey.p8-der create mode 100644 tests/keys/largersakey.p8-pem create mode 100644 tests/keys/largersakey.pem create mode 100644 tests/keys/largersareq.pem create mode 100644 tests/keys/merlincert.pem create mode 100644 tests/keys/openssl.cnf create mode 100644 tests/keys/rsacert.der create mode 100644 tests/keys/rsacert.pem create mode 100644 tests/keys/rsakey.der create mode 100644 tests/keys/rsakey.p12 create mode 100644 tests/keys/rsakey.p8-der create mode 100644 tests/keys/rsakey.p8-pem create mode 100644 tests/keys/rsakey.pem create mode 100644 tests/merlin-c14n-three/Readme.txt create mode 100644 tests/merlin-c14n-three/c14n-0.txt create mode 100644 tests/merlin-c14n-three/c14n-1.txt create mode 100644 tests/merlin-c14n-three/c14n-10.txt create mode 100644 tests/merlin-c14n-three/c14n-11.txt create mode 100644 tests/merlin-c14n-three/c14n-12.txt create mode 100644 tests/merlin-c14n-three/c14n-13.txt create mode 100644 tests/merlin-c14n-three/c14n-14.txt create mode 100644 tests/merlin-c14n-three/c14n-15.txt create mode 100644 tests/merlin-c14n-three/c14n-16.txt create mode 100644 tests/merlin-c14n-three/c14n-17.txt create mode 100644 tests/merlin-c14n-three/c14n-18.txt create mode 100644 tests/merlin-c14n-three/c14n-19.txt create mode 100644 tests/merlin-c14n-three/c14n-2.txt create mode 100644 tests/merlin-c14n-three/c14n-20.txt create mode 100644 tests/merlin-c14n-three/c14n-21.txt create mode 100644 tests/merlin-c14n-three/c14n-22.txt create mode 100644 tests/merlin-c14n-three/c14n-23.txt create mode 100644 tests/merlin-c14n-three/c14n-24.txt create mode 100644 tests/merlin-c14n-three/c14n-25.txt create mode 100644 tests/merlin-c14n-three/c14n-26.txt create mode 100644 tests/merlin-c14n-three/c14n-27.txt create mode 100644 tests/merlin-c14n-three/c14n-3.txt create mode 100644 tests/merlin-c14n-three/c14n-4.txt create mode 100644 tests/merlin-c14n-three/c14n-5.txt create mode 100644 tests/merlin-c14n-three/c14n-6.txt create mode 100644 tests/merlin-c14n-three/c14n-7.txt create mode 100644 tests/merlin-c14n-three/c14n-8.txt create mode 100644 tests/merlin-c14n-three/c14n-9.txt create mode 100644 tests/merlin-c14n-three/signature.xml create mode 100644 tests/merlin-exc-c14n-one/Readme.txt create mode 100644 tests/merlin-exc-c14n-one/exc-signature.tmpl create mode 100644 tests/merlin-exc-c14n-one/exc-signature.xml create mode 100644 tests/merlin-xmldsig-twenty-three/Readme.txt create mode 100644 tests/merlin-xmldsig-twenty-three/certs/badb.der create mode 100644 tests/merlin-xmldsig-twenty-three/certs/badb.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/balor.der create mode 100644 tests/merlin-xmldsig-twenty-three/certs/balor.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/bres.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/ca.der create mode 100644 tests/merlin-xmldsig-twenty-three/certs/ca.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/lugh-cert.der create mode 100644 tests/merlin-xmldsig-twenty-three/certs/lugh-cert.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/lugh.der create mode 100644 tests/merlin-xmldsig-twenty-three/certs/lugh.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/macha.der create mode 100644 tests/merlin-xmldsig-twenty-three/certs/macha.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/merlin.der create mode 100644 tests/merlin-xmldsig-twenty-three/certs/merlin.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/morigu.pem create mode 100644 tests/merlin-xmldsig-twenty-three/certs/nemain.der create mode 100644 tests/merlin-xmldsig-twenty-three/certs/nemain.pem create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-external-dsa.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-external-dsa.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-keyname.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-keyname.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-crt.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-crt.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-is.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-is.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-ski.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-ski.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-sn.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature-x509-sn.xml create mode 100644 tests/merlin-xmldsig-twenty-three/signature.tmpl create mode 100644 tests/merlin-xmldsig-twenty-three/signature.xml create mode 100644 tests/merlin-xmlenc-five/Readme.txt create mode 100644 tests/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml create mode 100644 tests/merlin-xmlenc-five/decryption-transform-except.xml create mode 100644 tests/merlin-xmlenc-five/decryption-transform.xml create mode 100644 tests/merlin-xmlenc-five/dh0.p8 create mode 100644 tests/merlin-xmlenc-five/dh1.p8 create mode 100644 tests/merlin-xmlenc-five/dsa.p8 create mode 100644 tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.data create mode 100644 tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.data create mode 100644 tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.data create mode 100644 tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.data create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.data create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.data create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data create mode 100644 tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.data create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.data create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.data create mode 100644 tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml create mode 100644 tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.data create mode 100644 tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.tmpl create mode 100644 tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml create mode 100644 tests/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml create mode 100644 tests/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml create mode 100644 tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml create mode 100644 tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml create mode 100644 tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.tmpl create mode 100644 tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml create mode 100644 tests/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml create mode 100644 tests/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml create mode 100644 tests/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml create mode 100644 tests/merlin-xmlenc-five/ids.p12 create mode 100644 tests/merlin-xmlenc-five/keys.xml create mode 100644 tests/merlin-xmlenc-five/plaintext.xml create mode 100644 tests/merlin-xmlenc-five/rsa.p8 create mode 100644 tests/merlin-xmlenc-five/rsapriv.der create mode 100644 tests/merlin-xmlenc-five/rsapriv.p12 create mode 100644 tests/merlin-xmlenc-five/rsapriv.p8-der create mode 100644 tests/merlin-xmlenc-five/rsapriv.p8-pem create mode 100644 tests/merlin-xmlenc-five/rsapriv.pem create mode 100644 tests/merlin-xmlenc-five/rsapub.pem create mode 100644 tests/merlin-xpath-filter2-three/Readme.txt create mode 100644 tests/merlin-xpath-filter2-three/sign-spec-c14n-0.txt create mode 100644 tests/merlin-xpath-filter2-three/sign-spec-c14n-1.txt create mode 100644 tests/merlin-xpath-filter2-three/sign-spec-c14n-2.txt create mode 100644 tests/merlin-xpath-filter2-three/sign-spec.tmpl create mode 100644 tests/merlin-xpath-filter2-three/sign-spec.xml create mode 100644 tests/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt create mode 100644 tests/merlin-xpath-filter2-three/sign-xfdl.tmpl create mode 100644 tests/merlin-xpath-filter2-three/sign-xfdl.xml create mode 100644 tests/nss.supp create mode 100644 tests/nssdb/cert8.db create mode 100644 tests/nssdb/key3.db create mode 100644 tests/nssdb/secmod.db create mode 100644 tests/openssl.supp create mode 100644 tests/phaos-xmldsig-three/README.txt create mode 100644 tests/phaos-xmldsig-three/certs/crl.der create mode 100644 tests/phaos-xmldsig-three/certs/dsa-ca-cert.der create mode 100644 tests/phaos-xmldsig-three/certs/dsa-cert.der create mode 100644 tests/phaos-xmldsig-three/certs/enc-dsa-key.der create mode 100644 tests/phaos-xmldsig-three/certs/enc-rsa-key.der create mode 100644 tests/phaos-xmldsig-three/certs/hmackey.bin create mode 100644 tests/phaos-xmldsig-three/certs/rsa-ca-cert.der create mode 100644 tests/phaos-xmldsig-three/certs/rsa-cert.der create mode 100644 tests/phaos-xmldsig-three/document-stylesheet.xml create mode 100644 tests/phaos-xmldsig-three/document.b64 create mode 100644 tests/phaos-xmldsig-three/document.xml create mode 100644 tests/phaos-xmldsig-three/document.xsl create mode 100644 tests/phaos-xmldsig-three/signature-big.xml create mode 100644 tests/phaos-xmldsig-three/signature-dsa-detached.xml create mode 100644 tests/phaos-xmldsig-three/signature-dsa-enveloped.xml create mode 100644 tests/phaos-xmldsig-three/signature-dsa-enveloping.xml create mode 100644 tests/phaos-xmldsig-three/signature-dsa-manifest.xml create mode 100644 tests/phaos-xmldsig-three/signature-hmac-md5-c14n-enveloping.xml create mode 100644 tests/phaos-xmldsig-three/signature-hmac-sha1-40-c14n-comments-detached.xml create mode 100644 tests/phaos-xmldsig-three/signature-hmac-sha1-40-exclusive-c14n-comments-detached.xml create mode 100644 tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-comments-detached.xml create mode 100644 tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-enveloped.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-detached-b64-transform.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-detached-xpath-transform.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-bad-retrieval-method.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-retrieval-method.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-detached.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-digest-val.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-sig.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-enveloped.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-enveloping.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert-chain.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-issuer-serial.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-ski.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-subject-name.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-manifest.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-xpath-transform-enveloped.xml create mode 100644 tests/phaos-xmldsig-three/signature-rsa-~x509-data-crl.xml create mode 100755 tests/testDSig.sh create mode 100755 tests/testEnc.sh create mode 100755 tests/testKeys.sh create mode 100755 tests/testRes.sh create mode 100755 tests/testXKMS.sh create mode 100644 tests/xmldsig2ed-tests/c14n11/xml-base-input.xml create mode 100644 tests/xmldsig2ed-tests/defCan-1.tmpl create mode 100644 tests/xmldsig2ed-tests/defCan-1.xml create mode 100644 tests/xmldsig2ed-tests/defCan-2.tmpl create mode 100644 tests/xmldsig2ed-tests/defCan-2.xml create mode 100644 tests/xmldsig2ed-tests/defCan-3.tmpl create mode 100644 tests/xmldsig2ed-tests/defCan-3.xml create mode 100644 tests/xmldsig2ed-tests/xpointer-1-SUN.xml create mode 100644 tests/xmldsig2ed-tests/xpointer-2-SUN.xml create mode 100644 tests/xmldsig2ed-tests/xpointer-3-SUN.xml create mode 100644 tests/xmldsig2ed-tests/xpointer-4-SUN.xml create mode 100644 tests/xmldsig2ed-tests/xpointer-5-SUN.xml create mode 100644 tests/xmldsig2ed-tests/xpointer-6-SUN.xml create mode 100644 win32/Makefile.msvc create mode 100644 win32/README.txt create mode 100644 win32/configure.js create mode 100644 win32/libxmlsec.def.src create mode 100644 win32/mycfg.bat create mode 100644 xmlsec-config.in create mode 100644 xmlsec-gnutls.pc.in create mode 100644 xmlsec-nss.pc.in create mode 100644 xmlsec-openssl.pc.in create mode 100644 xmlsec.pc.in create mode 100644 xmlsec.spec.in create mode 100644 xmlsec1-config create mode 100644 xmlsec1-gnutls.pc create mode 100644 xmlsec1-nss.pc create mode 100644 xmlsec1-openssl.pc create mode 100644 xmlsec1.m4 create mode 100644 xmlsec1.pc create mode 100644 xmlsec1.spec create mode 100644 xmlsec1Conf.sh create mode 100644 xmlsecConf.sh.in diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..3003d13 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,8 @@ +Aleksey Sanin + +Windows port: Igor Zlatkovic +Debian port: John Belmonte +xmlsec-nss: Tej Arora , AOL Inc. +xmlsec-mscrypto: Wouter Ketting , Cordys R&D BV +GOST support: Dmitry Belyavsky , Cryptocom LTD (http://www.cryptocom.ru) + diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..fb94427 --- /dev/null +++ b/COPYING @@ -0,0 +1,59 @@ +xmlsec, xmlsec-openssl, xmlsec-gnutls libraries +------------------------------------------------------------------------------ + +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Aleksey Sanin shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. + + +xmlsec-nss library +------------------------------------------------------------------------------ +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. +Copyright (c) 2003 America Online, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Portions of the Software were created using source code and/or APIs +governed by the Mozilla Public License (MPL). The MPL is available +at http://www.mozilla.org/MPL/MPL-1.1.html. The MPL permits such +portions to be distributed with code not governed by MPL, as long +as the requirements of MPL are fulfilled for such portions. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Aleksey Sanin shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..b63503c --- /dev/null +++ b/ChangeLog @@ -0,0 +1,1684 @@ +2009-09-05 Aleksey Sanin + * preparation for 1.2.14 release + +2009-11-05 Aleksey Sanin + * Use installed ltdl on *nix and native code on Windows + +2009-10-25 Aleksey Sanin + * Fix --with-libxslt-src (patch from Roumen) + +2009-09-12 Aleksey Sanin + * Preparation for 1.2.13 release + +2009-08-24 Aleksey Sanin + * Fix XML dump format + +2009-08-06 Aleksey Sanin + * fix build for openssl 1.0 (based on patch from Roumen Petrov) + * cleanup test invocation scripts + * cleanup configure.in + +2009-07-29 Aleksey Sanin + * fix a couple minor issues (based on patch from Arfrever + Frehtes Taifersar Arahesis) + +2009-07-17 Aleksey Sanin + * preparation for 1.2.13 release + +2009-07-14 Aleksey Sanin + * increase default min hmac size to 80 bits + * added support for --with-libxml-src and --with-libxslt-src + ./configure options + +2009-06-25 Aleksey Sanin + * implemented c14n 1.1 transform + tests + +2009-06-15 Aleksey Sanin + * configure.in docs/download.html docs/index.html docs/news.html + include/xmlsec/version.h: preparation for new 1.2.12 release + +2009-06-15 Aleksey Sanin + * added support for the GOST implemented by Russian Crypto Pro CSP + (patch from Dennis Prochko) + +2009-06-15 Aleksey Sanin + * fixed HMAC vuln with small values of HMAC length + +2009-06-13 Aleksey Sanin + * fixing gnutls detection (bug #585629) + +2009-06-09 Aleksey Sanin + * update SVN to GIT references in docs + +2009-06-09 Aleksey Sanin + * adding configurable Base64 line length + +2008-09-10 Aleksey Sanin + * fixing bug #501315 (patch from Antony Dovgal) + +2008-08-26 Aleksey Sanin + * apps/xmlsec.c: fix integer division (patch from Mikhail) + +2008-06-10 Aleksey Sanin + * src/mscrypto/x509.c src/openssl/x509.c src/nss/x509.c: fix crash + in the error reporting (based on patch from Frank Gross) + +2008-06-04 Aleksey Sanin + * src/templates.c src/keyinfo.c src/xmltree.c src/mscrypto/x509.c + src/openssl/x509.c src/nss/x509.c include/xmlsec/xmltree.h: + added new function xmlSecNodeEncodeAndSetContent for encoding + special chars in the node content (bug reported by Cliff Hones) + +2008-06-04 Aleksey Sanin + * src/xmltree.c, src/xmlenc.c, include/xmlsec/xmltree.h, include/xmlsec/xmlenc.h: + add an option to return the replaced (encrypted) node(s) to the caller + (based on the patch from Frank Gross) + +2008-05-23 Aleksey Sanin + + * src/mscrypto/app.c: fix MS certificates ref counting + +2007-11-06 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html + include/xmlsec/version.h: preparation for new 1.2.11 release + +2007-07-19 Aleksey Sanin + + * bug #454397 - mingw build: added missing files + +2007-07-19 Aleksey Sanin + + * bug #454397 - mingw build: normal way to pass def file to linker + (patch from Roumen Petrov) + +2007-07-17 Aleksey Sanin + + * bug #454397 - mingw build: (cross-compilation) and several + minor cleanups (patch from Roumen Petrov) + +2007-06-16 Aleksey Sanin + + * configure.in: configure fixes (patch from Roumen Petrov) + +2007-06-06 Aleksey Sanin + + * src/mscrypto/*: better support for non micorsoft CSP's (patch from + Wouter and Ed Shallow) + +2007-02-12 Aleksey Sanin + + * Makefile.am xmlsec1.m4: automake macro for xmlsec1 (from Heiko Ronsdorf) + +2006-09-04 Aleksey Sanin + + * include/xmlsec/openssl/app.h src/openssl/app.c src/openssl/x509vfy.c: + added xmlSecOpenSSLAppKeysMngrAddCertsFile() function + (David Norrel) + +2006-08-15 Aleksey Sanin + + * src/openssl/x509vfy.c: fixed loading certs from a directory + during openssl x509 store init (based on idea from David Norrel) + +2006-06-12 Aleksey Sanin + + * include/xmlsec/templates.h, src/templates.c, src/xmltree.c: + support for custom namespaces prefixes for xmldisg namespace + (based on patch from Barry Ferg) + +2006-06-12 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html + include/xmlsec/version.h: preparation for new 1.2.10 release + +2006-06-12 Aleksey Sanin + + * xmlsec-config.in: lib64/ folder patch from Daniel + +2006-06-08 Aleksey Sanin + + * config.h.in configure.in xmlsec-nss.pc.in: support different + packages for NSPR/NSS + +2006-05-20 Aleksey Sanin + Added xmlSecOpenSSLX509StoreAdoptCrl() function + +2006-03-10 Aleksey Sanin + + * src/nss/app.c, src/openssl/x509vfy.c, src/xmldsig.c, + src/xmlsec-ltdl.c, src/xmlsec-ltdl.patch: cleanup Coverity + complaints + +2006-02-26 Aleksey Sanin + * apps/xmlsec.c tests/testDSig.sh: added an ability to skip + tests for transforms not available in given built + * tests/: added GOST test from Dmitry Belyavsky + +2006-02-16 Aleksey Sanin + * src/mscrypto/certkeys.c: fixed memleak in msrypto + +2006-02-14 Aleksey Sanin + * include/xmlsec/mscrypto/x509.h src/mscrypto/x509vfy.h: + added an option for disabling system trusted certs + for mscrypto store (based on patch from Dmitry Belyavsky) + +2006-02-10 Aleksey Sanin + * authors docs/authors.html + include/xmlsec/app.h include/xmlsec/private.h + include/xmlsec/strings.h include/xmlsec/mscrypto/crypto.h + include/xmlsec/mscrypto/symbols.h src/app.c src/dl.c + src/strings.c src/transforms.c src/mscrypto/certkeys.c + src/mscrypto/crypto.c src/mscrypto/digests.c + src/mscrypto/signatures.c src/skeleton/crypto.c: + added support for GOST94 for digests and + GOST 2001 keys/signatures: mscrypto only (patch from + Dmitry Belyavsky) + +2005-12-20 Aleksey Sanin + + * src/mscrypto/x509vfy.c: check MSCrypto store for certs + (patch from Dmitry Belyavsky); replace tabs with spaces + +2005-12-15 Aleksey Sanin + + * include/xmlsec/templates.h src/templates.c: functions + for adding X509IssuerName and X509SerialNumber nodes + to the template (patch from Dmitry Belyavsky) + +2005-11-14 Aleksey Sanin + + * configure.in: fixing shrext vs. shrext_cmds conflict + +2005-09-25 Aleksey Sanin + * src/nss/pkikeys.c: fixing xmlsec-nss crash + * configure.in: change crypto libs order to be openssl/nss/gnutls + +2005-07-12 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html: + preparation for new 1.2.9 release + +2005-07-12 Aleksey Sanin + + * src/xmltree.c: fixing a problem with namespaces in the + nodes created by "template" functions + +2005-07-10 Aleksey Sanin + + * src/openssl/evp.c: added hack from Erwann ABALEA: + OpenSSL ENGINE keys are always private since we can't query + engine and do real check + +2005-07-10 Aleksey Sanin + + * docs/* include/* src/* tests/*: added support for + RSA-MD5/RIPEMD160/SHA224/SHA256/SHA384/SHA512 for OpenSSL 0.9.8 + +2005-07-10 Aleksey Sanin + + * configure.in docs/ include/ src/ tests/: implemented + SHA224/256/384/512, HMAC-SHA224/256/384/512, MD5 for OpenSSL 0.9.8 + +2005-07-10 Aleksey Sanin + + * configure.in docs/xmldsig.html docs/xmlenc.html + include/xmlsec/app.h include/xmlsec/private.h include/xmlsec/strings.h + include/xmlsec/openssl/crypto.h include/xmlsec/openssl/symbols.h + src/app.c src/dl.c src/strings.c: preparations for SHA224/256/384/512 + and friends + +2005-07-09 Aleksey Sanin + + * configure.in tests/aleksey-xmldsig-01/* tests/keys/* + tests/merlin-xmldsig-twenty-three/signature.tmpl + tests/testDSig.sh: updating test certificates for picky + OpenSSL 0.9.8 + + +2005-07-08 Aleksey Sanin + * configure.in src/openssl/x509vfy.c: initial support + for OpenSSL 0.9.8 + +2005-05-12 Aleksey Sanin + + * src/openssl/app.c: fixed "disable-x509" build option + (patch from Bernd Becker) + +2005-05-11 Aleksey Sanin + + * src/openssl/signatures.c: fixed "disable-dsa" build option + (patch from Bernd Becker) + +Wed 6 Apr 2005 00:18:21 CEST Igor Zlatkovic + + * .cvsignore: added Eclipse project files + +2005-03-31 Aleksey Sanin + + * src/xmltree.c: fixing warning from Solaris (bug #172201) + +2005-03-30 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html + include/xmlsec/version.h: preparing new release 1.2.8 + +Tue 22 Mar 2005 20:10:19 CET Igor Zlatkovic + + * apps/xmlsec.c: changed the type of the --depth parameter to + number. + +2005-03-06 Aleksey Sanin + + * include/xmlsec/nss/crypto.h src/nss/Makefile.am src/nss/crypto.c + src/nss/keytrans.c src/nss/kt_rsa.c: better rsa pkcs transform + using nss wrap/unwrap code (based on the OO.org patch) + +2005-03-06 Aleksey Sanin + + * include/xmlsec/nss/crypto.h src/nss/app.c + src/nss/crypto.c src/nss/x509.c: fixed nss initialization + problem + +2005-03-05 Aleksey Sanin + + * src/nss/pkikeys.c: check that input public and private + keys have the same type (based on the OO.org patch) + +2005-03-05 Aleksey Sanin + + * src/nss/digests.c src/nss/hmac.c src/nss/pkikeys.c + src/nss/signatures.c src/nss/x509.c src/nss/x509vfy.c: + print more detailed error message (based on the OO.org patch) + +2005-03-04 Aleksey Sanin + + * src/mscrypto/x509vfy.c: fixed cert search (based on the OO.org patch) + +2005-03-01 Aleksey Sanin + + * src/mscrypto/app.c: added stubs for adding keys to mscrypto + keys manager from ms key handle + +2005-02-28 Aleksey Sanin + + * src/mscrypto/certkeys.c: WinNT 4.0 support (based on the OO.org patch) + +2005-02-28 Aleksey Sanin + + * src/mscrypto/certkeys.c: preparation for WinNT 4.0 support + +2005-02-28 Aleksey Sanin + + * src/mscrypto/x509.c: enable private key search for + a given certificate (based on the OO.org patch) + +2005-02-27 Aleksey Sanin + + * src/mscrypto/certkeys.c: use default context when + getting public key from a cert (based on the OO.org patch) + * src/mscrypto/x509vfy.c: search both trusted and untrusted + cert stores when cert with given parameters is needed or + when certs chain is constructed (based on the OO.org patch) + +2005-02-27 Aleksey Sanin + + * include/xmlsec/mscrypto/app.h include/xmlsec/mscrypto/x509.h + src/mscrypto/app.c src/mscrypto/x509vfy.c: + added function to add custom MS cert stores + to the xmlsec-mscrypto default keys manager + (based on the OO.org patch). + +2005-02-22 Aleksey Sanin + + * docs/*: updated docs + +2005-02-22 Aleksey Sanin + + * docs/index.html docs/news.html include/xmlsec/templates.h + src/templates.c: added functions to create node + children in the signature template + +2005-02-22 Aleksey Sanin + + * src/bn.c src/mscrypto/crypto.c src/mscrypto/x509.c + src/mscrypto/x509vfy.c tests/testDSig.sh + tests/aleksey-xmldsig-01/x509data-sn-test.tmpl + tests/aleksey-xmldsig-01/x509data-sn-test.xml + tests/keys/README tests/keys/*: support for + negative serial numbers, mscrypto cleanup + +2005-02-21 Aleksey Sanin + + * docs/* docs/api/* man/*: updated docs + +2005-02-21 Aleksey Sanin + + * configure.in, docs/download.html, docs/index.html, docs/news.html, + include/xmlsec/version.h: preparing new release 1.2.7 + +2005-01-26 Aleksey Sanin + + * src/bn.c: fixed xmlSecBnFromString function (patch from Michael Mi) + +2004-11-08 Aleksey Sanin + + * include/xmlsec/keysmngr.h src/keysmngr.c: added + xmlSecSimpleKeysStoreGetKeys() function + +2004-11-07 Aleksey Sanin + + * src/xmltree.c: fixed xmlSecGenerateID + +2004-10-27 Aleksey Sanin + + * src/dl.c: set dl memory functions before initialization (from + Daniel Vogelheim patch) + +2004-10-14 Aleksey Sanin + + * src/openssl/x509vfy.c: fixed bug #155329 (parsing quoted values + in the certificate subject) + +2004-09-18 Aleksey Sanin + * config.h.in configure.in inlude/xmlsec/private.h src/xmltree.c: + use xmlParseInNodeContext function to parse encrypted text in + xmlSecReplaceNodeBuffer, this bumps libxml2 requirements to 2.6.12 + (bug #142358) + +2004-08-25 Aleksey Sanin + + * configure.in docs/download.html docs/index.html + docs/news.html include/xmlsec/version.h: preparing + new release + +2004-06-21 Aleksey Sanin + + * include/xmlsec/app.h include/xmlsec/gnutls/app.h + src/app.c src/gnutls/app.c src/skeleton/app.c: added functions + to load keys and certificates from memory (Bernd Becker) + +2004-06-21 Aleksey Sanin + + * src/bn.c: keep a '0' character when we remove '0' from the beggining + +2004-06-17 Aleksey Sanin + + * src/xmlenc.c: added NULL check + * src/xmltree.c: fixed memory leak + +2004-06-16 Aleksey Sanin + + * Fixed xmlSecTmplNodeWriteNsList() function + +2004-06-09 Igor Zlatkovic + + * win32/configure.js win32/Makefile.* minor changes for the new + layout of the Windows binary package + +2004-05-13 Aleksey Sanin + + * examples/xmldsigverify.c: disable extended debug output + (fixed a hole found by Pawel) + +2004-04-19 Aleksey Sanin + + * src/nodeset.c: fixing C14N bug with processing namespaces from attributes + +2004-04-13 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html: + 1.2.5 release preparation + +2004-03-16 Aleksey Sanin + + * include/xmlsec/strings.h src/mscrypto/certkeys.c + src/nss/pkikeys.c src/openssl/evp.c src/strings.c: added J node + for DSAKeyValue + * tests/phaos-xmldsig-three/* tests/testDSig.sh: added new + phaos-xmldsig-three XMLDSig tests vectors + +Mon Feb 23 17:44:29 2004 Aleksey Sanin + + * examples/xkms-server.c: finished xkms-server example + +Thu Feb 19 16:01:38 2004 Aleksey Sanin + + * examples/.cvsignore examples/Makefile examples/Makefile.w32 + examples/xkms-server.c: started work on xkms server example + +Thu Feb 19 12:32:55 2004 Aleksey Sanin + + * include/xmlsec/xkms.h include/xmlsec/xmltree.h src/xkms.c + src/xmlsec.c src/xmltree.c: added ID attribute generation for xkms + * tests/aleksey-xkms-01/* tests/testXKMS.sh: modified xkms tests + to ignore Id attribute in comparison + +Fri Feb 13 00:05:02 2004 Aleksey Sanin + + * configure.in include/xmlsec/private.h: fixed libxslt configuration + problem + +Mon Feb 9 08:40:26 2004 Aleksey Sanin + + * src/xmltree.c: fixed bug with encrypting nodes with + no content (reported by Tomas Seiger) + +Sat Feb 7 22:42:11 2004 Aleksey Sanin + + * include/xmlsec/* src/* tests/*: added XKMS SOAP 1.2 bindings + +Thu Feb 5 23:37:24 2004 Aleksey Sanin + + * apps/xmlsec.c include/* src/* tests/*: added XKMS SOAP 1.1 bindings + +Thu Feb 5 16:26:40 2004 Aleksey Sanin + + * apps/xmlsec.c: added new params for xkms + * include/xmlsec/Makefile.am include/xmlsec/private/xkms.h: + added new private xmlsec headers folder + * include/xmlsec/xmltree.h src/xmltree.c: created code for + reading/writing qname values + * include/xmlsec/strings.h include/xmlsec/soap.h + src/strings.h src/soap.c src/Makefile.am: created basic soap + messages parsing framework + * include/xmlsec/xkms.h src/xkms.c: added xkms request format + enum and parameters + * tests/aleksey-xkms-01/ tests/testXKMS.sh: added new tests + +Wed Feb 4 01:26:51 2004 Aleksey Sanin + + * apps/xmlsec.c: created new --xkms-format parameter + (plain/soap-1.1/soap-1.2) + * configure.in xmlsec.spec.in include/xmlsec/Makefile.am + include/xmlsec/private/*: move internal xkms declarations to + a newly created "xmlsec/private" includes folder + * include/xmlsec/strings.h include/xmlsec/xkms.h + src/strings.c src/xkms.c tests/testXKMS.sh: preparation for soap + request/response suppport + +Tue Feb 3 22:44:36 2004 Aleksey Sanin + + * apps/xmlsec.c: combined xkms server commands into one + * include/xmlsec/* src/*: added ValidateRequest/ValidateResult + StatusRequest/StatusResult and CompoundRequest/CompoundResult + * tests/aleksey-xkms-01/* tests/testXKMS.sh: added new negative + test cases + +Tue Feb 3 18:12:10 2004 Aleksey Sanin + + * apps/xmlsec.c: added xkms server "expected service" param + * include/xmlsec/* src/*: created errors fallback when processing + xkms requests + * tests/aleksey-xkms-01/* tests/testXKMS.sh: added more negative + test cases + +Tue Feb 3 01:40:29 2004 Aleksey Sanin + + * configure.in: tweaked my debug environment + * include/xmlsec/xmltree.h src/xmltree.c: created string2int and string2bitmap + helper klasses + * include/xmlsec/keys.h src/keyinfo.c src/keys.c: added KeyUseWith list + to the KeyReq object + * include/xmlsec/strings.h src/strings.c: added some xkms strings + * include/xmlsec/xkms.h src/xkms.c: LocateRequest (except signatures) + and most of LocateResult + +Mon Feb 2 16:55:13 2004 Aleksey Sanin + + * include/xmlsec/xkms.h src/strings.c src/xkms.c: read xkms RequestAbstractType + and write xkms ResponseQbstractType (no signatures) + * Makefile.am tests/testXKMS.sh: created check-xkms target and script + * tests/aleksey-xkms-01: even more keys (der/pkcs12 formats), + "key not found" tests + +Mon Feb 2 13:12:07 2004 Aleksey Sanin + + * apps/xmlsec.c include/xmlsec/xkms.h include/xmlsec/xmlsec.h src/xkms.c: + updated xkms schemas from xkms 2.0, renamed a couple functions + + * tests/aleksey-xkms-01: copied new examples from xkms 2.0 spec + and created keys for using with these examples + +Mon Jan 26 11:48:42 2004 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html + include/xmlsec/version.h: preparation for 1.2.4 release + * docs/related.html: added link to PyXmlSec project + +Fri Jan 23 16:30:38 2004 Aleksey Sanin + + * docs/xmlsec-man.html man/xmlsec1-config.1 man/xmlsec1.1 + xmlsec-config.in: make xmlsec1-config man page generic + +Fri Jan 23 09:34:10 2004 Aleksey Sanin + + * configure.in: and one more config bug from John + +Thu Jan 22 16:24:44 2004 Aleksey Sanin + + * configure.in: and one more gnutls configuration bug from John + +Thu 22 Jan 2004 10:56:33 AM PST + + * src/buffer.c src/list.c: don' pass NULL to xmlRealloc() + +Mon Jan 12 13:05:18 2004 Aleksey Sanin + + * examples/encrypt3.c include/xmlsec/crypto.h include/xmlsec/nss: make + exmaples compile with nss (again reported by John) + +Mon Jan 12 10:30:24 2004 Aleksey Sanin + + * xmlsec-config.in: fixed nss configuration bug (reproted by John) + +Sat Jan 10 19:03:17 2004 Aleksey Sanin + + * configure.in src/gnutls/ciphers.c src/gnutls/digests.c src/gnutls/hmac.c: + restored support for gnutls < 1.0 by request from John + +Mon Jan 5 12:55:44 2004 Aleksey Sanin + + * configure.in docs/download.html docs/index.html + docs/news.html docs/xmlsec-man.html include/xmlsec/version.h + man/xmlsec1-config.1 man/xmlsec1.1: preparing 1.2.3 release + +Mon Jan 5 12:42:52 2004 Aleksey Sanin + + * configure.in src/gnutls/ciphers.c src/gnutls/digests.c + src/gnutls/hmac.c: upgraded gnutls to 1.0.4 (bug #129190) + +Thu 13 Nov 2003 08:19:55 AM PST + + * src/mscrypto/app.c: fixed non-initialized values (Glenn) + +2003-11-11 Aleksey Sanin + + * docs/download.html docs/index.html docs/news.html + man/xmlsec1.1: preparing 1.2.2 release + +Mon Nov 10 21:22:36 2003 Aleksey Sanin + + * src/bn.c: fixed xmlSecBnToDecString problem (reported by Edward) + +Thu Nov 6 22:52:57 2003 Aleksey Sanin + + * configure.in: use pkgconfig for configuration if possible + (based on Daniel's idea) + * include/xmlsec/private.h include/xmlsec/xmltree.h + src/errors.c src/openssl/app.c: made xmlSecStrPrintf and + xmlSecStrVPrintf declarations private to xmlsec to fix + examples build failure + +Wed Nov 5 14:19:11 2003 Aleksey Sanin + + * configure.in: fixed "--with-html-doc" option (patch from Daniel) + +Wed Nov 5 13:39:47 2003 Aleksey Sanin + + * configure.in: fixed "--with-mozilla-ver" option for ./configure + script (patch from Daniel) + +Wed Oct 29 07:55:17 2003 Aleksey Sanin + + * configure.in include/xmlsec/xmltree.h src/dl.c + src/errors.c src/mscrypto/crypto.c src/nss/crypto.c + src/openssl/app.c: fixed snprintf and vsnprintf warnings (bug #125684) + +Mon Oct 20 19:34:35 2003 Aleksey Sanin + + * configure.in: created "--with-html-dir" option + to specify docs installation path + +Mon Oct 20 08:40:46 2003 Aleksey Sanin + + * configure.in: load correct static openssl library when + more than one one openssl version is available (patch + from Roumen, bug #124534) + +Mon Oct 13 19:43:52 2003 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html + include/xmlsec/version.h: new 1.2.1 release + +Mon Oct 13 19:29:55 2003 Aleksey Sanin + + * configure.in docs/Makefile.am: added support for XMLSEC_DOCDIR + environment variable to ./configure script and removed *.sgml + files from docs installation + +Sat Oct 11 21:16:54 2003 Aleksey Sanin + + * include/xmlsec/strings.h include/xmlsec/templates.h + src/strings.c src/templates.c: added template functions + for creating and + nodes (based on patch from Wouter) + +Thu 09 Oct 2003 03:59:02 PM PDT Aleksey Sanin + + * src/nodeset.c src/transforms.c: don't ignore nodes on the document + root element level (bug #124245) + +Sun Oct 5 01:05:30 2003 Aleksey Sanin + + * include/xmlsec/transforms.h include/xmlsec/xmldsig.h + src/transforms.c src/xmldsig.c src/xpath.c apps/xmlsec.c + docs/faq.html: implemented Visa 3D hack to process some + URI attributes without XPath/XInclude engines + +Thu Oct 2 10:28:59 2003 Aleksey Sanin + + * src/dl.c src/openssl/app.c src/openssl/x509vfy.c: fixing + compilation warnings reported in bug #123692 + +Wed Oct 1 19:05:13 2003 Aleksey Sanin + + * src/gnutls/README src/mscrypto/README src/nss/README + src/openssl/README: updated README files + +Wed 01 Oct 2003 09:11:58 AM PDT Aleksey Sanin + + * include/xmlsec/dl.h: moved closing bracket for "extern "C" + a couple lines up to be in the right place (bug #123640) + +Mon 29 Sep 2003 07:27:14 PM PDT Aleksey Sanin + + * docs/download.html docs/index.html docs/news.html: preparation + for 1.2.0 release + +Mon 29 Sep 2003 07:07:07 PM PDT Aleksey Sanin + + * src/mscrypto: 2nd code review pass + +Sat Sep 27 18:31:20 2003 Aleksey Sanin + + * include/xmlsec/openssl/crypto.h src/openssl/app.c + src/openssl/crypto.c src/openssl/x509vfy.c: added "default trusted certs" + folder and make it an input parameter to xmlSecOpenSSLAppInit method. + * examples/xmldsigverify.c: make use of this change + +Sat 27 Sep 2003 05:23:41 PM PDT Aleksey Sanin + + * examples/ docs/tests/ docs/ : created new xmldsigverify script + and upgraded tests + +Fri 26 Sep 2003 05:27:08 PM PDT Aleksey Sanin + * src/mscrypto/ include/xmlsec/mscrypto/ : added API documentation + from Wouter + * docs/ : re-run the docs generation to pickup the new documentation + +Thu Sep 25 23:10:19 2003 Aleksey Sanin + + * docs/authors.html: added "authors and contributors" page + * docs/ man/: regenerated docs to include xmlsec-mscrypto and link to new + authors.html page + * include/ src/: api reference documentation updates + +Thu Sep 25 20:47:11 2003 Aleksey Sanin + + * include/xmlsec/keysdata.h: introduced new cert-pem and cert-der + key formats (public key in a certificate) + * include/xmlsec/nss/app.h nclude/xmlsec/nss/x509.h + include/xmlsec/openssl/app.h include/xmlsec/openssl/x509.h + src/nss/app.c src/nss/crypto.c src/nss/x509.c + src/openssl/app.c src/openssl/x509.c + src/mscrypto/app.c: implemented support for new formats + in OpenSSL, NSS and MSCrypto + * apps/xmlsec.c: added "--pubkey-cert-pem" and "--pubkey-cert-der" options + * tests/testDSig.sh tests/merlin-xmldsig-twenty-three/certs/lugh-cert.der: + use certificate for public keys + +Thu 25 Sep 2003 05:51:37 PM PDT Aleksey Sanin + + * include/ src/ win32/ docs/ Makefile.am configure.in: merging + from XMLSEC_MSCRYPTO_083103 branch - new xmlsec-mscrypto library + implemented by Wouter, general functions for reading keys and certs + from memory (openssl/nss/mscrypto), default error callback for nss, + moving private keys in 01-phaos-enc tests to pkcs12 file. + +Thu Sep 25 11:39:22 2003 Aleksey Sanin + + * apps/xmlsec.c: added root nodes namespaces registration + for "--node-xpath" command line option processing (by request + from Jan-Olof) + +Sat 20 Sep 2003 11:19:14 AM PDT Aleksey Sanin + + * HACKING: added more info about hacking with xmlsec + +Tue Sep 16 11:28:03 2003 Aleksey Sanin + + * docs/download.html docs/index.html docs/news.html: preparation + for 1.1.2 release + +Tue Sep 16 02:28:41 2003 Aleksey Sanin + + * src/Makefile.am: link xmlsec lib with dl librarias + +Sun 14 Sep 2003 02:13:51 AM PDT Aleksey Sanin + + * tests/testEnc.sh: added "--session-key " paramater + to all tests with (problem reported by Wouter) + +Fri 12 Sep 2003 09:43:21 PM PDT Aleksey Sanin + + * include/xmlsec/buffer.h src/buffer.c: added functions to convert + binary buffer to hex string and vice versa (based on patch from Remy) + +Thu Sep 11 17:08:15 2003 Aleksey Sanin + + * src/Makefile.am src/dl.c src/xmlsec-ltdl.h src/xmlsec-ltdl.patch + win32/Makefile.msvc: use ltdl on Windows too + +Thu Sep 11 16:39:18 2003 Aleksey Sanin + + * src/ltdl.* src/Makefile.am: upgraded to ltdl from libtool 1.4 + +Wed Sep 10 18:12:52 2003 Aleksey Sanin + + * xmlsec.spec.in: separated xmlsec and xmlsec-devel RPM + pacakges into xmlsec, xmlsec-openssl, xmlsec-devel and xmlsec-openssl-devel + +Wed Sep 10 13:19:10 2003 Aleksey Sanin + + * include/xmlsec/version.h include/xmlsec/version.h.in + include/xmlsec/xmlsec.h src/xmlsec.c + src/gnutls/crypto.c src/nss/crypto.c + src/openssl/crypto.c src/skeleton/crypto.c: + apps/xmlsec.c examples/*.c + docs/api/chapters/init-and-shutdown.sgml: implemented new + function and macroses to check loaded xmlsec library + version from xmlsec-crypto libraries and apps + +Wed Sep 10 12:36:17 2003 Aleksey Sanin + + * src/dl.c win32/Makefile.msvc win32/mycfg.bat: implemented + dynamic xmlsec-crypto libraries loading for Windows + +Wed Sep 10 00:02:55 2003 Aleksey Sanin + + * Makefile.am configure.in xmlsec-config.in xmlsec.pc.in: added + support for xmlsec-crypto DL mode in xmlsec.pc and xmlsec-config files + + * examples/*: added support for xmlsec-crypto DL mode to examples + + * include/xmlsec/app.h include/xmlsec/private.h + include/xmlsec/version.h include/xmlsec/x509.h + src/app.c src/x509.c src/xkms.c: new API reference documentation + + * docs/* man/* : included info about xmlsec-crypto DL mode in + tutorial and re-build docs to include new api reference docs + + * tests/testDSig.sh tests/testEnc.sh tests/testKeys.sh: added + additional information printout + + * win32/Makefile.msvc: excluded XKMS from windows builds + +Tue Sep 9 16:14:01 2003 Aleksey Sanin + + * win32/Makefile.msvc win32/configure.js win32/mycfg.bat win32/mycfg_nss.bat: + windows build cleanup (bug #121579) + +Tue Sep 9 12:52:00 2003 Aleksey Sanin + + * Makefile.am apps/* configure.in include/* src/* tests/*: implemented + loading xmlsec-crypto libraries as plugins (bug #121579) + * win32/: change build to allow building of more than one + xmlsec-crypto library (bug #121579) + +Sun 24 Aug 2003 05:20:14 PM PDT Aleksey Sanin + + * docs/faq.html: upgraded licenses FAQ section to include + information about xmlsec-nss and xmlsec-gnutls + +Fri Aug 22 11:06:28 2003 Aleksey Sanin + + * win32/Makefile.msvc: fixed linkinig problem on Windows (bug #120498) + +Fri Aug 22 09:54:04 2003 Aleksey Sanin + + * configure.in include/xmlsec/errors.h: determine if __FUNCTION__ or + __func__ are defined from ./configure script. This should fix bug #120469 + and prevent this problem from happening in the future. + * src/c14n.c src/openssl/kt_rsa.c src/transforms.c: fixed minor + warnings because of using strcmp, strchr, etc. functions with xmlChar* + variables by switching to xmlStrcmp, xmlStrchr, etc. (also bug #120469) + +Wed Aug 20 21:26:00 2003 Aleksey Sanin + + * configure.in docs/api/sgml/version.sgml docs/api/xmlsec-version.html + docs/index.html docs/news.html docs/xmlsec-man.html + include/xmlsec/version.h man/xmlsec1-config.1 man/xmlsec1.1: new 1.1.1 + release preparation + * docs/*: re-run docs generation/formatting + +Fri Aug 8 22:18:45 2003 Aleksey Sanin + + * src/xpath.c: register namespaces before processing XPointer + expression in the URI attribute (bug #119462, reported by Steve) + +Fri Aug 8 09:06:53 2003 Aleksey Sanin + + * include/xmlsec/keys.h src/keys.c: added xmlsec-core functions to + read keys from memory (patch from Joachim) + +Thu Aug 7 11:38:43 2003 Aleksey Sanin + + * include/xmlsec/openssl/app.h src/openssl/app.c: added functions + to read keys and certs in xmlsec-openssl from memory and BIOs + (bug #119350, patch based on the code from Joachim) + +Wed Aug 6 08:57:20 2003 Aleksey Sanin + + * Makefile.am configure.in xmlsec-gnutls.pc.in xmlsec-nss.pc.in + xmlsec-openssl.pc.in xmlsecConf.sh.in: + config bug fixing and improvements from Roumen + +Mon Aug 4 19:39:52 2003 Aleksey Sanin i + + * include/xmlsec/Makefile.am include/xmlsec/x509.h src/Makefile.am + src/x509.c src/openssl/x509.c win32/Makefile.msvc: moved code for + reading X509Data node content from xmlsec-openssl to xmlsec-core + to allow sharing with xmlsec-nss + * src/nss/README src/nss/x509.c: added X509Data templates support + for xmslec-nss (bug #118636, based on patch from Tej) + +Mon 04 Aug 2003 04:06:02 PM PDT Aleksey Sanin + + * docs: rebuilding docs to get nss api reference + +Mon Aug 4 14:47:02 2003 Aleksey Sanin + + * Makefile.am xmlsec.spec.in: added HACKING file to the distribution + * docs/download.html docs/index.html docs/news.html: updated docs + for new 1.1.0 release + +Wed Jul 30 18:35:15 2003 Aleksey Sanin + + * xmlsec-gnutls.pc.in xmlsec-nss.pc.in xmlsec-openssl.pc.in: and + one more change for the same bug #118685 - don't put "crypto" + in version, use xmlsec1-crypto name instead of xmlsec-crypto, + don't include nss flags and libs for xmlsec1-nss.pc + +Wed Jul 30 15:23:17 2003 Aleksey Sanin + + * Makefile.am configure.in xmlsec-gnutls.pc.in xmlsec-nss.pc.in + xmlsec-openssl.pc.in xmlsec.pc.in: more *.pc files fixes + for the same bug #118685 + +Wed Jul 30 11:49:20 2003 Aleksey Sanin + + * Makefile.am configure.in xmlsec-gnutls.pc.in xmlsec-nss.pc.in + xmlsec-openssl.pc.in: created separate *.pc files for xmlsec-crypto + libraries (bug #118685 reported by John) + +Tue Jul 29 20:20:33 2003 Aleksey Sanin + + * src/nss/README: created xmlsec bugs for remian xmlsec-nss problems + +Tue 29 Jul 2003 07:41:18 PM PDT Aleksey Sanin + + * src/ include/ docs/ man/ configure.in: merged xmlsec-nss + from the branch (Tej) + +Tue Jul 29 08:44:24 2003 Aleksey Sanin + + * src/openssl/x509.c: minor patches for errors (Roumen) + * src/xmltree.c: fixed xmlIsEmptyNode() to return false + if there is an element child + +Mon Jul 28 12:02:40 2003 Aleksey Sanin + + * include/xmlsec/keyinfo.h: added XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE flag + * include/xmlsec/xmltree.h src/xmltree.c: added xmlSecIsEmptyNode and + xmlSecIsEmptyString functions + * src/openssl/x509.c: added an ability to write complex X509Data node + content (based on patch from Roumen) + * tests/testDSig.sh tests/aleksey-xmldsig-01/x509data-test.*: new test for + complex X509Data node writing + * tests/keys/ca2key.p12 tests/keys/dsakey.p12 tests/keys/rsakey.p12: new + pkcs12 keys for tests + +Sun 20 Jul 2003 08:10:53 PM PDT Aleksey Sanin + + * apps/ include/ src/ docs/api/ Copyright: updated copyrights + everywhere + +Fri 18 Jul 2003 10:30:33 AM PDT Aleksey Sanin + + * HACKING: added a coding and commiting rules + +Wed 16 Jul 2003 10:11:23 PM PDT Aleksey Sanin + + * examples/README, examples/binary.dat: added examples of using + command line tool + +Wed 16 Jul 2003 12:50:00 AM PDT Aleksey Sanin + + * examples/myw32make.bat win32/mycfg-nss.bat: rename these + files to clear exec bit (John) + + * man/Makefile.am: use "--no-info" option in help2man + +Mon Jul 14 11:06:16 2003 Aleksey Sanin + + * configure.in docs/api/sgml/version.sgml docs/download.html + docs/api/xmlsec-version.html docs/index.html docs/news.html + docs/xmlsec-man.html include/xmlsec/version.h man/xmlsec1-config.1 + man/xmlsec1.1: preparation for 1.0.4 release + * docs/api/xmlsec-notes-encrypt.html docs/api/xmlsec-notes-sign.html: + fixed a mistype + * docs/extra/xmlsec_oscon_2003.ppt: minor update + +Fri Jul 11 13:33:28 2003 Aleksey Sanin + + * Makefile.am: fixed builddir != sourcedir one more time (use abs_top_* + instead of top_*) + * configure.in: upgraded mozilla search path to 1.4 + +Mon 07 Jul 2003 08:05:18 AM PDT Aleksey Sanin + + * src/openssl/apps.c src/openssl/x509.c src/openssl/x509vfy.c: fixed + sk_push() return value check problem (reported by Roumen) + +Mon 07 Jul 2003 07:02:46 AM PDT Aleksey Sanin + + * Makefile.am: fixed test suite problem when builddir != sourcedir + (reported by Roumen) + +Thu Jul 3 07:57:25 2003 Aleksey Sanin + + * src/openssl/x509vfy.c: added a const word to suppress + warnings (Roumen) + +Wed Jul 2 08:53:50 2003 Aleksey Sanin + + * src/openssl/x509vfy.c: fixed certificates subject + comparison function to handle multiple occurence + of entries with the same value (bug report from + Roumen) + +Tue Jun 17 19:22:17 2003 Aleksey Sanin + + * docs/download.html: fixing links to tarballs for local + files (requested by John) + + * examples/myw32make.bat win32/mycfg-nss.bat: clearing exec bit + +Mon Jun 16 10:43:34 2003 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html + docs/xmlsec-man.html include/xmlsec/version.h man/xmlsec1-config.1 + man/xmlsec1.1: new 1.0.3 version preparation + + * docs/Makefile.am docs/api-0.0.x/*: fixed second level links + processing + + * docs/api/sgml/* docs/api/tmpl/* docs/api/*: added new API calls + +Mon Jun 16 09:20:53 2003 Aleksey Sanin + + * configure.in: fixed NSS config bug #115297 + +Sun Jun 8 20:08:42 2003 Aleksey Sanin + + * configure.in: fix for 'make distclean' + +Sat Jun 7 20:35:25 2003 Aleksey Sanin + + * Makefile.am apps/* include/xmlsec/keysdata.h src/openssl/app.c tests/*: + added PKCS#8 support (based on Tej's patch) + +Fri Jun 6 14:53:25 2003 Aleksey Sanin + + * src/openssl/x509.c: skip ASN1 time check for OpenSSL 0.9.6 + +Thu Jun 5 19:32:12 2003 Aleksey Sanin + + * docs/*: fixing online verifier link + +Wed Jun 4 19:12:21 2003 Aleksey Sanin + + * configure.in: added _ALL_SOURCE define for aix + +Wed Jun 4 08:25:46 2003 Aleksey Sanin + + * src/openssl/x509.c: fix my_gmtime function + +Mon 02 Jun 2003 09:38:13 AM PDT Aleksey Sanin + + * removed debian folder + +Sun Jun 1 20:30:08 2003 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html + docs/xmlsec-man.html include/xmlsec/version.h man/xmlsec1-config.1 + man/xmlsec1.1: preparing 1.0.2 release. + * docs/xmldsig-verifier.html: point online verifier to web site + +Thu May 29 17:15:04 2003 Aleksey Sanin + + * src/gnutls/Makefile.am src/nss/Makefile.am + src/openssl/Makefile.am src/skeleton/Makefile.am: don't use GCC + options in Makefiles + +Tue May 27 20:12:41 2003 Aleksey Sanin + + * configure.in xmlsec-config.in xmlsecConf.sh.in + src/gnutls/Makefile.am src/nss/Makefile.am src/openssl/Makefile.am: + change xmlsec-config script to let user specify crypto engine + (requested by John Belmonte) + +Sun May 25 22:01:45 2003 Aleksey Sanin + + * apps/xmlsec.c docs/xmlsec-man.html man/xmlsec1-config.1 man/xmlsec1.1: + fixed help typo (reported by John Belmonte) + * examples/README: removed obsolete autoconf information (reported by John Belmonte) + * configure.in: added /usr/include/mozilla to NSS include path search list (reported by John Belmonte) + +Thu May 15 03:08:18 2003 Aleksey Sanin + + * apps/crypto.c apps/crypto.h apps/xmlsec.c: added command line + options to support DER keys and certs format (Tej) + * Makefile.am: use DER format for all tests + * tests/testDSig.sh tests/testEnc.sh tests/testKeys.sh: added a new + command line option "key-format" with possible values "der" or "pem" + * tests/*/*.der tests/merlin-xmldsig-twenty-three/certs/*.crt: + converted PEM keys and certs to DER format, removed *.crt files that + used to have DER certificates (Tej) + * tests/merlin-xmlenc-five/*.p8: re-added *.p8 files with '-kb' option + +Mon 12 May 2003 01:38:11 PM PDT Aleksey Sanin + + * configure.in: use '-rpath-link' instead '-rpath' for NSS (Wan-Teh) + +Mon May 12 10:01:30 2003 Aleksey Sanin + + * configure.in: link with NSS using -rpath (Tej) + +Mon May 5 08:00:31 2003 Aleksey Sanin + + * configure.in: new configuration options for NSS (Tej) + * src/nss/app.c src/nss/ciphers.c src/nss/crypto.c + src/nss/digests.c src/nss/hmac.c: use NSS style includes (Tej) + +Fri 02 May 2003 12:00:47 PM PDT Aleksey Sanin + + * src/openssl/app.c: adopt instead of copy the key cert + from pkcs12 fil + +Thu May 1 08:17:06 2003 Aleksey Sanin + + * include/xmlsec/xmltree.h src/xmltree.c src/keysmngr.c: + created a new function to quickly create a doc with one root node + * src/list.c: fixed bug in xmlPtrListEmpty() function + * src/xkms.c: created framework for Locate request/result processing + +Wed Apr 30 16:31:10 2003 Aleksey Sanin + + * include/xmlsec/strings.h src/strings.c: added strings + for XKMS (XKISS) Locate request/result + +Wed Apr 30 01:01:06 2003 Aleksey Sanin + + * config.h.in configure.in: added check for timegm function + * include/xmlsec/keys.h + * include/xmlsec/xkms.h src/xkms.c apps/xmlsec.c: framework + for xmlSecXkmsLocate/Validate functions + * src/keys.c src/openssl/x509.c: added notValidBefore and + notValidAfter time frame to xmlSecKey + * src/xmldsig.c src/xmlenc.c: added "output" asserts to + the *DebugDump() and *DebugXmlDump() functions + * tests/aleksey-xkms-01/locate-compound.xml + tests/aleksey-xkms-01/locate-key-from-usewith.xml + tests/aleksey-xkms-01/locate-keyvalue-from-x509.xml + tests/aleksey-xkms-01/readme.txt: XKMS test cases + +Tue Apr 29 16:37:18 2003 Aleksey Sanin + + * configure.in include/xmlsec/Makefile.am include/xmlsec/strings.h + include/xmlsec/xkms.h include/xmlsec/xmlsec.h + src/Makefile.am src/strings.c src/xkms.c apps/xmlsec.c: first + XKMS framework (disabled by default) + +Mon Apr 28 21:13:03 2003 Aleksey Sanin + + * docs/download.html docs/index.html docs/news.html: preparing + 1.0.1 release. + +Sun Apr 27 18:05:23 2003 Igor Zlatkovic + + * win32/Makefile.msvc: defined _REENTRANT to enable compilation + with threaded libxml2 + +Thu Apr 24 08:15:32 2003 Aleksey Sanin + + * config.h.in configure.in include/xmlsec/xmlsec.h: use + '#define' instead of 'typedef' for the new xmlSecSize and + xmlSecByte types in order to keep ABI + +Tue Apr 22 13:51:33 2003 Igor Zlatkovic + + * win32/configure.js: updated the email address in the generated + readme.txt file. + +Sun 20 Apr 2003 03:12:02 PM PDT Aleksey Sanin + + * docs/*: updated docs with new xmlSecByte and xmlSecSize types + * configure.in include/xmlsec/version.h: upgraded version to 1.0.1 + +Sun 20 Apr 2003 02:57:06 PM PDT Aleksey Sanin + + * src/* include/* apps/*: replaced 'unsigned char' with xmlSecByte + typedefed to 'unsigned char' to make happy OpenBSD on sparc64 + * examples/*: replaced configure.in with simple Makefile to + prevent problems on different platforms + +Sun 20 Apr 2003 02:37:41 PM PDT Aleksey Sanin + + * src/* include/* apps/*: replaced size_t with xmlSecSize + typedefed to 'unsigned int' to make happy OpenBSD on sparc64 + +Sat Apr 19 01:08:30 2003 Aleksey Sanin + + * src/openssl/kw_des.c src/openssl/signatures.c: + included openssl/sha.h to help OpenBSD port + +Wed 26 Mar 2003 01:43:24 AM PST Aleksey Sanin + + * docs: 0.1.1 release + +Wed Mar 19 22:56:49 2003 Aleksey Sanin + + * configure.in include/xmlsec/version.h + docs/download.html docs/index.html docs/news.html + xmlsec.pc xmlsec.spec: 0.0.14 release + +Wed Mar 19 10:59:41 2003 Aleksey Sanin + + * apps/xmlsec.c: force Signature or EncryptedData node + selection when specifing start node from xmlsec tool + command line + +Mon Mar 10 07:59:55 2003 Aleksey Sanin + + * src/transforms.c: fixed Reference URI evaluation for + the "xmlns()xpointer()" construction + +Wed Mar 5 19:43:43 2003 Aleksey Sanin + + * docs/index.html docs/news.html: new 0.1.0 release + +Mon Feb 24 10:04:36 2003 Aleksey Sanin + + * src/xmltree.c src/xslt.c: fixed bug in xmlSecTransformXsltAdd + +Fri Feb 21 13:06:44 2003 Aleksey Sanin + + * configure.in include/xmlsec/version.h + docs/download.html docs/index.html docs/news.html + xmlsec.pc xmlsec.spec: 0.0.13 release + +Fri Feb 21 12:59:48 2003 Aleksey Sanin + + * src/transforms.c: fixed incorrect processing of more than + 3 binary transforms in a row + +Mon Feb 17 09:34:12 2003 Aleksey Sanin + + * docs/api/* include/xmlsec/xmldsig.h + src/keysmngr.c src/xmldsig.c: minor documentation bug fixes + based on Jesse Pelton's email + +Fri Feb 14 12:44:48 2003 Aleksey Sanin + + * src/x509.c: set "verified" cert when loading pkcs12 file. + +Wed Feb 5 09:49:30 2003 Aleksey Sanin + + * apps/xmlsec.c include/xmlsec/keysmngr.h + src/keysmngr.c src/x509.c: provide an ability + to specify max cert verification depth + (based on patch from Jean-Etienne SCHWARTZ) + +Sun Jan 26 22:04:45 2003 Aleksey Sanin + + * config.h.in configure.in include/xmlsec/version.h + docs/news.html docs/download.html docs/index.html + xmlsec.pc xmlsec.spec: preparation for 0.0.12 release + +Sun Jan 26 21:39:56 2003 Aleksey Sanin + + * include/xmlsec/digests.h src/hmac.c: fixed 91 bits HMAC + bug reported by Rich Salz and Jonathan Wenocur + * tests/aleksey-xmldsig-01/dtd-hmac-91.dtd + tests/aleksey-xmldsig-01/dtd-hmac-91.tmpl + tests/aleksey-xmldsig-01/dtd-hmac-91.xml + * tests/testDSig.sh: the test case for 91 bits HMAC bug + from Rich Salz and Jonathan Wenocur + * apps/xmlsec.c: fixing minor compile warnings for + the external DTD patch + +Sun Jan 26 18:19:49 2003 Aleksey Sanin + + * src/aes.c src/ciphers.c src/des.c: fixed bug with + EVP ciphers for OpenSSL 0.9.7 when last block was not + processed for padding + * tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.data + tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.tmpl + tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.xml + tests/testEnc.sh: new test case for the bug fixed above + +Wed Jan 22 11:37:36 2003 Aleksey Sanin + + * apps/xmlsec.c man/xmlsec.xml: applied patch from Rich Salz + to allo external DTD specification for the xmlsec application + +Mon 30 Dec 2002 09:52:58 AM PST Aleksey Sanin + + * apps/xmlsec.c: added "--node-xpath" option for specifing + the operation "start node" (code based on patch from + Ferrell Moultrie (ISSAtlanta) + * src/transforms.c: fixed minor compilation warnings + * src/x509.c: certs and crls are base64 encoded with 60 characters + lines size (bug #101523) + +Mon Dec 2 23:38:34 2002 Aleksey Sanin + + * config.h.in configure.in include/xmlsec/version.h + docs/news.html docs/download.html docs/index.html + xmlsec.pc xmlsec.spec: new 0.0.11 release updates + * scripts/build_release.sh scripts/push_release.sh + scripts/test_release.sh: checking in build scripts I am using + +Thu Nov 28 11:57:17 2002 Aleksey Sanin + + * apps/xmlsec.c: print detailed help report only when + user requests it; don't fail if key is not generated + when algorithm is disabled + + +Thu Nov 28 10:44:06 2002 Aleksey Sanin + + * src/transforms.c: fixed a bug in numeric references evaluation + reported by Ingo Fischer + +Wed Oct 30 17:14:03 2002 Aleksey Sanin + + * config.h.in configure.in: do not add -I/usr/include + or -L/usr/lib if OpenSSL happens to be there + (patch proposed by Scott Cantor) + +Mon Oct 21 11:28:01 CEST 2002 Igor Zlatkovic + + * include/xmlsec/errors.h: fixed the __FUNCTION__ macro logic + +2002-10-20 Aleksey Sanin + + * config.h.in configure.in include/xmlsec/version.h + xmlsec.pc xmlsec.spec docs/download.html + docs/index.html docs/news.html: preparing 0.0.10 release + +Sun 13 Oct 2002 09:37:38 AM PDT Aleksey Sanin + + * configure.in apps/Makefile.am: added dynamic linking option + by request from John Belmonte + +Fri Oct 11 09:13:27 2002 Aleksey Sanin + + * tests/testDSig.sh configure.in apps/xmlsec.c: applied patch from + Ferrell Moultrie and removed strptime() function usage completelly + * include/xmlsec/errors.h src/errors.c src/x509.c: added more + error to the cert verification + +Thu Oct 10 00:44:36 2002 Aleksey Sanin + + * apps/xmlsec.c tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl + tests/aleksey-xmldsig-01/enveloping-expired-cert.xml + tests/keys/expired.crt tests/keys/expired.csr tests/keys/expired.key + tests/testDSig.sh: added test case to verify the new "expired cert" feature + +Wed Oct 9 23:09:46 2002 Aleksey Sanin + + * apps/xmlsec.c include/xmlsec/x509.h src/keysmngr.c + src/x509.c: added support for certificate verification parameter + when OpenSSL 0.9.6 is used + +Wed Oct 9 20:58:58 2002 Aleksey Sanin + + * include/xmlsec/keyinfo.h include/xmlsec/keys.h + include/xmlsec/keysmngr.h include/xmlsec/x509.h + include/xmlsec/xmldsig.h include/xmlsec/xmlenc.h + src/keyinfo.c src/keys.c src/keysmngr.c + src/x509.c src/xmldsig.c src/xmlenc.c: added certificates + verification time parameter as it was suggested in the + xmlsec mailing list + * apps/xmlsec.c: added "--verification-time" parameter + * config.h.in configure.in: added necessary check for + strptime() function + +Mon Oct 7 19:22:11 2002 Aleksey Sanin + + * apps/xmlsec.c: added "--output" option to spefcify output file + * docs/xmlsec-man.html man/create.sh man/xmlsec.1 man/xmlsec.xml: + changed the docs to reflect new "--output" option + * tests/testDSig.sh tests/testEnc.sh: changed tests to use new + "--output" option + * configure.in xmlsec.pc xmlsec.spec: minor config changes + +Sun Sep 29 20:12:17 CEST 2002 Igor Zlatkovic + + * win32/Makefile.msvc: resolved further static link issues. + +Sat Sep 28 19:14:40 CEST 2002 Igor Zlatkovic + + * include/xmlsec/errors.h: added MSVC to the list of compilers with + the predefined __FUNCTION__ macro. + * include/xmlsec/xmlsec.h: resolved XMLSEC_EXPORT mess. + * win32/Makefile.msvc: introduced a double-run compilation, resolved + the static link problems. + * win32/configure.js: added the iconv=yes|no option, important when + linking statically to libxml. + +Wed 25 Sep 2002 21:28:21 PM PDT Aleksey Sanin + + * include/xmlsec/x509.h src/x509.c: opened xmlSecX509Data + structure by request from Moultrie, Ferrell + +Wed 04 Sep 2002 06:54:23 PM PDT Aleksey Sanin + + * src/errors.c: aplied a patch from Ferrell Moultrie (additional + errors strings for OpenSSL errors functions) + +Tue 03 Sep 2002 06:24:57 PM PDT Aleksey Sanin + + * xmlsec-config.in: fixed a bug when xslt is not available + +Mon 02 Sep 2002 12:20:03 PM PDT Aleksey Sanin + + * docs/*: added LibXML2, LibXSLT and OpenSSL logos + +Sat Aug 31 17:12:56 2002 Aleksey Sanin + + * include/xmlsec/keys.h include/xmlsec/x509.h + include/xmlsec/xmldsig.h include/xmlsec/xmlenc.h + src/keys.c src/x509.c src/xmldsig.c src/xmlenc.c: + added new function *DebugXmlDump() to print debug info + in XML format + * apps/xmlsec.c man/xmlsec.1 man/xmlsec.xml: added new + options '--print-xml' and '-print-to-file' + +Sat 31 Aug 2002 03:43:20 PM PDT Aleksey Sanin + + * docs/examples: added a new dsig example from Devin Heitmueller + +Thu 29 Aug 2002 01:48:35 PM PDT Aleksey Sanin + + * docs/examples/dsig3 docs/examples/dsig4: fixed minor problems + +Thu 29 Aug 2002 08:52:02 AM PDT Aleksey Sanin + + * apps/xmlsec.c: fixed minor copy/paste typo (thanks to Devin Heitmueller) + +Wed 28 Aug 2002 04:22:10 PM PDT Aleksey Sanin + + * configure.in docs: new 0.0.9 release to fix release packaging problems + +Fri Aug 23 10:54:39 2002 Aleksey Sanin + + * configure.in docs/download.html docs/index.html docs/news.html: + New 0.0.8 release. + +Thu Aug 15 21:08:41 2002 Aleksey Sanin + + * docs/api/* include/xmlsec/Makefile.am include/xmlsec/xpath.h + src/xpath.c: removed xpath "here()" function declaration + from global view and xpath.h file, rebuilt docs. + +Thu 15 Aug 2002 08:45:26 PM PDT Aleksey Sanin + + * docs/api/* src/* include/xmlsec/*: finished writing + documentation for 370+ internal and external symbols + +Thu 15 Aug 2002 08:14:50 AM PDT Aleksey Sanin + + * tests/keys/README: applied patch from + (bug #90824) + +Wed Aug 14 19:38:56 2002 Aleksey Sanin + + * NEWS README: minor updates + * docs/documentation.html docs/xmlsec-man.html man/Makefile.am: + published xmlsec utility man page + +Wed Aug 14 19:27:09 2002 Aleksey Sanin + + * docs/api/* include/xmlsec/base64.h include/xmlsec/bn.h + include/xmlsec/transforms.h src/aes.c src/base64.c + src/bn.c src/buffered.c src/c14n.c src/ciphers.c + src/des.c src/digests.c src/dsa.c src/enveloped.c + src/xmltree.c: and more and more documentation + +Wed Aug 14 17:32:23 2002 Aleksey Sanin + + * docs/api/* include/xmlsec/transforms.h + include/xmlsec/transformsInternal.h include/xmlsec/version.h + include/xmlsec/version.h.in src/errors.c src/xpath.c: + and more documentation... + +Wed Aug 14 16:30:44 2002 Aleksey Sanin + + * docs/api/* include/xmlsec/keyinfo.h include/xmlsec/keys.h + include/xmlsec/keysmngr.h include/xmlsec/xmldsig.h + include/xmlsec/xmlenc.h src/debug.c src/keyinfo.c + src/keys.c src/keysmngr.c src/xmldsig.c src/xmlenc.c + tests/keys.xml: more documentation... + +Wed Aug 14 13:08:32 2002 Aleksey Sanin + + * docs/api/* include/xmlsec/errors.h include/xmlsec/xmldsig.h + include/xmlsec/xmlenc.h src/errors.c src/xmldsig.c + src/xmlenc.c src/xmlsec.c: added comments and rebuild documentation + * docs/faq.html: update FAQ + +Wed 14 Aug 2002 09:44:31 AM PDT Aleksey Sanin + + * apps/xmlsec.c: fixed random numbers initialization + +Tue 13 Aug 2002 09:11:45 PM PDT Aleksey Sanin + + * win32/* src/errors.c apps/xmlsec.c: made required changes + to support new stuff in win32 port + +Tue Aug 13 13:59:32 2002 Aleksey Sanin + + * apps/xmlsec.c configure.in src/ciphers.c src/des.c src/dsa.c + src/hmac.c src/rsa.c: replaced XMLSEC_OPENSSL097 define with + XMLSEC_OPENSSL096 define + * docs/api/*: updated docs with new errors reporting functions + +Tue 13 Aug 2002 01:36:16 PM PDT Aleksey Sanin + + * include/xmlsec/errors.h src/*.c configure.in: changed + error reporting system and updated all files accordingly + +Thu 08 Aug 2002 10:56:56 AM PDT Aleksey Sanin + + * src/xpath.c: removed XPointer support from XPath 2 filter + +Wed Aug 7 14:32:44 2002 Aleksey Sanin + + * include/xmlsec/transforms.h include/xmlsec/xmlsec.h + src/transforms.c src/xmlsec.c src/xpath.c: added XPointer + transform (Additional XML Security URIs) + * tests/aleksey-xmldsig-01/xpointer-hmac.tmpl + tests/aleksey-xmldsig-01/xpointer-hmac.xml + tests/merlin-xpath-filter2-three/sign-xfdl.tmpl + tests/testDSig.sh: test cases for XPointer transform + + +Wed Aug 7 01:08:13 2002 Aleksey Sanin + + * src/transforms.c src/xmldsig.c src/xmlenc.c: full + xpointers support in Reference URIs is added + * include/xmlsec/xmltree.h src/xmltree.c src/xmlsec.c + apps/xmlsec.c : removed the IDs hack + * docs/xmldsig-interop.html: added full XPointers support + * tests/*: added ID attribute declaration when necessary + +Tue Aug 6 09:51:54 2002 Aleksey Sanin + * docs/api: updated docs with new stuff + * man/xmlsec-config.1: fixed minor problems in help file + * include/xmlsec/nodeset.h src/enveloped.c src/nodeset.c + src/transforms.c src/xmldsig.c src/xpath.c: changed new + functions names + +Mon Aug 5 22:55:05 2002 Aleksey Sanin + + * Makefile.am tests/testDSig.sh tests/testEnc.sh: added + 'perfcheck' flag to the Makefile for performance testing + +Mon Aug 5 21:11:41 2002 Aleksey Sanin + + * include/xmlsec/nodeset.h include/xmlsec/transforms.h + src/enveloped.c src/nodeset.c src/xpath.c: new node set + code improved performaance (8-10 times!!!) + +Mon Aug 5 17:58:31 2002 Aleksey Sanin + * Makefile.am configure.in src/xpathalt.c: + Removed alt xpath trasnform implementation as outdated + * include/xmlsec/nodeset.h src/nodeset.c + src/Makefile.am include/xmlsec/Makefile.am + include/xmlsec/transforms.h include/xmlsec/transformsInternal.h + src/transforms.c include/xmlsec/xmltree.h src/xmltree.c + src/c14n.c src/enveloped.c src/xmldsig.c + src/xpath.c: create xmlsec specific nodes set object + and start using it everythere + * src/x509.c: updated the code to use new openssl 0.9.7 builds + +Wed Jul 31 23:38:18 2002 Aleksey Sanin + + * Makefile.am configure.in: added "enable-profiling" config option + * docs/download.html docs/index.html src/c14n.c: + starting XPath and enveloped transforms performance improvements + * tests/Makefile.am tests/merlin-c14n-three/* tests/testDSig.sh: + added one more Merlin's test suite for exc-c14n + +Wed Jul 31 15:56:17 2002 Aleksey Sanin + * apps/xmlsec.c src/xpath.c tests/testDSig.sh: improved + XPath2 performance + +Wed Jul 31 11:45:09 2002 Aleksey Sanin + * include/xmlsec/xmlsec.h src/keyinfo.c src/xmlsec.c src/xpath.c + tests/Makefile.am tests/testDSig.sh tests/merlin-xpath-filter2-three: + updated XPath2 transform implementation according to the + latest spec and added Merlin's tests for it + +Thu 18 Jul 2002 08:51:16 AM PDT Aleksey Sanin + * src/x509.c: fixed problems with using self-signed certs + for signatures + +Thu Jul 11 19:30:31 2002 Aleksey Sanin + * Makefile.am configure.in xmlsec.spec.in xmlsec.pc xmlsec.pc.in: + Add pkgconfig script + + * tests/Makefile.am tests/testDSig.sh tests/testEnc.sh tests/testKeys.sh: + more fixes for dist + +Thu Jul 11 17:17:22 2002 Aleksey Sanin + * configure.in src/Makefile.am tests/Makefile.am: fixed + minor dist bugs + +Thu Jul 11 11:47:14 2002 Aleksey Sanin + * Makefile.am docs/* docs/api/*: added faq and documentation + pages + +Thu Jul 11 9:19:45 2002 Aleksey Sanin + * Makefile.am configure.in docs/api/*: added API docs + generation + +Wed Jul 10 21:39:59 2002 Aleksey Sanin + * AUTHORS Makefile.am debian/* : added Debian packaging scripts from + John Belmonte + +Wed Jul 10 21:24:43 2002 Aleksey Sanin + * include/xmlsec/*.h src/*.c: some comments added + +Wed Jul 10 18:06:12 2002 Aleksey Sanin + * Makefile.am config.h.in configure.in man/* xmlsec.spec.in: + man pages for xmlsec and xmlsec-config were added + * apps/xmlsec.c: "--version" and "--help" options added + +Wed Jul 10 21:41:21 2002 Igor Zlatkovic + * win32/Makefile.msvc: Fixed minor typos, static link flags + and bindist target + * apps/xmlsec.c: Added snprintf -> _snprintf mapping for MS + C-runtime + +Wed Jul 10 8:45:23 2002 Aleksey Sanin + * configure.in docs/* : 0.0.7 release + +Fri Jun 21 00:48:52 2002 Aleksey Sanin + * Makefile.am configure.in: added win32 folder to the + distribution + +2002-06-20 Aleksey Sanin + * apps/xmlsec.c: added password protected pem files + support + +2002-06-19 Aleksey Sanin + * include/xmlsec/xmltree.h src/xmlsec.c src/xmltree.c: + fixed ID attribute bug found by Sascha Breite + +Mon Jun 3 21:18:54 2002 Aleksey Sanin + * src/enveloped.c: improved performance + +Thu May 30 21:29:21 2002 Aleksey Sanin + * src/xmltree.c: propagating XPath fix from LibXML2 + +Wed May 29 21:28:13 2002 Aleksey Sanin + * apps/xmlsec.c include/xmlsec/keysmngr.h include/xmlsec/x509.h + src/keysmngr.c src/x509.c tests/keys.xml: pkcs12 support added + +Wed 29 May 2002 12:07:35 AM PDT Aleksey Sanin + *: merged 0.0.6 release from local CVS + *: win32 port + *: xpath filter2 + *: custom network handlers + +Mon 29 Apr 2002 12:07:35 AM PDT Aleksey Sanin + *: Significant API re-factoring (make it more simple and consistent) + *: added symmetric Key Wrappers support (AES, DES) + *: added RIPEMD-160 support + +Sat 30 Mar 2002 12:55:30 AM PST Aleksey Sanin + *: Finished x509 supprot + *: Added functions to create signature "on-the-fly" + *: Updated examples and docs + *: Fixed header files installation bug + +Wed 27 Mar 2002 11:20:42 PM PST Aleksey Sanin + *: Added x509 verification support and a skeleton for x509 + x509 based sigantures + +Tue 26 Mar 2002 06:30:10 PM PST Aleksey Sanin + *: The result of operation (sign/verify) is returned in the + list of xmlDSigSignature objects. Application can examine + the key and signature method, content just before digesting or + signing, etc. and decide what to do with it. + *: The Transform and KeyInfo code was significantly re-written and + separated from the XMLDSig code with a goal to reuse in in + XML Signature or whatever. + *: Added support for RetrievalMethod and Manifests (pretty simple + adter the first change because both are based on Transforms) + *: Added XSLT support (based on libxslt from Daniel Veillard) + diff --git a/Copyright b/Copyright new file mode 100644 index 0000000..fb94427 --- /dev/null +++ b/Copyright @@ -0,0 +1,59 @@ +xmlsec, xmlsec-openssl, xmlsec-gnutls libraries +------------------------------------------------------------------------------ + +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Aleksey Sanin shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. + + +xmlsec-nss library +------------------------------------------------------------------------------ +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. +Copyright (c) 2003 America Online, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Portions of the Software were created using source code and/or APIs +governed by the Mozilla Public License (MPL). The MPL is available +at http://www.mozilla.org/MPL/MPL-1.1.html. The MPL permits such +portions to be distributed with code not governed by MPL, as long +as the requirements of MPL are fulfilled for such portions. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Aleksey Sanin shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. + diff --git a/HACKING b/HACKING new file mode 100644 index 0000000..0b51ddf --- /dev/null +++ b/HACKING @@ -0,0 +1,160 @@ + Rules for commits on the xmlsec module + ========================================= + +0) DO NOT COMMIT DIRECTLY ! +If you have a patch send a mail to xmlsec@aleksey.com mailing +list (you must be subscribed to the list, go to +http://www.aleksey.com/mailman/listinfo/xmlsec to subscribe). + +If there is a problem in xmlsec module that prevents you +from building other major components then feel free to patch +first and then send a mail. This is an EXCEPTIONAL case and +you should be VERY carefull when you are doing this. + +Igor Zlatkovic get an exception for the send before commit rule. + +1) Coding style. + - Formatting. Just for clarification, the formating is: + + tab size=8;indentation=4;insert spaces=yes + + - Use explicit "!= NULL", "!= 0", etc. This makes code + easier to read and remove warnings on some platform. + Example: + BAD: + if(a) + GOOD: + if(a != NULL) + or + if(a != 0) + + - Put figure brackets '{}' even if you have only one operator + in "if", "for", etc. This also makes code easier to read and + saves a lot of time when you need to quickly change something. + Example: + BAD: + if(a != NULL) + xmlFree(a); + GOOD: + if(a != NULL) { + xmlFree(a); + } + + - Use round brackets '()' in conditions to show the precedence order. + I don't remember what goes first '<<' or '*', do you? + Example: + BAD: + if(privkey == NULL || pubkey == NULL) + GOOD: + if((privkey == NULL) || (pubkey == NULL)) + + - Use round brackets '()' for "return". + Example: + BAD: + return 0; + GOOD: + return(0); + + - Check for warnings! Use "--enable-pedantic" option + for "configure.in" script to enable as much warnings as possible. + Your patch should produce no new warnings and if you'll + see something that you can fix, then do it. + + - Check for memory leaks. There is a built in support for + valgrind (http://devel-home.kde.org/~sewardj/). In order to use it, + use "enable_static_linking" option for "configure.in" script to + force static linking of xmlsec command line utility and run + "make memcheck" from the top xmlsec source folder. The results are printed + at the end. More detailed logs could be found in /tmp/test*.log files. + +2) Coding practice + - You should trust nobody! Anyone can fool you: user or another application + might provide you incorrect data; call to xmlsec or system function might + fail with an error code; worse, the same call might fail but the return + code is "success" and so on. The patch fixes a lot of places where the + original code failed to check input data or function return values. + One of my favorite examples is the code that *silently* assumed that + base64 decoded value of a RSA public exponent obtained from XML fits + in a DWORD. And after that the code did memcpy to copy from xmlSecBuffer + to a DWORD variable *without* checking how much data are actualy copied! + The trivial DoS attack (at least DoS!!!) is to put very long base64 string + in XML file and enjoy the server crash. + One of the strongest sides of xmlsec library is that there are very few + known ways to crash it (and all of them are related to running the + application in an environment with a very limited memory to force a malloc + failure). To be a little paranoid is good in this context :) + + - malloc/free vs. xmlMalloc/xmlFree + xmlsec library use libxml2 memory management functions. This provides an + easy way to replace default memory management functions with custom ones. + And this might be very usefull in some cases. + Note that crypto library might use a different memory management + functions! Be very carefully to do not mix them (i.e. get memory + allocated by crypto library function and free it with xmFree). + + - Errors reporting (XMLSEC_ERRORS_R_XMLSEC_FAILED vs. XMLSEC_ERRORS_R_CRYPTO_FAILED) + The correct usage rule is: + if the failed function starts with "xmlSec" then use + XMLSEC_ERRORS_R_XMLSEC_FAILED + else if it is xmlMalloc/xmlFree/xmlStrdup/etc then use + XMLSEC_ERRORS_R_MALLOC_FAILED + else if the function starts with "xml" or "xslt" (i.e. it comes + from libxml or libxslt) then use + XMLSEC_ERRORS_R_XML_FAILED + else if it is related to IO (fopen, fread, fwrite, etc.) then use + XMLSEC_ERRORS_R_IO_FAILED + else if the function could be used only from xmlsec-crypto (i.e. + it is crypto engine related) then use + XMLSEC_ERRORS_R_CRYPTO_FAILED + else if there is another reason (invalid data, invalid size, etc.) + corresponding error reason should be used + else + it is something new and should be discussed + fi + Correct error reason is very important. For example, some applications + ignore all the XMLSEC_ERRORS_R_XMLSEC_FAILED errors to get to the bottom of + the errors stack and report the actual problem. + + - Errors reporting: "size=%d;error=%d" instead of "size %d, error: %d": + It would be great if xmlsec-crypto libraries can follow the error message + standard adopted in the other files of xmlsec library: + "=;=;..." + This greatly helps when one needs to write a logs parser. For example, to + find the reason of memory allocation failures. + +3) Preparing and submiting a patch. +If you want to submit a patch please do following: + - Get a CVS source copy (see http://www.aleksey.com/xmlsec/download.html). + It's much easier to prepare patch from CVS than to diff two set of files. + - Test your patch! Make sure that your patch complain with xmlsec coding + style (see above) and that you don't introduce new warnings or memory leaks + (also see above). If you have a new functionality in the patch, + do not forget to add a test case(s) in the xmlsec test suite. + - If you have new files in your patch mark them "to be added" with + cvs add + command. If you have binary files, do not forget to use '-kb' option + cvs add -kb + If you have new folders in your patch and you don't have write access to CVS, + send a mail to xmlsec@aleksey.com and I'll create them for you. + - Prepare patch by running diff command from the top of the source tree: + cvs -z3 diff -uN [...] > + The file or folder names are optional and you can use it to save + yourself some time. "-u" option produces a human readble diff, + "-N" option includes to the diff new files created on prevous step. + Finally, "-z3" forces cvs to compress the network traffic and make things + faster. Please use ".diff" extension in your output filename. This will + add colors to my editor when I would be looking at it :) + - Gzip or zip your diff file! Don't send plain diff file because some mailers + corrupt it. + - Send your patch along with a short description of the problem or feature + you are fixing/implementing to the xmlsec@aleksey.com mailing list + (you must be subscribed to the list, go to http://www.aleksey.com/mailman/listinfo/xmlsec to subscribe). + If you are fixing a bug, it might be a good idea to bugzilla it first + (http://www.aleksey.com/xmlsec/bugs.html) for the record. Do not forget + to put link or bug number in your message if the bug is in bugzilla. + + + + + + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..baa984f --- /dev/null +++ b/INSTALL @@ -0,0 +1,38 @@ +Compilation + +1. How to compile XMLSec? +As most UNIX libraries XMLSec follows the "standard": + + gunzip -c xmlsec-xxx.tar.gz | tar xvf - + cd xmlsec-xxxx + ./configure --help + +to see the options, then the compilation/installation proper + + ./configure [possible options] + make + make install + +Probably you may have to rerun ldconfig or similar utility to +update your list of installed shared libs. At this point you can check +that the library is compiled successfully by running + + make check + +2.What other libraries are needed to compile/install XMLSec? +XMLSec requires following libraries: + + LibXML2 (http://xmlsoft.org): a very powerfull XML parsing and + manipulating library + LibXSLT (http://xmlsoft.org/XSLT/): a nice XSLT processor based + on LibXML2 + OpenSSL (http://www.openssl.org): well known cryptographic library + +If you are running a Linux system then there is a good chance that +you already have all libraries installed. Also XMLSec requires the +normal C ANSI API (please report any violation to this rule you may find). + + +Aleksey Sanin + +$Id$ diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..3fce548 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,142 @@ +NULL = + +SAFE_VERSION = @XMLSEC_VERSION_SAFE@ +SUBDIRS = include src apps man docs +TEST_APP = apps/xmlsec1$(EXEEXT) +DEFAULT_CRYPTO = @XMLSEC_CRYPTO@ + +bin_SCRIPTS = xmlsec1-config +pkgconfig_DATA = xmlsec1.pc @XMLSEC_CRYPTO_PC_FILES_LIST@ +pkgconfigdir = $(libdir)/pkgconfig +confexecdir = $(libdir) +confexec_DATA = xmlsec1Conf.sh +m4datadir = $(datadir)/aclocal +m4data_DATA = xmlsec1.m4 + +ACLOCAL_AMFLAGS = -I m4 + +DISTCLEANFILES = \ + xmlsec1Conf.sh \ + xmlsec1.pc xmlsec1-openssl.pc xmlsec1-gnutls.pc xmlsec1-nss.pc \ + xmlsec1-config \ + xmlsec1.spec \ + stamp-h2 \ + stamp-h3 \ + stamp-h4 \ + stamp-h5 \ + $NULL + +EXTRA_DIST = \ + m4 \ + examples \ + scripts \ + tests \ + win32 \ + NEWS \ + ChangeLog \ + Copyright \ + HACKING \ + xmlsec-openssl.pc.in xmlsec-gnutls.pc.in xmlsec-nss.pc.in\ + xmlsec-config.in \ + xmlsecConf.sh.in \ + xmlsec.spec.in \ + xmlsec1Conf.sh \ + xmlsec1.pc @XMLSEC_CRYPTO_PC_FILES_LIST@ \ + xmlsec1-config \ + xmlsec1.spec \ + xmlsec1.m4 \ + $(NULL) + +EXTRA_CLEAN = \ + examples \ + $(NULL) + +ABS_SRCDIR=@abs_srcdir@ +ABS_BUILDDIR=@abs_builddir@ +if XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING +PRECHECK_COMMANDS = \ + cd $(ABS_SRCDIR) \ + $(NULL) +CHECK_CRYPTO_LIST = \ + "default" \ + $(NULL) +else +PRECHECK_COMMANDS= \ + for i in $(XMLSEC_CRYPTO_LIST) ; do \ + export LD_LIBRARY_PATH="$(ABS_BUILDDIR)/src/$$i/.libs:$$LD_LIBRARY_PATH" ; \ + done && \ + cd $(ABS_SRCDIR) \ + $(NULL) +CHECK_CRYPTO_LIST = \ + $(XMLSEC_CRYPTO_LIST) \ + $(NULL) +endif + +docs: docs-man + @(cd docs && $(MAKE) docs) + +docs-clean: + @(cd docs && $(MAKE) clean) + +docs-man: + @(cd man && $(MAKE) docs) + +check: check-all check-info + +check-all: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + for i in $(CHECK_CRYPTO_LIST) ; do \ + echo "=================== Checking xmlsec-$$i =================================" && \ + $(SHELL) ./tests/testKeys.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \ + $(SHELL) ./tests/testDSig.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \ + $(SHELL) ./tests/testEnc.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der ; \ + done; ) + +check-info: + @echo "-------------------------- ATTENTION -----------------------------------" + @echo "--- 1) Some of the following tests use resources located on external ---" + @echo "--- HTTP servers. If you have no Internet connection or the external ---" + @echo "--- resource is not responding then the test will fail. ---" + @echo "--- 2) The test fails if corresponding feature(s) is disabled. ---" + @echo "--- Please, don't be surprised that many XML Encryption tests fails ---" + @echo "--- when you use OpenSSL 0.9.6 (see the FAQ for details) ---" + @echo "-------------------------- ATTENTION -----------------------------------" + +check-km: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + $(SHELL) ./tests/testKeys.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) + +check-dsig: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + $(SHELL) ./tests/testDSig.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) + +check-xkms: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + $(SHELL) ./tests/testXKMS.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) + +check-enc: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + $(SHELL) ./tests/testEnc.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) + +memcheck-res: + @grep -i lost /tmp/*.log | sed 's/==.*== *//' | sort -u + @grep -i leak /tmp/*.log | sed 's/==.*== *//' | sort -u + @grep -i 'in use' /tmp/*.log | sed 's/==.*== *//' | sort -u + +memcheck: $(TEST_APP) + @(export DEBUG_MEMORY=1 && $(MAKE) check && $(MAKE) memcheck-res) + +perfcheck: $(TEST_APP) + @(export PERF_TEST=10 && $(MAKE) check) + +dist-hook: + +cleantar: + @($(RM) -f xmlsec*.tar.gz COPYING.LIB) + +rpm: cleantar + @(unset CDPATH && $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz) + +rpm-release: clean cleantar rpm + + diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..45e5a16 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,1095 @@ +# Makefile.in generated by automake 1.11 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/xmlsec-config.in $(srcdir)/xmlsec-gnutls.pc.in \ + $(srcdir)/xmlsec-nss.pc.in $(srcdir)/xmlsec-openssl.pc.in \ + $(srcdir)/xmlsec.pc.in $(srcdir)/xmlsec.spec.in \ + $(srcdir)/xmlsecConf.sh.in $(top_srcdir)/configure AUTHORS \ + COPYING ChangeLog INSTALL NEWS TODO config.guess config.sub \ + depcomp install-sh ltmain.sh missing mkinstalldirs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = xmlsec1.pc xmlsec1Conf.sh xmlsec1-config \ + xmlsec1-openssl.pc xmlsec1-gnutls.pc xmlsec1-nss.pc \ + xmlsec1.spec +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(confexecdir)" \ + "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" +SCRIPTS = $(bin_SCRIPTS) +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +DATA = $(confexec_DATA) $(m4data_DATA) $(pkgconfig_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CP = @CP@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ +GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@ +GNUTLS_LIBS = @GNUTLS_LIBS@ +GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@ +GREP = @GREP@ +HELP2MAN = @HELP2MAN@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_CONFIG = @LIBXML_CONFIG@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIBXML_MIN_VERSION = @LIBXML_MIN_VERSION@ +LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@ +LIBXSLT_CONFIG = @LIBXSLT_CONFIG@ +LIBXSLT_LIBS = @LIBXSLT_LIBS@ +LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAN2HTML = @MAN2HTML@ +MKDIR_P = @MKDIR_P@ +MOZILLA_MIN_VERSION = @MOZILLA_MIN_VERSION@ +MSCRYPTO_CFLAGS = @MSCRYPTO_CFLAGS@ +MSCRYPTO_CRYPTO_LIB = @MSCRYPTO_CRYPTO_LIB@ +MSCRYPTO_LIBS = @MSCRYPTO_LIBS@ +MV = @MV@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_MIN_VERSION = @NSPR_MIN_VERSION@ +NSPR_PACKAGE = @NSPR_PACKAGE@ +NSS_CFLAGS = @NSS_CFLAGS@ +NSS_CRYPTO_LIB = @NSS_CRYPTO_LIB@ +NSS_LIBS = @NSS_LIBS@ +NSS_MIN_VERSION = @NSS_MIN_VERSION@ +NSS_PACKAGE = @NSS_PACKAGE@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ +OPENSSL_CRYPTO_LIB = @OPENSSL_CRYPTO_LIB@ +OPENSSL_LIBS = @OPENSSL_LIBS@ +OPENSSL_MIN_VERSION = @OPENSSL_MIN_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_ENABLED = @PKG_CONFIG_ENABLED@ +RANLIB = @RANLIB@ +RM = @RM@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +U = @U@ +VERSION = @VERSION@ +XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@ +XMLSEC_CFLAGS = @XMLSEC_CFLAGS@ +XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@ +XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@ +XMLSEC_CRYPTO = @XMLSEC_CRYPTO@ +XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@ +XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@ +XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@ +XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@ +XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@ +XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@ +XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@ +XMLSEC_DEFINES = @XMLSEC_DEFINES@ +XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@ +XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@ +XMLSEC_DOCDIR = @XMLSEC_DOCDIR@ +XMLSEC_EXTRA_LDFLAGS = @XMLSEC_EXTRA_LDFLAGS@ +XMLSEC_GNUTLS_CFLAGS = @XMLSEC_GNUTLS_CFLAGS@ +XMLSEC_GNUTLS_LIBS = @XMLSEC_GNUTLS_LIBS@ +XMLSEC_LIBDIR = @XMLSEC_LIBDIR@ +XMLSEC_LIBS = @XMLSEC_LIBS@ +XMLSEC_NO_AES = @XMLSEC_NO_AES@ +XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING@ +XMLSEC_NO_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@ +XMLSEC_NO_DES = @XMLSEC_NO_DES@ +XMLSEC_NO_DSA = @XMLSEC_NO_DSA@ +XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@ +XMLSEC_NO_GOST = @XMLSEC_NO_GOST@ +XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@ +XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@ +XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@ +XMLSEC_NO_MSCRYPTO = @XMLSEC_NO_MSCRYPTO@ +XMLSEC_NO_NSS = @XMLSEC_NO_NSS@ +XMLSEC_NO_OPENSSL = @XMLSEC_NO_OPENSSL@ +XMLSEC_NO_RIPEMD160 = @XMLSEC_NO_RIPEMD160@ +XMLSEC_NO_RSA = @XMLSEC_NO_RSA@ +XMLSEC_NO_SHA1 = @XMLSEC_NO_SHA1@ +XMLSEC_NO_SHA224 = @XMLSEC_NO_SHA224@ +XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@ +XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@ +XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@ +XMLSEC_NO_X509 = @XMLSEC_NO_X509@ +XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@ +XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@ +XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@ +XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@ +XMLSEC_NSS_LIBS = @XMLSEC_NSS_LIBS@ +XMLSEC_OPENSSL_CFLAGS = @XMLSEC_OPENSSL_CFLAGS@ +XMLSEC_OPENSSL_LIBS = @XMLSEC_OPENSSL_LIBS@ +XMLSEC_PACKAGE = @XMLSEC_PACKAGE@ +XMLSEC_STATIC_BINARIES = @XMLSEC_STATIC_BINARIES@ +XMLSEC_VERSION = @XMLSEC_VERSION@ +XMLSEC_VERSION_INFO = @XMLSEC_VERSION_INFO@ +XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@ +XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@ +XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@ +XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +SAFE_VERSION = @XMLSEC_VERSION_SAFE@ +SUBDIRS = include src apps man docs +TEST_APP = apps/xmlsec1$(EXEEXT) +DEFAULT_CRYPTO = @XMLSEC_CRYPTO@ +bin_SCRIPTS = xmlsec1-config +pkgconfig_DATA = xmlsec1.pc @XMLSEC_CRYPTO_PC_FILES_LIST@ +pkgconfigdir = $(libdir)/pkgconfig +confexecdir = $(libdir) +confexec_DATA = xmlsec1Conf.sh +m4datadir = $(datadir)/aclocal +m4data_DATA = xmlsec1.m4 +ACLOCAL_AMFLAGS = -I m4 +DISTCLEANFILES = \ + xmlsec1Conf.sh \ + xmlsec1.pc xmlsec1-openssl.pc xmlsec1-gnutls.pc xmlsec1-nss.pc \ + xmlsec1-config \ + xmlsec1.spec \ + stamp-h2 \ + stamp-h3 \ + stamp-h4 \ + stamp-h5 \ + $NULL + +EXTRA_DIST = \ + m4 \ + examples \ + scripts \ + tests \ + win32 \ + NEWS \ + ChangeLog \ + Copyright \ + HACKING \ + xmlsec-openssl.pc.in xmlsec-gnutls.pc.in xmlsec-nss.pc.in\ + xmlsec-config.in \ + xmlsecConf.sh.in \ + xmlsec.spec.in \ + xmlsec1Conf.sh \ + xmlsec1.pc @XMLSEC_CRYPTO_PC_FILES_LIST@ \ + xmlsec1-config \ + xmlsec1.spec \ + xmlsec1.m4 \ + $(NULL) + +EXTRA_CLEAN = \ + examples \ + $(NULL) + +ABS_SRCDIR = @abs_srcdir@ +ABS_BUILDDIR = @abs_builddir@ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@PRECHECK_COMMANDS = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ for i in $(XMLSEC_CRYPTO_LIST) ; do \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ export LD_LIBRARY_PATH="$(ABS_BUILDDIR)/src/$$i/.libs:$$LD_LIBRARY_PATH" ; \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ done && \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ cd $(ABS_SRCDIR) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@PRECHECK_COMMANDS = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ cd $(ABS_SRCDIR) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@CHECK_CRYPTO_LIST = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(XMLSEC_CRYPTO_LIST) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@CHECK_CRYPTO_LIST = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ "default" \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +xmlsec1.pc: $(top_builddir)/config.status $(srcdir)/xmlsec.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +xmlsec1Conf.sh: $(top_builddir)/config.status $(srcdir)/xmlsecConf.sh.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +xmlsec1-config: $(top_builddir)/config.status $(srcdir)/xmlsec-config.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +xmlsec1-openssl.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-openssl.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +xmlsec1-gnutls.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-gnutls.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +xmlsec1-nss.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-nss.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +xmlsec1.spec: $(top_builddir)/config.status $(srcdir)/xmlsec.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-confexecDATA: $(confexec_DATA) + @$(NORMAL_INSTALL) + test -z "$(confexecdir)" || $(MKDIR_P) "$(DESTDIR)$(confexecdir)" + @list='$(confexec_DATA)'; test -n "$(confexecdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(confexecdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(confexecdir)" || exit $$?; \ + done + +uninstall-confexecDATA: + @$(NORMAL_UNINSTALL) + @list='$(confexec_DATA)'; test -n "$(confexecdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(confexecdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(confexecdir)" && rm -f $$files +install-m4dataDATA: $(m4data_DATA) + @$(NORMAL_INSTALL) + test -z "$(m4datadir)" || $(MKDIR_P) "$(DESTDIR)$(m4datadir)" + @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(m4datadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(m4datadir)" || exit $$?; \ + done + +uninstall-m4dataDATA: + @$(NORMAL_UNINSTALL) + @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(m4datadir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(m4datadir)" && rm -f $$files +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @$(am__cd) '$(distuninstallcheck_dir)' \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(SCRIPTS) $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(confexecdir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-m4dataDATA install-pkgconfigDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-binSCRIPTS install-confexecDATA + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binSCRIPTS uninstall-confexecDATA \ + uninstall-m4dataDATA uninstall-pkgconfigDATA + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ + ctags-recursive install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ + dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binSCRIPTS install-confexecDATA \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-m4dataDATA install-man \ + install-pdf install-pdf-am install-pkgconfigDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-binSCRIPTS \ + uninstall-confexecDATA uninstall-m4dataDATA \ + uninstall-pkgconfigDATA + + +docs: docs-man + @(cd docs && $(MAKE) docs) + +docs-clean: + @(cd docs && $(MAKE) clean) + +docs-man: + @(cd man && $(MAKE) docs) + +check: check-all check-info + +check-all: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + for i in $(CHECK_CRYPTO_LIST) ; do \ + echo "=================== Checking xmlsec-$$i =================================" && \ + $(SHELL) ./tests/testKeys.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \ + $(SHELL) ./tests/testDSig.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \ + $(SHELL) ./tests/testEnc.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der ; \ + done; ) + +check-info: + @echo "-------------------------- ATTENTION -----------------------------------" + @echo "--- 1) Some of the following tests use resources located on external ---" + @echo "--- HTTP servers. If you have no Internet connection or the external ---" + @echo "--- resource is not responding then the test will fail. ---" + @echo "--- 2) The test fails if corresponding feature(s) is disabled. ---" + @echo "--- Please, don't be surprised that many XML Encryption tests fails ---" + @echo "--- when you use OpenSSL 0.9.6 (see the FAQ for details) ---" + @echo "-------------------------- ATTENTION -----------------------------------" + +check-km: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + $(SHELL) ./tests/testKeys.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) + +check-dsig: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + $(SHELL) ./tests/testDSig.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) + +check-xkms: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + $(SHELL) ./tests/testXKMS.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) + +check-enc: $(TEST_APP) + @($(PRECHECK_COMMANDS) && \ + $(SHELL) ./tests/testEnc.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) + +memcheck-res: + @grep -i lost /tmp/*.log | sed 's/==.*== *//' | sort -u + @grep -i leak /tmp/*.log | sed 's/==.*== *//' | sort -u + @grep -i 'in use' /tmp/*.log | sed 's/==.*== *//' | sort -u + +memcheck: $(TEST_APP) + @(export DEBUG_MEMORY=1 && $(MAKE) check && $(MAKE) memcheck-res) + +perfcheck: $(TEST_APP) + @(export PERF_TEST=10 && $(MAKE) check) + +dist-hook: + +cleantar: + @($(RM) -f xmlsec*.tar.gz COPYING.LIB) + +rpm: cleantar + @(unset CDPATH && $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz) + +rpm-release: clean cleantar rpm + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..d8e5c36 --- /dev/null +++ b/NEWS @@ -0,0 +1 @@ +Check ChangeLog file :) \ No newline at end of file diff --git a/README b/README new file mode 100644 index 0000000..ef62ab0 --- /dev/null +++ b/README @@ -0,0 +1,15 @@ +XMLSec Library +---------------------------------------------- + +XMLSec library provides C based implementation for major XML Security +standards: + * XML Signature Syntax and Processing + http://www.w3.org/TR/xmldsig-core + * XML Encryption Syntax and Processing + http://www.w3.org/TR/xmlenc-core/ +XMLSec is based on well known LibXML (http://xmlsoft.org), LibXSLT +(http://xmlsoft.org/XSLT) and OpenSSL (http://www.openssl.org) libraries. + +This code is released under the MIT Licence see the Copyright file. + +Aleksey Sanin diff --git a/TODO b/TODO new file mode 100644 index 0000000..280c983 --- /dev/null +++ b/TODO @@ -0,0 +1,6 @@ +- Unify password callback (one of parameters: filename) +- get key usage from certs +- extend keys manager to return more info when key is found or not found +(what cheks were performed, etc.) + + \ No newline at end of file diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..c2f7f2b --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,9157 @@ +# generated automatically by aclocal 1.11 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],, +[m4_warning([this file was generated for autoconf 2.64. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 56 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl +_LT_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. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\[$]0 --fallback-echo"')dnl " + lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` + ;; +esac + +_LT_OUTPUT_LIBTOOL_INIT +]) + + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +cat >"$CONFIG_LT" <<_LTEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate a libtool stub with the current configuration. + +lt_cl_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AS_SHELL_SANITIZE +_AS_PREPARE + +exec AS_MESSAGE_FD>&1 +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +if test "$no_create" != yes; then + lt_cl_success=: + test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" + exec AS_MESSAGE_LOG_FD>/dev/null + $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false + exec AS_MESSAGE_LOG_FD>>config.log + $lt_cl_success || AS_EXIT(1) +fi +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_XSI_SHELLFNS + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES +# -------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX +# ----------------------- +# 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. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_SHELL_INIT + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[_LT_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +[$]* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(lt_ECHO) +]) +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], + [An echo program that does not interpret backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __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-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[AC_CHECK_TOOL(AR, ar, false) +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1]) + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__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 other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line __oline__ "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#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 + +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); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__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 + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux + 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.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$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' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + 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* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + 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}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + 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 + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + 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' + ;; + +interix[[3-9]]*) + 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' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + 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* | k*bsd*-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' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +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 + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method == "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac +AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_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}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.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. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_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_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -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_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE(int foo(void) {}, + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + ) + LDFLAGS="$save_LDFLAGS" + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [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]]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [fix_srcfile_path], [1], + [Fix the shell variable $srcfile for the compiler]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_PROG_CXX +# ------------ +# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ +# compiler, we have our own version here. +m4_defun([_LT_PROG_CXX], +[ +pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) +AC_PROG_CXX +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_CXX + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_CXX], []) + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[AC_REQUIRE([_LT_PROG_CXX])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -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_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # 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_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $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_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_PROG_F77 +# ------------ +# Since AC_PROG_F77 is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_F77], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) +AC_PROG_F77 +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_F77 + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_F77], []) + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_REQUIRE([_LT_PROG_F77])dnl +AC_LANG_PUSH(Fortran 77) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${F77-"f77"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_PROG_FC +# ----------- +# Since AC_PROG_FC is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_FC], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) +AC_PROG_FC +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_FC + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_FC], []) + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_REQUIRE([_LT_PROG_FC])dnl +AC_LANG_PUSH(Fortran) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${FC-"f95"} + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC="$lt_save_CC" +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC="$lt_save_CC" +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_XSI_SHELLFNS +# --------------------- +# Bourne and XSI compatible variants of some useful shell functions. +m4_defun([_LT_PROG_XSI_SHELLFNS], +[case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $[*] )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +dnl func_dirname_and_basename +dnl A portable version of this function is already defined in general.m4sh +dnl so there is no need for it here. + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[[^=]]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$[@]"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]+=\$[2]" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]=\$$[1]\$[2]" +} + +_LT_EOF + ;; + esac +]) + +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [0], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) + +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# Generated from ltversion.in. + +# serial 3012 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.2.6]) +m4_define([LT_PACKAGE_REVISION], [1.3012]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.2.6' +macro_revision='1.3012' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) + +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 4 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi +else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 10 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 16 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +AC_DEFUN([AM_C_PROTOTYPES], +[AC_REQUIRE([AC_C_PROTOTYPES]) +if test "$ac_cv_prog_cc_stdc" != no; then + U= ANSI2KNR= +else + U=_ ANSI2KNR=./ansi2knr +fi +# Ensure some checks needed by ansi2knr itself. +AC_REQUIRE([AC_HEADER_STDC]) +AC_CHECK_HEADERS([string.h]) +AC_SUBST([U])dnl +AC_SUBST([ANSI2KNR])dnl +_AM_SUBST_NOTMAKE([ANSI2KNR])dnl +]) + +AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + diff --git a/apps/Makefile.am b/apps/Makefile.am new file mode 100644 index 0000000..eebbcca --- /dev/null +++ b/apps/Makefile.am @@ -0,0 +1,81 @@ +NULL = + +bin_PROGRAMS = xmlsec1 + +# check if we use dynamic loading for xmlsec-crypto or not +if XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING + +CRYPTO_DEPS = \ + $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \ + $(top_builddir)/src/libxmlsec1.la \ + $(NULL) + +CRYPTO_INCLUDES = \ + $(XMLSEC_CRYPTO_CFLAGS) \ + $(NULL) + +CRYPTO_LD_FLAGS = \ + $(NULL) + +CRYPTO_LD_ADD = \ + $(CRYPTO_DEPS) \ + $(XMLSEC_CRYPTO_LIBS) \ + $(NULL) + +else + +CRYPTO_DEPS = \ + $(top_builddir)/src/libxmlsec1.la \ + $(NULL) + +CRYPTO_INCLUDES = \ + -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 + $(NULL) + +CRYPTO_LD_FLAGS = \ + $(NULL) + +CRYPTO_LD_ADD = \ + $(CRYPTO_DEPS) \ + $(NULL) + +endif + + +INCLUDES = \ + -DXMLSEC_CRYPTO=\"@XMLSEC_CRYPTO@\" \ + -DPACKAGE=\"@PACKAGE@\" \ + -I../include \ + -I$(top_srcdir)/include \ + $(XMLSEC_DEFINES) \ + $(XMLSEC_APP_DEFINES) \ + $(CRYPTO_INCLUDES) \ + $(LIBXSLT_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(XMLSEC_DL_INCLUDES) \ + $(NULL) + +# xmlsec command line utility +xmlsec1_SOURCES = \ + xmlsec.c \ + crypto.c crypto.h \ + cmdline.c cmdline.h \ + $(NULL) + + +xmlsec1_LDFLAGS = \ + $(CRYPTO_LD_FLAGS) \ + @XMLSEC_STATIC_BINARIES@ \ + $(NULL) + +xmlsec1_LDADD = \ + $(CRYPTO_LD_ADD) \ + $(LIBXSLT_LIBS) \ + $(LIBXML_LIBS) \ + $(XMLSEC_DL_LIBS) \ + $(NULL) + +xmlsec1_DEPENDENCIES = \ + $(CRYPTO_DEPS) \ + $(NULL) + diff --git a/apps/Makefile.in b/apps/Makefile.in new file mode 100644 index 0000000..c361f4e --- /dev/null +++ b/apps/Makefile.in @@ -0,0 +1,684 @@ +# Makefile.in generated by automake 1.11 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = xmlsec1$(EXEEXT) +subdir = apps +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am__objects_1 = +am_xmlsec1_OBJECTS = xmlsec.$(OBJEXT) crypto.$(OBJEXT) \ + cmdline.$(OBJEXT) $(am__objects_1) +xmlsec1_OBJECTS = $(am_xmlsec1_OBJECTS) +am__DEPENDENCIES_1 = +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@am__DEPENDENCIES_2 = $(top_builddir)/src/libxmlsec1.la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(am__DEPENDENCIES_1) +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(top_builddir)/src/libxmlsec1.la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(am__DEPENDENCIES_1) +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(am__DEPENDENCIES_1) +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(am__DEPENDENCIES_1) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(am__DEPENDENCIES_1) +xmlsec1_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(xmlsec1_LDFLAGS) \ + $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(xmlsec1_SOURCES) +DIST_SOURCES = $(xmlsec1_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CP = @CP@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ +GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@ +GNUTLS_LIBS = @GNUTLS_LIBS@ +GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@ +GREP = @GREP@ +HELP2MAN = @HELP2MAN@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_CONFIG = @LIBXML_CONFIG@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIBXML_MIN_VERSION = @LIBXML_MIN_VERSION@ +LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@ +LIBXSLT_CONFIG = @LIBXSLT_CONFIG@ +LIBXSLT_LIBS = @LIBXSLT_LIBS@ +LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAN2HTML = @MAN2HTML@ +MKDIR_P = @MKDIR_P@ +MOZILLA_MIN_VERSION = @MOZILLA_MIN_VERSION@ +MSCRYPTO_CFLAGS = @MSCRYPTO_CFLAGS@ +MSCRYPTO_CRYPTO_LIB = @MSCRYPTO_CRYPTO_LIB@ +MSCRYPTO_LIBS = @MSCRYPTO_LIBS@ +MV = @MV@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_MIN_VERSION = @NSPR_MIN_VERSION@ +NSPR_PACKAGE = @NSPR_PACKAGE@ +NSS_CFLAGS = @NSS_CFLAGS@ +NSS_CRYPTO_LIB = @NSS_CRYPTO_LIB@ +NSS_LIBS = @NSS_LIBS@ +NSS_MIN_VERSION = @NSS_MIN_VERSION@ +NSS_PACKAGE = @NSS_PACKAGE@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ +OPENSSL_CRYPTO_LIB = @OPENSSL_CRYPTO_LIB@ +OPENSSL_LIBS = @OPENSSL_LIBS@ +OPENSSL_MIN_VERSION = @OPENSSL_MIN_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_ENABLED = @PKG_CONFIG_ENABLED@ +RANLIB = @RANLIB@ +RM = @RM@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +U = @U@ +VERSION = @VERSION@ +XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@ +XMLSEC_CFLAGS = @XMLSEC_CFLAGS@ +XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@ +XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@ +XMLSEC_CRYPTO = @XMLSEC_CRYPTO@ +XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@ +XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@ +XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@ +XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@ +XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@ +XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@ +XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@ +XMLSEC_DEFINES = @XMLSEC_DEFINES@ +XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@ +XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@ +XMLSEC_DOCDIR = @XMLSEC_DOCDIR@ +XMLSEC_EXTRA_LDFLAGS = @XMLSEC_EXTRA_LDFLAGS@ +XMLSEC_GNUTLS_CFLAGS = @XMLSEC_GNUTLS_CFLAGS@ +XMLSEC_GNUTLS_LIBS = @XMLSEC_GNUTLS_LIBS@ +XMLSEC_LIBDIR = @XMLSEC_LIBDIR@ +XMLSEC_LIBS = @XMLSEC_LIBS@ +XMLSEC_NO_AES = @XMLSEC_NO_AES@ +XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING@ +XMLSEC_NO_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@ +XMLSEC_NO_DES = @XMLSEC_NO_DES@ +XMLSEC_NO_DSA = @XMLSEC_NO_DSA@ +XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@ +XMLSEC_NO_GOST = @XMLSEC_NO_GOST@ +XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@ +XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@ +XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@ +XMLSEC_NO_MSCRYPTO = @XMLSEC_NO_MSCRYPTO@ +XMLSEC_NO_NSS = @XMLSEC_NO_NSS@ +XMLSEC_NO_OPENSSL = @XMLSEC_NO_OPENSSL@ +XMLSEC_NO_RIPEMD160 = @XMLSEC_NO_RIPEMD160@ +XMLSEC_NO_RSA = @XMLSEC_NO_RSA@ +XMLSEC_NO_SHA1 = @XMLSEC_NO_SHA1@ +XMLSEC_NO_SHA224 = @XMLSEC_NO_SHA224@ +XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@ +XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@ +XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@ +XMLSEC_NO_X509 = @XMLSEC_NO_X509@ +XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@ +XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@ +XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@ +XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@ +XMLSEC_NSS_LIBS = @XMLSEC_NSS_LIBS@ +XMLSEC_OPENSSL_CFLAGS = @XMLSEC_OPENSSL_CFLAGS@ +XMLSEC_OPENSSL_LIBS = @XMLSEC_OPENSSL_LIBS@ +XMLSEC_PACKAGE = @XMLSEC_PACKAGE@ +XMLSEC_STATIC_BINARIES = @XMLSEC_STATIC_BINARIES@ +XMLSEC_VERSION = @XMLSEC_VERSION@ +XMLSEC_VERSION_INFO = @XMLSEC_VERSION_INFO@ +XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@ +XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@ +XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@ +XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@CRYPTO_DEPS = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(top_builddir)/src/libxmlsec1.la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) + + +# check if we use dynamic loading for xmlsec-crypto or not +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@CRYPTO_DEPS = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(top_builddir)/src/libxmlsec1.la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@CRYPTO_INCLUDES = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@CRYPTO_INCLUDES = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(XMLSEC_CRYPTO_CFLAGS) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@CRYPTO_LD_FLAGS = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@CRYPTO_LD_FLAGS = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@CRYPTO_LD_ADD = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(CRYPTO_DEPS) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@CRYPTO_LD_ADD = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(CRYPTO_DEPS) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(XMLSEC_CRYPTO_LIBS) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) + +INCLUDES = \ + -DXMLSEC_CRYPTO=\"@XMLSEC_CRYPTO@\" \ + -DPACKAGE=\"@PACKAGE@\" \ + -I../include \ + -I$(top_srcdir)/include \ + $(XMLSEC_DEFINES) \ + $(XMLSEC_APP_DEFINES) \ + $(CRYPTO_INCLUDES) \ + $(LIBXSLT_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(XMLSEC_DL_INCLUDES) \ + $(NULL) + + +# xmlsec command line utility +xmlsec1_SOURCES = \ + xmlsec.c \ + crypto.c crypto.h \ + cmdline.c cmdline.h \ + $(NULL) + +xmlsec1_LDFLAGS = \ + $(CRYPTO_LD_FLAGS) \ + @XMLSEC_STATIC_BINARIES@ \ + $(NULL) + +xmlsec1_LDADD = \ + $(CRYPTO_LD_ADD) \ + $(LIBXSLT_LIBS) \ + $(LIBXML_LIBS) \ + $(XMLSEC_DL_LIBS) \ + $(NULL) + +xmlsec1_DEPENDENCIES = \ + $(CRYPTO_DEPS) \ + $(NULL) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu apps/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu apps/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +xmlsec1$(EXEEXT): $(xmlsec1_OBJECTS) $(xmlsec1_DEPENDENCIES) + @rm -f xmlsec1$(EXEEXT) + $(xmlsec1_LINK) $(xmlsec1_OBJECTS) $(xmlsec1_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmdline.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypto.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlsec.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-binPROGRAMS + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/apps/cmdline.c b/apps/cmdline.c new file mode 100644 index 0000000..fe09b7b --- /dev/null +++ b/apps/cmdline.c @@ -0,0 +1,355 @@ +/** + * + * XMLSec library + * + * + * See Copyright for the status of this software. + * + * Copyright (C) 2002-2003 Aleksey Sanin + */ +#if defined(_MSC_VER) +#define snprintf _snprintf +#endif + +#include +#include +#include +#include +#include + +#include "cmdline.h" + +static int xmlSecAppCmdLineMatchParam (const char* argvParam, + const char* paramName, + int canHaveNameString); +static xmlSecAppCmdLineParamPtr xmlSecAppCmdLineParamsListFind (xmlSecAppCmdLineParamPtr* params, + xmlSecAppCmdLineParamTopic topics, + const char* name); +static int xmlSecAppCmdLineParamRead (xmlSecAppCmdLineParamPtr param, + const char** argv, + int argc, + int pos); +static int xmlSecAppCmdLineTimeParamRead (const char* str, + time_t* t); + +int +xmlSecAppCmdLineParamIsSet(xmlSecAppCmdLineParamPtr param) { + return(((param != NULL) && (param->value != NULL)) ? 1 : 0); +} + +const char* +xmlSecAppCmdLineParamGetString(xmlSecAppCmdLineParamPtr param) { + if(param->type != xmlSecAppCmdLineParamTypeString) { + fprintf(stderr, "Error: parameter \"%s\" is not string.\n", param->fullName); + return(NULL); + } + return((param->value != NULL) ? param->value->strValue : NULL); +} + +const char* +xmlSecAppCmdLineParamGetStringList(xmlSecAppCmdLineParamPtr param) { + if(param->type != xmlSecAppCmdLineParamTypeStringList) { + fprintf(stderr, "Error: parameter \"%s\" is not string list.\n", param->fullName); + return(NULL); + } + return((param->value != NULL) ? param->value->strListValue : NULL); +} + +int +xmlSecAppCmdLineParamGetInt(xmlSecAppCmdLineParamPtr param, int def) { + if(param->type != xmlSecAppCmdLineParamTypeNumber) { + fprintf(stderr, "Error: parameter \"%s\" is not integer.\n", param->fullName); + return(def); + } + return((param->value != NULL) ? param->value->intValue : def); +} + +time_t +xmlSecAppCmdLineParamGetTime(xmlSecAppCmdLineParamPtr param, time_t def) { + if(param->type != xmlSecAppCmdLineParamTypeTime) { + fprintf(stderr, "Error: parameter \"%s\" is not time.\n", param->fullName); + return(def); + } + return((param->value != NULL) ? param->value->timeValue : def); +} + +int +xmlSecAppCmdLineParamsListParse(xmlSecAppCmdLineParamPtr* params, + xmlSecAppCmdLineParamTopic topics, + const char** argv, int argc, int pos) { + xmlSecAppCmdLineParamPtr param; + int ii; + int ret; + + assert(params != NULL); + assert(argv != NULL); + + while((pos < argc) && (argv[pos][0] == '-')) { + param = xmlSecAppCmdLineParamsListFind(params, topics, argv[pos]); + if(param == NULL) { + fprintf(stderr, "Error: parameter \"%s\" is not supported or the requested\nfeature might have been disabled during compilation.\n", argv[pos]); + return(-1); + } + + ret = xmlSecAppCmdLineParamRead(param, argv, argc, pos); + if(ret < pos) { + fprintf(stderr, "Error: failed to parse parameter \"%s\".\n", argv[pos]); + return(-1); + } + pos = ret + 1; + } + + /* check that all parameters at the end are filenames */ + for(ii = pos; (ii < argc); ++ii) { + if(argv[ii][0] == '-') { + fprintf(stderr, "Error: filename is expected instead of parameter \"%s\".\n", argv[ii]); + return(-1); + + } + } + + + + return(pos); +} + +void +xmlSecAppCmdLineParamsListClean(xmlSecAppCmdLineParamPtr* params) { + xmlSecAppCmdLineValuePtr tmp; + size_t i; + + assert(params != NULL); + + for(i = 0; params[i] != NULL; ++i) { + while(params[i]->value != NULL) { + tmp = params[i]->value; + params[i]->value = params[i]->value->next; + xmlSecAppCmdLineValueDestroy(tmp); + } + } +} + +void +xmlSecAppCmdLineParamsListPrint(xmlSecAppCmdLineParamPtr* params, + xmlSecAppCmdLineParamTopic topics, + FILE* output) { + size_t i; + + assert(params != NULL); + assert(output != NULL); + + for(i = 0; params[i] != NULL; ++i) { + if(((params[i]->topics & topics) != 0) && (params[i]->help != NULL)) { + fprintf(output, " %s\n", params[i]->help); + } + } +} + +xmlSecAppCmdLineValuePtr +xmlSecAppCmdLineValueCreate(xmlSecAppCmdLineParamPtr param, int pos) { + xmlSecAppCmdLineValuePtr value; + + assert(param != NULL); + value = (xmlSecAppCmdLineValuePtr) malloc(sizeof(xmlSecAppCmdLineValue)); + if(value == NULL) { + fprintf(stderr, "Error: malloc failed (%d bytes).\n", sizeof(xmlSecAppCmdLineValue)); + return(NULL); + } + memset(value, 0, sizeof(xmlSecAppCmdLineValue)); + + value->param = param; + value->pos = pos; + return(value); +} + +void +xmlSecAppCmdLineValueDestroy(xmlSecAppCmdLineValuePtr value) { + assert(value != NULL); + + if(value->strListValue != NULL) { + free((void*)value->strListValue); + } + free(value); +} + +static int +xmlSecAppCmdLineMatchParam(const char* argvParam, const char* paramName, + int canHaveNameString) { + assert(argvParam != NULL); + assert(paramName != NULL); + + if(canHaveNameString != 0) { + int len = strlen(paramName); + + if((strncmp(argvParam, paramName, len) == 0) && + ((argvParam[len] == '\0') || (argvParam[len] == ':'))) { + + return(1); + } + } else if(strcmp(argvParam, paramName) == 0) { + return(1); + } + return(0); +} + +static xmlSecAppCmdLineParamPtr +xmlSecAppCmdLineParamsListFind(xmlSecAppCmdLineParamPtr* params, xmlSecAppCmdLineParamTopic topics, + const char* name) { + size_t i; + int canHaveNameString; + + assert(params != NULL); + assert(name != NULL); + + for(i = 0; params[i] != NULL; ++i) { + if((params[i]->topics & topics) == 0) { + continue; + } + + canHaveNameString = ((params[i]->flags & xmlSecAppCmdLineParamFlagParamNameValue) != 0) ? 1 : 0; + if((params[i]->fullName != NULL) && + (xmlSecAppCmdLineMatchParam(name, params[i]->fullName, canHaveNameString) == 1)) { + + return(params[i]); + } + + if((params[i]->shortName != NULL) && + (xmlSecAppCmdLineMatchParam(name, params[i]->shortName, canHaveNameString) == 1)) { + + return(params[i]); + } + } + + return(NULL); +} + +static int +xmlSecAppCmdLineParamRead(xmlSecAppCmdLineParamPtr param, const char** argv, int argc, int pos) { + xmlSecAppCmdLineValuePtr value; + xmlSecAppCmdLineValuePtr prev = NULL; + char* buf; + + assert(param != NULL); + assert(argv != NULL); + assert(pos < argc); + + /* first find the previous value in the list */ + if((param->flags & xmlSecAppCmdLineParamFlagMultipleValues) != 0) { + prev = param->value; + while((prev != NULL) && (prev->next != NULL)) { + prev = prev->next; + } + } else if(param->value != NULL) { + fprintf(stderr, "Error: only one parameter \"%s\" is allowed.\n", argv[pos]); + return(-1); + } + + /* create new value and add to the list */ + value = xmlSecAppCmdLineValueCreate(param, pos); + if(value == NULL) { + fprintf(stderr, "Error: failed to create value for parameter \"%s\".\n", argv[pos]); + return(-1); + } + if(prev != NULL) { + assert(prev->next == NULL); + prev->next = value; + } else { + param->value = value; + } + + /* if we can have a string value after the name, parse it */ + if((param->flags & xmlSecAppCmdLineParamFlagParamNameValue) != 0) { + value->paramNameValue = strchr(argv[pos], ':'); + if(value->paramNameValue != NULL) { + ++value->paramNameValue; + } + } + + switch(param->type) { + case xmlSecAppCmdLineParamTypeFlag: + /* do nothing */ + break; + case xmlSecAppCmdLineParamTypeString: + if(pos + 1 >= argc) { + fprintf(stderr, "Error: string argument expected for parameter \"%s\".\n", argv[pos]); + return(-1); + } + value->strValue = argv[++pos]; + break; + case xmlSecAppCmdLineParamTypeStringList: + if(pos + 1 >= argc) { + fprintf(stderr, "Error: string list argument expected for parameter \"%s\".\n", argv[pos]); + return(-1); + } + value->strValue = argv[++pos]; + buf = (char*)malloc(strlen(value->strValue) + 2); + if(buf == NULL) { + fprintf(stderr, "Error: failed to allocate memory (%d bytes).\n", strlen(value->strValue) + 2); + return(-1); + } + memset(buf, 0, strlen(value->strValue) + 2); + memcpy(buf, value->strValue, strlen(value->strValue)); + value->strListValue = buf; + while((*buf) != '\0') { + if((*buf) == ',') { + (*buf) = '\0'; + } + ++buf; + } + break; + case xmlSecAppCmdLineParamTypeNumber: + if(pos + 1 >= argc) { + fprintf(stderr, "Error: integer argument expected for parameter \"%s\".\n", argv[pos]); + return(-1); + } + value->strValue = argv[++pos]; + if(sscanf(value->strValue, "%d", &(value->intValue)) != 1) { + fprintf(stderr, "Error: integer argument \"%s\" is invalid.\n", value->strValue); + return(-1); + } + break; + case xmlSecAppCmdLineParamTypeTime: + if(pos + 1 >= argc) { + fprintf(stderr, "Error: time argument expected for parameter \"%s\".\n", argv[pos]); + return(-1); + } + value->strValue = argv[++pos]; + if(xmlSecAppCmdLineTimeParamRead(value->strValue, &(value->timeValue)) < 0) { + fprintf(stderr, "Error: time argument \"%s\" is invalid, expected format is \"YYYY-MM-DD HH:MM:SS\").\n", value->strValue); + return(-1); + } + break; + } + return(pos); +} + +static int +xmlSecAppCmdLineTimeParamRead(const char* str, time_t* t) { + struct tm tm; + int n; + + if((str == NULL) || (t == NULL)) { + return(-1); + } + memset(&tm, 0, sizeof(tm)); + tm.tm_isdst = -1; + + n = sscanf(str, "%4d-%2d-%2d%*c%2d:%2d:%2d", + &tm.tm_year, &tm.tm_mon, &tm.tm_mday, + &tm.tm_hour, &tm.tm_min, &tm.tm_sec); + if((n != 6) || (tm.tm_year < 1900) + || (tm.tm_mon < 1) || (tm.tm_mon > 12) + || (tm.tm_mday < 1) || (tm.tm_mday > 31) + || (tm.tm_hour < 0) || (tm.tm_hour > 23) + || (tm.tm_min < 0) || (tm.tm_min > 59) + || (tm.tm_sec < 0) || (tm.tm_sec > 61)) { + return(-1); + } + + tm.tm_year -= 1900; /* tm relative format year */ + tm.tm_mon -= 1; /* tm relative format month */ + + (*t) = mktime(&tm); + return(0); +} + diff --git a/apps/cmdline.h b/apps/cmdline.h new file mode 100644 index 0000000..6039122 --- /dev/null +++ b/apps/cmdline.h @@ -0,0 +1,89 @@ +/** + * XMLSec library + * + * Command line parsing routines + * + * See Copyright for the status of this software. + * + * Copyright (C) 2002-2003 Aleksey Sanin + */ +#ifndef __XMLSEC_APPS_CMDLINE_H__ +#define __XMLSEC_APPS_CMDLINE_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include + +typedef struct _xmlSecAppCmdLineParam xmlSecAppCmdLineParam, + *xmlSecAppCmdLineParamPtr; +typedef struct _xmlSecAppCmdLineValue xmlSecAppCmdLineValue, + *xmlSecAppCmdLineValuePtr; +typedef unsigned int xmlSecAppCmdLineParamTopic; + +#define xmlSecAppCmdLineParamFlagNone 0x0000 +#define xmlSecAppCmdLineParamFlagParamNameValue 0x0001 +#define xmlSecAppCmdLineParamFlagMultipleValues 0x0002 + +typedef enum { + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamTypeNumber, + xmlSecAppCmdLineParamTypeTime +} xmlSecAppCmdLineParamType; + +struct _xmlSecAppCmdLineParam { + xmlSecAppCmdLineParamTopic topics; + const char* fullName; + const char* shortName; + const char* help; + xmlSecAppCmdLineParamType type; + int flags; + xmlSecAppCmdLineValuePtr value; +}; + +int xmlSecAppCmdLineParamIsSet (xmlSecAppCmdLineParamPtr param); +const char* xmlSecAppCmdLineParamGetString (xmlSecAppCmdLineParamPtr param); +const char* xmlSecAppCmdLineParamGetStringList (xmlSecAppCmdLineParamPtr param); +int xmlSecAppCmdLineParamGetInt (xmlSecAppCmdLineParamPtr param, + int def); +time_t xmlSecAppCmdLineParamGetTime (xmlSecAppCmdLineParamPtr param, + time_t def); + +int xmlSecAppCmdLineParamsListParse (xmlSecAppCmdLineParamPtr* params, + xmlSecAppCmdLineParamTopic topcis, + const char** argv, + int argc, + int pos); +void xmlSecAppCmdLineParamsListClean (xmlSecAppCmdLineParamPtr* params); +void xmlSecAppCmdLineParamsListPrint (xmlSecAppCmdLineParamPtr* params, + xmlSecAppCmdLineParamTopic topic, + FILE* output); + +struct _xmlSecAppCmdLineValue { + xmlSecAppCmdLineParamPtr param; + int pos; + const char* paramNameValue; + const char* strValue; + const char* strListValue; + int intValue; + time_t timeValue; + xmlSecAppCmdLineValuePtr next; +}; + + +xmlSecAppCmdLineValuePtr xmlSecAppCmdLineValueCreate (xmlSecAppCmdLineParamPtr param, + int pos); +void xmlSecAppCmdLineValueDestroy (xmlSecAppCmdLineValuePtr value); + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __XMLSEC_APPS_CMDLINE_H__ */ + + + diff --git a/apps/crypto.c b/apps/crypto.c new file mode 100644 index 0000000..5e3d5ca --- /dev/null +++ b/apps/crypto.c @@ -0,0 +1,396 @@ +/** + * + * XMLSec library + * + * + * See Copyright for the status of this software. + * + * Copyright (C) 2002-2003 Aleksey Sanin + */ +#if defined(_MSC_VER) +#define snprintf _snprintf +#endif + +#include + +#include +#include +#include +#include + +#include "crypto.h" + +int +xmlSecAppCryptoInit(const char* config) { + if(xmlSecCryptoAppInit(config) < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppInit", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); + } + if(xmlSecCryptoInit() < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoInit", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); + } + + return(0); +} + +int +xmlSecAppCryptoShutdown(void) { + if(xmlSecCryptoShutdown() < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoShutdown", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); + } + + if(xmlSecCryptoAppShutdown() < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppShutdown", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); + } + return(0); +} + +int +xmlSecAppCryptoSimpleKeysMngrInit(xmlSecKeysMngrPtr mngr) { + xmlSecAssert2(mngr != NULL, -1); + + return(xmlSecCryptoAppDefaultKeysMngrInit(mngr)); +} + +int +xmlSecAppCryptoSimpleKeysMngrLoad(xmlSecKeysMngrPtr mngr, const char *filename) { + xmlSecAssert2(mngr != NULL, -1); + xmlSecAssert2(filename != NULL, -1); + + return(xmlSecCryptoAppDefaultKeysMngrLoad(mngr, filename)); +} + +int +xmlSecAppCryptoSimpleKeysMngrSave(xmlSecKeysMngrPtr mngr, const char *filename, xmlSecKeyDataType type) { + xmlSecAssert2(mngr != NULL, -1); + xmlSecAssert2(filename != NULL, -1); + + return(xmlSecCryptoAppDefaultKeysMngrSave(mngr, filename, type)); +} + +int +xmlSecAppCryptoSimpleKeysMngrCertLoad(xmlSecKeysMngrPtr mngr, const char *filename, + xmlSecKeyDataFormat format, xmlSecKeyDataType type) { + xmlSecAssert2(mngr != NULL, -1); + xmlSecAssert2(filename != NULL, -1); + +#ifndef XMLSEC_NO_X509 + return(xmlSecCryptoAppKeysMngrCertLoad(mngr, filename, format, type)); +#else /* XMLSEC_NO_X509 */ + return(-1); +#endif /* XMLSEC_NO_X509 */ +} + +int +xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(xmlSecKeysMngrPtr mngr, + const char* files, const char* pwd, + const char* name, + xmlSecKeyDataFormat format) { + xmlSecKeyPtr key; + int ret; + + xmlSecAssert2(mngr != NULL, -1); + xmlSecAssert2(files != NULL, -1); + + /* first is the key file */ + key = xmlSecCryptoAppKeyLoad(files, format, pwd, + xmlSecCryptoAppGetDefaultPwdCallback(), (void*)files); + if(key == NULL) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppKeyLoad", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "uri=%s", + xmlSecErrorsSafeString(files)); + return(-1); + } + + if(name != NULL) { + ret = xmlSecKeySetName(key, BAD_CAST name); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeySetName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + xmlSecKeyDestroy(key); + return(-1); + } + } + +#ifndef XMLSEC_NO_X509 + for(files += strlen(files) + 1; (files[0] != '\0'); files += strlen(files) + 1) { + ret = xmlSecCryptoAppKeyCertLoad(key, files, format); + if(ret < 0){ + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppKeyCertLoad", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "uri=%s", + xmlSecErrorsSafeString(files)); + xmlSecKeyDestroy(key); + return(-1); + } + } +#else /* XMLSEC_NO_X509 */ + files += strlen(files) + 1; + if(files[0] != '\0') { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "x509", + XMLSEC_ERRORS_R_DISABLED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); + } +#endif /* XMLSEC_NO_X509 */ + + ret = xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppDefaultKeysMngrAdoptKey", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + xmlSecKeyDestroy(key); + return(-1); + } + + return(0); +} + + +int +xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad(xmlSecKeysMngrPtr mngr, const char *filename, const char* pwd, const char *name) { + xmlSecKeyPtr key; + int ret; + + xmlSecAssert2(mngr != NULL, -1); + xmlSecAssert2(filename != NULL, -1); + +#ifndef XMLSEC_NO_X509 + key = xmlSecCryptoAppKeyLoad(filename, xmlSecKeyDataFormatPkcs12, pwd, + xmlSecCryptoAppGetDefaultPwdCallback(), (void*)filename); + if(key == NULL) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppKeyLoad", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "filename=%s", + xmlSecErrorsSafeString(filename)); + return(-1); + } + + if(name != NULL) { + ret = xmlSecKeySetName(key, BAD_CAST name); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeySetName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + xmlSecKeyDestroy(key); + return(-1); + } + } + + ret = xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppDefaultKeysMngrAdoptKey", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + xmlSecKeyDestroy(key); + return(-1); + } + + return(0); +#else /* XMLSEC_NO_X509 */ + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "x509", + XMLSEC_ERRORS_R_DISABLED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); +#endif /* XMLSEC_NO_X509 */ +} + +int +xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad(xmlSecKeysMngrPtr mngr, const char* keyKlass, const char *filename, const char *name) { + xmlSecKeyPtr key; + xmlSecKeyDataId dataId; + int ret; + + xmlSecAssert2(mngr != NULL, -1); + xmlSecAssert2(keyKlass != NULL, -1); + xmlSecAssert2(filename != NULL, -1); + + /* find requested data */ + dataId = xmlSecKeyDataIdListFindByName(xmlSecKeyDataIdsGet(), BAD_CAST keyKlass, + xmlSecKeyDataUsageAny); + if(dataId == xmlSecKeyDataIdUnknown) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeyDataIdListFindByName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(keyKlass)); + return(-1); + } + + key = xmlSecKeyReadBinaryFile(dataId, filename); + if(key == NULL) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeyReadBinaryFile", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); + } + + ret = xmlSecKeySetName(key, BAD_CAST name); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeySetName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + xmlSecKeyDestroy(key); + return(-1); + } + + /* finally add it to keys manager */ + ret = xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppDefaultKeysMngrAdoptKey", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + xmlSecKeyDestroy(key); + return(-1); + } + + return(0); +} + + +int +xmlSecAppCryptoSimpleKeysMngrKeyGenerate(xmlSecKeysMngrPtr mngr, const char* keyKlassAndSize, const char* name) { + xmlSecKeyPtr key; + int ret; + + xmlSecAssert2(mngr != NULL, -1); + xmlSecAssert2(keyKlassAndSize != NULL, -1); + + key = xmlSecAppCryptoKeyGenerate(keyKlassAndSize, name, xmlSecKeyDataTypePermanent); + if(key == NULL) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecAppCryptoSimpleKeysMngrKeyGenerate", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + return(-1); + } + + ret = xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppDefaultKeysMngrAdoptKey", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + xmlSecKeyDestroy(key); + return(-1); + } + return(0); +} + +xmlSecKeyPtr +xmlSecAppCryptoKeyGenerate(const char* keyKlassAndSize, const char* name, xmlSecKeyDataType type) { + xmlSecKeyPtr key; + char* buf; + char* p; + int size; + int ret; + + xmlSecAssert2(keyKlassAndSize != NULL, NULL); + + buf = (char*) xmlStrdup(BAD_CAST keyKlassAndSize); + if(buf == NULL) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + NULL, + XMLSEC_ERRORS_R_STRDUP_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + return(NULL); + } + + /* separate key klass and size */ + p = strchr(buf, '-'); + if(p == NULL) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + NULL, + XMLSEC_ERRORS_R_INVALID_DATA, + "key size is not specified %s", + xmlSecErrorsSafeString(buf)); + xmlFree(buf); + return(NULL); + } + *(p++) = '\0'; + size = atoi(p); + + key = xmlSecKeyGenerateByName(BAD_CAST buf, size, type); + if(key == NULL) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeyGenerate", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "klass=%s;size=%d", + xmlSecErrorsSafeString(buf), + size); + xmlFree(buf); + return(NULL); + } + + ret = xmlSecKeySetName(key, BAD_CAST name); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeySetName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=\"%s\"", + xmlSecErrorsSafeString(name)); + xmlSecKeyDestroy(key); + xmlFree(buf); + return(NULL); + } + + xmlFree(buf); + return(key); +} diff --git a/apps/crypto.h b/apps/crypto.h new file mode 100644 index 0000000..1ce2c3e --- /dev/null +++ b/apps/crypto.h @@ -0,0 +1,70 @@ +/** + * XMLSec library + * + * + * See Copyright for the status of this software. + * + * Copyright (C) 2002-2003 Aleksey Sanin + */ +#ifndef __XMLSEC_APPS_CRYPTO_H__ +#define __XMLSEC_APPS_CRYPTO_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include +#include +#include +#include +#include +#include + +int xmlSecAppCryptoInit (const char* config); +int xmlSecAppCryptoShutdown (void); + +xmlSecKeyPtr xmlSecAppCryptoKeyGenerate (const char* keyKlassAndSize, + const char* name, + xmlSecKeyDataType type); + +/***************************************************************************** + * + * Simple keys manager + * + ****************************************************************************/ +int xmlSecAppCryptoSimpleKeysMngrInit (xmlSecKeysMngrPtr mngr); +int xmlSecAppCryptoSimpleKeysMngrLoad (xmlSecKeysMngrPtr mngr, + const char *filename); +int xmlSecAppCryptoSimpleKeysMngrSave (xmlSecKeysMngrPtr mngr, + const char *filename, + xmlSecKeyDataType type); +int xmlSecAppCryptoSimpleKeysMngrCertLoad (xmlSecKeysMngrPtr mngr, + const char *filename, + xmlSecKeyDataFormat format, + xmlSecKeyDataType type); +int xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad (xmlSecKeysMngrPtr mngr, + const char *files, + const char* pwd, + const char* name, + xmlSecKeyDataFormat format); +int xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad (xmlSecKeysMngrPtr mngr, + const char *filename, + const char* pwd, + const char *name); +int xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad (xmlSecKeysMngrPtr mngr, + const char* keyKlass, + const char* filename, + const char *name); +int xmlSecAppCryptoSimpleKeysMngrKeyGenerate (xmlSecKeysMngrPtr mngr, + const char* keyKlassAndSize, + const char* name); + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __XMLSEC_APPS_CRYPTO_H__ */ + + + diff --git a/apps/xmlsec.c b/apps/xmlsec.c new file mode 100644 index 0000000..f2fa9f6 --- /dev/null +++ b/apps/xmlsec.c @@ -0,0 +1,3018 @@ +/** + * XML Security standards test: XMLDSig + * + * See Copyright for the status of this software. + * + * Copyright (C) 2002-2003 Aleksey Sanin + */ +#include +#include +#include + +#if defined(_MSC_VER) +#define snprintf _snprintf +#endif + +#include +#include +#include +#include +#include + +#ifndef XMLSEC_NO_XSLT +#include +#include +#include +#include +#include +#endif /* XMLSEC_NO_XSLT */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "crypto.h" +#include "cmdline.h" + +static const char copyright[] = + "Written by Aleksey Sanin .\n\n" + "Copyright (C) 2002-2003 Aleksey Sanin.\n" + "This is free software: see the source for copying information.\n"; + +static const char bugs[] = + "Report bugs to http://www.aleksey.com/xmlsec/bugs.html\n"; + +static const char helpCommands1[] = + "Usage: xmlsec [] []\n" + "\n" + "xmlsec is a command line tool for signing, verifying, encrypting and\n" + "decrypting XML documents. The allowed values are:\n" + " --help " "\tdisplay this help information and exit\n" + " --help-all " "\tdisplay help information for all commands/options and exit\n" + " --help-" "\tdisplay help information for command and exit\n" + " --version " "\tprint version information and exit\n" + " --keys " "\tkeys XML file manipulation\n"; + +static const char helpCommands2[] = +#ifndef XMLSEC_NO_XMLDSIG + " --sign " "\tsign data and output XML document\n" + " --verify " "\tverify signed document\n" +#ifndef XMLSEC_NO_TMPL_TEST + " --sign-tmpl " "\tcreate and sign dynamicaly generated signature template\n" +#endif /* XMLSEC_NO_TMPL_TEST */ +#endif /* XMLSEC_NO_XMLDSIG */ +#ifndef XMLSEC_NO_XMLENC + " --encrypt " "\tencrypt data and output XML document\n" + " --decrypt " "\tdecrypt data from XML document\n" +#endif /* XMLSEC_NO_XMLENC */ +#ifndef XMLSEC_NO_XKMS + " --xkms-server-request ""\tprocess data as XKMS server request\n" +#endif /* XMLSEC_NO_XKMS */ + ; + +static const char helpVersion[] = + "Usage: xmlsec version\n" + "Prints version information and exits\n"; + +static const char helpKeys[] = + "Usage: xmlsec keys [] \n" + "Creates a new XML keys file \n"; + +static const char helpSign[] = + "Usage: xmlsec sign [] \n" + "Calculates XML Digital Signature using template file \n"; + +static const char helpVerify[] = + "Usage: xmlsec verify [] \n" + "Verifies XML Digital Signature in the \n"; + +static const char helpSignTmpl[] = + "Usage: xmlsec sign-tmpl []\n" + "Creates a simple dynamic template and calculates XML Digital Signature\n" + "(for testing only).\n"; + +static const char helpEncrypt[] = + "Usage: xmlsec encrypt [] \n" + "Encrypts data and creates XML Encryption using template file \n"; + +static const char helpEncryptTmpl[] = + "Usage: xmlsec encrypt []\n" + "Creates a simple dynamic template and calculates XML Encryption\n"; + +static const char helpDecrypt[] = + "Usage: xmlsec decrypt [] \n" + "Decrypts XML Encryption data in the \n"; + +static const char helpXkmsServerRequest[] = + "Usage: xmlsec xkms-server-request [] \n" + "Processes the as XKMS server request and outputs the response\n"; + +static const char helpListKeyData[] = + "Usage: xmlsec list-key-data\n" + "Prints the list of known key data klasses\n"; + +static const char helpCheckKeyData[] = + "Usage: xmlsec check-key-data [ ... ]\n" + "Checks the given key-data against the list of known key-data klasses\n"; + +static const char helpListTransforms[] = + "Usage: xmlsec list-transforms\n" + "Prints the list of known transform klasses\n"; + +static const char helpCheckTransforms[] = + "Usage: xmlsec check-transforms [ ... ]\n" + "Checks the given transforms against the list of known transform klasses\n"; + +#define xmlSecAppCmdLineTopicGeneral 0x0001 +#define xmlSecAppCmdLineTopicDSigCommon 0x0002 +#define xmlSecAppCmdLineTopicDSigSign 0x0004 +#define xmlSecAppCmdLineTopicDSigVerify 0x0008 +#define xmlSecAppCmdLineTopicEncCommon 0x0010 +#define xmlSecAppCmdLineTopicEncEncrypt 0x0020 +#define xmlSecAppCmdLineTopicEncDecrypt 0x0040 +#define xmlSecAppCmdLineTopicXkmsCommon 0x0080 +#define xmlSecAppCmdLineTopicKeysMngr 0x1000 +#define xmlSecAppCmdLineTopicX509Certs 0x2000 +#define xmlSecAppCmdLineTopicVersion 0x4000 +#define xmlSecAppCmdLineTopicAll 0xFFFF + +/**************************************************************** + * + * General configuration params + * + ***************************************************************/ +static xmlSecAppCmdLineParam helpParam = { + xmlSecAppCmdLineTopicGeneral, + "--help", + "-h", + "--help" + "\n\tprint help information about the command", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +#if !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) +static xmlSecAppCmdLineParam cryptoParam = { + xmlSecAppCmdLineTopicGeneral, + "--crypto", + NULL, + "--crypto " + "\n\tthe name of the crypto engine to use from the following" + "\n\tlist: openssl, gnutls, nss, mscrypto (if no crypto engine is" + "\n\tspecified then the default one is used)", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; +#endif /* !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */ + +static xmlSecAppCmdLineParam cryptoConfigParam = { + xmlSecAppCmdLineTopicGeneral, + "--crypto-config", + NULL, + "--crypto-config " + "\n\tpath to crypto engine configuration", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + + +static xmlSecAppCmdLineParam repeatParam = { + xmlSecAppCmdLineTopicGeneral, + "--repeat", + "-r", + "--repeat " + "\n\trepeat the operation times", + xmlSecAppCmdLineParamTypeNumber, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + + +static xmlSecAppCmdLineParam disableErrorMsgsParam = { + xmlSecAppCmdLineTopicGeneral, + "--disable-error-msgs", + NULL, + "--disable-error-msgs" + "\n\tdo not print xmlsec error messages", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam printCryptoErrorMsgsParam = { + xmlSecAppCmdLineTopicGeneral, + "--print-crypto-error-msgs", + NULL, + "--print-crypto-error-msgs" + "\n\tprint errors stack at the end", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +/**************************************************************** + * + * Keys Manager params + * + ***************************************************************/ +static xmlSecAppCmdLineParam genKeyParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--gen-key", + "-g", + "--gen-key[:] -" + "\n\tgenerate new key of bits size," + "\n\tset the key name to and add the result to keys" + "\n\tmanager (for example, \"--gen:mykey rsa-1024\" generates" + "\n\ta new 1024 bits RSA key and sets it's name to \"mykey\")", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam keysFileParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--keys-file", + "-k", + "--keys-file " + "\n\tload keys from XML file", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam privkeyParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--privkey-pem", + "--privkey", + "--privkey-pem[:] [,[,[...]]]" + "\n\tload private key from PEM file and certificates" + "\n\tthat verify this key", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam privkeyDerParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--privkey-der", + NULL, + "--privkey-der[:] [,[,[...]]]" + "\n\tload private key from DER file and certificates" + "\n\tthat verify this key", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam pkcs8PemParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--pkcs8-pem", + "--privkey-p8-pem", + "--pkcs8-pem[:] [,[,[...]]]" + "\n\tload private key from PKCS8 PEM file and PEM certificates" + "\n\tthat verify this key", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam pkcs8DerParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--pkcs8-der", + "--privkey-p8-der", + "--pkcs8-der[:] [,[,[...]]]" + "\n\tload private key from PKCS8 DER file and DER certificates" + "\n\tthat verify this key", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam pubkeyParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--pubkey-pem", + "--pubkey", + "--pubkey-pem[:] " + "\n\tload public key from PEM file", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam pubkeyDerParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--pubkey-der", + NULL, + "--pubkey-der[:] " + "\n\tload public key from DER file", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + + +#ifndef XMLSEC_NO_AES +static xmlSecAppCmdLineParam aeskeyParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--aeskey", + NULL, + "--aeskey[:] " + "\n\tload AES key from binary file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; +#endif /* XMLSEC_NO_AES */ + +#ifndef XMLSEC_NO_DES +static xmlSecAppCmdLineParam deskeyParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--deskey", + NULL, + "--deskey[:] " + "\n\tload DES key from binary file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; +#endif /* XMLSEC_NO_DES */ + +#ifndef XMLSEC_NO_HMAC +static xmlSecAppCmdLineParam hmackeyParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--hmackey", + NULL, + "--hmackey[:] " + "\n\tload HMAC key from binary file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; +#endif /* XMLSEC_NO_HMAC */ + +static xmlSecAppCmdLineParam pwdParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--pwd", + NULL, + "--pwd " + "\n\tthe password to use for reading keys and certs", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam enabledKeyDataParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--enabled-key-data", + NULL, + "--enabled-key-data " + "\n\tcomma separated list of enabled key data (list of " + "\n\tregistered key data klasses is available with \"--list-key-data\"" + "\n\tcommand); by default, all registered key data are enabled", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam enabledRetrievalMethodUrisParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--enabled-retrieval-method-uris", + NULL, + "--enabled-retrieval-uris " + "\n\tcomma separated list of of the following values:" + "\n\t\"empty\", \"same-doc\", \"local\",\"remote\" to restrict possible URI" + "\n\tattribute values for the element.", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +/**************************************************************** + * + * Common params + * + ***************************************************************/ +static xmlSecAppCmdLineParam sessionKeyParam = { + xmlSecAppCmdLineTopicDSigSign | xmlSecAppCmdLineTopicEncEncrypt, + "--session-key", + NULL, + "--session-key -" + "\n\tgenerate new session key of bits size" + "\n\t(for example, \"--session des-192\" generates a new 192 bits" + "\n\tDES key for DES3 encryption)", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam outputParam = { + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicXkmsCommon, + "--output", + "-o", + "--output " + "\n\twrite result document to file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam nodeIdParam = { + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicXkmsCommon, + "--node-id", + NULL, + "--node-id " + "\n\tset the operation start point to the node with given ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam nodeNameParam = { + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicXkmsCommon, + "--node-name", + NULL, + "--node-name [:]" + "\n\tset the operation start point to the first node" + "\n\twith given and URI", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam nodeXPathParam = { + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicXkmsCommon, + "--node-xpath", + NULL, + "--node-xpath " + "\n\tset the operation start point to the first node" + "\n\tselected by the specified XPath expression", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam dtdFileParam = { + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicXkmsCommon, + "--dtd-file", + NULL, + "--dtd-file " + "\n\tload the specified file as the DTD", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam printDebugParam = { + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicXkmsCommon, + "--print-debug", + NULL, + "--print-debug" + "\n\tprint debug information to stdout", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam printXmlDebugParam = { + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicXkmsCommon, + "--print-xml-debug", + NULL, + "--print-xml-debug" + "\n\tprint debug information to stdout in xml format", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam idAttrParam = { + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicXkmsCommon, + "--id-attr", + NULL, + "--id-attr[:] [:]" + "\n\tadds attributes (default value \"id\") from all nodes" + "\n\twith and namespace to the list of" + "\n\tknown ID attributes; this is a hack and if you can use DTD or schema" + "\n\tto declare ID attributes instead (see \"--dtd-file\" option)," + "\n\tI don't know what else might be broken in your application when" + "\n\tyou use this hack", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + + +/**************************************************************** + * + * Common dsig params + * + ***************************************************************/ +#ifndef XMLSEC_NO_XMLDSIG +static xmlSecAppCmdLineParam ignoreManifestsParam = { + xmlSecAppCmdLineTopicDSigCommon, + "--ignore-manifests", + NULL, + "--ignore-manifests" + "\n\tdo not process elements", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam storeReferencesParam = { + xmlSecAppCmdLineTopicDSigCommon, + "--store-references", + NULL, + "--store-references" + "\n\tstore and print the result of element processing" + "\n\tjust before calculating digest", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam storeSignaturesParam = { + xmlSecAppCmdLineTopicDSigCommon, + "--store-signatures", + NULL, + "--store-signatures" + "\n\tstore and print the result of processing" + "\n\tjust before calculating signature", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam enabledRefUrisParam = { + xmlSecAppCmdLineTopicDSigCommon, + "--enabled-reference-uris", + NULL, + "--enabled-reference-uris " + "\n\tcomma separated list of of the following values:" + "\n\t\"empty\", \"same-doc\", \"local\",\"remote\" to restrict possible URI" + "\n\tattribute values for the element", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam enableVisa3DHackParam = { + xmlSecAppCmdLineTopicDSigCommon, + "--enable-visa3d-hack", + NULL, + "--enable-visa3d-hack" + "\n\tenables Visa3D protocol specific hack for URI attributes processing" + "\n\twhen we are trying not to use XPath/XPointer engine; this is a hack" + "\n\tand I don't know what else might be broken in your application when" + "\n\tyou use it (also check \"--id-attr\" option because you might need it)", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +#endif /* XMLSEC_NO_XMLDSIG */ + +/**************************************************************** + * + * Enc params + * + ***************************************************************/ +#ifndef XMLSEC_NO_XMLENC +static xmlSecAppCmdLineParam enabledCipherRefUrisParam = { + xmlSecAppCmdLineTopicEncCommon, + "--enabled-cipher-reference-uris", + NULL, + "--enabled-cipher-reference-uris " + "\n\tcomma separated list of of the following values:" + "\n\t\"empty\", \"same-doc\", \"local\",\"remote\" to restrict possible URI" + "\n\tattribute values for the element", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam binaryDataParam = { + xmlSecAppCmdLineTopicEncEncrypt, + "--binary-data", + "--binary", + "--binary-data " + "\n\tbinary to encrypt", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam xmlDataParam = { + xmlSecAppCmdLineTopicEncEncrypt, + "--xml-data", + NULL, + "--xml-data " + "\n\tXML to encrypt", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; +#endif /* XMLSEC_NO_XMLENC */ + +/**************************************************************** + * + * XKMS params + * + ***************************************************************/ +#ifndef XMLSEC_NO_XKMS +static xmlSecAppCmdLineParam xkmsServiceParam = { + xmlSecAppCmdLineTopicXkmsCommon, + "--xkms-service", + NULL, + "--xkms-service " + "\n\tsets XKMS \"Service\" ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam xkmsFormatParam = { + xmlSecAppCmdLineTopicXkmsCommon, + "--xkms-format", + NULL, + "--xkms-format " + "\n\tsets the XKMS request/response format to one of the following values:" + "\n\t \"plain\" (default), \"soap-1.1\" or \"soap-1.2\"", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam xkmsStopUnknownResponseMechanismParam = { + xmlSecAppCmdLineTopicXkmsCommon, /* todo: server */ + "--xkms-stop-on-unknown-response-mechanism", + NULL, + "--xkms-stop-on-unknown-response-mechanism" + "\n\tstop processing XKMS server request if unknown ResponseMechanism" + "\n\tvalue was found", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam xkmsStopUnknownRespondWithParam = { + xmlSecAppCmdLineTopicXkmsCommon, /* todo: server */ + "--xkms-stop-on-unknown-respond-with", + NULL, + "--xkms-stop-on-unknown-respond-with" + "\n\tstop processing XKMS server request if unknown RespondWith" + "\n\tvalue was found", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +static xmlSecAppCmdLineParam xkmsStopUnknownKeyUsageParam = { + xmlSecAppCmdLineTopicXkmsCommon, /* todo: server */ + "--xkms-stop-on-unknown-key-usage", + NULL, + "--xkms-stop-on-unknown-key-usage" + "\n\tstop processing XKMS server request if unknown KeyUsage" + "\n\tvalue was found", + xmlSecAppCmdLineParamTypeFlag, + xmlSecAppCmdLineParamFlagNone, + NULL +}; + +#endif /* XMLSEC_NO_XKMS */ + +/**************************************************************** + * + * X509 params + * + ***************************************************************/ +#ifndef XMLSEC_NO_X509 +static xmlSecAppCmdLineParam pkcs12Param = { + xmlSecAppCmdLineTopicKeysMngr, + "--pkcs12", + NULL, + "--pkcs12[:] " + "\n\tload load private key from pkcs12 file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam pubkeyCertParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--pubkey-cert-pem", + "--pubkey-cert", + "--pubkey-cert-pem[:] " + "\n\tload public key from PEM cert file", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam pubkeyCertDerParam = { + xmlSecAppCmdLineTopicKeysMngr, + "--pubkey-cert-der", + NULL, + "--pubkey-cert-der[:] " + "\n\tload public key from DER cert file", + xmlSecAppCmdLineParamTypeStringList, + xmlSecAppCmdLineParamFlagParamNameValue | xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam trustedParam = { + xmlSecAppCmdLineTopicX509Certs, + "--trusted-pem", + "--trusted", + "--trusted-pem " + "\n\tload trusted (root) certificate from PEM file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam untrustedParam = { + xmlSecAppCmdLineTopicX509Certs, + "--untrusted-pem", + "--untrusted", + "--untrusted-pem " + "\n\tload untrusted certificate from PEM file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam trustedDerParam = { + xmlSecAppCmdLineTopicX509Certs, + "--trusted-der", + NULL, + "--trusted-der " + "\n\tload trusted (root) certificate from DER file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam untrustedDerParam = { + xmlSecAppCmdLineTopicX509Certs, + "--untrusted-der", + NULL, + "--untrusted-der " + "\n\tload untrusted certificate from DER file ", + xmlSecAppCmdLineParamTypeString, + xmlSecAppCmdLineParamFlagMultipleValues, + NULL +}; + +static xmlSecAppCmdLineParam verificationTimeParam = { + xmlSecAppCmdLineTopicX509Certs, + "--verification-time", + NULL, + "--verification-time