cjson
.github
workflows CI.yml ci-fuzz.yml
CONTRIBUTING.md
fuzzing
inputs test1 test10 test11 test2 test3 test3.bu test3.uf test3.uu test4 test5 test6 test7 test8 test9
.gitignore CMakeLists.txt afl-prepare-linux.sh afl.c afl.sh cjson_read_fuzzer.c fuzz_main.c json.dict ossfuzz.sh
library_config cJSONConfig.cmake.in cJSONConfigVersion.cmake.in libcjson.pc.in libcjson_utils.pc.in uninstall.cmake
tests
inputs test1 test1.expected test10 test10.expected test11 test11.expected test2 test2.expected test3 test3.expected test4 test4.expected test5 test5.expected test6 test7 test7.expected test8 test8.expected test9 test9.expected
json-patch-tests .editorconfig .gitignore .npmignore README.md cjson-utils-tests.json package.json spec_tests.json tests.json
unity
auto colour_prompt.rb colour_reporter.rb generate_config.yml generate_module.rb generate_test_runner.rb parse_output.rb stylize_as_junit.rb test_file_filter.rb type_sanitizer.rb unity_test_summary.py unity_test_summary.rb unity_to_junit.py
docs ThrowTheSwitchCodingStandard.md UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf UnityAssertionsReference.md UnityConfigurationGuide.md UnityGettingStartedGuide.md UnityHelperScriptsGuide.md license.txt
examples
example_1
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
makefile readme.txt
example_2
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
makefile readme.txt
example_3
helper UnityHelper.c UnityHelper.h
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
rakefile.rb rakefile_helper.rb readme.txt target_gcc_32.yml
unity_config.h
extras
eclipse error_parsers.txt
fixture
src unity_fixture.c unity_fixture.h unity_fixture_internals.h unity_fixture_malloc_overrides.h
rakefile.rb rakefile_helper.rb readme.txt
release build.info version.info
src unity.c unity.h unity_internals.h
.gitattributes .gitignore .travis.yml README.md
CMakeLists.txt cjson_add.c common.h compare_tests.c json_patch_tests.c minify_tests.c misc_tests.c misc_utils_tests.c old_utils_tests.c parse_array.c parse_examples.c parse_hex4.c parse_number.c parse_object.c parse_string.c parse_value.c parse_with_opts.c print_array.c print_number.c print_object.c print_string.c print_value.c readme_examples.c unity_setup.c
.editorconfig .gitattributes .gitignore .travis.yml CHANGELOG.md CMakeLists.txt CONTRIBUTORS.md LICENSE Makefile README.md SECURITY.md appveyor.yml cJSON.c cJSON.h cJSON_Utils.c cJSON_Utils.h test.c valgrind.supp
curl
.circleci config.yml
.github
ISSUE_TEMPLATE bug_report.yml config.yml docs.yml
scripts cleancmd.pl cmp-config.pl cmp-pkg-config.sh codespell-ignore.words codespell.sh distfiles.sh pyspelling.words pyspelling.yaml randcurl.pl requirements-docs.txt requirements-proselint.txt requirements.txt shellcheck-ci.sh shellcheck.sh spellcheck.curl trimmarkdownheader.pl typos.sh typos.toml verify-examples.pl verify-synopsis.pl yamlcheck.sh yamlcheck.yaml
workflows appveyor-status.yml checkdocs.yml checksrc.yml checkurls.yml codeql.yml configure-vs-cmake.yml curl-for-win.yml distcheck.yml fuzz.yml http3-linux.yml label.yml linux-old.yml linux.yml macos.yml non-native.yml windows.yml
CODEOWNERS CONTRIBUTING.md FUNDING.yml dependabot.yml labeler.yml lock.yml stale.yml
CMake CurlSymbolHiding.cmake CurlTests.c FindBrotli.cmake FindCares.cmake FindGSS.cmake FindGnuTLS.cmake FindLDAP.cmake FindLibbacktrace.cmake FindLibgsasl.cmake FindLibidn2.cmake FindLibpsl.cmake FindLibssh.cmake FindLibssh2.cmake FindLibuv.cmake FindMbedTLS.cmake FindNGHTTP2.cmake FindNGHTTP3.cmake FindNGTCP2.cmake FindNettle.cmake FindQuiche.cmake FindRustls.cmake FindWolfSSL.cmake FindZstd.cmake Macros.cmake OtherTests.cmake PickyWarnings.cmake Utilities.cmake cmake_uninstall.in.cmake curl-config.in.cmake unix-cache.cmake win32-cache.cmake
LICENSES BSD-4-Clause-UC.txt ISC.txt curl.txt
docs
cmdline-opts .gitignore CMakeLists.txt MANPAGE.md Makefile.am Makefile.inc _AUTHORS.md _BUGS.md _DESCRIPTION.md _ENVIRONMENT.md _EXITCODES.md _FILES.md _GLOBBING.md _NAME.md _OPTIONS.md _OUTPUT.md _PROGRESS.md _PROTOCOLS.md _PROXYPREFIX.md _SEEALSO.md _SYNOPSIS.md _URL.md _VARIABLES.md _VERSION.md _WWW.md abstract-unix-socket.md alt-svc.md anyauth.md append.md aws-sigv4.md basic.md ca-native.md cacert.md capath.md cert-status.md cert-type.md cert.md ciphers.md compressed-ssh.md compressed.md config.md connect-timeout.md connect-to.md continue-at.md cookie-jar.md cookie.md create-dirs.md create-file-mode.md crlf.md crlfile.md curves.md data-ascii.md data-binary.md data-raw.md data-urlencode.md data.md delegation.md digest.md disable-eprt.md disable-epsv.md disable.md disallow-username-in-url.md dns-interface.md dns-ipv4-addr.md dns-ipv6-addr.md dns-servers.md doh-cert-status.md doh-insecure.md doh-url.md dump-ca-embed.md dump-header.md ech.md egd-file.md engine.md etag-compare.md etag-save.md expect100-timeout.md fail-early.md fail-with-body.md fail.md false-start.md follow.md form-escape.md form-string.md form.md ftp-account.md ftp-alternative-to-user.md ftp-create-dirs.md ftp-method.md ftp-pasv.md ftp-port.md ftp-pret.md ftp-skip-pasv-ip.md ftp-ssl-ccc-mode.md ftp-ssl-ccc.md ftp-ssl-control.md get.md globoff.md happy-eyeballs-timeout-ms.md haproxy-clientip.md haproxy-protocol.md head.md header.md help.md hostpubmd5.md hostpubsha256.md hsts.md http0.9.md http1.0.md http1.1.md http2-prior-knowledge.md http2.md http3-only.md http3.md ignore-content-length.md insecure.md interface.md ip-tos.md ipfs-gateway.md ipv4.md ipv6.md json.md junk-session-cookies.md keepalive-cnt.md keepalive-time.md key-type.md key.md knownhosts.md krb.md libcurl.md limit-rate.md list-only.md local-port.md location-trusted.md location.md login-options.md mail-auth.md mail-from.md mail-rcpt-allowfails.md mail-rcpt.md mainpage.idx manual.md max-filesize.md max-redirs.md max-time.md metalink.md mptcp.md negotiate.md netrc-file.md netrc-optional.md netrc.md next.md no-alpn.md no-buffer.md no-clobber.md no-keepalive.md no-npn.md no-progress-meter.md no-sessionid.md noproxy.md ntlm-wb.md ntlm.md oauth2-bearer.md out-null.md output-dir.md output.md parallel-immediate.md parallel-max-host.md parallel-max.md parallel.md pass.md path-as-is.md pinnedpubkey.md post301.md post302.md post303.md preproxy.md progress-bar.md proto-default.md proto-redir.md proto.md proxy-anyauth.md proxy-basic.md proxy-ca-native.md proxy-cacert.md proxy-capath.md proxy-cert-type.md proxy-cert.md proxy-ciphers.md proxy-crlfile.md proxy-digest.md proxy-header.md proxy-http2.md proxy-insecure.md proxy-key-type.md proxy-key.md proxy-negotiate.md proxy-ntlm.md proxy-pass.md proxy-pinnedpubkey.md proxy-service-name.md proxy-ssl-allow-beast.md proxy-ssl-auto-client-cert.md proxy-tls13-ciphers.md proxy-tlsauthtype.md proxy-tlspassword.md proxy-tlsuser.md proxy-tlsv1.md proxy-user.md proxy.md proxy1.0.md proxytunnel.md pubkey.md quote.md random-file.md range.md rate.md raw.md referer.md remote-header-name.md remote-name-all.md remote-name.md remote-time.md remove-on-error.md request-target.md request.md resolve.md retry-all-errors.md retry-connrefused.md retry-delay.md retry-max-time.md retry.md sasl-authzid.md sasl-ir.md service-name.md show-error.md show-headers.md sigalgs.md silent.md skip-existing.md socks4.md socks4a.md socks5-basic.md socks5-gssapi-nec.md socks5-gssapi-service.md socks5-gssapi.md socks5-hostname.md socks5.md speed-limit.md speed-time.md ssl-allow-beast.md ssl-auto-client-cert.md ssl-no-revoke.md ssl-reqd.md ssl-revoke-best-effort.md ssl-sessions.md ssl.md sslv2.md sslv3.md stderr.md styled-output.md suppress-connect-headers.md tcp-fastopen.md tcp-nodelay.md telnet-option.md tftp-blksize.md tftp-no-options.md time-cond.md tls-earlydata.md tls-max.md tls13-ciphers.md tlsauthtype.md tlspassword.md tlsuser.md tlsv1.0.md tlsv1.1.md tlsv1.2.md tlsv1.3.md tlsv1.md tr-encoding.md trace-ascii.md trace-config.md trace-ids.md trace-time.md trace.md unix-socket.md upload-file.md upload-flags.md url-query.md url.md use-ascii.md user-agent.md user.md variable.md verbose.md version.md vlan-priority.md write-out.md xattr.md
examples .checksrc .gitignore 10-at-a-time.c CMakeLists.txt Makefile.am Makefile.example Makefile.inc README.md adddocsref.pl address-scope.c altsvc.c anyauthput.c block_ip.c cacertinmem.c certinfo.c chkspeed.c connect-to.c cookie_interface.c crawler.c debug.c default-scheme.c ephiperfifo.c evhiperfifo.c externalsocket.c fileupload.c ftp-delete.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c getinfo.c getinmemory.c getredirect.c getreferrer.c ghiper.c headerapi.c hiperfifo.c hsts-preload.c htmltidy.c htmltitle.cpp http-options.c http-post.c http2-download.c http2-pushinmemory.c http2-serverpush.c http2-upload.c http3-present.c http3.c httpcustomheader.c httpput-postfields.c httpput.c https.c imap-append.c imap-authzid.c imap-copy.c imap-create.c imap-delete.c imap-examine.c imap-fetch.c imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c imap-tls.c interface.c ipv6.c keepalive.c localport.c log_failed_transfers.c maxconnects.c multi-app.c multi-debugcallback.c multi-double.c multi-event.c multi-formadd.c multi-legacy.c multi-post.c multi-single.c multi-uv.c netrc.c parseurl.c persistent.c pop3-authzid.c pop3-dele.c pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c postinmemory.c postit2-formadd.c postit2.c progressfunc.c protofeats.c range.c resolve.c rtsp-options.c sendrecv.c sepheaders.c sessioninfo.c sftpget.c sftpuploadresume.c shared-connection-cache.c simple.c simplepost.c simplessl.c smooth-gtk-thread.c smtp-authzid.c smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c smtp-tls.c smtp-vrfy.c sslbackend.c synctime.c threaded.c unixsocket.c url2file.c urlapi.c usercertinmem.c version-check.pl websocket-cb.c websocket-updown.c websocket.c xmlstream.c
internals BUFQ.md BUFREF.md CHECKSRC.md CLIENT-READERS.md CLIENT-WRITERS.md CODE_STYLE.md CONNECTION-FILTERS.md CREDENTIALS.md CURLX.md DYNBUF.md HASH.md LLIST.md MID.md MQTT.md MULTI-EV.md NEW-PROTOCOL.md PEERS.md PORTING.md RATELIMITS.md README.md SCORECARD.md SPLAY.md STRPARSE.md THRDPOOL-AND-QUEUE.md TIME-KEEPING.md TLS-SESSIONS.md UINT_SETS.md WEBSOCKET.md
libcurl
opts CMakeLists.txt CURLINFO_ACTIVESOCKET.md CURLINFO_APPCONNECT_TIME.md CURLINFO_APPCONNECT_TIME_T.md CURLINFO_CAINFO.md CURLINFO_CAPATH.md CURLINFO_CERTINFO.md CURLINFO_CONDITION_UNMET.md CURLINFO_CONNECT_TIME.md CURLINFO_CONNECT_TIME_T.md CURLINFO_CONN_ID.md CURLINFO_CONTENT_LENGTH_DOWNLOAD.md CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.md CURLINFO_CONTENT_LENGTH_UPLOAD.md CURLINFO_CONTENT_LENGTH_UPLOAD_T.md CURLINFO_CONTENT_TYPE.md CURLINFO_COOKIELIST.md CURLINFO_EARLYDATA_SENT_T.md CURLINFO_EFFECTIVE_METHOD.md CURLINFO_EFFECTIVE_URL.md CURLINFO_FILETIME.md CURLINFO_FILETIME_T.md CURLINFO_FTP_ENTRY_PATH.md CURLINFO_HEADER_SIZE.md CURLINFO_HTTPAUTH_AVAIL.md CURLINFO_HTTPAUTH_USED.md CURLINFO_HTTP_CONNECTCODE.md CURLINFO_HTTP_VERSION.md CURLINFO_LASTSOCKET.md CURLINFO_LOCAL_IP.md CURLINFO_LOCAL_PORT.md CURLINFO_NAMELOOKUP_TIME.md CURLINFO_NAMELOOKUP_TIME_T.md CURLINFO_NUM_CONNECTS.md CURLINFO_OS_ERRNO.md CURLINFO_POSTTRANSFER_TIME_T.md CURLINFO_PRETRANSFER_TIME.md CURLINFO_PRETRANSFER_TIME_T.md CURLINFO_PRIMARY_IP.md CURLINFO_PRIMARY_PORT.md CURLINFO_PRIVATE.md CURLINFO_PROTOCOL.md CURLINFO_PROXYAUTH_AVAIL.md CURLINFO_PROXYAUTH_USED.md CURLINFO_PROXY_ERROR.md CURLINFO_PROXY_SSL_VERIFYRESULT.md CURLINFO_QUEUE_TIME_T.md CURLINFO_REDIRECT_COUNT.md CURLINFO_REDIRECT_TIME.md CURLINFO_REDIRECT_TIME_T.md CURLINFO_REDIRECT_URL.md CURLINFO_REFERER.md CURLINFO_REQUEST_SIZE.md CURLINFO_RESPONSE_CODE.md CURLINFO_RETRY_AFTER.md CURLINFO_RTSP_CLIENT_CSEQ.md CURLINFO_RTSP_CSEQ_RECV.md CURLINFO_RTSP_SERVER_CSEQ.md CURLINFO_RTSP_SESSION_ID.md CURLINFO_SCHEME.md CURLINFO_SIZE_DELIVERED.md CURLINFO_SIZE_DOWNLOAD.md CURLINFO_SIZE_DOWNLOAD_T.md CURLINFO_SIZE_UPLOAD.md CURLINFO_SIZE_UPLOAD_T.md CURLINFO_SPEED_DOWNLOAD.md CURLINFO_SPEED_DOWNLOAD_T.md CURLINFO_SPEED_UPLOAD.md CURLINFO_SPEED_UPLOAD_T.md CURLINFO_SSL_ENGINES.md CURLINFO_SSL_VERIFYRESULT.md CURLINFO_STARTTRANSFER_TIME.md CURLINFO_STARTTRANSFER_TIME_T.md CURLINFO_TLS_SESSION.md CURLINFO_TLS_SSL_PTR.md CURLINFO_TOTAL_TIME.md CURLINFO_TOTAL_TIME_T.md CURLINFO_USED_PROXY.md CURLINFO_XFER_ID.md CURLMINFO_XFERS_ADDED.md CURLMINFO_XFERS_CURRENT.md CURLMINFO_XFERS_DONE.md CURLMINFO_XFERS_PENDING.md CURLMINFO_XFERS_RUNNING.md CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.md CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.md CURLMOPT_MAXCONNECTS.md CURLMOPT_MAX_CONCURRENT_STREAMS.md CURLMOPT_MAX_HOST_CONNECTIONS.md CURLMOPT_MAX_PIPELINE_LENGTH.md CURLMOPT_MAX_TOTAL_CONNECTIONS.md CURLMOPT_NETWORK_CHANGED.md CURLMOPT_NOTIFYDATA.md CURLMOPT_NOTIFYFUNCTION.md CURLMOPT_PIPELINING.md CURLMOPT_PIPELINING_SERVER_BL.md CURLMOPT_PIPELINING_SITE_BL.md CURLMOPT_PUSHDATA.md CURLMOPT_PUSHFUNCTION.md CURLMOPT_QUICK_EXIT.md CURLMOPT_RESOLVE_THREADS_MAX.md CURLMOPT_SOCKETDATA.md CURLMOPT_SOCKETFUNCTION.md CURLMOPT_TIMERDATA.md CURLMOPT_TIMERFUNCTION.md CURLOPT_ABSTRACT_UNIX_SOCKET.md CURLOPT_ACCEPTTIMEOUT_MS.md CURLOPT_ACCEPT_ENCODING.md CURLOPT_ADDRESS_SCOPE.md CURLOPT_ALTSVC.md CURLOPT_ALTSVC_CTRL.md CURLOPT_APPEND.md CURLOPT_AUTOREFERER.md CURLOPT_AWS_SIGV4.md CURLOPT_BUFFERSIZE.md CURLOPT_CAINFO.md CURLOPT_CAINFO_BLOB.md CURLOPT_CAPATH.md CURLOPT_CA_CACHE_TIMEOUT.md CURLOPT_CERTINFO.md CURLOPT_CHUNK_BGN_FUNCTION.md CURLOPT_CHUNK_DATA.md CURLOPT_CHUNK_END_FUNCTION.md CURLOPT_CLOSESOCKETDATA.md CURLOPT_CLOSESOCKETFUNCTION.md CURLOPT_CONNECTTIMEOUT.md CURLOPT_CONNECTTIMEOUT_MS.md CURLOPT_CONNECT_ONLY.md CURLOPT_CONNECT_TO.md CURLOPT_CONV_FROM_NETWORK_FUNCTION.md CURLOPT_CONV_FROM_UTF8_FUNCTION.md CURLOPT_CONV_TO_NETWORK_FUNCTION.md CURLOPT_COOKIE.md CURLOPT_COOKIEFILE.md CURLOPT_COOKIEJAR.md CURLOPT_COOKIELIST.md CURLOPT_COOKIESESSION.md CURLOPT_COPYPOSTFIELDS.md CURLOPT_CRLF.md CURLOPT_CRLFILE.md CURLOPT_CURLU.md CURLOPT_CUSTOMREQUEST.md CURLOPT_DEBUGDATA.md CURLOPT_DEBUGFUNCTION.md CURLOPT_DEFAULT_PROTOCOL.md CURLOPT_DIRLISTONLY.md CURLOPT_DISALLOW_USERNAME_IN_URL.md CURLOPT_DNS_CACHE_TIMEOUT.md CURLOPT_DNS_INTERFACE.md CURLOPT_DNS_LOCAL_IP4.md CURLOPT_DNS_LOCAL_IP6.md CURLOPT_DNS_SERVERS.md CURLOPT_DNS_SHUFFLE_ADDRESSES.md CURLOPT_DNS_USE_GLOBAL_CACHE.md CURLOPT_DOH_SSL_VERIFYHOST.md CURLOPT_DOH_SSL_VERIFYPEER.md CURLOPT_DOH_SSL_VERIFYSTATUS.md CURLOPT_DOH_URL.md CURLOPT_ECH.md CURLOPT_EGDSOCKET.md CURLOPT_ERRORBUFFER.md CURLOPT_EXPECT_100_TIMEOUT_MS.md CURLOPT_FAILONERROR.md CURLOPT_FILETIME.md CURLOPT_FNMATCH_DATA.md CURLOPT_FNMATCH_FUNCTION.md CURLOPT_FOLLOWLOCATION.md CURLOPT_FORBID_REUSE.md CURLOPT_FRESH_CONNECT.md CURLOPT_FTPPORT.md CURLOPT_FTPSSLAUTH.md CURLOPT_FTP_ACCOUNT.md CURLOPT_FTP_ALTERNATIVE_TO_USER.md CURLOPT_FTP_CREATE_MISSING_DIRS.md CURLOPT_FTP_FILEMETHOD.md CURLOPT_FTP_SKIP_PASV_IP.md CURLOPT_FTP_SSL_CCC.md CURLOPT_FTP_USE_EPRT.md CURLOPT_FTP_USE_EPSV.md CURLOPT_FTP_USE_PRET.md CURLOPT_GSSAPI_DELEGATION.md CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.md CURLOPT_HAPROXYPROTOCOL.md CURLOPT_HAPROXY_CLIENT_IP.md CURLOPT_HEADER.md CURLOPT_HEADERDATA.md CURLOPT_HEADERFUNCTION.md CURLOPT_HEADEROPT.md CURLOPT_HSTS.md CURLOPT_HSTSREADDATA.md CURLOPT_HSTSREADFUNCTION.md CURLOPT_HSTSWRITEDATA.md CURLOPT_HSTSWRITEFUNCTION.md CURLOPT_HSTS_CTRL.md CURLOPT_HTTP09_ALLOWED.md CURLOPT_HTTP200ALIASES.md CURLOPT_HTTPAUTH.md CURLOPT_HTTPGET.md CURLOPT_HTTPHEADER.md CURLOPT_HTTPPOST.md CURLOPT_HTTPPROXYTUNNEL.md CURLOPT_HTTP_CONTENT_DECODING.md CURLOPT_HTTP_TRANSFER_DECODING.md CURLOPT_HTTP_VERSION.md CURLOPT_IGNORE_CONTENT_LENGTH.md CURLOPT_INFILESIZE.md CURLOPT_INFILESIZE_LARGE.md CURLOPT_INTERFACE.md CURLOPT_INTERLEAVEDATA.md CURLOPT_INTERLEAVEFUNCTION.md CURLOPT_IOCTLDATA.md CURLOPT_IOCTLFUNCTION.md CURLOPT_IPRESOLVE.md CURLOPT_ISSUERCERT.md CURLOPT_ISSUERCERT_BLOB.md CURLOPT_KEEP_SENDING_ON_ERROR.md CURLOPT_KEYPASSWD.md CURLOPT_KRBLEVEL.md CURLOPT_LOCALPORT.md CURLOPT_LOCALPORTRANGE.md CURLOPT_LOGIN_OPTIONS.md CURLOPT_LOW_SPEED_LIMIT.md CURLOPT_LOW_SPEED_TIME.md CURLOPT_MAIL_AUTH.md CURLOPT_MAIL_FROM.md CURLOPT_MAIL_RCPT.md CURLOPT_MAIL_RCPT_ALLOWFAILS.md CURLOPT_MAXAGE_CONN.md CURLOPT_MAXCONNECTS.md CURLOPT_MAXFILESIZE.md CURLOPT_MAXFILESIZE_LARGE.md CURLOPT_MAXLIFETIME_CONN.md CURLOPT_MAXREDIRS.md CURLOPT_MAX_RECV_SPEED_LARGE.md CURLOPT_MAX_SEND_SPEED_LARGE.md CURLOPT_MIMEPOST.md CURLOPT_MIME_OPTIONS.md CURLOPT_NETRC.md CURLOPT_NETRC_FILE.md CURLOPT_NEW_DIRECTORY_PERMS.md CURLOPT_NEW_FILE_PERMS.md CURLOPT_NOBODY.md CURLOPT_NOPROGRESS.md CURLOPT_NOPROXY.md CURLOPT_NOSIGNAL.md CURLOPT_OPENSOCKETDATA.md CURLOPT_OPENSOCKETFUNCTION.md CURLOPT_PASSWORD.md CURLOPT_PATH_AS_IS.md CURLOPT_PINNEDPUBLICKEY.md CURLOPT_PIPEWAIT.md CURLOPT_PORT.md CURLOPT_POST.md CURLOPT_POSTFIELDS.md CURLOPT_POSTFIELDSIZE.md CURLOPT_POSTFIELDSIZE_LARGE.md CURLOPT_POSTQUOTE.md CURLOPT_POSTREDIR.md CURLOPT_PREQUOTE.md CURLOPT_PREREQDATA.md CURLOPT_PREREQFUNCTION.md CURLOPT_PRE_PROXY.md CURLOPT_PRIVATE.md CURLOPT_PROGRESSDATA.md CURLOPT_PROGRESSFUNCTION.md CURLOPT_PROTOCOLS.md CURLOPT_PROTOCOLS_STR.md CURLOPT_PROXY.md CURLOPT_PROXYAUTH.md CURLOPT_PROXYHEADER.md CURLOPT_PROXYPASSWORD.md CURLOPT_PROXYPORT.md CURLOPT_PROXYTYPE.md CURLOPT_PROXYUSERNAME.md CURLOPT_PROXYUSERPWD.md CURLOPT_PROXY_CAINFO.md CURLOPT_PROXY_CAINFO_BLOB.md CURLOPT_PROXY_CAPATH.md CURLOPT_PROXY_CRLFILE.md CURLOPT_PROXY_ISSUERCERT.md CURLOPT_PROXY_ISSUERCERT_BLOB.md CURLOPT_PROXY_KEYPASSWD.md CURLOPT_PROXY_PINNEDPUBLICKEY.md CURLOPT_PROXY_SERVICE_NAME.md CURLOPT_PROXY_SSLCERT.md CURLOPT_PROXY_SSLCERTTYPE.md CURLOPT_PROXY_SSLCERT_BLOB.md CURLOPT_PROXY_SSLKEY.md CURLOPT_PROXY_SSLKEYTYPE.md CURLOPT_PROXY_SSLKEY_BLOB.md CURLOPT_PROXY_SSLVERSION.md CURLOPT_PROXY_SSL_CIPHER_LIST.md CURLOPT_PROXY_SSL_OPTIONS.md CURLOPT_PROXY_SSL_VERIFYHOST.md CURLOPT_PROXY_SSL_VERIFYPEER.md CURLOPT_PROXY_TLS13_CIPHERS.md CURLOPT_PROXY_TLSAUTH_PASSWORD.md CURLOPT_PROXY_TLSAUTH_TYPE.md CURLOPT_PROXY_TLSAUTH_USERNAME.md CURLOPT_PROXY_TRANSFER_MODE.md CURLOPT_PUT.md CURLOPT_QUICK_EXIT.md CURLOPT_QUOTE.md CURLOPT_RANDOM_FILE.md CURLOPT_RANGE.md CURLOPT_READDATA.md CURLOPT_READFUNCTION.md CURLOPT_REDIR_PROTOCOLS.md CURLOPT_REDIR_PROTOCOLS_STR.md CURLOPT_REFERER.md CURLOPT_REQUEST_TARGET.md CURLOPT_RESOLVE.md CURLOPT_RESOLVER_START_DATA.md CURLOPT_RESOLVER_START_FUNCTION.md CURLOPT_RESUME_FROM.md CURLOPT_RESUME_FROM_LARGE.md CURLOPT_RTSP_CLIENT_CSEQ.md CURLOPT_RTSP_REQUEST.md CURLOPT_RTSP_SERVER_CSEQ.md CURLOPT_RTSP_SESSION_ID.md CURLOPT_RTSP_STREAM_URI.md CURLOPT_RTSP_TRANSPORT.md CURLOPT_SASL_AUTHZID.md CURLOPT_SASL_IR.md CURLOPT_SEEKDATA.md CURLOPT_SEEKFUNCTION.md CURLOPT_SERVER_RESPONSE_TIMEOUT.md CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.md CURLOPT_SERVICE_NAME.md CURLOPT_SHARE.md CURLOPT_SOCKOPTDATA.md CURLOPT_SOCKOPTFUNCTION.md CURLOPT_SOCKS5_AUTH.md CURLOPT_SOCKS5_GSSAPI_NEC.md CURLOPT_SOCKS5_GSSAPI_SERVICE.md CURLOPT_SSH_AUTH_TYPES.md CURLOPT_SSH_COMPRESSION.md CURLOPT_SSH_HOSTKEYDATA.md CURLOPT_SSH_HOSTKEYFUNCTION.md CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.md CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.md CURLOPT_SSH_KEYDATA.md CURLOPT_SSH_KEYFUNCTION.md CURLOPT_SSH_KNOWNHOSTS.md CURLOPT_SSH_PRIVATE_KEYFILE.md CURLOPT_SSH_PUBLIC_KEYFILE.md CURLOPT_SSLCERT.md CURLOPT_SSLCERTTYPE.md CURLOPT_SSLCERT_BLOB.md CURLOPT_SSLENGINE.md CURLOPT_SSLENGINE_DEFAULT.md CURLOPT_SSLKEY.md CURLOPT_SSLKEYTYPE.md CURLOPT_SSLKEY_BLOB.md CURLOPT_SSLVERSION.md CURLOPT_SSL_CIPHER_LIST.md CURLOPT_SSL_CTX_DATA.md CURLOPT_SSL_CTX_FUNCTION.md CURLOPT_SSL_EC_CURVES.md CURLOPT_SSL_ENABLE_ALPN.md CURLOPT_SSL_ENABLE_NPN.md CURLOPT_SSL_FALSESTART.md CURLOPT_SSL_OPTIONS.md CURLOPT_SSL_SESSIONID_CACHE.md CURLOPT_SSL_SIGNATURE_ALGORITHMS.md CURLOPT_SSL_VERIFYHOST.md CURLOPT_SSL_VERIFYPEER.md CURLOPT_SSL_VERIFYSTATUS.md CURLOPT_STDERR.md CURLOPT_STREAM_DEPENDS.md CURLOPT_STREAM_DEPENDS_E.md CURLOPT_STREAM_WEIGHT.md CURLOPT_SUPPRESS_CONNECT_HEADERS.md CURLOPT_TCP_FASTOPEN.md CURLOPT_TCP_KEEPALIVE.md CURLOPT_TCP_KEEPCNT.md CURLOPT_TCP_KEEPIDLE.md CURLOPT_TCP_KEEPINTVL.md CURLOPT_TCP_NODELAY.md CURLOPT_TELNETOPTIONS.md CURLOPT_TFTP_BLKSIZE.md CURLOPT_TFTP_NO_OPTIONS.md CURLOPT_TIMECONDITION.md CURLOPT_TIMEOUT.md CURLOPT_TIMEOUT_MS.md CURLOPT_TIMEVALUE.md CURLOPT_TIMEVALUE_LARGE.md CURLOPT_TLS13_CIPHERS.md CURLOPT_TLSAUTH_PASSWORD.md CURLOPT_TLSAUTH_TYPE.md CURLOPT_TLSAUTH_USERNAME.md CURLOPT_TRAILERDATA.md CURLOPT_TRAILERFUNCTION.md CURLOPT_TRANSFERTEXT.md CURLOPT_TRANSFER_ENCODING.md CURLOPT_UNIX_SOCKET_PATH.md CURLOPT_UNRESTRICTED_AUTH.md CURLOPT_UPKEEP_INTERVAL_MS.md CURLOPT_UPLOAD.md CURLOPT_UPLOAD_BUFFERSIZE.md CURLOPT_UPLOAD_FLAGS.md CURLOPT_URL.md CURLOPT_USERAGENT.md CURLOPT_USERNAME.md CURLOPT_USERPWD.md CURLOPT_USE_SSL.md CURLOPT_VERBOSE.md CURLOPT_WILDCARDMATCH.md CURLOPT_WRITEDATA.md CURLOPT_WRITEFUNCTION.md CURLOPT_WS_OPTIONS.md CURLOPT_XFERINFODATA.md CURLOPT_XFERINFOFUNCTION.md CURLOPT_XOAUTH2_BEARER.md CURLSHOPT_LOCKFUNC.md CURLSHOPT_SHARE.md CURLSHOPT_UNLOCKFUNC.md CURLSHOPT_UNSHARE.md CURLSHOPT_USERDATA.md Makefile.am Makefile.inc
.gitignore ABI.md CMakeLists.txt Makefile.am Makefile.inc curl_easy_cleanup.md curl_easy_duphandle.md curl_easy_escape.md curl_easy_getinfo.md curl_easy_header.md curl_easy_init.md curl_easy_nextheader.md curl_easy_option_by_id.md curl_easy_option_by_name.md curl_easy_option_next.md curl_easy_pause.md curl_easy_perform.md curl_easy_recv.md curl_easy_reset.md curl_easy_send.md curl_easy_setopt.md curl_easy_ssls_export.md curl_easy_ssls_import.md curl_easy_strerror.md curl_easy_unescape.md curl_easy_upkeep.md curl_escape.md curl_formadd.md curl_formfree.md curl_formget.md curl_free.md curl_getdate.md curl_getenv.md curl_global_cleanup.md curl_global_init.md curl_global_init_mem.md curl_global_sslset.md curl_global_trace.md curl_mime_addpart.md curl_mime_data.md curl_mime_data_cb.md curl_mime_encoder.md curl_mime_filedata.md curl_mime_filename.md curl_mime_free.md curl_mime_headers.md curl_mime_init.md curl_mime_name.md curl_mime_subparts.md curl_mime_type.md curl_mprintf.md curl_multi_add_handle.md curl_multi_assign.md curl_multi_cleanup.md curl_multi_fdset.md curl_multi_get_handles.md curl_multi_get_offt.md curl_multi_info_read.md curl_multi_init.md curl_multi_notify_disable.md curl_multi_notify_enable.md curl_multi_perform.md curl_multi_poll.md curl_multi_remove_handle.md curl_multi_setopt.md curl_multi_socket.md curl_multi_socket_action.md curl_multi_socket_all.md curl_multi_strerror.md curl_multi_timeout.md curl_multi_wait.md curl_multi_waitfds.md curl_multi_wakeup.md curl_pushheader_byname.md curl_pushheader_bynum.md curl_share_cleanup.md curl_share_init.md curl_share_setopt.md curl_share_strerror.md curl_slist_append.md curl_slist_free_all.md curl_strequal.md curl_strnequal.md curl_unescape.md curl_url.md curl_url_cleanup.md curl_url_dup.md curl_url_get.md curl_url_set.md curl_url_strerror.md curl_version.md curl_version_info.md curl_ws_meta.md curl_ws_recv.md curl_ws_send.md curl_ws_start_frame.md libcurl-easy.md libcurl-env-dbg.md libcurl-env.md libcurl-errors.md libcurl-multi.md libcurl-security.md libcurl-share.md libcurl-thread.md libcurl-tutorial.md libcurl-url.md libcurl-ws.md libcurl.m4 libcurl.md mksymbolsmanpage.pl symbols-in-versions symbols.pl
tests CI.md FILEFORMAT.md HTTP.md TEST-SUITE.md
.gitignore ALTSVC.md BINDINGS.md BUG-BOUNTY.md BUGS.md CIPHERS-TLS12.md CIPHERS.md CMakeLists.txt CODE_OF_CONDUCT.md CODE_REVIEW.md CONTRIBUTE.md CURL-DISABLE.md CURLDOWN.md DEPRECATE.md DISTROS.md EARLY-RELEASE.md ECH.md EXPERIMENTAL.md FAQ.md FEATURES.md GOVERNANCE.md HELP-US.md HISTORY.md HSTS.md HTTP-COOKIES.md HTTP3.md HTTPSRR.md INFRASTRUCTURE.md INSTALL-CMAKE.md INSTALL.md INTERNALS.md IPFS.md KNOWN_BUGS.md KNOWN_RISKS.md MAIL-ETIQUETTE.md MANUAL.md Makefile.am README.md RELEASE-PROCEDURE.md ROADMAP.md RUSTLS.md SECURITY-ADVISORY.md SPONSORS.md SSL-PROBLEMS.md SSLCERTS.md THANKS THANKS-filter TODO.md TheArtOfHttpScripting.md URL-SYNTAX.md VERIFY.md VERSIONS.md VULN-DISCLOSURE-POLICY.md curl-config.md mk-ca-bundle.md options-in-versions runtests.md testcurl.md wcurl.md
include
curl Makefile.am curl.h curlver.h easy.h header.h mprintf.h multi.h options.h stdcheaders.h system.h typecheck-gcc.h urlapi.h websockets.h
Makefile.am README.md
lib
curlx base64.c base64.h basename.c basename.h dynbuf.c dynbuf.h fopen.c fopen.h inet_ntop.c inet_ntop.h inet_pton.c inet_pton.h multibyte.c multibyte.h nonblock.c nonblock.h snprintf.c snprintf.h strcopy.c strcopy.h strdup.c strdup.h strerr.c strerr.h strparse.c strparse.h timediff.c timediff.h timeval.c timeval.h version_win32.c version_win32.h wait.c wait.h warnless.c warnless.h winapi.c winapi.h
vauth cleartext.c cram.c digest.c digest.h digest_sspi.c gsasl.c krb5_gssapi.c krb5_sspi.c ntlm.c ntlm_sspi.c oauth2.c spnego_gssapi.c spnego_sspi.c vauth.c vauth.h
vquic curl_ngtcp2.c curl_ngtcp2.h curl_quiche.c curl_quiche.h vquic-tls.c vquic-tls.h vquic.c vquic.h vquic_int.h
vssh libssh.c libssh2.c ssh.h vssh.c vssh.h
vtls apple.c apple.h cipher_suite.c cipher_suite.h gtls.c gtls.h hostcheck.c hostcheck.h keylog.c keylog.h mbedtls.c mbedtls.h openssl.c openssl.h rustls.c rustls.h schannel.c schannel.h schannel_int.h schannel_verify.c vtls.c vtls.h vtls_int.h vtls_scache.c vtls_scache.h vtls_spack.c vtls_spack.h wolfssl.c wolfssl.h x509asn1.c x509asn1.h
.gitignore CMakeLists.txt Makefile.am Makefile.inc Makefile.soname altsvc.c altsvc.h amigaos.c amigaos.h arpa_telnet.h asyn-ares.c asyn-base.c asyn-thrdd.c asyn.h bufq.c bufq.h bufref.c bufref.h cf-dns.c cf-dns.h cf-h1-proxy.c cf-h1-proxy.h cf-h2-proxy.c cf-h2-proxy.h cf-haproxy.c cf-haproxy.h cf-https-connect.c cf-https-connect.h cf-ip-happy.c cf-ip-happy.h cf-socket.c cf-socket.h cfilters.c cfilters.h config-mac.h config-os400.h config-riscos.h config-win32.h conncache.c conncache.h connect.c connect.h content_encoding.c content_encoding.h cookie.c cookie.h creds.c creds.h cshutdn.c cshutdn.h curl_addrinfo.c curl_addrinfo.h curl_config-cmake.h.in curl_ctype.h curl_endian.c curl_endian.h curl_fnmatch.c curl_fnmatch.h curl_fopen.c curl_fopen.h curl_get_line.c curl_get_line.h curl_gethostname.c curl_gethostname.h curl_gssapi.c curl_gssapi.h curl_hmac.h curl_ldap.h curl_md4.h curl_md5.h curl_memrchr.c curl_memrchr.h curl_ntlm_core.c curl_ntlm_core.h curl_printf.h curl_range.c curl_range.h curl_sasl.c curl_sasl.h curl_setup.h curl_sha256.h curl_sha512_256.c curl_sha512_256.h curl_share.c curl_share.h curl_sspi.c curl_sspi.h curl_threads.c curl_threads.h curl_trc.c curl_trc.h cw-out.c cw-out.h cw-pause.c cw-pause.h dict.c dict.h dllmain.c dnscache.c dnscache.h doh.c doh.h dynhds.c dynhds.h easy.c easy_lock.h easygetopt.c easyif.h easyoptions.c easyoptions.h escape.c escape.h fake_addrinfo.c fake_addrinfo.h file.c file.h fileinfo.c fileinfo.h formdata.c formdata.h ftp-int.h ftp.c ftp.h ftplistparser.c ftplistparser.h functypes.h getenv.c getinfo.c getinfo.h gopher.c gopher.h hash.c hash.h headers.c headers.h hmac.c hostip.c hostip.h hostip4.c hostip6.c hsts.c hsts.h http.c http.h http1.c http1.h http2.c http2.h http_aws_sigv4.c http_aws_sigv4.h http_chunks.c http_chunks.h http_digest.c http_digest.h http_negotiate.c http_negotiate.h http_ntlm.c http_ntlm.h http_proxy.c http_proxy.h httpsrr.c httpsrr.h idn.c idn.h if2ip.c if2ip.h imap.c imap.h ldap.c libcurl.def libcurl.rc libcurl.vers.in llist.c llist.h macos.c macos.h md4.c md5.c memdebug.c mime.c mime.h mprintf.c mqtt.c mqtt.h multi.c multi_ev.c multi_ev.h multi_ntfy.c multi_ntfy.h multihandle.h multiif.h netrc.c netrc.h noproxy.c noproxy.h openldap.c optiontable.pl parsedate.c parsedate.h peer.c peer.h pingpong.c pingpong.h pop3.c pop3.h progress.c progress.h protocol.c protocol.h psl.c psl.h rand.c rand.h ratelimit.c ratelimit.h request.c request.h rtsp.c rtsp.h select.c select.h sendf.c sendf.h setopt.c setopt.h setup-os400.h setup-vms.h setup-win32.h sha256.c sigpipe.h slist.c slist.h smb.c smb.h smtp.c smtp.h sockaddr.h socketpair.c socketpair.h socks.c socks.h socks_gssapi.c socks_sspi.c splay.c splay.h strcase.c strcase.h strequal.c strerror.c strerror.h system_win32.c system_win32.h telnet.c telnet.h tftp.c tftp.h thrdpool.c thrdpool.h thrdqueue.c thrdqueue.h transfer.c transfer.h uint-bset.c uint-bset.h uint-hash.c uint-hash.h uint-spbset.c uint-spbset.h uint-table.c uint-table.h url.c url.h urlapi-int.h urlapi.c urldata.h version.c ws.c ws.h
m4 .gitignore curl-amissl.m4 curl-apple-sectrust.m4 curl-compilers.m4 curl-confopts.m4 curl-functions.m4 curl-gnutls.m4 curl-mbedtls.m4 curl-openssl.m4 curl-override.m4 curl-reentrant.m4 curl-rustls.m4 curl-schannel.m4 curl-sysconfig.m4 curl-wolfssl.m4 xc-am-iface.m4 xc-cc-check.m4 xc-lt-iface.m4 xc-val-flgs.m4 zz40-xc-ovr.m4 zz50-xc-ovr.m4
projects
OS400
rpg-examples HEADERAPI HTTPPOST INMEMORY SIMPLE1 SIMPLE2 SMTPSRCMBR
.checksrc README.OS400 ccsidcurl.c ccsidcurl.h config400.default curl.cmd curl.inc.in curlcl.c curlmain.c initscript.sh make-docs.sh make-include.sh make-lib.sh make-src.sh make-tests.sh makefile.sh os400sys.c os400sys.h
Windows
tmpl .gitattributes README.txt curl-all.sln curl.sln curl.vcxproj curl.vcxproj.filters libcurl.sln libcurl.vcxproj libcurl.vcxproj.filters
.gitignore README.md generate.bat
vms Makefile.am backup_gnv_curl_src.com build_curl-config_script.com build_gnv_curl.com build_gnv_curl_pcsi_desc.com build_gnv_curl_pcsi_text.com build_gnv_curl_release_notes.com build_libcurl_pc.com build_vms.com clean_gnv_curl.com compare_curl_source.com config_h.com curl_crtl_init.c curl_gnv_build_steps.txt curl_release_note_start.txt curl_startup.com curlmsg.h curlmsg.msg curlmsg.sdl curlmsg_vms.h generate_config_vms_h_curl.com generate_vax_transfer.com gnv_conftest.c_first gnv_curl_configure.sh gnv_libcurl_symbols.opt gnv_link_curl.com macro32_exactcase.patch make_gnv_curl_install.sh make_pcsi_curl_kit_name.com pcsi_gnv_curl_file_list.txt pcsi_product_gnv_curl.com readme report_openssl_version.c setup_gnv_curl_build.com stage_curl_install.com vms_eco_level.h
Makefile.am README.md
scripts .checksrc CMakeLists.txt Makefile.am badwords badwords-all badwords.txt cd2cd cd2nroff cdall checksrc-all.pl checksrc.pl cmakelint.sh completion.pl contributors.sh contrithanks.sh coverage.sh delta dmaketgz extract-unit-protos firefox-db2pem.sh installcheck.sh maketgz managen mdlinkcheck mk-ca-bundle.pl mk-unity.pl nroff2cd perlcheck.sh pythonlint.sh randdisable release-notes.pl release-tools.sh schemetable.c singleuse.pl spacecheck.pl top-complexity top-length verify-release wcurl
src
toolx tool_time.c tool_time.h
.checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc config2setopts.c config2setopts.h curl.rc curlinfo.c mk-file-embed.pl mkhelp.pl slist_wc.c slist_wc.h terminal.c terminal.h tool_cb_dbg.c tool_cb_dbg.h tool_cb_hdr.c tool_cb_hdr.h tool_cb_prg.c tool_cb_prg.h tool_cb_rea.c tool_cb_rea.h tool_cb_see.c tool_cb_see.h tool_cb_soc.c tool_cb_soc.h tool_cb_wrt.c tool_cb_wrt.h tool_cfgable.c tool_cfgable.h tool_dirhie.c tool_dirhie.h tool_doswin.c tool_doswin.h tool_easysrc.c tool_easysrc.h tool_filetime.c tool_filetime.h tool_findfile.c tool_findfile.h tool_formparse.c tool_formparse.h tool_getparam.c tool_getparam.h tool_getpass.c tool_getpass.h tool_help.c tool_help.h tool_helpers.c tool_helpers.h tool_hugehelp.h tool_ipfs.c tool_ipfs.h tool_libinfo.c tool_libinfo.h tool_listhelp.c tool_main.c tool_main.h tool_msgs.c tool_msgs.h tool_operate.c tool_operate.h tool_operhlp.c tool_operhlp.h tool_paramhlp.c tool_paramhlp.h tool_parsecfg.c tool_parsecfg.h tool_progress.c tool_progress.h tool_sdecls.h tool_setopt.c tool_setopt.h tool_setup.h tool_ssls.c tool_ssls.h tool_stderr.c tool_stderr.h tool_urlglob.c tool_urlglob.h tool_util.c tool_util.h tool_version.h tool_vms.c tool_vms.h tool_writeout.c tool_writeout.h tool_writeout_json.c tool_writeout_json.h tool_xattr.c tool_xattr.h var.c var.h
tests
certs .gitignore CMakeLists.txt Makefile.am Makefile.inc genserv.pl srp-verifier-conf srp-verifier-db test-ca.cnf test-ca.prm test-client-cert.prm test-client-eku-only.prm test-localhost-san-first.prm test-localhost-san-last.prm test-localhost.nn.prm test-localhost.prm test-localhost0h.prm
cmake CMakeLists.txt test.c test.cpp test.sh
data .gitignore DISABLED Makefile.am data-xml1 data1400.c data1401.c data1402.c data1403.c data1404.c data1405.c data1406.c data1407.c data1420.c data1461.txt data1463.txt data1465.c data1481.c data1705-1.md data1705-2.md data1705-3.md data1705-4.md data1705-stdout.1 data1706-1.md data1706-2.md data1706-3.md data1706-4.md data1706-stdout.txt data320.html test1 test10 test100 test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 test1008 test1009 test101 test1010 test1011 test1012 test1013 test1014 test1015 test1016 test1017 test1018 test1019 test102 test1020 test1021 test1022 test1023 test1024 test1025 test1026 test1027 test1028 test1029 test103 test1030 test1031 test1032 test1033 test1034 test1035 test1036 test1037 test1038 test1039 test104 test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 test1048 test1049 test105 test1050 test1051 test1052 test1053 test1054 test1055 test1056 test1057 test1058 test1059 test106 test1060 test1061 test1062 test1063 test1064 test1065 test1066 test1067 test1068 test1069 test107 test1070 test1071 test1072 test1073 test1074 test1075 test1076 test1077 test1078 test1079 test108 test1080 test1081 test1082 test1083 test1084 test1085 test1086 test1087 test1088 test1089 test109 test1090 test1091 test1092 test1093 test1094 test1095 test1096 test1097 test1098 test1099 test11 test110 test1100 test1101 test1102 test1103 test1104 test1105 test1106 test1107 test1108 test1109 test111 test1110 test1111 test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 test112 test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 test1128 test1129 test113 test1130 test1131 test1132 test1133 test1134 test1135 test1136 test1137 test1138 test1139 test114 test1140 test1141 test1142 test1143 test1144 test1145 test1146 test1147 test1148 test1149 test115 test1150 test1151 test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 test116 test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 test1168 test1169 test117 test1170 test1171 test1172 test1173 test1174 test1175 test1176 test1177 test1178 test1179 test118 test1180 test1181 test1182 test1183 test1184 test1185 test1186 test1187 test1188 test1189 test119 test1190 test1191 test1192 test1193 test1194 test1195 test1196 test1197 test1198 test1199 test12 test120 test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 test1208 test1209 test121 test1210 test1211 test1212 test1213 test1214 test1215 test1216 test1217 test1218 test1219 test122 test1220 test1221 test1222 test1223 test1224 test1225 test1226 test1227 test1228 test1229 test123 test1230 test1231 test1232 test1233 test1234 test1235 test1236 test1237 test1238 test1239 test124 test1240 test1241 test1242 test1243 test1244 test1245 test1246 test1247 test1248 test1249 test125 test1250 test1251 test1252 test1253 test1254 test1255 test1256 test1257 test1258 test1259 test126 test1260 test1261 test1262 test1263 test1264 test1265 test1266 test1267 test1268 test1269 test127 test1270 test1271 test1272 test1273 test1274 test1275 test1276 test1277 test1278 test1279 test128 test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 test1288 test1289 test129 test1290 test1291 test1292 test1293 test1294 test1295 test1296 test1297 test1298 test1299 test13 test130 test1300 test1301 test1302 test1303 test1304 test1305 test1306 test1307 test1308 test1309 test131 test1310 test1311 test1312 test1313 test1314 test1315 test1316 test1317 test1318 test1319 test132 test1320 test1321 test1322 test1323 test1324 test1325 test1326 test1327 test1328 test1329 test133 test1330 test1331 test1332 test1333 test1334 test1335 test1336 test1337 test1338 test1339 test134 test1340 test1341 test1342 test1343 test1344 test1345 test1346 test1347 test1348 test1349 test135 test1350 test1351 test1352 test1353 test1354 test1355 test1356 test1357 test1358 test1359 test136 test1360 test1361 test1362 test1363 test1364 test1365 test1366 test1367 test1368 test1369 test137 test1370 test1371 test1372 test1373 test1374 test1375 test1376 test1377 test1378 test1379 test138 test1380 test1381 test1382 test1383 test1384 test1385 test1386 test1387 test1388 test1389 test139 test1390 test1391 test1392 test1393 test1394 test1395 test1396 test1397 test1398 test1399 test14 test140 test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 test1408 test1409 test141 test1410 test1411 test1412 test1413 test1414 test1415 test1416 test1417 test1418 test1419 test142 test1420 test1421 test1422 test1423 test1424 test1425 test1426 test1427 test1428 test1429 test143 test1430 test1431 test1432 test1433 test1434 test1435 test1436 test1437 test1438 test1439 test144 test1440 test1441 test1442 test1443 test1444 test1445 test1446 test1447 test1448 test1449 test145 test1450 test1451 test1452 test1453 test1454 test1455 test1456 test1457 test1458 test1459 test146 test1460 test1461 test1462 test1463 test1464 test1465 test1466 test1467 test1468 test1469 test147 test1470 test1471 test1472 test1473 test1474 test1475 test1476 test1477 test1478 test1479 test148 test1480 test1481 test1482 test1483 test1484 test1485 test1486 test1487 test1488 test1489 test149 test1490 test1491 test1492 test1493 test1494 test1495 test1496 test1497 test1498 test1499 test15 test150 test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 test1508 test1509 test151 test1510 test1511 test1512 test1513 test1514 test1515 test1516 test1517 test1518 test1519 test152 test1520 test1521 test1522 test1523 test1524 test1525 test1526 test1527 test1528 test1529 test153 test1530 test1531 test1532 test1533 test1534 test1535 test1536 test1537 test1538 test1539 test154 test1540 test1541 test1542 test1543 test1544 test1545 test1546 test1547 test1548 test1549 test155 test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 test1558 test1559 test156 test1560 test1561 test1562 test1563 test1564 test1565 test1566 test1567 test1568 test1569 test157 test1570 test1571 test1572 test1573 test1574 test1575 test1576 test1577 test1578 test1579 test158 test1580 test1581 test1582 test1583 test1584 test1585 test1586 test1587 test1588 test1589 test159 test1590 test1591 test1592 test1593 test1594 test1595 test1596 test1597 test1598 test1599 test16 test160 test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 test1608 test1609 test161 test1610 test1611 test1612 test1613 test1614 test1615 test1616 test1617 test1618 test1619 test162 test1620 test1621 test1622 test1623 test1624 test1625 test1626 test1627 test1628 test1629 test163 test1630 test1631 test1632 test1633 test1634 test1635 test1636 test1637 test1638 test1639 test164 test1640 test1641 test1642 test1643 test1644 test1645 test165 test1650 test1651 test1652 test1653 test1654 test1655 test1656 test1657 test1658 test1659 test166 test1660 test1661 test1662 test1663 test1664 test1665 test1666 test1667 test1668 test1669 test167 test1670 test1671 test1672 test1673 test1674 test1675 test1676 test168 test1680 test1681 test1682 test1683 test1684 test1685 test169 test17 test170 test1700 test1701 test1702 test1703 test1704 test1705 test1706 test1707 test1708 test1709 test171 test1710 test1711 test1712 test1713 test1714 test1715 test172 test1720 test1721 test173 test174 test175 test176 test177 test178 test179 test18 test180 test1800 test1801 test1802 test181 test182 test183 test184 test1847 test1848 test1849 test185 test1850 test1851 test186 test187 test188 test189 test19 test190 test1900 test1901 test1902 test1903 test1904 test1905 test1906 test1907 test1908 test1909 test191 test1910 test1911 test1912 test1913 test1914 test1915 test1916 test1917 test1918 test1919 test192 test1920 test1921 test193 test1933 test1934 test1935 test1936 test1937 test1938 test1939 test194 test1940 test1941 test1942 test1943 test1944 test1945 test1946 test1947 test1948 test195 test1955 test1956 test1957 test1958 test1959 test196 test1960 test1964 test1965 test1966 test197 test1970 test1971 test1972 test1973 test1974 test1975 test1976 test1977 test1978 test1979 test198 test1980 test1981 test1982 test1983 test1984 test199 test2 test20 test200 test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 test2008 test2009 test201 test2010 test2011 test2012 test2013 test2014 test202 test2023 test2024 test2025 test2026 test2027 test2028 test2029 test203 test2030 test2031 test2032 test2033 test2034 test2035 test2037 test2038 test2039 test204 test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 test2048 test2049 test205 test2050 test2051 test2052 test2053 test2054 test2055 test2056 test2057 test2058 test2059 test206 test2060 test2061 test2062 test2063 test2064 test2065 test2066 test2067 test2068 test2069 test207 test2070 test2071 test2072 test2073 test2074 test2075 test2076 test2077 test2078 test2079 test208 test2080 test2081 test2082 test2083 test2084 test2085 test2086 test2087 test2088 test2089 test209 test2090 test2091 test2092 test21 test210 test2100 test2101 test2102 test2103 test2104 test211 test212 test213 test214 test215 test216 test217 test218 test219 test22 test220 test2200 test2201 test2202 test2203 test2204 test2205 test2206 test2207 test221 test222 test223 test224 test225 test226 test227 test228 test229 test23 test230 test2300 test2301 test2302 test2303 test2304 test2306 test2307 test2308 test2309 test231 test232 test233 test234 test235 test236 test237 test238 test239 test24 test240 test2400 test2401 test2402 test2403 test2404 test2405 test2406 test2407 test2408 test2409 test241 test2410 test2411 test242 test243 test244 test245 test246 test247 test248 test249 test25 test250 test2500 test2501 test2502 test2503 test2504 test2505 test2506 test251 test252 test253 test254 test255 test256 test257 test258 test259 test26 test260 test2600 test2601 test2602 test2603 test2604 test2605 test261 test262 test263 test264 test265 test266 test267 test268 test269 test27 test270 test2700 test2701 test2702 test2703 test2704 test2705 test2706 test2707 test2708 test2709 test271 test2710 test2711 test2712 test2713 test2714 test2715 test2716 test2717 test2718 test2719 test272 test2720 test2721 test2722 test2723 test273 test274 test275 test276 test277 test278 test279 test28 test280 test281 test282 test283 test284 test285 test286 test287 test288 test289 test29 test290 test291 test292 test293 test294 test295 test296 test297 test298 test299 test3 test30 test300 test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 test3008 test3009 test301 test3010 test3011 test3012 test3013 test3014 test3015 test3016 test3017 test3018 test3019 test302 test3020 test3021 test3022 test3023 test3024 test3025 test3026 test3027 test3028 test3029 test303 test3030 test3031 test3032 test3033 test3034 test3035 test3036 test304 test305 test306 test307 test308 test309 test31 test310 test3100 test3101 test3102 test3103 test3104 test3105 test3106 test311 test312 test313 test314 test315 test316 test317 test318 test319 test32 test320 test3200 test3201 test3202 test3203 test3204 test3205 test3206 test3207 test3208 test3209 test321 test3210 test3211 test3212 test3213 test3214 test3215 test3216 test3217 test3218 test3219 test322 test3220 test323 test324 test325 test326 test327 test328 test329 test33 test330 test3300 test3301 test3302 test331 test332 test333 test334 test335 test336 test337 test338 test339 test34 test340 test341 test342 test343 test344 test345 test346 test347 test348 test349 test35 test350 test351 test352 test353 test354 test355 test356 test357 test358 test359 test36 test360 test361 test362 test363 test364 test365 test366 test367 test368 test369 test37 test370 test371 test372 test373 test374 test375 test376 test378 test379 test38 test380 test381 test383 test384 test385 test386 test387 test388 test389 test39 test390 test391 test392 test393 test394 test395 test396 test397 test398 test399 test4 test40 test400 test4000 test4001 test401 test402 test403 test404 test405 test406 test407 test408 test409 test41 test410 test411 test412 test413 test414 test415 test416 test417 test418 test419 test42 test420 test421 test422 test423 test424 test425 test426 test427 test428 test429 test43 test430 test431 test432 test433 test434 test435 test436 test437 test438 test439 test44 test440 test441 test442 test443 test444 test445 test446 test447 test448 test449 test45 test450 test451 test452 test453 test454 test455 test456 test457 test458 test459 test46 test460 test461 test462 test463 test467 test468 test469 test47 test470 test471 test472 test473 test474 test475 test476 test477 test478 test479 test48 test480 test481 test482 test483 test484 test485 test486 test487 test488 test489 test49 test490 test491 test492 test493 test494 test495 test496 test497 test498 test499 test5 test50 test500 test501 test502 test503 test504 test505 test506 test507 test508 test509 test51 test510 test511 test512 test513 test514 test515 test516 test517 test518 test519 test52 test520 test521 test522 test523 test524 test525 test526 test527 test528 test529 test53 test530 test531 test532 test533 test534 test535 test536 test537 test538 test539 test54 test540 test541 test542 test543 test544 test545 test546 test547 test548 test549 test55 test550 test551 test552 test553 test554 test555 test556 test557 test558 test559 test56 test560 test561 test562 test563 test564 test565 test566 test567 test568 test569 test57 test570 test571 test572 test573 test574 test575 test576 test577 test578 test579 test58 test580 test581 test582 test583 test584 test585 test586 test587 test588 test589 test59 test590 test591 test592 test593 test594 test595 test596 test597 test598 test599 test6 test60 test600 test601 test602 test603 test604 test605 test606 test607 test608 test609 test61 test610 test611 test612 test613 test614 test615 test616 test617 test618 test619 test62 test620 test621 test622 test623 test624 test625 test626 test627 test628 test629 test63 test630 test631 test632 test633 test634 test635 test636 test637 test638 test639 test64 test640 test641 test642 test643 test644 test645 test646 test647 test648 test649 test65 test650 test651 test652 test653 test654 test655 test656 test658 test659 test66 test660 test661 test662 test663 test664 test665 test666 test667 test668 test669 test67 test670 test671 test672 test673 test674 test675 test676 test677 test678 test679 test68 test680 test681 test682 test683 test684 test685 test686 test687 test688 test689 test69 test690 test691 test692 test693 test694 test695 test696 test697 test698 test699 test7 test70 test700 test701 test702 test703 test704 test705 test706 test707 test708 test709 test71 test710 test711 test712 test713 test714 test715 test716 test717 test718 test719 test72 test720 test721 test722 test723 test724 test725 test726 test727 test728 test729 test73 test730 test731 test732 test733 test734 test735 test736 test737 test738 test739 test74 test740 test741 test742 test743 test744 test745 test746 test747 test748 test749 test75 test750 test751 test752 test753 test754 test755 test756 test757 test758 test759 test76 test760 test761 test762 test763 test764 test765 test766 test767 test768 test769 test77 test770 test771 test772 test773 test774 test775 test776 test777 test778 test779 test78 test780 test781 test782 test783 test784 test785 test786 test787 test788 test789 test79 test790 test791 test792 test793 test794 test795 test796 test797 test798 test799 test8 test80 test800 test801 test802 test803 test804 test805 test806 test807 test808 test809 test81 test810 test811 test812 test813 test814 test815 test816 test817 test818 test819 test82 test820 test821 test822 test823 test824 test825 test826 test827 test828 test829 test83 test830 test831 test832 test833 test834 test835 test836 test837 test838 test839 test84 test840 test841 test842 test843 test844 test845 test846 test847 test848 test849 test85 test850 test851 test852 test853 test854 test855 test856 test857 test858 test859 test86 test860 test861 test862 test863 test864 test865 test866 test867 test868 test869 test87 test870 test871 test872 test873 test874 test875 test876 test877 test878 test879 test88 test880 test881 test882 test883 test884 test885 test886 test887 test888 test889 test89 test890 test891 test892 test893 test894 test895 test896 test897 test898 test899 test9 test90 test900 test901 test902 test903 test904 test905 test906 test907 test908 test909 test91 test910 test911 test912 test913 test914 test915 test916 test917 test918 test919 test92 test920 test921 test922 test923 test924 test925 test926 test927 test928 test929 test93 test930 test931 test932 test933 test934 test935 test936 test937 test938 test939 test94 test940 test941 test942 test943 test944 test945 test946 test947 test948 test949 test95 test950 test951 test952 test953 test954 test955 test956 test957 test958 test959 test96 test960 test961 test962 test963 test964 test965 test966 test967 test968 test969 test97 test970 test971 test972 test973 test974 test975 test976 test977 test978 test979 test98 test980 test981 test982 test983 test984 test985 test986 test987 test988 test989 test99 test990 test991 test992 test993 test994 test995 test996 test997 test998 test999
http
testenv
mod_curltest .gitignore mod_curltest.c
__init__.py caddy.py certs.py client.py curl.py dante.py dnsd.py env.py httpd.py nghttpx.py ports.py sshd.py vsftpd.py ws_echo_server.py
.gitignore CMakeLists.txt Makefile.am config.ini.in conftest.py requirements.txt scorecard.py test_01_basic.py test_02_download.py test_03_goaway.py test_04_stuttered.py test_05_errors.py test_06_eyeballs.py test_07_upload.py test_08_caddy.py test_09_push.py test_10_proxy.py test_11_unix.py test_12_reuse.py test_13_proxy_auth.py test_14_auth.py test_15_tracing.py test_16_info.py test_17_ssl_use.py test_18_methods.py test_19_shutdown.py test_20_websockets.py test_21_resolve.py test_22_httpsrr.py test_30_vsftpd.py test_31_vsftpds.py test_32_ftps_vsftpd.py test_40_socks.py test_50_scp.py test_51_sftp.py
libtest .gitignore CMakeLists.txt Makefile.am Makefile.inc cli_ftp_upload.c cli_h2_pausing.c cli_h2_serverpush.c cli_h2_upgrade_extreme.c cli_hx_download.c cli_hx_upload.c cli_tls_session_reuse.c cli_upload_pausing.c cli_ws_data.c cli_ws_pingpong.c first.c first.h lib1156.c lib1301.c lib1308.c lib1485.c lib1500.c lib1501.c lib1502.c lib1506.c lib1507.c lib1508.c lib1509.c lib1510.c lib1511.c lib1512.c lib1513.c lib1514.c lib1515.c lib1517.c lib1518.c lib1520.c lib1522.c lib1523.c lib1525.c lib1526.c lib1527.c lib1528.c lib1529.c lib1530.c lib1531.c lib1532.c lib1533.c lib1534.c lib1535.c lib1536.c lib1537.c lib1538.c lib1540.c lib1541.c lib1542.c lib1545.c lib1549.c lib1550.c lib1551.c lib1552.c lib1553.c lib1554.c lib1555.c lib1556.c lib1557.c lib1558.c lib1559.c lib1560.c lib1564.c lib1565.c lib1567.c lib1568.c lib1569.c lib1571.c lib1576.c lib1582.c lib1587.c lib1588.c lib1589.c lib1591.c lib1592.c lib1593.c lib1594.c lib1597.c lib1598.c lib1599.c lib1662.c lib1900.c lib1901.c lib1902.c lib1903.c lib1905.c lib1906.c lib1907.c lib1908.c lib1910.c lib1911.c lib1912.c lib1913.c lib1915.c lib1916.c lib1918.c lib1919.c lib1920.c lib1921.c lib1933.c lib1934.c lib1935.c lib1936.c lib1937.c lib1938.c lib1939.c lib1940.c lib1945.c lib1947.c lib1948.c lib1955.c lib1956.c lib1957.c lib1958.c lib1959.c lib1960.c lib1964.c lib1965.c lib1970.c lib1971.c lib1972.c lib1973.c lib1974.c lib1975.c lib1977.c lib1978.c lib2023.c lib2032.c lib2082.c lib2301.c lib2302.c lib2304.c lib2306.c lib2308.c lib2309.c lib2402.c lib2404.c lib2405.c lib2502.c lib2504.c lib2505.c lib2506.c lib2700.c lib3010.c lib3025.c lib3026.c lib3027.c lib3033.c lib3034.c lib3100.c lib3101.c lib3102.c lib3103.c lib3104.c lib3105.c lib3207.c lib3208.c lib500.c lib501.c lib502.c lib503.c lib504.c lib505.c lib506.c lib507.c lib508.c lib509.c lib510.c lib511.c lib512.c lib513.c lib514.c lib515.c lib516.c lib517.c lib518.c lib519.c lib520.c lib521.c lib523.c lib524.c lib525.c lib526.c lib530.c lib533.c lib536.c lib537.c lib539.c lib540.c lib541.c lib542.c lib543.c lib544.c lib547.c lib549.c lib552.c lib553.c lib554.c lib555.c lib556.c lib557.c lib558.c lib559.c lib560.c lib562.c lib564.c lib566.c lib567.c lib568.c lib569.c lib570.c lib571.c lib572.c lib573.c lib574.c lib575.c lib576.c lib578.c lib579.c lib582.c lib583.c lib586.c lib589.c lib590.c lib591.c lib597.c lib598.c lib599.c lib643.c lib650.c lib651.c lib652.c lib653.c lib654.c lib655.c lib658.c lib659.c lib661.c lib666.c lib667.c lib668.c lib670.c lib674.c lib676.c lib677.c lib678.c lib694.c lib695.c lib751.c lib753.c lib757.c lib758.c lib766.c memptr.c mk-lib1521.pl test1013.pl test1022.pl test307.pl test610.pl test613.pl testtrace.c testtrace.h testutil.c testutil.h unitcheck.h
server .checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc dnsd.c first.c first.h getpart.c mqttd.c resolve.c rtspd.c sockfilt.c socksd.c sws.c tftpd.c util.c
tunit .gitignore CMakeLists.txt Makefile.am Makefile.inc README.md tool1394.c tool1604.c tool1621.c tool1622.c tool1623.c tool1720.c
unit .gitignore CMakeLists.txt Makefile.am Makefile.inc README.md unit1300.c unit1302.c unit1303.c unit1304.c unit1305.c unit1307.c unit1309.c unit1323.c unit1330.c unit1395.c unit1396.c unit1397.c unit1398.c unit1399.c unit1600.c unit1601.c unit1602.c unit1603.c unit1605.c unit1606.c unit1607.c unit1608.c unit1609.c unit1610.c unit1611.c unit1612.c unit1614.c unit1615.c unit1616.c unit1620.c unit1625.c unit1626.c unit1627.c unit1636.c unit1650.c unit1651.c unit1652.c unit1653.c unit1654.c unit1655.c unit1656.c unit1657.c unit1658.c unit1660.c unit1661.c unit1663.c unit1664.c unit1666.c unit1667.c unit1668.c unit1669.c unit1674.c unit1675.c unit1676.c unit1979.c unit1980.c unit2600.c unit2601.c unit2602.c unit2603.c unit2604.c unit2605.c unit3200.c unit3205.c unit3211.c unit3212.c unit3213.c unit3214.c unit3216.c unit3219.c unit3300.c unit3301.c unit3302.c
.gitignore CMakeLists.txt Makefile.am allversions.pm appveyor.pm azure.pm config.in configurehelp.pm.in devtest.pl dictserver.py directories.pm ech_combos.py ech_tests.sh ftpserver.pl getpart.pm globalconfig.pm http-server.pl http2-server.pl http3-server.pl memanalyze.pl memanalyzer.pm negtelnetserver.py nghttpx.conf pathhelp.pm processhelp.pm requirements.txt rtspserver.pl runner.pm runtests.pl secureserver.pl serverhelp.pm servers.pm smbserver.py sshhelp.pm sshserver.pl test1119.pl test1135.pl test1139.pl test1140.pl test1165.pl test1167.pl test1173.pl test1175.pl test1177.pl test1222.pl test1275.pl test1276.pl test1477.pl test1486.pl test1488.pl test1544.pl test1707.pl test745.pl test971.pl testcurl.pl testutil.pm tftpserver.pl util.py valgrind.pm valgrind.supp
.clang-tidy.yml .dir-locals.el .editorconfig .git-blame-ignore-revs .gitattributes .gitignore .mailmap CHANGES.md CMakeLists.txt COPYING Dockerfile GIT-INFO.md Makefile.am README README.md RELEASE-NOTES REUSE.toml SECURITY.md acinclude.m4 appveyor.sh appveyor.yml configure.ac curl-config.in libcurl.pc.in renovate.json
examples .env config.ini crypto_test.lua env_test.lua fs_example.lua http_server.lua https_test.lua ini_example.lua json.lua log.lua path_fs_example.lua process_example.lua request_download.lua request_test.lua run_all.lua sqlite_example.lua sqlite_http_template.lua stash_test.lua template_test.lua timer.lua websocket.lua
iniparser
.github
ISSUE_TEMPLATE config.yml
workflows disable-pull-requests.yml trigger-gitlab-ci.yml
cmake JoinPaths.cmake config.cmake.in pc.in
example iniexample.c iniwrite.c parse.c twisted-errors.ini twisted-genhuge.py twisted-ofkey.ini twisted-ofval.ini twisted.ini
src dictionary.c dictionary.h iniparser.c iniparser.h
test
ressources
bad_ini ends_well.ini twisted-errors.ini twisted-ofkey.ini twisted-ofval.ini
good_ini empty.ini spaced.ini spaced2.ini twisted.ini
gruezi.ini old.ini quotes.ini utf8.ini
CMakeLists.txt test_dictionary.c test_iniparser.c unity-config.yml unity_config.h
.cmake-format.py .gitignore .gitlab-ci.yml .gitmessage .travis.yml AUTHORS CMakeLists.txt FAQ-en.md FAQ-zhcn.md INSTALL LICENSE README.md compile_commands.json
jinjac
example CMakeLists.txt example.c
jinjac_test_app CMakeLists.txt jinjac_test_app.c
libjinjac
include jinjac.h
src CMakeLists.txt ast.c ast.h block_statement.c block_statement.h buffer.c buffer.h buildin.c buildin.h common.h convert.c convert.h flex_decl.h jfunction.c jfunction.h jinja_expression.l jinja_expression.y jinjac_parse.c jinjac_parse.h jinjac_stream.c jinjac_stream.h jlist.c jlist.h jobject.c jobject.h parameter.c parameter.h str_obj.c str_obj.h trace.c trace.h
CMakeLists.txt
test .gitignore CMakeLists.txt autotest.rb test_01.expected test_01.jinja test_01b.expected test_01b.jinja test_01c.expected test_01c.jinja test_01d.expected test_01d.jinja test_02.expected test_02.jinja test_03.expected test_03.jinja test_04.expected test_04.jinja test_05.expected test_05.jinja test_06.expected test_06.jinja test_07.expected test_07.jinja test_08.expected test_08.jinja test_08b.expected test_08b.jinja test_09.expected test_09.jinja test_10.expected test_10.jinja test_11.expected test_11.jinja test_12.expected test_12.jinja test_13.expected test_13.jinja test_14.expected test_14.jinja test_15.expected test_15.jinja test_16.expected test_16.jinja test_17.expected test_17.jinja test_18.expected test_18.jinja test_18b.expected test_18b.jinja test_18c.expected test_18c.jinja test_19.expected test_19.jinja test_19b.expected test_19b.jinja test_19c.expected test_19c.jinja test_19d.expected test_19d.jinja test_19e.expected test_19e.jinja test_19f.expected test_19f.jinja test_20.expected test_20.jinja test_21.expected test_21.jinja test_22.expected test_22.jinja test_22a.expected test_22a.jinja test_22b.expected test_22b.jinja test_23.expected test_23.jinja test_24.expected test_24.jinja
.gitignore CMakeLists.txt LICENSE.txt README.md build_coverage.sh build_debug.sh build_release.sh cppcheck_analysis.sh
libev Changes LICENSE Makefile Makefile.am Makefile.in README Symbols.ev Symbols.event aclocal.m4 autogen.sh compile config.guess config.h config.h.in config.status config.sub configure configure.ac depcomp ev++.h ev.3 ev.c ev.h ev.pod ev_epoll.c ev_kqueue.c ev_poll.c ev_port.c ev_select.c ev_vars.h ev_win32.c ev_wrap.h event.c event.h install-sh libev.m4 libtool ltmain.sh missing mkinstalldirs stamp-h1
luajit
doc
img contact.png
bluequad-print.css bluequad.css contact.html ext_buffer.html ext_c_api.html ext_ffi.html ext_ffi_api.html ext_ffi_semantics.html ext_ffi_tutorial.html ext_jit.html ext_profiler.html extensions.html install.html luajit.html running.html
dynasm dasm_arm.h dasm_arm.lua dasm_arm64.h dasm_arm64.lua dasm_mips.h dasm_mips.lua dasm_mips64.lua dasm_ppc.h dasm_ppc.lua dasm_proto.h dasm_x64.lua dasm_x86.h dasm_x86.lua dynasm.lua
etc luajit.1 luajit.pc
src
host .gitignore README buildvm.c buildvm.h buildvm_asm.c buildvm_fold.c buildvm_lib.c buildvm_libbc.h buildvm_peobj.c genlibbc.lua genminilua.lua genversion.lua minilua.c
jit .gitignore bc.lua bcsave.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_mips.lua dis_mips64.lua dis_mips64el.lua dis_mips64r6.lua dis_mips64r6el.lua dis_mipsel.lua dis_ppc.lua dis_x64.lua dis_x86.lua dump.lua p.lua v.lua zone.lua
.gitignore Makefile Makefile.dep lauxlib.h lib_aux.c lib_base.c lib_bit.c lib_buffer.c lib_debug.c lib_ffi.c lib_init.c lib_io.c lib_jit.c lib_math.c lib_os.c lib_package.c lib_string.c lib_table.c lj_alloc.c lj_alloc.h lj_api.c lj_arch.h lj_asm.c lj_asm.h lj_asm_arm.h lj_asm_arm64.h lj_asm_mips.h lj_asm_ppc.h lj_asm_x86.h lj_assert.c lj_bc.c lj_bc.h lj_bcdump.h lj_bcread.c lj_bcwrite.c lj_buf.c lj_buf.h lj_carith.c lj_carith.h lj_ccall.c lj_ccall.h lj_ccallback.c lj_ccallback.h lj_cconv.c lj_cconv.h lj_cdata.c lj_cdata.h lj_char.c lj_char.h lj_clib.c lj_clib.h lj_cparse.c lj_cparse.h lj_crecord.c lj_crecord.h lj_ctype.c lj_ctype.h lj_debug.c lj_debug.h lj_def.h lj_dispatch.c lj_dispatch.h lj_emit_arm.h lj_emit_arm64.h lj_emit_mips.h lj_emit_ppc.h lj_emit_x86.h lj_err.c lj_err.h lj_errmsg.h lj_ff.h lj_ffrecord.c lj_ffrecord.h lj_frame.h lj_func.c lj_func.h lj_gc.c lj_gc.h lj_gdbjit.c lj_gdbjit.h lj_ir.c lj_ir.h lj_ircall.h lj_iropt.h lj_jit.h lj_lex.c lj_lex.h lj_lib.c lj_lib.h lj_load.c lj_mcode.c lj_mcode.h lj_meta.c lj_meta.h lj_obj.c lj_obj.h lj_opt_dce.c lj_opt_fold.c lj_opt_loop.c lj_opt_mem.c lj_opt_narrow.c lj_opt_sink.c lj_opt_split.c lj_parse.c lj_parse.h lj_prng.c lj_prng.h lj_profile.c lj_profile.h lj_record.c lj_record.h lj_serialize.c lj_serialize.h lj_snap.c lj_snap.h lj_state.c lj_state.h lj_str.c lj_str.h lj_strfmt.c lj_strfmt.h lj_strfmt_num.c lj_strscan.c lj_strscan.h lj_tab.c lj_tab.h lj_target.h lj_target_arm.h lj_target_arm64.h lj_target_mips.h lj_target_ppc.h lj_target_x86.h lj_trace.c lj_trace.h lj_traceerr.h lj_udata.c lj_udata.h lj_vm.h lj_vmevent.c lj_vmevent.h lj_vmmath.c ljamalg.c lua.h lua.hpp luaconf.h luajit.c luajit_rolling.h lualib.h msvcbuild.bat nxbuild.bat ps4build.bat ps5build.bat psvitabuild.bat vm_arm.dasc vm_arm64.dasc vm_mips.dasc vm_mips64.dasc vm_ppc.dasc vm_x64.dasc vm_x86.dasc xb1build.bat xedkbuild.bat
.gitattributes .gitignore .relver COPYRIGHT Makefile README
sqlite shell.c sqlite3.c sqlite3.h sqlite3ext.h
wolfssl
.github
ISSUE_TEMPLATE bug_report.yaml other.yaml
actions
install-apt-deps action.yml
scripts
zephyr-4.x external_libc.conf zephyr-test.sh
openssl-ech.sh tls-anvil-test.sh
workflows
disabled haproxy.yml hitch.yml hostap.yml
hostap-files
configs
07c9f183ea744ac04585fb6dd10220c75a5e2e74 hostapd.config tests wpa_supplicant.config
b607d2723e927a3446d89aed813f1aa6068186bb hostapd.config tests wpa_supplicant.config
hostap_2_10 extra.patch hostapd.config tests wpa_supplicant.config
Makefile README dbus-wpa_supplicant.conf
ada.yml arduino.yml async-examples.yml async.yml atecc608-sim.yml bind.yml cmake-autoconf.yml cmake.yml codespell.yml coverity-scan-fixes.yml cryptocb-only.yml curl.yml cyrus-sasl.yml disable-pk-algs.yml docker-Espressif.yml docker-OpenWrt.yml emnet-nonblock.yml fil-c.yml freertos-mem-track.yml gencertbuf.yml grpc.yml haproxy.yml hostap-vm.yml intelasm-c-fallback.yml ipmitool.yml jwt-cpp.yml krb5.yml libspdm.yml libssh2.yml libvncserver.yml linuxkm.yml macos-apple-native-cert-validation.yml mbedtls.sh mbedtls.yml membrowse-comment.yml membrowse-onboard.yml membrowse-report.yml memcached.sh memcached.yml mono.yml mosquitto.yml msmtp.yml msys2.yml multi-arch.yml multi-compiler.yml net-snmp.yml nginx.yml no-malloc.yml no-tls.yml nss.sh nss.yml ntp.yml ocsp.yml openldap.yml openssh.yml openssl-ech.yml opensslcoexist.yml openvpn.yml os-check.yml packaging.yml pam-ipmi.yml pq-all.yml pr-commit-check.yml psk.yml puf.yml python.yml rng-tools.yml rust-wrapper.yml se050-sim.yml smallStackSize.yml socat.yml softhsm.yml sssd.yml stm32-sim.yml stsafe-a120-sim.yml stunnel.yml symbol-prefixes.yml threadx.yml tls-anvil.yml trackmemory.yml watcomc.yml win-csharp-test.yml wolfCrypt-Wconversion.yml wolfboot-integration.yml wolfsm.yml xcode.yml zephyr-4.x.yml zephyr.yml
PULL_REQUEST_TEMPLATE.md SECURITY.md membrowse-targets.json
Docker
OpenWrt Dockerfile README.md runTests.sh
packaging
debian Dockerfile
fedora Dockerfile
wolfCLU Dockerfile README.md
yocto Dockerfile buildAndPush.sh
Dockerfile Dockerfile.cross-compiler README.md buildAndPush.sh include.am run.sh
IDE
ARDUINO
sketches
wolfssl_client README.md
wolfssl_server README.md
wolfssl_version README.md
README.md
Arduino_README_prepend.md README.md include.am keywords.txt library.properties.template wolfssl-arduino.cpp wolfssl-arduino.sh wolfssl.h
AURIX Cpu0_Main.c README.md include.am user_settings.h wolf_main.c
Android Android.bp README.md include.am user_settings.h
CRYPTOCELL README.md include.am main.c user_settings.h
CSBENCH include.am user_settings.h
ECLIPSE
DEOS
deos_wolfssl .options
README.md deos_malloc.c include.am tls_wolfssl.c tls_wolfssl.h user_settings.h
MICRIUM README.md client_wolfssl.c client_wolfssl.h include.am server_wolfssl.c server_wolfssl.h user_settings.h wolfsslRunTests.c
RTTHREAD README.md include.am user_settings.h wolfssl_test.c
SIFIVE README.md include.am
Espressif
ESP-IDF
examples
template
VisualGDB wolfssl_template_IDF_v5.1_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266
wolfssl_benchmark
VisualGDB wolfssl_benchmark_IDF_v4.4_ESP32.sln wolfssl_benchmark_IDF_v4.4_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32.sln wolfssl_benchmark_IDF_v5_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32C3.sln wolfssl_benchmark_IDF_v5_ESP32C3.vgdbproj wolfssl_benchmark_IDF_v5_ESP32S3.sln wolfssl_benchmark_IDF_v5_ESP32S3.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266
wolfssl_client
VisualGDB README.md wolfssl_client_IDF_v5_ESP32.sln wolfssl_client_IDF_v5_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include client-tls.h main.h time_helper.h wifi_connect.h
CMakeLists.txt Kconfig.projbuild client-tls.c component.mk main.c time_helper.c wifi_connect.c
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_client_ESP8266.vgdbproj
wolfssl_server
VisualGDB README.md wolfssl_server_IDF_v5_ESP32.sln wolfssl_server_IDF_v5_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h server-tls.h time_helper.h wifi_connect.h
CMakeLists.txt Kconfig.projbuild component.mk main.c server-tls.c time_helper.c wifi_connect.c
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_server_ESP8266.vgdbproj
wolfssl_test
VisualGDB wolfssl_test-IDF_v5_ESP32.sln wolfssl_test-IDF_v5_ESP32.vgdbproj wolfssl_test-IDF_v5_ESP32C3.sln wolfssl_test-IDF_v5_ESP32C3.vgdbproj wolfssl_test-IDF_v5_ESP32C6.sln wolfssl_test-IDF_v5_ESP32C6.vgdbproj wolfssl_test_IDF_v5_ESP32S3.sln wolfssl_test_IDF_v5_ESP32S3.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32 sdkconfig.defaults.esp32c3 sdkconfig.defaults.esp32c6 sdkconfig.defaults.esp32h2 sdkconfig.defaults.esp32s2 sdkconfig.defaults.esp32s3 sdkconfig.defaults.esp8266 testAll.sh testMonitor.sh wolfssl_test_ESP8266.sln wolfssl_test_ESP8266.vgdbproj
wolfssl_test_idf
VisualGDB VisualGDB_wolfssl_test_idf.sln VisualGDB_wolfssl_test_idf.vgdbproj
main CMakeLists.txt Kconfig.projbuild component.mk main.c main_wip.c.ex time_helper.c time_helper.h
CMakeLists.txt Kconfig.projbuild README.md component.mk sdkconfig.defaults
README.md
libs CMakeLists.txt README.md component.mk tigard.cfg
test CMakeLists.txt README.md component.mk test_wolfssl.c
README.md README_32se.md UPDATE.md compileAllExamples.sh dummy_config_h dummy_test_paths.h setup.sh setup_win.bat user_settings.h
README.md include.am
GCC-ARM
Header user_settings.h
Source armtarget.c benchmark_main.c test_main.c tls_client.c tls_server.c wolf_main.c
Makefile Makefile.bench Makefile.client Makefile.common Makefile.server Makefile.static Makefile.test README.md include.am linker.ld linker_fips.ld
Gaisler-BCC README.md include.am
HEXAGON
DSP Makefile wolfssl_dsp.idl
Makefile README.md build.sh ecc-verify-benchmark.c ecc-verify.c include.am user_settings.h
HEXIWEAR
wolfSSL_HW .cwGeneratedFileSetLog user_settings.h
IAR-EWARM
Projects
benchmark benchmark-main.c current_time.c wolfCrypt-benchmark.ewd wolfCrypt-benchmark.ewp
common minimum-startup.c wolfssl.icf
lib wolfSSL-Lib.ewd wolfSSL-Lib.ewp
test test-main.c wolfCrypt-test.ewd wolfCrypt-test.ewp
user_settings.h wolfssl.eww
embOS
SAMV71_XULT
embOS_SAMV71_XULT_Linker_Script samv71q21_wolfssl.icf
embOS_SAMV71_XULT_user_settings user_settings.h user_settings_simple_example.h user_settings_verbose_example.h
embOS_wolfcrypt_benchmark_SAMV71_XULT
Application runBenchmarks.c
README_wolfcrypt_benchmark wolfcrypt_benchmark.ewd wolfcrypt_benchmark.ewp
embOS_wolfcrypt_lib_SAMV71_XULT README_wolfcrypt_lib wolfcrypt_lib.ewd wolfcrypt_lib.ewp
embOS_wolfcrypt_test_SAMV71_XULT
Application runWolfcryptTests.c
README_wolfcrypt_test wolfcrypt_test.ewd wolfcrypt_test.ewp
README_SAMV71
custom_port
custom_port_Linker_Script samv71q21_wolfssl.icf
custom_port_user_settings user_settings.h
wolfcrypt_benchmark_custom_port
Application runBenchmarks.c
wolfcrypt_test_custom_port
Application runWolfcryptTests.c
README_custom_port
extract_trial_here README_extract_trial_here
README
.gitignore README
IAR-MSP430 Makefile README.md include.am main.c user_settings.h
INTIME-RTOS Makefile README.md include.am libwolfssl.c libwolfssl.vcxproj user_settings.h wolfExamples.c wolfExamples.h wolfExamples.sln wolfExamples.vcxproj wolfssl-lib.sln wolfssl-lib.vcxproj
Infineon README.md include.am user_settings.h
KDS
config user_settings.h
include.am
LINUX-SGX README.md build.sh clean.sh include.am sgx_t_static.mk
LPCXPRESSO
lib_wolfssl lpc_18xx_port.c user_settings.h
wolf_example
src lpc_18xx_startup.c wolfssl_example.c
readme.txt
README.md
M68K
benchmark Makefile main.cpp
testwolfcrypt Makefile main.cpp
Makefile README.md include.am user_settings.h
MCUEXPRESSO
RT1170 fsl_caam_c.patch fsl_caam_h.patch user_settings.h
benchmark
source run_benchmark.c
wolfssl liblinks.xml
README.md include.am user_settings.h wolfcrypt_test.c
MDK-ARM
LPC43xx time-LCP43xx.c
MDK-ARM
wolfSSL Retarget.c cert_data.c cert_data.h config-BARE-METAL.h config-FS.h config-RTX-TCP-FS.h config-WOLFLIB.h main.c shell.c time-CortexM3-4.c time-dummy.c wolfssl_MDK_ARM.c wolfssl_MDK_ARM.h
STM32F2xx_StdPeriph_Lib time-STM32F2xx.c
MDK5-ARM
Conf user_settings.h
Inc wolfssl_MDK_ARM.h
Projects
CryptBenchmark Abstract.txt CryptBenchmark.sct CryptBenchmark.uvoptx CryptBenchmark.uvprojx main.c
CryptTest Abstract.txt CryptTest.sct CryptTest.uvoptx CryptTest.uvprojx main.c
EchoClient Abstract.txt EchoClient.uvoptx EchoClient.uvprojx main.c wolfssl-link.sct
EchoServer Abstract.txt EchoServer.uvoptx EchoServer.uvprojx main.c wolfssl-link.sct
SimpleClient Abstract.txt SimpleClient.uvoptx SimpleClient.uvprojx main.c wolfssl-link.sct
SimpleServer Abstract.txt SimpleServer.uvoptx SimpleServer.uvprojx main.c wolfssl-link.sct
wolfSSL-Full Abstract.txt main.c shell.c time-CortexM3-4.c wolfsslFull.uvoptx wolfsslFull.uvprojx
wolfSSL-Lib Abstract.txt wolfSSL-Lib.uvoptx wolfSSL-Lib.uvprojx
Src ssl-dummy.c
README.md include.am
MPLABX16
wolfcrypt_test.X
nbproject
private configurations.xml private.xml
configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
README.md include.am main.c user_settings.h
MQX Makefile README-jp.md README.md client-tls.c include.am server-tls.c user_config.h user_settings.h
MSVS-2019-AZSPHERE
client client.c client.h
server server.c server.h
shared util.h
wolfssl_new_azsphere
HardwareDefinitions
avnet_mt3620_sk
inc
hw template_appliance.h
template_appliance.json
mt3620_rdb
inc
hw template_appliance.h
template_appliance.json
seeed_mt3620_mdb
inc
hw template_appliance.h
template_appliance.json
.gitignore CMakeLists.txt CMakeSettings.json app_manifest.json applibs_versions.h launch.vs.json main.c
README.md include.am user_settings.h
MYSQL CMakeLists_wolfCrypt.txt CMakeLists_wolfSSL.txt do.sh
NDS README.md
NETOS Makefile.wolfcrypt.inc README.md include.am user_settings.h user_settings.h-cert2425 user_settings.h-cert3389 wolfssl_netos_custom.c
OPENSTM32 README.md
PlatformIO
examples
wolfssl_benchmark
include README main.h
lib README
src CMakeLists.txt main.c
test README
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_benchmark.code-workspace
wolfssl_test
include README main.h
lib README
src CMakeLists.txt main.c
test README
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_test.code-workspace
README.md wolfssl_platformio.code-workspace
README.md include.am
QNX
CAAM-DRIVER Makefile
example-client Makefile client-tls.c
example-cmac Makefile cmac-test.c
example-server Makefile server-tls.c
testwolfcrypt Makefile
wolfssl Makefile user_settings.h
README.md include.am
RISCV
SIFIVE-HIFIVE1 Makefile README.md include.am main.c user_settings.h
SIFIVE-UNLEASHED README.md include.am
include.am
ROWLEY-CROSSWORKS-ARM Kinetis_FlashPlacement.xml README.md arm_startup.c benchmark_main.c hw.h include.am kinetis_hw.c retarget.c test_main.c user_settings.h wolfssl.hzp wolfssl_ltc.hzp
Renesas
cs+
Projects
common strings.h unistd.h user_settings.h wolfssl_dummy.c
t4_demo README_en.txt README_jp.txt t4_demo.mtpj wolf_client.c wolf_demo.h wolf_main.c wolf_server.c
test test.mtpj test_main.c
wolfssl_lib wolfssl_lib.mtpj
README include.am
e2studio
DK-S7G2
benchmark-template
src app_entry.c
example_server-template
src app_entry.c
wolfcrypttest-template
src app_entry.c
wolfssl-template-project configuration.xml
README.md include.am user_settings.h
Projects
common strings.h unistd.h user_settings.h wolfssl_dummy.c
test
src key_data.c key_data.h test_main.c wolf_client.c wolf_server.c wolfssl_demo.h
tools generate_rsa_keypair.sh genhexbuf.pl rsa_pss_sign.sh
wolfssl
src .gitkeep
wolfcrypt
src .gitkeep
README include.am
RA6M3
benchmark-wolfcrypt
common .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
client-wolfssl
common
src .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl_thread_entry.h
common
ra6m3g README.md
src freertos_tcp_port.c
user_settings.h util.h
server-wolfssl
common
src .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl_thread_entry.h
test-wolfcrypt
common .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl
src .gitkeep
wolfcrypt .gitkeep
README.md README_APRA6M_en.md README_APRA6M_jp.md include.am
RA6M3G README.md
RA6M4
common user_settings.h wolfssl_demo.h
test
key_data key_data.h key_data_sce.c
src
SEGGER_RTT myprint.c
common .gitignore
test_main.c wolf_client.c wolfssl_sce_unit_test.c
test_RA6M4Debug.launch
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
README.md include.am
RX65N
GR-ROSE
common strings.h unistd.h user_settings.h wolfssl_dummy.c
smc smc.scfg
test
src key_data.c key_data.h test_main.c wolf_client.c wolf_server.c wolfssl_demo.h
test.rcpc test_HardwareDebug.launch
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
wolfssl wolfssl.rcpc
README_EN.md README_JP.md include.am
RSK
resource section.esi
wolfssl wolfssl.rcpc
wolfssl_demo key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h
InstructionManualForExample_RSK+RX65N-2MB_EN.pdf InstructionManualForExample_RSK+RX65N-2MB_JP.pdf README_EN.md README_JP.md include.am
RX72N
EnvisionKit
Simple
common sectioninfo.esi wolfssl_dummy.c
test
src
client simple_tcp_client.c simple_tls_tsip_client.c
server simple_tcp_server.c simple_tls_server.c
test_main.c wolfssl_simple_demo.h
test.rcpc test.scfg test_HardwareDebug.launch
wolfssl wolfssl.rcpc
README_EN.md README_JP.md
resource section.esi
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
wolfssl wolfssl.rcpc
wolfssl_demo key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h wolfssl_tsip_unit_test.c
InstructionManualForExample_RX72N_EnvisonKit_EN.pdf InstructionManualForExample_RX72N_EnvisonKit_JP.pdf README_EN.md README_JP.md include.am
RZN2L
common user_settings.h wolfssl_demo.h
test
src
serial_io app_print.c
test wolf_client.c wolf_server.c wolfssl_rsip_unit_test.c
wolfCrypt .gitignore
wolfSSL .gitignore
local_system_init.c rzn2l_tst_thread_entry.c wolfssl_dummy.c
README.md include.am
SK-S7G2
common user_settings.h
wolfssl_lib configuration.xml
.gitignore README.md include.am
STARCORE README.txt include.am starcore_test.c user_settings.h
STM32Cube README.md STM32_Benchmarks.md default_conf.ftl include.am main.c wolfssl_example.c wolfssl_example.h
SimplicityStudio README.md include.am test_wolf.c user_settings.h
TRUESTUDIO
wolfssl user_settings.h
README include.am
VS-ARM README.md include.am user_settings.h wolfssl.sln wolfssl.vcxproj
VS-AZURE-SPHERE
client app_manifest.json client.c client.h client.vcxproj
server app_manifest.json server.c server.h server.vcxproj
shared util.h
wolfcrypt_test app_manifest.json wolfcrypt_test.vcxproj
README.md include.am user_settings.h wolfssl.sln wolfssl.vcxproj
VisualDSP include.am user_settings.h wolf_tasks.c
WICED-STUDIO README include.am user_settings.h
WIN README.txt include.am test.vcxproj user_settings.h user_settings_dtls.h wolfssl-fips.sln wolfssl-fips.vcxproj
WIN-SGX ReadMe.txt include.am wolfSSL_SGX.edl wolfSSL_SGX.sln wolfSSL_SGX.vcxproj
WIN-SRTP-KDF-140-3 README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxproj
WIN10 README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxproj
WINCE README.md include.am user_settings.h user_settings.h.140-2-deprecated
WORKBENCH README.md include.am
XCODE
Benchmark
wolfBench
Assets.xcassets
AppIcon.appiconset Contents.json
Base.lproj LaunchScreen.storyboard Main.storyboard
AppDelegate.h AppDelegate.m Info.plist ViewController.h ViewController.m main.m
wolfBench.xcodeproj project.pbxproj
include.am
wolfssl-FIPS.xcodeproj project.pbxproj
wolfssl.xcodeproj project.pbxproj
wolfssl_testsuite.xcodeproj project.pbxproj
README.md build-for-i386.sh include.am user_settings.h
XCODE-FIPSv2
macOS-C++
Intel user_settings.h
M1 user_settings.h
include.am user_settings.h
XCODE-FIPSv5 README include.am user_settings.h
XCODE-FIPSv6 README include.am user_settings.h
XilinxSDK
2018_2 lscript.ld
2019_2
wolfCrypt_example
src lscript.ld
wolfCrypt_example_system wolfCrypt_example_system.sprj
2022_1
wolfCrypt_FreeRTOS_example wolfCrypt_FreeRTOS_example.prj
wolfCrypt_FreeRTOS_example_system wolfCrypt_FreeRTOS_example_system.sprj
wolfCrypt_example wolfCrypt_example.prj
wolfCrypt_example_system wolfCrypt_example_system.sprj
.gitignore
README.md bench.sh combine.sh eclipse_formatter_profile.xml graph.sh include.am user_settings.h wolfssl_example.c
apple-universal
wolfssl-multiplatform
wolfssl-multiplatform
Assets.xcassets
AccentColor.colorset Contents.json
AppIcon.appiconset Contents.json
Contents.json
ContentView.swift simple_client_example.c simple_client_example.h wolfssl-multiplatform-Bridging-Header.h wolfssl_multiplatform.entitlements wolfssl_multiplatformApp.swift wolfssl_test_driver.c wolfssl_test_driver.h
wolfssl-multiplatform.xcodeproj project.pbxproj
.gitignore README.md build-wolfssl-framework.sh include.am
iotsafe Makefile README.md ca-cert.c devices.c devices.h include.am main.c memory-tls.c startup.c target.ld user_settings.h
iotsafe-raspberrypi Makefile README.md client-tls13.c include.am main.c
mynewt README.md apps.wolfcrypttest.pkg.yml crypto.wolfssl.pkg.yml crypto.wolfssl.syscfg.yml include.am setup.sh
zephyr README.md include.am
include.am
RTOS
nuttx
wolfssl .gitignore Kconfig Make.defs Makefile README.md setup-wolfssl.sh user_settings.h
include.am
bsdkm Makefile README.md bsdkm_wc_port.h include.am wolfkmod.c wolfkmod_aes.c x86_vecreg.c
certs
1024 ca-cert.der ca-cert.pem ca-key.der ca-key.pem client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der dh1024.der dh1024.pem dsa-pub-1024.pem dsa1024.der dsa1024.pem include.am rsa1024.der server-cert.der server-cert.pem server-key.der server-key.pem
3072 client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der include.am
4096 client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der include.am
acert
rsa_pss acert.pem acert_ietf.pem acert_ietf_pubkey.pem acert_pubkey.pem
acert.pem acert_ietf.pem acert_ietf_pubkey.pem acert_pubkey.pem include.am
aia ca-issuers-cert.pem multi-aia-cert.pem overflow-aia-cert.pem
crl
extra-crls ca-int-cert-revoked.pem claim-root.pem crl_critical_entry.pem crlnum_57oct.pem crlnum_64oct.pem general-server-crl.pem large_crlnum.pem large_crlnum2.pem
hash_der 0fdb2da4.r0
hash_pem 0fdb2da4.r0
bad_time_fmt.pem ca-int-ecc.pem ca-int.pem ca-int2-ecc.pem ca-int2.pem caEcc384Crl.pem caEccCrl.der caEccCrl.pem cliCrl.pem client-int-ecc.pem client-int.pem crl.der crl.pem crl.revoked crl2.der crl2.pem crl_reason.pem crl_rsapss.pem eccCliCRL.pem eccSrvCRL.pem gencrls.sh include.am server-goodaltCrl.pem server-goodaltwildCrl.pem server-goodcnCrl.pem server-goodcnwildCrl.pem server-int-ecc.pem server-int.pem wolfssl.cnf
dilithium bench_dilithium_level2_key.der bench_dilithium_level3_key.der bench_dilithium_level5_key.der include.am
ecc bp256r1-key.der bp256r1-key.pem ca-secp256k1-cert.pem ca-secp256k1-key.pem client-bp256r1-cert.der client-bp256r1-cert.pem client-secp256k1-cert.der client-secp256k1-cert.pem genecc.sh include.am secp256k1-key.der secp256k1-key.pem secp256k1-param.pem secp256k1-privkey.der secp256k1-privkey.pem server-bp256r1-cert.der server-bp256r1-cert.pem server-secp256k1-cert.der server-secp256k1-cert.pem server2-secp256k1-cert.der server2-secp256k1-cert.pem wolfssl.cnf wolfssl_384.cnf
ed25519 ca-ed25519-key.der ca-ed25519-key.pem ca-ed25519-priv.der ca-ed25519-priv.pem ca-ed25519.der ca-ed25519.pem client-ed25519-key.der client-ed25519-key.pem client-ed25519-priv.der client-ed25519-priv.pem client-ed25519.der client-ed25519.pem eddsa-ed25519.der eddsa-ed25519.pem gen-ed25519-certs.sh gen-ed25519-keys.sh gen-ed25519.sh include.am root-ed25519-key.der root-ed25519-key.pem root-ed25519-priv.der root-ed25519-priv.pem root-ed25519.der root-ed25519.pem server-ed25519-cert.pem server-ed25519-key.der server-ed25519-key.pem server-ed25519-priv.der server-ed25519-priv.pem server-ed25519.der server-ed25519.pem
ed448 ca-ed448-key.der ca-ed448-key.pem ca-ed448-priv.der ca-ed448-priv.pem ca-ed448.der ca-ed448.pem client-ed448-key.der client-ed448-key.pem client-ed448-priv.der client-ed448-priv.pem client-ed448.der client-ed448.pem gen-ed448-certs.sh gen-ed448-keys.sh include.am root-ed448-key.der root-ed448-key.pem root-ed448-priv.der root-ed448-priv.pem root-ed448.der root-ed448.pem server-ed448-cert.pem server-ed448-key.der server-ed448-key.pem server-ed448-priv.der server-ed448-priv.pem server-ed448.der server-ed448.pem
external DigiCertGlobalRootCA.pem README.txt ca-digicert-ev.pem ca-globalsign-root.pem ca-google-root.pem ca_collection.pem include.am
falcon bench_falcon_level1_key.der bench_falcon_level5_key.der include.am
intermediate
ca_false_intermediate gentestcert.sh int_ca.key server.key test_ca.key test_ca.pem test_int_not_cacert.pem test_sign_bynoca_srv.pem wolfssl_base.conf wolfssl_srv.conf
ca-ecc-bad-aki.der ca-ecc-bad-aki.pem ca-int-cert.der ca-int-cert.pem ca-int-ecc-cert.der ca-int-ecc-cert.pem ca-int-ecc-key.der ca-int-ecc-key.pem ca-int-key.der ca-int-key.pem ca-int2-cert.der ca-int2-cert.pem ca-int2-ecc-cert.der ca-int2-ecc-cert.pem ca-int2-ecc-key.der ca-int2-ecc-key.pem ca-int2-key.der ca-int2-key.pem client-chain-alt-ecc.pem client-chain-alt.pem client-chain-ecc.der client-chain-ecc.pem client-chain.der client-chain.pem client-int-cert.der client-int-cert.pem client-int-ecc-cert.der client-int-ecc-cert.pem genintcerts.sh include.am server-chain-alt-ecc.pem server-chain-alt.pem server-chain-ecc.der server-chain-ecc.pem server-chain-short.pem server-chain.der server-chain.pem server-int-cert.der server-int-cert.pem server-int-ecc-cert.der server-int-ecc-cert.pem
lms bc_hss_L2_H5_W8_root.der bc_hss_L3_H5_W4_root.der bc_lms_chain_ca.der bc_lms_chain_leaf.der bc_lms_native_bc_root.der bc_lms_sha256_h10_w8_root.der bc_lms_sha256_h5_w4_root.der include.am
mldsa README.txt include.am mldsa44-cert.der mldsa44-cert.pem mldsa44-key.pem mldsa44_bare-priv.der mldsa44_bare-seed.der mldsa44_oqskeypair.der mldsa44_priv-only.der mldsa44_pub-spki.der mldsa44_seed-only.der mldsa44_seed-priv.der mldsa65-cert.der mldsa65-cert.pem mldsa65-key.pem mldsa65_bare-priv.der mldsa65_bare-seed.der mldsa65_oqskeypair.der mldsa65_priv-only.der mldsa65_pub-spki.der mldsa65_seed-only.der mldsa65_seed-priv.der mldsa87-cert.der mldsa87-cert.pem mldsa87-key.pem mldsa87_bare-priv.der mldsa87_bare-seed.der mldsa87_oqskeypair.der mldsa87_priv-only.der mldsa87_pub-spki.der mldsa87_seed-only.der mldsa87_seed-priv.der
ocsp imposter-root-ca-cert.der imposter-root-ca-cert.pem imposter-root-ca-key.der imposter-root-ca-key.pem include.am index-ca-and-intermediate-cas.txt index-ca-and-intermediate-cas.txt.attr index-intermediate1-ca-issued-certs.txt index-intermediate1-ca-issued-certs.txt.attr index-intermediate2-ca-issued-certs.txt index-intermediate2-ca-issued-certs.txt.attr index-intermediate3-ca-issued-certs.txt index-intermediate3-ca-issued-certs.txt.attr intermediate1-ca-cert.der intermediate1-ca-cert.pem intermediate1-ca-key.der intermediate1-ca-key.pem intermediate2-ca-cert.der intermediate2-ca-cert.pem intermediate2-ca-key.der intermediate2-ca-key.pem intermediate3-ca-cert.der intermediate3-ca-cert.pem intermediate3-ca-key.der intermediate3-ca-key.pem ocsp-responder-cert.der ocsp-responder-cert.pem ocsp-responder-key.der ocsp-responder-key.pem openssl.cnf renewcerts-for-test.sh renewcerts.sh root-ca-cert.der root-ca-cert.pem root-ca-crl.pem root-ca-key.der root-ca-key.pem server1-cert.der server1-cert.pem server1-chain-noroot.pem server1-key.der server1-key.pem server2-cert.der server2-cert.pem server2-key.der server2-key.pem server3-cert.der server3-cert.pem server3-key.der server3-key.pem server4-cert.der server4-cert.pem server4-key.der server4-key.pem server5-cert.der server5-cert.pem server5-key.der server5-key.pem test-leaf-response.der test-multi-response.der test-response-nointern.der test-response-rsapss.der test-response.der
p521 ca-p521-key.der ca-p521-key.pem ca-p521-priv.der ca-p521-priv.pem ca-p521.der ca-p521.pem client-p521-key.der client-p521-key.pem client-p521-priv.der client-p521-priv.pem client-p521.der client-p521.pem gen-p521-certs.sh gen-p521-keys.sh include.am root-p521-key.der root-p521-key.pem root-p521-priv.der root-p521-priv.pem root-p521.der root-p521.pem server-p521-cert.pem server-p521-key.der server-p521-key.pem server-p521-priv.der server-p521-priv.pem server-p521.der server-p521.pem
renewcerts wolfssl.cnf
rpk client-cert-rpk.der client-ecc-cert-rpk.der include.am server-cert-rpk.der server-ecc-cert-rpk.der
rsapss ca-3072-rsapss-key.der ca-3072-rsapss-key.pem ca-3072-rsapss-priv.der ca-3072-rsapss-priv.pem ca-3072-rsapss.der ca-3072-rsapss.pem ca-rsapss-key.der ca-rsapss-key.pem ca-rsapss-priv.der ca-rsapss-priv.pem ca-rsapss.der ca-rsapss.pem client-3072-rsapss-key.der client-3072-rsapss-key.pem client-3072-rsapss-priv.der client-3072-rsapss-priv.pem client-3072-rsapss.der client-3072-rsapss.pem client-rsapss-key.der client-rsapss-key.pem client-rsapss-priv.der client-rsapss-priv.pem client-rsapss.der client-rsapss.pem gen-rsapss-keys.sh include.am renew-rsapss-certs.sh root-3072-rsapss-key.der root-3072-rsapss-key.pem root-3072-rsapss-priv.der root-3072-rsapss-priv.pem root-3072-rsapss.der root-3072-rsapss.pem root-rsapss-key.der root-rsapss-key.pem root-rsapss-priv.der root-rsapss-priv.pem root-rsapss.der root-rsapss.pem server-3072-rsapss-cert.pem server-3072-rsapss-key.der server-3072-rsapss-key.pem server-3072-rsapss-priv.der server-3072-rsapss-priv.pem server-3072-rsapss.der server-3072-rsapss.pem server-mix-rsapss-cert.pem server-rsapss-cert.pem server-rsapss-key.der server-rsapss-key.pem server-rsapss-priv.der server-rsapss-priv.pem server-rsapss.der server-rsapss.pem
sia timestamping-sia-cert.pem
slhdsa bench_slhdsa_sha2_128f_key.der bench_slhdsa_sha2_128s_key.der bench_slhdsa_sha2_192f_key.der bench_slhdsa_sha2_192s_key.der bench_slhdsa_sha2_256f_key.der bench_slhdsa_sha2_256s_key.der bench_slhdsa_shake128f_key.der bench_slhdsa_shake128s_key.der bench_slhdsa_shake192f_key.der bench_slhdsa_shake192s_key.der bench_slhdsa_shake256f_key.der bench_slhdsa_shake256s_key.der client-mldsa44-priv.pem client-mldsa44-sha2.der client-mldsa44-sha2.pem client-mldsa44-shake.der client-mldsa44-shake.pem gen-slhdsa-mldsa-certs.sh include.am root-slhdsa-sha2-128s-priv.der root-slhdsa-sha2-128s-priv.pem root-slhdsa-sha2-128s.der root-slhdsa-sha2-128s.pem root-slhdsa-shake-128s-priv.der root-slhdsa-shake-128s-priv.pem root-slhdsa-shake-128s.der root-slhdsa-shake-128s.pem server-mldsa44-priv.pem server-mldsa44-sha2.der server-mldsa44-sha2.pem server-mldsa44-shake.der server-mldsa44-shake.pem
sm2 ca-sm2-key.der ca-sm2-key.pem ca-sm2-priv.der ca-sm2-priv.pem ca-sm2.der ca-sm2.pem client-sm2-key.der client-sm2-key.pem client-sm2-priv.der client-sm2-priv.pem client-sm2.der client-sm2.pem fix_sm2_spki.py gen-sm2-certs.sh gen-sm2-keys.sh include.am root-sm2-key.der root-sm2-key.pem root-sm2-priv.der root-sm2-priv.pem root-sm2.der root-sm2.pem self-sm2-cert.pem self-sm2-key.pem self-sm2-priv.pem server-sm2-cert.der server-sm2-cert.pem server-sm2-key.der server-sm2-key.pem server-sm2-priv.der server-sm2-priv.pem server-sm2.der server-sm2.pem
statickeys dh-ffdhe2048-params.pem dh-ffdhe2048-pub.der dh-ffdhe2048-pub.pem dh-ffdhe2048.der dh-ffdhe2048.pem ecc-secp256r1.der ecc-secp256r1.pem gen-static.sh include.am x25519-pub.der x25519-pub.pem x25519.der x25519.pem
test
expired expired-ca.der expired-ca.pem expired-cert.der expired-cert.pem
catalog.txt cert-bad-neg-int.der cert-bad-oid.der cert-bad-utf8.der cert-ext-ia.cfg cert-ext-ia.der cert-ext-ia.pem cert-ext-joi.cfg cert-ext-joi.der cert-ext-joi.pem cert-ext-mnc.der cert-ext-multiple.cfg cert-ext-multiple.der cert-ext-multiple.pem cert-ext-nc-combined.der cert-ext-nc-combined.pem cert-ext-nc.cfg cert-ext-nc.der cert-ext-nc.pem cert-ext-ncdns.der cert-ext-ncdns.pem cert-ext-ncip.der cert-ext-ncip.pem cert-ext-ncmixed.der cert-ext-ncmulti.der cert-ext-ncmulti.pem cert-ext-ncrid.der cert-ext-ncrid.pem cert-ext-nct.cfg cert-ext-nct.der cert-ext-nct.pem cert-ext-ndir-exc.cfg cert-ext-ndir-exc.der cert-ext-ndir-exc.pem cert-ext-ndir.cfg cert-ext-ndir.der cert-ext-ndir.pem cert-ext-ns.der cert-over-max-altnames.cfg cert-over-max-altnames.der cert-over-max-altnames.pem cert-over-max-nc.cfg cert-over-max-nc.der cert-over-max-nc.pem client-ecc-cert-ski.hex cn-ip-literal.der cn-ip-wildcard.der crit-cert.pem crit-key.pem dh1024.der dh1024.pem dh512.der dh512.pem digsigku.pem encrypteddata.msg gen-badsig.sh gen-ext-certs.sh gen-testcerts.sh include.am kari-keyid-cms.msg ktri-keyid-cms.msg ossl-trusted-cert.pem server-badaltname.der server-badaltname.pem server-badaltnull.der server-badaltnull.pem server-badcn.der server-badcn.pem server-badcnnull.der server-badcnnull.pem server-cert-ecc-badsig.der server-cert-ecc-badsig.pem server-cert-rsa-badsig.der server-cert-rsa-badsig.pem server-duplicate-policy.pem server-garbage.der server-garbage.pem server-goodalt.der server-goodalt.pem server-goodaltwild.der server-goodaltwild.pem server-goodcn.der server-goodcn.pem server-goodcnwild.der server-goodcnwild.pem server-localhost.der server-localhost.pem smime-test-canon.p7s smime-test-multipart-badsig.p7s smime-test-multipart.p7s smime-test.p7s
test-pathlen assemble-chains.sh chainA-ICA1-key.pem chainA-ICA1-pathlen0.pem chainA-assembled.pem chainA-entity-key.pem chainA-entity.pem chainB-ICA1-key.pem chainB-ICA1-pathlen0.pem chainB-ICA2-key.pem chainB-ICA2-pathlen1.pem chainB-assembled.pem chainB-entity-key.pem chainB-entity.pem chainC-ICA1-key.pem chainC-ICA1-pathlen1.pem chainC-assembled.pem chainC-entity-key.pem chainC-entity.pem chainD-ICA1-key.pem chainD-ICA1-pathlen127.pem chainD-assembled.pem chainD-entity-key.pem chainD-entity.pem chainE-ICA1-key.pem chainE-ICA1-pathlen128.pem chainE-assembled.pem chainE-entity-key.pem chainE-entity.pem chainF-ICA1-key.pem chainF-ICA1-pathlen1.pem chainF-ICA2-key.pem chainF-ICA2-pathlen0.pem chainF-assembled.pem chainF-entity-key.pem chainF-entity.pem chainG-ICA1-key.pem chainG-ICA1-pathlen0.pem chainG-ICA2-key.pem chainG-ICA2-pathlen1.pem chainG-ICA3-key.pem chainG-ICA3-pathlen99.pem chainG-ICA4-key.pem chainG-ICA4-pathlen5.pem chainG-ICA5-key.pem chainG-ICA5-pathlen20.pem chainG-ICA6-key.pem chainG-ICA6-pathlen10.pem chainG-ICA7-key.pem chainG-ICA7-pathlen100.pem chainG-assembled.pem chainG-entity-key.pem chainG-entity.pem chainH-ICA1-key.pem chainH-ICA1-pathlen0.pem chainH-ICA2-key.pem chainH-ICA2-pathlen2.pem chainH-ICA3-key.pem chainH-ICA3-pathlen2.pem chainH-ICA4-key.pem chainH-ICA4-pathlen2.pem chainH-assembled.pem chainH-entity-key.pem chainH-entity.pem chainI-ICA1-key.pem chainI-ICA1-no_pathlen.pem chainI-ICA2-key.pem chainI-ICA2-no_pathlen.pem chainI-ICA3-key.pem chainI-ICA3-pathlen2.pem chainI-assembled.pem chainI-entity-key.pem chainI-entity.pem chainJ-ICA1-key.pem chainJ-ICA1-no_pathlen.pem chainJ-ICA2-key.pem chainJ-ICA2-no_pathlen.pem chainJ-ICA3-key.pem chainJ-ICA3-no_pathlen.pem chainJ-ICA4-key.pem chainJ-ICA4-pathlen2.pem chainJ-assembled.pem chainJ-entity-key.pem chainJ-entity.pem include.am refreshkeys.sh
test-serial0 ee_normal.pem ee_serial0.pem generate_certs.sh include.am intermediate_serial0.pem root_serial0.pem root_serial0_key.pem selfsigned_nonca_serial0.pem
xmss bc_xmss_chain_ca.der bc_xmss_chain_leaf.der bc_xmss_sha2_10_256_root.der bc_xmss_sha2_16_256_root.der bc_xmssmt_sha2_20_2_256_root.der bc_xmssmt_sha2_20_4_256_root.der bc_xmssmt_sha2_40_8_256_root.der include.am
ca-cert-chain.der ca-cert.der ca-cert.pem ca-ecc-cert.der ca-ecc-cert.pem ca-ecc-key.der ca-ecc-key.pem ca-ecc384-cert.der ca-ecc384-cert.pem ca-ecc384-key.der ca-ecc384-key.pem ca-key-pkcs8-attribute.der ca-key.der ca-key.pem check_dates.sh client-absolute-urn.pem client-ca-cert.der client-ca-cert.pem client-ca.pem client-cert-ext.der client-cert-ext.pem client-cert.der client-cert.pem client-crl-dist.der client-crl-dist.pem client-ecc-ca-cert.der client-ecc-ca-cert.pem client-ecc-cert.der client-ecc-cert.pem client-ecc384-cert.der client-ecc384-cert.pem client-ecc384-key.der client-ecc384-key.pem client-key.der client-key.pem client-keyEnc.pem client-keyPub.der client-keyPub.pem client-relative-uri.pem client-uri-cert.pem csr.attr.der csr.dsa.der csr.dsa.pem csr.ext.der csr.signed.der dh-priv-2048.der dh-priv-2048.pem dh-pub-2048.der dh-pub-2048.pem dh-pubkey-2048.der dh2048.der dh2048.pem dh3072.der dh3072.pem dh4096.der dh4096.pem dsa-pubkey-2048.der dsa2048.der dsa2048.pem dsa3072.der dsaparams.der dsaparams.pem ecc-client-key.der ecc-client-key.pem ecc-client-keyPub.der ecc-client-keyPub.pem ecc-key-comp.pem ecc-keyPkcs8.der ecc-keyPkcs8.pem ecc-keyPkcs8Enc.der ecc-keyPkcs8Enc.pem ecc-keyPub.der ecc-keyPub.pem ecc-params.der ecc-params.pem ecc-privOnlyCert.pem ecc-privOnlyKey.pem ecc-privkey.der ecc-privkey.pem ecc-privkeyPkcs8.der ecc-privkeyPkcs8.pem ecc-rsa-server.p12 empty-issuer-cert.pem entity-no-ca-bool-cert.pem entity-no-ca-bool-key.pem fpki-cert.der fpki-certpol-cert.der gen_revoked.sh include.am renewcerts.sh rid-cert.der rsa-pub-2048.pem rsa2048.der rsa3072.der server-cert-chain.der server-cert.der server-cert.pem server-ecc-comp.der server-ecc-comp.pem server-ecc-rsa.der server-ecc-rsa.pem server-ecc-self.der server-ecc-self.pem server-ecc.der server-ecc.pem server-ecc384-cert.der server-ecc384-cert.pem server-ecc384-key.der server-ecc384-key.pem server-key.der server-key.pem server-keyEnc.pem server-keyPkcs8.der server-keyPkcs8.pem server-keyPkcs8Enc.der server-keyPkcs8Enc.pem server-keyPkcs8Enc12.pem server-keyPkcs8Enc2.pem server-keyPub.der server-keyPub.pem server-revoked-cert.pem server-revoked-key.pem taoCert.txt test-ber-exp02-05-2022.p7b test-degenerate.p7b test-multiple-recipients.p7b test-servercert-rc2.p12 test-servercert.p12 test-stream-dec.p7b test-stream-sign.p7b wolfssl-website-ca.pem x942dh2048.der x942dh2048.pem
cmake
consumer CMakeLists.txt README.md main.c
modules FindARIA.cmake FindOQS.cmake
Config.cmake.in README.md config.in functions.cmake include.am options.h.in wolfssl-config-version.cmake.in wolfssl-targets.cmake.in
debian
source format
changelog.in control.in copyright include.am libwolfssl-dev.install libwolfssl.install rules.in
doc
dox_comments
header_files aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h puf.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wc_she.h wc_slhdsa.h wolfio.h
header_files-ja aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wolfio.h
formats
html
html_changes
search search.css search.js
customdoxygen.css doxygen.css menu.js menudata.js tabs.css
Doxyfile footer.html header.html mainpage.dox
pdf Doxyfile header.tex
images wolfssl_logo.png
QUIC.md README.txt README_DOXYGEN check_api.sh generate_documentation.sh include.am
examples
asn1 asn1.c dumpasn1.cfg gen_oid_names.rb include.am oid_names.h
async Makefile README.md async_client.c async_server.c async_tls.c async_tls.h include.am user_settings.h
benchmark include.am tls_bench.c tls_bench.h
client client.c client.h client.sln client.vcproj client.vcxproj include.am
configs README.md include.am user_settings_EBSnet.h user_settings_all.h user_settings_arduino.h user_settings_baremetal.h user_settings_ca.h user_settings_curve25519nonblock.h user_settings_dtls13.h user_settings_eccnonblock.h user_settings_espressif.h user_settings_fipsv2.h user_settings_fipsv5.h user_settings_min_ecc.h user_settings_openssl_compat.h user_settings_pkcs7.h user_settings_platformio.h user_settings_pq.h user_settings_rsa_only.h user_settings_stm32.h user_settings_template.h user_settings_tls12.h user_settings_tls13.h user_settings_wolfboot_keytools.h user_settings_wolfssh.h user_settings_wolftpm.h
crypto_policies
default wolfssl.txt
future wolfssl.txt
legacy wolfssl.txt
echoclient echoclient.c echoclient.h echoclient.sln echoclient.vcproj echoclient.vcxproj include.am quit
echoserver echoserver.c echoserver.h echoserver.sln echoserver.vcproj echoserver.vcxproj include.am
ocsp_responder include.am ocsp_responder.c ocsp_responder.h
pem include.am pem.c
sctp include.am sctp-client-dtls.c sctp-client.c sctp-server-dtls.c sctp-server.c
server include.am server.c server.h server.sln server.vcproj server.vcxproj
README.md include.am
linuxkm
patches
5.10.17 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v10v17.patch
5.10.236 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v10v236.patch
5.14.0-570.58.1.el9_6 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v14-570v58v1-el9_6.patch
5.15 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v15.patch
5.17 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v17.patch
5.17-ubuntu-jammy-tegra WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v17-ubuntu-jammy-tegra.patch
6.1.73 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v1v73.patch
6.12 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v12.patch
6.15 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v15.patch
7.0 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-7v0.patch
regen-patches.sh
Kbuild Makefile README.md get_thread_size.c include.am linuxkm-fips-hash-wrapper.sh linuxkm-fips-hash.c linuxkm_memory.c linuxkm_memory.h linuxkm_wc_port.h lkcapi_aes_glue.c lkcapi_dh_glue.c lkcapi_ecdh_glue.c lkcapi_ecdsa_glue.c lkcapi_glue.c lkcapi_rsa_glue.c lkcapi_sha_glue.c module_exports.c.template module_hooks.c pie_redirect_table.c wolfcrypt.lds x86_vector_register_glue.c
m4 ax_add_am_macro.m4 ax_am_jobserver.m4 ax_am_macros.m4 ax_append_compile_flags.m4 ax_append_flag.m4 ax_append_link_flags.m4 ax_append_to_file.m4 ax_atomic.m4 ax_bsdkm.m4 ax_check_compile_flag.m4 ax_check_link_flag.m4 ax_compiler_version.m4 ax_count_cpus.m4 ax_create_generic_config.m4 ax_debug.m4 ax_file_escapes.m4 ax_harden_compiler_flags.m4 ax_linuxkm.m4 ax_print_to_file.m4 ax_pthread.m4 ax_require_defined.m4 ax_tls.m4 ax_vcs_checkout.m4 hexversion.m4 lib_socket_nsl.m4 visibility.m4
mcapi
wolfcrypt_mcapi.X
nbproject configurations.xml include.am project.xml
Makefile
wolfcrypt_test.X
nbproject configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
zlib.X
nbproject configurations.xml include.am project.xml
Makefile
PIC32MZ-serial.h README crypto.c crypto.h include.am mcapi_test.c user_settings.h
mplabx
wolfcrypt_benchmark.X
nbproject configurations.xml include.am project.xml
Makefile
wolfcrypt_test.X
nbproject configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
PIC32MZ-serial.h README benchmark_main.c include.am test_main.c user_settings.h
mqx
util_lib
Sources include.am util.c util.h
wolfcrypt_benchmark
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
wolfcrypt_test
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
wolfssl include.am
wolfssl_client
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
README
rpm include.am spec.in
scripts
bench bench_functions.sh
aria-cmake-build-test.sh asn1_oid_sum.pl benchmark.test benchmark_compare.sh cleanup_testfiles.sh crl-gen-openssl.test crl-revoked.test dertoc.pl dtls.test dtlscid.test external.test google.test include.am makedistsmall.sh memtest.sh ocsp-responder-openssl-interop.test ocsp-stapling-with-ca-as-responder.test ocsp-stapling-with-wolfssl-responder.test ocsp-stapling.test ocsp-stapling2.test ocsp-stapling_tls13multi.test ocsp.test openssl.test openssl_srtp.test pem.test ping.test pkcallbacks.test psk.test resume.test rsapss.test sniffer-gen.sh sniffer-ipv6.pcap sniffer-static-rsa.pcap sniffer-testsuite.test sniffer-tls12-keylog.out sniffer-tls12-keylog.pcap sniffer-tls12-keylog.sslkeylog sniffer-tls13-dh-resume.pcap sniffer-tls13-dh.pcap sniffer-tls13-ecc-resume.pcap sniffer-tls13-ecc.pcap sniffer-tls13-hrr.pcap sniffer-tls13-keylog.out sniffer-tls13-keylog.pcap sniffer-tls13-keylog.sslkeylog sniffer-tls13-x25519-resume.pcap sniffer-tls13-x25519.pcap stm32l4-v4_0_1_build.sh tls13.test trusted_peer.test unit.test.in user_settings_asm.sh
src bio.c conf.c crl.c dtls.c dtls13.c include.am internal.c keys.c ocsp.c pk.c pk_ec.c pk_rsa.c quic.c sniffer.c ssl.c ssl_api_cert.c ssl_api_crl_ocsp.c ssl_api_pk.c ssl_asn1.c ssl_bn.c ssl_certman.c ssl_crypto.c ssl_ech.c ssl_load.c ssl_misc.c ssl_p7p12.c ssl_sess.c ssl_sk.c tls.c tls13.c wolfio.c x509.c x509_str.c
sslSniffer
sslSnifferTest README_WIN.md include.am snifftest.c sslSniffTest.vcproj sslSniffTest.vcxproj
README.md sslSniffer.vcproj sslSniffer.vcxproj
support gen-debug-trace-error-codes.sh include.am wolfssl.pc.in
tests
api api.h api_decl.h create_ocsp_test_blobs.py include.am test_aes.c test_aes.h test_arc4.c test_arc4.h test_ascon.c test_ascon.h test_ascon_kats.h test_asn.c test_asn.h test_blake2.c test_blake2.h test_camellia.c test_camellia.h test_certman.c test_certman.h test_chacha.c test_chacha.h test_chacha20_poly1305.c test_chacha20_poly1305.h test_cmac.c test_cmac.h test_curve25519.c test_curve25519.h test_curve448.c test_curve448.h test_des3.c test_des3.h test_dh.c test_dh.h test_digest.h test_dsa.c test_dsa.h test_dtls.c test_dtls.h test_ecc.c test_ecc.h test_ed25519.c test_ed25519.h test_ed448.c test_ed448.h test_evp.c test_evp.h test_evp_cipher.c test_evp_cipher.h test_evp_digest.c test_evp_digest.h test_evp_pkey.c test_evp_pkey.h test_hash.c test_hash.h test_hmac.c test_hmac.h test_md2.c test_md2.h test_md4.c test_md4.h test_md5.c test_md5.h test_mldsa.c test_mldsa.h test_mlkem.c test_mlkem.h test_ocsp.c test_ocsp.h test_ocsp_test_blobs.h test_ossl_asn1.c test_ossl_asn1.h test_ossl_bio.c test_ossl_bio.h test_ossl_bn.c test_ossl_bn.h test_ossl_cipher.c test_ossl_cipher.h test_ossl_dgst.c test_ossl_dgst.h test_ossl_dh.c test_ossl_dh.h test_ossl_dsa.c test_ossl_dsa.h test_ossl_ec.c test_ossl_ec.h test_ossl_ecx.c test_ossl_ecx.h test_ossl_mac.c test_ossl_mac.h test_ossl_obj.c test_ossl_obj.h test_ossl_p7p12.c test_ossl_p7p12.h test_ossl_pem.c test_ossl_pem.h test_ossl_rand.c test_ossl_rand.h test_ossl_rsa.c test_ossl_rsa.h test_ossl_sk.c test_ossl_sk.h test_ossl_x509.c test_ossl_x509.h test_ossl_x509_acert.c test_ossl_x509_acert.h test_ossl_x509_crypto.c test_ossl_x509_crypto.h test_ossl_x509_ext.c test_ossl_x509_ext.h test_ossl_x509_info.c test_ossl_x509_info.h test_ossl_x509_io.c test_ossl_x509_io.h test_ossl_x509_lu.c test_ossl_x509_lu.h test_ossl_x509_name.c test_ossl_x509_name.h test_ossl_x509_pk.c test_ossl_x509_pk.h test_ossl_x509_str.c test_ossl_x509_str.h test_ossl_x509_vp.c test_ossl_x509_vp.h test_pkcs12.c test_pkcs12.h test_pkcs7.c test_pkcs7.h test_poly1305.c test_poly1305.h test_random.c test_random.h test_rc2.c test_rc2.h test_ripemd.c test_ripemd.h test_rsa.c test_rsa.h test_sha.c test_sha.h test_sha256.c test_sha256.h test_sha3.c test_sha3.h test_sha512.c test_sha512.h test_she.c test_she.h test_signature.c test_signature.h test_slhdsa.c test_slhdsa.h test_sm2.c test_sm2.h test_sm3.c test_sm3.h test_sm4.c test_sm4.h test_tls.c test_tls.h test_tls13.c test_tls13.h test_tls_ext.c test_tls_ext.h test_wc_encrypt.c test_wc_encrypt.h test_wolfmath.c test_wolfmath.h test_x509.c test_x509.h
emnet
IP IP.h
Makefile emnet_nonblock_test.c emnet_shim.c
freertos-mem-track-repro FreeRTOS.h repro.c run.sh semphr.h task.h user_settings.h
swdev .gitignore Makefile README.md swdev.c swdev.h swdev_loader.c swdev_loader.h user_settings.h
CONF_FILES_README.md NCONF_test.cnf README TXT_DB.txt api.c include.am quic.c srp.c suites.c test-altchains.conf test-chains.conf test-dhprime.conf test-dtls-downgrade.conf test-dtls-fails-cipher.conf test-dtls-fails.conf test-dtls-group.conf test-dtls-mtu.conf test-dtls-reneg-client.conf test-dtls-reneg-server.conf test-dtls-resume.conf test-dtls-sha2.conf test-dtls-srtp-fails.conf test-dtls-srtp.conf test-dtls.conf test-dtls13-cid.conf test-dtls13-downgrade-fails.conf test-dtls13-downgrade.conf test-dtls13-pq-hybrid-extra-frag.conf test-dtls13-pq-hybrid-extra.conf test-dtls13-pq-hybrid-frag.conf test-dtls13-pq-standalone-frag.conf test-dtls13-pq-standalone.conf test-dtls13-psk.conf test-dtls13.conf test-ecc-cust-curves.conf test-ed25519.conf test-ed448.conf test-enckeys.conf test-fails.conf test-maxfrag-dtls.conf test-maxfrag.conf test-p521.conf test-psk-no-id-sha2.conf test-psk-no-id.conf test-psk.conf test-rsapss.conf test-sctp-sha2.conf test-sctp.conf test-sha2.conf test-sig.conf test-sm2.conf test-tls-downgrade.conf test-tls13-down.conf test-tls13-ecc.conf test-tls13-pq-hybrid-extra.conf test-tls13-pq-hybrid.conf test-tls13-pq-standalone.conf test-tls13-psk-certs.conf test-tls13-psk.conf test-tls13-slhdsa-fail.conf test-tls13-slhdsa-sha2.conf test-tls13-slhdsa-shake.conf test-tls13.conf test-trustpeer.conf test.conf unit.c unit.h utils.c utils.h w64wrapper.c
testsuite include.am testsuite.c testsuite.sln testsuite.vcproj testsuite.vcxproj utils.c utils.h
tirtos
packages
ti
net
wolfssl
tests
EK_TM4C1294XL
wolfcrypt
benchmark TM4C1294NC.icf benchmark.cfg main.c package.bld.hide package.xdc
test TM4C1294NC.icf main.c package.bld.hide package.xdc test.cfg
package.bld package.xdc package.xs
.gitignore README include.am products.mak wolfssl.bld wolfssl.mak
wolfcrypt
benchmark README.md benchmark-VS2022.sln benchmark-VS2022.vcxproj benchmark-VS2022.vcxproj.user benchmark.c benchmark.h benchmark.sln benchmark.vcproj benchmark.vcxproj include.am
src
port
Espressif
esp_crt_bundle README.md cacrt_all.pem cacrt_deprecated.pem cacrt_local.pem esp_crt_bundle.c gen_crt_bundle.py pio_install_cryptography.py
README.md esp32_aes.c esp32_mp.c esp32_sha.c esp32_util.c esp_sdk_mem_lib.c esp_sdk_time_lib.c esp_sdk_wifi_lib.c
Renesas README.md renesas_common.c renesas_fspsm_aes.c renesas_fspsm_rsa.c renesas_fspsm_sha.c renesas_fspsm_util.c renesas_rx64_hw_sha.c renesas_rx64_hw_util.c renesas_tsip_aes.c renesas_tsip_rsa.c renesas_tsip_sha.c renesas_tsip_util.c
af_alg afalg_aes.c afalg_hash.c wc_afalg.c
aria aria-crypt.c aria-cryptocb.c
arm armv8-32-aes-asm.S armv8-32-aes-asm_c.c armv8-32-chacha-asm.S armv8-32-chacha-asm_c.c armv8-32-curve25519.S armv8-32-curve25519_c.c armv8-32-mlkem-asm.S armv8-32-mlkem-asm_c.c armv8-32-poly1305-asm.S armv8-32-poly1305-asm_c.c armv8-32-sha256-asm.S armv8-32-sha256-asm_c.c armv8-32-sha3-asm.S armv8-32-sha3-asm_c.c armv8-32-sha512-asm.S armv8-32-sha512-asm_c.c armv8-aes-asm.S armv8-aes-asm_c.c armv8-aes.c armv8-chacha-asm.S armv8-chacha-asm_c.c armv8-curve25519.S armv8-curve25519_c.c armv8-mlkem-asm.S armv8-mlkem-asm_c.c armv8-poly1305-asm.S armv8-poly1305-asm_c.c armv8-sha256-asm.S armv8-sha256-asm_c.c armv8-sha256.c armv8-sha3-asm.S armv8-sha3-asm_c.c armv8-sha512-asm.S armv8-sha512-asm_c.c armv8-sha512.c cryptoCell.c cryptoCellHash.c thumb2-aes-asm.S thumb2-aes-asm_c.c thumb2-chacha-asm.S thumb2-chacha-asm_c.c thumb2-curve25519.S thumb2-curve25519_c.c thumb2-mlkem-asm.S thumb2-mlkem-asm_c.c thumb2-poly1305-asm.S thumb2-poly1305-asm_c.c thumb2-sha256-asm.S thumb2-sha256-asm_c.c thumb2-sha3-asm.S thumb2-sha3-asm_c.c thumb2-sha512-asm.S thumb2-sha512-asm_c.c
atmel README.md atmel.c
autosar README.md cryif.c crypto.c csm.c include.am test.c
caam README.md caam_aes.c caam_doc.pdf caam_driver.c caam_error.c caam_integrity.c caam_qnx.c caam_sha.c wolfcaam_aes.c wolfcaam_cmac.c wolfcaam_ecdsa.c wolfcaam_fsl_nxp.c wolfcaam_hash.c wolfcaam_hmac.c wolfcaam_init.c wolfcaam_qnx.c wolfcaam_rsa.c wolfcaam_seco.c wolfcaam_x25519.c
cavium README.md README_Octeon.md cavium_nitrox.c cavium_octeon_sync.c
cuda README.md aes-cuda.cu
cypress README.md psoc6_crypto.c
devcrypto README.md devcrypto_aes.c devcrypto_ecdsa.c devcrypto_hash.c devcrypto_hmac.c devcrypto_rsa.c devcrypto_x25519.c wc_devcrypto.c
intel README.md quickassist.c quickassist_mem.c quickassist_sync.c
iotsafe iotsafe.c
kcapi README.md kcapi_aes.c kcapi_dh.c kcapi_ecc.c kcapi_hash.c kcapi_hmac.c kcapi_rsa.c
liboqs liboqs.c
maxim README.md max3266x.c maxq10xx.c
mynewt mynewt_port.c
nxp README.md README_SE050.md casper_port.c dcp_port.c hashcrypt_port.c ksdk_port.c se050_port.c
pic32 pic32mz-crypt.c
ppc32 ppc32-sha256-asm.S ppc32-sha256-asm_c.c ppc32-sha256-asm_cr.c
psa README.md psa.c psa_aes.c psa_hash.c psa_pkcbs.c
riscv riscv-64-aes.c riscv-64-chacha.c riscv-64-poly1305.c riscv-64-sha256.c riscv-64-sha3.c riscv-64-sha512.c
rpi_pico README.md pico.c
silabs README.md silabs_aes.c silabs_ecc.c silabs_hash.c silabs_random.c
st README.md STM32MP13.md STM32MP25.md stm32.c stsafe.c
ti ti-aes.c ti-ccm.c ti-des3.c ti-hash.c
tropicsquare README.md tropic01.c
xilinx xil-aesgcm.c xil-sha3.c xil-versal-glue.c xil-versal-trng.c
nrf51.c
ASN_TEMPLATE.md aes.c aes_asm.S aes_asm.asm aes_gcm_asm.S aes_gcm_asm.asm aes_gcm_x86_asm.S aes_xts_asm.S aes_xts_asm.asm arc4.c ascon.c asm.c asn.c asn_orig.c async.c blake2b.c blake2s.c camellia.c chacha.c chacha20_poly1305.c chacha_asm.S chacha_asm.asm cmac.c coding.c compress.c cpuid.c cryptocb.c curve25519.c curve448.c des3.c dh.c dilithium.c dsa.c ecc.c ecc_fp.c eccsi.c ed25519.c ed448.c error.c evp.c evp_pk.c falcon.c fe_448.c fe_low_mem.c fe_operations.c fe_x25519_128.h fe_x25519_asm.S fp_mont_small.i fp_mul_comba_12.i fp_mul_comba_17.i fp_mul_comba_20.i fp_mul_comba_24.i fp_mul_comba_28.i fp_mul_comba_3.i fp_mul_comba_32.i fp_mul_comba_4.i fp_mul_comba_48.i fp_mul_comba_6.i fp_mul_comba_64.i fp_mul_comba_7.i fp_mul_comba_8.i fp_mul_comba_9.i fp_mul_comba_small_set.i fp_sqr_comba_12.i fp_sqr_comba_17.i fp_sqr_comba_20.i fp_sqr_comba_24.i fp_sqr_comba_28.i fp_sqr_comba_3.i fp_sqr_comba_32.i fp_sqr_comba_4.i fp_sqr_comba_48.i fp_sqr_comba_6.i fp_sqr_comba_64.i fp_sqr_comba_7.i fp_sqr_comba_8.i fp_sqr_comba_9.i fp_sqr_comba_small_set.i ge_448.c ge_low_mem.c ge_operations.c hash.c hmac.c hpke.c include.am integer.c kdf.c logging.c md2.c md4.c md5.c memory.c misc.c pkcs12.c pkcs7.c poly1305.c poly1305_asm.S poly1305_asm.asm puf.c pwdbased.c random.c rc2.c ripemd.c rng_bank.c rsa.c sakke.c sha.c sha256.c sha256_asm.S sha3.c sha3_asm.S sha512.c sha512_asm.S signature.c siphash.c sm2.c sm3.c sm3_asm.S sm4.c sp_arm32.c sp_arm64.c sp_armthumb.c sp_c32.c sp_c64.c sp_cortexm.c sp_dsp32.c sp_int.c sp_sm2_arm32.c sp_sm2_arm64.c sp_sm2_armthumb.c sp_sm2_c32.c sp_sm2_c64.c sp_sm2_cortexm.c sp_sm2_x86_64.c sp_sm2_x86_64_asm.S sp_x86_64.c sp_x86_64_asm.S sp_x86_64_asm.asm srp.c tfm.c wc_dsp.c wc_encrypt.c wc_lms.c wc_lms_impl.c wc_mldsa_asm.S wc_mlkem.c wc_mlkem_asm.S wc_mlkem_poly.c wc_pkcs11.c wc_port.c wc_she.c wc_slhdsa.c wc_xmss.c wc_xmss_impl.c wolfentropy.c wolfevent.c wolfmath.c
test README.md include.am test-VS2022.sln test-VS2022.vcxproj test-VS2022.vcxproj.user test.c test.h test.sln test.vcproj test_paths.h.in
wolfssl
openssl aes.h asn1.h asn1t.h bio.h bn.h buffer.h camellia.h cmac.h cms.h compat_types.h conf.h crypto.h des.h dh.h dsa.h ec.h ec25519.h ec448.h ecdh.h ecdsa.h ed25519.h ed448.h engine.h err.h evp.h fips_rand.h hmac.h include.am kdf.h lhash.h md4.h md5.h modes.h obj_mac.h objects.h ocsp.h opensslconf.h opensslv.h ossl_typ.h pem.h pkcs12.h pkcs7.h rand.h rc4.h ripemd.h rsa.h safestack.h sha.h sha3.h srp.h ssl.h ssl23.h stack.h tls1.h txt_db.h ui.h x509.h x509_vfy.h x509v3.h
wolfcrypt
port
Espressif esp-sdk-lib.h esp32-crypt.h esp_crt_bundle.h
Renesas renesas-fspsm-crypt.h renesas-fspsm-types.h renesas-rx64-hw-crypt.h renesas-tsip-crypt.h renesas_cmn.h renesas_fspsm_internal.h renesas_sync.h renesas_tsip_internal.h renesas_tsip_types.h
af_alg afalg_hash.h wc_afalg.h
aria aria-crypt.h aria-cryptocb.h
arm cryptoCell.h
atmel atmel.h
autosar CryIf.h Crypto.h Csm.h StandardTypes.h
caam caam_driver.h caam_error.h caam_qnx.h wolfcaam.h wolfcaam_aes.h wolfcaam_cmac.h wolfcaam_ecdsa.h wolfcaam_fsl_nxp.h wolfcaam_hash.h wolfcaam_qnx.h wolfcaam_rsa.h wolfcaam_seco.h wolfcaam_sha.h wolfcaam_x25519.h
cavium cavium_nitrox.h cavium_octeon_sync.h
cypress psoc6_crypto.h
devcrypto wc_devcrypto.h
intel quickassist.h quickassist_mem.h quickassist_sync.h
iotsafe iotsafe.h
kcapi kcapi_dh.h kcapi_ecc.h kcapi_hash.h kcapi_hmac.h kcapi_rsa.h wc_kcapi.h
liboqs liboqs.h
maxim max3266x-cryptocb.h max3266x.h maxq10xx.h
nxp casper_port.h dcp_port.h hashcrypt_port.h ksdk_port.h se050_port.h
pic32 pic32mz-crypt.h
psa psa.h
riscv riscv-64-asm.h
rpi_pico pico.h
silabs silabs_aes.h silabs_ecc.h silabs_hash.h silabs_random.h
st stm32.h stsafe.h
ti ti-ccm.h ti-hash.h
tropicsquare tropic01.h
xilinx xil-sha3.h xil-versal-glue.h xil-versal-trng.h
nrf51.h
aes.h arc4.h ascon.h asn.h asn_public.h async.h blake2-impl.h blake2-int.h blake2.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cpuid.h cryptocb.h curve25519.h curve448.h des3.h dh.h dilithium.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h falcon.h fe_448.h fe_operations.h fips_test.h ge_448.h ge_operations.h hash.h hmac.h hpke.h include.am integer.h kdf.h libwolfssl_sources.h libwolfssl_sources_asm.h logging.h md2.h md4.h md5.h mem_track.h memory.h misc.h mpi_class.h mpi_superclass.h oid_sum.h pkcs11.h pkcs12.h pkcs7.h poly1305.h puf.h pwdbased.h random.h rc2.h ripemd.h rng_bank.h rsa.h sakke.h selftest.h settings.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h sm2.h sm3.h sm4.h sp.h sp_int.h srp.h tfm.h types.h visibility.h wc_encrypt.h wc_lms.h wc_mlkem.h wc_pkcs11.h wc_port.h wc_she.h wc_slhdsa.h wc_xmss.h wolfentropy.h wolfevent.h wolfmath.h
callbacks.h certs_test.h certs_test_sm.h crl.h error-ssl.h include.am internal.h ocsp.h options.h.in quic.h sniffer.h sniffer_error.h sniffer_error.rc ssl.h test.h version.h version.h.in wolfio.h
wrapper
Ada
examples
src aes_verify_main.adb rsa_verify_main.adb sha256_main.adb spark_sockets.adb spark_sockets.ads spark_terminal.adb spark_terminal.ads tls_client.adb tls_client.ads tls_client_main.adb tls_server.adb tls_server.ads tls_server_main.adb
.gitignore alire.toml examples.gpr
tests
src
support test_support.adb test_support.ads tests_root_suite.adb tests_root_suite.ads
aes_bindings_tests.adb aes_bindings_tests.ads rsa_verify_bindings_tests.adb rsa_verify_bindings_tests.ads sha256_bindings_tests.adb sha256_bindings_tests.ads tests.adb
.gitignore README.md alire.toml tests.gpr valgrind.supp
.gitignore README.md ada_binding.c alire.toml default.gpr include.am restricted.adc user_settings.h wolfssl-full_runtime.adb wolfssl-full_runtime.ads wolfssl.adb wolfssl.ads wolfssl.gpr
CSharp
wolfCrypt-Test
Properties AssemblyInfo.cs
App.config wolfCrypt-Test.cs wolfCrypt-Test.csproj
wolfSSL-DTLS-PSK-Server
Properties AssemblyInfo.cs
App.config wolfSSL-DTLS-PSK-Server.cs wolfSSL-DTLS-PSK-Server.csproj
wolfSSL-DTLS-Server
Properties AssemblyInfo.cs
App.config wolfSSL-DTLS-Server.cs wolfSSL-DTLS-Server.csproj
wolfSSL-Example-IOCallbacks
Properties AssemblyInfo.cs
App.config wolfSSL-Example-IOCallbacks.cs wolfSSL-Example-IOCallbacks.csproj
wolfSSL-TLS-Client
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-Client.cs wolfSSL-TLS-Client.csproj
wolfSSL-TLS-PSK-Client
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-PSK-Client.cs wolfSSL-TLS-PSK-Client.csproj
wolfSSL-TLS-PSK-Server
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-PSK-Server.cs wolfSSL-TLS-PSK-Server.csproj
wolfSSL-TLS-Server
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-Server.cs wolfSSL-TLS-Server.csproj
wolfSSL-TLS-ServerThreaded
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-ServerThreaded.cs wolfSSL-TLS-ServerThreaded.csproj
wolfSSL_CSharp
Properties AssemblyInfo.cs Resources.Designer.cs Resources.resx
X509.cs wolfCrypt.cs wolfSSL.cs wolfSSL_CSharp.csproj
README.md include.am user_settings.h wolfSSL_CSharp.sln wolfssl.vcxproj
python README.md
rust
wolfssl-wolfcrypt
src aes.rs blake2.rs chacha20_poly1305.rs cmac.rs cmac_mac.rs curve25519.rs dh.rs dilithium.rs ecc.rs ecdsa.rs ed25519.rs ed448.rs fips.rs hkdf.rs hmac.rs hmac_mac.rs kdf.rs lib.rs lms.rs mlkem.rs mlkem_kem.rs pbkdf2_password_hash.rs prf.rs random.rs rsa.rs rsa_pkcs1v15.rs sha.rs sha_digest.rs sys.rs
tests
common mod.rs
test_aes.rs test_blake2.rs test_chacha20_poly1305.rs test_cmac.rs test_cmac_mac.rs test_curve25519.rs test_dh.rs test_dilithium.rs test_ecc.rs test_ecdsa.rs test_ed25519.rs test_ed448.rs test_hkdf.rs test_hmac.rs test_hmac_mac.rs test_kdf.rs test_lms.rs test_mlkem.rs test_mlkem_kem.rs test_pbkdf2_password_hash.rs test_prf.rs test_random.rs test_rsa.rs test_rsa_pkcs1v15.rs test_sha.rs test_sha_digest.rs test_wolfcrypt.rs
CHANGELOG.md Cargo.lock Cargo.toml Makefile README.md build.rs headers.h
Makefile README.md include.am
include.am
zephyr
samples
wolfssl_benchmark
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
CMakeLists.txt README install_test.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_test
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
CMakeLists.txt README install_test.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_tls_sock
boards native_sim.conf
src tls_sock.c
CMakeLists.txt README install_sample.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_tls_thread
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
src tls_threaded.c
CMakeLists.txt README install_sample.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl options.h
CMakeLists.txt Kconfig Kconfig.tls-generic README.md include.am module.yml user_settings-no-malloc.h user_settings.h zephyr_init.c
.codespellexcludelines .cyignore .editorconfig .gitignore .wolfssl_known_macro_extras AUTHORS CMakeLists.txt CMakePresets.json CMakeSettings.json COPYING ChangeLog.md INSTALL LICENSING LPCExpresso.cproject LPCExpresso.project Makefile.am README README-async.md README.md SCRIPTS-LIST SECURITY-POLICY.md SECURITY-REPORT-TEMPLATE.md Vagrantfile autogen.sh commit-tests.sh configure.ac fips-check.sh fips-hash.sh gencertbuf.pl input pull_to_vagrant.sh quit resource.h stamp-h.in valgrind-bash.supp valgrind-error.sh wnr-example.conf wolfssl-VS2022.vcxproj wolfssl.rc wolfssl.vcproj wolfssl.vcxproj wolfssl64.sln
.clangd .gitignore DOCS.md Makefile README.md assert.c core.c crypto.c env.c fs.c http.c ini.c json.c log.c luna.h main.c makext.mk path.c process.c request.c sqlite.c stash.c template.c util.c
libev/libtool raw
    1#! /bin/sh
    2
    3# libtool - Provide generalized library-building support services.
    4# Generated automatically by config.status (libev) 4.22
    5# Libtool was configured on host quark:
    6# NOTE: Changes made to this file will be lost: look at ltmain.sh.
    7#
    8#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
    9#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
   10#                 Foundation, Inc.
   11#   Written by Gordon Matzigkeit, 1996
   12#
   13#   This file is part of GNU Libtool.
   14#
   15# GNU Libtool is free software; you can redistribute it and/or
   16# modify it under the terms of the GNU General Public License as
   17# published by the Free Software Foundation; either version 2 of
   18# the License, or (at your option) any later version.
   19#
   20# As a special exception to the GNU General Public License,
   21# if you distribute this file as part of a program or library that
   22# is built using GNU Libtool, you may include this file under the
   23# same distribution terms that you use for the rest of that program.
   24#
   25# GNU Libtool is distributed in the hope that it will be useful,
   26# but WITHOUT ANY WARRANTY; without even the implied warranty of
   27# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   28# GNU General Public License for more details.
   29#
   30# You should have received a copy of the GNU General Public License
   31# along with GNU Libtool; see the file COPYING.  If not, a copy
   32# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
   33# obtained by writing to the Free Software Foundation, Inc.,
   34# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
   35
   36
   37# The names of the tagged configurations supported by this script.
   38available_tags=""
   39
   40# ### BEGIN LIBTOOL CONFIG
   41
   42# Which release of libtool.m4 was used?
   43macro_version=2.4.2
   44macro_revision=1.3337
   45
   46# Whether or not to build shared libraries.
   47build_libtool_libs=no
   48
   49# Whether or not to build static libraries.
   50build_old_libs=yes
   51
   52# What type of objects to build.
   53pic_mode=default
   54
   55# Whether or not to optimize for fast installation.
   56fast_install=needless
   57
   58# Shell to use when invoking shell scripts.
   59SHELL="/bin/sh"
   60
   61# An echo program that protects backslashes.
   62ECHO="printf %s\\n"
   63
   64# The PATH separator for the build system.
   65PATH_SEPARATOR=":"
   66
   67# The host system.
   68host_alias=x86_64-linux-musl
   69host=x86_64-pc-linux-musl
   70host_os=linux-musl
   71
   72# The build system.
   73build_alias=
   74build=x86_64-unknown-linux-gnu
   75build_os=linux-gnu
   76
   77# A sed program that does not truncate output.
   78SED="/usr/bin/sed"
   79
   80# Sed that helps us avoid accidentally triggering echo(1) options like -n.
   81Xsed="$SED -e 1s/^X//"
   82
   83# A grep program that handles long lines.
   84GREP="/usr/bin/grep"
   85
   86# An ERE matcher.
   87EGREP="/usr/bin/grep -E"
   88
   89# A literal string matcher.
   90FGREP="/usr/bin/grep -F"
   91
   92# A BSD- or MS-compatible name lister.
   93NM="nm"
   94
   95# Whether we need soft or hard links.
   96LN_S="ln -s"
   97
   98# What is the maximum length of a command?
   99max_cmd_len=1572864
  100
  101# Object file suffix (normally "o").
  102objext=o
  103
  104# Executable file suffix (normally "").
  105exeext=
  106
  107# whether the shell understands "unset".
  108lt_unset=unset
  109
  110# turn spaces into newlines.
  111SP2NL="tr \\040 \\012"
  112
  113# turn newlines into spaces.
  114NL2SP="tr \\015\\012 \\040\\040"
  115
  116# convert $build file names to $host format.
  117to_host_file_cmd=func_convert_file_noop
  118
  119# convert $build files to toolchain format.
  120to_tool_file_cmd=func_convert_file_noop
  121
  122# An object symbol dumper.
  123OBJDUMP="objdump"
  124
  125# Method to check whether dependent libraries are shared objects.
  126deplibs_check_method="pass_all"
  127
  128# Command to use when deplibs_check_method = "file_magic".
  129file_magic_cmd="\$MAGIC_CMD"
  130
  131# How to find potential files when deplibs_check_method = "file_magic".
  132file_magic_glob=""
  133
  134# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
  135want_nocaseglob="no"
  136
  137# DLL creation program.
  138DLLTOOL="false"
  139
  140# Command to associate shared and link libraries.
  141sharedlib_from_linklib_cmd="printf %s\\n"
  142
  143# The archiver.
  144AR="ar"
  145
  146# Flags to create an archive.
  147AR_FLAGS="cru"
  148
  149# How to feed a file listing to the archiver.
  150archiver_list_spec="@"
  151
  152# A symbol stripping program.
  153STRIP="strip"
  154
  155# Commands used to install an old-style archive.
  156RANLIB="ranlib"
  157old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$tool_oldlib"
  158old_postuninstall_cmds=""
  159
  160# Whether to use a lock for old archive extraction.
  161lock_old_archive_extraction=no
  162
  163# A C compiler.
  164LTCC="zig cc -target x86_64-linux-musl"
  165
  166# LTCC compiler flags.
  167LTCFLAGS="-g -O3"
  168
  169# Take the output of nm and produce a listing of raw symbols and C names.
  170global_symbol_pipe="sed -n -e 's/^.*[	 ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[	 ][	 ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p' | sed '/ __gnu_lto/d'"
  171
  172# Transform the output of nm in a proper C declaration.
  173global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
  174
  175# Transform the output of nm in a C name address pair.
  176global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\)[ ]*\$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p'"
  177
  178# Transform the output of nm in a C name address pair when lib prefix is needed.
  179global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\)[ ]*\$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"lib\\2\", (void *) \\&\\2},/p'"
  180
  181# Specify filename containing input files for $NM.
  182nm_file_list_spec="@"
  183
  184# The root where to search for dependent libraries,and in which our libraries should be installed.
  185lt_sysroot=
  186
  187# The name of the directory that contains temporary libtool files.
  188objdir=.libs
  189
  190# Used to examine libraries when file_magic_cmd begins with "file".
  191MAGIC_CMD=file
  192
  193# Must we lock files when doing compilation?
  194need_locks="no"
  195
  196# Manifest tool.
  197MANIFEST_TOOL=":"
  198
  199# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  200DSYMUTIL=""
  201
  202# Tool to change global to local symbols on Mac OS X.
  203NMEDIT=""
  204
  205# Tool to manipulate fat objects and archives on Mac OS X.
  206LIPO=""
  207
  208# ldd/readelf like tool for Mach-O binaries on Mac OS X.
  209OTOOL=""
  210
  211# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
  212OTOOL64=""
  213
  214# Old archive suffix (normally "a").
  215libext=a
  216
  217# Shared library suffix (normally ".so").
  218shrext_cmds=".so"
  219
  220# The commands to extract the exported symbol list from a shared archive.
  221extract_expsyms_cmds=""
  222
  223# Variables whose values should be saved in libtool wrapper scripts and
  224# restored at link time.
  225variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
  226
  227# Do we need the "lib" prefix for modules?
  228need_lib_prefix=no
  229
  230# Do we need a version for libraries?
  231need_version=no
  232
  233# Library versioning type.
  234version_type=linux
  235
  236# Shared library runtime path variable.
  237runpath_var=LD_RUN_PATH
  238
  239# Shared library path variable.
  240shlibpath_var=LD_LIBRARY_PATH
  241
  242# Is shlibpath searched before the hard-coded library search path?
  243shlibpath_overrides_runpath=no
  244
  245# Format of library name prefix.
  246libname_spec="lib\$name"
  247
  248# List of archive names.  First name is the real one, the rest are links.
  249# The last name is the one that the linker finds with -lNAME
  250library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
  251
  252# The coded name of the library, if different from the real name.
  253soname_spec="\${libname}\${release}\${shared_ext}\$major"
  254
  255# Permission mode override for installation of shared libraries.
  256install_override_mode=""
  257
  258# Command to use after installation of a shared archive.
  259postinstall_cmds=""
  260
  261# Command to use after uninstallation of a shared archive.
  262postuninstall_cmds=""
  263
  264# Commands used to finish a libtool library installation in a directory.
  265finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
  266
  267# As "finish_cmds", except a single script fragment to be evaled but
  268# not shown.
  269finish_eval=""
  270
  271# Whether we should hardcode library paths into libraries.
  272hardcode_into_libs=yes
  273
  274# Compile-time system search path for libraries.
  275sys_lib_search_path_spec="/usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2 /usr/lib64 /lib64 /lib /usr/lib "
  276
  277# Run-time system search path for libraries.
  278sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib32 /usr/local/lib "
  279
  280# Whether dlopen is supported.
  281dlopen_support=unknown
  282
  283# Whether dlopen of programs is supported.
  284dlopen_self=unknown
  285
  286# Whether dlopen of statically linked programs is supported.
  287dlopen_self_static=unknown
  288
  289# Commands to strip libraries.
  290old_striplib="strip --strip-debug"
  291striplib="strip --strip-unneeded"
  292
  293
  294# The linker used to build libraries.
  295LD="/usr/bin/ld -m elf_x86_64"
  296
  297# How to create reloadable object files.
  298reload_flag=" -r"
  299reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
  300
  301# Commands used to build an old-style archive.
  302old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
  303
  304# A language specific compiler.
  305CC="zig cc -target x86_64-linux-musl"
  306
  307# Is the compiler the GNU compiler?
  308with_gcc=yes
  309
  310# Compiler flag to turn off builtin functions.
  311no_builtin_flag=" -fno-builtin -fno-rtti -fno-exceptions"
  312
  313# Additional compiler flags for building library objects.
  314pic_flag=" -fPIC -DPIC"
  315
  316# How to pass a linker flag through the compiler.
  317wl="-Wl,"
  318
  319# Compiler flag to prevent dynamic linking.
  320link_static_flag="-static"
  321
  322# Does compiler simultaneously support -c and -o options?
  323compiler_c_o="yes"
  324
  325# Whether or not to add -lc for building shared libraries.
  326build_libtool_need_lc=yes
  327
  328# Whether or not to disallow shared libs when runtime libs are static.
  329allow_libtool_libs_with_static_runtimes=no
  330
  331# Compiler flag to allow reflexive dlopens.
  332export_dynamic_flag_spec="\${wl}--export-dynamic"
  333
  334# Compiler flag to generate shared objects directly from archives.
  335whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
  336
  337# Whether the compiler copes with passing no objects directly.
  338compiler_needs_object="no"
  339
  340# Create an old-style archive from a shared archive.
  341old_archive_from_new_cmds=""
  342
  343# Create a temporary old-style archive to link instead of a shared archive.
  344old_archive_from_expsyms_cmds=""
  345
  346# Commands used to build a shared archive.
  347archive_cmds="\$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
  348archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
  349	    cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
  350	    echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
  351	    \$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
  352
  353# Commands used to build a loadable module if different from building
  354# a shared archive.
  355module_cmds=""
  356module_expsym_cmds=""
  357
  358# Whether we are building with GNU ld or not.
  359with_gnu_ld="yes"
  360
  361# Flag that allows shared libraries with undefined symbols to be built.
  362allow_undefined_flag=""
  363
  364# Flag that enforces no undefined symbols.
  365no_undefined_flag=""
  366
  367# Flag to hardcode $libdir into a binary during linking.
  368# This must work even if $libdir does not exist
  369hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
  370
  371# Whether we need a single "-rpath" flag with a separated argument.
  372hardcode_libdir_separator=""
  373
  374# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
  375# DIR into the resulting binary.
  376hardcode_direct=no
  377
  378# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
  379# DIR into the resulting binary and the resulting library dependency is
  380# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
  381# library is relocated.
  382hardcode_direct_absolute=no
  383
  384# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
  385# into the resulting binary.
  386hardcode_minus_L=no
  387
  388# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
  389# into the resulting binary.
  390hardcode_shlibpath_var=unsupported
  391
  392# Set to "yes" if building a shared library automatically hardcodes DIR
  393# into the library and all subsequent libraries and executables linked
  394# against it.
  395hardcode_automatic=no
  396
  397# Set to yes if linker adds runtime paths of dependent libraries
  398# to runtime path list.
  399inherit_rpath=no
  400
  401# Whether libtool must link a program against all its dependency libraries.
  402link_all_deplibs=no
  403
  404# Set to "yes" if exported symbols are required.
  405always_export_symbols=no
  406
  407# The commands to list exported symbols.
  408export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
  409
  410# Symbols that should not be listed in the preloaded symbols.
  411exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
  412
  413# Symbols that must always be exported.
  414include_expsyms=""
  415
  416# Commands necessary for linking programs (against libraries) with templates.
  417prelink_cmds=""
  418
  419# Commands necessary for finishing linking programs.
  420postlink_cmds=""
  421
  422# Specify filename containing input files.
  423file_list_spec=""
  424
  425# How to hardcode a shared library path into an executable.
  426hardcode_action=immediate
  427
  428# ### END LIBTOOL CONFIG
  429
  430
  431# libtool (GNU libtool) 2.4.2
  432# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
  433
  434# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
  435# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
  436# This is free software; see the source for copying conditions.  There is NO
  437# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  438
  439# GNU Libtool is free software; you can redistribute it and/or modify
  440# it under the terms of the GNU General Public License as published by
  441# the Free Software Foundation; either version 2 of the License, or
  442# (at your option) any later version.
  443#
  444# As a special exception to the GNU General Public License,
  445# if you distribute this file as part of a program or library that
  446# is built using GNU Libtool, you may include this file under the
  447# same distribution terms that you use for the rest of that program.
  448#
  449# GNU Libtool is distributed in the hope that it will be useful, but
  450# WITHOUT ANY WARRANTY; without even the implied warranty of
  451# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  452# General Public License for more details.
  453#
  454# You should have received a copy of the GNU General Public License
  455# along with GNU Libtool; see the file COPYING.  If not, a copy
  456# can be downloaded from http://www.gnu.org/licenses/gpl.html,
  457# or obtained by writing to the Free Software Foundation, Inc.,
  458# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  459
  460# Usage: $progname [OPTION]... [MODE-ARG]...
  461#
  462# Provide generalized library-building support services.
  463#
  464#       --config             show all configuration variables
  465#       --debug              enable verbose shell tracing
  466#   -n, --dry-run            display commands without modifying any files
  467#       --features           display basic configuration information and exit
  468#       --mode=MODE          use operation mode MODE
  469#       --preserve-dup-deps  don't remove duplicate dependency libraries
  470#       --quiet, --silent    don't print informational messages
  471#       --no-quiet, --no-silent
  472#                            print informational messages (default)
  473#       --no-warn            don't display warning messages
  474#       --tag=TAG            use configuration variables from tag TAG
  475#   -v, --verbose            print more informational messages than default
  476#       --no-verbose         don't print the extra informational messages
  477#       --version            print version information
  478#   -h, --help, --help-all   print short, long, or detailed help message
  479#
  480# MODE must be one of the following:
  481#
  482#         clean              remove files from the build directory
  483#         compile            compile a source file into a libtool object
  484#         execute            automatically set library path, then run a program
  485#         finish             complete the installation of libtool libraries
  486#         install            install libraries or executables
  487#         link               create a library or an executable
  488#         uninstall          remove libraries from an installed directory
  489#
  490# MODE-ARGS vary depending on the MODE.  When passed as first option,
  491# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
  492# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
  493#
  494# When reporting a bug, please describe a test case to reproduce it and
  495# include the following information:
  496#
  497#         host-triplet:	$host
  498#         shell:		$SHELL
  499#         compiler:		$LTCC
  500#         compiler flags:		$LTCFLAGS
  501#         linker:		$LD (gnu? $with_gnu_ld)
  502#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.11
  503#         automake:	$automake_version
  504#         autoconf:	$autoconf_version
  505#
  506# Report bugs to <bug-libtool@gnu.org>.
  507# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
  508# General help using GNU software: <http://www.gnu.org/gethelp/>.
  509
  510PROGRAM=libtool
  511PACKAGE=libtool
  512VERSION="2.4.2 Debian-2.4.2-1.11"
  513TIMESTAMP=""
  514package_revision=1.3337
  515
  516# Be Bourne compatible
  517if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  518  emulate sh
  519  NULLCMD=:
  520  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
  521  # is contrary to our usage.  Disable this feature.
  522  alias -g '${1+"$@"}'='"$@"'
  523  setopt NO_GLOB_SUBST
  524else
  525  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
  526fi
  527BIN_SH=xpg4; export BIN_SH # for Tru64
  528DUALCASE=1; export DUALCASE # for MKS sh
  529
  530# A function that is used when there is no print builtin or printf.
  531func_fallback_echo ()
  532{
  533  eval 'cat <<_LTECHO_EOF
  534$1
  535_LTECHO_EOF'
  536}
  537
  538# NLS nuisances: We save the old values to restore during execute mode.
  539lt_user_locale=
  540lt_safe_locale=
  541for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
  542do
  543  eval "if test \"\${$lt_var+set}\" = set; then
  544          save_$lt_var=\$$lt_var
  545          $lt_var=C
  546	  export $lt_var
  547	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
  548	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
  549	fi"
  550done
  551LC_ALL=C
  552LANGUAGE=C
  553export LANGUAGE LC_ALL
  554
  555$lt_unset CDPATH
  556
  557
  558# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
  559# is ksh but when the shell is invoked as "sh" and the current value of
  560# the _XPG environment variable is not equal to 1 (one), the special
  561# positional parameter $0, within a function call, is the name of the
  562# function.
  563progpath="$0"
  564
  565
  566
  567: ${CP="cp -f"}
  568test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
  569: ${MAKE="make"}
  570: ${MKDIR="mkdir"}
  571: ${MV="mv -f"}
  572: ${RM="rm -f"}
  573: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
  574: ${Xsed="$SED -e 1s/^X//"}
  575
  576# Global variables:
  577EXIT_SUCCESS=0
  578EXIT_FAILURE=1
  579EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
  580EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
  581
  582exit_status=$EXIT_SUCCESS
  583
  584# Make sure IFS has a sensible default
  585lt_nl='
  586'
  587IFS=" 	$lt_nl"
  588
  589dirname="s,/[^/]*$,,"
  590basename="s,^.*/,,"
  591
  592# func_dirname file append nondir_replacement
  593# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
  594# otherwise set result to NONDIR_REPLACEMENT.
  595func_dirname ()
  596{
  597    case ${1} in
  598      */*) func_dirname_result="${1%/*}${2}" ;;
  599      *  ) func_dirname_result="${3}" ;;
  600    esac
  601} # Extended-shell func_dirname implementation
  602
  603
  604# func_basename file
  605func_basename ()
  606{
  607    func_basename_result="${1##*/}"
  608} # Extended-shell func_basename implementation
  609
  610
  611# func_dirname_and_basename file append nondir_replacement
  612# perform func_basename and func_dirname in a single function
  613# call:
  614#   dirname:  Compute the dirname of FILE.  If nonempty,
  615#             add APPEND to the result, otherwise set result
  616#             to NONDIR_REPLACEMENT.
  617#             value returned in "$func_dirname_result"
  618#   basename: Compute filename of FILE.
  619#             value retuned in "$func_basename_result"
  620# Implementation must be kept synchronized with func_dirname
  621# and func_basename. For efficiency, we do not delegate to
  622# those functions but instead duplicate the functionality here.
  623func_dirname_and_basename ()
  624{
  625    case ${1} in
  626      */*) func_dirname_result="${1%/*}${2}" ;;
  627      *  ) func_dirname_result="${3}" ;;
  628    esac
  629    func_basename_result="${1##*/}"
  630} # Extended-shell func_dirname_and_basename implementation
  631
  632
  633# func_stripname prefix suffix name
  634# strip PREFIX and SUFFIX off of NAME.
  635# PREFIX and SUFFIX must not contain globbing or regex special
  636# characters, hashes, percent signs, but SUFFIX may contain a leading
  637# dot (in which case that matches only a dot).
  638# func_strip_suffix prefix name
  639func_stripname ()
  640{
  641    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
  642    # positional parameters, so assign one to ordinary parameter first.
  643    func_stripname_result=${3}
  644    func_stripname_result=${func_stripname_result#"${1}"}
  645    func_stripname_result=${func_stripname_result%"${2}"}
  646} # Extended-shell func_stripname implementation
  647
  648
  649# These SED scripts presuppose an absolute path with a trailing slash.
  650pathcar='s,^/\([^/]*\).*$,\1,'
  651pathcdr='s,^/[^/]*,,'
  652removedotparts=':dotsl
  653		s@/\./@/@g
  654		t dotsl
  655		s,/\.$,/,'
  656collapseslashes='s@/\{1,\}@/@g'
  657finalslash='s,/*$,/,'
  658
  659# func_normal_abspath PATH
  660# Remove doubled-up and trailing slashes, "." path components,
  661# and cancel out any ".." path components in PATH after making
  662# it an absolute path.
  663#             value returned in "$func_normal_abspath_result"
  664func_normal_abspath ()
  665{
  666  # Start from root dir and reassemble the path.
  667  func_normal_abspath_result=
  668  func_normal_abspath_tpath=$1
  669  func_normal_abspath_altnamespace=
  670  case $func_normal_abspath_tpath in
  671    "")
  672      # Empty path, that just means $cwd.
  673      func_stripname '' '/' "`pwd`"
  674      func_normal_abspath_result=$func_stripname_result
  675      return
  676    ;;
  677    # The next three entries are used to spot a run of precisely
  678    # two leading slashes without using negated character classes;
  679    # we take advantage of case's first-match behaviour.
  680    ///*)
  681      # Unusual form of absolute path, do nothing.
  682    ;;
  683    //*)
  684      # Not necessarily an ordinary path; POSIX reserves leading '//'
  685      # and for example Cygwin uses it to access remote file shares
  686      # over CIFS/SMB, so we conserve a leading double slash if found.
  687      func_normal_abspath_altnamespace=/
  688    ;;
  689    /*)
  690      # Absolute path, do nothing.
  691    ;;
  692    *)
  693      # Relative path, prepend $cwd.
  694      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
  695    ;;
  696  esac
  697  # Cancel out all the simple stuff to save iterations.  We also want
  698  # the path to end with a slash for ease of parsing, so make sure
  699  # there is one (and only one) here.
  700  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
  701        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
  702  while :; do
  703    # Processed it all yet?
  704    if test "$func_normal_abspath_tpath" = / ; then
  705      # If we ascended to the root using ".." the result may be empty now.
  706      if test -z "$func_normal_abspath_result" ; then
  707        func_normal_abspath_result=/
  708      fi
  709      break
  710    fi
  711    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
  712        -e "$pathcar"`
  713    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
  714        -e "$pathcdr"`
  715    # Figure out what to do with it
  716    case $func_normal_abspath_tcomponent in
  717      "")
  718        # Trailing empty path component, ignore it.
  719      ;;
  720      ..)
  721        # Parent dir; strip last assembled component from result.
  722        func_dirname "$func_normal_abspath_result"
  723        func_normal_abspath_result=$func_dirname_result
  724      ;;
  725      *)
  726        # Actual path component, append it.
  727        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
  728      ;;
  729    esac
  730  done
  731  # Restore leading double-slash if one was found on entry.
  732  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
  733}
  734
  735# func_relative_path SRCDIR DSTDIR
  736# generates a relative path from SRCDIR to DSTDIR, with a trailing
  737# slash if non-empty, suitable for immediately appending a filename
  738# without needing to append a separator.
  739#             value returned in "$func_relative_path_result"
  740func_relative_path ()
  741{
  742  func_relative_path_result=
  743  func_normal_abspath "$1"
  744  func_relative_path_tlibdir=$func_normal_abspath_result
  745  func_normal_abspath "$2"
  746  func_relative_path_tbindir=$func_normal_abspath_result
  747
  748  # Ascend the tree starting from libdir
  749  while :; do
  750    # check if we have found a prefix of bindir
  751    case $func_relative_path_tbindir in
  752      $func_relative_path_tlibdir)
  753        # found an exact match
  754        func_relative_path_tcancelled=
  755        break
  756        ;;
  757      $func_relative_path_tlibdir*)
  758        # found a matching prefix
  759        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
  760        func_relative_path_tcancelled=$func_stripname_result
  761        if test -z "$func_relative_path_result"; then
  762          func_relative_path_result=.
  763        fi
  764        break
  765        ;;
  766      *)
  767        func_dirname $func_relative_path_tlibdir
  768        func_relative_path_tlibdir=${func_dirname_result}
  769        if test "x$func_relative_path_tlibdir" = x ; then
  770          # Have to descend all the way to the root!
  771          func_relative_path_result=../$func_relative_path_result
  772          func_relative_path_tcancelled=$func_relative_path_tbindir
  773          break
  774        fi
  775        func_relative_path_result=../$func_relative_path_result
  776        ;;
  777    esac
  778  done
  779
  780  # Now calculate path; take care to avoid doubling-up slashes.
  781  func_stripname '' '/' "$func_relative_path_result"
  782  func_relative_path_result=$func_stripname_result
  783  func_stripname '/' '/' "$func_relative_path_tcancelled"
  784  if test "x$func_stripname_result" != x ; then
  785    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
  786  fi
  787
  788  # Normalisation. If bindir is libdir, return empty string,
  789  # else relative path ending with a slash; either way, target
  790  # file name can be directly appended.
  791  if test ! -z "$func_relative_path_result"; then
  792    func_stripname './' '' "$func_relative_path_result/"
  793    func_relative_path_result=$func_stripname_result
  794  fi
  795}
  796
  797# The name of this program:
  798func_dirname_and_basename "$progpath"
  799progname=$func_basename_result
  800
  801# Make sure we have an absolute path for reexecution:
  802case $progpath in
  803  [\\/]*|[A-Za-z]:\\*) ;;
  804  *[\\/]*)
  805     progdir=$func_dirname_result
  806     progdir=`cd "$progdir" && pwd`
  807     progpath="$progdir/$progname"
  808     ;;
  809  *)
  810     save_IFS="$IFS"
  811     IFS=${PATH_SEPARATOR-:}
  812     for progdir in $PATH; do
  813       IFS="$save_IFS"
  814       test -x "$progdir/$progname" && break
  815     done
  816     IFS="$save_IFS"
  817     test -n "$progdir" || progdir=`pwd`
  818     progpath="$progdir/$progname"
  819     ;;
  820esac
  821
  822# Sed substitution that helps us do robust quoting.  It backslashifies
  823# metacharacters that are still active within double-quoted strings.
  824Xsed="${SED}"' -e 1s/^X//'
  825sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
  826
  827# Same as above, but do not quote variable references.
  828double_quote_subst='s/\(["`\\]\)/\\\1/g'
  829
  830# Sed substitution that turns a string into a regex matching for the
  831# string literally.
  832sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
  833
  834# Sed substitution that converts a w32 file name or path
  835# which contains forward slashes, into one that contains
  836# (escaped) backslashes.  A very naive implementation.
  837lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
  838
  839# Re-`\' parameter expansions in output of double_quote_subst that were
  840# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
  841# in input to double_quote_subst, that '$' was protected from expansion.
  842# Since each input `\' is now two `\'s, look for any number of runs of
  843# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
  844bs='\\'
  845bs2='\\\\'
  846bs4='\\\\\\\\'
  847dollar='\$'
  848sed_double_backslash="\
  849  s/$bs4/&\\
  850/g
  851  s/^$bs2$dollar/$bs&/
  852  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
  853  s/\n//g"
  854
  855# Standard options:
  856opt_dry_run=false
  857opt_help=false
  858opt_quiet=false
  859opt_verbose=false
  860opt_warning=:
  861
  862# func_echo arg...
  863# Echo program name prefixed message, along with the current mode
  864# name if it has been set yet.
  865func_echo ()
  866{
  867    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
  868}
  869
  870# func_verbose arg...
  871# Echo program name prefixed message in verbose mode only.
  872func_verbose ()
  873{
  874    $opt_verbose && func_echo ${1+"$@"}
  875
  876    # A bug in bash halts the script if the last line of a function
  877    # fails when set -e is in force, so we need another command to
  878    # work around that:
  879    :
  880}
  881
  882# func_echo_all arg...
  883# Invoke $ECHO with all args, space-separated.
  884func_echo_all ()
  885{
  886    $ECHO "$*"
  887}
  888
  889# func_error arg...
  890# Echo program name prefixed message to standard error.
  891func_error ()
  892{
  893    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
  894}
  895
  896# func_warning arg...
  897# Echo program name prefixed warning message to standard error.
  898func_warning ()
  899{
  900    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
  901
  902    # bash bug again:
  903    :
  904}
  905
  906# func_fatal_error arg...
  907# Echo program name prefixed message to standard error, and exit.
  908func_fatal_error ()
  909{
  910    func_error ${1+"$@"}
  911    exit $EXIT_FAILURE
  912}
  913
  914# func_fatal_help arg...
  915# Echo program name prefixed message to standard error, followed by
  916# a help hint, and exit.
  917func_fatal_help ()
  918{
  919    func_error ${1+"$@"}
  920    func_fatal_error "$help"
  921}
  922help="Try \`$progname --help' for more information."  ## default
  923
  924
  925# func_grep expression filename
  926# Check whether EXPRESSION matches any line of FILENAME, without output.
  927func_grep ()
  928{
  929    $GREP "$1" "$2" >/dev/null 2>&1
  930}
  931
  932
  933# func_mkdir_p directory-path
  934# Make sure the entire path to DIRECTORY-PATH is available.
  935func_mkdir_p ()
  936{
  937    my_directory_path="$1"
  938    my_dir_list=
  939
  940    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
  941
  942      # Protect directory names starting with `-'
  943      case $my_directory_path in
  944        -*) my_directory_path="./$my_directory_path" ;;
  945      esac
  946
  947      # While some portion of DIR does not yet exist...
  948      while test ! -d "$my_directory_path"; do
  949        # ...make a list in topmost first order.  Use a colon delimited
  950	# list incase some portion of path contains whitespace.
  951        my_dir_list="$my_directory_path:$my_dir_list"
  952
  953        # If the last portion added has no slash in it, the list is done
  954        case $my_directory_path in */*) ;; *) break ;; esac
  955
  956        # ...otherwise throw away the child directory and loop
  957        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
  958      done
  959      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
  960
  961      save_mkdir_p_IFS="$IFS"; IFS=':'
  962      for my_dir in $my_dir_list; do
  963	IFS="$save_mkdir_p_IFS"
  964        # mkdir can fail with a `File exist' error if two processes
  965        # try to create one of the directories concurrently.  Don't
  966        # stop in that case!
  967        $MKDIR "$my_dir" 2>/dev/null || :
  968      done
  969      IFS="$save_mkdir_p_IFS"
  970
  971      # Bail out if we (or some other process) failed to create a directory.
  972      test -d "$my_directory_path" || \
  973        func_fatal_error "Failed to create \`$1'"
  974    fi
  975}
  976
  977
  978# func_mktempdir [string]
  979# Make a temporary directory that won't clash with other running
  980# libtool processes, and avoids race conditions if possible.  If
  981# given, STRING is the basename for that directory.
  982func_mktempdir ()
  983{
  984    my_template="${TMPDIR-/tmp}/${1-$progname}"
  985
  986    if test "$opt_dry_run" = ":"; then
  987      # Return a directory name, but don't create it in dry-run mode
  988      my_tmpdir="${my_template}-$$"
  989    else
  990
  991      # If mktemp works, use that first and foremost
  992      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
  993
  994      if test ! -d "$my_tmpdir"; then
  995        # Failing that, at least try and use $RANDOM to avoid a race
  996        my_tmpdir="${my_template}-${RANDOM-0}$$"
  997
  998        save_mktempdir_umask=`umask`
  999        umask 0077
 1000        $MKDIR "$my_tmpdir"
 1001        umask $save_mktempdir_umask
 1002      fi
 1003
 1004      # If we're not in dry-run mode, bomb out on failure
 1005      test -d "$my_tmpdir" || \
 1006        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
 1007    fi
 1008
 1009    $ECHO "$my_tmpdir"
 1010}
 1011
 1012
 1013# func_quote_for_eval arg
 1014# Aesthetically quote ARG to be evaled later.
 1015# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
 1016# is double-quoted, suitable for a subsequent eval, whereas
 1017# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
 1018# which are still active within double quotes backslashified.
 1019func_quote_for_eval ()
 1020{
 1021    case $1 in
 1022      *[\\\`\"\$]*)
 1023	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
 1024      *)
 1025        func_quote_for_eval_unquoted_result="$1" ;;
 1026    esac
 1027
 1028    case $func_quote_for_eval_unquoted_result in
 1029      # Double-quote args containing shell metacharacters to delay
 1030      # word splitting, command substitution and and variable
 1031      # expansion for a subsequent eval.
 1032      # Many Bourne shells cannot handle close brackets correctly
 1033      # in scan sets, so we specify it separately.
 1034      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
 1035        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
 1036        ;;
 1037      *)
 1038        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
 1039    esac
 1040}
 1041
 1042
 1043# func_quote_for_expand arg
 1044# Aesthetically quote ARG to be evaled later; same as above,
 1045# but do not quote variable references.
 1046func_quote_for_expand ()
 1047{
 1048    case $1 in
 1049      *[\\\`\"]*)
 1050	my_arg=`$ECHO "$1" | $SED \
 1051	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
 1052      *)
 1053        my_arg="$1" ;;
 1054    esac
 1055
 1056    case $my_arg in
 1057      # Double-quote args containing shell metacharacters to delay
 1058      # word splitting and command substitution for a subsequent eval.
 1059      # Many Bourne shells cannot handle close brackets correctly
 1060      # in scan sets, so we specify it separately.
 1061      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
 1062        my_arg="\"$my_arg\""
 1063        ;;
 1064    esac
 1065
 1066    func_quote_for_expand_result="$my_arg"
 1067}
 1068
 1069
 1070# func_show_eval cmd [fail_exp]
 1071# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
 1072# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 1073# is given, then evaluate it.
 1074func_show_eval ()
 1075{
 1076    my_cmd="$1"
 1077    my_fail_exp="${2-:}"
 1078
 1079    ${opt_silent-false} || {
 1080      func_quote_for_expand "$my_cmd"
 1081      eval "func_echo $func_quote_for_expand_result"
 1082    }
 1083
 1084    if ${opt_dry_run-false}; then :; else
 1085      eval "$my_cmd"
 1086      my_status=$?
 1087      if test "$my_status" -eq 0; then :; else
 1088	eval "(exit $my_status); $my_fail_exp"
 1089      fi
 1090    fi
 1091}
 1092
 1093
 1094# func_show_eval_locale cmd [fail_exp]
 1095# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
 1096# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 1097# is given, then evaluate it.  Use the saved locale for evaluation.
 1098func_show_eval_locale ()
 1099{
 1100    my_cmd="$1"
 1101    my_fail_exp="${2-:}"
 1102
 1103    ${opt_silent-false} || {
 1104      func_quote_for_expand "$my_cmd"
 1105      eval "func_echo $func_quote_for_expand_result"
 1106    }
 1107
 1108    if ${opt_dry_run-false}; then :; else
 1109      eval "$lt_user_locale
 1110	    $my_cmd"
 1111      my_status=$?
 1112      eval "$lt_safe_locale"
 1113      if test "$my_status" -eq 0; then :; else
 1114	eval "(exit $my_status); $my_fail_exp"
 1115      fi
 1116    fi
 1117}
 1118
 1119# func_tr_sh
 1120# Turn $1 into a string suitable for a shell variable name.
 1121# Result is stored in $func_tr_sh_result.  All characters
 1122# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
 1123# if $1 begins with a digit, a '_' is prepended as well.
 1124func_tr_sh ()
 1125{
 1126  case $1 in
 1127  [0-9]* | *[!a-zA-Z0-9_]*)
 1128    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
 1129    ;;
 1130  * )
 1131    func_tr_sh_result=$1
 1132    ;;
 1133  esac
 1134}
 1135
 1136
 1137# func_version
 1138# Echo version message to standard output and exit.
 1139func_version ()
 1140{
 1141    $opt_debug
 1142
 1143    $SED -n '/(C)/!b go
 1144	:more
 1145	/\./!{
 1146	  N
 1147	  s/\n# / /
 1148	  b more
 1149	}
 1150	:go
 1151	/^# '$PROGRAM' (GNU /,/# warranty; / {
 1152        s/^# //
 1153	s/^# *$//
 1154        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
 1155        p
 1156     }' < "$progpath"
 1157     exit $?
 1158}
 1159
 1160# func_usage
 1161# Echo short help message to standard output and exit.
 1162func_usage ()
 1163{
 1164    $opt_debug
 1165
 1166    $SED -n '/^# Usage:/,/^#  *.*--help/ {
 1167        s/^# //
 1168	s/^# *$//
 1169	s/\$progname/'$progname'/
 1170	p
 1171    }' < "$progpath"
 1172    echo
 1173    $ECHO "run \`$progname --help | more' for full usage"
 1174    exit $?
 1175}
 1176
 1177# func_help [NOEXIT]
 1178# Echo long help message to standard output and exit,
 1179# unless 'noexit' is passed as argument.
 1180func_help ()
 1181{
 1182    $opt_debug
 1183
 1184    $SED -n '/^# Usage:/,/# Report bugs to/ {
 1185	:print
 1186        s/^# //
 1187	s/^# *$//
 1188	s*\$progname*'$progname'*
 1189	s*\$host*'"$host"'*
 1190	s*\$SHELL*'"$SHELL"'*
 1191	s*\$LTCC*'"$LTCC"'*
 1192	s*\$LTCFLAGS*'"$LTCFLAGS"'*
 1193	s*\$LD*'"$LD"'*
 1194	s/\$with_gnu_ld/'"$with_gnu_ld"'/
 1195	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
 1196	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
 1197	p
 1198	d
 1199     }
 1200     /^# .* home page:/b print
 1201     /^# General help using/b print
 1202     ' < "$progpath"
 1203    ret=$?
 1204    if test -z "$1"; then
 1205      exit $ret
 1206    fi
 1207}
 1208
 1209# func_missing_arg argname
 1210# Echo program name prefixed message to standard error and set global
 1211# exit_cmd.
 1212func_missing_arg ()
 1213{
 1214    $opt_debug
 1215
 1216    func_error "missing argument for $1."
 1217    exit_cmd=exit
 1218}
 1219
 1220
 1221# func_split_short_opt shortopt
 1222# Set func_split_short_opt_name and func_split_short_opt_arg shell
 1223# variables after splitting SHORTOPT after the 2nd character.
 1224func_split_short_opt ()
 1225{
 1226    func_split_short_opt_arg=${1#??}
 1227    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
 1228} # Extended-shell func_split_short_opt implementation
 1229
 1230
 1231# func_split_long_opt longopt
 1232# Set func_split_long_opt_name and func_split_long_opt_arg shell
 1233# variables after splitting LONGOPT at the `=' sign.
 1234func_split_long_opt ()
 1235{
 1236    func_split_long_opt_name=${1%%=*}
 1237    func_split_long_opt_arg=${1#*=}
 1238} # Extended-shell func_split_long_opt implementation
 1239
 1240exit_cmd=:
 1241
 1242
 1243
 1244
 1245
 1246magic="%%%MAGIC variable%%%"
 1247magic_exe="%%%MAGIC EXE variable%%%"
 1248
 1249# Global variables.
 1250nonopt=
 1251preserve_args=
 1252lo2o="s/\\.lo\$/.${objext}/"
 1253o2lo="s/\\.${objext}\$/.lo/"
 1254extracted_archives=
 1255extracted_serial=0
 1256
 1257# If this variable is set in any of the actions, the command in it
 1258# will be execed at the end.  This prevents here-documents from being
 1259# left over by shells.
 1260exec_cmd=
 1261
 1262# func_append var value
 1263# Append VALUE to the end of shell variable VAR.
 1264func_append ()
 1265{
 1266    eval "${1}=\$${1}\${2}"
 1267} # func_append may be replaced by extended shell implementation
 1268
 1269# func_append_quoted var value
 1270# Quote VALUE and append to the end of shell variable VAR, separated
 1271# by a space.
 1272func_append_quoted ()
 1273{
 1274    func_quote_for_eval "${2}"
 1275    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
 1276} # func_append_quoted may be replaced by extended shell implementation
 1277
 1278
 1279# func_arith arithmetic-term...
 1280func_arith ()
 1281{
 1282    func_arith_result=$(( $* ))
 1283} # Extended-shell func_arith implementation
 1284
 1285
 1286# func_len string
 1287# STRING may not start with a hyphen.
 1288func_len ()
 1289{
 1290    func_len_result=${#1}
 1291} # Extended-shell func_len implementation
 1292
 1293
 1294# func_lo2o object
 1295func_lo2o ()
 1296{
 1297    case ${1} in
 1298      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
 1299      *)    func_lo2o_result=${1} ;;
 1300    esac
 1301} # Extended-shell func_lo2o implementation
 1302
 1303
 1304# func_xform libobj-or-source
 1305func_xform ()
 1306{
 1307    func_xform_result=${1%.*}.lo
 1308} # Extended-shell func_xform implementation
 1309
 1310
 1311# func_fatal_configuration arg...
 1312# Echo program name prefixed message to standard error, followed by
 1313# a configuration failure hint, and exit.
 1314func_fatal_configuration ()
 1315{
 1316    func_error ${1+"$@"}
 1317    func_error "See the $PACKAGE documentation for more information."
 1318    func_fatal_error "Fatal configuration error."
 1319}
 1320
 1321
 1322# func_config
 1323# Display the configuration for all the tags in this script.
 1324func_config ()
 1325{
 1326    re_begincf='^# ### BEGIN LIBTOOL'
 1327    re_endcf='^# ### END LIBTOOL'
 1328
 1329    # Default configuration.
 1330    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
 1331
 1332    # Now print the configurations for the tags.
 1333    for tagname in $taglist; do
 1334      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
 1335    done
 1336
 1337    exit $?
 1338}
 1339
 1340# func_features
 1341# Display the features supported by this script.
 1342func_features ()
 1343{
 1344    echo "host: $host"
 1345    if test "$build_libtool_libs" = yes; then
 1346      echo "enable shared libraries"
 1347    else
 1348      echo "disable shared libraries"
 1349    fi
 1350    if test "$build_old_libs" = yes; then
 1351      echo "enable static libraries"
 1352    else
 1353      echo "disable static libraries"
 1354    fi
 1355
 1356    exit $?
 1357}
 1358
 1359# func_enable_tag tagname
 1360# Verify that TAGNAME is valid, and either flag an error and exit, or
 1361# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
 1362# variable here.
 1363func_enable_tag ()
 1364{
 1365  # Global variable:
 1366  tagname="$1"
 1367
 1368  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
 1369  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
 1370  sed_extractcf="/$re_begincf/,/$re_endcf/p"
 1371
 1372  # Validate tagname.
 1373  case $tagname in
 1374    *[!-_A-Za-z0-9,/]*)
 1375      func_fatal_error "invalid tag name: $tagname"
 1376      ;;
 1377  esac
 1378
 1379  # Don't test for the "default" C tag, as we know it's
 1380  # there but not specially marked.
 1381  case $tagname in
 1382    CC) ;;
 1383    *)
 1384      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
 1385	taglist="$taglist $tagname"
 1386
 1387	# Evaluate the configuration.  Be careful to quote the path
 1388	# and the sed script, to avoid splitting on whitespace, but
 1389	# also don't use non-portable quotes within backquotes within
 1390	# quotes we have to do it in 2 steps:
 1391	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
 1392	eval "$extractedcf"
 1393      else
 1394	func_error "ignoring unknown tag $tagname"
 1395      fi
 1396      ;;
 1397  esac
 1398}
 1399
 1400# func_check_version_match
 1401# Ensure that we are using m4 macros, and libtool script from the same
 1402# release of libtool.
 1403func_check_version_match ()
 1404{
 1405  if test "$package_revision" != "$macro_revision"; then
 1406    if test "$VERSION" != "$macro_version"; then
 1407      if test -z "$macro_version"; then
 1408        cat >&2 <<_LT_EOF
 1409$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 1410$progname: definition of this LT_INIT comes from an older release.
 1411$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 1412$progname: and run autoconf again.
 1413_LT_EOF
 1414      else
 1415        cat >&2 <<_LT_EOF
 1416$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 1417$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
 1418$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 1419$progname: and run autoconf again.
 1420_LT_EOF
 1421      fi
 1422    else
 1423      cat >&2 <<_LT_EOF
 1424$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
 1425$progname: but the definition of this LT_INIT comes from revision $macro_revision.
 1426$progname: You should recreate aclocal.m4 with macros from revision $package_revision
 1427$progname: of $PACKAGE $VERSION and run autoconf again.
 1428_LT_EOF
 1429    fi
 1430
 1431    exit $EXIT_MISMATCH
 1432  fi
 1433}
 1434
 1435
 1436# Shorthand for --mode=foo, only valid as the first argument
 1437case $1 in
 1438clean|clea|cle|cl)
 1439  shift; set dummy --mode clean ${1+"$@"}; shift
 1440  ;;
 1441compile|compil|compi|comp|com|co|c)
 1442  shift; set dummy --mode compile ${1+"$@"}; shift
 1443  ;;
 1444execute|execut|execu|exec|exe|ex|e)
 1445  shift; set dummy --mode execute ${1+"$@"}; shift
 1446  ;;
 1447finish|finis|fini|fin|fi|f)
 1448  shift; set dummy --mode finish ${1+"$@"}; shift
 1449  ;;
 1450install|instal|insta|inst|ins|in|i)
 1451  shift; set dummy --mode install ${1+"$@"}; shift
 1452  ;;
 1453link|lin|li|l)
 1454  shift; set dummy --mode link ${1+"$@"}; shift
 1455  ;;
 1456uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
 1457  shift; set dummy --mode uninstall ${1+"$@"}; shift
 1458  ;;
 1459esac
 1460
 1461
 1462
 1463# Option defaults:
 1464opt_debug=:
 1465opt_dry_run=false
 1466opt_config=false
 1467opt_preserve_dup_deps=false
 1468opt_features=false
 1469opt_finish=false
 1470opt_help=false
 1471opt_help_all=false
 1472opt_silent=:
 1473opt_warning=:
 1474opt_verbose=:
 1475opt_silent=false
 1476opt_verbose=false
 1477
 1478
 1479# Parse options once, thoroughly.  This comes as soon as possible in the
 1480# script to make things like `--version' happen as quickly as we can.
 1481{
 1482  # this just eases exit handling
 1483  while test $# -gt 0; do
 1484    opt="$1"
 1485    shift
 1486    case $opt in
 1487      --debug|-x)	opt_debug='set -x'
 1488			func_echo "enabling shell trace mode"
 1489			$opt_debug
 1490			;;
 1491      --dry-run|--dryrun|-n)
 1492			opt_dry_run=:
 1493			;;
 1494      --config)
 1495			opt_config=:
 1496func_config
 1497			;;
 1498      --dlopen|-dlopen)
 1499			optarg="$1"
 1500			opt_dlopen="${opt_dlopen+$opt_dlopen
 1501}$optarg"
 1502			shift
 1503			;;
 1504      --preserve-dup-deps)
 1505			opt_preserve_dup_deps=:
 1506			;;
 1507      --features)
 1508			opt_features=:
 1509func_features
 1510			;;
 1511      --finish)
 1512			opt_finish=:
 1513set dummy --mode finish ${1+"$@"}; shift
 1514			;;
 1515      --help)
 1516			opt_help=:
 1517			;;
 1518      --help-all)
 1519			opt_help_all=:
 1520opt_help=': help-all'
 1521			;;
 1522      --mode)
 1523			test $# = 0 && func_missing_arg $opt && break
 1524			optarg="$1"
 1525			opt_mode="$optarg"
 1526case $optarg in
 1527  # Valid mode arguments:
 1528  clean|compile|execute|finish|install|link|relink|uninstall) ;;
 1529
 1530  # Catch anything else as an error
 1531  *) func_error "invalid argument for $opt"
 1532     exit_cmd=exit
 1533     break
 1534     ;;
 1535esac
 1536			shift
 1537			;;
 1538      --no-silent|--no-quiet)
 1539			opt_silent=false
 1540preserve_args="$preserve_args $opt"
 1541			;;
 1542      --no-warning|--no-warn)
 1543			opt_warning=false
 1544preserve_args="$preserve_args $opt"
 1545			;;
 1546      --no-verbose)
 1547			opt_verbose=false
 1548preserve_args="$preserve_args $opt"
 1549			;;
 1550      --silent|--quiet)
 1551			opt_silent=:
 1552preserve_args="$preserve_args $opt"
 1553        opt_verbose=false
 1554			;;
 1555      --verbose|-v)
 1556			opt_verbose=:
 1557preserve_args="$preserve_args $opt"
 1558opt_silent=false
 1559			;;
 1560      --tag)
 1561			test $# = 0 && func_missing_arg $opt && break
 1562			optarg="$1"
 1563			opt_tag="$optarg"
 1564preserve_args="$preserve_args $opt $optarg"
 1565func_enable_tag "$optarg"
 1566			shift
 1567			;;
 1568
 1569      -\?|-h)		func_usage				;;
 1570      --help)		func_help				;;
 1571      --version)	func_version				;;
 1572
 1573      # Separate optargs to long options:
 1574      --*=*)
 1575			func_split_long_opt "$opt"
 1576			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
 1577			shift
 1578			;;
 1579
 1580      # Separate non-argument short options:
 1581      -\?*|-h*|-n*|-v*)
 1582			func_split_short_opt "$opt"
 1583			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
 1584			shift
 1585			;;
 1586
 1587      --)		break					;;
 1588      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
 1589      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
 1590    esac
 1591  done
 1592
 1593  # Validate options:
 1594
 1595  # save first non-option argument
 1596  if test "$#" -gt 0; then
 1597    nonopt="$opt"
 1598    shift
 1599  fi
 1600
 1601  # preserve --debug
 1602  test "$opt_debug" = : || preserve_args="$preserve_args --debug"
 1603
 1604  case $host in
 1605    *cygwin* | *mingw* | *pw32* | *cegcc*)
 1606      # don't eliminate duplications in $postdeps and $predeps
 1607      opt_duplicate_compiler_generated_deps=:
 1608      ;;
 1609    *)
 1610      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
 1611      ;;
 1612  esac
 1613
 1614  $opt_help || {
 1615    # Sanity checks first:
 1616    func_check_version_match
 1617
 1618    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
 1619      func_fatal_configuration "not configured to build any kind of library"
 1620    fi
 1621
 1622    # Darwin sucks
 1623    eval std_shrext=\"$shrext_cmds\"
 1624
 1625    # Only execute mode is allowed to have -dlopen flags.
 1626    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
 1627      func_error "unrecognized option \`-dlopen'"
 1628      $ECHO "$help" 1>&2
 1629      exit $EXIT_FAILURE
 1630    fi
 1631
 1632    # Change the help message to a mode-specific one.
 1633    generic_help="$help"
 1634    help="Try \`$progname --help --mode=$opt_mode' for more information."
 1635  }
 1636
 1637
 1638  # Bail if the options were screwed
 1639  $exit_cmd $EXIT_FAILURE
 1640}
 1641
 1642
 1643
 1644
 1645## ----------- ##
 1646##    Main.    ##
 1647## ----------- ##
 1648
 1649# func_lalib_p file
 1650# True iff FILE is a libtool `.la' library or `.lo' object file.
 1651# This function is only a basic sanity check; it will hardly flush out
 1652# determined imposters.
 1653func_lalib_p ()
 1654{
 1655    test -f "$1" &&
 1656      $SED -e 4q "$1" 2>/dev/null \
 1657        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
 1658}
 1659
 1660# func_lalib_unsafe_p file
 1661# True iff FILE is a libtool `.la' library or `.lo' object file.
 1662# This function implements the same check as func_lalib_p without
 1663# resorting to external programs.  To this end, it redirects stdin and
 1664# closes it afterwards, without saving the original file descriptor.
 1665# As a safety measure, use it only where a negative result would be
 1666# fatal anyway.  Works if `file' does not exist.
 1667func_lalib_unsafe_p ()
 1668{
 1669    lalib_p=no
 1670    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
 1671	for lalib_p_l in 1 2 3 4
 1672	do
 1673	    read lalib_p_line
 1674	    case "$lalib_p_line" in
 1675		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
 1676	    esac
 1677	done
 1678	exec 0<&5 5<&-
 1679    fi
 1680    test "$lalib_p" = yes
 1681}
 1682
 1683# func_ltwrapper_script_p file
 1684# True iff FILE is a libtool wrapper script
 1685# This function is only a basic sanity check; it will hardly flush out
 1686# determined imposters.
 1687func_ltwrapper_script_p ()
 1688{
 1689    func_lalib_p "$1"
 1690}
 1691
 1692# func_ltwrapper_executable_p file
 1693# True iff FILE is a libtool wrapper executable
 1694# This function is only a basic sanity check; it will hardly flush out
 1695# determined imposters.
 1696func_ltwrapper_executable_p ()
 1697{
 1698    func_ltwrapper_exec_suffix=
 1699    case $1 in
 1700    *.exe) ;;
 1701    *) func_ltwrapper_exec_suffix=.exe ;;
 1702    esac
 1703    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
 1704}
 1705
 1706# func_ltwrapper_scriptname file
 1707# Assumes file is an ltwrapper_executable
 1708# uses $file to determine the appropriate filename for a
 1709# temporary ltwrapper_script.
 1710func_ltwrapper_scriptname ()
 1711{
 1712    func_dirname_and_basename "$1" "" "."
 1713    func_stripname '' '.exe' "$func_basename_result"
 1714    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
 1715}
 1716
 1717# func_ltwrapper_p file
 1718# True iff FILE is a libtool wrapper script or wrapper executable
 1719# This function is only a basic sanity check; it will hardly flush out
 1720# determined imposters.
 1721func_ltwrapper_p ()
 1722{
 1723    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
 1724}
 1725
 1726
 1727# func_execute_cmds commands fail_cmd
 1728# Execute tilde-delimited COMMANDS.
 1729# If FAIL_CMD is given, eval that upon failure.
 1730# FAIL_CMD may read-access the current command in variable CMD!
 1731func_execute_cmds ()
 1732{
 1733    $opt_debug
 1734    save_ifs=$IFS; IFS='~'
 1735    for cmd in $1; do
 1736      IFS=$save_ifs
 1737      eval cmd=\"$cmd\"
 1738      func_show_eval "$cmd" "${2-:}"
 1739    done
 1740    IFS=$save_ifs
 1741}
 1742
 1743
 1744# func_source file
 1745# Source FILE, adding directory component if necessary.
 1746# Note that it is not necessary on cygwin/mingw to append a dot to
 1747# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
 1748# behavior happens only for exec(3), not for open(2)!  Also, sourcing
 1749# `FILE.' does not work on cygwin managed mounts.
 1750func_source ()
 1751{
 1752    $opt_debug
 1753    case $1 in
 1754    */* | *\\*)	. "$1" ;;
 1755    *)		. "./$1" ;;
 1756    esac
 1757}
 1758
 1759
 1760# func_resolve_sysroot PATH
 1761# Replace a leading = in PATH with a sysroot.  Store the result into
 1762# func_resolve_sysroot_result
 1763func_resolve_sysroot ()
 1764{
 1765  func_resolve_sysroot_result=$1
 1766  case $func_resolve_sysroot_result in
 1767  =*)
 1768    func_stripname '=' '' "$func_resolve_sysroot_result"
 1769    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
 1770    ;;
 1771  esac
 1772}
 1773
 1774# func_replace_sysroot PATH
 1775# If PATH begins with the sysroot, replace it with = and
 1776# store the result into func_replace_sysroot_result.
 1777func_replace_sysroot ()
 1778{
 1779  case "$lt_sysroot:$1" in
 1780  ?*:"$lt_sysroot"*)
 1781    func_stripname "$lt_sysroot" '' "$1"
 1782    func_replace_sysroot_result="=$func_stripname_result"
 1783    ;;
 1784  *)
 1785    # Including no sysroot.
 1786    func_replace_sysroot_result=$1
 1787    ;;
 1788  esac
 1789}
 1790
 1791# func_infer_tag arg
 1792# Infer tagged configuration to use if any are available and
 1793# if one wasn't chosen via the "--tag" command line option.
 1794# Only attempt this if the compiler in the base compile
 1795# command doesn't match the default compiler.
 1796# arg is usually of the form 'gcc ...'
 1797func_infer_tag ()
 1798{
 1799    $opt_debug
 1800    if test -n "$available_tags" && test -z "$tagname"; then
 1801      CC_quoted=
 1802      for arg in $CC; do
 1803	func_append_quoted CC_quoted "$arg"
 1804      done
 1805      CC_expanded=`func_echo_all $CC`
 1806      CC_quoted_expanded=`func_echo_all $CC_quoted`
 1807      case $@ in
 1808      # Blanks in the command may have been stripped by the calling shell,
 1809      # but not from the CC environment variable when configure was run.
 1810      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
 1811      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
 1812      # Blanks at the start of $base_compile will cause this to fail
 1813      # if we don't check for them as well.
 1814      *)
 1815	for z in $available_tags; do
 1816	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
 1817	    # Evaluate the configuration.
 1818	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
 1819	    CC_quoted=
 1820	    for arg in $CC; do
 1821	      # Double-quote args containing other shell metacharacters.
 1822	      func_append_quoted CC_quoted "$arg"
 1823	    done
 1824	    CC_expanded=`func_echo_all $CC`
 1825	    CC_quoted_expanded=`func_echo_all $CC_quoted`
 1826	    case "$@ " in
 1827	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
 1828	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
 1829	      # The compiler in the base compile command matches
 1830	      # the one in the tagged configuration.
 1831	      # Assume this is the tagged configuration we want.
 1832	      tagname=$z
 1833	      break
 1834	      ;;
 1835	    esac
 1836	  fi
 1837	done
 1838	# If $tagname still isn't set, then no tagged configuration
 1839	# was found and let the user know that the "--tag" command
 1840	# line option must be used.
 1841	if test -z "$tagname"; then
 1842	  func_echo "unable to infer tagged configuration"
 1843	  func_fatal_error "specify a tag with \`--tag'"
 1844#	else
 1845#	  func_verbose "using $tagname tagged configuration"
 1846	fi
 1847	;;
 1848      esac
 1849    fi
 1850}
 1851
 1852
 1853
 1854# func_write_libtool_object output_name pic_name nonpic_name
 1855# Create a libtool object file (analogous to a ".la" file),
 1856# but don't create it if we're doing a dry run.
 1857func_write_libtool_object ()
 1858{
 1859    write_libobj=${1}
 1860    if test "$build_libtool_libs" = yes; then
 1861      write_lobj=\'${2}\'
 1862    else
 1863      write_lobj=none
 1864    fi
 1865
 1866    if test "$build_old_libs" = yes; then
 1867      write_oldobj=\'${3}\'
 1868    else
 1869      write_oldobj=none
 1870    fi
 1871
 1872    $opt_dry_run || {
 1873      cat >${write_libobj}T <<EOF
 1874# $write_libobj - a libtool object file
 1875# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 1876#
 1877# Please DO NOT delete this file!
 1878# It is necessary for linking the library.
 1879
 1880# Name of the PIC object.
 1881pic_object=$write_lobj
 1882
 1883# Name of the non-PIC object
 1884non_pic_object=$write_oldobj
 1885
 1886EOF
 1887      $MV "${write_libobj}T" "${write_libobj}"
 1888    }
 1889}
 1890
 1891
 1892##################################################
 1893# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
 1894##################################################
 1895
 1896# func_convert_core_file_wine_to_w32 ARG
 1897# Helper function used by file name conversion functions when $build is *nix,
 1898# and $host is mingw, cygwin, or some other w32 environment. Relies on a
 1899# correctly configured wine environment available, with the winepath program
 1900# in $build's $PATH.
 1901#
 1902# ARG is the $build file name to be converted to w32 format.
 1903# Result is available in $func_convert_core_file_wine_to_w32_result, and will
 1904# be empty on error (or when ARG is empty)
 1905func_convert_core_file_wine_to_w32 ()
 1906{
 1907  $opt_debug
 1908  func_convert_core_file_wine_to_w32_result="$1"
 1909  if test -n "$1"; then
 1910    # Unfortunately, winepath does not exit with a non-zero error code, so we
 1911    # are forced to check the contents of stdout. On the other hand, if the
 1912    # command is not found, the shell will set an exit code of 127 and print
 1913    # *an error message* to stdout. So we must check for both error code of
 1914    # zero AND non-empty stdout, which explains the odd construction:
 1915    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
 1916    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
 1917      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
 1918        $SED -e "$lt_sed_naive_backslashify"`
 1919    else
 1920      func_convert_core_file_wine_to_w32_result=
 1921    fi
 1922  fi
 1923}
 1924# end: func_convert_core_file_wine_to_w32
 1925
 1926
 1927# func_convert_core_path_wine_to_w32 ARG
 1928# Helper function used by path conversion functions when $build is *nix, and
 1929# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
 1930# configured wine environment available, with the winepath program in $build's
 1931# $PATH. Assumes ARG has no leading or trailing path separator characters.
 1932#
 1933# ARG is path to be converted from $build format to win32.
 1934# Result is available in $func_convert_core_path_wine_to_w32_result.
 1935# Unconvertible file (directory) names in ARG are skipped; if no directory names
 1936# are convertible, then the result may be empty.
 1937func_convert_core_path_wine_to_w32 ()
 1938{
 1939  $opt_debug
 1940  # unfortunately, winepath doesn't convert paths, only file names
 1941  func_convert_core_path_wine_to_w32_result=""
 1942  if test -n "$1"; then
 1943    oldIFS=$IFS
 1944    IFS=:
 1945    for func_convert_core_path_wine_to_w32_f in $1; do
 1946      IFS=$oldIFS
 1947      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
 1948      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
 1949        if test -z "$func_convert_core_path_wine_to_w32_result"; then
 1950          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
 1951        else
 1952          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
 1953        fi
 1954      fi
 1955    done
 1956    IFS=$oldIFS
 1957  fi
 1958}
 1959# end: func_convert_core_path_wine_to_w32
 1960
 1961
 1962# func_cygpath ARGS...
 1963# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
 1964# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
 1965# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
 1966# (2), returns the Cygwin file name or path in func_cygpath_result (input
 1967# file name or path is assumed to be in w32 format, as previously converted
 1968# from $build's *nix or MSYS format). In case (3), returns the w32 file name
 1969# or path in func_cygpath_result (input file name or path is assumed to be in
 1970# Cygwin format). Returns an empty string on error.
 1971#
 1972# ARGS are passed to cygpath, with the last one being the file name or path to
 1973# be converted.
 1974#
 1975# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
 1976# environment variable; do not put it in $PATH.
 1977func_cygpath ()
 1978{
 1979  $opt_debug
 1980  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
 1981    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
 1982    if test "$?" -ne 0; then
 1983      # on failure, ensure result is empty
 1984      func_cygpath_result=
 1985    fi
 1986  else
 1987    func_cygpath_result=
 1988    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
 1989  fi
 1990}
 1991#end: func_cygpath
 1992
 1993
 1994# func_convert_core_msys_to_w32 ARG
 1995# Convert file name or path ARG from MSYS format to w32 format.  Return
 1996# result in func_convert_core_msys_to_w32_result.
 1997func_convert_core_msys_to_w32 ()
 1998{
 1999  $opt_debug
 2000  # awkward: cmd appends spaces to result
 2001  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
 2002    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
 2003}
 2004#end: func_convert_core_msys_to_w32
 2005
 2006
 2007# func_convert_file_check ARG1 ARG2
 2008# Verify that ARG1 (a file name in $build format) was converted to $host
 2009# format in ARG2. Otherwise, emit an error message, but continue (resetting
 2010# func_to_host_file_result to ARG1).
 2011func_convert_file_check ()
 2012{
 2013  $opt_debug
 2014  if test -z "$2" && test -n "$1" ; then
 2015    func_error "Could not determine host file name corresponding to"
 2016    func_error "  \`$1'"
 2017    func_error "Continuing, but uninstalled executables may not work."
 2018    # Fallback:
 2019    func_to_host_file_result="$1"
 2020  fi
 2021}
 2022# end func_convert_file_check
 2023
 2024
 2025# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
 2026# Verify that FROM_PATH (a path in $build format) was converted to $host
 2027# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
 2028# func_to_host_file_result to a simplistic fallback value (see below).
 2029func_convert_path_check ()
 2030{
 2031  $opt_debug
 2032  if test -z "$4" && test -n "$3"; then
 2033    func_error "Could not determine the host path corresponding to"
 2034    func_error "  \`$3'"
 2035    func_error "Continuing, but uninstalled executables may not work."
 2036    # Fallback.  This is a deliberately simplistic "conversion" and
 2037    # should not be "improved".  See libtool.info.
 2038    if test "x$1" != "x$2"; then
 2039      lt_replace_pathsep_chars="s|$1|$2|g"
 2040      func_to_host_path_result=`echo "$3" |
 2041        $SED -e "$lt_replace_pathsep_chars"`
 2042    else
 2043      func_to_host_path_result="$3"
 2044    fi
 2045  fi
 2046}
 2047# end func_convert_path_check
 2048
 2049
 2050# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
 2051# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
 2052# and appending REPL if ORIG matches BACKPAT.
 2053func_convert_path_front_back_pathsep ()
 2054{
 2055  $opt_debug
 2056  case $4 in
 2057  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
 2058    ;;
 2059  esac
 2060  case $4 in
 2061  $2 ) func_to_host_path_result="$func_to_host_path_result$3"
 2062    ;;
 2063  esac
 2064}
 2065# end func_convert_path_front_back_pathsep
 2066
 2067
 2068##################################################
 2069# $build to $host FILE NAME CONVERSION FUNCTIONS #
 2070##################################################
 2071# invoked via `$to_host_file_cmd ARG'
 2072#
 2073# In each case, ARG is the path to be converted from $build to $host format.
 2074# Result will be available in $func_to_host_file_result.
 2075
 2076
 2077# func_to_host_file ARG
 2078# Converts the file name ARG from $build format to $host format. Return result
 2079# in func_to_host_file_result.
 2080func_to_host_file ()
 2081{
 2082  $opt_debug
 2083  $to_host_file_cmd "$1"
 2084}
 2085# end func_to_host_file
 2086
 2087
 2088# func_to_tool_file ARG LAZY
 2089# converts the file name ARG from $build format to toolchain format. Return
 2090# result in func_to_tool_file_result.  If the conversion in use is listed
 2091# in (the comma separated) LAZY, no conversion takes place.
 2092func_to_tool_file ()
 2093{
 2094  $opt_debug
 2095  case ,$2, in
 2096    *,"$to_tool_file_cmd",*)
 2097      func_to_tool_file_result=$1
 2098      ;;
 2099    *)
 2100      $to_tool_file_cmd "$1"
 2101      func_to_tool_file_result=$func_to_host_file_result
 2102      ;;
 2103  esac
 2104}
 2105# end func_to_tool_file
 2106
 2107
 2108# func_convert_file_noop ARG
 2109# Copy ARG to func_to_host_file_result.
 2110func_convert_file_noop ()
 2111{
 2112  func_to_host_file_result="$1"
 2113}
 2114# end func_convert_file_noop
 2115
 2116
 2117# func_convert_file_msys_to_w32 ARG
 2118# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
 2119# conversion to w32 is not available inside the cwrapper.  Returns result in
 2120# func_to_host_file_result.
 2121func_convert_file_msys_to_w32 ()
 2122{
 2123  $opt_debug
 2124  func_to_host_file_result="$1"
 2125  if test -n "$1"; then
 2126    func_convert_core_msys_to_w32 "$1"
 2127    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
 2128  fi
 2129  func_convert_file_check "$1" "$func_to_host_file_result"
 2130}
 2131# end func_convert_file_msys_to_w32
 2132
 2133
 2134# func_convert_file_cygwin_to_w32 ARG
 2135# Convert file name ARG from Cygwin to w32 format.  Returns result in
 2136# func_to_host_file_result.
 2137func_convert_file_cygwin_to_w32 ()
 2138{
 2139  $opt_debug
 2140  func_to_host_file_result="$1"
 2141  if test -n "$1"; then
 2142    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
 2143    # LT_CYGPATH in this case.
 2144    func_to_host_file_result=`cygpath -m "$1"`
 2145  fi
 2146  func_convert_file_check "$1" "$func_to_host_file_result"
 2147}
 2148# end func_convert_file_cygwin_to_w32
 2149
 2150
 2151# func_convert_file_nix_to_w32 ARG
 2152# Convert file name ARG from *nix to w32 format.  Requires a wine environment
 2153# and a working winepath. Returns result in func_to_host_file_result.
 2154func_convert_file_nix_to_w32 ()
 2155{
 2156  $opt_debug
 2157  func_to_host_file_result="$1"
 2158  if test -n "$1"; then
 2159    func_convert_core_file_wine_to_w32 "$1"
 2160    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
 2161  fi
 2162  func_convert_file_check "$1" "$func_to_host_file_result"
 2163}
 2164# end func_convert_file_nix_to_w32
 2165
 2166
 2167# func_convert_file_msys_to_cygwin ARG
 2168# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
 2169# Returns result in func_to_host_file_result.
 2170func_convert_file_msys_to_cygwin ()
 2171{
 2172  $opt_debug
 2173  func_to_host_file_result="$1"
 2174  if test -n "$1"; then
 2175    func_convert_core_msys_to_w32 "$1"
 2176    func_cygpath -u "$func_convert_core_msys_to_w32_result"
 2177    func_to_host_file_result="$func_cygpath_result"
 2178  fi
 2179  func_convert_file_check "$1" "$func_to_host_file_result"
 2180}
 2181# end func_convert_file_msys_to_cygwin
 2182
 2183
 2184# func_convert_file_nix_to_cygwin ARG
 2185# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
 2186# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
 2187# in func_to_host_file_result.
 2188func_convert_file_nix_to_cygwin ()
 2189{
 2190  $opt_debug
 2191  func_to_host_file_result="$1"
 2192  if test -n "$1"; then
 2193    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
 2194    func_convert_core_file_wine_to_w32 "$1"
 2195    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
 2196    func_to_host_file_result="$func_cygpath_result"
 2197  fi
 2198  func_convert_file_check "$1" "$func_to_host_file_result"
 2199}
 2200# end func_convert_file_nix_to_cygwin
 2201
 2202
 2203#############################################
 2204# $build to $host PATH CONVERSION FUNCTIONS #
 2205#############################################
 2206# invoked via `$to_host_path_cmd ARG'
 2207#
 2208# In each case, ARG is the path to be converted from $build to $host format.
 2209# The result will be available in $func_to_host_path_result.
 2210#
 2211# Path separators are also converted from $build format to $host format.  If
 2212# ARG begins or ends with a path separator character, it is preserved (but
 2213# converted to $host format) on output.
 2214#
 2215# All path conversion functions are named using the following convention:
 2216#   file name conversion function    : func_convert_file_X_to_Y ()
 2217#   path conversion function         : func_convert_path_X_to_Y ()
 2218# where, for any given $build/$host combination the 'X_to_Y' value is the
 2219# same.  If conversion functions are added for new $build/$host combinations,
 2220# the two new functions must follow this pattern, or func_init_to_host_path_cmd
 2221# will break.
 2222
 2223
 2224# func_init_to_host_path_cmd
 2225# Ensures that function "pointer" variable $to_host_path_cmd is set to the
 2226# appropriate value, based on the value of $to_host_file_cmd.
 2227to_host_path_cmd=
 2228func_init_to_host_path_cmd ()
 2229{
 2230  $opt_debug
 2231  if test -z "$to_host_path_cmd"; then
 2232    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
 2233    to_host_path_cmd="func_convert_path_${func_stripname_result}"
 2234  fi
 2235}
 2236
 2237
 2238# func_to_host_path ARG
 2239# Converts the path ARG from $build format to $host format. Return result
 2240# in func_to_host_path_result.
 2241func_to_host_path ()
 2242{
 2243  $opt_debug
 2244  func_init_to_host_path_cmd
 2245  $to_host_path_cmd "$1"
 2246}
 2247# end func_to_host_path
 2248
 2249
 2250# func_convert_path_noop ARG
 2251# Copy ARG to func_to_host_path_result.
 2252func_convert_path_noop ()
 2253{
 2254  func_to_host_path_result="$1"
 2255}
 2256# end func_convert_path_noop
 2257
 2258
 2259# func_convert_path_msys_to_w32 ARG
 2260# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
 2261# conversion to w32 is not available inside the cwrapper.  Returns result in
 2262# func_to_host_path_result.
 2263func_convert_path_msys_to_w32 ()
 2264{
 2265  $opt_debug
 2266  func_to_host_path_result="$1"
 2267  if test -n "$1"; then
 2268    # Remove leading and trailing path separator characters from ARG.  MSYS
 2269    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
 2270    # and winepath ignores them completely.
 2271    func_stripname : : "$1"
 2272    func_to_host_path_tmp1=$func_stripname_result
 2273    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
 2274    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
 2275    func_convert_path_check : ";" \
 2276      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 2277    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
 2278  fi
 2279}
 2280# end func_convert_path_msys_to_w32
 2281
 2282
 2283# func_convert_path_cygwin_to_w32 ARG
 2284# Convert path ARG from Cygwin to w32 format.  Returns result in
 2285# func_to_host_file_result.
 2286func_convert_path_cygwin_to_w32 ()
 2287{
 2288  $opt_debug
 2289  func_to_host_path_result="$1"
 2290  if test -n "$1"; then
 2291    # See func_convert_path_msys_to_w32:
 2292    func_stripname : : "$1"
 2293    func_to_host_path_tmp1=$func_stripname_result
 2294    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
 2295    func_convert_path_check : ";" \
 2296      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 2297    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
 2298  fi
 2299}
 2300# end func_convert_path_cygwin_to_w32
 2301
 2302
 2303# func_convert_path_nix_to_w32 ARG
 2304# Convert path ARG from *nix to w32 format.  Requires a wine environment and
 2305# a working winepath.  Returns result in func_to_host_file_result.
 2306func_convert_path_nix_to_w32 ()
 2307{
 2308  $opt_debug
 2309  func_to_host_path_result="$1"
 2310  if test -n "$1"; then
 2311    # See func_convert_path_msys_to_w32:
 2312    func_stripname : : "$1"
 2313    func_to_host_path_tmp1=$func_stripname_result
 2314    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
 2315    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
 2316    func_convert_path_check : ";" \
 2317      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 2318    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
 2319  fi
 2320}
 2321# end func_convert_path_nix_to_w32
 2322
 2323
 2324# func_convert_path_msys_to_cygwin ARG
 2325# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
 2326# Returns result in func_to_host_file_result.
 2327func_convert_path_msys_to_cygwin ()
 2328{
 2329  $opt_debug
 2330  func_to_host_path_result="$1"
 2331  if test -n "$1"; then
 2332    # See func_convert_path_msys_to_w32:
 2333    func_stripname : : "$1"
 2334    func_to_host_path_tmp1=$func_stripname_result
 2335    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
 2336    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
 2337    func_to_host_path_result="$func_cygpath_result"
 2338    func_convert_path_check : : \
 2339      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 2340    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
 2341  fi
 2342}
 2343# end func_convert_path_msys_to_cygwin
 2344
 2345
 2346# func_convert_path_nix_to_cygwin ARG
 2347# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
 2348# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
 2349# func_to_host_file_result.
 2350func_convert_path_nix_to_cygwin ()
 2351{
 2352  $opt_debug
 2353  func_to_host_path_result="$1"
 2354  if test -n "$1"; then
 2355    # Remove leading and trailing path separator characters from
 2356    # ARG. msys behavior is inconsistent here, cygpath turns them
 2357    # into '.;' and ';.', and winepath ignores them completely.
 2358    func_stripname : : "$1"
 2359    func_to_host_path_tmp1=$func_stripname_result
 2360    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
 2361    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
 2362    func_to_host_path_result="$func_cygpath_result"
 2363    func_convert_path_check : : \
 2364      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 2365    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
 2366  fi
 2367}
 2368# end func_convert_path_nix_to_cygwin
 2369
 2370
 2371# func_mode_compile arg...
 2372func_mode_compile ()
 2373{
 2374    $opt_debug
 2375    # Get the compilation command and the source file.
 2376    base_compile=
 2377    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
 2378    suppress_opt=yes
 2379    suppress_output=
 2380    arg_mode=normal
 2381    libobj=
 2382    later=
 2383    pie_flag=
 2384
 2385    for arg
 2386    do
 2387      case $arg_mode in
 2388      arg  )
 2389	# do not "continue".  Instead, add this to base_compile
 2390	lastarg="$arg"
 2391	arg_mode=normal
 2392	;;
 2393
 2394      target )
 2395	libobj="$arg"
 2396	arg_mode=normal
 2397	continue
 2398	;;
 2399
 2400      normal )
 2401	# Accept any command-line options.
 2402	case $arg in
 2403	-o)
 2404	  test -n "$libobj" && \
 2405	    func_fatal_error "you cannot specify \`-o' more than once"
 2406	  arg_mode=target
 2407	  continue
 2408	  ;;
 2409
 2410	-pie | -fpie | -fPIE)
 2411          pie_flag="$pie_flag $arg"
 2412	  continue
 2413	  ;;
 2414
 2415	-shared | -static | -prefer-pic | -prefer-non-pic)
 2416	  later="$later $arg"
 2417	  continue
 2418	  ;;
 2419
 2420	-no-suppress)
 2421	  suppress_opt=no
 2422	  continue
 2423	  ;;
 2424
 2425	-Xcompiler)
 2426	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
 2427	  continue      #  The current "srcfile" will either be retained or
 2428	  ;;            #  replaced later.  I would guess that would be a bug.
 2429
 2430	-Wc,*)
 2431	  func_stripname '-Wc,' '' "$arg"
 2432	  args=$func_stripname_result
 2433	  lastarg=
 2434	  save_ifs="$IFS"; IFS=','
 2435	  for arg in $args; do
 2436	    IFS="$save_ifs"
 2437	    func_append_quoted lastarg "$arg"
 2438	  done
 2439	  IFS="$save_ifs"
 2440	  func_stripname ' ' '' "$lastarg"
 2441	  lastarg=$func_stripname_result
 2442
 2443	  # Add the arguments to base_compile.
 2444	  base_compile="$base_compile $lastarg"
 2445	  continue
 2446	  ;;
 2447
 2448	*)
 2449	  # Accept the current argument as the source file.
 2450	  # The previous "srcfile" becomes the current argument.
 2451	  #
 2452	  lastarg="$srcfile"
 2453	  srcfile="$arg"
 2454	  ;;
 2455	esac  #  case $arg
 2456	;;
 2457      esac    #  case $arg_mode
 2458
 2459      # Aesthetically quote the previous argument.
 2460      func_append_quoted base_compile "$lastarg"
 2461    done # for arg
 2462
 2463    case $arg_mode in
 2464    arg)
 2465      func_fatal_error "you must specify an argument for -Xcompile"
 2466      ;;
 2467    target)
 2468      func_fatal_error "you must specify a target with \`-o'"
 2469      ;;
 2470    *)
 2471      # Get the name of the library object.
 2472      test -z "$libobj" && {
 2473	func_basename "$srcfile"
 2474	libobj="$func_basename_result"
 2475      }
 2476      ;;
 2477    esac
 2478
 2479    # Recognize several different file suffixes.
 2480    # If the user specifies -o file.o, it is replaced with file.lo
 2481    case $libobj in
 2482    *.[cCFSifmso] | \
 2483    *.ada | *.adb | *.ads | *.asm | \
 2484    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
 2485    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
 2486      func_xform "$libobj"
 2487      libobj=$func_xform_result
 2488      ;;
 2489    esac
 2490
 2491    case $libobj in
 2492    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
 2493    *)
 2494      func_fatal_error "cannot determine name of library object from \`$libobj'"
 2495      ;;
 2496    esac
 2497
 2498    func_infer_tag $base_compile
 2499
 2500    for arg in $later; do
 2501      case $arg in
 2502      -shared)
 2503	test "$build_libtool_libs" != yes && \
 2504	  func_fatal_configuration "can not build a shared library"
 2505	build_old_libs=no
 2506	continue
 2507	;;
 2508
 2509      -static)
 2510	build_libtool_libs=no
 2511	build_old_libs=yes
 2512	continue
 2513	;;
 2514
 2515      -prefer-pic)
 2516	pic_mode=yes
 2517	continue
 2518	;;
 2519
 2520      -prefer-non-pic)
 2521	pic_mode=no
 2522	continue
 2523	;;
 2524      esac
 2525    done
 2526
 2527    func_quote_for_eval "$libobj"
 2528    test "X$libobj" != "X$func_quote_for_eval_result" \
 2529      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
 2530      && func_warning "libobj name \`$libobj' may not contain shell special characters."
 2531    func_dirname_and_basename "$obj" "/" ""
 2532    objname="$func_basename_result"
 2533    xdir="$func_dirname_result"
 2534    lobj=${xdir}$objdir/$objname
 2535
 2536    test -z "$base_compile" && \
 2537      func_fatal_help "you must specify a compilation command"
 2538
 2539    # Delete any leftover library objects.
 2540    if test "$build_old_libs" = yes; then
 2541      removelist="$obj $lobj $libobj ${libobj}T"
 2542    else
 2543      removelist="$lobj $libobj ${libobj}T"
 2544    fi
 2545
 2546    # On Cygwin there's no "real" PIC flag so we must build both object types
 2547    case $host_os in
 2548    cygwin* | mingw* | pw32* | os2* | cegcc*)
 2549      pic_mode=default
 2550      ;;
 2551    esac
 2552    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
 2553      # non-PIC code in shared libraries is not supported
 2554      pic_mode=default
 2555    fi
 2556
 2557    # Calculate the filename of the output object if compiler does
 2558    # not support -o with -c
 2559    if test "$compiler_c_o" = no; then
 2560      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
 2561      lockfile="$output_obj.lock"
 2562    else
 2563      output_obj=
 2564      need_locks=no
 2565      lockfile=
 2566    fi
 2567
 2568    # Lock this critical section if it is needed
 2569    # We use this script file to make the link, it avoids creating a new file
 2570    if test "$need_locks" = yes; then
 2571      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 2572	func_echo "Waiting for $lockfile to be removed"
 2573	sleep 2
 2574      done
 2575    elif test "$need_locks" = warn; then
 2576      if test -f "$lockfile"; then
 2577	$ECHO "\
 2578*** ERROR, $lockfile exists and contains:
 2579`cat $lockfile 2>/dev/null`
 2580
 2581This indicates that another process is trying to use the same
 2582temporary object file, and libtool could not work around it because
 2583your compiler does not support \`-c' and \`-o' together.  If you
 2584repeat this compilation, it may succeed, by chance, but you had better
 2585avoid parallel builds (make -j) in this platform, or get a better
 2586compiler."
 2587
 2588	$opt_dry_run || $RM $removelist
 2589	exit $EXIT_FAILURE
 2590      fi
 2591      removelist="$removelist $output_obj"
 2592      $ECHO "$srcfile" > "$lockfile"
 2593    fi
 2594
 2595    $opt_dry_run || $RM $removelist
 2596    removelist="$removelist $lockfile"
 2597    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 2598
 2599    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
 2600    srcfile=$func_to_tool_file_result
 2601    func_quote_for_eval "$srcfile"
 2602    qsrcfile=$func_quote_for_eval_result
 2603
 2604    # Only build a PIC object if we are building libtool libraries.
 2605    if test "$build_libtool_libs" = yes; then
 2606      # Without this assignment, base_compile gets emptied.
 2607      fbsd_hideous_sh_bug=$base_compile
 2608
 2609      if test "$pic_mode" != no; then
 2610	command="$base_compile $qsrcfile $pic_flag"
 2611      else
 2612	# Don't build PIC code
 2613	command="$base_compile $qsrcfile"
 2614      fi
 2615
 2616      func_mkdir_p "$xdir$objdir"
 2617
 2618      if test -z "$output_obj"; then
 2619	# Place PIC objects in $objdir
 2620	command="$command -o $lobj"
 2621      fi
 2622
 2623      func_show_eval_locale "$command"	\
 2624          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
 2625
 2626      if test "$need_locks" = warn &&
 2627	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 2628	$ECHO "\
 2629*** ERROR, $lockfile contains:
 2630`cat $lockfile 2>/dev/null`
 2631
 2632but it should contain:
 2633$srcfile
 2634
 2635This indicates that another process is trying to use the same
 2636temporary object file, and libtool could not work around it because
 2637your compiler does not support \`-c' and \`-o' together.  If you
 2638repeat this compilation, it may succeed, by chance, but you had better
 2639avoid parallel builds (make -j) in this platform, or get a better
 2640compiler."
 2641
 2642	$opt_dry_run || $RM $removelist
 2643	exit $EXIT_FAILURE
 2644      fi
 2645
 2646      # Just move the object if needed, then go on to compile the next one
 2647      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
 2648	func_show_eval '$MV "$output_obj" "$lobj"' \
 2649	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
 2650      fi
 2651
 2652      # Allow error messages only from the first compilation.
 2653      if test "$suppress_opt" = yes; then
 2654	suppress_output=' >/dev/null 2>&1'
 2655      fi
 2656    fi
 2657
 2658    # Only build a position-dependent object if we build old libraries.
 2659    if test "$build_old_libs" = yes; then
 2660      if test "$pic_mode" != yes; then
 2661	# Don't build PIC code
 2662	command="$base_compile $qsrcfile$pie_flag"
 2663      else
 2664	command="$base_compile $qsrcfile $pic_flag"
 2665      fi
 2666      if test "$compiler_c_o" = yes; then
 2667	command="$command -o $obj"
 2668      fi
 2669
 2670      # Suppress compiler output if we already did a PIC compilation.
 2671      command="$command$suppress_output"
 2672      func_show_eval_locale "$command" \
 2673        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 2674
 2675      if test "$need_locks" = warn &&
 2676	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 2677	$ECHO "\
 2678*** ERROR, $lockfile contains:
 2679`cat $lockfile 2>/dev/null`
 2680
 2681but it should contain:
 2682$srcfile
 2683
 2684This indicates that another process is trying to use the same
 2685temporary object file, and libtool could not work around it because
 2686your compiler does not support \`-c' and \`-o' together.  If you
 2687repeat this compilation, it may succeed, by chance, but you had better
 2688avoid parallel builds (make -j) in this platform, or get a better
 2689compiler."
 2690
 2691	$opt_dry_run || $RM $removelist
 2692	exit $EXIT_FAILURE
 2693      fi
 2694
 2695      # Just move the object if needed
 2696      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
 2697	func_show_eval '$MV "$output_obj" "$obj"' \
 2698	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
 2699      fi
 2700    fi
 2701
 2702    $opt_dry_run || {
 2703      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
 2704
 2705      # Unlock the critical section if it was locked
 2706      if test "$need_locks" != no; then
 2707	removelist=$lockfile
 2708        $RM "$lockfile"
 2709      fi
 2710    }
 2711
 2712    exit $EXIT_SUCCESS
 2713}
 2714
 2715$opt_help || {
 2716  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
 2717}
 2718
 2719func_mode_help ()
 2720{
 2721    # We need to display help for each of the modes.
 2722    case $opt_mode in
 2723      "")
 2724        # Generic help is extracted from the usage comments
 2725        # at the start of this file.
 2726        func_help
 2727        ;;
 2728
 2729      clean)
 2730        $ECHO \
 2731"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
 2732
 2733Remove files from the build directory.
 2734
 2735RM is the name of the program to use to delete files associated with each FILE
 2736(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 2737to RM.
 2738
 2739If FILE is a libtool library, object or program, all the files associated
 2740with it are deleted. Otherwise, only FILE itself is deleted using RM."
 2741        ;;
 2742
 2743      compile)
 2744      $ECHO \
 2745"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 2746
 2747Compile a source file into a libtool library object.
 2748
 2749This mode accepts the following additional options:
 2750
 2751  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
 2752  -no-suppress      do not suppress compiler output for multiple passes
 2753  -prefer-pic       try to build PIC objects only
 2754  -prefer-non-pic   try to build non-PIC objects only
 2755  -shared           do not build a \`.o' file suitable for static linking
 2756  -static           only build a \`.o' file suitable for static linking
 2757  -Wc,FLAG          pass FLAG directly to the compiler
 2758
 2759COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 2760from the given SOURCEFILE.
 2761
 2762The output file name is determined by removing the directory component from
 2763SOURCEFILE, then substituting the C source code suffix \`.c' with the
 2764library object suffix, \`.lo'."
 2765        ;;
 2766
 2767      execute)
 2768        $ECHO \
 2769"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
 2770
 2771Automatically set library path, then run a program.
 2772
 2773This mode accepts the following additional options:
 2774
 2775  -dlopen FILE      add the directory containing FILE to the library path
 2776
 2777This mode sets the library path environment variable according to \`-dlopen'
 2778flags.
 2779
 2780If any of the ARGS are libtool executable wrappers, then they are translated
 2781into their corresponding uninstalled binary, and any of their required library
 2782directories are added to the library path.
 2783
 2784Then, COMMAND is executed, with ARGS as arguments."
 2785        ;;
 2786
 2787      finish)
 2788        $ECHO \
 2789"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
 2790
 2791Complete the installation of libtool libraries.
 2792
 2793Each LIBDIR is a directory that contains libtool libraries.
 2794
 2795The commands that this mode executes may require superuser privileges.  Use
 2796the \`--dry-run' option if you just want to see what would be executed."
 2797        ;;
 2798
 2799      install)
 2800        $ECHO \
 2801"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
 2802
 2803Install executables or libraries.
 2804
 2805INSTALL-COMMAND is the installation command.  The first component should be
 2806either the \`install' or \`cp' program.
 2807
 2808The following components of INSTALL-COMMAND are treated specially:
 2809
 2810  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 2811
 2812The rest of the components are interpreted as arguments to that command (only
 2813BSD-compatible install options are recognized)."
 2814        ;;
 2815
 2816      link)
 2817        $ECHO \
 2818"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
 2819
 2820Link object files or libraries together to form another library, or to
 2821create an executable program.
 2822
 2823LINK-COMMAND is a command using the C compiler that you would use to create
 2824a program from several object files.
 2825
 2826The following components of LINK-COMMAND are treated specially:
 2827
 2828  -all-static       do not do any dynamic linking at all
 2829  -avoid-version    do not add a version suffix if possible
 2830  -bindir BINDIR    specify path to binaries directory (for systems where
 2831                    libraries must be found in the PATH setting at runtime)
 2832  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
 2833  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
 2834  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
 2835  -export-symbols SYMFILE
 2836                    try to export only the symbols listed in SYMFILE
 2837  -export-symbols-regex REGEX
 2838                    try to export only the symbols matching REGEX
 2839  -LLIBDIR          search LIBDIR for required installed libraries
 2840  -lNAME            OUTPUT-FILE requires the installed library libNAME
 2841  -module           build a library that can dlopened
 2842  -no-fast-install  disable the fast-install mode
 2843  -no-install       link a not-installable executable
 2844  -no-undefined     declare that a library does not refer to external symbols
 2845  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
 2846  -objectlist FILE  Use a list of object files found in FILE to specify objects
 2847  -precious-files-regex REGEX
 2848                    don't remove output files matching REGEX
 2849  -release RELEASE  specify package release information
 2850  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
 2851  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
 2852  -shared           only do dynamic linking of libtool libraries
 2853  -shrext SUFFIX    override the standard shared library file extension
 2854  -static           do not do any dynamic linking of uninstalled libtool libraries
 2855  -static-libtool-libs
 2856                    do not do any dynamic linking of libtool libraries
 2857  -version-info CURRENT[:REVISION[:AGE]]
 2858                    specify library version info [each variable defaults to 0]
 2859  -weak LIBNAME     declare that the target provides the LIBNAME interface
 2860  -Wc,FLAG
 2861  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
 2862  -Wl,FLAG
 2863  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
 2864  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 2865
 2866All other options (arguments beginning with \`-') are ignored.
 2867
 2868Every other argument is treated as a filename.  Files ending in \`.la' are
 2869treated as uninstalled libtool libraries, other files are standard or library
 2870object files.
 2871
 2872If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
 2873only library objects (\`.lo' files) may be specified, and \`-rpath' is
 2874required, except when creating a convenience library.
 2875
 2876If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
 2877using \`ar' and \`ranlib', or on Windows using \`lib'.
 2878
 2879If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
 2880is created, otherwise an executable program is created."
 2881        ;;
 2882
 2883      uninstall)
 2884        $ECHO \
 2885"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 2886
 2887Remove libraries from an installation directory.
 2888
 2889RM is the name of the program to use to delete files associated with each FILE
 2890(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 2891to RM.
 2892
 2893If FILE is a libtool library, all the files associated with it are deleted.
 2894Otherwise, only FILE itself is deleted using RM."
 2895        ;;
 2896
 2897      *)
 2898        func_fatal_help "invalid operation mode \`$opt_mode'"
 2899        ;;
 2900    esac
 2901
 2902    echo
 2903    $ECHO "Try \`$progname --help' for more information about other modes."
 2904}
 2905
 2906# Now that we've collected a possible --mode arg, show help if necessary
 2907if $opt_help; then
 2908  if test "$opt_help" = :; then
 2909    func_mode_help
 2910  else
 2911    {
 2912      func_help noexit
 2913      for opt_mode in compile link execute install finish uninstall clean; do
 2914	func_mode_help
 2915      done
 2916    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
 2917    {
 2918      func_help noexit
 2919      for opt_mode in compile link execute install finish uninstall clean; do
 2920	echo
 2921	func_mode_help
 2922      done
 2923    } |
 2924    sed '1d
 2925      /^When reporting/,/^Report/{
 2926	H
 2927	d
 2928      }
 2929      $x
 2930      /information about other modes/d
 2931      /more detailed .*MODE/d
 2932      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
 2933  fi
 2934  exit $?
 2935fi
 2936
 2937
 2938# func_mode_execute arg...
 2939func_mode_execute ()
 2940{
 2941    $opt_debug
 2942    # The first argument is the command name.
 2943    cmd="$nonopt"
 2944    test -z "$cmd" && \
 2945      func_fatal_help "you must specify a COMMAND"
 2946
 2947    # Handle -dlopen flags immediately.
 2948    for file in $opt_dlopen; do
 2949      test -f "$file" \
 2950	|| func_fatal_help "\`$file' is not a file"
 2951
 2952      dir=
 2953      case $file in
 2954      *.la)
 2955	func_resolve_sysroot "$file"
 2956	file=$func_resolve_sysroot_result
 2957
 2958	# Check to see that this really is a libtool archive.
 2959	func_lalib_unsafe_p "$file" \
 2960	  || func_fatal_help "\`$lib' is not a valid libtool archive"
 2961
 2962	# Read the libtool library.
 2963	dlname=
 2964	library_names=
 2965	func_source "$file"
 2966
 2967	# Skip this library if it cannot be dlopened.
 2968	if test -z "$dlname"; then
 2969	  # Warn if it was a shared library.
 2970	  test -n "$library_names" && \
 2971	    func_warning "\`$file' was not linked with \`-export-dynamic'"
 2972	  continue
 2973	fi
 2974
 2975	func_dirname "$file" "" "."
 2976	dir="$func_dirname_result"
 2977
 2978	if test -f "$dir/$objdir/$dlname"; then
 2979	  dir="$dir/$objdir"
 2980	else
 2981	  if test ! -f "$dir/$dlname"; then
 2982	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
 2983	  fi
 2984	fi
 2985	;;
 2986
 2987      *.lo)
 2988	# Just add the directory containing the .lo file.
 2989	func_dirname "$file" "" "."
 2990	dir="$func_dirname_result"
 2991	;;
 2992
 2993      *)
 2994	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
 2995	continue
 2996	;;
 2997      esac
 2998
 2999      # Get the absolute pathname.
 3000      absdir=`cd "$dir" && pwd`
 3001      test -n "$absdir" && dir="$absdir"
 3002
 3003      # Now add the directory to shlibpath_var.
 3004      if eval "test -z \"\$$shlibpath_var\""; then
 3005	eval "$shlibpath_var=\"\$dir\""
 3006      else
 3007	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
 3008      fi
 3009    done
 3010
 3011    # This variable tells wrapper scripts just to set shlibpath_var
 3012    # rather than running their programs.
 3013    libtool_execute_magic="$magic"
 3014
 3015    # Check if any of the arguments is a wrapper script.
 3016    args=
 3017    for file
 3018    do
 3019      case $file in
 3020      -* | *.la | *.lo ) ;;
 3021      *)
 3022	# Do a test to see if this is really a libtool program.
 3023	if func_ltwrapper_script_p "$file"; then
 3024	  func_source "$file"
 3025	  # Transform arg to wrapped name.
 3026	  file="$progdir/$program"
 3027	elif func_ltwrapper_executable_p "$file"; then
 3028	  func_ltwrapper_scriptname "$file"
 3029	  func_source "$func_ltwrapper_scriptname_result"
 3030	  # Transform arg to wrapped name.
 3031	  file="$progdir/$program"
 3032	fi
 3033	;;
 3034      esac
 3035      # Quote arguments (to preserve shell metacharacters).
 3036      func_append_quoted args "$file"
 3037    done
 3038
 3039    if test "X$opt_dry_run" = Xfalse; then
 3040      if test -n "$shlibpath_var"; then
 3041	# Export the shlibpath_var.
 3042	eval "export $shlibpath_var"
 3043      fi
 3044
 3045      # Restore saved environment variables
 3046      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 3047      do
 3048	eval "if test \"\${save_$lt_var+set}\" = set; then
 3049                $lt_var=\$save_$lt_var; export $lt_var
 3050	      else
 3051		$lt_unset $lt_var
 3052	      fi"
 3053      done
 3054
 3055      # Now prepare to actually exec the command.
 3056      exec_cmd="\$cmd$args"
 3057    else
 3058      # Display what would be done.
 3059      if test -n "$shlibpath_var"; then
 3060	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
 3061	echo "export $shlibpath_var"
 3062      fi
 3063      $ECHO "$cmd$args"
 3064      exit $EXIT_SUCCESS
 3065    fi
 3066}
 3067
 3068test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
 3069
 3070
 3071# func_mode_finish arg...
 3072func_mode_finish ()
 3073{
 3074    $opt_debug
 3075    libs=
 3076    libdirs=
 3077    admincmds=
 3078
 3079    for opt in "$nonopt" ${1+"$@"}
 3080    do
 3081      if test -d "$opt"; then
 3082	libdirs="$libdirs $opt"
 3083
 3084      elif test -f "$opt"; then
 3085	if func_lalib_unsafe_p "$opt"; then
 3086	  libs="$libs $opt"
 3087	else
 3088	  func_warning "\`$opt' is not a valid libtool archive"
 3089	fi
 3090
 3091      else
 3092	func_fatal_error "invalid argument \`$opt'"
 3093      fi
 3094    done
 3095
 3096    if test -n "$libs"; then
 3097      if test -n "$lt_sysroot"; then
 3098        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
 3099        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
 3100      else
 3101        sysroot_cmd=
 3102      fi
 3103
 3104      # Remove sysroot references
 3105      if $opt_dry_run; then
 3106        for lib in $libs; do
 3107          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
 3108        done
 3109      else
 3110        tmpdir=`func_mktempdir`
 3111        for lib in $libs; do
 3112	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
 3113	    > $tmpdir/tmp-la
 3114	  mv -f $tmpdir/tmp-la $lib
 3115	done
 3116        ${RM}r "$tmpdir"
 3117      fi
 3118    fi
 3119
 3120    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 3121      for libdir in $libdirs; do
 3122	if test -n "$finish_cmds"; then
 3123	  # Do each command in the finish commands.
 3124	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
 3125'"$cmd"'"'
 3126	fi
 3127	if test -n "$finish_eval"; then
 3128	  # Do the single finish_eval.
 3129	  eval cmds=\"$finish_eval\"
 3130	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
 3131       $cmds"
 3132	fi
 3133      done
 3134    fi
 3135
 3136    # Exit here if they wanted silent mode.
 3137    $opt_silent && exit $EXIT_SUCCESS
 3138
 3139    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 3140      echo "----------------------------------------------------------------------"
 3141      echo "Libraries have been installed in:"
 3142      for libdir in $libdirs; do
 3143	$ECHO "   $libdir"
 3144      done
 3145      echo
 3146      echo "If you ever happen to want to link against installed libraries"
 3147      echo "in a given directory, LIBDIR, you must either use libtool, and"
 3148      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
 3149      echo "flag during linking and do at least one of the following:"
 3150      if test -n "$shlibpath_var"; then
 3151	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
 3152	echo "     during execution"
 3153      fi
 3154      if test -n "$runpath_var"; then
 3155	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
 3156	echo "     during linking"
 3157      fi
 3158      if test -n "$hardcode_libdir_flag_spec"; then
 3159	libdir=LIBDIR
 3160	eval flag=\"$hardcode_libdir_flag_spec\"
 3161
 3162	$ECHO "   - use the \`$flag' linker flag"
 3163      fi
 3164      if test -n "$admincmds"; then
 3165	$ECHO "   - have your system administrator run these commands:$admincmds"
 3166      fi
 3167      if test -f /etc/ld.so.conf; then
 3168	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
 3169      fi
 3170      echo
 3171
 3172      echo "See any operating system documentation about shared libraries for"
 3173      case $host in
 3174	solaris2.[6789]|solaris2.1[0-9])
 3175	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
 3176	  echo "pages."
 3177	  ;;
 3178	*)
 3179	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
 3180	  ;;
 3181      esac
 3182      echo "----------------------------------------------------------------------"
 3183    fi
 3184    exit $EXIT_SUCCESS
 3185}
 3186
 3187test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
 3188
 3189
 3190# func_mode_install arg...
 3191func_mode_install ()
 3192{
 3193    $opt_debug
 3194    # There may be an optional sh(1) argument at the beginning of
 3195    # install_prog (especially on Windows NT).
 3196    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
 3197       # Allow the use of GNU shtool's install command.
 3198       case $nonopt in *shtool*) :;; *) false;; esac; then
 3199      # Aesthetically quote it.
 3200      func_quote_for_eval "$nonopt"
 3201      install_prog="$func_quote_for_eval_result "
 3202      arg=$1
 3203      shift
 3204    else
 3205      install_prog=
 3206      arg=$nonopt
 3207    fi
 3208
 3209    # The real first argument should be the name of the installation program.
 3210    # Aesthetically quote it.
 3211    func_quote_for_eval "$arg"
 3212    install_prog="$install_prog$func_quote_for_eval_result"
 3213    install_shared_prog=$install_prog
 3214    case " $install_prog " in
 3215      *[\\\ /]cp\ *) install_cp=: ;;
 3216      *) install_cp=false ;;
 3217    esac
 3218
 3219    # We need to accept at least all the BSD install flags.
 3220    dest=
 3221    files=
 3222    opts=
 3223    prev=
 3224    install_type=
 3225    isdir=no
 3226    stripme=
 3227    no_mode=:
 3228    for arg
 3229    do
 3230      arg2=
 3231      if test -n "$dest"; then
 3232	files="$files $dest"
 3233	dest=$arg
 3234	continue
 3235      fi
 3236
 3237      case $arg in
 3238      -d) isdir=yes ;;
 3239      -f)
 3240	if $install_cp; then :; else
 3241	  prev=$arg
 3242	fi
 3243	;;
 3244      -g | -m | -o)
 3245	prev=$arg
 3246	;;
 3247      -s)
 3248	stripme=" -s"
 3249	continue
 3250	;;
 3251      -*)
 3252	;;
 3253      *)
 3254	# If the previous option needed an argument, then skip it.
 3255	if test -n "$prev"; then
 3256	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
 3257	    arg2=$install_override_mode
 3258	    no_mode=false
 3259	  fi
 3260	  prev=
 3261	else
 3262	  dest=$arg
 3263	  continue
 3264	fi
 3265	;;
 3266      esac
 3267
 3268      # Aesthetically quote the argument.
 3269      func_quote_for_eval "$arg"
 3270      install_prog="$install_prog $func_quote_for_eval_result"
 3271      if test -n "$arg2"; then
 3272	func_quote_for_eval "$arg2"
 3273      fi
 3274      install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
 3275    done
 3276
 3277    test -z "$install_prog" && \
 3278      func_fatal_help "you must specify an install program"
 3279
 3280    test -n "$prev" && \
 3281      func_fatal_help "the \`$prev' option requires an argument"
 3282
 3283    if test -n "$install_override_mode" && $no_mode; then
 3284      if $install_cp; then :; else
 3285	func_quote_for_eval "$install_override_mode"
 3286	install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
 3287      fi
 3288    fi
 3289
 3290    if test -z "$files"; then
 3291      if test -z "$dest"; then
 3292	func_fatal_help "no file or destination specified"
 3293      else
 3294	func_fatal_help "you must specify a destination"
 3295      fi
 3296    fi
 3297
 3298    # Strip any trailing slash from the destination.
 3299    func_stripname '' '/' "$dest"
 3300    dest=$func_stripname_result
 3301
 3302    # Check to see that the destination is a directory.
 3303    test -d "$dest" && isdir=yes
 3304    if test "$isdir" = yes; then
 3305      destdir="$dest"
 3306      destname=
 3307    else
 3308      func_dirname_and_basename "$dest" "" "."
 3309      destdir="$func_dirname_result"
 3310      destname="$func_basename_result"
 3311
 3312      # Not a directory, so check to see that there is only one file specified.
 3313      set dummy $files; shift
 3314      test "$#" -gt 1 && \
 3315	func_fatal_help "\`$dest' is not a directory"
 3316    fi
 3317    case $destdir in
 3318    [\\/]* | [A-Za-z]:[\\/]*) ;;
 3319    *)
 3320      for file in $files; do
 3321	case $file in
 3322	*.lo) ;;
 3323	*)
 3324	  func_fatal_help "\`$destdir' must be an absolute directory name"
 3325	  ;;
 3326	esac
 3327      done
 3328      ;;
 3329    esac
 3330
 3331    # This variable tells wrapper scripts just to set variables rather
 3332    # than running their programs.
 3333    libtool_install_magic="$magic"
 3334
 3335    staticlibs=
 3336    future_libdirs=
 3337    current_libdirs=
 3338    for file in $files; do
 3339
 3340      # Do each installation.
 3341      case $file in
 3342      *.$libext)
 3343	# Do the static libraries later.
 3344	staticlibs="$staticlibs $file"
 3345	;;
 3346
 3347      *.la)
 3348	func_resolve_sysroot "$file"
 3349	file=$func_resolve_sysroot_result
 3350
 3351	# Check to see that this really is a libtool archive.
 3352	func_lalib_unsafe_p "$file" \
 3353	  || func_fatal_help "\`$file' is not a valid libtool archive"
 3354
 3355	library_names=
 3356	old_library=
 3357	relink_command=
 3358	func_source "$file"
 3359
 3360	# Add the libdir to current_libdirs if it is the destination.
 3361	if test "X$destdir" = "X$libdir"; then
 3362	  case "$current_libdirs " in
 3363	  *" $libdir "*) ;;
 3364	  *) current_libdirs="$current_libdirs $libdir" ;;
 3365	  esac
 3366	else
 3367	  # Note the libdir as a future libdir.
 3368	  case "$future_libdirs " in
 3369	  *" $libdir "*) ;;
 3370	  *) future_libdirs="$future_libdirs $libdir" ;;
 3371	  esac
 3372	fi
 3373
 3374	func_dirname "$file" "/" ""
 3375	dir="$func_dirname_result"
 3376	dir="$dir$objdir"
 3377
 3378	if test -n "$relink_command"; then
 3379	  # Determine the prefix the user has applied to our future dir.
 3380	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
 3381
 3382	  # Don't allow the user to place us outside of our expected
 3383	  # location b/c this prevents finding dependent libraries that
 3384	  # are installed to the same prefix.
 3385	  # At present, this check doesn't affect windows .dll's that
 3386	  # are installed into $libdir/../bin (currently, that works fine)
 3387	  # but it's something to keep an eye on.
 3388	  test "$inst_prefix_dir" = "$destdir" && \
 3389	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
 3390
 3391	  if test -n "$inst_prefix_dir"; then
 3392	    # Stick the inst_prefix_dir data into the link command.
 3393	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 3394	  else
 3395	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
 3396	  fi
 3397
 3398	  func_warning "relinking \`$file'"
 3399	  func_show_eval "$relink_command" \
 3400	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
 3401	fi
 3402
 3403	# See the names of the shared library.
 3404	set dummy $library_names; shift
 3405	if test -n "$1"; then
 3406	  realname="$1"
 3407	  shift
 3408
 3409	  srcname="$realname"
 3410	  test -n "$relink_command" && srcname="$realname"T
 3411
 3412	  # Install the shared library and build the symlinks.
 3413	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
 3414	      'exit $?'
 3415	  tstripme="$stripme"
 3416	  case $host_os in
 3417	  cygwin* | mingw* | pw32* | cegcc*)
 3418	    case $realname in
 3419	    *.dll.a)
 3420	      tstripme=""
 3421	      ;;
 3422	    esac
 3423	    ;;
 3424	  esac
 3425	  if test -n "$tstripme" && test -n "$striplib"; then
 3426	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
 3427	  fi
 3428
 3429	  if test "$#" -gt 0; then
 3430	    # Delete the old symlinks, and create new ones.
 3431	    # Try `ln -sf' first, because the `ln' binary might depend on
 3432	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
 3433	    # so we also need to try rm && ln -s.
 3434	    for linkname
 3435	    do
 3436	      test "$linkname" != "$realname" \
 3437		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
 3438	    done
 3439	  fi
 3440
 3441	  # Do each command in the postinstall commands.
 3442	  lib="$destdir/$realname"
 3443	  func_execute_cmds "$postinstall_cmds" 'exit $?'
 3444	fi
 3445
 3446	# Install the pseudo-library for information purposes.
 3447	func_basename "$file"
 3448	name="$func_basename_result"
 3449	instname="$dir/$name"i
 3450	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 3451
 3452	# Maybe install the static library, too.
 3453	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
 3454	;;
 3455
 3456      *.lo)
 3457	# Install (i.e. copy) a libtool object.
 3458
 3459	# Figure out destination file name, if it wasn't already specified.
 3460	if test -n "$destname"; then
 3461	  destfile="$destdir/$destname"
 3462	else
 3463	  func_basename "$file"
 3464	  destfile="$func_basename_result"
 3465	  destfile="$destdir/$destfile"
 3466	fi
 3467
 3468	# Deduce the name of the destination old-style object file.
 3469	case $destfile in
 3470	*.lo)
 3471	  func_lo2o "$destfile"
 3472	  staticdest=$func_lo2o_result
 3473	  ;;
 3474	*.$objext)
 3475	  staticdest="$destfile"
 3476	  destfile=
 3477	  ;;
 3478	*)
 3479	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
 3480	  ;;
 3481	esac
 3482
 3483	# Install the libtool object if requested.
 3484	test -n "$destfile" && \
 3485	  func_show_eval "$install_prog $file $destfile" 'exit $?'
 3486
 3487	# Install the old object if enabled.
 3488	if test "$build_old_libs" = yes; then
 3489	  # Deduce the name of the old-style object file.
 3490	  func_lo2o "$file"
 3491	  staticobj=$func_lo2o_result
 3492	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
 3493	fi
 3494	exit $EXIT_SUCCESS
 3495	;;
 3496
 3497      *)
 3498	# Figure out destination file name, if it wasn't already specified.
 3499	if test -n "$destname"; then
 3500	  destfile="$destdir/$destname"
 3501	else
 3502	  func_basename "$file"
 3503	  destfile="$func_basename_result"
 3504	  destfile="$destdir/$destfile"
 3505	fi
 3506
 3507	# If the file is missing, and there is a .exe on the end, strip it
 3508	# because it is most likely a libtool script we actually want to
 3509	# install
 3510	stripped_ext=""
 3511	case $file in
 3512	  *.exe)
 3513	    if test ! -f "$file"; then
 3514	      func_stripname '' '.exe' "$file"
 3515	      file=$func_stripname_result
 3516	      stripped_ext=".exe"
 3517	    fi
 3518	    ;;
 3519	esac
 3520
 3521	# Do a test to see if this is really a libtool program.
 3522	case $host in
 3523	*cygwin* | *mingw*)
 3524	    if func_ltwrapper_executable_p "$file"; then
 3525	      func_ltwrapper_scriptname "$file"
 3526	      wrapper=$func_ltwrapper_scriptname_result
 3527	    else
 3528	      func_stripname '' '.exe' "$file"
 3529	      wrapper=$func_stripname_result
 3530	    fi
 3531	    ;;
 3532	*)
 3533	    wrapper=$file
 3534	    ;;
 3535	esac
 3536	if func_ltwrapper_script_p "$wrapper"; then
 3537	  notinst_deplibs=
 3538	  relink_command=
 3539
 3540	  func_source "$wrapper"
 3541
 3542	  # Check the variables that should have been set.
 3543	  test -z "$generated_by_libtool_version" && \
 3544	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
 3545
 3546	  finalize=yes
 3547	  for lib in $notinst_deplibs; do
 3548	    # Check to see that each library is installed.
 3549	    libdir=
 3550	    if test -f "$lib"; then
 3551	      func_source "$lib"
 3552	    fi
 3553	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
 3554	    if test -n "$libdir" && test ! -f "$libfile"; then
 3555	      func_warning "\`$lib' has not been installed in \`$libdir'"
 3556	      finalize=no
 3557	    fi
 3558	  done
 3559
 3560	  relink_command=
 3561	  func_source "$wrapper"
 3562
 3563	  outputname=
 3564	  if test "$fast_install" = no && test -n "$relink_command"; then
 3565	    $opt_dry_run || {
 3566	      if test "$finalize" = yes; then
 3567	        tmpdir=`func_mktempdir`
 3568		func_basename "$file$stripped_ext"
 3569		file="$func_basename_result"
 3570	        outputname="$tmpdir/$file"
 3571	        # Replace the output file specification.
 3572	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 3573
 3574	        $opt_silent || {
 3575	          func_quote_for_expand "$relink_command"
 3576		  eval "func_echo $func_quote_for_expand_result"
 3577	        }
 3578	        if eval "$relink_command"; then :
 3579	          else
 3580		  func_error "error: relink \`$file' with the above command before installing it"
 3581		  $opt_dry_run || ${RM}r "$tmpdir"
 3582		  continue
 3583	        fi
 3584	        file="$outputname"
 3585	      else
 3586	        func_warning "cannot relink \`$file'"
 3587	      fi
 3588	    }
 3589	  else
 3590	    # Install the binary that we compiled earlier.
 3591	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
 3592	  fi
 3593	fi
 3594
 3595	# remove .exe since cygwin /usr/bin/install will append another
 3596	# one anyway
 3597	case $install_prog,$host in
 3598	*/usr/bin/install*,*cygwin*)
 3599	  case $file:$destfile in
 3600	  *.exe:*.exe)
 3601	    # this is ok
 3602	    ;;
 3603	  *.exe:*)
 3604	    destfile=$destfile.exe
 3605	    ;;
 3606	  *:*.exe)
 3607	    func_stripname '' '.exe' "$destfile"
 3608	    destfile=$func_stripname_result
 3609	    ;;
 3610	  esac
 3611	  ;;
 3612	esac
 3613	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
 3614	$opt_dry_run || if test -n "$outputname"; then
 3615	  ${RM}r "$tmpdir"
 3616	fi
 3617	;;
 3618      esac
 3619    done
 3620
 3621    for file in $staticlibs; do
 3622      func_basename "$file"
 3623      name="$func_basename_result"
 3624
 3625      # Set up the ranlib parameters.
 3626      oldlib="$destdir/$name"
 3627      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
 3628      tool_oldlib=$func_to_tool_file_result
 3629
 3630      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 3631
 3632      if test -n "$stripme" && test -n "$old_striplib"; then
 3633	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
 3634      fi
 3635
 3636      # Do each command in the postinstall commands.
 3637      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
 3638    done
 3639
 3640    test -n "$future_libdirs" && \
 3641      func_warning "remember to run \`$progname --finish$future_libdirs'"
 3642
 3643    if test -n "$current_libdirs"; then
 3644      # Maybe just do a dry run.
 3645      $opt_dry_run && current_libdirs=" -n$current_libdirs"
 3646      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
 3647    else
 3648      exit $EXIT_SUCCESS
 3649    fi
 3650}
 3651
 3652test "$opt_mode" = install && func_mode_install ${1+"$@"}
 3653
 3654
 3655# func_generate_dlsyms outputname originator pic_p
 3656# Extract symbols from dlprefiles and create ${outputname}S.o with
 3657# a dlpreopen symbol table.
 3658func_generate_dlsyms ()
 3659{
 3660    $opt_debug
 3661    my_outputname="$1"
 3662    my_originator="$2"
 3663    my_pic_p="${3-no}"
 3664    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
 3665    my_dlsyms=
 3666
 3667    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 3668      if test -n "$NM" && test -n "$global_symbol_pipe"; then
 3669	my_dlsyms="${my_outputname}S.c"
 3670      else
 3671	func_error "not configured to extract global symbols from dlpreopened files"
 3672      fi
 3673    fi
 3674
 3675    if test -n "$my_dlsyms"; then
 3676      case $my_dlsyms in
 3677      "") ;;
 3678      *.c)
 3679	# Discover the nlist of each of the dlfiles.
 3680	nlist="$output_objdir/${my_outputname}.nm"
 3681
 3682	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 3683
 3684	# Parse the name list into a source file.
 3685	func_verbose "creating $output_objdir/$my_dlsyms"
 3686
 3687	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
 3688/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
 3689/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
 3690
 3691#ifdef __cplusplus
 3692extern \"C\" {
 3693#endif
 3694
 3695#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
 3696#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
 3697#endif
 3698
 3699/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
 3700#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
 3701/* DATA imports from DLLs on WIN32 con't be const, because runtime
 3702   relocations are performed -- see ld's documentation on pseudo-relocs.  */
 3703# define LT_DLSYM_CONST
 3704#elif defined(__osf__)
 3705/* This system does not cope well with relocations in const data.  */
 3706# define LT_DLSYM_CONST
 3707#else
 3708# define LT_DLSYM_CONST const
 3709#endif
 3710
 3711/* External symbol declarations for the compiler. */\
 3712"
 3713
 3714	if test "$dlself" = yes; then
 3715	  func_verbose "generating symbol list for \`$output'"
 3716
 3717	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 3718
 3719	  # Add our own program objects to the symbol list.
 3720	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
 3721	  for progfile in $progfiles; do
 3722	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
 3723	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
 3724	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
 3725	  done
 3726
 3727	  if test -n "$exclude_expsyms"; then
 3728	    $opt_dry_run || {
 3729	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
 3730	      eval '$MV "$nlist"T "$nlist"'
 3731	    }
 3732	  fi
 3733
 3734	  if test -n "$export_symbols_regex"; then
 3735	    $opt_dry_run || {
 3736	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
 3737	      eval '$MV "$nlist"T "$nlist"'
 3738	    }
 3739	  fi
 3740
 3741	  # Prepare the list of exported symbols
 3742	  if test -z "$export_symbols"; then
 3743	    export_symbols="$output_objdir/$outputname.exp"
 3744	    $opt_dry_run || {
 3745	      $RM $export_symbols
 3746	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
 3747	      case $host in
 3748	      *cygwin* | *mingw* | *cegcc* )
 3749                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 3750                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
 3751	        ;;
 3752	      esac
 3753	    }
 3754	  else
 3755	    $opt_dry_run || {
 3756	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
 3757	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 3758	      eval '$MV "$nlist"T "$nlist"'
 3759	      case $host in
 3760	        *cygwin* | *mingw* | *cegcc* )
 3761	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 3762	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
 3763	          ;;
 3764	      esac
 3765	    }
 3766	  fi
 3767	fi
 3768
 3769	for dlprefile in $dlprefiles; do
 3770	  func_verbose "extracting global C symbols from \`$dlprefile'"
 3771	  func_basename "$dlprefile"
 3772	  name="$func_basename_result"
 3773          case $host in
 3774	    *cygwin* | *mingw* | *cegcc* )
 3775	      # if an import library, we need to obtain dlname
 3776	      if func_win32_import_lib_p "$dlprefile"; then
 3777	        func_tr_sh "$dlprefile"
 3778	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
 3779	        dlprefile_dlbasename=""
 3780	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
 3781	          # Use subshell, to avoid clobbering current variable values
 3782	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
 3783	          if test -n "$dlprefile_dlname" ; then
 3784	            func_basename "$dlprefile_dlname"
 3785	            dlprefile_dlbasename="$func_basename_result"
 3786	          else
 3787	            # no lafile. user explicitly requested -dlpreopen <import library>.
 3788	            $sharedlib_from_linklib_cmd "$dlprefile"
 3789	            dlprefile_dlbasename=$sharedlib_from_linklib_result
 3790	          fi
 3791	        fi
 3792	        $opt_dry_run || {
 3793	          if test -n "$dlprefile_dlbasename" ; then
 3794	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
 3795	          else
 3796	            func_warning "Could not compute DLL name from $name"
 3797	            eval '$ECHO ": $name " >> "$nlist"'
 3798	          fi
 3799	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
 3800	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
 3801	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
 3802	        }
 3803	      else # not an import lib
 3804	        $opt_dry_run || {
 3805	          eval '$ECHO ": $name " >> "$nlist"'
 3806	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
 3807	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
 3808	        }
 3809	      fi
 3810	    ;;
 3811	    *)
 3812	      $opt_dry_run || {
 3813	        eval '$ECHO ": $name " >> "$nlist"'
 3814	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
 3815	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
 3816	      }
 3817	    ;;
 3818          esac
 3819	done
 3820
 3821	$opt_dry_run || {
 3822	  # Make sure we have at least an empty file.
 3823	  test -f "$nlist" || : > "$nlist"
 3824
 3825	  if test -n "$exclude_expsyms"; then
 3826	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
 3827	    $MV "$nlist"T "$nlist"
 3828	  fi
 3829
 3830	  # Try sorting and uniquifying the output.
 3831	  if $GREP -v "^: " < "$nlist" |
 3832	      if sort -k 3 </dev/null >/dev/null 2>&1; then
 3833		sort -k 3
 3834	      else
 3835		sort +2
 3836	      fi |
 3837	      uniq > "$nlist"S; then
 3838	    :
 3839	  else
 3840	    $GREP -v "^: " < "$nlist" > "$nlist"S
 3841	  fi
 3842
 3843	  if test -f "$nlist"S; then
 3844	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
 3845	  else
 3846	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
 3847	  fi
 3848
 3849	  echo >> "$output_objdir/$my_dlsyms" "\
 3850
 3851/* The mapping between symbol names and symbols.  */
 3852typedef struct {
 3853  const char *name;
 3854  void *address;
 3855} lt_dlsymlist;
 3856extern LT_DLSYM_CONST lt_dlsymlist
 3857lt_${my_prefix}_LTX_preloaded_symbols[];
 3858LT_DLSYM_CONST lt_dlsymlist
 3859lt_${my_prefix}_LTX_preloaded_symbols[] =
 3860{\
 3861  { \"$my_originator\", (void *) 0 },"
 3862
 3863	  case $need_lib_prefix in
 3864	  no)
 3865	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
 3866	    ;;
 3867	  *)
 3868	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
 3869	    ;;
 3870	  esac
 3871	  echo >> "$output_objdir/$my_dlsyms" "\
 3872  {0, (void *) 0}
 3873};
 3874
 3875/* This works around a problem in FreeBSD linker */
 3876#ifdef FREEBSD_WORKAROUND
 3877static const void *lt_preloaded_setup() {
 3878  return lt_${my_prefix}_LTX_preloaded_symbols;
 3879}
 3880#endif
 3881
 3882#ifdef __cplusplus
 3883}
 3884#endif\
 3885"
 3886	} # !$opt_dry_run
 3887
 3888	pic_flag_for_symtable=
 3889	case "$compile_command " in
 3890	*" -static "*) ;;
 3891	*)
 3892	  case $host in
 3893	  # compiling the symbol table file with pic_flag works around
 3894	  # a FreeBSD bug that causes programs to crash when -lm is
 3895	  # linked before any other PIC object.  But we must not use
 3896	  # pic_flag when linking with -static.  The problem exists in
 3897	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
 3898	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
 3899	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
 3900	  *-*-hpux*)
 3901	    pic_flag_for_symtable=" $pic_flag"  ;;
 3902	  *)
 3903	    if test "X$my_pic_p" != Xno; then
 3904	      pic_flag_for_symtable=" $pic_flag"
 3905	    fi
 3906	    ;;
 3907	  esac
 3908	  ;;
 3909	esac
 3910	symtab_cflags=
 3911	for arg in $LTCFLAGS; do
 3912	  case $arg in
 3913	  -pie | -fpie | -fPIE) ;;
 3914	  *) symtab_cflags="$symtab_cflags $arg" ;;
 3915	  esac
 3916	done
 3917
 3918	# Now compile the dynamic symbol file.
 3919	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
 3920
 3921	# Clean up the generated files.
 3922	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
 3923
 3924	# Transform the symbol file into the correct name.
 3925	symfileobj="$output_objdir/${my_outputname}S.$objext"
 3926	case $host in
 3927	*cygwin* | *mingw* | *cegcc* )
 3928	  if test -f "$output_objdir/$my_outputname.def"; then
 3929	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 3930	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 3931	  else
 3932	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 3933	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 3934	  fi
 3935	  ;;
 3936	*)
 3937	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 3938	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 3939	  ;;
 3940	esac
 3941	;;
 3942      *)
 3943	func_fatal_error "unknown suffix for \`$my_dlsyms'"
 3944	;;
 3945      esac
 3946    else
 3947      # We keep going just in case the user didn't refer to
 3948      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
 3949      # really was required.
 3950
 3951      # Nullify the symbol file.
 3952      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
 3953      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
 3954    fi
 3955}
 3956
 3957# func_win32_libid arg
 3958# return the library type of file 'arg'
 3959#
 3960# Need a lot of goo to handle *both* DLLs and import libs
 3961# Has to be a shell function in order to 'eat' the argument
 3962# that is supplied when $file_magic_command is called.
 3963# Despite the name, also deal with 64 bit binaries.
 3964func_win32_libid ()
 3965{
 3966  $opt_debug
 3967  win32_libid_type="unknown"
 3968  win32_fileres=`file -L $1 2>/dev/null`
 3969  case $win32_fileres in
 3970  *ar\ archive\ import\ library*) # definitely import
 3971    win32_libid_type="x86 archive import"
 3972    ;;
 3973  *ar\ archive*) # could be an import, or static
 3974    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
 3975    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
 3976       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
 3977      func_to_tool_file "$1" func_convert_file_msys_to_w32
 3978      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
 3979	$SED -n -e '
 3980	    1,100{
 3981		/ I /{
 3982		    s,.*,import,
 3983		    p
 3984		    q
 3985		}
 3986	    }'`
 3987      case $win32_nmres in
 3988      import*)  win32_libid_type="x86 archive import";;
 3989      *)        win32_libid_type="x86 archive static";;
 3990      esac
 3991    fi
 3992    ;;
 3993  *DLL*)
 3994    win32_libid_type="x86 DLL"
 3995    ;;
 3996  *executable*) # but shell scripts are "executable" too...
 3997    case $win32_fileres in
 3998    *MS\ Windows\ PE\ Intel*)
 3999      win32_libid_type="x86 DLL"
 4000      ;;
 4001    esac
 4002    ;;
 4003  esac
 4004  $ECHO "$win32_libid_type"
 4005}
 4006
 4007# func_cygming_dll_for_implib ARG
 4008#
 4009# Platform-specific function to extract the
 4010# name of the DLL associated with the specified
 4011# import library ARG.
 4012# Invoked by eval'ing the libtool variable
 4013#    $sharedlib_from_linklib_cmd
 4014# Result is available in the variable
 4015#    $sharedlib_from_linklib_result
 4016func_cygming_dll_for_implib ()
 4017{
 4018  $opt_debug
 4019  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
 4020}
 4021
 4022# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
 4023#
 4024# The is the core of a fallback implementation of a
 4025# platform-specific function to extract the name of the
 4026# DLL associated with the specified import library LIBNAME.
 4027#
 4028# SECTION_NAME is either .idata$6 or .idata$7, depending
 4029# on the platform and compiler that created the implib.
 4030#
 4031# Echos the name of the DLL associated with the
 4032# specified import library.
 4033func_cygming_dll_for_implib_fallback_core ()
 4034{
 4035  $opt_debug
 4036  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
 4037  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
 4038    $SED '/^Contents of section '"$match_literal"':/{
 4039      # Place marker at beginning of archive member dllname section
 4040      s/.*/====MARK====/
 4041      p
 4042      d
 4043    }
 4044    # These lines can sometimes be longer than 43 characters, but
 4045    # are always uninteresting
 4046    /:[	 ]*file format pe[i]\{,1\}-/d
 4047    /^In archive [^:]*:/d
 4048    # Ensure marker is printed
 4049    /^====MARK====/p
 4050    # Remove all lines with less than 43 characters
 4051    /^.\{43\}/!d
 4052    # From remaining lines, remove first 43 characters
 4053    s/^.\{43\}//' |
 4054    $SED -n '
 4055      # Join marker and all lines until next marker into a single line
 4056      /^====MARK====/ b para
 4057      H
 4058      $ b para
 4059      b
 4060      :para
 4061      x
 4062      s/\n//g
 4063      # Remove the marker
 4064      s/^====MARK====//
 4065      # Remove trailing dots and whitespace
 4066      s/[\. \t]*$//
 4067      # Print
 4068      /./p' |
 4069    # we now have a list, one entry per line, of the stringified
 4070    # contents of the appropriate section of all members of the
 4071    # archive which possess that section. Heuristic: eliminate
 4072    # all those which have a first or second character that is
 4073    # a '.' (that is, objdump's representation of an unprintable
 4074    # character.) This should work for all archives with less than
 4075    # 0x302f exports -- but will fail for DLLs whose name actually
 4076    # begins with a literal '.' or a single character followed by
 4077    # a '.'.
 4078    #
 4079    # Of those that remain, print the first one.
 4080    $SED -e '/^\./d;/^.\./d;q'
 4081}
 4082
 4083# func_cygming_gnu_implib_p ARG
 4084# This predicate returns with zero status (TRUE) if
 4085# ARG is a GNU/binutils-style import library. Returns
 4086# with nonzero status (FALSE) otherwise.
 4087func_cygming_gnu_implib_p ()
 4088{
 4089  $opt_debug
 4090  func_to_tool_file "$1" func_convert_file_msys_to_w32
 4091  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
 4092  test -n "$func_cygming_gnu_implib_tmp"
 4093}
 4094
 4095# func_cygming_ms_implib_p ARG
 4096# This predicate returns with zero status (TRUE) if
 4097# ARG is an MS-style import library. Returns
 4098# with nonzero status (FALSE) otherwise.
 4099func_cygming_ms_implib_p ()
 4100{
 4101  $opt_debug
 4102  func_to_tool_file "$1" func_convert_file_msys_to_w32
 4103  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
 4104  test -n "$func_cygming_ms_implib_tmp"
 4105}
 4106
 4107# func_cygming_dll_for_implib_fallback ARG
 4108# Platform-specific function to extract the
 4109# name of the DLL associated with the specified
 4110# import library ARG.
 4111#
 4112# This fallback implementation is for use when $DLLTOOL
 4113# does not support the --identify-strict option.
 4114# Invoked by eval'ing the libtool variable
 4115#    $sharedlib_from_linklib_cmd
 4116# Result is available in the variable
 4117#    $sharedlib_from_linklib_result
 4118func_cygming_dll_for_implib_fallback ()
 4119{
 4120  $opt_debug
 4121  if func_cygming_gnu_implib_p "$1" ; then
 4122    # binutils import library
 4123    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
 4124  elif func_cygming_ms_implib_p "$1" ; then
 4125    # ms-generated import library
 4126    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
 4127  else
 4128    # unknown
 4129    sharedlib_from_linklib_result=""
 4130  fi
 4131}
 4132
 4133
 4134# func_extract_an_archive dir oldlib
 4135func_extract_an_archive ()
 4136{
 4137    $opt_debug
 4138    f_ex_an_ar_dir="$1"; shift
 4139    f_ex_an_ar_oldlib="$1"
 4140    if test "$lock_old_archive_extraction" = yes; then
 4141      lockfile=$f_ex_an_ar_oldlib.lock
 4142      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 4143	func_echo "Waiting for $lockfile to be removed"
 4144	sleep 2
 4145      done
 4146    fi
 4147    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
 4148		   'stat=$?; rm -f "$lockfile"; exit $stat'
 4149    if test "$lock_old_archive_extraction" = yes; then
 4150      $opt_dry_run || rm -f "$lockfile"
 4151    fi
 4152    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
 4153     :
 4154    else
 4155      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
 4156    fi
 4157}
 4158
 4159
 4160# func_extract_archives gentop oldlib ...
 4161func_extract_archives ()
 4162{
 4163    $opt_debug
 4164    my_gentop="$1"; shift
 4165    my_oldlibs=${1+"$@"}
 4166    my_oldobjs=""
 4167    my_xlib=""
 4168    my_xabs=""
 4169    my_xdir=""
 4170
 4171    for my_xlib in $my_oldlibs; do
 4172      # Extract the objects.
 4173      case $my_xlib in
 4174	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
 4175	*) my_xabs=`pwd`"/$my_xlib" ;;
 4176      esac
 4177      func_basename "$my_xlib"
 4178      my_xlib="$func_basename_result"
 4179      my_xlib_u=$my_xlib
 4180      while :; do
 4181        case " $extracted_archives " in
 4182	*" $my_xlib_u "*)
 4183	  func_arith $extracted_serial + 1
 4184	  extracted_serial=$func_arith_result
 4185	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
 4186	*) break ;;
 4187	esac
 4188      done
 4189      extracted_archives="$extracted_archives $my_xlib_u"
 4190      my_xdir="$my_gentop/$my_xlib_u"
 4191
 4192      func_mkdir_p "$my_xdir"
 4193
 4194      case $host in
 4195      *-darwin*)
 4196	func_verbose "Extracting $my_xabs"
 4197	# Do not bother doing anything if just a dry run
 4198	$opt_dry_run || {
 4199	  darwin_orig_dir=`pwd`
 4200	  cd $my_xdir || exit $?
 4201	  darwin_archive=$my_xabs
 4202	  darwin_curdir=`pwd`
 4203	  darwin_base_archive=`basename "$darwin_archive"`
 4204	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
 4205	  if test -n "$darwin_arches"; then
 4206	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
 4207	    darwin_arch=
 4208	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
 4209	    for darwin_arch in  $darwin_arches ; do
 4210	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 4211	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
 4212	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 4213	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
 4214	      cd "$darwin_curdir"
 4215	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
 4216	    done # $darwin_arches
 4217            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
 4218	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
 4219	    darwin_file=
 4220	    darwin_files=
 4221	    for darwin_file in $darwin_filelist; do
 4222	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
 4223	      $LIPO -create -output "$darwin_file" $darwin_files
 4224	    done # $darwin_filelist
 4225	    $RM -rf unfat-$$
 4226	    cd "$darwin_orig_dir"
 4227	  else
 4228	    cd $darwin_orig_dir
 4229	    func_extract_an_archive "$my_xdir" "$my_xabs"
 4230	  fi # $darwin_arches
 4231	} # !$opt_dry_run
 4232	;;
 4233      *)
 4234        func_extract_an_archive "$my_xdir" "$my_xabs"
 4235	;;
 4236      esac
 4237      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
 4238    done
 4239
 4240    func_extract_archives_result="$my_oldobjs"
 4241}
 4242
 4243
 4244# func_emit_wrapper [arg=no]
 4245#
 4246# Emit a libtool wrapper script on stdout.
 4247# Don't directly open a file because we may want to
 4248# incorporate the script contents within a cygwin/mingw
 4249# wrapper executable.  Must ONLY be called from within
 4250# func_mode_link because it depends on a number of variables
 4251# set therein.
 4252#
 4253# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
 4254# variable will take.  If 'yes', then the emitted script
 4255# will assume that the directory in which it is stored is
 4256# the $objdir directory.  This is a cygwin/mingw-specific
 4257# behavior.
 4258func_emit_wrapper ()
 4259{
 4260	func_emit_wrapper_arg1=${1-no}
 4261
 4262	$ECHO "\
 4263#! $SHELL
 4264
 4265# $output - temporary wrapper script for $objdir/$outputname
 4266# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 4267#
 4268# The $output program cannot be directly executed until all the libtool
 4269# libraries that it depends on are installed.
 4270#
 4271# This wrapper script should never be moved out of the build directory.
 4272# If it is, it will not operate correctly.
 4273
 4274# Sed substitution that helps us do robust quoting.  It backslashifies
 4275# metacharacters that are still active within double-quoted strings.
 4276sed_quote_subst='$sed_quote_subst'
 4277
 4278# Be Bourne compatible
 4279if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
 4280  emulate sh
 4281  NULLCMD=:
 4282  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
 4283  # is contrary to our usage.  Disable this feature.
 4284  alias -g '\${1+\"\$@\"}'='\"\$@\"'
 4285  setopt NO_GLOB_SUBST
 4286else
 4287  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
 4288fi
 4289BIN_SH=xpg4; export BIN_SH # for Tru64
 4290DUALCASE=1; export DUALCASE # for MKS sh
 4291
 4292# The HP-UX ksh and POSIX shell print the target directory to stdout
 4293# if CDPATH is set.
 4294(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 4295
 4296relink_command=\"$relink_command\"
 4297
 4298# This environment variable determines our operation mode.
 4299if test \"\$libtool_install_magic\" = \"$magic\"; then
 4300  # install mode needs the following variables:
 4301  generated_by_libtool_version='$macro_version'
 4302  notinst_deplibs='$notinst_deplibs'
 4303else
 4304  # When we are sourced in execute mode, \$file and \$ECHO are already set.
 4305  if test \"\$libtool_execute_magic\" != \"$magic\"; then
 4306    file=\"\$0\""
 4307
 4308    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
 4309    $ECHO "\
 4310
 4311# A function that is used when there is no print builtin or printf.
 4312func_fallback_echo ()
 4313{
 4314  eval 'cat <<_LTECHO_EOF
 4315\$1
 4316_LTECHO_EOF'
 4317}
 4318    ECHO=\"$qECHO\"
 4319  fi
 4320
 4321# Very basic option parsing. These options are (a) specific to
 4322# the libtool wrapper, (b) are identical between the wrapper
 4323# /script/ and the wrapper /executable/ which is used only on
 4324# windows platforms, and (c) all begin with the string "--lt-"
 4325# (application programs are unlikely to have options which match
 4326# this pattern).
 4327#
 4328# There are only two supported options: --lt-debug and
 4329# --lt-dump-script. There is, deliberately, no --lt-help.
 4330#
 4331# The first argument to this parsing function should be the
 4332# script's $0 value, followed by "$@".
 4333lt_option_debug=
 4334func_parse_lt_options ()
 4335{
 4336  lt_script_arg0=\$0
 4337  shift
 4338  for lt_opt
 4339  do
 4340    case \"\$lt_opt\" in
 4341    --lt-debug) lt_option_debug=1 ;;
 4342    --lt-dump-script)
 4343        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
 4344        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
 4345        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
 4346        cat \"\$lt_dump_D/\$lt_dump_F\"
 4347        exit 0
 4348      ;;
 4349    --lt-*)
 4350        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
 4351        exit 1
 4352      ;;
 4353    esac
 4354  done
 4355
 4356  # Print the debug banner immediately:
 4357  if test -n \"\$lt_option_debug\"; then
 4358    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
 4359  fi
 4360}
 4361
 4362# Used when --lt-debug. Prints its arguments to stdout
 4363# (redirection is the responsibility of the caller)
 4364func_lt_dump_args ()
 4365{
 4366  lt_dump_args_N=1;
 4367  for lt_arg
 4368  do
 4369    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
 4370    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
 4371  done
 4372}
 4373
 4374# Core function for launching the target application
 4375func_exec_program_core ()
 4376{
 4377"
 4378  case $host in
 4379  # Backslashes separate directories on plain windows
 4380  *-*-mingw | *-*-os2* | *-cegcc*)
 4381    $ECHO "\
 4382      if test -n \"\$lt_option_debug\"; then
 4383        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
 4384        func_lt_dump_args \${1+\"\$@\"} 1>&2
 4385      fi
 4386      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 4387"
 4388    ;;
 4389
 4390  *)
 4391    $ECHO "\
 4392      if test -n \"\$lt_option_debug\"; then
 4393        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
 4394        func_lt_dump_args \${1+\"\$@\"} 1>&2
 4395      fi
 4396      exec \"\$progdir/\$program\" \${1+\"\$@\"}
 4397"
 4398    ;;
 4399  esac
 4400  $ECHO "\
 4401      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
 4402      exit 1
 4403}
 4404
 4405# A function to encapsulate launching the target application
 4406# Strips options in the --lt-* namespace from \$@ and
 4407# launches target application with the remaining arguments.
 4408func_exec_program ()
 4409{
 4410  case \" \$* \" in
 4411  *\\ --lt-*)
 4412    for lt_wr_arg
 4413    do
 4414      case \$lt_wr_arg in
 4415      --lt-*) ;;
 4416      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
 4417      esac
 4418      shift
 4419    done ;;
 4420  esac
 4421  func_exec_program_core \${1+\"\$@\"}
 4422}
 4423
 4424  # Parse options
 4425  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
 4426
 4427  # Find the directory that this script lives in.
 4428  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
 4429  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 4430
 4431  # Follow symbolic links until we get to the real thisdir.
 4432  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
 4433  while test -n \"\$file\"; do
 4434    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
 4435
 4436    # If there was a directory component, then change thisdir.
 4437    if test \"x\$destdir\" != \"x\$file\"; then
 4438      case \"\$destdir\" in
 4439      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
 4440      *) thisdir=\"\$thisdir/\$destdir\" ;;
 4441      esac
 4442    fi
 4443
 4444    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
 4445    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
 4446  done
 4447
 4448  # Usually 'no', except on cygwin/mingw when embedded into
 4449  # the cwrapper.
 4450  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
 4451  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
 4452    # special case for '.'
 4453    if test \"\$thisdir\" = \".\"; then
 4454      thisdir=\`pwd\`
 4455    fi
 4456    # remove .libs from thisdir
 4457    case \"\$thisdir\" in
 4458    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
 4459    $objdir )   thisdir=. ;;
 4460    esac
 4461  fi
 4462
 4463  # Try to get the absolute directory name.
 4464  absdir=\`cd \"\$thisdir\" && pwd\`
 4465  test -n \"\$absdir\" && thisdir=\"\$absdir\"
 4466"
 4467
 4468	if test "$fast_install" = yes; then
 4469	  $ECHO "\
 4470  program=lt-'$outputname'$exeext
 4471  progdir=\"\$thisdir/$objdir\"
 4472
 4473  if test ! -f \"\$progdir/\$program\" ||
 4474     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
 4475       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 4476
 4477    file=\"\$\$-\$program\"
 4478
 4479    if test ! -d \"\$progdir\"; then
 4480      $MKDIR \"\$progdir\"
 4481    else
 4482      $RM \"\$progdir/\$file\"
 4483    fi"
 4484
 4485	  $ECHO "\
 4486
 4487    # relink executable if necessary
 4488    if test -n \"\$relink_command\"; then
 4489      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
 4490      else
 4491	$ECHO \"\$relink_command_output\" >&2
 4492	$RM \"\$progdir/\$file\"
 4493	exit 1
 4494      fi
 4495    fi
 4496
 4497    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
 4498    { $RM \"\$progdir/\$program\";
 4499      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
 4500    $RM \"\$progdir/\$file\"
 4501  fi"
 4502	else
 4503	  $ECHO "\
 4504  program='$outputname'
 4505  progdir=\"\$thisdir/$objdir\"
 4506"
 4507	fi
 4508
 4509	$ECHO "\
 4510
 4511  if test -f \"\$progdir/\$program\"; then"
 4512
 4513	# fixup the dll searchpath if we need to.
 4514	#
 4515	# Fix the DLL searchpath if we need to.  Do this before prepending
 4516	# to shlibpath, because on Windows, both are PATH and uninstalled
 4517	# libraries must come first.
 4518	if test -n "$dllsearchpath"; then
 4519	  $ECHO "\
 4520    # Add the dll search path components to the executable PATH
 4521    PATH=$dllsearchpath:\$PATH
 4522"
 4523	fi
 4524
 4525	# Export our shlibpath_var if we have one.
 4526	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 4527	  $ECHO "\
 4528    # Add our own library path to $shlibpath_var
 4529    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 4530
 4531    # Some systems cannot cope with colon-terminated $shlibpath_var
 4532    # The second colon is a workaround for a bug in BeOS R4 sed
 4533    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
 4534
 4535    export $shlibpath_var
 4536"
 4537	fi
 4538
 4539	$ECHO "\
 4540    if test \"\$libtool_execute_magic\" != \"$magic\"; then
 4541      # Run the actual program with our arguments.
 4542      func_exec_program \${1+\"\$@\"}
 4543    fi
 4544  else
 4545    # The program doesn't exist.
 4546    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
 4547    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
 4548    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
 4549    exit 1
 4550  fi
 4551fi\
 4552"
 4553}
 4554
 4555
 4556# func_emit_cwrapperexe_src
 4557# emit the source code for a wrapper executable on stdout
 4558# Must ONLY be called from within func_mode_link because
 4559# it depends on a number of variable set therein.
 4560func_emit_cwrapperexe_src ()
 4561{
 4562	cat <<EOF
 4563
 4564/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
 4565   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 4566
 4567   The $output program cannot be directly executed until all the libtool
 4568   libraries that it depends on are installed.
 4569
 4570   This wrapper executable should never be moved out of the build directory.
 4571   If it is, it will not operate correctly.
 4572*/
 4573EOF
 4574	    cat <<"EOF"
 4575#ifdef _MSC_VER
 4576# define _CRT_SECURE_NO_DEPRECATE 1
 4577#endif
 4578#include <stdio.h>
 4579#include <stdlib.h>
 4580#ifdef _MSC_VER
 4581# include <direct.h>
 4582# include <process.h>
 4583# include <io.h>
 4584#else
 4585# include <unistd.h>
 4586# include <stdint.h>
 4587# ifdef __CYGWIN__
 4588#  include <io.h>
 4589# endif
 4590#endif
 4591#include <malloc.h>
 4592#include <stdarg.h>
 4593#include <assert.h>
 4594#include <string.h>
 4595#include <ctype.h>
 4596#include <errno.h>
 4597#include <fcntl.h>
 4598#include <sys/stat.h>
 4599
 4600/* declarations of non-ANSI functions */
 4601#if defined(__MINGW32__)
 4602# ifdef __STRICT_ANSI__
 4603int _putenv (const char *);
 4604# endif
 4605#elif defined(__CYGWIN__)
 4606# ifdef __STRICT_ANSI__
 4607char *realpath (const char *, char *);
 4608int putenv (char *);
 4609int setenv (const char *, const char *, int);
 4610# endif
 4611/* #elif defined (other platforms) ... */
 4612#endif
 4613
 4614/* portability defines, excluding path handling macros */
 4615#if defined(_MSC_VER)
 4616# define setmode _setmode
 4617# define stat    _stat
 4618# define chmod   _chmod
 4619# define getcwd  _getcwd
 4620# define putenv  _putenv
 4621# define S_IXUSR _S_IEXEC
 4622# ifndef _INTPTR_T_DEFINED
 4623#  define _INTPTR_T_DEFINED
 4624#  define intptr_t int
 4625# endif
 4626#elif defined(__MINGW32__)
 4627# define setmode _setmode
 4628# define stat    _stat
 4629# define chmod   _chmod
 4630# define getcwd  _getcwd
 4631# define putenv  _putenv
 4632#elif defined(__CYGWIN__)
 4633# define HAVE_SETENV
 4634# define FOPEN_WB "wb"
 4635/* #elif defined (other platforms) ... */
 4636#endif
 4637
 4638#if defined(PATH_MAX)
 4639# define LT_PATHMAX PATH_MAX
 4640#elif defined(MAXPATHLEN)
 4641# define LT_PATHMAX MAXPATHLEN
 4642#else
 4643# define LT_PATHMAX 1024
 4644#endif
 4645
 4646#ifndef S_IXOTH
 4647# define S_IXOTH 0
 4648#endif
 4649#ifndef S_IXGRP
 4650# define S_IXGRP 0
 4651#endif
 4652
 4653/* path handling portability macros */
 4654#ifndef DIR_SEPARATOR
 4655# define DIR_SEPARATOR '/'
 4656# define PATH_SEPARATOR ':'
 4657#endif
 4658
 4659#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
 4660  defined (__OS2__)
 4661# define HAVE_DOS_BASED_FILE_SYSTEM
 4662# define FOPEN_WB "wb"
 4663# ifndef DIR_SEPARATOR_2
 4664#  define DIR_SEPARATOR_2 '\\'
 4665# endif
 4666# ifndef PATH_SEPARATOR_2
 4667#  define PATH_SEPARATOR_2 ';'
 4668# endif
 4669#endif
 4670
 4671#ifndef DIR_SEPARATOR_2
 4672# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
 4673#else /* DIR_SEPARATOR_2 */
 4674# define IS_DIR_SEPARATOR(ch) \
 4675	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
 4676#endif /* DIR_SEPARATOR_2 */
 4677
 4678#ifndef PATH_SEPARATOR_2
 4679# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
 4680#else /* PATH_SEPARATOR_2 */
 4681# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 4682#endif /* PATH_SEPARATOR_2 */
 4683
 4684#ifndef FOPEN_WB
 4685# define FOPEN_WB "w"
 4686#endif
 4687#ifndef _O_BINARY
 4688# define _O_BINARY 0
 4689#endif
 4690
 4691#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 4692#define XFREE(stale) do { \
 4693  if (stale) { free ((void *) stale); stale = 0; } \
 4694} while (0)
 4695
 4696#if defined(LT_DEBUGWRAPPER)
 4697static int lt_debug = 1;
 4698#else
 4699static int lt_debug = 0;
 4700#endif
 4701
 4702const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
 4703
 4704void *xmalloc (size_t num);
 4705char *xstrdup (const char *string);
 4706const char *base_name (const char *name);
 4707char *find_executable (const char *wrapper);
 4708char *chase_symlinks (const char *pathspec);
 4709int make_executable (const char *path);
 4710int check_executable (const char *path);
 4711char *strendzap (char *str, const char *pat);
 4712void lt_debugprintf (const char *file, int line, const char *fmt, ...);
 4713void lt_fatal (const char *file, int line, const char *message, ...);
 4714static const char *nonnull (const char *s);
 4715static const char *nonempty (const char *s);
 4716void lt_setenv (const char *name, const char *value);
 4717char *lt_extend_str (const char *orig_value, const char *add, int to_end);
 4718void lt_update_exe_path (const char *name, const char *value);
 4719void lt_update_lib_path (const char *name, const char *value);
 4720char **prepare_spawn (char **argv);
 4721void lt_dump_script (FILE *f);
 4722EOF
 4723
 4724	    cat <<EOF
 4725volatile const char * MAGIC_EXE = "$magic_exe";
 4726const char * LIB_PATH_VARNAME = "$shlibpath_var";
 4727EOF
 4728
 4729	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 4730              func_to_host_path "$temp_rpath"
 4731	      cat <<EOF
 4732const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
 4733EOF
 4734	    else
 4735	      cat <<"EOF"
 4736const char * LIB_PATH_VALUE   = "";
 4737EOF
 4738	    fi
 4739
 4740	    if test -n "$dllsearchpath"; then
 4741              func_to_host_path "$dllsearchpath:"
 4742	      cat <<EOF
 4743const char * EXE_PATH_VARNAME = "PATH";
 4744const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
 4745EOF
 4746	    else
 4747	      cat <<"EOF"
 4748const char * EXE_PATH_VARNAME = "";
 4749const char * EXE_PATH_VALUE   = "";
 4750EOF
 4751	    fi
 4752
 4753	    if test "$fast_install" = yes; then
 4754	      cat <<EOF
 4755const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
 4756EOF
 4757	    else
 4758	      cat <<EOF
 4759const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
 4760EOF
 4761	    fi
 4762
 4763
 4764	    cat <<"EOF"
 4765
 4766#define LTWRAPPER_OPTION_PREFIX         "--lt-"
 4767
 4768static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
 4769static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
 4770static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
 4771
 4772int
 4773main (int argc, char *argv[])
 4774{
 4775  char **newargz;
 4776  int  newargc;
 4777  char *tmp_pathspec;
 4778  char *actual_cwrapper_path;
 4779  char *actual_cwrapper_name;
 4780  char *target_name;
 4781  char *lt_argv_zero;
 4782  intptr_t rval = 127;
 4783
 4784  int i;
 4785
 4786  program_name = (char *) xstrdup (base_name (argv[0]));
 4787  newargz = XMALLOC (char *, argc + 1);
 4788
 4789  /* very simple arg parsing; don't want to rely on getopt
 4790   * also, copy all non cwrapper options to newargz, except
 4791   * argz[0], which is handled differently
 4792   */
 4793  newargc=0;
 4794  for (i = 1; i < argc; i++)
 4795    {
 4796      if (strcmp (argv[i], dumpscript_opt) == 0)
 4797	{
 4798EOF
 4799	    case "$host" in
 4800	      *mingw* | *cygwin* )
 4801		# make stdout use "unix" line endings
 4802		echo "          setmode(1,_O_BINARY);"
 4803		;;
 4804	      esac
 4805
 4806	    cat <<"EOF"
 4807	  lt_dump_script (stdout);
 4808	  return 0;
 4809	}
 4810      if (strcmp (argv[i], debug_opt) == 0)
 4811	{
 4812          lt_debug = 1;
 4813          continue;
 4814	}
 4815      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
 4816        {
 4817          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
 4818             namespace, but it is not one of the ones we know about and
 4819             have already dealt with, above (inluding dump-script), then
 4820             report an error. Otherwise, targets might begin to believe
 4821             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
 4822             namespace. The first time any user complains about this, we'll
 4823             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
 4824             or a configure.ac-settable value.
 4825           */
 4826          lt_fatal (__FILE__, __LINE__,
 4827		    "unrecognized %s option: '%s'",
 4828                    ltwrapper_option_prefix, argv[i]);
 4829        }
 4830      /* otherwise ... */
 4831      newargz[++newargc] = xstrdup (argv[i]);
 4832    }
 4833  newargz[++newargc] = NULL;
 4834
 4835EOF
 4836	    cat <<EOF
 4837  /* The GNU banner must be the first non-error debug message */
 4838  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
 4839EOF
 4840	    cat <<"EOF"
 4841  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
 4842  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
 4843
 4844  tmp_pathspec = find_executable (argv[0]);
 4845  if (tmp_pathspec == NULL)
 4846    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
 4847  lt_debugprintf (__FILE__, __LINE__,
 4848                  "(main) found exe (before symlink chase) at: %s\n",
 4849		  tmp_pathspec);
 4850
 4851  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
 4852  lt_debugprintf (__FILE__, __LINE__,
 4853                  "(main) found exe (after symlink chase) at: %s\n",
 4854		  actual_cwrapper_path);
 4855  XFREE (tmp_pathspec);
 4856
 4857  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
 4858  strendzap (actual_cwrapper_path, actual_cwrapper_name);
 4859
 4860  /* wrapper name transforms */
 4861  strendzap (actual_cwrapper_name, ".exe");
 4862  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
 4863  XFREE (actual_cwrapper_name);
 4864  actual_cwrapper_name = tmp_pathspec;
 4865  tmp_pathspec = 0;
 4866
 4867  /* target_name transforms -- use actual target program name; might have lt- prefix */
 4868  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
 4869  strendzap (target_name, ".exe");
 4870  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
 4871  XFREE (target_name);
 4872  target_name = tmp_pathspec;
 4873  tmp_pathspec = 0;
 4874
 4875  lt_debugprintf (__FILE__, __LINE__,
 4876		  "(main) libtool target name: %s\n",
 4877		  target_name);
 4878EOF
 4879
 4880	    cat <<EOF
 4881  newargz[0] =
 4882    XMALLOC (char, (strlen (actual_cwrapper_path) +
 4883		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
 4884  strcpy (newargz[0], actual_cwrapper_path);
 4885  strcat (newargz[0], "$objdir");
 4886  strcat (newargz[0], "/");
 4887EOF
 4888
 4889	    cat <<"EOF"
 4890  /* stop here, and copy so we don't have to do this twice */
 4891  tmp_pathspec = xstrdup (newargz[0]);
 4892
 4893  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
 4894  strcat (newargz[0], actual_cwrapper_name);
 4895
 4896  /* DO want the lt- prefix here if it exists, so use target_name */
 4897  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
 4898  XFREE (tmp_pathspec);
 4899  tmp_pathspec = NULL;
 4900EOF
 4901
 4902	    case $host_os in
 4903	      mingw*)
 4904	    cat <<"EOF"
 4905  {
 4906    char* p;
 4907    while ((p = strchr (newargz[0], '\\')) != NULL)
 4908      {
 4909	*p = '/';
 4910      }
 4911    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
 4912      {
 4913	*p = '/';
 4914      }
 4915  }
 4916EOF
 4917	    ;;
 4918	    esac
 4919
 4920	    cat <<"EOF"
 4921  XFREE (target_name);
 4922  XFREE (actual_cwrapper_path);
 4923  XFREE (actual_cwrapper_name);
 4924
 4925  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
 4926  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
 4927  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
 4928     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
 4929     because on Windows, both *_VARNAMEs are PATH but uninstalled
 4930     libraries must come first. */
 4931  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
 4932  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
 4933
 4934  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
 4935		  nonnull (lt_argv_zero));
 4936  for (i = 0; i < newargc; i++)
 4937    {
 4938      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
 4939		      i, nonnull (newargz[i]));
 4940    }
 4941
 4942EOF
 4943
 4944	    case $host_os in
 4945	      mingw*)
 4946		cat <<"EOF"
 4947  /* execv doesn't actually work on mingw as expected on unix */
 4948  newargz = prepare_spawn (newargz);
 4949  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
 4950  if (rval == -1)
 4951    {
 4952      /* failed to start process */
 4953      lt_debugprintf (__FILE__, __LINE__,
 4954		      "(main) failed to launch target \"%s\": %s\n",
 4955		      lt_argv_zero, nonnull (strerror (errno)));
 4956      return 127;
 4957    }
 4958  return rval;
 4959EOF
 4960		;;
 4961	      *)
 4962		cat <<"EOF"
 4963  execv (lt_argv_zero, newargz);
 4964  return rval; /* =127, but avoids unused variable warning */
 4965EOF
 4966		;;
 4967	    esac
 4968
 4969	    cat <<"EOF"
 4970}
 4971
 4972void *
 4973xmalloc (size_t num)
 4974{
 4975  void *p = (void *) malloc (num);
 4976  if (!p)
 4977    lt_fatal (__FILE__, __LINE__, "memory exhausted");
 4978
 4979  return p;
 4980}
 4981
 4982char *
 4983xstrdup (const char *string)
 4984{
 4985  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
 4986			  string) : NULL;
 4987}
 4988
 4989const char *
 4990base_name (const char *name)
 4991{
 4992  const char *base;
 4993
 4994#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 4995  /* Skip over the disk name in MSDOS pathnames. */
 4996  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
 4997    name += 2;
 4998#endif
 4999
 5000  for (base = name; *name; name++)
 5001    if (IS_DIR_SEPARATOR (*name))
 5002      base = name + 1;
 5003  return base;
 5004}
 5005
 5006int
 5007check_executable (const char *path)
 5008{
 5009  struct stat st;
 5010
 5011  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
 5012                  nonempty (path));
 5013  if ((!path) || (!*path))
 5014    return 0;
 5015
 5016  if ((stat (path, &st) >= 0)
 5017      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
 5018    return 1;
 5019  else
 5020    return 0;
 5021}
 5022
 5023int
 5024make_executable (const char *path)
 5025{
 5026  int rval = 0;
 5027  struct stat st;
 5028
 5029  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
 5030                  nonempty (path));
 5031  if ((!path) || (!*path))
 5032    return 0;
 5033
 5034  if (stat (path, &st) >= 0)
 5035    {
 5036      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
 5037    }
 5038  return rval;
 5039}
 5040
 5041/* Searches for the full path of the wrapper.  Returns
 5042   newly allocated full path name if found, NULL otherwise
 5043   Does not chase symlinks, even on platforms that support them.
 5044*/
 5045char *
 5046find_executable (const char *wrapper)
 5047{
 5048  int has_slash = 0;
 5049  const char *p;
 5050  const char *p_next;
 5051  /* static buffer for getcwd */
 5052  char tmp[LT_PATHMAX + 1];
 5053  int tmp_len;
 5054  char *concat_name;
 5055
 5056  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
 5057                  nonempty (wrapper));
 5058
 5059  if ((wrapper == NULL) || (*wrapper == '\0'))
 5060    return NULL;
 5061
 5062  /* Absolute path? */
 5063#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 5064  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
 5065    {
 5066      concat_name = xstrdup (wrapper);
 5067      if (check_executable (concat_name))
 5068	return concat_name;
 5069      XFREE (concat_name);
 5070    }
 5071  else
 5072    {
 5073#endif
 5074      if (IS_DIR_SEPARATOR (wrapper[0]))
 5075	{
 5076	  concat_name = xstrdup (wrapper);
 5077	  if (check_executable (concat_name))
 5078	    return concat_name;
 5079	  XFREE (concat_name);
 5080	}
 5081#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 5082    }
 5083#endif
 5084
 5085  for (p = wrapper; *p; p++)
 5086    if (*p == '/')
 5087      {
 5088	has_slash = 1;
 5089	break;
 5090      }
 5091  if (!has_slash)
 5092    {
 5093      /* no slashes; search PATH */
 5094      const char *path = getenv ("PATH");
 5095      if (path != NULL)
 5096	{
 5097	  for (p = path; *p; p = p_next)
 5098	    {
 5099	      const char *q;
 5100	      size_t p_len;
 5101	      for (q = p; *q; q++)
 5102		if (IS_PATH_SEPARATOR (*q))
 5103		  break;
 5104	      p_len = q - p;
 5105	      p_next = (*q == '\0' ? q : q + 1);
 5106	      if (p_len == 0)
 5107		{
 5108		  /* empty path: current directory */
 5109		  if (getcwd (tmp, LT_PATHMAX) == NULL)
 5110		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
 5111                              nonnull (strerror (errno)));
 5112		  tmp_len = strlen (tmp);
 5113		  concat_name =
 5114		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
 5115		  memcpy (concat_name, tmp, tmp_len);
 5116		  concat_name[tmp_len] = '/';
 5117		  strcpy (concat_name + tmp_len + 1, wrapper);
 5118		}
 5119	      else
 5120		{
 5121		  concat_name =
 5122		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
 5123		  memcpy (concat_name, p, p_len);
 5124		  concat_name[p_len] = '/';
 5125		  strcpy (concat_name + p_len + 1, wrapper);
 5126		}
 5127	      if (check_executable (concat_name))
 5128		return concat_name;
 5129	      XFREE (concat_name);
 5130	    }
 5131	}
 5132      /* not found in PATH; assume curdir */
 5133    }
 5134  /* Relative path | not found in path: prepend cwd */
 5135  if (getcwd (tmp, LT_PATHMAX) == NULL)
 5136    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
 5137              nonnull (strerror (errno)));
 5138  tmp_len = strlen (tmp);
 5139  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
 5140  memcpy (concat_name, tmp, tmp_len);
 5141  concat_name[tmp_len] = '/';
 5142  strcpy (concat_name + tmp_len + 1, wrapper);
 5143
 5144  if (check_executable (concat_name))
 5145    return concat_name;
 5146  XFREE (concat_name);
 5147  return NULL;
 5148}
 5149
 5150char *
 5151chase_symlinks (const char *pathspec)
 5152{
 5153#ifndef S_ISLNK
 5154  return xstrdup (pathspec);
 5155#else
 5156  char buf[LT_PATHMAX];
 5157  struct stat s;
 5158  char *tmp_pathspec = xstrdup (pathspec);
 5159  char *p;
 5160  int has_symlinks = 0;
 5161  while (strlen (tmp_pathspec) && !has_symlinks)
 5162    {
 5163      lt_debugprintf (__FILE__, __LINE__,
 5164		      "checking path component for symlinks: %s\n",
 5165		      tmp_pathspec);
 5166      if (lstat (tmp_pathspec, &s) == 0)
 5167	{
 5168	  if (S_ISLNK (s.st_mode) != 0)
 5169	    {
 5170	      has_symlinks = 1;
 5171	      break;
 5172	    }
 5173
 5174	  /* search backwards for last DIR_SEPARATOR */
 5175	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
 5176	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
 5177	    p--;
 5178	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
 5179	    {
 5180	      /* no more DIR_SEPARATORS left */
 5181	      break;
 5182	    }
 5183	  *p = '\0';
 5184	}
 5185      else
 5186	{
 5187	  lt_fatal (__FILE__, __LINE__,
 5188		    "error accessing file \"%s\": %s",
 5189		    tmp_pathspec, nonnull (strerror (errno)));
 5190	}
 5191    }
 5192  XFREE (tmp_pathspec);
 5193
 5194  if (!has_symlinks)
 5195    {
 5196      return xstrdup (pathspec);
 5197    }
 5198
 5199  tmp_pathspec = realpath (pathspec, buf);
 5200  if (tmp_pathspec == 0)
 5201    {
 5202      lt_fatal (__FILE__, __LINE__,
 5203		"could not follow symlinks for %s", pathspec);
 5204    }
 5205  return xstrdup (tmp_pathspec);
 5206#endif
 5207}
 5208
 5209char *
 5210strendzap (char *str, const char *pat)
 5211{
 5212  size_t len, patlen;
 5213
 5214  assert (str != NULL);
 5215  assert (pat != NULL);
 5216
 5217  len = strlen (str);
 5218  patlen = strlen (pat);
 5219
 5220  if (patlen <= len)
 5221    {
 5222      str += len - patlen;
 5223      if (strcmp (str, pat) == 0)
 5224	*str = '\0';
 5225    }
 5226  return str;
 5227}
 5228
 5229void
 5230lt_debugprintf (const char *file, int line, const char *fmt, ...)
 5231{
 5232  va_list args;
 5233  if (lt_debug)
 5234    {
 5235      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
 5236      va_start (args, fmt);
 5237      (void) vfprintf (stderr, fmt, args);
 5238      va_end (args);
 5239    }
 5240}
 5241
 5242static void
 5243lt_error_core (int exit_status, const char *file,
 5244	       int line, const char *mode,
 5245	       const char *message, va_list ap)
 5246{
 5247  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
 5248  vfprintf (stderr, message, ap);
 5249  fprintf (stderr, ".\n");
 5250
 5251  if (exit_status >= 0)
 5252    exit (exit_status);
 5253}
 5254
 5255void
 5256lt_fatal (const char *file, int line, const char *message, ...)
 5257{
 5258  va_list ap;
 5259  va_start (ap, message);
 5260  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
 5261  va_end (ap);
 5262}
 5263
 5264static const char *
 5265nonnull (const char *s)
 5266{
 5267  return s ? s : "(null)";
 5268}
 5269
 5270static const char *
 5271nonempty (const char *s)
 5272{
 5273  return (s && !*s) ? "(empty)" : nonnull (s);
 5274}
 5275
 5276void
 5277lt_setenv (const char *name, const char *value)
 5278{
 5279  lt_debugprintf (__FILE__, __LINE__,
 5280		  "(lt_setenv) setting '%s' to '%s'\n",
 5281                  nonnull (name), nonnull (value));
 5282  {
 5283#ifdef HAVE_SETENV
 5284    /* always make a copy, for consistency with !HAVE_SETENV */
 5285    char *str = xstrdup (value);
 5286    setenv (name, str, 1);
 5287#else
 5288    int len = strlen (name) + 1 + strlen (value) + 1;
 5289    char *str = XMALLOC (char, len);
 5290    sprintf (str, "%s=%s", name, value);
 5291    if (putenv (str) != EXIT_SUCCESS)
 5292      {
 5293        XFREE (str);
 5294      }
 5295#endif
 5296  }
 5297}
 5298
 5299char *
 5300lt_extend_str (const char *orig_value, const char *add, int to_end)
 5301{
 5302  char *new_value;
 5303  if (orig_value && *orig_value)
 5304    {
 5305      int orig_value_len = strlen (orig_value);
 5306      int add_len = strlen (add);
 5307      new_value = XMALLOC (char, add_len + orig_value_len + 1);
 5308      if (to_end)
 5309        {
 5310          strcpy (new_value, orig_value);
 5311          strcpy (new_value + orig_value_len, add);
 5312        }
 5313      else
 5314        {
 5315          strcpy (new_value, add);
 5316          strcpy (new_value + add_len, orig_value);
 5317        }
 5318    }
 5319  else
 5320    {
 5321      new_value = xstrdup (add);
 5322    }
 5323  return new_value;
 5324}
 5325
 5326void
 5327lt_update_exe_path (const char *name, const char *value)
 5328{
 5329  lt_debugprintf (__FILE__, __LINE__,
 5330		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
 5331                  nonnull (name), nonnull (value));
 5332
 5333  if (name && *name && value && *value)
 5334    {
 5335      char *new_value = lt_extend_str (getenv (name), value, 0);
 5336      /* some systems can't cope with a ':'-terminated path #' */
 5337      int len = strlen (new_value);
 5338      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
 5339        {
 5340          new_value[len-1] = '\0';
 5341        }
 5342      lt_setenv (name, new_value);
 5343      XFREE (new_value);
 5344    }
 5345}
 5346
 5347void
 5348lt_update_lib_path (const char *name, const char *value)
 5349{
 5350  lt_debugprintf (__FILE__, __LINE__,
 5351		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
 5352                  nonnull (name), nonnull (value));
 5353
 5354  if (name && *name && value && *value)
 5355    {
 5356      char *new_value = lt_extend_str (getenv (name), value, 0);
 5357      lt_setenv (name, new_value);
 5358      XFREE (new_value);
 5359    }
 5360}
 5361
 5362EOF
 5363	    case $host_os in
 5364	      mingw*)
 5365		cat <<"EOF"
 5366
 5367/* Prepares an argument vector before calling spawn().
 5368   Note that spawn() does not by itself call the command interpreter
 5369     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
 5370      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
 5371         GetVersionEx(&v);
 5372         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
 5373      }) ? "cmd.exe" : "command.com").
 5374   Instead it simply concatenates the arguments, separated by ' ', and calls
 5375   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
 5376   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
 5377   special way:
 5378   - Space and tab are interpreted as delimiters. They are not treated as
 5379     delimiters if they are surrounded by double quotes: "...".
 5380   - Unescaped double quotes are removed from the input. Their only effect is
 5381     that within double quotes, space and tab are treated like normal
 5382     characters.
 5383   - Backslashes not followed by double quotes are not special.
 5384   - But 2*n+1 backslashes followed by a double quote become
 5385     n backslashes followed by a double quote (n >= 0):
 5386       \" -> "
 5387       \\\" -> \"
 5388       \\\\\" -> \\"
 5389 */
 5390#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
 5391#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
 5392char **
 5393prepare_spawn (char **argv)
 5394{
 5395  size_t argc;
 5396  char **new_argv;
 5397  size_t i;
 5398
 5399  /* Count number of arguments.  */
 5400  for (argc = 0; argv[argc] != NULL; argc++)
 5401    ;
 5402
 5403  /* Allocate new argument vector.  */
 5404  new_argv = XMALLOC (char *, argc + 1);
 5405
 5406  /* Put quoted arguments into the new argument vector.  */
 5407  for (i = 0; i < argc; i++)
 5408    {
 5409      const char *string = argv[i];
 5410
 5411      if (string[0] == '\0')
 5412	new_argv[i] = xstrdup ("\"\"");
 5413      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
 5414	{
 5415	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
 5416	  size_t length;
 5417	  unsigned int backslashes;
 5418	  const char *s;
 5419	  char *quoted_string;
 5420	  char *p;
 5421
 5422	  length = 0;
 5423	  backslashes = 0;
 5424	  if (quote_around)
 5425	    length++;
 5426	  for (s = string; *s != '\0'; s++)
 5427	    {
 5428	      char c = *s;
 5429	      if (c == '"')
 5430		length += backslashes + 1;
 5431	      length++;
 5432	      if (c == '\\')
 5433		backslashes++;
 5434	      else
 5435		backslashes = 0;
 5436	    }
 5437	  if (quote_around)
 5438	    length += backslashes + 1;
 5439
 5440	  quoted_string = XMALLOC (char, length + 1);
 5441
 5442	  p = quoted_string;
 5443	  backslashes = 0;
 5444	  if (quote_around)
 5445	    *p++ = '"';
 5446	  for (s = string; *s != '\0'; s++)
 5447	    {
 5448	      char c = *s;
 5449	      if (c == '"')
 5450		{
 5451		  unsigned int j;
 5452		  for (j = backslashes + 1; j > 0; j--)
 5453		    *p++ = '\\';
 5454		}
 5455	      *p++ = c;
 5456	      if (c == '\\')
 5457		backslashes++;
 5458	      else
 5459		backslashes = 0;
 5460	    }
 5461	  if (quote_around)
 5462	    {
 5463	      unsigned int j;
 5464	      for (j = backslashes; j > 0; j--)
 5465		*p++ = '\\';
 5466	      *p++ = '"';
 5467	    }
 5468	  *p = '\0';
 5469
 5470	  new_argv[i] = quoted_string;
 5471	}
 5472      else
 5473	new_argv[i] = (char *) string;
 5474    }
 5475  new_argv[argc] = NULL;
 5476
 5477  return new_argv;
 5478}
 5479EOF
 5480		;;
 5481	    esac
 5482
 5483            cat <<"EOF"
 5484void lt_dump_script (FILE* f)
 5485{
 5486EOF
 5487	    func_emit_wrapper yes |
 5488	      $SED -n -e '
 5489s/^\(.\{79\}\)\(..*\)/\1\
 5490\2/
 5491h
 5492s/\([\\"]\)/\\\1/g
 5493s/$/\\n/
 5494s/\([^\n]*\).*/  fputs ("\1", f);/p
 5495g
 5496D'
 5497            cat <<"EOF"
 5498}
 5499EOF
 5500}
 5501# end: func_emit_cwrapperexe_src
 5502
 5503# func_win32_import_lib_p ARG
 5504# True if ARG is an import lib, as indicated by $file_magic_cmd
 5505func_win32_import_lib_p ()
 5506{
 5507    $opt_debug
 5508    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
 5509    *import*) : ;;
 5510    *) false ;;
 5511    esac
 5512}
 5513
 5514# func_mode_link arg...
 5515func_mode_link ()
 5516{
 5517    $opt_debug
 5518    case $host in
 5519    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 5520      # It is impossible to link a dll without this setting, and
 5521      # we shouldn't force the makefile maintainer to figure out
 5522      # which system we are compiling for in order to pass an extra
 5523      # flag for every libtool invocation.
 5524      # allow_undefined=no
 5525
 5526      # FIXME: Unfortunately, there are problems with the above when trying
 5527      # to make a dll which has undefined symbols, in which case not
 5528      # even a static library is built.  For now, we need to specify
 5529      # -no-undefined on the libtool link line when we can be certain
 5530      # that all symbols are satisfied, otherwise we get a static library.
 5531      allow_undefined=yes
 5532      ;;
 5533    *)
 5534      allow_undefined=yes
 5535      ;;
 5536    esac
 5537    libtool_args=$nonopt
 5538    base_compile="$nonopt $@"
 5539    compile_command=$nonopt
 5540    finalize_command=$nonopt
 5541
 5542    compile_rpath=
 5543    finalize_rpath=
 5544    compile_shlibpath=
 5545    finalize_shlibpath=
 5546    convenience=
 5547    old_convenience=
 5548    deplibs=
 5549    old_deplibs=
 5550    compiler_flags=
 5551    linker_flags=
 5552    dllsearchpath=
 5553    lib_search_path=`pwd`
 5554    inst_prefix_dir=
 5555    new_inherited_linker_flags=
 5556
 5557    avoid_version=no
 5558    bindir=
 5559    dlfiles=
 5560    dlprefiles=
 5561    dlself=no
 5562    export_dynamic=no
 5563    export_symbols=
 5564    export_symbols_regex=
 5565    generated=
 5566    libobjs=
 5567    ltlibs=
 5568    module=no
 5569    no_install=no
 5570    objs=
 5571    non_pic_objects=
 5572    precious_files_regex=
 5573    prefer_static_libs=no
 5574    preload=no
 5575    prev=
 5576    prevarg=
 5577    release=
 5578    rpath=
 5579    xrpath=
 5580    perm_rpath=
 5581    temp_rpath=
 5582    thread_safe=no
 5583    vinfo=
 5584    vinfo_number=no
 5585    weak_libs=
 5586    single_module="${wl}-single_module"
 5587    func_infer_tag $base_compile
 5588
 5589    # We need to know -static, to get the right output filenames.
 5590    for arg
 5591    do
 5592      case $arg in
 5593      -shared)
 5594	test "$build_libtool_libs" != yes && \
 5595	  func_fatal_configuration "can not build a shared library"
 5596	build_old_libs=no
 5597	break
 5598	;;
 5599      -all-static | -static | -static-libtool-libs)
 5600	case $arg in
 5601	-all-static)
 5602	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
 5603	    func_warning "complete static linking is impossible in this configuration"
 5604	  fi
 5605	  if test -n "$link_static_flag"; then
 5606	    dlopen_self=$dlopen_self_static
 5607	  fi
 5608	  prefer_static_libs=yes
 5609	  ;;
 5610	-static)
 5611	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
 5612	    dlopen_self=$dlopen_self_static
 5613	  fi
 5614	  prefer_static_libs=built
 5615	  ;;
 5616	-static-libtool-libs)
 5617	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
 5618	    dlopen_self=$dlopen_self_static
 5619	  fi
 5620	  prefer_static_libs=yes
 5621	  ;;
 5622	esac
 5623	build_libtool_libs=no
 5624	build_old_libs=yes
 5625	break
 5626	;;
 5627      esac
 5628    done
 5629
 5630    # See if our shared archives depend on static archives.
 5631    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 5632
 5633    # Go through the arguments, transforming them on the way.
 5634    while test "$#" -gt 0; do
 5635      arg="$1"
 5636      shift
 5637      func_quote_for_eval "$arg"
 5638      qarg=$func_quote_for_eval_unquoted_result
 5639      libtool_args="$libtool_args $func_quote_for_eval_result"
 5640
 5641      # If the previous option needs an argument, assign it.
 5642      if test -n "$prev"; then
 5643	case $prev in
 5644	output)
 5645	  compile_command="$compile_command @OUTPUT@"
 5646	  finalize_command="$finalize_command @OUTPUT@"
 5647	  ;;
 5648	esac
 5649
 5650	case $prev in
 5651	bindir)
 5652	  bindir="$arg"
 5653	  prev=
 5654	  continue
 5655	  ;;
 5656	dlfiles|dlprefiles)
 5657	  if test "$preload" = no; then
 5658	    # Add the symbol object into the linking commands.
 5659	    compile_command="$compile_command @SYMFILE@"
 5660	    finalize_command="$finalize_command @SYMFILE@"
 5661	    preload=yes
 5662	  fi
 5663	  case $arg in
 5664	  *.la | *.lo) ;;  # We handle these cases below.
 5665	  force)
 5666	    if test "$dlself" = no; then
 5667	      dlself=needless
 5668	      export_dynamic=yes
 5669	    fi
 5670	    prev=
 5671	    continue
 5672	    ;;
 5673	  self)
 5674	    if test "$prev" = dlprefiles; then
 5675	      dlself=yes
 5676	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
 5677	      dlself=yes
 5678	    else
 5679	      dlself=needless
 5680	      export_dynamic=yes
 5681	    fi
 5682	    prev=
 5683	    continue
 5684	    ;;
 5685	  *)
 5686	    if test "$prev" = dlfiles; then
 5687	      dlfiles="$dlfiles $arg"
 5688	    else
 5689	      dlprefiles="$dlprefiles $arg"
 5690	    fi
 5691	    prev=
 5692	    continue
 5693	    ;;
 5694	  esac
 5695	  ;;
 5696	expsyms)
 5697	  export_symbols="$arg"
 5698	  test -f "$arg" \
 5699	    || func_fatal_error "symbol file \`$arg' does not exist"
 5700	  prev=
 5701	  continue
 5702	  ;;
 5703	expsyms_regex)
 5704	  export_symbols_regex="$arg"
 5705	  prev=
 5706	  continue
 5707	  ;;
 5708	framework)
 5709	  case $host in
 5710	    *-*-darwin*)
 5711	      case "$deplibs " in
 5712		*" $qarg.ltframework "*) ;;
 5713		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
 5714		   ;;
 5715	      esac
 5716	      ;;
 5717	  esac
 5718	  prev=
 5719	  continue
 5720	  ;;
 5721	inst_prefix)
 5722	  inst_prefix_dir="$arg"
 5723	  prev=
 5724	  continue
 5725	  ;;
 5726	objectlist)
 5727	  if test -f "$arg"; then
 5728	    save_arg=$arg
 5729	    moreargs=
 5730	    for fil in `cat "$save_arg"`
 5731	    do
 5732#	      moreargs="$moreargs $fil"
 5733	      arg=$fil
 5734	      # A libtool-controlled object.
 5735
 5736	      # Check to see that this really is a libtool object.
 5737	      if func_lalib_unsafe_p "$arg"; then
 5738		pic_object=
 5739		non_pic_object=
 5740
 5741		# Read the .lo file
 5742		func_source "$arg"
 5743
 5744		if test -z "$pic_object" ||
 5745		   test -z "$non_pic_object" ||
 5746		   test "$pic_object" = none &&
 5747		   test "$non_pic_object" = none; then
 5748		  func_fatal_error "cannot find name of object for \`$arg'"
 5749		fi
 5750
 5751		# Extract subdirectory from the argument.
 5752		func_dirname "$arg" "/" ""
 5753		xdir="$func_dirname_result"
 5754
 5755		if test "$pic_object" != none; then
 5756		  # Prepend the subdirectory the object is found in.
 5757		  pic_object="$xdir$pic_object"
 5758
 5759		  if test "$prev" = dlfiles; then
 5760		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 5761		      dlfiles="$dlfiles $pic_object"
 5762		      prev=
 5763		      continue
 5764		    else
 5765		      # If libtool objects are unsupported, then we need to preload.
 5766		      prev=dlprefiles
 5767		    fi
 5768		  fi
 5769
 5770		  # CHECK ME:  I think I busted this.  -Ossama
 5771		  if test "$prev" = dlprefiles; then
 5772		    # Preload the old-style object.
 5773		    dlprefiles="$dlprefiles $pic_object"
 5774		    prev=
 5775		  fi
 5776
 5777		  # A PIC object.
 5778		  libobjs="$libobjs $pic_object"
 5779		  arg="$pic_object"
 5780		fi
 5781
 5782		# Non-PIC object.
 5783		if test "$non_pic_object" != none; then
 5784		  # Prepend the subdirectory the object is found in.
 5785		  non_pic_object="$xdir$non_pic_object"
 5786
 5787		  # A standard non-PIC object
 5788		  non_pic_objects="$non_pic_objects $non_pic_object"
 5789		  if test -z "$pic_object" || test "$pic_object" = none ; then
 5790		    arg="$non_pic_object"
 5791		  fi
 5792		else
 5793		  # If the PIC object exists, use it instead.
 5794		  # $xdir was prepended to $pic_object above.
 5795		  non_pic_object="$pic_object"
 5796		  non_pic_objects="$non_pic_objects $non_pic_object"
 5797		fi
 5798	      else
 5799		# Only an error if not doing a dry-run.
 5800		if $opt_dry_run; then
 5801		  # Extract subdirectory from the argument.
 5802		  func_dirname "$arg" "/" ""
 5803		  xdir="$func_dirname_result"
 5804
 5805		  func_lo2o "$arg"
 5806		  pic_object=$xdir$objdir/$func_lo2o_result
 5807		  non_pic_object=$xdir$func_lo2o_result
 5808		  libobjs="$libobjs $pic_object"
 5809		  non_pic_objects="$non_pic_objects $non_pic_object"
 5810	        else
 5811		  func_fatal_error "\`$arg' is not a valid libtool object"
 5812		fi
 5813	      fi
 5814	    done
 5815	  else
 5816	    func_fatal_error "link input file \`$arg' does not exist"
 5817	  fi
 5818	  arg=$save_arg
 5819	  prev=
 5820	  continue
 5821	  ;;
 5822	precious_regex)
 5823	  precious_files_regex="$arg"
 5824	  prev=
 5825	  continue
 5826	  ;;
 5827	release)
 5828	  release="-$arg"
 5829	  prev=
 5830	  continue
 5831	  ;;
 5832	rpath | xrpath)
 5833	  # We need an absolute path.
 5834	  case $arg in
 5835	  [\\/]* | [A-Za-z]:[\\/]*) ;;
 5836	  *)
 5837	    func_fatal_error "only absolute run-paths are allowed"
 5838	    ;;
 5839	  esac
 5840	  if test "$prev" = rpath; then
 5841	    case "$rpath " in
 5842	    *" $arg "*) ;;
 5843	    *) rpath="$rpath $arg" ;;
 5844	    esac
 5845	  else
 5846	    case "$xrpath " in
 5847	    *" $arg "*) ;;
 5848	    *) xrpath="$xrpath $arg" ;;
 5849	    esac
 5850	  fi
 5851	  prev=
 5852	  continue
 5853	  ;;
 5854	shrext)
 5855	  shrext_cmds="$arg"
 5856	  prev=
 5857	  continue
 5858	  ;;
 5859	weak)
 5860	  weak_libs="$weak_libs $arg"
 5861	  prev=
 5862	  continue
 5863	  ;;
 5864	xcclinker)
 5865	  linker_flags="$linker_flags $qarg"
 5866	  compiler_flags="$compiler_flags $qarg"
 5867	  prev=
 5868	  compile_command="$compile_command $qarg"
 5869	  finalize_command="$finalize_command $qarg"
 5870	  continue
 5871	  ;;
 5872	xcompiler)
 5873	  compiler_flags="$compiler_flags $qarg"
 5874	  prev=
 5875	  compile_command="$compile_command $qarg"
 5876	  finalize_command="$finalize_command $qarg"
 5877	  continue
 5878	  ;;
 5879	xlinker)
 5880	  linker_flags="$linker_flags $qarg"
 5881	  compiler_flags="$compiler_flags $wl$qarg"
 5882	  prev=
 5883	  compile_command="$compile_command $wl$qarg"
 5884	  finalize_command="$finalize_command $wl$qarg"
 5885	  continue
 5886	  ;;
 5887	*)
 5888	  eval "$prev=\"\$arg\""
 5889	  prev=
 5890	  continue
 5891	  ;;
 5892	esac
 5893      fi # test -n "$prev"
 5894
 5895      prevarg="$arg"
 5896
 5897      case $arg in
 5898      -all-static)
 5899	if test -n "$link_static_flag"; then
 5900	  # See comment for -static flag below, for more details.
 5901	  compile_command="$compile_command $link_static_flag"
 5902	  finalize_command="$finalize_command $link_static_flag"
 5903	fi
 5904	continue
 5905	;;
 5906
 5907      -allow-undefined)
 5908	# FIXME: remove this flag sometime in the future.
 5909	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
 5910	;;
 5911
 5912      -avoid-version)
 5913	avoid_version=yes
 5914	continue
 5915	;;
 5916
 5917      -bindir)
 5918	prev=bindir
 5919	continue
 5920	;;
 5921
 5922      -dlopen)
 5923	prev=dlfiles
 5924	continue
 5925	;;
 5926
 5927      -dlpreopen)
 5928	prev=dlprefiles
 5929	continue
 5930	;;
 5931
 5932      -export-dynamic)
 5933	export_dynamic=yes
 5934	continue
 5935	;;
 5936
 5937      -export-symbols | -export-symbols-regex)
 5938	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 5939	  func_fatal_error "more than one -exported-symbols argument is not allowed"
 5940	fi
 5941	if test "X$arg" = "X-export-symbols"; then
 5942	  prev=expsyms
 5943	else
 5944	  prev=expsyms_regex
 5945	fi
 5946	continue
 5947	;;
 5948
 5949      -framework)
 5950	prev=framework
 5951	continue
 5952	;;
 5953
 5954      -inst-prefix-dir)
 5955	prev=inst_prefix
 5956	continue
 5957	;;
 5958
 5959      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
 5960      # so, if we see these flags be careful not to treat them like -L
 5961      -L[A-Z][A-Z]*:*)
 5962	case $with_gcc/$host in
 5963	no/*-*-irix* | /*-*-irix*)
 5964	  compile_command="$compile_command $arg"
 5965	  finalize_command="$finalize_command $arg"
 5966	  ;;
 5967	esac
 5968	continue
 5969	;;
 5970
 5971      -L*)
 5972	func_stripname "-L" '' "$arg"
 5973	if test -z "$func_stripname_result"; then
 5974	  if test "$#" -gt 0; then
 5975	    func_fatal_error "require no space between \`-L' and \`$1'"
 5976	  else
 5977	    func_fatal_error "need path for \`-L' option"
 5978	  fi
 5979	fi
 5980	func_resolve_sysroot "$func_stripname_result"
 5981	dir=$func_resolve_sysroot_result
 5982	# We need an absolute path.
 5983	case $dir in
 5984	[\\/]* | [A-Za-z]:[\\/]*) ;;
 5985	*)
 5986	  absdir=`cd "$dir" && pwd`
 5987	  test -z "$absdir" && \
 5988	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
 5989	  dir="$absdir"
 5990	  ;;
 5991	esac
 5992	case "$deplibs " in
 5993	*" -L$dir "* | *" $arg "*)
 5994	  # Will only happen for absolute or sysroot arguments
 5995	  ;;
 5996	*)
 5997	  # Preserve sysroot, but never include relative directories
 5998	  case $dir in
 5999	    [\\/]* | [A-Za-z]:[\\/]* | =*) deplibs="$deplibs $arg" ;;
 6000	    *) deplibs="$deplibs -L$dir" ;;
 6001	  esac
 6002	  lib_search_path="$lib_search_path $dir"
 6003	  ;;
 6004	esac
 6005	case $host in
 6006	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 6007	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
 6008	  case :$dllsearchpath: in
 6009	  *":$dir:"*) ;;
 6010	  ::) dllsearchpath=$dir;;
 6011	  *) dllsearchpath="$dllsearchpath:$dir";;
 6012	  esac
 6013	  case :$dllsearchpath: in
 6014	  *":$testbindir:"*) ;;
 6015	  ::) dllsearchpath=$testbindir;;
 6016	  *) dllsearchpath="$dllsearchpath:$testbindir";;
 6017	  esac
 6018	  ;;
 6019	esac
 6020	continue
 6021	;;
 6022
 6023      -l*)
 6024	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 6025	  case $host in
 6026	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
 6027	    # These systems don't actually have a C or math library (as such)
 6028	    continue
 6029	    ;;
 6030	  *-*-os2*)
 6031	    # These systems don't actually have a C library (as such)
 6032	    test "X$arg" = "X-lc" && continue
 6033	    ;;
 6034	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 6035	    # Do not include libc due to us having libc/libc_r.
 6036	    test "X$arg" = "X-lc" && continue
 6037	    ;;
 6038	  *-*-rhapsody* | *-*-darwin1.[012])
 6039	    # Rhapsody C and math libraries are in the System framework
 6040	    deplibs="$deplibs System.ltframework"
 6041	    continue
 6042	    ;;
 6043	  *-*-sco3.2v5* | *-*-sco5v6*)
 6044	    # Causes problems with __ctype
 6045	    test "X$arg" = "X-lc" && continue
 6046	    ;;
 6047	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 6048	    # Compiler inserts libc in the correct place for threads to work
 6049	    test "X$arg" = "X-lc" && continue
 6050	    ;;
 6051	  esac
 6052	elif test "X$arg" = "X-lc_r"; then
 6053	 case $host in
 6054	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 6055	   # Do not include libc_r directly, use -pthread flag.
 6056	   continue
 6057	   ;;
 6058	 esac
 6059	fi
 6060	deplibs="$deplibs $arg"
 6061	continue
 6062	;;
 6063
 6064      -module)
 6065	module=yes
 6066	continue
 6067	;;
 6068
 6069      # Tru64 UNIX uses -model [arg] to determine the layout of C++
 6070      # classes, name mangling, and exception handling.
 6071      # Darwin uses the -arch flag to determine output architecture.
 6072      -model|-arch|-isysroot|--sysroot)
 6073	compiler_flags="$compiler_flags $arg"
 6074	compile_command="$compile_command $arg"
 6075	finalize_command="$finalize_command $arg"
 6076	prev=xcompiler
 6077	continue
 6078	;;
 6079
 6080      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
 6081      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
 6082	compiler_flags="$compiler_flags $arg"
 6083	compile_command="$compile_command $arg"
 6084	finalize_command="$finalize_command $arg"
 6085	case "$new_inherited_linker_flags " in
 6086	    *" $arg "*) ;;
 6087	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
 6088	esac
 6089	continue
 6090	;;
 6091
 6092      -multi_module)
 6093	single_module="${wl}-multi_module"
 6094	continue
 6095	;;
 6096
 6097      -no-fast-install)
 6098	fast_install=no
 6099	continue
 6100	;;
 6101
 6102      -no-install)
 6103	case $host in
 6104	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
 6105	  # The PATH hackery in wrapper scripts is required on Windows
 6106	  # and Darwin in order for the loader to find any dlls it needs.
 6107	  func_warning "\`-no-install' is ignored for $host"
 6108	  func_warning "assuming \`-no-fast-install' instead"
 6109	  fast_install=no
 6110	  ;;
 6111	*) no_install=yes ;;
 6112	esac
 6113	continue
 6114	;;
 6115
 6116      -no-undefined)
 6117	allow_undefined=no
 6118	continue
 6119	;;
 6120
 6121      -objectlist)
 6122	prev=objectlist
 6123	continue
 6124	;;
 6125
 6126      -o) prev=output ;;
 6127
 6128      -precious-files-regex)
 6129	prev=precious_regex
 6130	continue
 6131	;;
 6132
 6133      -release)
 6134	prev=release
 6135	continue
 6136	;;
 6137
 6138      -rpath)
 6139	prev=rpath
 6140	continue
 6141	;;
 6142
 6143      -R)
 6144	prev=xrpath
 6145	continue
 6146	;;
 6147
 6148      -R*)
 6149	func_stripname '-R' '' "$arg"
 6150	dir=$func_stripname_result
 6151	# We need an absolute path.
 6152	case $dir in
 6153	[\\/]* | [A-Za-z]:[\\/]*) ;;
 6154	=*)
 6155	  func_stripname '=' '' "$dir"
 6156	  dir=$lt_sysroot$func_stripname_result
 6157	  ;;
 6158	*)
 6159	  func_fatal_error "only absolute run-paths are allowed"
 6160	  ;;
 6161	esac
 6162	case "$xrpath " in
 6163	*" $dir "*) ;;
 6164	*) xrpath="$xrpath $dir" ;;
 6165	esac
 6166	continue
 6167	;;
 6168
 6169      -shared)
 6170	# The effects of -shared are defined in a previous loop.
 6171	continue
 6172	;;
 6173
 6174      -shrext)
 6175	prev=shrext
 6176	continue
 6177	;;
 6178
 6179      -static | -static-libtool-libs)
 6180	# The effects of -static are defined in a previous loop.
 6181	# We used to do the same as -all-static on platforms that
 6182	# didn't have a PIC flag, but the assumption that the effects
 6183	# would be equivalent was wrong.  It would break on at least
 6184	# Digital Unix and AIX.
 6185	continue
 6186	;;
 6187
 6188      -thread-safe)
 6189	thread_safe=yes
 6190	continue
 6191	;;
 6192
 6193      -version-info)
 6194	prev=vinfo
 6195	continue
 6196	;;
 6197
 6198      -version-number)
 6199	prev=vinfo
 6200	vinfo_number=yes
 6201	continue
 6202	;;
 6203
 6204      -weak)
 6205        prev=weak
 6206	continue
 6207	;;
 6208
 6209      -Wc,*)
 6210	func_stripname '-Wc,' '' "$arg"
 6211	args=$func_stripname_result
 6212	arg=
 6213	save_ifs="$IFS"; IFS=','
 6214	for flag in $args; do
 6215	  IFS="$save_ifs"
 6216          func_quote_for_eval "$flag"
 6217	  arg="$arg $func_quote_for_eval_result"
 6218	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
 6219	done
 6220	IFS="$save_ifs"
 6221	func_stripname ' ' '' "$arg"
 6222	arg=$func_stripname_result
 6223	;;
 6224
 6225      -Wl,*)
 6226	func_stripname '-Wl,' '' "$arg"
 6227	args=$func_stripname_result
 6228	arg=
 6229	save_ifs="$IFS"; IFS=','
 6230	for flag in $args; do
 6231	  IFS="$save_ifs"
 6232          func_quote_for_eval "$flag"
 6233	  arg="$arg $wl$func_quote_for_eval_result"
 6234	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
 6235	  linker_flags="$linker_flags $func_quote_for_eval_result"
 6236	done
 6237	IFS="$save_ifs"
 6238	func_stripname ' ' '' "$arg"
 6239	arg=$func_stripname_result
 6240	;;
 6241
 6242      -Xcompiler)
 6243	prev=xcompiler
 6244	continue
 6245	;;
 6246
 6247      -Xlinker)
 6248	prev=xlinker
 6249	continue
 6250	;;
 6251
 6252      -XCClinker)
 6253	prev=xcclinker
 6254	continue
 6255	;;
 6256
 6257      # -msg_* for osf cc
 6258      -msg_*)
 6259	func_quote_for_eval "$arg"
 6260	arg="$func_quote_for_eval_result"
 6261	;;
 6262
 6263      # Flags to be passed through unchanged, with rationale:
 6264      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
 6265      # -r[0-9][0-9]*        specify processor for the SGI compiler
 6266      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
 6267      # +DA*, +DD*           enable 64-bit mode for the HP compiler
 6268      # -q*                  compiler args for the IBM compiler
 6269      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
 6270      # -F/path              path to uninstalled frameworks, gcc on darwin
 6271      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
 6272      # @file                GCC response files
 6273      # -tp=*                Portland pgcc target processor selection
 6274      # --sysroot=*          for sysroot support
 6275      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
 6276      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
 6277      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
 6278      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
 6279        func_quote_for_eval "$arg"
 6280	arg="$func_quote_for_eval_result"
 6281        compile_command="$compile_command $arg"
 6282        finalize_command="$finalize_command $arg"
 6283        compiler_flags="$compiler_flags $arg"
 6284        continue
 6285        ;;
 6286
 6287      # Some other compiler flag.
 6288      -* | +*)
 6289        func_quote_for_eval "$arg"
 6290	arg="$func_quote_for_eval_result"
 6291	;;
 6292
 6293      *.$objext)
 6294	# A standard object.
 6295	objs="$objs $arg"
 6296	;;
 6297
 6298      *.lo)
 6299	# A libtool-controlled object.
 6300
 6301	# Check to see that this really is a libtool object.
 6302	if func_lalib_unsafe_p "$arg"; then
 6303	  pic_object=
 6304	  non_pic_object=
 6305
 6306	  # Read the .lo file
 6307	  func_source "$arg"
 6308
 6309	  if test -z "$pic_object" ||
 6310	     test -z "$non_pic_object" ||
 6311	     test "$pic_object" = none &&
 6312	     test "$non_pic_object" = none; then
 6313	    func_fatal_error "cannot find name of object for \`$arg'"
 6314	  fi
 6315
 6316	  # Extract subdirectory from the argument.
 6317	  func_dirname "$arg" "/" ""
 6318	  xdir="$func_dirname_result"
 6319
 6320	  if test "$pic_object" != none; then
 6321	    # Prepend the subdirectory the object is found in.
 6322	    pic_object="$xdir$pic_object"
 6323
 6324	    if test "$prev" = dlfiles; then
 6325	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 6326		dlfiles="$dlfiles $pic_object"
 6327		prev=
 6328		continue
 6329	      else
 6330		# If libtool objects are unsupported, then we need to preload.
 6331		prev=dlprefiles
 6332	      fi
 6333	    fi
 6334
 6335	    # CHECK ME:  I think I busted this.  -Ossama
 6336	    if test "$prev" = dlprefiles; then
 6337	      # Preload the old-style object.
 6338	      dlprefiles="$dlprefiles $pic_object"
 6339	      prev=
 6340	    fi
 6341
 6342	    # A PIC object.
 6343	    libobjs="$libobjs $pic_object"
 6344	    arg="$pic_object"
 6345	  fi
 6346
 6347	  # Non-PIC object.
 6348	  if test "$non_pic_object" != none; then
 6349	    # Prepend the subdirectory the object is found in.
 6350	    non_pic_object="$xdir$non_pic_object"
 6351
 6352	    # A standard non-PIC object
 6353	    non_pic_objects="$non_pic_objects $non_pic_object"
 6354	    if test -z "$pic_object" || test "$pic_object" = none ; then
 6355	      arg="$non_pic_object"
 6356	    fi
 6357	  else
 6358	    # If the PIC object exists, use it instead.
 6359	    # $xdir was prepended to $pic_object above.
 6360	    non_pic_object="$pic_object"
 6361	    non_pic_objects="$non_pic_objects $non_pic_object"
 6362	  fi
 6363	else
 6364	  # Only an error if not doing a dry-run.
 6365	  if $opt_dry_run; then
 6366	    # Extract subdirectory from the argument.
 6367	    func_dirname "$arg" "/" ""
 6368	    xdir="$func_dirname_result"
 6369
 6370	    func_lo2o "$arg"
 6371	    pic_object=$xdir$objdir/$func_lo2o_result
 6372	    non_pic_object=$xdir$func_lo2o_result
 6373	    libobjs="$libobjs $pic_object"
 6374	    non_pic_objects="$non_pic_objects $non_pic_object"
 6375	  else
 6376	    func_fatal_error "\`$arg' is not a valid libtool object"
 6377	  fi
 6378	fi
 6379	;;
 6380
 6381      *.$libext)
 6382	# An archive.
 6383	deplibs="$deplibs $arg"
 6384	old_deplibs="$old_deplibs $arg"
 6385	continue
 6386	;;
 6387
 6388      *.la)
 6389	# A libtool-controlled library.
 6390
 6391	func_resolve_sysroot "$arg"
 6392	if test "$prev" = dlfiles; then
 6393	  # This library was specified with -dlopen.
 6394	  dlfiles="$dlfiles $func_resolve_sysroot_result"
 6395	  prev=
 6396	elif test "$prev" = dlprefiles; then
 6397	  # The library was specified with -dlpreopen.
 6398	  dlprefiles="$dlprefiles $func_resolve_sysroot_result"
 6399	  prev=
 6400	else
 6401	  deplibs="$deplibs $func_resolve_sysroot_result"
 6402	fi
 6403	continue
 6404	;;
 6405
 6406      # Some other compiler argument.
 6407      *)
 6408	# Unknown arguments in both finalize_command and compile_command need
 6409	# to be aesthetically quoted because they are evaled later.
 6410	func_quote_for_eval "$arg"
 6411	arg="$func_quote_for_eval_result"
 6412	;;
 6413      esac # arg
 6414
 6415      # Now actually substitute the argument into the commands.
 6416      if test -n "$arg"; then
 6417	compile_command="$compile_command $arg"
 6418	finalize_command="$finalize_command $arg"
 6419      fi
 6420    done # argument parsing loop
 6421
 6422    test -n "$prev" && \
 6423      func_fatal_help "the \`$prevarg' option requires an argument"
 6424
 6425    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
 6426      eval arg=\"$export_dynamic_flag_spec\"
 6427      compile_command="$compile_command $arg"
 6428      finalize_command="$finalize_command $arg"
 6429    fi
 6430
 6431    oldlibs=
 6432    # calculate the name of the file, without its directory
 6433    func_basename "$output"
 6434    outputname="$func_basename_result"
 6435    libobjs_save="$libobjs"
 6436
 6437    if test -n "$shlibpath_var"; then
 6438      # get the directories listed in $shlibpath_var
 6439      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
 6440    else
 6441      shlib_search_path=
 6442    fi
 6443    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
 6444    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 6445
 6446    func_dirname "$output" "/" ""
 6447    output_objdir="$func_dirname_result$objdir"
 6448    func_to_tool_file "$output_objdir/"
 6449    tool_output_objdir=$func_to_tool_file_result
 6450    # Create the object directory.
 6451    func_mkdir_p "$output_objdir"
 6452
 6453    # Determine the type of output
 6454    case $output in
 6455    "")
 6456      func_fatal_help "you must specify an output file"
 6457      ;;
 6458    *.$libext) linkmode=oldlib ;;
 6459    *.lo | *.$objext) linkmode=obj ;;
 6460    *.la) linkmode=lib ;;
 6461    *) linkmode=prog ;; # Anything else should be a program.
 6462    esac
 6463
 6464    specialdeplibs=
 6465
 6466    libs=
 6467    # Find all interdependent deplibs by searching for libraries
 6468    # that are linked more than once (e.g. -la -lb -la)
 6469    for deplib in $deplibs; do
 6470      if $opt_preserve_dup_deps ; then
 6471	case "$libs " in
 6472	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 6473	esac
 6474      fi
 6475      libs="$libs $deplib"
 6476    done
 6477
 6478    if test "$linkmode" = lib; then
 6479      libs="$predeps $libs $compiler_lib_search_path $postdeps"
 6480
 6481      # Compute libraries that are listed more than once in $predeps
 6482      # $postdeps and mark them as special (i.e., whose duplicates are
 6483      # not to be eliminated).
 6484      pre_post_deps=
 6485      if $opt_duplicate_compiler_generated_deps; then
 6486	for pre_post_dep in $predeps $postdeps; do
 6487	  case "$pre_post_deps " in
 6488	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
 6489	  esac
 6490	  pre_post_deps="$pre_post_deps $pre_post_dep"
 6491	done
 6492      fi
 6493      pre_post_deps=
 6494    fi
 6495
 6496    deplibs=
 6497    newdependency_libs=
 6498    newlib_search_path=
 6499    need_relink=no # whether we're linking any uninstalled libtool libraries
 6500    notinst_deplibs= # not-installed libtool libraries
 6501    notinst_path= # paths that contain not-installed libtool libraries
 6502
 6503    case $linkmode in
 6504    lib)
 6505	passes="conv dlpreopen link"
 6506	for file in $dlfiles $dlprefiles; do
 6507	  case $file in
 6508	  *.la) ;;
 6509	  *)
 6510	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
 6511	    ;;
 6512	  esac
 6513	done
 6514	;;
 6515    prog)
 6516	compile_deplibs=
 6517	finalize_deplibs=
 6518	alldeplibs=no
 6519	newdlfiles=
 6520	newdlprefiles=
 6521	passes="conv scan dlopen dlpreopen link"
 6522	;;
 6523    *)  passes="conv"
 6524	;;
 6525    esac
 6526
 6527    for pass in $passes; do
 6528      # The preopen pass in lib mode reverses $deplibs; put it back here
 6529      # so that -L comes before libs that need it for instance...
 6530      if test "$linkmode,$pass" = "lib,link"; then
 6531	## FIXME: Find the place where the list is rebuilt in the wrong
 6532	##        order, and fix it there properly
 6533        tmp_deplibs=
 6534	for deplib in $deplibs; do
 6535	  tmp_deplibs="$deplib $tmp_deplibs"
 6536	done
 6537	deplibs="$tmp_deplibs"
 6538      fi
 6539
 6540      if test "$linkmode,$pass" = "lib,link" ||
 6541	 test "$linkmode,$pass" = "prog,scan"; then
 6542	libs="$deplibs"
 6543	deplibs=
 6544      fi
 6545      if test "$linkmode" = prog; then
 6546	case $pass in
 6547	dlopen) libs="$dlfiles" ;;
 6548	dlpreopen) libs="$dlprefiles" ;;
 6549	link)
 6550	  libs="$deplibs %DEPLIBS%"
 6551	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
 6552	  ;;
 6553	esac
 6554      fi
 6555      if test "$linkmode,$pass" = "lib,dlpreopen"; then
 6556	# Collect and forward deplibs of preopened libtool libs
 6557	for lib in $dlprefiles; do
 6558	  # Ignore non-libtool-libs
 6559	  dependency_libs=
 6560	  func_resolve_sysroot "$lib"
 6561	  case $lib in
 6562	  *.la)	func_source "$func_resolve_sysroot_result" ;;
 6563	  esac
 6564
 6565	  # Collect preopened libtool deplibs, except any this library
 6566	  # has declared as weak libs
 6567	  for deplib in $dependency_libs; do
 6568	    func_basename "$deplib"
 6569            deplib_base=$func_basename_result
 6570	    case " $weak_libs " in
 6571	    *" $deplib_base "*) ;;
 6572	    *) deplibs="$deplibs $deplib" ;;
 6573	    esac
 6574	  done
 6575	done
 6576	libs="$dlprefiles"
 6577      fi
 6578      if test "$pass" = dlopen; then
 6579	# Collect dlpreopened libraries
 6580	save_deplibs="$deplibs"
 6581	deplibs=
 6582      fi
 6583
 6584      for deplib in $libs; do
 6585	lib=
 6586	found=no
 6587	case $deplib in
 6588	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
 6589        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
 6590	  if test "$linkmode,$pass" = "prog,link"; then
 6591	    compile_deplibs="$deplib $compile_deplibs"
 6592	    finalize_deplibs="$deplib $finalize_deplibs"
 6593	  else
 6594	    compiler_flags="$compiler_flags $deplib"
 6595	    if test "$linkmode" = lib ; then
 6596		case "$new_inherited_linker_flags " in
 6597		    *" $deplib "*) ;;
 6598		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 6599		esac
 6600	    fi
 6601	  fi
 6602	  continue
 6603	  ;;
 6604	-l*)
 6605	  if test "$linkmode" != lib && test "$linkmode" != prog; then
 6606	    func_warning "\`-l' is ignored for archives/objects"
 6607	    continue
 6608	  fi
 6609	  func_stripname '-l' '' "$deplib"
 6610	  name=$func_stripname_result
 6611	  if test "$linkmode" = lib; then
 6612	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
 6613	  else
 6614	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
 6615	  fi
 6616	  for searchdir in $searchdirs; do
 6617	    for search_ext in .la $std_shrext .so .a; do
 6618	      # Search the libtool library
 6619	      lib="$searchdir/lib${name}${search_ext}"
 6620	      if test -f "$lib"; then
 6621		if test "$search_ext" = ".la"; then
 6622		  found=yes
 6623		else
 6624		  found=no
 6625		fi
 6626		break 2
 6627	      fi
 6628	    done
 6629	  done
 6630	  if test "$found" != yes; then
 6631	    # deplib doesn't seem to be a libtool library
 6632	    if test "$linkmode,$pass" = "prog,link"; then
 6633	      compile_deplibs="$deplib $compile_deplibs"
 6634	      finalize_deplibs="$deplib $finalize_deplibs"
 6635	    else
 6636	      deplibs="$deplib $deplibs"
 6637	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 6638	    fi
 6639	    continue
 6640	  else # deplib is a libtool library
 6641	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
 6642	    # We need to do some special things here, and not later.
 6643	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 6644	      case " $predeps $postdeps " in
 6645	      *" $deplib "*)
 6646		if func_lalib_p "$lib"; then
 6647		  library_names=
 6648		  old_library=
 6649		  func_source "$lib"
 6650		  for l in $old_library $library_names; do
 6651		    ll="$l"
 6652		  done
 6653		  if test "X$ll" = "X$old_library" ; then # only static version available
 6654		    found=no
 6655		    func_dirname "$lib" "" "."
 6656		    ladir="$func_dirname_result"
 6657		    lib=$ladir/$old_library
 6658		    if test "$linkmode,$pass" = "prog,link"; then
 6659		      compile_deplibs="$deplib $compile_deplibs"
 6660		      finalize_deplibs="$deplib $finalize_deplibs"
 6661		    else
 6662		      deplibs="$deplib $deplibs"
 6663		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 6664		    fi
 6665		    continue
 6666		  fi
 6667		fi
 6668		;;
 6669	      *) ;;
 6670	      esac
 6671	    fi
 6672	  fi
 6673	  ;; # -l
 6674	*.ltframework)
 6675	  if test "$linkmode,$pass" = "prog,link"; then
 6676	    compile_deplibs="$deplib $compile_deplibs"
 6677	    finalize_deplibs="$deplib $finalize_deplibs"
 6678	  else
 6679	    deplibs="$deplib $deplibs"
 6680	    if test "$linkmode" = lib ; then
 6681		case "$new_inherited_linker_flags " in
 6682		    *" $deplib "*) ;;
 6683		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 6684		esac
 6685	    fi
 6686	  fi
 6687	  continue
 6688	  ;;
 6689	-L*)
 6690	  case $linkmode in
 6691	  lib)
 6692	    deplibs="$deplib $deplibs"
 6693	    test "$pass" = conv && continue
 6694	    newdependency_libs="$deplib $newdependency_libs"
 6695	    func_stripname '-L' '' "$deplib"
 6696	    func_resolve_sysroot "$func_stripname_result"
 6697	    newlib_search_path="$newlib_search_path $func_resolve_sysroot_result"
 6698	    ;;
 6699	  prog)
 6700	    if test "$pass" = conv; then
 6701	      deplibs="$deplib $deplibs"
 6702	      continue
 6703	    fi
 6704	    if test "$pass" = scan; then
 6705	      deplibs="$deplib $deplibs"
 6706	    else
 6707	      compile_deplibs="$deplib $compile_deplibs"
 6708	      finalize_deplibs="$deplib $finalize_deplibs"
 6709	    fi
 6710	    func_stripname '-L' '' "$deplib"
 6711	    func_resolve_sysroot "$func_stripname_result"
 6712	    newlib_search_path="$newlib_search_path $func_resolve_sysroot_result"
 6713	    ;;
 6714	  *)
 6715	    func_warning "\`-L' is ignored for archives/objects"
 6716	    ;;
 6717	  esac # linkmode
 6718	  continue
 6719	  ;; # -L
 6720	-R*)
 6721	  if test "$pass" = link; then
 6722	    func_stripname '-R' '' "$deplib"
 6723	    func_resolve_sysroot "$func_stripname_result"
 6724	    dir=$func_resolve_sysroot_result
 6725	    # Make sure the xrpath contains only unique directories.
 6726	    case "$xrpath " in
 6727	    *" $dir "*) ;;
 6728	    *) xrpath="$xrpath $dir" ;;
 6729	    esac
 6730	  fi
 6731	  deplibs="$deplib $deplibs"
 6732	  continue
 6733	  ;;
 6734	*.la)
 6735	  func_resolve_sysroot "$deplib"
 6736	  lib=$func_resolve_sysroot_result
 6737	  ;;
 6738	*.$libext)
 6739	  if test "$pass" = conv; then
 6740	    deplibs="$deplib $deplibs"
 6741	    continue
 6742	  fi
 6743	  case $linkmode in
 6744	  lib)
 6745	    # Linking convenience modules into shared libraries is allowed,
 6746	    # but linking other static libraries is non-portable.
 6747	    case " $dlpreconveniencelibs " in
 6748	    *" $deplib "*) ;;
 6749	    *)
 6750	      valid_a_lib=no
 6751	      case $deplibs_check_method in
 6752		match_pattern*)
 6753		  set dummy $deplibs_check_method; shift
 6754		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 6755		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
 6756		    | $EGREP "$match_pattern_regex" > /dev/null; then
 6757		    valid_a_lib=yes
 6758		  fi
 6759		;;
 6760		pass_all)
 6761		  valid_a_lib=yes
 6762		;;
 6763	      esac
 6764	      if test "$valid_a_lib" != yes; then
 6765		echo
 6766		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
 6767		echo "*** I have the capability to make that library automatically link in when"
 6768		echo "*** you link to this library.  But I can only do this if you have a"
 6769		echo "*** shared version of the library, which you do not appear to have"
 6770		echo "*** because the file extensions .$libext of this argument makes me believe"
 6771		echo "*** that it is just a static archive that I should not use here."
 6772	      else
 6773		echo
 6774		$ECHO "*** Warning: Linking the shared library $output against the"
 6775		$ECHO "*** static library $deplib is not portable!"
 6776		deplibs="$deplib $deplibs"
 6777	      fi
 6778	      ;;
 6779	    esac
 6780	    continue
 6781	    ;;
 6782	  prog)
 6783	    if test "$pass" != link; then
 6784	      deplibs="$deplib $deplibs"
 6785	    else
 6786	      compile_deplibs="$deplib $compile_deplibs"
 6787	      finalize_deplibs="$deplib $finalize_deplibs"
 6788	    fi
 6789	    continue
 6790	    ;;
 6791	  esac # linkmode
 6792	  ;; # *.$libext
 6793	*.lo | *.$objext)
 6794	  if test "$pass" = conv; then
 6795	    deplibs="$deplib $deplibs"
 6796	  elif test "$linkmode" = prog; then
 6797	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
 6798	      # If there is no dlopen support or we're linking statically,
 6799	      # we need to preload.
 6800	      newdlprefiles="$newdlprefiles $deplib"
 6801	      compile_deplibs="$deplib $compile_deplibs"
 6802	      finalize_deplibs="$deplib $finalize_deplibs"
 6803	    else
 6804	      newdlfiles="$newdlfiles $deplib"
 6805	    fi
 6806	  fi
 6807	  continue
 6808	  ;;
 6809	%DEPLIBS%)
 6810	  alldeplibs=yes
 6811	  continue
 6812	  ;;
 6813	esac # case $deplib
 6814
 6815	if test "$found" = yes || test -f "$lib"; then :
 6816	else
 6817	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
 6818	fi
 6819
 6820	# Check to see that this really is a libtool archive.
 6821	func_lalib_unsafe_p "$lib" \
 6822	  || func_fatal_error "\`$lib' is not a valid libtool archive"
 6823
 6824	func_dirname "$lib" "" "."
 6825	ladir="$func_dirname_result"
 6826
 6827	dlname=
 6828	dlopen=
 6829	dlpreopen=
 6830	libdir=
 6831	library_names=
 6832	old_library=
 6833	inherited_linker_flags=
 6834	# If the library was installed with an old release of libtool,
 6835	# it will not redefine variables installed, or shouldnotlink
 6836	installed=yes
 6837	shouldnotlink=no
 6838	avoidtemprpath=
 6839
 6840
 6841	# Read the .la file
 6842	func_source "$lib"
 6843
 6844	# Convert "-framework foo" to "foo.ltframework"
 6845	if test -n "$inherited_linker_flags"; then
 6846	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
 6847	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
 6848	    case " $new_inherited_linker_flags " in
 6849	      *" $tmp_inherited_linker_flag "*) ;;
 6850	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
 6851	    esac
 6852	  done
 6853	fi
 6854	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 6855	if test "$linkmode,$pass" = "lib,link" ||
 6856	   test "$linkmode,$pass" = "prog,scan" ||
 6857	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
 6858	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
 6859	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
 6860	fi
 6861
 6862	if test "$pass" = conv; then
 6863	  # Only check for convenience libraries
 6864	  deplibs="$lib $deplibs"
 6865	  if test -z "$libdir"; then
 6866	    if test -z "$old_library"; then
 6867	      func_fatal_error "cannot find name of link library for \`$lib'"
 6868	    fi
 6869	    # It is a libtool convenience library, so add in its objects.
 6870	    convenience="$convenience $ladir/$objdir/$old_library"
 6871	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
 6872	    tmp_libs=
 6873	    for deplib in $dependency_libs; do
 6874	      deplibs="$deplib $deplibs"
 6875	      if $opt_preserve_dup_deps ; then
 6876		case "$tmp_libs " in
 6877		*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 6878		esac
 6879	      fi
 6880	      tmp_libs="$tmp_libs $deplib"
 6881	    done
 6882	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 6883	    func_fatal_error "\`$lib' is not a convenience library"
 6884	  fi
 6885	  continue
 6886	fi # $pass = conv
 6887
 6888
 6889	# Get the name of the library we link against.
 6890	linklib=
 6891	if test -n "$old_library" &&
 6892	   { test "$prefer_static_libs" = yes ||
 6893	     test "$prefer_static_libs,$installed" = "built,no"; }; then
 6894	  linklib=$old_library
 6895	else
 6896	  for l in $old_library $library_names; do
 6897	    linklib="$l"
 6898	  done
 6899	fi
 6900	if test -z "$linklib"; then
 6901	  func_fatal_error "cannot find name of link library for \`$lib'"
 6902	fi
 6903
 6904	# This library was specified with -dlopen.
 6905	if test "$pass" = dlopen; then
 6906	  if test -z "$libdir"; then
 6907	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
 6908	  fi
 6909	  if test -z "$dlname" ||
 6910	     test "$dlopen_support" != yes ||
 6911	     test "$build_libtool_libs" = no; then
 6912	    # If there is no dlname, no dlopen support or we're linking
 6913	    # statically, we need to preload.  We also need to preload any
 6914	    # dependent libraries so libltdl's deplib preloader doesn't
 6915	    # bomb out in the load deplibs phase.
 6916	    dlprefiles="$dlprefiles $lib $dependency_libs"
 6917	  else
 6918	    newdlfiles="$newdlfiles $lib"
 6919	  fi
 6920	  continue
 6921	fi # $pass = dlopen
 6922
 6923	# We need an absolute path.
 6924	case $ladir in
 6925	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
 6926	*)
 6927	  abs_ladir=`cd "$ladir" && pwd`
 6928	  if test -z "$abs_ladir"; then
 6929	    func_warning "cannot determine absolute directory name of \`$ladir'"
 6930	    func_warning "passing it literally to the linker, although it might fail"
 6931	    abs_ladir="$ladir"
 6932	  fi
 6933	  ;;
 6934	esac
 6935	func_basename "$lib"
 6936	laname="$func_basename_result"
 6937
 6938	# Find the relevant object directory and library name.
 6939	if test "X$installed" = Xyes; then
 6940	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 6941	    func_warning "library \`$lib' was moved."
 6942	    dir="$ladir"
 6943	    absdir="$abs_ladir"
 6944	    libdir="$abs_ladir"
 6945	  else
 6946	    dir="$lt_sysroot$libdir"
 6947	    absdir="$lt_sysroot$libdir"
 6948	  fi
 6949	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
 6950	else
 6951	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 6952	    dir="$ladir"
 6953	    absdir="$abs_ladir"
 6954	    # Remove this search path later
 6955	    notinst_path="$notinst_path $abs_ladir"
 6956	  else
 6957	    dir="$ladir/$objdir"
 6958	    absdir="$abs_ladir/$objdir"
 6959	    # Remove this search path later
 6960	    notinst_path="$notinst_path $abs_ladir"
 6961	  fi
 6962	fi # $installed = yes
 6963	func_stripname 'lib' '.la' "$laname"
 6964	name=$func_stripname_result
 6965
 6966	# This library was specified with -dlpreopen.
 6967	if test "$pass" = dlpreopen; then
 6968	  if test -z "$libdir" && test "$linkmode" = prog; then
 6969	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
 6970	  fi
 6971	  case "$host" in
 6972	    # special handling for platforms with PE-DLLs.
 6973	    *cygwin* | *mingw* | *cegcc* )
 6974	      # Linker will automatically link against shared library if both
 6975	      # static and shared are present.  Therefore, ensure we extract
 6976	      # symbols from the import library if a shared library is present
 6977	      # (otherwise, the dlopen module name will be incorrect).  We do
 6978	      # this by putting the import library name into $newdlprefiles.
 6979	      # We recover the dlopen module name by 'saving' the la file
 6980	      # name in a special purpose variable, and (later) extracting the
 6981	      # dlname from the la file.
 6982	      if test -n "$dlname"; then
 6983	        func_tr_sh "$dir/$linklib"
 6984	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
 6985	        newdlprefiles="$newdlprefiles $dir/$linklib"
 6986	      else
 6987	        newdlprefiles="$newdlprefiles $dir/$old_library"
 6988	        # Keep a list of preopened convenience libraries to check
 6989	        # that they are being used correctly in the link pass.
 6990	        test -z "$libdir" && \
 6991	          dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
 6992	      fi
 6993	    ;;
 6994	    * )
 6995	      # Prefer using a static library (so that no silly _DYNAMIC symbols
 6996	      # are required to link).
 6997	      if test -n "$old_library"; then
 6998	        newdlprefiles="$newdlprefiles $dir/$old_library"
 6999	        # Keep a list of preopened convenience libraries to check
 7000	        # that they are being used correctly in the link pass.
 7001	        test -z "$libdir" && \
 7002	          dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
 7003	      # Otherwise, use the dlname, so that lt_dlopen finds it.
 7004	      elif test -n "$dlname"; then
 7005	        newdlprefiles="$newdlprefiles $dir/$dlname"
 7006	      else
 7007	        newdlprefiles="$newdlprefiles $dir/$linklib"
 7008	      fi
 7009	    ;;
 7010	  esac
 7011	fi # $pass = dlpreopen
 7012
 7013	if test -z "$libdir"; then
 7014	  # Link the convenience library
 7015	  if test "$linkmode" = lib; then
 7016	    deplibs="$dir/$old_library $deplibs"
 7017	  elif test "$linkmode,$pass" = "prog,link"; then
 7018	    compile_deplibs="$dir/$old_library $compile_deplibs"
 7019	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
 7020	  else
 7021	    deplibs="$lib $deplibs" # used for prog,scan pass
 7022	  fi
 7023	  continue
 7024	fi
 7025
 7026
 7027	if test "$linkmode" = prog && test "$pass" != link; then
 7028	  newlib_search_path="$newlib_search_path $ladir"
 7029	  deplibs="$lib $deplibs"
 7030
 7031	  linkalldeplibs=no
 7032	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
 7033	     test "$build_libtool_libs" = no; then
 7034	    linkalldeplibs=yes
 7035	  fi
 7036
 7037	  tmp_libs=
 7038	  for deplib in $dependency_libs; do
 7039	    case $deplib in
 7040	    -L*) func_stripname '-L' '' "$deplib"
 7041	         func_resolve_sysroot "$func_stripname_result"
 7042	         newlib_search_path="$newlib_search_path $func_resolve_sysroot_result"
 7043		 ;;
 7044	    esac
 7045	    # Need to link against all dependency_libs?
 7046	    if test "$linkalldeplibs" = yes; then
 7047	      deplibs="$deplib $deplibs"
 7048	    else
 7049	      # Need to hardcode shared library paths
 7050	      # or/and link against static libraries
 7051	      newdependency_libs="$deplib $newdependency_libs"
 7052	    fi
 7053	    if $opt_preserve_dup_deps ; then
 7054	      case "$tmp_libs " in
 7055	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 7056	      esac
 7057	    fi
 7058	    tmp_libs="$tmp_libs $deplib"
 7059	  done # for deplib
 7060	  continue
 7061	fi # $linkmode = prog...
 7062
 7063	if test "$linkmode,$pass" = "prog,link"; then
 7064	  if test -n "$library_names" &&
 7065	     { { test "$prefer_static_libs" = no ||
 7066	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
 7067	       test -z "$old_library"; }; then
 7068	    # We need to hardcode the library path
 7069	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
 7070	      # Make sure the rpath contains only unique directories.
 7071	      case "$temp_rpath:" in
 7072	      *"$absdir:"*) ;;
 7073	      *) temp_rpath="$temp_rpath$absdir:" ;;
 7074	      esac
 7075	    fi
 7076
 7077	    # Hardcode the library path.
 7078	    # Skip directories that are in the system default run-time
 7079	    # search path.
 7080	    case " $sys_lib_dlsearch_path " in
 7081	    *" $absdir "*) ;;
 7082	    *)
 7083	      case "$compile_rpath " in
 7084	      *" $absdir "*) ;;
 7085	      *) compile_rpath="$compile_rpath $absdir" ;;
 7086	      esac
 7087	      ;;
 7088	    esac
 7089	    case " $sys_lib_dlsearch_path " in
 7090	    *" $libdir "*) ;;
 7091	    *)
 7092	      case "$finalize_rpath " in
 7093	      *" $libdir "*) ;;
 7094	      *) finalize_rpath="$finalize_rpath $libdir" ;;
 7095	      esac
 7096	      ;;
 7097	    esac
 7098	  fi # $linkmode,$pass = prog,link...
 7099
 7100	  if test "$alldeplibs" = yes &&
 7101	     { test "$deplibs_check_method" = pass_all ||
 7102	       { test "$build_libtool_libs" = yes &&
 7103		 test -n "$library_names"; }; }; then
 7104	    # We only need to search for static libraries
 7105	    continue
 7106	  fi
 7107	fi
 7108
 7109	link_static=no # Whether the deplib will be linked statically
 7110	use_static_libs=$prefer_static_libs
 7111	if test "$use_static_libs" = built && test "$installed" = yes; then
 7112	  use_static_libs=no
 7113	fi
 7114	if test -n "$library_names" &&
 7115	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
 7116	  case $host in
 7117	  *cygwin* | *mingw* | *cegcc*)
 7118	      # No point in relinking DLLs because paths are not encoded
 7119	      notinst_deplibs="$notinst_deplibs $lib"
 7120	      need_relink=no
 7121	    ;;
 7122	  *)
 7123	    if test "$installed" = no; then
 7124	      notinst_deplibs="$notinst_deplibs $lib"
 7125	      need_relink=yes
 7126	    fi
 7127	    ;;
 7128	  esac
 7129	  # This is a shared library
 7130
 7131	  # Warn about portability, can't link against -module's on some
 7132	  # systems (darwin).  Don't bleat about dlopened modules though!
 7133	  dlopenmodule=""
 7134	  for dlpremoduletest in $dlprefiles; do
 7135	    if test "X$dlpremoduletest" = "X$lib"; then
 7136	      dlopenmodule="$dlpremoduletest"
 7137	      break
 7138	    fi
 7139	  done
 7140	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
 7141	    echo
 7142	    if test "$linkmode" = prog; then
 7143	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
 7144	    else
 7145	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
 7146	    fi
 7147	    $ECHO "*** $linklib is not portable!"
 7148	  fi
 7149	  if test "$linkmode" = lib &&
 7150	     test "$hardcode_into_libs" = yes; then
 7151	    # Hardcode the library path.
 7152	    # Skip directories that are in the system default run-time
 7153	    # search path.
 7154	    case " $sys_lib_dlsearch_path " in
 7155	    *" $absdir "*) ;;
 7156	    *)
 7157	      case "$compile_rpath " in
 7158	      *" $absdir "*) ;;
 7159	      *) compile_rpath="$compile_rpath $absdir" ;;
 7160	      esac
 7161	      ;;
 7162	    esac
 7163	    case " $sys_lib_dlsearch_path " in
 7164	    *" $libdir "*) ;;
 7165	    *)
 7166	      case "$finalize_rpath " in
 7167	      *" $libdir "*) ;;
 7168	      *) finalize_rpath="$finalize_rpath $libdir" ;;
 7169	      esac
 7170	      ;;
 7171	    esac
 7172	  fi
 7173
 7174	  if test -n "$old_archive_from_expsyms_cmds"; then
 7175	    # figure out the soname
 7176	    set dummy $library_names
 7177	    shift
 7178	    realname="$1"
 7179	    shift
 7180	    libname=`eval "\\$ECHO \"$libname_spec\""`
 7181	    # use dlname if we got it. it's perfectly good, no?
 7182	    if test -n "$dlname"; then
 7183	      soname="$dlname"
 7184	    elif test -n "$soname_spec"; then
 7185	      # bleh windows
 7186	      case $host in
 7187	      *cygwin* | mingw* | *cegcc*)
 7188	        func_arith $current - $age
 7189		major=$func_arith_result
 7190		versuffix="-$major"
 7191		;;
 7192	      esac
 7193	      eval soname=\"$soname_spec\"
 7194	    else
 7195	      soname="$realname"
 7196	    fi
 7197
 7198	    # Make a new name for the extract_expsyms_cmds to use
 7199	    soroot="$soname"
 7200	    func_basename "$soroot"
 7201	    soname="$func_basename_result"
 7202	    func_stripname 'lib' '.dll' "$soname"
 7203	    newlib=libimp-$func_stripname_result.a
 7204
 7205	    # If the library has no export list, then create one now
 7206	    if test -f "$output_objdir/$soname-def"; then :
 7207	    else
 7208	      func_verbose "extracting exported symbol list from \`$soname'"
 7209	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
 7210	    fi
 7211
 7212	    # Create $newlib
 7213	    if test -f "$output_objdir/$newlib"; then :; else
 7214	      func_verbose "generating import library for \`$soname'"
 7215	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
 7216	    fi
 7217	    # make sure the library variables are pointing to the new library
 7218	    dir=$output_objdir
 7219	    linklib=$newlib
 7220	  fi # test -n "$old_archive_from_expsyms_cmds"
 7221
 7222	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
 7223	    add_shlibpath=
 7224	    add_dir=
 7225	    add=
 7226	    lib_linked=yes
 7227	    case $hardcode_action in
 7228	    immediate | unsupported)
 7229	      if test "$hardcode_direct" = no; then
 7230		add="$dir/$linklib"
 7231		case $host in
 7232		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
 7233		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
 7234		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
 7235		    *-*-unixware7*) add_dir="-L$dir" ;;
 7236		  *-*-darwin* )
 7237		    # if the lib is a (non-dlopened) module then we can not
 7238		    # link against it, someone is ignoring the earlier warnings
 7239		    if /usr/bin/file -L $add 2> /dev/null |
 7240			 $GREP ": [^:]* bundle" >/dev/null ; then
 7241		      if test "X$dlopenmodule" != "X$lib"; then
 7242			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
 7243			if test -z "$old_library" ; then
 7244			  echo
 7245			  echo "*** And there doesn't seem to be a static archive available"
 7246			  echo "*** The link will probably fail, sorry"
 7247			else
 7248			  add="$dir/$old_library"
 7249			fi
 7250		      elif test -n "$old_library"; then
 7251			add="$dir/$old_library"
 7252		      fi
 7253		    fi
 7254		esac
 7255	      elif test "$hardcode_minus_L" = no; then
 7256		case $host in
 7257		*-*-sunos*) add_shlibpath="$dir" ;;
 7258		esac
 7259		add_dir="-L$dir"
 7260		add="-l$name"
 7261	      elif test "$hardcode_shlibpath_var" = no; then
 7262		add_shlibpath="$dir"
 7263		add="-l$name"
 7264	      else
 7265		lib_linked=no
 7266	      fi
 7267	      ;;
 7268	    relink)
 7269	      if test "$hardcode_direct" = yes &&
 7270	         test "$hardcode_direct_absolute" = no; then
 7271		add="$dir/$linklib"
 7272	      elif test "$hardcode_minus_L" = yes; then
 7273		add_dir="-L$absdir"
 7274		# Try looking first in the location we're being installed to.
 7275		if test -n "$inst_prefix_dir"; then
 7276		  case $libdir in
 7277		    [\\/]*)
 7278		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
 7279		      ;;
 7280		  esac
 7281		fi
 7282		add="-l$name"
 7283	      elif test "$hardcode_shlibpath_var" = yes; then
 7284		add_shlibpath="$dir"
 7285		add="-l$name"
 7286	      else
 7287		lib_linked=no
 7288	      fi
 7289	      ;;
 7290	    *) lib_linked=no ;;
 7291	    esac
 7292
 7293	    if test "$lib_linked" != yes; then
 7294	      func_fatal_configuration "unsupported hardcode properties"
 7295	    fi
 7296
 7297	    if test -n "$add_shlibpath"; then
 7298	      case :$compile_shlibpath: in
 7299	      *":$add_shlibpath:"*) ;;
 7300	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
 7301	      esac
 7302	    fi
 7303	    if test "$linkmode" = prog; then
 7304	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
 7305	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
 7306	    else
 7307	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
 7308	      test -n "$add" && deplibs="$add $deplibs"
 7309	      if test "$hardcode_direct" != yes &&
 7310		 test "$hardcode_minus_L" != yes &&
 7311		 test "$hardcode_shlibpath_var" = yes; then
 7312		case :$finalize_shlibpath: in
 7313		*":$libdir:"*) ;;
 7314		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 7315		esac
 7316	      fi
 7317	    fi
 7318	  fi
 7319
 7320	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
 7321	    add_shlibpath=
 7322	    add_dir=
 7323	    add=
 7324	    # Finalize command for both is simple: just hardcode it.
 7325	    if test "$hardcode_direct" = yes &&
 7326	       test "$hardcode_direct_absolute" = no; then
 7327	      add="$libdir/$linklib"
 7328	    elif test "$hardcode_minus_L" = yes; then
 7329	      add_dir="-L$libdir"
 7330	      add="-l$name"
 7331	    elif test "$hardcode_shlibpath_var" = yes; then
 7332	      case :$finalize_shlibpath: in
 7333	      *":$libdir:"*) ;;
 7334	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 7335	      esac
 7336	      add="-l$name"
 7337	    elif test "$hardcode_automatic" = yes; then
 7338	      if test -n "$inst_prefix_dir" &&
 7339		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
 7340		add="$inst_prefix_dir$libdir/$linklib"
 7341	      else
 7342		add="$libdir/$linklib"
 7343	      fi
 7344	    else
 7345	      # We cannot seem to hardcode it, guess we'll fake it.
 7346	      add_dir="-L$libdir"
 7347	      # Try looking first in the location we're being installed to.
 7348	      if test -n "$inst_prefix_dir"; then
 7349		case $libdir in
 7350		  [\\/]*)
 7351		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
 7352		    ;;
 7353		esac
 7354	      fi
 7355	      add="-l$name"
 7356	    fi
 7357
 7358	    if test "$linkmode" = prog; then
 7359	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
 7360	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
 7361	    else
 7362	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
 7363	      test -n "$add" && deplibs="$add $deplibs"
 7364	    fi
 7365	  fi
 7366	elif test "$linkmode" = prog; then
 7367	  # Here we assume that one of hardcode_direct or hardcode_minus_L
 7368	  # is not unsupported.  This is valid on all known static and
 7369	  # shared platforms.
 7370	  if test "$hardcode_direct" != unsupported; then
 7371	    test -n "$old_library" && linklib="$old_library"
 7372	    compile_deplibs="$dir/$linklib $compile_deplibs"
 7373	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
 7374	  else
 7375	    compile_deplibs="-l$name -L$dir $compile_deplibs"
 7376	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
 7377	  fi
 7378	elif test "$build_libtool_libs" = yes; then
 7379	  # Not a shared library
 7380	  if test "$deplibs_check_method" != pass_all; then
 7381	    # We're trying link a shared library against a static one
 7382	    # but the system doesn't support it.
 7383
 7384	    # Just print a warning and add the library to dependency_libs so
 7385	    # that the program can be linked against the static library.
 7386	    echo
 7387	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
 7388	    echo "*** I have the capability to make that library automatically link in when"
 7389	    echo "*** you link to this library.  But I can only do this if you have a"
 7390	    echo "*** shared version of the library, which you do not appear to have."
 7391	    if test "$module" = yes; then
 7392	      echo "*** But as you try to build a module library, libtool will still create "
 7393	      echo "*** a static module, that should work as long as the dlopening application"
 7394	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
 7395	      if test -z "$global_symbol_pipe"; then
 7396		echo
 7397		echo "*** However, this would only work if libtool was able to extract symbol"
 7398		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 7399		echo "*** not find such a program.  So, this module is probably useless."
 7400		echo "*** \`nm' from GNU binutils and a full rebuild may help."
 7401	      fi
 7402	      if test "$build_old_libs" = no; then
 7403		build_libtool_libs=module
 7404		build_old_libs=yes
 7405	      else
 7406		build_libtool_libs=no
 7407	      fi
 7408	    fi
 7409	  else
 7410	    deplibs="$dir/$old_library $deplibs"
 7411	    link_static=yes
 7412	  fi
 7413	fi # link shared/static library?
 7414
 7415	if test "$linkmode" = lib; then
 7416	  if test -n "$dependency_libs" &&
 7417	     { test "$hardcode_into_libs" != yes ||
 7418	       test "$build_old_libs" = yes ||
 7419	       test "$link_static" = yes; }; then
 7420	    # Extract -R from dependency_libs
 7421	    temp_deplibs=
 7422	    for libdir in $dependency_libs; do
 7423	      case $libdir in
 7424	      -R*) func_stripname '-R' '' "$libdir"
 7425	           temp_xrpath=$func_stripname_result
 7426		   case " $xrpath " in
 7427		   *" $temp_xrpath "*) ;;
 7428		   *) xrpath="$xrpath $temp_xrpath";;
 7429		   esac;;
 7430	      *) temp_deplibs="$temp_deplibs $libdir";;
 7431	      esac
 7432	    done
 7433	    dependency_libs="$temp_deplibs"
 7434	  fi
 7435
 7436	  newlib_search_path="$newlib_search_path $absdir"
 7437	  # Link against this library
 7438	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 7439	  # ... and its dependency_libs
 7440	  tmp_libs=
 7441	  for deplib in $dependency_libs; do
 7442	    newdependency_libs="$deplib $newdependency_libs"
 7443	    case $deplib in
 7444              -L*) func_stripname '-L' '' "$deplib"
 7445                   func_resolve_sysroot "$func_stripname_result";;
 7446              *) func_resolve_sysroot "$deplib" ;;
 7447            esac
 7448	    if $opt_preserve_dup_deps ; then
 7449	      case "$tmp_libs " in
 7450	      *" $func_resolve_sysroot_result "*)
 7451                specialdeplibs="$specialdeplibs $func_resolve_sysroot_result" ;;
 7452	      esac
 7453	    fi
 7454	    tmp_libs="$tmp_libs $func_resolve_sysroot_result"
 7455	  done
 7456
 7457	  if test "$link_all_deplibs" != no; then
 7458	    # Add the search paths of all dependency libraries
 7459	    for deplib in $dependency_libs; do
 7460	      path=
 7461	      case $deplib in
 7462	      -L*) path="$deplib" ;;
 7463	      *.la)
 7464	        func_resolve_sysroot "$deplib"
 7465	        deplib=$func_resolve_sysroot_result
 7466	        func_dirname "$deplib" "" "."
 7467		dir=$func_dirname_result
 7468		# We need an absolute path.
 7469		case $dir in
 7470		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
 7471		*)
 7472		  absdir=`cd "$dir" && pwd`
 7473		  if test -z "$absdir"; then
 7474		    func_warning "cannot determine absolute directory name of \`$dir'"
 7475		    absdir="$dir"
 7476		  fi
 7477		  ;;
 7478		esac
 7479		if $GREP "^installed=no" $deplib > /dev/null; then
 7480		case $host in
 7481		*-*-darwin*)
 7482		  depdepl=
 7483		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
 7484		  if test -n "$deplibrary_names" ; then
 7485		    for tmp in $deplibrary_names ; do
 7486		      depdepl=$tmp
 7487		    done
 7488		    if test -f "$absdir/$objdir/$depdepl" ; then
 7489		      depdepl="$absdir/$objdir/$depdepl"
 7490		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
 7491                      if test -z "$darwin_install_name"; then
 7492                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
 7493                      fi
 7494		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
 7495		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
 7496		      path=
 7497		    fi
 7498		  fi
 7499		  ;;
 7500		*)
 7501		  path="-L$absdir/$objdir"
 7502		  ;;
 7503		esac
 7504		else
 7505		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 7506		  test -z "$libdir" && \
 7507		    func_fatal_error "\`$deplib' is not a valid libtool archive"
 7508		  test "$absdir" != "$libdir" && \
 7509		    func_warning "\`$deplib' seems to be moved"
 7510
 7511		  path="-L$absdir"
 7512		fi
 7513		;;
 7514	      esac
 7515	      case " $deplibs " in
 7516	      *" $path "*) ;;
 7517	      *) deplibs="$path $deplibs" ;;
 7518	      esac
 7519	    done
 7520	  fi # link_all_deplibs != no
 7521	fi # linkmode = lib
 7522      done # for deplib in $libs
 7523      if test "$pass" = link; then
 7524	if test "$linkmode" = "prog"; then
 7525	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
 7526	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
 7527	else
 7528	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 7529	fi
 7530      fi
 7531      dependency_libs="$newdependency_libs"
 7532      if test "$pass" = dlpreopen; then
 7533	# Link the dlpreopened libraries before other libraries
 7534	for deplib in $save_deplibs; do
 7535	  deplibs="$deplib $deplibs"
 7536	done
 7537      fi
 7538      if test "$pass" != dlopen; then
 7539	if test "$pass" != conv; then
 7540	  # Make sure lib_search_path contains only unique directories.
 7541	  lib_search_path=
 7542	  for dir in $newlib_search_path; do
 7543	    case "$lib_search_path " in
 7544	    *" $dir "*) ;;
 7545	    *) lib_search_path="$lib_search_path $dir" ;;
 7546	    esac
 7547	  done
 7548	  newlib_search_path=
 7549	fi
 7550
 7551	if test "$linkmode,$pass" != "prog,link"; then
 7552	  vars="deplibs"
 7553	else
 7554	  vars="compile_deplibs finalize_deplibs"
 7555	fi
 7556	for var in $vars dependency_libs; do
 7557	  # Add libraries to $var in reverse order
 7558	  eval tmp_libs=\"\$$var\"
 7559	  new_libs=
 7560	  for deplib in $tmp_libs; do
 7561	    # FIXME: Pedantically, this is the right thing to do, so
 7562	    #        that some nasty dependency loop isn't accidentally
 7563	    #        broken:
 7564	    #new_libs="$deplib $new_libs"
 7565	    # Pragmatically, this seems to cause very few problems in
 7566	    # practice:
 7567	    case $deplib in
 7568	    -L*) new_libs="$deplib $new_libs" ;;
 7569	    -R*) ;;
 7570	    *)
 7571	      # And here is the reason: when a library appears more
 7572	      # than once as an explicit dependence of a library, or
 7573	      # is implicitly linked in more than once by the
 7574	      # compiler, it is considered special, and multiple
 7575	      # occurrences thereof are not removed.  Compare this
 7576	      # with having the same library being listed as a
 7577	      # dependency of multiple other libraries: in this case,
 7578	      # we know (pedantically, we assume) the library does not
 7579	      # need to be listed more than once, so we keep only the
 7580	      # last copy.  This is not always right, but it is rare
 7581	      # enough that we require users that really mean to play
 7582	      # such unportable linking tricks to link the library
 7583	      # using -Wl,-lname, so that libtool does not consider it
 7584	      # for duplicate removal.
 7585	      case " $specialdeplibs " in
 7586	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
 7587	      *)
 7588		case " $new_libs " in
 7589		*" $deplib "*) ;;
 7590		*) new_libs="$deplib $new_libs" ;;
 7591		esac
 7592		;;
 7593	      esac
 7594	      ;;
 7595	    esac
 7596	  done
 7597	  tmp_libs=
 7598	  for deplib in $new_libs; do
 7599	    case $deplib in
 7600	    -L*)
 7601	      case " $tmp_libs " in
 7602	      *" $deplib "*) ;;
 7603	      *) tmp_libs="$tmp_libs $deplib" ;;
 7604	      esac
 7605	      ;;
 7606	    *) tmp_libs="$tmp_libs $deplib" ;;
 7607	    esac
 7608	  done
 7609	  eval $var=\"$tmp_libs\"
 7610	done # for var
 7611      fi
 7612      # Last step: remove runtime libs from dependency_libs
 7613      # (they stay in deplibs)
 7614      tmp_libs=
 7615      for i in $dependency_libs ; do
 7616	case " $predeps $postdeps $compiler_lib_search_path " in
 7617	*" $i "*)
 7618	  i=""
 7619	  ;;
 7620	esac
 7621	if test -n "$i" ; then
 7622	  tmp_libs="$tmp_libs $i"
 7623	fi
 7624      done
 7625      dependency_libs=$tmp_libs
 7626    done # for pass
 7627    if test "$linkmode" = prog; then
 7628      dlfiles="$newdlfiles"
 7629    fi
 7630    if test "$linkmode" = prog || test "$linkmode" = lib; then
 7631      dlprefiles="$newdlprefiles"
 7632    fi
 7633
 7634    case $linkmode in
 7635    oldlib)
 7636      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 7637	func_warning "\`-dlopen' is ignored for archives"
 7638      fi
 7639
 7640      case " $deplibs" in
 7641      *\ -l* | *\ -L*)
 7642	func_warning "\`-l' and \`-L' are ignored for archives" ;;
 7643      esac
 7644
 7645      test -n "$rpath" && \
 7646	func_warning "\`-rpath' is ignored for archives"
 7647
 7648      test -n "$xrpath" && \
 7649	func_warning "\`-R' is ignored for archives"
 7650
 7651      test -n "$vinfo" && \
 7652	func_warning "\`-version-info/-version-number' is ignored for archives"
 7653
 7654      test -n "$release" && \
 7655	func_warning "\`-release' is ignored for archives"
 7656
 7657      test -n "$export_symbols$export_symbols_regex" && \
 7658	func_warning "\`-export-symbols' is ignored for archives"
 7659
 7660      # Now set the variables for building old libraries.
 7661      build_libtool_libs=no
 7662      oldlibs="$output"
 7663      objs="$objs$old_deplibs"
 7664      ;;
 7665
 7666    lib)
 7667      # Make sure we only generate libraries of the form `libNAME.la'.
 7668      case $outputname in
 7669      lib*)
 7670	func_stripname 'lib' '.la' "$outputname"
 7671	name=$func_stripname_result
 7672	eval shared_ext=\"$shrext_cmds\"
 7673	eval libname=\"$libname_spec\"
 7674	;;
 7675      *)
 7676	test "$module" = no && \
 7677	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
 7678
 7679	if test "$need_lib_prefix" != no; then
 7680	  # Add the "lib" prefix for modules if required
 7681	  func_stripname '' '.la' "$outputname"
 7682	  name=$func_stripname_result
 7683	  eval shared_ext=\"$shrext_cmds\"
 7684	  eval libname=\"$libname_spec\"
 7685	else
 7686	  func_stripname '' '.la' "$outputname"
 7687	  libname=$func_stripname_result
 7688	fi
 7689	;;
 7690      esac
 7691
 7692      if test -n "$objs"; then
 7693	if test "$deplibs_check_method" != pass_all; then
 7694	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
 7695	else
 7696	  echo
 7697	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
 7698	  $ECHO "*** objects $objs is not portable!"
 7699	  libobjs="$libobjs $objs"
 7700	fi
 7701      fi
 7702
 7703      test "$dlself" != no && \
 7704	func_warning "\`-dlopen self' is ignored for libtool libraries"
 7705
 7706      set dummy $rpath
 7707      shift
 7708      test "$#" -gt 1 && \
 7709	func_warning "ignoring multiple \`-rpath's for a libtool library"
 7710
 7711      install_libdir="$1"
 7712
 7713      oldlibs=
 7714      if test -z "$rpath"; then
 7715	if test "$build_libtool_libs" = yes; then
 7716	  # Building a libtool convenience library.
 7717	  # Some compilers have problems with a `.al' extension so
 7718	  # convenience libraries should have the same extension an
 7719	  # archive normally would.
 7720	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
 7721	  build_libtool_libs=convenience
 7722	  build_old_libs=yes
 7723	fi
 7724
 7725	test -n "$vinfo" && \
 7726	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
 7727
 7728	test -n "$release" && \
 7729	  func_warning "\`-release' is ignored for convenience libraries"
 7730      else
 7731
 7732	# Parse the version information argument.
 7733	save_ifs="$IFS"; IFS=':'
 7734	set dummy $vinfo 0 0 0
 7735	shift
 7736	IFS="$save_ifs"
 7737
 7738	test -n "$7" && \
 7739	  func_fatal_help "too many parameters to \`-version-info'"
 7740
 7741	# convert absolute version numbers to libtool ages
 7742	# this retains compatibility with .la files and attempts
 7743	# to make the code below a bit more comprehensible
 7744
 7745	case $vinfo_number in
 7746	yes)
 7747	  number_major="$1"
 7748	  number_minor="$2"
 7749	  number_revision="$3"
 7750	  #
 7751	  # There are really only two kinds -- those that
 7752	  # use the current revision as the major version
 7753	  # and those that subtract age and use age as
 7754	  # a minor version.  But, then there is irix
 7755	  # which has an extra 1 added just for fun
 7756	  #
 7757	  case $version_type in
 7758	  # correct linux to gnu/linux during the next big refactor
 7759	  darwin|linux|osf|windows|none)
 7760	    func_arith $number_major + $number_minor
 7761	    current=$func_arith_result
 7762	    age="$number_minor"
 7763	    revision="$number_revision"
 7764	    ;;
 7765	  freebsd-aout|freebsd-elf|qnx|sunos)
 7766	    current="$number_major"
 7767	    revision="$number_minor"
 7768	    age="0"
 7769	    ;;
 7770	  irix|nonstopux)
 7771	    func_arith $number_major + $number_minor
 7772	    current=$func_arith_result
 7773	    age="$number_minor"
 7774	    revision="$number_minor"
 7775	    lt_irix_increment=no
 7776	    ;;
 7777	  *)
 7778	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
 7779	    ;;
 7780	  esac
 7781	  ;;
 7782	no)
 7783	  current="$1"
 7784	  revision="$2"
 7785	  age="$3"
 7786	  ;;
 7787	esac
 7788
 7789	# Check that each of the things are valid numbers.
 7790	case $current in
 7791	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 7792	*)
 7793	  func_error "CURRENT \`$current' must be a nonnegative integer"
 7794	  func_fatal_error "\`$vinfo' is not valid version information"
 7795	  ;;
 7796	esac
 7797
 7798	case $revision in
 7799	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 7800	*)
 7801	  func_error "REVISION \`$revision' must be a nonnegative integer"
 7802	  func_fatal_error "\`$vinfo' is not valid version information"
 7803	  ;;
 7804	esac
 7805
 7806	case $age in
 7807	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 7808	*)
 7809	  func_error "AGE \`$age' must be a nonnegative integer"
 7810	  func_fatal_error "\`$vinfo' is not valid version information"
 7811	  ;;
 7812	esac
 7813
 7814	if test "$age" -gt "$current"; then
 7815	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
 7816	  func_fatal_error "\`$vinfo' is not valid version information"
 7817	fi
 7818
 7819	# Calculate the version variables.
 7820	major=
 7821	versuffix=
 7822	verstring=
 7823	case $version_type in
 7824	none) ;;
 7825
 7826	darwin)
 7827	  # Like Linux, but with the current version available in
 7828	  # verstring for coding it into the library header
 7829	  func_arith $current - $age
 7830	  major=.$func_arith_result
 7831	  versuffix="$major.$age.$revision"
 7832	  # Darwin ld doesn't like 0 for these options...
 7833	  func_arith $current + 1
 7834	  minor_current=$func_arith_result
 7835	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
 7836	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
 7837	  ;;
 7838
 7839	freebsd-aout)
 7840	  major=".$current"
 7841	  versuffix=".$current.$revision";
 7842	  ;;
 7843
 7844	freebsd-elf)
 7845	  major=".$current"
 7846	  versuffix=".$current"
 7847	  ;;
 7848
 7849	irix | nonstopux)
 7850	  if test "X$lt_irix_increment" = "Xno"; then
 7851	    func_arith $current - $age
 7852	  else
 7853	    func_arith $current - $age + 1
 7854	  fi
 7855	  major=$func_arith_result
 7856
 7857	  case $version_type in
 7858	    nonstopux) verstring_prefix=nonstopux ;;
 7859	    *)         verstring_prefix=sgi ;;
 7860	  esac
 7861	  verstring="$verstring_prefix$major.$revision"
 7862
 7863	  # Add in all the interfaces that we are compatible with.
 7864	  loop=$revision
 7865	  while test "$loop" -ne 0; do
 7866	    func_arith $revision - $loop
 7867	    iface=$func_arith_result
 7868	    func_arith $loop - 1
 7869	    loop=$func_arith_result
 7870	    verstring="$verstring_prefix$major.$iface:$verstring"
 7871	  done
 7872
 7873	  # Before this point, $major must not contain `.'.
 7874	  major=.$major
 7875	  versuffix="$major.$revision"
 7876	  ;;
 7877
 7878	linux) # correct to gnu/linux during the next big refactor
 7879	  func_arith $current - $age
 7880	  major=.$func_arith_result
 7881	  versuffix="$major.$age.$revision"
 7882	  ;;
 7883
 7884	osf)
 7885	  func_arith $current - $age
 7886	  major=.$func_arith_result
 7887	  versuffix=".$current.$age.$revision"
 7888	  verstring="$current.$age.$revision"
 7889
 7890	  # Add in all the interfaces that we are compatible with.
 7891	  loop=$age
 7892	  while test "$loop" -ne 0; do
 7893	    func_arith $current - $loop
 7894	    iface=$func_arith_result
 7895	    func_arith $loop - 1
 7896	    loop=$func_arith_result
 7897	    verstring="$verstring:${iface}.0"
 7898	  done
 7899
 7900	  # Make executables depend on our current version.
 7901	  verstring="$verstring:${current}.0"
 7902	  ;;
 7903
 7904	qnx)
 7905	  major=".$current"
 7906	  versuffix=".$current"
 7907	  ;;
 7908
 7909	sunos)
 7910	  major=".$current"
 7911	  versuffix=".$current.$revision"
 7912	  ;;
 7913
 7914	windows)
 7915	  # Use '-' rather than '.', since we only want one
 7916	  # extension on DOS 8.3 filesystems.
 7917	  func_arith $current - $age
 7918	  major=$func_arith_result
 7919	  versuffix="-$major"
 7920	  ;;
 7921
 7922	*)
 7923	  func_fatal_configuration "unknown library version type \`$version_type'"
 7924	  ;;
 7925	esac
 7926
 7927	# Clear the version info if we defaulted, and they specified a release.
 7928	if test -z "$vinfo" && test -n "$release"; then
 7929	  major=
 7930	  case $version_type in
 7931	  darwin)
 7932	    # we can't check for "0.0" in archive_cmds due to quoting
 7933	    # problems, so we reset it completely
 7934	    verstring=
 7935	    ;;
 7936	  *)
 7937	    verstring="0.0"
 7938	    ;;
 7939	  esac
 7940	  if test "$need_version" = no; then
 7941	    versuffix=
 7942	  else
 7943	    versuffix=".0.0"
 7944	  fi
 7945	fi
 7946
 7947	# Remove version info from name if versioning should be avoided
 7948	if test "$avoid_version" = yes && test "$need_version" = no; then
 7949	  major=
 7950	  versuffix=
 7951	  verstring=""
 7952	fi
 7953
 7954	# Check to see if the archive will have undefined symbols.
 7955	if test "$allow_undefined" = yes; then
 7956	  if test "$allow_undefined_flag" = unsupported; then
 7957	    func_warning "undefined symbols not allowed in $host shared libraries"
 7958	    build_libtool_libs=no
 7959	    build_old_libs=yes
 7960	  fi
 7961	else
 7962	  # Don't allow undefined symbols.
 7963	  allow_undefined_flag="$no_undefined_flag"
 7964	fi
 7965
 7966      fi
 7967
 7968      func_generate_dlsyms "$libname" "$libname" "yes"
 7969      libobjs="$libobjs $symfileobj"
 7970      test "X$libobjs" = "X " && libobjs=
 7971
 7972      if test "$opt_mode" != relink; then
 7973	# Remove our outputs, but don't remove object files since they
 7974	# may have been created when compiling PIC objects.
 7975	removelist=
 7976	tempremovelist=`$ECHO "$output_objdir/*"`
 7977	for p in $tempremovelist; do
 7978	  case $p in
 7979	    *.$objext | *.gcno)
 7980	       ;;
 7981	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
 7982	       if test "X$precious_files_regex" != "X"; then
 7983		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
 7984		 then
 7985		   continue
 7986		 fi
 7987	       fi
 7988	       removelist="$removelist $p"
 7989	       ;;
 7990	    *) ;;
 7991	  esac
 7992	done
 7993	test -n "$removelist" && \
 7994	  func_show_eval "${RM}r \$removelist"
 7995      fi
 7996
 7997      # Now set the variables for building old libraries.
 7998      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
 7999	oldlibs="$oldlibs $output_objdir/$libname.$libext"
 8000
 8001	# Transform .lo files to .o files.
 8002	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
 8003      fi
 8004
 8005      # Eliminate all temporary directories.
 8006      #for path in $notinst_path; do
 8007      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
 8008      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
 8009      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
 8010      #done
 8011
 8012      if test -n "$xrpath"; then
 8013	# If the user specified any rpath flags, then add them.
 8014	temp_xrpath=
 8015	for libdir in $xrpath; do
 8016	  func_replace_sysroot "$libdir"
 8017	  temp_xrpath="$temp_xrpath -R$func_replace_sysroot_result"
 8018	  case "$finalize_rpath " in
 8019	  *" $libdir "*) ;;
 8020	  *) finalize_rpath="$finalize_rpath $libdir" ;;
 8021	  esac
 8022	done
 8023	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
 8024	  dependency_libs="$temp_xrpath $dependency_libs"
 8025	fi
 8026      fi
 8027
 8028      # Make sure dlfiles contains only unique files that won't be dlpreopened
 8029      old_dlfiles="$dlfiles"
 8030      dlfiles=
 8031      for lib in $old_dlfiles; do
 8032	case " $dlprefiles $dlfiles " in
 8033	*" $lib "*) ;;
 8034	*) dlfiles="$dlfiles $lib" ;;
 8035	esac
 8036      done
 8037
 8038      # Make sure dlprefiles contains only unique files
 8039      old_dlprefiles="$dlprefiles"
 8040      dlprefiles=
 8041      for lib in $old_dlprefiles; do
 8042	case "$dlprefiles " in
 8043	*" $lib "*) ;;
 8044	*) dlprefiles="$dlprefiles $lib" ;;
 8045	esac
 8046      done
 8047
 8048      if test "$build_libtool_libs" = yes; then
 8049	if test -n "$rpath"; then
 8050	  case $host in
 8051	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
 8052	    # these systems don't actually have a c library (as such)!
 8053	    ;;
 8054	  *-*-rhapsody* | *-*-darwin1.[012])
 8055	    # Rhapsody C library is in the System framework
 8056	    deplibs="$deplibs System.ltframework"
 8057	    ;;
 8058	  *-*-netbsd*)
 8059	    # Don't link with libc until the a.out ld.so is fixed.
 8060	    ;;
 8061	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 8062	    # Do not include libc due to us having libc/libc_r.
 8063	    ;;
 8064	  *-*-sco3.2v5* | *-*-sco5v6*)
 8065	    # Causes problems with __ctype
 8066	    ;;
 8067	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 8068	    # Compiler inserts libc in the correct place for threads to work
 8069	    ;;
 8070	  *)
 8071	    # Add libc to deplibs on all other systems if necessary.
 8072	    if test "$build_libtool_need_lc" = "yes"; then
 8073	      deplibs="$deplibs -lc"
 8074	    fi
 8075	    ;;
 8076	  esac
 8077	fi
 8078
 8079	# Transform deplibs into only deplibs that can be linked in shared.
 8080	name_save=$name
 8081	libname_save=$libname
 8082	release_save=$release
 8083	versuffix_save=$versuffix
 8084	major_save=$major
 8085	# I'm not sure if I'm treating the release correctly.  I think
 8086	# release should show up in the -l (ie -lgmp5) so we don't want to
 8087	# add it in twice.  Is that correct?
 8088	release=""
 8089	versuffix=""
 8090	major=""
 8091	newdeplibs=
 8092	droppeddeps=no
 8093	case $deplibs_check_method in
 8094	pass_all)
 8095	  # Don't check for shared/static.  Everything works.
 8096	  # This might be a little naive.  We might want to check
 8097	  # whether the library exists or not.  But this is on
 8098	  # osf3 & osf4 and I'm not really sure... Just
 8099	  # implementing what was already the behavior.
 8100	  newdeplibs=$deplibs
 8101	  ;;
 8102	test_compile)
 8103	  # This code stresses the "libraries are programs" paradigm to its
 8104	  # limits. Maybe even breaks it.  We compile a program, linking it
 8105	  # against the deplibs as a proxy for the library.  Then we can check
 8106	  # whether they linked in statically or dynamically with ldd.
 8107	  $opt_dry_run || $RM conftest.c
 8108	  cat > conftest.c <<EOF
 8109	  int main() { return 0; }
 8110EOF
 8111	  $opt_dry_run || $RM conftest
 8112	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
 8113	    ldd_output=`ldd conftest`
 8114	    for i in $deplibs; do
 8115	      case $i in
 8116	      -l*)
 8117		func_stripname -l '' "$i"
 8118		name=$func_stripname_result
 8119		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 8120		  case " $predeps $postdeps " in
 8121		  *" $i "*)
 8122		    newdeplibs="$newdeplibs $i"
 8123		    i=""
 8124		    ;;
 8125		  esac
 8126		fi
 8127		if test -n "$i" ; then
 8128		  libname=`eval "\\$ECHO \"$libname_spec\""`
 8129		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 8130		  set dummy $deplib_matches; shift
 8131		  deplib_match=$1
 8132		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 8133		    newdeplibs="$newdeplibs $i"
 8134		  else
 8135		    droppeddeps=yes
 8136		    echo
 8137		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
 8138		    echo "*** I have the capability to make that library automatically link in when"
 8139		    echo "*** you link to this library.  But I can only do this if you have a"
 8140		    echo "*** shared version of the library, which I believe you do not have"
 8141		    echo "*** because a test_compile did reveal that the linker did not use it for"
 8142		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
 8143		  fi
 8144		fi
 8145		;;
 8146	      *)
 8147		newdeplibs="$newdeplibs $i"
 8148		;;
 8149	      esac
 8150	    done
 8151	  else
 8152	    # Error occurred in the first compile.  Let's try to salvage
 8153	    # the situation: Compile a separate program for each library.
 8154	    for i in $deplibs; do
 8155	      case $i in
 8156	      -l*)
 8157		func_stripname -l '' "$i"
 8158		name=$func_stripname_result
 8159		$opt_dry_run || $RM conftest
 8160		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
 8161		  ldd_output=`ldd conftest`
 8162		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 8163		    case " $predeps $postdeps " in
 8164		    *" $i "*)
 8165		      newdeplibs="$newdeplibs $i"
 8166		      i=""
 8167		      ;;
 8168		    esac
 8169		  fi
 8170		  if test -n "$i" ; then
 8171		    libname=`eval "\\$ECHO \"$libname_spec\""`
 8172		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 8173		    set dummy $deplib_matches; shift
 8174		    deplib_match=$1
 8175		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 8176		      newdeplibs="$newdeplibs $i"
 8177		    else
 8178		      droppeddeps=yes
 8179		      echo
 8180		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
 8181		      echo "*** I have the capability to make that library automatically link in when"
 8182		      echo "*** you link to this library.  But I can only do this if you have a"
 8183		      echo "*** shared version of the library, which you do not appear to have"
 8184		      echo "*** because a test_compile did reveal that the linker did not use this one"
 8185		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
 8186		    fi
 8187		  fi
 8188		else
 8189		  droppeddeps=yes
 8190		  echo
 8191		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
 8192		  echo "*** make it link in!  You will probably need to install it or some"
 8193		  echo "*** library that it depends on before this library will be fully"
 8194		  echo "*** functional.  Installing it before continuing would be even better."
 8195		fi
 8196		;;
 8197	      *)
 8198		newdeplibs="$newdeplibs $i"
 8199		;;
 8200	      esac
 8201	    done
 8202	  fi
 8203	  ;;
 8204	file_magic*)
 8205	  set dummy $deplibs_check_method; shift
 8206	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 8207	  for a_deplib in $deplibs; do
 8208	    case $a_deplib in
 8209	    -l*)
 8210	      func_stripname -l '' "$a_deplib"
 8211	      name=$func_stripname_result
 8212	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 8213		case " $predeps $postdeps " in
 8214		*" $a_deplib "*)
 8215		  newdeplibs="$newdeplibs $a_deplib"
 8216		  a_deplib=""
 8217		  ;;
 8218		esac
 8219	      fi
 8220	      if test -n "$a_deplib" ; then
 8221		libname=`eval "\\$ECHO \"$libname_spec\""`
 8222		if test -n "$file_magic_glob"; then
 8223		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
 8224		else
 8225		  libnameglob=$libname
 8226		fi
 8227		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
 8228		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 8229		  if test "$want_nocaseglob" = yes; then
 8230		    shopt -s nocaseglob
 8231		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
 8232		    $nocaseglob
 8233		  else
 8234		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
 8235		  fi
 8236		  for potent_lib in $potential_libs; do
 8237		      # Follow soft links.
 8238		      if ls -lLd "$potent_lib" 2>/dev/null |
 8239			 $GREP " -> " >/dev/null; then
 8240			continue
 8241		      fi
 8242		      # The statement above tries to avoid entering an
 8243		      # endless loop below, in case of cyclic links.
 8244		      # We might still enter an endless loop, since a link
 8245		      # loop can be closed while we follow links,
 8246		      # but so what?
 8247		      potlib="$potent_lib"
 8248		      while test -h "$potlib" 2>/dev/null; do
 8249			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
 8250			case $potliblink in
 8251			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
 8252			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
 8253			esac
 8254		      done
 8255		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
 8256			 $SED -e 10q |
 8257			 $EGREP "$file_magic_regex" > /dev/null; then
 8258			newdeplibs="$newdeplibs $a_deplib"
 8259			a_deplib=""
 8260			break 2
 8261		      fi
 8262		  done
 8263		done
 8264	      fi
 8265	      if test -n "$a_deplib" ; then
 8266		droppeddeps=yes
 8267		echo
 8268		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
 8269		echo "*** I have the capability to make that library automatically link in when"
 8270		echo "*** you link to this library.  But I can only do this if you have a"
 8271		echo "*** shared version of the library, which you do not appear to have"
 8272		echo "*** because I did check the linker path looking for a file starting"
 8273		if test -z "$potlib" ; then
 8274		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
 8275		else
 8276		  $ECHO "*** with $libname and none of the candidates passed a file format test"
 8277		  $ECHO "*** using a file magic. Last file checked: $potlib"
 8278		fi
 8279	      fi
 8280	      ;;
 8281	    *)
 8282	      # Add a -L argument.
 8283	      newdeplibs="$newdeplibs $a_deplib"
 8284	      ;;
 8285	    esac
 8286	  done # Gone through all deplibs.
 8287	  ;;
 8288	match_pattern*)
 8289	  set dummy $deplibs_check_method; shift
 8290	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 8291	  for a_deplib in $deplibs; do
 8292	    case $a_deplib in
 8293	    -l*)
 8294	      func_stripname -l '' "$a_deplib"
 8295	      name=$func_stripname_result
 8296	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 8297		case " $predeps $postdeps " in
 8298		*" $a_deplib "*)
 8299		  newdeplibs="$newdeplibs $a_deplib"
 8300		  a_deplib=""
 8301		  ;;
 8302		esac
 8303	      fi
 8304	      if test -n "$a_deplib" ; then
 8305		libname=`eval "\\$ECHO \"$libname_spec\""`
 8306		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 8307		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 8308		  for potent_lib in $potential_libs; do
 8309		    potlib="$potent_lib" # see symlink-check above in file_magic test
 8310		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
 8311		       $EGREP "$match_pattern_regex" > /dev/null; then
 8312		      newdeplibs="$newdeplibs $a_deplib"
 8313		      a_deplib=""
 8314		      break 2
 8315		    fi
 8316		  done
 8317		done
 8318	      fi
 8319	      if test -n "$a_deplib" ; then
 8320		droppeddeps=yes
 8321		echo
 8322		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
 8323		echo "*** I have the capability to make that library automatically link in when"
 8324		echo "*** you link to this library.  But I can only do this if you have a"
 8325		echo "*** shared version of the library, which you do not appear to have"
 8326		echo "*** because I did check the linker path looking for a file starting"
 8327		if test -z "$potlib" ; then
 8328		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
 8329		else
 8330		  $ECHO "*** with $libname and none of the candidates passed a file format test"
 8331		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
 8332		fi
 8333	      fi
 8334	      ;;
 8335	    *)
 8336	      # Add a -L argument.
 8337	      newdeplibs="$newdeplibs $a_deplib"
 8338	      ;;
 8339	    esac
 8340	  done # Gone through all deplibs.
 8341	  ;;
 8342	none | unknown | *)
 8343	  newdeplibs=""
 8344	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
 8345	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 8346	    for i in $predeps $postdeps ; do
 8347	      # can't use Xsed below, because $i might contain '/'
 8348	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
 8349	    done
 8350	  fi
 8351	  case $tmp_deplibs in
 8352	  *[!\	\ ]*)
 8353	    echo
 8354	    if test "X$deplibs_check_method" = "Xnone"; then
 8355	      echo "*** Warning: inter-library dependencies are not supported in this platform."
 8356	    else
 8357	      echo "*** Warning: inter-library dependencies are not known to be supported."
 8358	    fi
 8359	    echo "*** All declared inter-library dependencies are being dropped."
 8360	    droppeddeps=yes
 8361	    ;;
 8362	  esac
 8363	  ;;
 8364	esac
 8365	versuffix=$versuffix_save
 8366	major=$major_save
 8367	release=$release_save
 8368	libname=$libname_save
 8369	name=$name_save
 8370
 8371	case $host in
 8372	*-*-rhapsody* | *-*-darwin1.[012])
 8373	  # On Rhapsody replace the C library with the System framework
 8374	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
 8375	  ;;
 8376	esac
 8377
 8378	if test "$droppeddeps" = yes; then
 8379	  if test "$module" = yes; then
 8380	    echo
 8381	    echo "*** Warning: libtool could not satisfy all declared inter-library"
 8382	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
 8383	    echo "*** a static module, that should work as long as the dlopening"
 8384	    echo "*** application is linked with the -dlopen flag."
 8385	    if test -z "$global_symbol_pipe"; then
 8386	      echo
 8387	      echo "*** However, this would only work if libtool was able to extract symbol"
 8388	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 8389	      echo "*** not find such a program.  So, this module is probably useless."
 8390	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
 8391	    fi
 8392	    if test "$build_old_libs" = no; then
 8393	      oldlibs="$output_objdir/$libname.$libext"
 8394	      build_libtool_libs=module
 8395	      build_old_libs=yes
 8396	    else
 8397	      build_libtool_libs=no
 8398	    fi
 8399	  else
 8400	    echo "*** The inter-library dependencies that have been dropped here will be"
 8401	    echo "*** automatically added whenever a program is linked with this library"
 8402	    echo "*** or is declared to -dlopen it."
 8403
 8404	    if test "$allow_undefined" = no; then
 8405	      echo
 8406	      echo "*** Since this library must not contain undefined symbols,"
 8407	      echo "*** because either the platform does not support them or"
 8408	      echo "*** it was explicitly requested with -no-undefined,"
 8409	      echo "*** libtool will only create a static version of it."
 8410	      if test "$build_old_libs" = no; then
 8411		oldlibs="$output_objdir/$libname.$libext"
 8412		build_libtool_libs=module
 8413		build_old_libs=yes
 8414	      else
 8415		build_libtool_libs=no
 8416	      fi
 8417	    fi
 8418	  fi
 8419	fi
 8420	# Done checking deplibs!
 8421	deplibs=$newdeplibs
 8422      fi
 8423      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
 8424      case $host in
 8425	*-*-darwin*)
 8426	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 8427	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 8428	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 8429	  ;;
 8430      esac
 8431
 8432      # move library search paths that coincide with paths to not yet
 8433      # installed libraries to the beginning of the library search list
 8434      new_libs=
 8435      for path in $notinst_path; do
 8436	case " $new_libs " in
 8437	*" -L$path/$objdir "*) ;;
 8438	*)
 8439	  case " $deplibs " in
 8440	  *" -L$path/$objdir "*)
 8441	    new_libs="$new_libs -L$path/$objdir" ;;
 8442	  esac
 8443	  ;;
 8444	esac
 8445      done
 8446      for deplib in $deplibs; do
 8447	case $deplib in
 8448	-L*)
 8449	  case " $new_libs " in
 8450	  *" $deplib "*) ;;
 8451	  *) new_libs="$new_libs $deplib" ;;
 8452	  esac
 8453	  ;;
 8454	*) new_libs="$new_libs $deplib" ;;
 8455	esac
 8456      done
 8457      deplibs="$new_libs"
 8458
 8459      # All the library-specific variables (install_libdir is set above).
 8460      library_names=
 8461      old_library=
 8462      dlname=
 8463
 8464      # Test again, we may have decided not to build it any more
 8465      if test "$build_libtool_libs" = yes; then
 8466	# Remove ${wl} instances when linking with ld.
 8467	# FIXME: should test the right _cmds variable.
 8468	case $archive_cmds in
 8469	  *\$LD\ *) wl= ;;
 8470        esac
 8471	if test "$hardcode_into_libs" = yes; then
 8472	  # Hardcode the library paths
 8473	  hardcode_libdirs=
 8474	  dep_rpath=
 8475	  rpath="$finalize_rpath"
 8476	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
 8477	  for libdir in $rpath; do
 8478	    if test -n "$hardcode_libdir_flag_spec"; then
 8479	      if test -n "$hardcode_libdir_separator"; then
 8480		func_replace_sysroot "$libdir"
 8481		libdir=$func_replace_sysroot_result
 8482		if test -z "$hardcode_libdirs"; then
 8483		  hardcode_libdirs="$libdir"
 8484		else
 8485		  # Just accumulate the unique libdirs.
 8486		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 8487		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 8488		    ;;
 8489		  *)
 8490		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 8491		    ;;
 8492		  esac
 8493		fi
 8494	      else
 8495		eval flag=\"$hardcode_libdir_flag_spec\"
 8496		dep_rpath="$dep_rpath $flag"
 8497	      fi
 8498	    elif test -n "$runpath_var"; then
 8499	      case "$perm_rpath " in
 8500	      *" $libdir "*) ;;
 8501	      *) perm_rpath="$perm_rpath $libdir" ;;
 8502	      esac
 8503	    fi
 8504	  done
 8505	  # Substitute the hardcoded libdirs into the rpath.
 8506	  if test -n "$hardcode_libdir_separator" &&
 8507	     test -n "$hardcode_libdirs"; then
 8508	    libdir="$hardcode_libdirs"
 8509	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
 8510	  fi
 8511	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
 8512	    # We should set the runpath_var.
 8513	    rpath=
 8514	    for dir in $perm_rpath; do
 8515	      rpath="$rpath$dir:"
 8516	    done
 8517	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
 8518	  fi
 8519	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
 8520	fi
 8521
 8522	shlibpath="$finalize_shlibpath"
 8523	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 8524	if test -n "$shlibpath"; then
 8525	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 8526	fi
 8527
 8528	# Get the real and link names of the library.
 8529	eval shared_ext=\"$shrext_cmds\"
 8530	eval library_names=\"$library_names_spec\"
 8531	set dummy $library_names
 8532	shift
 8533	realname="$1"
 8534	shift
 8535
 8536	if test -n "$soname_spec"; then
 8537	  eval soname=\"$soname_spec\"
 8538	else
 8539	  soname="$realname"
 8540	fi
 8541	if test -z "$dlname"; then
 8542	  dlname=$soname
 8543	fi
 8544
 8545	lib="$output_objdir/$realname"
 8546	linknames=
 8547	for link
 8548	do
 8549	  linknames="$linknames $link"
 8550	done
 8551
 8552	# Use standard objects if they are pic
 8553	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
 8554	test "X$libobjs" = "X " && libobjs=
 8555
 8556	delfiles=
 8557	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 8558	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
 8559	  export_symbols="$output_objdir/$libname.uexp"
 8560	  delfiles="$delfiles $export_symbols"
 8561	fi
 8562
 8563	orig_export_symbols=
 8564	case $host_os in
 8565	cygwin* | mingw* | cegcc*)
 8566	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
 8567	    # exporting using user supplied symfile
 8568	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
 8569	      # and it's NOT already a .def file. Must figure out
 8570	      # which of the given symbols are data symbols and tag
 8571	      # them as such. So, trigger use of export_symbols_cmds.
 8572	      # export_symbols gets reassigned inside the "prepare
 8573	      # the list of exported symbols" if statement, so the
 8574	      # include_expsyms logic still works.
 8575	      orig_export_symbols="$export_symbols"
 8576	      export_symbols=
 8577	      always_export_symbols=yes
 8578	    fi
 8579	  fi
 8580	  ;;
 8581	esac
 8582
 8583	# Prepare the list of exported symbols
 8584	if test -z "$export_symbols"; then
 8585	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
 8586	    func_verbose "generating symbol list for \`$libname.la'"
 8587	    export_symbols="$output_objdir/$libname.exp"
 8588	    $opt_dry_run || $RM $export_symbols
 8589	    cmds=$export_symbols_cmds
 8590	    save_ifs="$IFS"; IFS='~'
 8591	    for cmd1 in $cmds; do
 8592	      IFS="$save_ifs"
 8593	      # Take the normal branch if the nm_file_list_spec branch
 8594	      # doesn't work or if tool conversion is not needed.
 8595	      case $nm_file_list_spec~$to_tool_file_cmd in
 8596		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
 8597		  try_normal_branch=yes
 8598		  eval cmd=\"$cmd1\"
 8599		  func_len " $cmd"
 8600		  len=$func_len_result
 8601		  ;;
 8602		*)
 8603		  try_normal_branch=no
 8604		  ;;
 8605	      esac
 8606	      if test "$try_normal_branch" = yes \
 8607		 && { test "$len" -lt "$max_cmd_len" \
 8608		      || test "$max_cmd_len" -le -1; }
 8609	      then
 8610		func_show_eval "$cmd" 'exit $?'
 8611		skipped_export=false
 8612	      elif test -n "$nm_file_list_spec"; then
 8613		func_basename "$output"
 8614		output_la=$func_basename_result
 8615		save_libobjs=$libobjs
 8616		save_output=$output
 8617		output=${output_objdir}/${output_la}.nm
 8618		func_to_tool_file "$output"
 8619		libobjs=$nm_file_list_spec$func_to_tool_file_result
 8620		delfiles="$delfiles $output"
 8621		func_verbose "creating $NM input file list: $output"
 8622		for obj in $save_libobjs; do
 8623		  func_to_tool_file "$obj"
 8624		  $ECHO "$func_to_tool_file_result"
 8625		done > "$output"
 8626		eval cmd=\"$cmd1\"
 8627		func_show_eval "$cmd" 'exit $?'
 8628		output=$save_output
 8629		libobjs=$save_libobjs
 8630		skipped_export=false
 8631	      else
 8632		# The command line is too long to execute in one step.
 8633		func_verbose "using reloadable object file for export list..."
 8634		skipped_export=:
 8635		# Break out early, otherwise skipped_export may be
 8636		# set to false by a later but shorter cmd.
 8637		break
 8638	      fi
 8639	    done
 8640	    IFS="$save_ifs"
 8641	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
 8642	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 8643	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 8644	    fi
 8645	  fi
 8646	fi
 8647
 8648	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 8649	  tmp_export_symbols="$export_symbols"
 8650	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
 8651	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
 8652	fi
 8653
 8654	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
 8655	  # The given exports_symbols file has to be filtered, so filter it.
 8656	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
 8657	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
 8658	  # 's' commands which not all seds can handle. GNU sed should be fine
 8659	  # though. Also, the filter scales superlinearly with the number of
 8660	  # global variables. join(1) would be nice here, but unfortunately
 8661	  # isn't a blessed tool.
 8662	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
 8663	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 8664	  export_symbols=$output_objdir/$libname.def
 8665	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 8666	fi
 8667
 8668	tmp_deplibs=
 8669	for test_deplib in $deplibs; do
 8670	  case " $convenience " in
 8671	  *" $test_deplib "*) ;;
 8672	  *)
 8673	    tmp_deplibs="$tmp_deplibs $test_deplib"
 8674	    ;;
 8675	  esac
 8676	done
 8677	deplibs="$tmp_deplibs"
 8678
 8679	if test -n "$convenience"; then
 8680	  if test -n "$whole_archive_flag_spec" &&
 8681	    test "$compiler_needs_object" = yes &&
 8682	    test -z "$libobjs"; then
 8683	    # extract the archives, so we have objects to list.
 8684	    # TODO: could optimize this to just extract one archive.
 8685	    whole_archive_flag_spec=
 8686	  fi
 8687	  if test -n "$whole_archive_flag_spec"; then
 8688	    save_libobjs=$libobjs
 8689	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 8690	    test "X$libobjs" = "X " && libobjs=
 8691	  else
 8692	    gentop="$output_objdir/${outputname}x"
 8693	    generated="$generated $gentop"
 8694
 8695	    func_extract_archives $gentop $convenience
 8696	    libobjs="$libobjs $func_extract_archives_result"
 8697	    test "X$libobjs" = "X " && libobjs=
 8698	  fi
 8699	fi
 8700
 8701	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
 8702	  eval flag=\"$thread_safe_flag_spec\"
 8703	  linker_flags="$linker_flags $flag"
 8704	fi
 8705
 8706	# Make a backup of the uninstalled library when relinking
 8707	if test "$opt_mode" = relink; then
 8708	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
 8709	fi
 8710
 8711	# Do each of the archive commands.
 8712	if test "$module" = yes && test -n "$module_cmds" ; then
 8713	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 8714	    eval test_cmds=\"$module_expsym_cmds\"
 8715	    cmds=$module_expsym_cmds
 8716	  else
 8717	    eval test_cmds=\"$module_cmds\"
 8718	    cmds=$module_cmds
 8719	  fi
 8720	else
 8721	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 8722	    eval test_cmds=\"$archive_expsym_cmds\"
 8723	    cmds=$archive_expsym_cmds
 8724	  else
 8725	    eval test_cmds=\"$archive_cmds\"
 8726	    cmds=$archive_cmds
 8727	  fi
 8728	fi
 8729
 8730	if test "X$skipped_export" != "X:" &&
 8731	   func_len " $test_cmds" &&
 8732	   len=$func_len_result &&
 8733	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 8734	  :
 8735	else
 8736	  # The command line is too long to link in one step, link piecewise
 8737	  # or, if using GNU ld and skipped_export is not :, use a linker
 8738	  # script.
 8739
 8740	  # Save the value of $output and $libobjs because we want to
 8741	  # use them later.  If we have whole_archive_flag_spec, we
 8742	  # want to use save_libobjs as it was before
 8743	  # whole_archive_flag_spec was expanded, because we can't
 8744	  # assume the linker understands whole_archive_flag_spec.
 8745	  # This may have to be revisited, in case too many
 8746	  # convenience libraries get linked in and end up exceeding
 8747	  # the spec.
 8748	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
 8749	    save_libobjs=$libobjs
 8750	  fi
 8751	  save_output=$output
 8752	  func_basename "$output"
 8753	  output_la=$func_basename_result
 8754
 8755	  # Clear the reloadable object creation command queue and
 8756	  # initialize k to one.
 8757	  test_cmds=
 8758	  concat_cmds=
 8759	  objlist=
 8760	  last_robj=
 8761	  k=1
 8762
 8763	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
 8764	    output=${output_objdir}/${output_la}.lnkscript
 8765	    func_verbose "creating GNU ld script: $output"
 8766	    echo 'INPUT (' > $output
 8767	    for obj in $save_libobjs
 8768	    do
 8769	      func_to_tool_file "$obj"
 8770	      $ECHO "$func_to_tool_file_result" >> $output
 8771	    done
 8772	    echo ')' >> $output
 8773	    delfiles="$delfiles $output"
 8774	    func_to_tool_file "$output"
 8775	    output=$func_to_tool_file_result
 8776	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
 8777	    output=${output_objdir}/${output_la}.lnk
 8778	    func_verbose "creating linker input file list: $output"
 8779	    : > $output
 8780	    set x $save_libobjs
 8781	    shift
 8782	    firstobj=
 8783	    if test "$compiler_needs_object" = yes; then
 8784	      firstobj="$1 "
 8785	      shift
 8786	    fi
 8787	    for obj
 8788	    do
 8789	      func_to_tool_file "$obj"
 8790	      $ECHO "$func_to_tool_file_result" >> $output
 8791	    done
 8792	    delfiles="$delfiles $output"
 8793	    func_to_tool_file "$output"
 8794	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
 8795	  else
 8796	    if test -n "$save_libobjs"; then
 8797	      func_verbose "creating reloadable object files..."
 8798	      output=$output_objdir/$output_la-${k}.$objext
 8799	      eval test_cmds=\"$reload_cmds\"
 8800	      func_len " $test_cmds"
 8801	      len0=$func_len_result
 8802	      len=$len0
 8803
 8804	      # Loop over the list of objects to be linked.
 8805	      for obj in $save_libobjs
 8806	      do
 8807		func_len " $obj"
 8808		func_arith $len + $func_len_result
 8809		len=$func_arith_result
 8810		if test "X$objlist" = X ||
 8811		   test "$len" -lt "$max_cmd_len"; then
 8812		  objlist="$objlist $obj"
 8813		else
 8814		  # The command $test_cmds is almost too long, add a
 8815		  # command to the queue.
 8816		  if test "$k" -eq 1 ; then
 8817		    # The first file doesn't have a previous command to add.
 8818		    reload_objs=$objlist
 8819		    eval concat_cmds=\"$reload_cmds\"
 8820		  else
 8821		    # All subsequent reloadable object files will link in
 8822		    # the last one created.
 8823		    reload_objs="$objlist $last_robj"
 8824		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
 8825		  fi
 8826		  last_robj=$output_objdir/$output_la-${k}.$objext
 8827		  func_arith $k + 1
 8828		  k=$func_arith_result
 8829		  output=$output_objdir/$output_la-${k}.$objext
 8830		  objlist=" $obj"
 8831		  func_len " $last_robj"
 8832		  func_arith $len0 + $func_len_result
 8833		  len=$func_arith_result
 8834		fi
 8835	      done
 8836	      # Handle the remaining objects by creating one last
 8837	      # reloadable object file.  All subsequent reloadable object
 8838	      # files will link in the last one created.
 8839	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 8840	      reload_objs="$objlist $last_robj"
 8841	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
 8842	      if test -n "$last_robj"; then
 8843	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
 8844	      fi
 8845	      delfiles="$delfiles $output"
 8846
 8847	    else
 8848	      output=
 8849	    fi
 8850
 8851	    if ${skipped_export-false}; then
 8852	      func_verbose "generating symbol list for \`$libname.la'"
 8853	      export_symbols="$output_objdir/$libname.exp"
 8854	      $opt_dry_run || $RM $export_symbols
 8855	      libobjs=$output
 8856	      # Append the command to create the export file.
 8857	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 8858	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
 8859	      if test -n "$last_robj"; then
 8860		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
 8861	      fi
 8862	    fi
 8863
 8864	    test -n "$save_libobjs" &&
 8865	      func_verbose "creating a temporary reloadable object file: $output"
 8866
 8867	    # Loop through the commands generated above and execute them.
 8868	    save_ifs="$IFS"; IFS='~'
 8869	    for cmd in $concat_cmds; do
 8870	      IFS="$save_ifs"
 8871	      $opt_silent || {
 8872		  func_quote_for_expand "$cmd"
 8873		  eval "func_echo $func_quote_for_expand_result"
 8874	      }
 8875	      $opt_dry_run || eval "$cmd" || {
 8876		lt_exit=$?
 8877
 8878		# Restore the uninstalled library and exit
 8879		if test "$opt_mode" = relink; then
 8880		  ( cd "$output_objdir" && \
 8881		    $RM "${realname}T" && \
 8882		    $MV "${realname}U" "$realname" )
 8883		fi
 8884
 8885		exit $lt_exit
 8886	      }
 8887	    done
 8888	    IFS="$save_ifs"
 8889
 8890	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
 8891	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 8892	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 8893	    fi
 8894	  fi
 8895
 8896          if ${skipped_export-false}; then
 8897	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
 8898	      tmp_export_symbols="$export_symbols"
 8899	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
 8900	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
 8901	    fi
 8902
 8903	    if test -n "$orig_export_symbols"; then
 8904	      # The given exports_symbols file has to be filtered, so filter it.
 8905	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
 8906	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
 8907	      # 's' commands which not all seds can handle. GNU sed should be fine
 8908	      # though. Also, the filter scales superlinearly with the number of
 8909	      # global variables. join(1) would be nice here, but unfortunately
 8910	      # isn't a blessed tool.
 8911	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
 8912	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 8913	      export_symbols=$output_objdir/$libname.def
 8914	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 8915	    fi
 8916	  fi
 8917
 8918	  libobjs=$output
 8919	  # Restore the value of output.
 8920	  output=$save_output
 8921
 8922	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
 8923	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 8924	    test "X$libobjs" = "X " && libobjs=
 8925	  fi
 8926	  # Expand the library linking commands again to reset the
 8927	  # value of $libobjs for piecewise linking.
 8928
 8929	  # Do each of the archive commands.
 8930	  if test "$module" = yes && test -n "$module_cmds" ; then
 8931	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 8932	      cmds=$module_expsym_cmds
 8933	    else
 8934	      cmds=$module_cmds
 8935	    fi
 8936	  else
 8937	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 8938	      cmds=$archive_expsym_cmds
 8939	    else
 8940	      cmds=$archive_cmds
 8941	    fi
 8942	  fi
 8943	fi
 8944
 8945	if test -n "$delfiles"; then
 8946	  # Append the command to remove temporary files to $cmds.
 8947	  eval cmds=\"\$cmds~\$RM $delfiles\"
 8948	fi
 8949
 8950	# Add any objects from preloaded convenience libraries
 8951	if test -n "$dlprefiles"; then
 8952	  gentop="$output_objdir/${outputname}x"
 8953	  generated="$generated $gentop"
 8954
 8955	  func_extract_archives $gentop $dlprefiles
 8956	  libobjs="$libobjs $func_extract_archives_result"
 8957	  test "X$libobjs" = "X " && libobjs=
 8958	fi
 8959
 8960	save_ifs="$IFS"; IFS='~'
 8961	for cmd in $cmds; do
 8962	  IFS="$save_ifs"
 8963	  eval cmd=\"$cmd\"
 8964	  $opt_silent || {
 8965	    func_quote_for_expand "$cmd"
 8966	    eval "func_echo $func_quote_for_expand_result"
 8967	  }
 8968	  $opt_dry_run || eval "$cmd" || {
 8969	    lt_exit=$?
 8970
 8971	    # Restore the uninstalled library and exit
 8972	    if test "$opt_mode" = relink; then
 8973	      ( cd "$output_objdir" && \
 8974	        $RM "${realname}T" && \
 8975		$MV "${realname}U" "$realname" )
 8976	    fi
 8977
 8978	    exit $lt_exit
 8979	  }
 8980	done
 8981	IFS="$save_ifs"
 8982
 8983	# Restore the uninstalled library and exit
 8984	if test "$opt_mode" = relink; then
 8985	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 8986
 8987	  if test -n "$convenience"; then
 8988	    if test -z "$whole_archive_flag_spec"; then
 8989	      func_show_eval '${RM}r "$gentop"'
 8990	    fi
 8991	  fi
 8992
 8993	  exit $EXIT_SUCCESS
 8994	fi
 8995
 8996	# Create links to the real library.
 8997	for linkname in $linknames; do
 8998	  if test "$realname" != "$linkname"; then
 8999	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
 9000	  fi
 9001	done
 9002
 9003	# If -module or -export-dynamic was specified, set the dlname.
 9004	if test "$module" = yes || test "$export_dynamic" = yes; then
 9005	  # On all known operating systems, these are identical.
 9006	  dlname="$soname"
 9007	fi
 9008      fi
 9009      ;;
 9010
 9011    obj)
 9012      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 9013	func_warning "\`-dlopen' is ignored for objects"
 9014      fi
 9015
 9016      case " $deplibs" in
 9017      *\ -l* | *\ -L*)
 9018	func_warning "\`-l' and \`-L' are ignored for objects" ;;
 9019      esac
 9020
 9021      test -n "$rpath" && \
 9022	func_warning "\`-rpath' is ignored for objects"
 9023
 9024      test -n "$xrpath" && \
 9025	func_warning "\`-R' is ignored for objects"
 9026
 9027      test -n "$vinfo" && \
 9028	func_warning "\`-version-info' is ignored for objects"
 9029
 9030      test -n "$release" && \
 9031	func_warning "\`-release' is ignored for objects"
 9032
 9033      case $output in
 9034      *.lo)
 9035	test -n "$objs$old_deplibs" && \
 9036	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
 9037
 9038	libobj=$output
 9039	func_lo2o "$libobj"
 9040	obj=$func_lo2o_result
 9041	;;
 9042      *)
 9043	libobj=
 9044	obj="$output"
 9045	;;
 9046      esac
 9047
 9048      # Delete the old objects.
 9049      $opt_dry_run || $RM $obj $libobj
 9050
 9051      # Objects from convenience libraries.  This assumes
 9052      # single-version convenience libraries.  Whenever we create
 9053      # different ones for PIC/non-PIC, this we'll have to duplicate
 9054      # the extraction.
 9055      reload_conv_objs=
 9056      gentop=
 9057      # reload_cmds runs $LD directly, so let us get rid of
 9058      # -Wl from whole_archive_flag_spec and hope we can get by with
 9059      # turning comma into space..
 9060      wl=
 9061
 9062      if test -n "$convenience"; then
 9063	if test -n "$whole_archive_flag_spec"; then
 9064	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
 9065	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
 9066	else
 9067	  gentop="$output_objdir/${obj}x"
 9068	  generated="$generated $gentop"
 9069
 9070	  func_extract_archives $gentop $convenience
 9071	  reload_conv_objs="$reload_objs $func_extract_archives_result"
 9072	fi
 9073      fi
 9074
 9075      # If we're not building shared, we need to use non_pic_objs
 9076      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
 9077
 9078      # Create the old-style object.
 9079      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 9080
 9081      output="$obj"
 9082      func_execute_cmds "$reload_cmds" 'exit $?'
 9083
 9084      # Exit if we aren't doing a library object file.
 9085      if test -z "$libobj"; then
 9086	if test -n "$gentop"; then
 9087	  func_show_eval '${RM}r "$gentop"'
 9088	fi
 9089
 9090	exit $EXIT_SUCCESS
 9091      fi
 9092
 9093      if test "$build_libtool_libs" != yes; then
 9094	if test -n "$gentop"; then
 9095	  func_show_eval '${RM}r "$gentop"'
 9096	fi
 9097
 9098	# Create an invalid libtool object if no PIC, so that we don't
 9099	# accidentally link it into a program.
 9100	# $show "echo timestamp > $libobj"
 9101	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
 9102	exit $EXIT_SUCCESS
 9103      fi
 9104
 9105      if test -n "$pic_flag" || test "$pic_mode" != default; then
 9106	# Only do commands if we really have different PIC objects.
 9107	reload_objs="$libobjs $reload_conv_objs"
 9108	output="$libobj"
 9109	func_execute_cmds "$reload_cmds" 'exit $?'
 9110      fi
 9111
 9112      if test -n "$gentop"; then
 9113	func_show_eval '${RM}r "$gentop"'
 9114      fi
 9115
 9116      exit $EXIT_SUCCESS
 9117      ;;
 9118
 9119    prog)
 9120      case $host in
 9121	*cygwin*) func_stripname '' '.exe' "$output"
 9122	          output=$func_stripname_result.exe;;
 9123      esac
 9124      test -n "$vinfo" && \
 9125	func_warning "\`-version-info' is ignored for programs"
 9126
 9127      test -n "$release" && \
 9128	func_warning "\`-release' is ignored for programs"
 9129
 9130      test "$preload" = yes \
 9131        && test "$dlopen_support" = unknown \
 9132	&& test "$dlopen_self" = unknown \
 9133	&& test "$dlopen_self_static" = unknown && \
 9134	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
 9135
 9136      case $host in
 9137      *-*-rhapsody* | *-*-darwin1.[012])
 9138	# On Rhapsody replace the C library is the System framework
 9139	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
 9140	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
 9141	;;
 9142      esac
 9143
 9144      case $host in
 9145      *-*-darwin*)
 9146	# Don't allow lazy linking, it breaks C++ global constructors
 9147	# But is supposedly fixed on 10.4 or later (yay!).
 9148	if test "$tagname" = CXX ; then
 9149	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
 9150	    10.[0123])
 9151	      compile_command="$compile_command ${wl}-bind_at_load"
 9152	      finalize_command="$finalize_command ${wl}-bind_at_load"
 9153	    ;;
 9154	  esac
 9155	fi
 9156	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
 9157	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 9158	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 9159	;;
 9160      esac
 9161
 9162
 9163      # move library search paths that coincide with paths to not yet
 9164      # installed libraries to the beginning of the library search list
 9165      new_libs=
 9166      for path in $notinst_path; do
 9167	case " $new_libs " in
 9168	*" -L$path/$objdir "*) ;;
 9169	*)
 9170	  case " $compile_deplibs " in
 9171	  *" -L$path/$objdir "*)
 9172	    new_libs="$new_libs -L$path/$objdir" ;;
 9173	  esac
 9174	  ;;
 9175	esac
 9176      done
 9177      for deplib in $compile_deplibs; do
 9178	case $deplib in
 9179	-L*)
 9180	  case " $new_libs " in
 9181	  *" $deplib "*) ;;
 9182	  *) new_libs="$new_libs $deplib" ;;
 9183	  esac
 9184	  ;;
 9185	*) new_libs="$new_libs $deplib" ;;
 9186	esac
 9187      done
 9188      compile_deplibs="$new_libs"
 9189
 9190
 9191      compile_command="$compile_command $compile_deplibs"
 9192      finalize_command="$finalize_command $finalize_deplibs"
 9193
 9194      if test -n "$rpath$xrpath"; then
 9195	# If the user specified any rpath flags, then add them.
 9196	for libdir in $rpath $xrpath; do
 9197	  # This is the magic to use -rpath.
 9198	  case "$finalize_rpath " in
 9199	  *" $libdir "*) ;;
 9200	  *) finalize_rpath="$finalize_rpath $libdir" ;;
 9201	  esac
 9202	done
 9203      fi
 9204
 9205      # Now hardcode the library paths
 9206      rpath=
 9207      hardcode_libdirs=
 9208      for libdir in $compile_rpath $finalize_rpath; do
 9209	if test -n "$hardcode_libdir_flag_spec"; then
 9210	  if test -n "$hardcode_libdir_separator"; then
 9211	    if test -z "$hardcode_libdirs"; then
 9212	      hardcode_libdirs="$libdir"
 9213	    else
 9214	      # Just accumulate the unique libdirs.
 9215	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 9216	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 9217		;;
 9218	      *)
 9219		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 9220		;;
 9221	      esac
 9222	    fi
 9223	  else
 9224	    eval flag=\"$hardcode_libdir_flag_spec\"
 9225	    rpath="$rpath $flag"
 9226	  fi
 9227	elif test -n "$runpath_var"; then
 9228	  case "$perm_rpath " in
 9229	  *" $libdir "*) ;;
 9230	  *) perm_rpath="$perm_rpath $libdir" ;;
 9231	  esac
 9232	fi
 9233	case $host in
 9234	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 9235	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
 9236	  case :$dllsearchpath: in
 9237	  *":$libdir:"*) ;;
 9238	  ::) dllsearchpath=$libdir;;
 9239	  *) dllsearchpath="$dllsearchpath:$libdir";;
 9240	  esac
 9241	  case :$dllsearchpath: in
 9242	  *":$testbindir:"*) ;;
 9243	  ::) dllsearchpath=$testbindir;;
 9244	  *) dllsearchpath="$dllsearchpath:$testbindir";;
 9245	  esac
 9246	  ;;
 9247	esac
 9248      done
 9249      # Substitute the hardcoded libdirs into the rpath.
 9250      if test -n "$hardcode_libdir_separator" &&
 9251	 test -n "$hardcode_libdirs"; then
 9252	libdir="$hardcode_libdirs"
 9253	eval rpath=\" $hardcode_libdir_flag_spec\"
 9254      fi
 9255      compile_rpath="$rpath"
 9256
 9257      rpath=
 9258      hardcode_libdirs=
 9259      for libdir in $finalize_rpath; do
 9260	if test -n "$hardcode_libdir_flag_spec"; then
 9261	  if test -n "$hardcode_libdir_separator"; then
 9262	    if test -z "$hardcode_libdirs"; then
 9263	      hardcode_libdirs="$libdir"
 9264	    else
 9265	      # Just accumulate the unique libdirs.
 9266	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 9267	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 9268		;;
 9269	      *)
 9270		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 9271		;;
 9272	      esac
 9273	    fi
 9274	  else
 9275	    eval flag=\"$hardcode_libdir_flag_spec\"
 9276	    rpath="$rpath $flag"
 9277	  fi
 9278	elif test -n "$runpath_var"; then
 9279	  case "$finalize_perm_rpath " in
 9280	  *" $libdir "*) ;;
 9281	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 9282	  esac
 9283	fi
 9284      done
 9285      # Substitute the hardcoded libdirs into the rpath.
 9286      if test -n "$hardcode_libdir_separator" &&
 9287	 test -n "$hardcode_libdirs"; then
 9288	libdir="$hardcode_libdirs"
 9289	eval rpath=\" $hardcode_libdir_flag_spec\"
 9290      fi
 9291      finalize_rpath="$rpath"
 9292
 9293      if test -n "$libobjs" && test "$build_old_libs" = yes; then
 9294	# Transform all the library objects into standard objects.
 9295	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
 9296	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
 9297      fi
 9298
 9299      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
 9300
 9301      # template prelinking step
 9302      if test -n "$prelink_cmds"; then
 9303	func_execute_cmds "$prelink_cmds" 'exit $?'
 9304      fi
 9305
 9306      wrappers_required=yes
 9307      case $host in
 9308      *cegcc* | *mingw32ce*)
 9309        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
 9310        wrappers_required=no
 9311        ;;
 9312      *cygwin* | *mingw* )
 9313        if test "$build_libtool_libs" != yes; then
 9314          wrappers_required=no
 9315        fi
 9316        ;;
 9317      *)
 9318        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
 9319          wrappers_required=no
 9320        fi
 9321        ;;
 9322      esac
 9323      if test "$wrappers_required" = no; then
 9324	# Replace the output file specification.
 9325	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
 9326	link_command="$compile_command$compile_rpath"
 9327
 9328	# We have no uninstalled library dependencies, so finalize right now.
 9329	exit_status=0
 9330	func_show_eval "$link_command" 'exit_status=$?'
 9331
 9332	if test -n "$postlink_cmds"; then
 9333	  func_to_tool_file "$output"
 9334	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
 9335	  func_execute_cmds "$postlink_cmds" 'exit $?'
 9336	fi
 9337
 9338	# Delete the generated files.
 9339	if test -f "$output_objdir/${outputname}S.${objext}"; then
 9340	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
 9341	fi
 9342
 9343	exit $exit_status
 9344      fi
 9345
 9346      if test -n "$compile_shlibpath$finalize_shlibpath"; then
 9347	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
 9348      fi
 9349      if test -n "$finalize_shlibpath"; then
 9350	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
 9351      fi
 9352
 9353      compile_var=
 9354      finalize_var=
 9355      if test -n "$runpath_var"; then
 9356	if test -n "$perm_rpath"; then
 9357	  # We should set the runpath_var.
 9358	  rpath=
 9359	  for dir in $perm_rpath; do
 9360	    rpath="$rpath$dir:"
 9361	  done
 9362	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 9363	fi
 9364	if test -n "$finalize_perm_rpath"; then
 9365	  # We should set the runpath_var.
 9366	  rpath=
 9367	  for dir in $finalize_perm_rpath; do
 9368	    rpath="$rpath$dir:"
 9369	  done
 9370	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
 9371	fi
 9372      fi
 9373
 9374      if test "$no_install" = yes; then
 9375	# We don't need to create a wrapper script.
 9376	link_command="$compile_var$compile_command$compile_rpath"
 9377	# Replace the output file specification.
 9378	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
 9379	# Delete the old output file.
 9380	$opt_dry_run || $RM $output
 9381	# Link the executable and exit
 9382	func_show_eval "$link_command" 'exit $?'
 9383
 9384	if test -n "$postlink_cmds"; then
 9385	  func_to_tool_file "$output"
 9386	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
 9387	  func_execute_cmds "$postlink_cmds" 'exit $?'
 9388	fi
 9389
 9390	exit $EXIT_SUCCESS
 9391      fi
 9392
 9393      if test "$hardcode_action" = relink; then
 9394	# Fast installation is not supported
 9395	link_command="$compile_var$compile_command$compile_rpath"
 9396	relink_command="$finalize_var$finalize_command$finalize_rpath"
 9397
 9398	func_warning "this platform does not like uninstalled shared libraries"
 9399	func_warning "\`$output' will be relinked during installation"
 9400      else
 9401	if test "$fast_install" != no; then
 9402	  link_command="$finalize_var$compile_command$finalize_rpath"
 9403	  if test "$fast_install" = yes; then
 9404	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
 9405	  else
 9406	    # fast_install is set to needless
 9407	    relink_command=
 9408	  fi
 9409	else
 9410	  link_command="$compile_var$compile_command$compile_rpath"
 9411	  relink_command="$finalize_var$finalize_command$finalize_rpath"
 9412	fi
 9413      fi
 9414
 9415      # Replace the output file specification.
 9416      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 9417
 9418      # Delete the old output files.
 9419      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 9420
 9421      func_show_eval "$link_command" 'exit $?'
 9422
 9423      if test -n "$postlink_cmds"; then
 9424	func_to_tool_file "$output_objdir/$outputname"
 9425	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
 9426	func_execute_cmds "$postlink_cmds" 'exit $?'
 9427      fi
 9428
 9429      # Now create the wrapper script.
 9430      func_verbose "creating $output"
 9431
 9432      # Quote the relink command for shipping.
 9433      if test -n "$relink_command"; then
 9434	# Preserve any variables that may affect compiler behavior
 9435	for var in $variables_saved_for_relink; do
 9436	  if eval test -z \"\${$var+set}\"; then
 9437	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
 9438	  elif eval var_value=\$$var; test -z "$var_value"; then
 9439	    relink_command="$var=; export $var; $relink_command"
 9440	  else
 9441	    func_quote_for_eval "$var_value"
 9442	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 9443	  fi
 9444	done
 9445	relink_command="(cd `pwd`; $relink_command)"
 9446	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
 9447      fi
 9448
 9449      # Only actually do things if not in dry run mode.
 9450      $opt_dry_run || {
 9451	# win32 will think the script is a binary if it has
 9452	# a .exe suffix, so we strip it off here.
 9453	case $output in
 9454	  *.exe) func_stripname '' '.exe' "$output"
 9455	         output=$func_stripname_result ;;
 9456	esac
 9457	# test for cygwin because mv fails w/o .exe extensions
 9458	case $host in
 9459	  *cygwin*)
 9460	    exeext=.exe
 9461	    func_stripname '' '.exe' "$outputname"
 9462	    outputname=$func_stripname_result ;;
 9463	  *) exeext= ;;
 9464	esac
 9465	case $host in
 9466	  *cygwin* | *mingw* )
 9467	    func_dirname_and_basename "$output" "" "."
 9468	    output_name=$func_basename_result
 9469	    output_path=$func_dirname_result
 9470	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
 9471	    cwrapper="$output_path/$output_name.exe"
 9472	    $RM $cwrappersource $cwrapper
 9473	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 9474
 9475	    func_emit_cwrapperexe_src > $cwrappersource
 9476
 9477	    # The wrapper executable is built using the $host compiler,
 9478	    # because it contains $host paths and files. If cross-
 9479	    # compiling, it, like the target executable, must be
 9480	    # executed on the $host or under an emulation environment.
 9481	    $opt_dry_run || {
 9482	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
 9483	      $STRIP $cwrapper
 9484	    }
 9485
 9486	    # Now, create the wrapper script for func_source use:
 9487	    func_ltwrapper_scriptname $cwrapper
 9488	    $RM $func_ltwrapper_scriptname_result
 9489	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
 9490	    $opt_dry_run || {
 9491	      # note: this script will not be executed, so do not chmod.
 9492	      if test "x$build" = "x$host" ; then
 9493		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
 9494	      else
 9495		func_emit_wrapper no > $func_ltwrapper_scriptname_result
 9496	      fi
 9497	    }
 9498	  ;;
 9499	  * )
 9500	    $RM $output
 9501	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
 9502
 9503	    func_emit_wrapper no > $output
 9504	    chmod +x $output
 9505	  ;;
 9506	esac
 9507      }
 9508      exit $EXIT_SUCCESS
 9509      ;;
 9510    esac
 9511
 9512    # See if we need to build an old-fashioned archive.
 9513    for oldlib in $oldlibs; do
 9514
 9515      if test "$build_libtool_libs" = convenience; then
 9516	oldobjs="$libobjs_save $symfileobj"
 9517	addlibs="$convenience"
 9518	build_libtool_libs=no
 9519      else
 9520	if test "$build_libtool_libs" = module; then
 9521	  oldobjs="$libobjs_save"
 9522	  build_libtool_libs=no
 9523	else
 9524	  oldobjs="$old_deplibs $non_pic_objects"
 9525	  if test "$preload" = yes && test -f "$symfileobj"; then
 9526	    oldobjs="$oldobjs $symfileobj"
 9527	  fi
 9528	fi
 9529	addlibs="$old_convenience"
 9530      fi
 9531
 9532      if test -n "$addlibs"; then
 9533	gentop="$output_objdir/${outputname}x"
 9534	generated="$generated $gentop"
 9535
 9536	func_extract_archives $gentop $addlibs
 9537	oldobjs="$oldobjs $func_extract_archives_result"
 9538      fi
 9539
 9540      # Do each command in the archive commands.
 9541      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
 9542	cmds=$old_archive_from_new_cmds
 9543      else
 9544
 9545	# Add any objects from preloaded convenience libraries
 9546	if test -n "$dlprefiles"; then
 9547	  gentop="$output_objdir/${outputname}x"
 9548	  generated="$generated $gentop"
 9549
 9550	  func_extract_archives $gentop $dlprefiles
 9551	  oldobjs="$oldobjs $func_extract_archives_result"
 9552	fi
 9553
 9554	# POSIX demands no paths to be encoded in archives.  We have
 9555	# to avoid creating archives with duplicate basenames if we
 9556	# might have to extract them afterwards, e.g., when creating a
 9557	# static archive out of a convenience library, or when linking
 9558	# the entirety of a libtool archive into another (currently
 9559	# not supported by libtool).
 9560	if (for obj in $oldobjs
 9561	    do
 9562	      func_basename "$obj"
 9563	      $ECHO "$func_basename_result"
 9564	    done | sort | sort -uc >/dev/null 2>&1); then
 9565	  :
 9566	else
 9567	  echo "copying selected object files to avoid basename conflicts..."
 9568	  gentop="$output_objdir/${outputname}x"
 9569	  generated="$generated $gentop"
 9570	  func_mkdir_p "$gentop"
 9571	  save_oldobjs=$oldobjs
 9572	  oldobjs=
 9573	  counter=1
 9574	  for obj in $save_oldobjs
 9575	  do
 9576	    func_basename "$obj"
 9577	    objbase="$func_basename_result"
 9578	    case " $oldobjs " in
 9579	    " ") oldobjs=$obj ;;
 9580	    *[\ /]"$objbase "*)
 9581	      while :; do
 9582		# Make sure we don't pick an alternate name that also
 9583		# overlaps.
 9584		newobj=lt$counter-$objbase
 9585		func_arith $counter + 1
 9586		counter=$func_arith_result
 9587		case " $oldobjs " in
 9588		*[\ /]"$newobj "*) ;;
 9589		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
 9590		esac
 9591	      done
 9592	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
 9593	      oldobjs="$oldobjs $gentop/$newobj"
 9594	      ;;
 9595	    *) oldobjs="$oldobjs $obj" ;;
 9596	    esac
 9597	  done
 9598	fi
 9599	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
 9600	tool_oldlib=$func_to_tool_file_result
 9601	eval cmds=\"$old_archive_cmds\"
 9602
 9603	func_len " $cmds"
 9604	len=$func_len_result
 9605	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 9606	  cmds=$old_archive_cmds
 9607	elif test -n "$archiver_list_spec"; then
 9608	  func_verbose "using command file archive linking..."
 9609	  for obj in $oldobjs
 9610	  do
 9611	    func_to_tool_file "$obj"
 9612	    $ECHO "$func_to_tool_file_result"
 9613	  done > $output_objdir/$libname.libcmd
 9614	  func_to_tool_file "$output_objdir/$libname.libcmd"
 9615	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
 9616	  cmds=$old_archive_cmds
 9617	else
 9618	  # the command line is too long to link in one step, link in parts
 9619	  func_verbose "using piecewise archive linking..."
 9620	  save_RANLIB=$RANLIB
 9621	  RANLIB=:
 9622	  objlist=
 9623	  concat_cmds=
 9624	  save_oldobjs=$oldobjs
 9625	  oldobjs=
 9626	  # Is there a better way of finding the last object in the list?
 9627	  for obj in $save_oldobjs
 9628	  do
 9629	    last_oldobj=$obj
 9630	  done
 9631	  eval test_cmds=\"$old_archive_cmds\"
 9632	  func_len " $test_cmds"
 9633	  len0=$func_len_result
 9634	  len=$len0
 9635	  for obj in $save_oldobjs
 9636	  do
 9637	    func_len " $obj"
 9638	    func_arith $len + $func_len_result
 9639	    len=$func_arith_result
 9640	    objlist="$objlist $obj"
 9641	    if test "$len" -lt "$max_cmd_len"; then
 9642	      :
 9643	    else
 9644	      # the above command should be used before it gets too long
 9645	      oldobjs=$objlist
 9646	      if test "$obj" = "$last_oldobj" ; then
 9647		RANLIB=$save_RANLIB
 9648	      fi
 9649	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 9650	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
 9651	      objlist=
 9652	      len=$len0
 9653	    fi
 9654	  done
 9655	  RANLIB=$save_RANLIB
 9656	  oldobjs=$objlist
 9657	  if test "X$oldobjs" = "X" ; then
 9658	    eval cmds=\"\$concat_cmds\"
 9659	  else
 9660	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
 9661	  fi
 9662	fi
 9663      fi
 9664      func_execute_cmds "$cmds" 'exit $?'
 9665    done
 9666
 9667    test -n "$generated" && \
 9668      func_show_eval "${RM}r$generated"
 9669
 9670    # Now create the libtool archive.
 9671    case $output in
 9672    *.la)
 9673      old_library=
 9674      test "$build_old_libs" = yes && old_library="$libname.$libext"
 9675      func_verbose "creating $output"
 9676
 9677      # Preserve any variables that may affect compiler behavior
 9678      for var in $variables_saved_for_relink; do
 9679	if eval test -z \"\${$var+set}\"; then
 9680	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
 9681	elif eval var_value=\$$var; test -z "$var_value"; then
 9682	  relink_command="$var=; export $var; $relink_command"
 9683	else
 9684	  func_quote_for_eval "$var_value"
 9685	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 9686	fi
 9687      done
 9688      # Quote the link command for shipping.
 9689      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
 9690      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
 9691      if test "$hardcode_automatic" = yes ; then
 9692	relink_command=
 9693      fi
 9694
 9695      # Only create the output if not a dry run.
 9696      $opt_dry_run || {
 9697	for installed in no yes; do
 9698	  if test "$installed" = yes; then
 9699	    if test -z "$install_libdir"; then
 9700	      break
 9701	    fi
 9702	    output="$output_objdir/$outputname"i
 9703	    # Replace all uninstalled libtool libraries with the installed ones
 9704	    newdependency_libs=
 9705	    for deplib in $dependency_libs; do
 9706	      case $deplib in
 9707	      *.la)
 9708		func_basename "$deplib"
 9709		name="$func_basename_result"
 9710		func_resolve_sysroot "$deplib"
 9711		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
 9712		test -z "$libdir" && \
 9713		  func_fatal_error "\`$deplib' is not a valid libtool archive"
 9714		newdependency_libs="$newdependency_libs ${lt_sysroot:+=}$libdir/$name"
 9715		;;
 9716	      -L*)
 9717		func_stripname -L '' "$deplib"
 9718		func_replace_sysroot "$func_stripname_result"
 9719		newdependency_libs="$newdependency_libs -L$func_replace_sysroot_result"
 9720		;;
 9721	      -R*)
 9722		func_stripname -R '' "$deplib"
 9723		func_replace_sysroot "$func_stripname_result"
 9724		newdependency_libs="$newdependency_libs -R$func_replace_sysroot_result"
 9725		;;
 9726	      *) newdependency_libs="$newdependency_libs $deplib" ;;
 9727	      esac
 9728	    done
 9729	    dependency_libs="$newdependency_libs"
 9730	    newdlfiles=
 9731
 9732	    for lib in $dlfiles; do
 9733	      case $lib in
 9734	      *.la)
 9735	        func_basename "$lib"
 9736		name="$func_basename_result"
 9737		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 9738		test -z "$libdir" && \
 9739		  func_fatal_error "\`$lib' is not a valid libtool archive"
 9740		newdlfiles="$newdlfiles ${lt_sysroot:+=}$libdir/$name"
 9741		;;
 9742	      *) newdlfiles="$newdlfiles $lib" ;;
 9743	      esac
 9744	    done
 9745	    dlfiles="$newdlfiles"
 9746	    newdlprefiles=
 9747	    for lib in $dlprefiles; do
 9748	      case $lib in
 9749	      *.la)
 9750		# Only pass preopened files to the pseudo-archive (for
 9751		# eventual linking with the app. that links it) if we
 9752		# didn't already link the preopened objects directly into
 9753		# the library:
 9754		func_basename "$lib"
 9755		name="$func_basename_result"
 9756		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 9757		test -z "$libdir" && \
 9758		  func_fatal_error "\`$lib' is not a valid libtool archive"
 9759		newdlprefiles="$newdlprefiles ${lt_sysroot:+=}$libdir/$name"
 9760		;;
 9761	      esac
 9762	    done
 9763	    dlprefiles="$newdlprefiles"
 9764	  else
 9765	    newdlfiles=
 9766	    for lib in $dlfiles; do
 9767	      case $lib in
 9768		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 9769		*) abs=`pwd`"/$lib" ;;
 9770	      esac
 9771	      newdlfiles="$newdlfiles $abs"
 9772	    done
 9773	    dlfiles="$newdlfiles"
 9774	    newdlprefiles=
 9775	    for lib in $dlprefiles; do
 9776	      case $lib in
 9777		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 9778		*) abs=`pwd`"/$lib" ;;
 9779	      esac
 9780	      newdlprefiles="$newdlprefiles $abs"
 9781	    done
 9782	    dlprefiles="$newdlprefiles"
 9783	  fi
 9784	  $RM $output
 9785	  # place dlname in correct position for cygwin
 9786	  # In fact, it would be nice if we could use this code for all target
 9787	  # systems that can't hard-code library paths into their executables
 9788	  # and that have no shared library path variable independent of PATH,
 9789	  # but it turns out we can't easily determine that from inspecting
 9790	  # libtool variables, so we have to hard-code the OSs to which it
 9791	  # applies here; at the moment, that means platforms that use the PE
 9792	  # object format with DLL files.  See the long comment at the top of
 9793	  # tests/bindir.at for full details.
 9794	  tdlname=$dlname
 9795	  case $host,$output,$installed,$module,$dlname in
 9796	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
 9797	      # If a -bindir argument was supplied, place the dll there.
 9798	      if test "x$bindir" != x ;
 9799	      then
 9800		func_relative_path "$install_libdir" "$bindir"
 9801		tdlname=$func_relative_path_result$dlname
 9802	      else
 9803		# Otherwise fall back on heuristic.
 9804		tdlname=../bin/$dlname
 9805	      fi
 9806	      ;;
 9807	  esac
 9808	  $ECHO > $output "\
 9809# $outputname - a libtool library file
 9810# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 9811#
 9812# Please DO NOT delete this file!
 9813# It is necessary for linking the library.
 9814
 9815# The name that we can dlopen(3).
 9816dlname='$tdlname'
 9817
 9818# Names of this library.
 9819library_names='$library_names'
 9820
 9821# The name of the static archive.
 9822old_library='$old_library'
 9823
 9824# Linker flags that can not go in dependency_libs.
 9825inherited_linker_flags='$new_inherited_linker_flags'
 9826
 9827# Libraries that this one depends upon.
 9828dependency_libs='$dependency_libs'
 9829
 9830# Names of additional weak libraries provided by this library
 9831weak_library_names='$weak_libs'
 9832
 9833# Version information for $libname.
 9834current=$current
 9835age=$age
 9836revision=$revision
 9837
 9838# Is this an already installed library?
 9839installed=$installed
 9840
 9841# Should we warn about portability when linking against -modules?
 9842shouldnotlink=$module
 9843
 9844# Files to dlopen/dlpreopen
 9845dlopen='$dlfiles'
 9846dlpreopen='$dlprefiles'
 9847
 9848# Directory that this library needs to be installed in:
 9849libdir='$install_libdir'"
 9850	  if test "$installed" = no && test "$need_relink" = yes; then
 9851	    $ECHO >> $output "\
 9852relink_command=\"$relink_command\""
 9853	  fi
 9854	done
 9855      }
 9856
 9857      # Do a symbolic link so that the libtool archive can be found in
 9858      # LD_LIBRARY_PATH before the program is installed.
 9859      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
 9860      ;;
 9861    esac
 9862    exit $EXIT_SUCCESS
 9863}
 9864
 9865{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
 9866    func_mode_link ${1+"$@"}
 9867
 9868
 9869# func_mode_uninstall arg...
 9870func_mode_uninstall ()
 9871{
 9872    $opt_debug
 9873    RM="$nonopt"
 9874    files=
 9875    rmforce=
 9876    exit_status=0
 9877
 9878    # This variable tells wrapper scripts just to set variables rather
 9879    # than running their programs.
 9880    libtool_install_magic="$magic"
 9881
 9882    for arg
 9883    do
 9884      case $arg in
 9885      -f) RM="$RM $arg"; rmforce=yes ;;
 9886      -*) RM="$RM $arg" ;;
 9887      *) files="$files $arg" ;;
 9888      esac
 9889    done
 9890
 9891    test -z "$RM" && \
 9892      func_fatal_help "you must specify an RM program"
 9893
 9894    rmdirs=
 9895
 9896    for file in $files; do
 9897      func_dirname "$file" "" "."
 9898      dir="$func_dirname_result"
 9899      if test "X$dir" = X.; then
 9900	odir="$objdir"
 9901      else
 9902	odir="$dir/$objdir"
 9903      fi
 9904      func_basename "$file"
 9905      name="$func_basename_result"
 9906      test "$opt_mode" = uninstall && odir="$dir"
 9907
 9908      # Remember odir for removal later, being careful to avoid duplicates
 9909      if test "$opt_mode" = clean; then
 9910	case " $rmdirs " in
 9911	  *" $odir "*) ;;
 9912	  *) rmdirs="$rmdirs $odir" ;;
 9913	esac
 9914      fi
 9915
 9916      # Don't error if the file doesn't exist and rm -f was used.
 9917      if { test -L "$file"; } >/dev/null 2>&1 ||
 9918	 { test -h "$file"; } >/dev/null 2>&1 ||
 9919	 test -f "$file"; then
 9920	:
 9921      elif test -d "$file"; then
 9922	exit_status=1
 9923	continue
 9924      elif test "$rmforce" = yes; then
 9925	continue
 9926      fi
 9927
 9928      rmfiles="$file"
 9929
 9930      case $name in
 9931      *.la)
 9932	# Possibly a libtool archive, so verify it.
 9933	if func_lalib_p "$file"; then
 9934	  func_source $dir/$name
 9935
 9936	  # Delete the libtool libraries and symlinks.
 9937	  for n in $library_names; do
 9938	    rmfiles="$rmfiles $odir/$n"
 9939	  done
 9940	  test -n "$old_library" && rmfiles="$rmfiles $odir/$old_library"
 9941
 9942	  case "$opt_mode" in
 9943	  clean)
 9944	    case " $library_names " in
 9945	    *" $dlname "*) ;;
 9946	    *) test -n "$dlname" && rmfiles="$rmfiles $odir/$dlname" ;;
 9947	    esac
 9948	    test -n "$libdir" && rmfiles="$rmfiles $odir/$name $odir/${name}i"
 9949	    ;;
 9950	  uninstall)
 9951	    if test -n "$library_names"; then
 9952	      # Do each command in the postuninstall commands.
 9953	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
 9954	    fi
 9955
 9956	    if test -n "$old_library"; then
 9957	      # Do each command in the old_postuninstall commands.
 9958	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
 9959	    fi
 9960	    # FIXME: should reinstall the best remaining shared library.
 9961	    ;;
 9962	  esac
 9963	fi
 9964	;;
 9965
 9966      *.lo)
 9967	# Possibly a libtool object, so verify it.
 9968	if func_lalib_p "$file"; then
 9969
 9970	  # Read the .lo file
 9971	  func_source $dir/$name
 9972
 9973	  # Add PIC object to the list of files to remove.
 9974	  if test -n "$pic_object" &&
 9975	     test "$pic_object" != none; then
 9976	    rmfiles="$rmfiles $dir/$pic_object"
 9977	  fi
 9978
 9979	  # Add non-PIC object to the list of files to remove.
 9980	  if test -n "$non_pic_object" &&
 9981	     test "$non_pic_object" != none; then
 9982	    rmfiles="$rmfiles $dir/$non_pic_object"
 9983	  fi
 9984	fi
 9985	;;
 9986
 9987      *)
 9988	if test "$opt_mode" = clean ; then
 9989	  noexename=$name
 9990	  case $file in
 9991	  *.exe)
 9992	    func_stripname '' '.exe' "$file"
 9993	    file=$func_stripname_result
 9994	    func_stripname '' '.exe' "$name"
 9995	    noexename=$func_stripname_result
 9996	    # $file with .exe has already been added to rmfiles,
 9997	    # add $file without .exe
 9998	    rmfiles="$rmfiles $file"
 9999	    ;;
10000	  esac
10001	  # Do a test to see if this is a libtool program.
10002	  if func_ltwrapper_p "$file"; then
10003	    if func_ltwrapper_executable_p "$file"; then
10004	      func_ltwrapper_scriptname "$file"
10005	      relink_command=
10006	      func_source $func_ltwrapper_scriptname_result
10007	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
10008	    else
10009	      relink_command=
10010	      func_source $dir/$noexename
10011	    fi
10012
10013	    # note $name still contains .exe if it was in $file originally
10014	    # as does the version of $file that was added into $rmfiles
10015	    rmfiles="$rmfiles $odir/$name $odir/${name}S.${objext}"
10016	    if test "$fast_install" = yes && test -n "$relink_command"; then
10017	      rmfiles="$rmfiles $odir/lt-$name"
10018	    fi
10019	    if test "X$noexename" != "X$name" ; then
10020	      rmfiles="$rmfiles $odir/lt-${noexename}.c"
10021	    fi
10022	  fi
10023	fi
10024	;;
10025      esac
10026      func_show_eval "$RM $rmfiles" 'exit_status=1'
10027    done
10028
10029    # Try to remove the ${objdir}s in the directories where we deleted files
10030    for dir in $rmdirs; do
10031      if test -d "$dir"; then
10032	func_show_eval "rmdir $dir >/dev/null 2>&1"
10033      fi
10034    done
10035
10036    exit $exit_status
10037}
10038
10039{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
10040    func_mode_uninstall ${1+"$@"}
10041
10042test -z "$opt_mode" && {
10043  help="$generic_help"
10044  func_fatal_help "you must specify a MODE"
10045}
10046
10047test -z "$exec_cmd" && \
10048  func_fatal_help "invalid operation mode \`$opt_mode'"
10049
10050if test -n "$exec_cmd"; then
10051  eval exec "$exec_cmd"
10052  exit $EXIT_FAILURE
10053fi
10054
10055exit $exit_status
10056
10057
10058# The TAGs below are defined such that we never get into a situation
10059# in which we disable both kinds of libraries.  Given conflicting
10060# choices, we go for a static library, that is the most portable,
10061# since we can't tell whether shared libraries were disabled because
10062# the user asked for that or because the platform doesn't support
10063# them.  This is particularly important on AIX, because we don't
10064# support having both static and shared libraries enabled at the same
10065# time on that platform, so we default to a shared-only configuration.
10066# If a disable-shared tag is given, we'll fallback to a static-only
10067# configuration.  But we'll never go from static-only to shared-only.
10068
10069# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
10070build_libtool_libs=no
10071build_old_libs=yes
10072# ### END LIBTOOL TAG CONFIG: disable-shared
10073
10074# ### BEGIN LIBTOOL TAG CONFIG: disable-static
10075build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
10076# ### END LIBTOOL TAG CONFIG: disable-static
10077
10078# Local Variables:
10079# mode:shell-script
10080# sh-indentation:2
10081# End:
10082# vi:sw=2
10083